Nickes LCD-projekt.

Hur ser ditt mät- och/eller hemautomations-system ut? Dela med dig av hur just Ditt projekt ser ut och fungerar, eller hur dina planer ser ut för framtiden. Att läsa om andra är bästa inspirationen.

Re: Nickes LCD-projekt.

Inläggav MartinF » 12 jan 2010, 21:34

Uncached tar något längre tid, men innebär väl läsning direkt mot enheten?
Cached borde vara "gamla" data från senaste automatiska avläsning?
Perioden för uppdatering av cachen vet jag inte, kanske går den att ställa in?
Uncached och täta körningar av skriptet borde ge en mera omedelbar respons på tryckknappen?
Albin polar 35,Laddomat, 3x750l, Danfoss ECL 100 & Sfinxs solfångare. Loggar och styr vedpanna, elpatron, solfångare och motorvärme med 1-wire och webswitch via webbgränssnitt.
MartinF
Väderfreak
 
Inlägg: 100
Blev medlem: 04 jan 2010, 12:24
Ort: Sunne

Annons


Re: Nickes LCD-projekt.

Inläggav CirruZZ » 12 jan 2010, 21:53

MartinF skrev:...Uncached och täta körningar av skriptet borde ge en mera omedelbar respons på tryckknappen?

Helt rätt!
Projekt tråd | Blogg | Hemautomation
Rapporterar för : Ystad & Duved
Användarvisningsbild
CirruZZ
Master Moderator
 
Inlägg: 1286
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Re: Nickes LCD-projekt.

Inläggav elf98 » 12 jan 2010, 23:26

owfs pollar inte nätet automatiskt.

Räknarna på lcd-displayen nollas vid läsning.
Driver temperatur.nu
Användarvisningsbild
elf98
Har temperatur.nu som hobby
 
Inlägg: 3430
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping

Re: Nickes LCD-projekt.

Inläggav Niklas » 12 jan 2010, 23:37

Ja, precis.
Läs av uncached och då bör du ju ha resultat där om du har tryckt på knapparna.
Som elf säger så är det ingen som görs automatiskt så att det nollställs.

Jag kom inte på något smidigt sätt att läsa av om någon tryckt på knapparna annat än varje minut. Det kanske går att lösa på något annat sätt så att den läser av oftare men jag vill inte krocka med någon annan avläsning.
Niklas
Moderator
 
Inlägg: 734
Blev medlem: 22 mar 2008, 21:13
Ort: Stockholm

Re: Nickes LCD-projekt.

Inläggav MartinF » 13 jan 2010, 11:31

Många utvecklare ogillar GUIs och nu förstår jag lite av varför. Filhanteraren i Ubuntu läser hela tiden av filerna för att se om något ändras, och då nollas LCD:ns counters! Samma sak händer om filen är öppen för läsning i Ubuntus textredigerare. Mina problem orsakades också av att läsning av Counters.0-3 ger en sträng som inleds med en massa blanksteg och därför inte kunde valideras numeriskt. Dessutom är strängens avslutande siffra (till skillnad från många av LCDns skrivbara variabler) inte 0 eller 1, utan 0 eller 2.
Albin polar 35,Laddomat, 3x750l, Danfoss ECL 100 & Sfinxs solfångare. Loggar och styr vedpanna, elpatron, solfångare och motorvärme med 1-wire och webswitch via webbgränssnitt.
MartinF
Väderfreak
 
Inlägg: 100
Blev medlem: 04 jan 2010, 12:24
Ort: Sunne

Re: Nickes LCD-projekt.

Inläggav Niklas » 13 jan 2010, 11:35

Sen så ökar ju sifforna varje gång man trycker på knappen.
Man får kolla om den är 0 eller inte typ. :) Varje tryck plussar på med 2. Reagerar den på tryck och sen släpp kanske?
Niklas
Moderator
 
Inlägg: 734
Blev medlem: 22 mar 2008, 21:13
Ort: Stockholm

Re: Nickes LCD-projekt.

Inläggav MartinF » 13 jan 2010, 12:22

Niklas skrev:Sen så ökar ju sifforna varje gång man trycker på knappen.
Man får kolla om den är 0 eller inte typ. :) Varje tryck plussar på med 2. Reagerar den på tryck och sen släpp kanske?

