FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: maci am 18 März 2017, 19:56:02

Titel: at Zeitangabe
Beitrag von: maci am 18 März 2017, 19:56:02
Hallo,

Ich habe mir mehrere Dummys angelegt wo ich vorgaben speichere.
Bei Zeitangaben mache ich es so:
define Pumpe_Ein dummy
attr Pumpe_Ein room 2.09_Heizung_Vorgaben
attr Pumpe_Ein setList state:AUS,03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06$
attr Pumpe_Ein sortby 10
attr Pumpe_Ein webCmd state


Wenn ich nun allgemeine Freigaben nach Zeit machen will hätte ich es so gemacht:
define HeizungspumpeON at *Pumpe_Ein set Freigabe_Heizungspumpe on
attr HeizungspumpeON room 9.05_interne_Schalter


Doch das will fhem nicht, denn ich bekomme diese Meldung:
Wrong timespec Pumpe_Ein: either HH:MM:SS or {perlcode} Unknown command defineHeizungspumpeOFF, try help.

Auch diese Variante funktioniert nicht:
define HeizungspumpeON at *[Pumpe_Ein] set Freigabe_Heizungspumpe on
attr HeizungspumpeON room 9.05_interne_Schalter


Dass ich das als Perl angebe, wird auch nicht gehen, denn der Dummyinhalt ist ja keine Perl Inhalt.

Lässt sich das lösen?
Titel: Antw:at Zeitangabe
Beitrag von: KernSani am 18 März 2017, 20:09:46
Readings eines devices kannst du mit den perl-Funktionen Value (für den state) bzw. ReadingsVal (für alle Readings) auslesen.

Gick mal hier (https://fhem.de/commandref.html#perl)
Titel: Antw:at Zeitangabe
Beitrag von: viegener am 18 März 2017, 22:00:46
Ich denke die Angabe eines Zeitpunkts der in einem Dummy definiert ist geht am ehesten mit DOIF und in der commandref sieht man das auch in den Beispielen für Zeitsteuerung --> Achtung bei DOIF müssen dann doppelte [] stehen, einmal für Zeitsteuerung und einmal für den Device/reading

siehe einfach in der commandref für DOIF
https://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung (https://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung)
Titel: Antw:at Zeitangabe
Beitrag von: maci am 19 März 2017, 08:30:59
Zitat von: viegener am 18 März 2017, 22:00:46
Ich denke die Angabe eines Zeitpunkts der in einem Dummy definiert ist geht am ehesten mit DOIF und in der commandref sieht man das auch in den Beispielen für Zeitsteuerung --> Achtung bei DOIF müssen dann doppelte [] stehen, einmal für Zeitsteuerung und einmal für den Device/reading

siehe einfach in der commandref für DOIF
https://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung (https://fhem.de/commandref_DE.html#DOIF_Zeitsteuerung)

Ich habe das ganze ein DOIF eingebaut. Hier funktioniert es ohne Probleme.
Ich bin bei kurzen Tests draufgekomen, dass es an der anderen Stelle zu Fehlfunktionen gekommen wäre.
Titel: Antw:at Zeitangabe
Beitrag von: Ellert am 19 März 2017, 11:40:19
Zitat von: maci am 19 März 2017, 08:30:59
Ich habe das ganze ein DOIF eingebaut. Hier funktioniert es ohne Probleme.
Ich bin bei kurzen Tests draufgekomen, dass es an der anderen Stelle zu Fehlfunktionen gekommen wäre.

Du könntest die setList auch in das DOIF einbauen, etwa so:

define Pumpe_Ein DOIF ([[$SELF:P_ein]]) (set Freigabe_Heizungspumpe on) DOELSEIF  ([[$SELF:P_aus]]) (set Freigabe_Heizungspumpe off)
attr Pumpe_Ein readingList P_ein P_aus
attr Pumpe_Ein setList P_ein:03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06 P_aus:03:00,03:15,03:30,03:45,04:00,04:15,04:30,04:45,05:00,05:15,05:30,05:45,06:00,06:15,06
attr Pumpe_Ein webCmd P_ein:P_aus
Titel: Antw:at Zeitangabe
Beitrag von: viegener am 19 März 2017, 13:22:50
Zitat von: maci am 19 März 2017, 08:30:59
Ich habe das ganze ein DOIF eingebaut. Hier funktioniert es ohne Probleme.
Ich bin bei kurzen Tests draufgekomen, dass es an der anderen Stelle zu Fehlfunktionen gekommen wäre.

Das verstehe ich nicht Du definierst doch ein at und kein DOIF oben, was heisst Du hast es in ein DOIF eingebaut und was für Fehlfunktionen?