InternalTimer mit absoluter Zeit

Begonnen von Schuggi, 29 Juli 2013, 10:19:40

Vorheriges Thema - Nächstes Thema

Schuggi

Ich han nun mal
$hash->{READINGS}{ErtragTag}{TIME} = TimeNow();
$hash->{READINGS}{ErtragTag}{VAL} = $hash->{READINGS}{Ertrag}{VAL};


gegen dei Variante mit
readingsSingleUpdate($hash,...
umgebaut.
da sind aber noch ein paar Zeilen die ich nicht verstehe bzw. nicht weiss ob man die nocht braucht bzw ob man die auch ersetzen kann.

$hash->{CHANGED}[0] = $text;
 $hash->{STATE} = $text;
...
...
   DoTrigger($name, undef) if($init_done);    
Fhem auf EEE-PC Windows7 (XAMPP),
CUL,
(RasPi, QNAP TS109II)
Angebunden an Fhem:
2xVelux-Rolladen, 3x S0 Stromzähler, Wetterstation WH1080, 2x S300TH

betateilchen

Das DoTrigger() kannst Du weglassen, das sollte schon die 1 am Ende des readingsSingleUpdate() machen.

Die anderen zwei Zeilen: wenn Du dieses Werte setzen willst, kannst Du das so machen. Zwingend notwendig sind sie nicht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Schuggi

Durch die Umstellung auf
readingsSingleUpdate($hash,...
hat sich ein neues Problem ergeben.

Beim Regex meines Filelogs habe ich nur den Namen meines defines angegeben und bisher wurde da nur das was im STATE steht geloggt.(und das wollte ich auch so heben) Nun werden alle sich ändernden "readings" ins Log geschrieben.
Wie muss der Regex aussehen, damit er nur einzelne readings bzw den Stat schreibt?
Fhem auf EEE-PC Windows7 (XAMPP),
CUL,
(RasPi, QNAP TS109II)
Angebunden an Fhem:
2xVelux-Rolladen, 3x S0 Stromzähler, Wetterstation WH1080, 2x S300TH

Dietmar63

glaub' mir, ich habe es schon mal geschafft InternalTimer in die Vergangeheit zu setzen - wenn es passiert, dann hast du Probleme und weißt nicht woher sie kommen.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

betateilchen

Zitat von: Schuggi schrieb am Mo, 29 Juli 2013 15:41Wie muss der Regex aussehen, damit er nur einzelne readings bzw den Stat schreibt?

Du musst halt das Reading mit angeben. Ich kann leider nicht hellsehen und weiß nicht, wie Deine FileLog Definition aktuell aussieht und was Du dort geändert haben möchtest...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Dietmar63

define HeizungKuecheChart     FileLog ./log/HeizungKueche.log HeizungKueche:.*
vielleicht so:
define HeizungKuecheChart     FileLog ./log/HeizungKueche.log HeizungKueche:(reading1|reading2|reading3).*
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm

Schuggi

Das hab ich nun hinbekommen.
Nun die nächste Frage:
Wie kann ich eine interne Variable anlegen die einen Neustart überdauert.
Geht das ohne Reading oder Attribut?

Hintergrund ist, dass ich Tageswerte jeden Abend um 23:00 aufsummieren möchte um die
Summe dann am letzten Tag des Monats in ein Reading zu schreiben.
Diese Summe muss natürlich einen Neustart überdauern können.

Gruß
  Schuggi
Fhem auf EEE-PC Windows7 (XAMPP),
CUL,
(RasPi, QNAP TS109II)
Angebunden an Fhem:
2xVelux-Rolladen, 3x S0 Stromzähler, Wetterstation WH1080, 2x S300TH

betateilchen

Leg ein Reading "Summe" an, das ist die einfachste Lösung.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Schuggi

Hab ich momentan auch so gemacht.
Fhem auf EEE-PC Windows7 (XAMPP),
CUL,
(RasPi, QNAP TS109II)
Angebunden an Fhem:
2xVelux-Rolladen, 3x S0 Stromzähler, Wetterstation WH1080, 2x S300TH