I så fall kunde man hålla in en knapp för att tända lyset en kort stund vid behov!
Albin polar 35,Laddomat, 3x750l, Danfoss ECL 100 & Sfinxs solfångare. Loggar och styr vedpanna, elpatron, solfångare och motorvärme med 1-wire och webswitch via webbgränssnitt.
MartinF
Väderfreak
 
Inlägg: 100
Blev medlem: 04 jan 2010, 12:24
Ort: Sunne

Re: Nickes LCD-projekt.

Inläggav MartinF » 13 jan 2010, 13:33

elf98 skrev:owfs pollar inte nätet automatiskt.


Vad är det då som cachas?
Albin polar 35,Laddomat, 3x750l, Danfoss ECL 100 & Sfinxs solfångare. Loggar och styr vedpanna, elpatron, solfångare och motorvärme med 1-wire och webswitch via webbgränssnitt.
MartinF
Väderfreak
 
Inlägg: 100
Blev medlem: 04 jan 2010, 12:24
Ort: Sunne

Re: Nickes LCD-projekt.

Inläggav elf98 » 13 jan 2010, 19:32

De läsningar man gör cachas.
Driver temperatur.nu
Användarvisningsbild
elf98
Har temperatur.nu som hobby
 
Inlägg: 3430
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping

Re: Nickes LCD-projekt.

Inläggav MartinF » 13 jan 2010, 22:27

:o :?
Läsningar av vad, cached eller uncashed eller både och?
Är cached värden från förra läsningen av cashed eller av uncashed?
Eller vad är då skillnaden mellan cashed och uncashed?
Finns det någon dokumentation om detta, annat än det kortfattade på owfs hemsida?
Nu blev det mycket frågor på en gång känner jag :wink:.
Albin polar 35,Laddomat, 3x750l, Danfoss ECL 100 & Sfinxs solfångare. Loggar och styr vedpanna, elpatron, solfångare och motorvärme med 1-wire och webswitch via webbgränssnitt.
MartinF
Väderfreak
 
Inlägg: 100
Blev medlem: 04 jan 2010, 12:24
Ort: Sunne

Re: Nickes LCD-projekt.

Inläggav CirruZZ » 13 jan 2010, 22:47

Om du läser från cashed så får du ett värde. Om du inom den konfigurerade cashtiden gör en läsning igen av cashed så kommer du att få samma värde som tidigare, dvs ingen läsning på 1-wire nätet görs. Om du istället väntar ett tag och läser efter att cashtiden har gått ut så kommer en ny läsning att göras och det värdet sparas i cashen.

Om du istället läser uncashed så kommer OWFS aldrig att ge dig ett cashat värde utan kommer alltid att hämta ett nytt värde från nätet.

Hoppas du blev klokare... :roll:
Projekt tråd | Blogg | Hemautomation
Rapporterar för : Ystad & Duved
Användarvisningsbild
CirruZZ
Master Moderator
 
Inlägg: 1286
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Re: Nickes LCD-projekt.

Inläggav MartinF » 13 jan 2010, 23:10

Kristallklart, tack alla, detta forum är guld värt!
Albin polar 35,Laddomat, 3x750l, Danfoss ECL 100 & Sfinxs solfångare. Loggar och styr vedpanna, elpatron, solfångare och motorvärme med 1-wire och webswitch via webbgränssnitt.
MartinF
Väderfreak
 
Inlägg: 100
Blev medlem: 04 jan 2010, 12:24
Ort: Sunne

Re: Nickes LCD-projekt.

Inläggav Plutonium » 18 jun 2010, 03:35

Är intresserad av din lcdcal.php :)
http://essunga.org
Moderator - Temperatur.nu
Plutonium
Moderator
 
Inlägg: 513
Blev medlem: 04 jan 2008, 02:34
Ort: Essunga station

Re: Nickes LCD-projekt.

Inläggav Niklas » 19 jun 2010, 14:31

Plutonium skrev:Är intresserad av din lcdcal.php :)


Dra in Zends Gdata i nån passande mapp och ändra set_include_path.

Kod: Markera allt
<?php
setlocale(LC_ALL, "sv_SE.ISO8859-1");

$nu = date("y-m-d H:i:s");

