FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: sash.sc am 25 Juni 2016, 17:29:45

Titel: Zeistempel zur weiteren Verarbeitung speichern
Beitrag von: sash.sc am 25 Juni 2016, 17:29:45
Hallo zusammen.

Ich möchte meine Lichtsteuerung ein wenig umschreiben. Dafür habe ich mir einen Temperatursensor zum Lichtsensor umgebaut. Habe die readings erfolgreich angepasst.
Aktuell läuft meine Lichtsteuerung über doif und lightscene. Per doif wird über twilight die Zeit für dem Sonnenuntergang abgefragt. Jetzt möchte ich die Sensorabfrage einbauen.
Bei unterschreiten eines Wertes, soll die Zeit in ein Dummy bzw. Variabel geschrieben werden, die ich dann im doif weiter verarbeitenden kann.

Habe mir so gedacht, oder so ähnlich


DOIF (Lichtsensor <= 50 dann schreibe die Zeit wo der Wert unterschritten wurde in einem Dummy oder variabel)

Die Weiterverarbeitung sollte so aussehen.


DOIF ([([Zeit aus Dummy] + [00:00:00])]) (set EG_wz_EckeLicht on)


Danke schonmal für die Hilfe

Gruß Sascha
Titel: Antw:Zeistempel zur weiteren Verarbeitung speichern
Beitrag von: Ellert am 25 Juni 2016, 17:43:36
Du hast jetzt nichts gefragt, ich rate mal:

schreibe die Zeit wo der Wert unterschritten wurde in einem Dummy oder variabel

entspricht

setreading <Name> Zeit_wo_der_Wert_unterschritten_wurde {(time)}
Titel: Antw:Zeistempel zur weiteren Verarbeitung speichern
Beitrag von: sash.sc am 25 Juni 2016, 19:01:27
Stimmt. Wollte wissen, wie ich die Zeit in den Dummy schreibe.
Hast du eine Glaskugel?
Titel: Antw:Zeistempel zur weiteren Verarbeitung speichern
Beitrag von: sash.sc am 25 Juni 2016, 19:04:05
Habe es mal gerade ausprobiert. Geht das auch in hh:mm:ss Format?
Es wird da eine 10 stelle Zahl geschrieben.

Gruß Sascha

Gesendet von meinem SM-T560 mit Tapatalk

Titel: Antw:Zeistempel zur weiteren Verarbeitung speichern
Beitrag von: Ellert am 25 Juni 2016, 20:20:55
Ja, es gibt es eine von FHEM bereitgestellte Perl-Variable, siehe http://fhem.de/commandref_DE.html#perl , die kannst Du statt "time" benutzen.
Titel: Antw:Zeistempel zur weiteren Verarbeitung speichern
Beitrag von: sash.sc am 25 Juni 2016, 22:31:22
Hab es mir mal angeschaut. Komme aber nicht klar damit. Könntet ihr mir ein wenig untreu die arme greifen?  Danke

Gesendet von meinem SM-T560 mit Tapatalk

Titel: Antw:Zeistempel zur weiteren Verarbeitung speichern
Beitrag von: Ellert am 26 Juni 2016, 00:19:53
Zitat von: sash.sc am 25 Juni 2016, 22:31:22
Hab es mir mal angeschaut. Komme aber nicht klar damit. Könntet ihr mir ein wenig untreu die arme greifen?  Danke

Gesendet von meinem SM-T560 mit Tapatalk

Was genau hast Du von dem, was Du angesehen hast und was zu Deiner Frage passt, nicht verstanden?
Titel: Antw:Zeistempel zur weiteren Verarbeitung speichern
Beitrag von: sash.sc am 26 Juni 2016, 08:07:00
Habe es bis jetzt geschafft mit

set test {[localtime)}


das Datum und die Uhrzeit in das state des Dummy "test" zu schreiben. Jetzt brauche ich aus dem state nur die Zeit, damit ich auf dieser Zeit meine Steuerung aufbauen kann.

bei auslesen der Zeit komme ich jetzt nicht weiter.
Titel: Antw:Zeistempel zur weiteren Verarbeitung speichern
Beitrag von: Ellert am 26 Juni 2016, 09:06:20
Du wolltest doch das Format hms, warum nimmst Du nicht diese Variable, wie in den Perl Besonderheiten der Commandref beschrieben, statt time?
Titel: Antw:Zeistempel zur weiteren Verarbeitung speichern
Beitrag von: sash.sc am 26 Juni 2016, 11:30:36
Habe den Wald vor lauter Bäumen nicht gesehen :o
Habe mit dem 1. DOIF bei Unterschreitung des Lichtwertes die Zeit {(localtime)} in den 1. Dummy geschrieben.
Mit dem 2. DOIF die Zeit aus dem 1. Dummy lesen und nur die Zeit dann in einen 2. Dummy schreiben zur weiter Verabeitung.

Es geht bestimmt auch einfacher !?  :-\


define test dummy
define test_1 dummy
define test doif ([lichtsens:Indikator:d] < 90) (set test {(localtime)}
define test_x doif ([lichtsens:Indikator:d] < 90) (set test_1 {[test:state:"(\d\d):(\d\d):(\d\d)":"$1:$2:$3"]})
attr test wait 300
attr test_x wait 301
attr


Mal schauen ob das heute funktioniert !

Gruss
Sascha
Titel: Antw:Zeistempel zur weiteren Verarbeitung speichern
Beitrag von: Ellert am 26 Juni 2016, 13:57:21
Es gibt viele Möglichkeiten, ich habe vermutet Dir fällt dieser Hinweis beim Lesen der Perl-Besonderheiten auf:
ZitatWeiterhin enthät $hms die Zeit in dem HH:MM:SS Format.

Damit wäre dann auch
setreading <Name> Zeit_wo_der_Wert_unterschritten_wurde {($hms)}
möglich.