Zeistempel zur weiteren Verarbeitung speichern

Begonnen von sash.sc, 25 Juni 2016, 17:29:45

Vorheriges Thema - Nächstes Thema

sash.sc

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
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Ellert

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)}

sash.sc

Stimmt. Wollte wissen, wie ich die Zeit in den Dummy schreibe.
Hast du eine Glaskugel?
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

sash.sc

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

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Ellert

Ja, es gibt es eine von FHEM bereitgestellte Perl-Variable, siehe http://fhem.de/commandref_DE.html#perl , die kannst Du statt "time" benutzen.

sash.sc

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

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Ellert

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?

sash.sc

#7
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.
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Ellert

Du wolltest doch das Format hms, warum nimmst Du nicht diese Variable, wie in den Perl Besonderheiten der Commandref beschrieben, statt time?

sash.sc

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
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Ellert

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.