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.
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
MartinF
Tar hemautomation på allvar
Inlägg: 141
Blev medlem: 04 jan 2010, 12:24
Ort: Sunne

Re: Nickes LCD-projekt.

Inlägg av MartinF »

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, motorvärme och mycket annat med 1-wire, zwave, och webswitch via Domoticz.
Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1621
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Re: Nickes LCD-projekt.

Inlägg av CirruZZ »

MartinF skrev:...Uncached och täta körningar av skriptet borde ge en mera omedelbar respons på tryckknappen?
Helt rätt!
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5434
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: Nickes LCD-projekt.

Inlägg av elf98 »

owfs pollar inte nätet automatiskt.

Räknarna på lcd-displayen nollas vid läsning.
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild
Niklas
Moderator
Inlägg: 1019
Blev medlem: 22 mar 2008, 21:13
Ort: Stockholm
Kontakt:

Re: Nickes LCD-projekt.

Inlägg av Niklas »

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.
MartinF
Tar hemautomation på allvar
Inlägg: 141
Blev medlem: 04 jan 2010, 12:24
Ort: Sunne

Re: Nickes LCD-projekt.

Inlägg av MartinF »

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, motorvärme och mycket annat med 1-wire, zwave, och webswitch via Domoticz.
Niklas
Moderator
Inlägg: 1019
Blev medlem: 22 mar 2008, 21:13
Ort: Stockholm
Kontakt:

Re: Nickes LCD-projekt.

Inlägg av Niklas »

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?
MartinF
Tar hemautomation på allvar
Inlägg: 141
Blev medlem: 04 jan 2010, 12:24
Ort: Sunne

Re: Nickes LCD-projekt.

Inlägg av MartinF »

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, motorvärme och mycket annat med 1-wire, zwave, och webswitch via Domoticz.
MartinF
Tar hemautomation på allvar
Inlägg: 141
Blev medlem: 04 jan 2010, 12:24
Ort: Sunne

Re: Nickes LCD-projekt.

Inlägg av MartinF »

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, motorvärme och mycket annat med 1-wire, zwave, och webswitch via Domoticz.
Användarvisningsbild
elf98
Hemautomation - det är mer än en hobby
Inlägg: 5434
Blev medlem: 27 okt 2006, 13:49
Ort: Linköping
Kontakt:

Re: Nickes LCD-projekt.

Inlägg av elf98 »

De läsningar man gör cachas.
Grundade m.nu & temperatur.nu

Driver temperatur.nu

Bild
MartinF
Tar hemautomation på allvar
Inlägg: 141
Blev medlem: 04 jan 2010, 12:24
Ort: Sunne

Re: Nickes LCD-projekt.

Inlägg av MartinF »

: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, motorvärme och mycket annat med 1-wire, zwave, och webswitch via Domoticz.
Användarvisningsbild
CirruZZ
Master Moderator
Inlägg: 1621
Blev medlem: 13 feb 2008, 16:46
Ort: Ystad

Re: Nickes LCD-projekt.

Inlägg av CirruZZ »

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:
MartinF
Tar hemautomation på allvar
Inlägg: 141
Blev medlem: 04 jan 2010, 12:24
Ort: Sunne

Re: Nickes LCD-projekt.

Inlägg av MartinF »

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, motorvärme och mycket annat med 1-wire, zwave, och webswitch via Domoticz.
Användarvisningsbild
Plutonium
Moderator
Inlägg: 1246
Blev medlem: 04 jan 2008, 02:34
Ort: Nossebro
Kontakt:

Re: Nickes LCD-projekt.

Inlägg av Plutonium »

Är intresserad av din lcdcal.php :)
http://essunga.org
Moderator - Temperatur.nu
Niklas
Moderator
Inlägg: 1019
Blev medlem: 22 mar 2008, 21:13
Ort: Stockholm
Kontakt:

Re: Nickes LCD-projekt.

Inlägg av Niklas »

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);
Användarvisningsbild
Plutonium
Moderator
Inlägg: 1246
Blev medlem: 04 jan 2008, 02:34
Ort: Nossebro
Kontakt:

Re: Nickes LCD-projekt.

Inlägg av Plutonium »

Tusen tack Niklas!
http://essunga.org
Moderator - Temperatur.nu
Skriv svar