FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: UweUwe am 24 Juli 2019, 19:19:17

Titel: At Frage
Beitrag von: UweUwe am 24 Juli 2019, 19:19:17
Hallo,
würde gerne meinen funktionierenden At Befehl für meine Rolladensteuerung:
*{sunrise(0,"7:55","8:30")} set RolladenAlle pct 100 erweitern. Aktuell fährt der Befehl zuverlässig jeden Morgen abhängig vom Sonnenstand zwischen 7:55 und 8:30 alle "RolladenAlle" hoch.

Ich möchte dies erweitern um die Bedingung, dass er nur hochfährt, falls die von Proplanta vorhergesagte Tageshöchsttemperatur für den aktuellen Tag < 25 Grad Celsius ist:
ZitatW_HN ist der name meines Proplanta Wetter devices
Zitatfc0_tempMax sollte das reading für die Tageshöchsttemperatur für den aktuellen Tag sein

Hab mir folgende DEV überlegt, die aber leider nicht tut!
*[{sunrise(0,"7:55","8:30")}] and [ReadingsVal(W_HN, fc0_tempMax, 20) < 25]  (set RolladenAlle pct 100)

Was mache ich falsch?
Titel: Antw:At Frage
Beitrag von: Gisbert am 24 Juli 2019, 19:24:39
Hallo Uwe2 ;D

die Lösung dürfte vermutlich nicht schwer sein, sie würde aber deutlich einfacher ausfallen, wenn du die raw-Definition deines funktionierenden Devices postest.
Die gewünschte Erweiterung geht aus deinem Beitrag hervor.

Viele Grüße Gisbert
Titel: Antw:At Frage
Beitrag von: UweUwe am 24 Juli 2019, 20:00:55
Hallo Gisbert,

ich verstehe deine Antwort nicht.
Zitatwenn du die raw-Definition deines funktionierenden Devices postest.

ZitatDie gewünschte Erweiterung geht aus deinem Beitrag hervor.

Merci


Titel: Antw:At Frage
Beitrag von: Gisbert am 24 Juli 2019, 20:32:50
Hallo Uwe,

du wählst das infrage kommende Device aus, du wählst unten Raw definition aus und kopierst den Inhalt des Fensters in diesem Thread.

Viele​ Grüße​ Gisbert​
Titel: Antw:At Frage
Beitrag von: amenomade am 24 Juli 2019, 20:59:38
Syntax für ein "at" ist :
at <timespec> Befehl
Du kannst nicht einfach diese <timespec> mit anderen Bedingungen mischen. Diese andere Bedingungen müssen im Befehl getestet werden. Oder das ist kein "at" mehr, sondern du wechselst auf ein DOIF.

Es gibt mehrere Möglichkeiten. Eine davon ist der IF fhem-Befehl: https://fhem.de/commandref_DE.html#IF

Etwas in der Art:

*{sunrise(0,"7:55","8:30")} IF ([W_HN:fc0_tempMax] < 25) (set RolladenAlle pct 100)

Alternativ kann man über Perl gehen:
*{sunrise(0,"7:55","8:30")} { if (ReadingsVal(W_HN, fc0_tempMax, 20) < 25) {fhem "set RolladenAlle pct 100"}}

Wichtig ist bei dem "at" : die Zeitbedingung bleibt alleine! Nur die steuert und triggert
Auf Deutsch würdest Du nicht sagen: "Jeden Tag um 7:55 Uhr und Temperatur kleiner als 25, tue das", sondern eher: "Jeden Tag um 7:55, wenn Temperatur kleiner als 25, dann..."
Titel: Antw:At Frage
Beitrag von: UweUwe am 24 Juli 2019, 22:21:30
Merci amenomade ,
werde ich ausprobieren ...melde mich ..
Titel: Antw:At Frage
Beitrag von: MCh76 am 24 Juli 2019, 22:31:13
oder gleich mal das tolle Modul AutoShuttersControl ausprobieren. Habe ich seit Beginn der Woche im Einsatz und bin begeistert. Da könntest du bspw. die Rolladen morgens hochfahren und bei Erreichen bestimmter Grenzwerte wieder beschatten.
Titel: Antw:At Frage
Beitrag von: Beta-User am 25 Juli 2019, 07:30:36
Das mit ASC ist m.E. erst der übernächste Schritt, erst sollte "man" mal verstanden haben, wie man von FHEM "nach Perl" kommt und wieder zurück.

@amenomade: Fehlen da nicht noch ein paar Quotes?