FHEM Forum

FHEM - Hausautomations-Systeme => 1Wire => Thema gestartet von: Grave am 07 Juli 2015, 10:50:54

Titel: 1 Wire nicht im INtervall sondern zur vollen Stunde
Beitrag von: Grave am 07 Juli 2015, 10:50:54
Hi,

gibt es eine Möglichkeit, einen 1 Wire Sensor nicht im Interval sondern zu jeder vollen Stunde abzufragen?

Gruß Grave
Titel: Antw:1 Wire nicht im INtervall sondern zur vollen Stunde
Beitrag von: Dr. Boris Neubert am 07 Juli 2015, 12:13:13
OWDevice, interval aus sehr groesse Zahl setzen, mit at und get die Readings im Stundentakt abrufen.
Bitte vorher testen, ob get tatsächlich die Werte neu abruft.
Boris
Titel: Antw:1 Wire nicht im INtervall sondern zur vollen Stunde
Beitrag von: Grave am 07 Juli 2015, 13:35:34
Ich habs so gelöst bekommen:

Zitatdefine evtRoutineEveryMinute at +*00:01:00 {my $a=ReadingsVal("Gaszaehler","counters.A",0);;fhem ("set Verbrauch_Stunde $a")}

Da ich noch am Anfang von Perl stehe frage ich mich, ob man es einfacher machen kann.
Titel: Antw:1 Wire nicht im INtervall sondern zur vollen Stunde
Beitrag von: Dr. Boris Neubert am 07 Juli 2015, 16:46:16
Hallo,

dadurch rufst Du den Befehl jede Minute auf. Das geht einfacher mit dem Intervall im define. Du möchtest den Befehl aber zur vollen Stunde aufrufen. Das geht mit dem Attribut alignTime am at.

Warum machst Du nicht einfach

define foo at +*01:00:00 get Gaszaehler Verbrauch_Stunde
attr foo alignTime 00:00:00


? Außerdem möchtest Du vermutlich gerne noch userReadings verwenden, um den Zählerstand in ein Volumen umzurechnen. Siehe bitte dazu die commandRef.

Grüße
Boris
Titel: Antw:1 Wire nicht im INtervall sondern zur vollen Stunde
Beitrag von: Grave am 07 Juli 2015, 18:19:14
Sorry, hab ich vergessen zu erwähnen. Um nicht jedes mal eine Stunde zu warten, um zu kontrollieren, ob der Code funktioniert, hab ich das ganze auf eine Minute gestellt. Hab es natürlich auf eine Stunde geändert.
Titel: Antw:1 Wire nicht im INtervall sondern zur vollen Stunde
Beitrag von: Grave am 07 Juli 2015, 19:37:48
Wenn ich in der Eingabe oben "get gaszaehler counters.A" eingebe, bekomme ich den Wert ausgegeben. Diesen Wert würde ich jetzt gerne in einer Variablen speichern. Hab´s mit "Variable=get gaszaehler counters.A" versucht. Funktioniert aber nicht.
Titel: Antw:1 Wire nicht im INtervall sondern zur vollen Stunde
Beitrag von: Dr. Boris Neubert am 07 Juli 2015, 19:45:08
Variable???

Du musst bitte erläutern, was Du beabsichtigst.

Allerdings sind wir in diesem Thread und Board Off-Topic. Bitte zu Anfängerfragen oder Automatisierung.

Grüße
Boris