function translateDateSE($string) {
        $date = array(
                "/January/", "/February/", "/March/", "/May/", "/June/", "/July/", "/August/", "/October/",
                "/May/", "/Oct/",
                "/Monday/", "/Tuesday/", "/Wednesday/", "/Thursday/", "/Friday/", "/Saturday/", "/Sunday/",
                "/Mon/", "/Tue/", "/Wed/", "/Thu/", "/Fri/", "/Sat/", "/Sun/"
        );
        $dateSE = array(
                "Januari", "Februari", "Mars", "Maj", "Juni", "Juli", "Augusti", "Oktober",
                "Maj", "Okt",
                "mandag", "tisdag", "onsdag", "torsdag", "fredag", "lïrdag", "sïndag",
                "man", "tis", "ons", "tor", "fre", "lïr", "sïn"
        );
        return preg_replace($date, $dateSE, $string);}

set_include_path('/adress/till/gdata/ZendGdata-1.9.5/library');

require_once 'Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_AuthSub');
Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
Zend_Loader::loadClass('Zend_Gdata_Calendar');

$user = 'EPOST_GOOGLEKONTO';
$pass = 'LÖSENORD_GOOGLEKONTO';
$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME; // predefined service name for calendar

$client = Zend_Gdata_ClientLogin::getHttpClient($user,$pass,$service);

  $startDate=date("y-m-d H:i");
  $endDate=date('Y-m-d', strtotime('+1 days'));
  $gdataCal = new Zend_Gdata_Calendar($client);
  $query = $gdataCal->newEventQuery();
  $query->setUser('default');
  $query->setVisibility('private');
  $query->setProjection('full');
  $query->setOrderby('starttime');
  $query->setSortorder('ascending');
  $query->setStartMin($startDate);
  $query->setStartMax($endDate);
$eventFeed = $gdataCal->getCalendarEventFeed($query);


// börjar på rad 0
$i = 0;


$rad0text = date("d/m") . " idag " . utf8_decode(translateDateSE(date("l")));
$rad0 = substr($rad0text, 0, 20);

$username="DBANVÄNDARE";
$password="DBLÖSEN";
$database="DATABAS";
mysql_connect("ADRESS",$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query = "UPDATE t_lcd set f_rad0='$rad0', f_rad1=' ', f_rad2=' ', f_rad3=' ', f_datumtid='$nu' where id=2";
mysql_query($query);


// loopa events
foreach ($eventFeed as $event)
{
        // räkna upp fil-nummer
        $i++;


        // kört 4 loops? avbryt
        if( $i > 3 )
        {
                break;
        }

        // skriv rad 2,3,4
        else
        {
                // hämta ur datum ur google-objekt
                foreach ($event->when as $when)
                {
                        // start
                        $start_data = explode('T', $when->startTime);
                        $start = explode('.', $start_data[1]);
                        $start = substr($start[0], 0, 5);

                        // end
                        $end_data = explode('T', $when->endTime);
                        $end = explode('.', $end_data[1]);
                        $end = substr($end[0], 0, 5);
                }

                // hämta titel
                $title = $event->title->text;


                // formatera titel-data
                $replace_array = array('Å', 'å');
                $title = str_replace($replace_array, "a", $title);

                $replace_array = array('Ä', 'ä');
                $title = str_replace($replace_array, 'á', $title);

                $replace_array = array('Ö', 'ö');
                $title = str_replace($replace_array, 'ï', $title);


                // sträng-data

                $texten =  utf8_decode("$start $title");
                $string = substr($texten, 0, 20);


                $query = "UPDATE t_lcd set f_rad$i='$string' where id=2";
                mysql_query($query);

        }
}

mysql_close();

?>


Hade problem med locale så jag hittade på en egen lösning.
Sen så skriver jag till en databas som loopscriptet läser ifrån när det skriver till displayen så det sparas till dbn.
Det var länge sen jag skrev det så det kan förstås göras bättre. Har ett separat script för att ta fram "imorgon". :)

Innan skrev jag direkt till LCDn:
Kod: Markera allt
                skriv till fil
                $myFile = "/mnt/1wire/FF.830400000100/line20.$i";
                $fh = fopen($myFile, 'w') or die("can't open file");
                fwrite($fh, $string);
                fclose($fh);
Niklas
Moderator
 
Inlägg: 734
Blev medlem: 22 mar 2008, 21:13
Ort: Stockholm

Re: Nickes LCD-projekt.

Inläggav Plutonium » 19 jun 2010, 15:48

Tusen tack Niklas!
http://essunga.org
Moderator - Temperatur.nu
Plutonium
Moderator
 
Inlägg: 513
Blev medlem: 04 jan 2008, 02:34
Ort: Essunga station

Föregående

Återgå till Mitt System

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 1 gäst