Hauptmenü

Ich bin zu blöd....

Begonnen von SnakeZZ, 14 Dezember 2018, 21:01:00

Vorheriges Thema - Nächstes Thema

SnakeZZ

Hallo zusammen,

ich kämpfe etwas mit einer eigentlich simplen Anforderung, die ich gerne mit DOIF umsetzen würde.
Meine Wetterstation liefert eine Aussentemperatur. Solange es unter 1°C Aussentemperatur hat, würde ich gerne einmal pro Stunde einen ZWave Aktor für 15 Minuten einschalten.

Mein DOIF sieht so aus:


([Wetterstation:temperature] < 1 ) (set pushmsg msg 'Frostwächter: Heize für 15 min', set draussen.Elektrokasten.Sw05.01 on-for-timer 900)


Ich hab dann noch ein
attr do resetwait

sowie ein
attr wait 3600

hinzugenommen.

Es will so aber nicht. Was mach ich falsch?

Beste Grüsse, SnakeZZ

Otto123

Hi,

hast Du sowas versucht -> https://commandref.fhem.de/commandref_DE.html#DOIF_Zeitangaben_nach_Zeitraster_ausgerichtet

trifft das nicht Deinen Anwendungsfall? Kombiniert mit Deiner Bedingung ...

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

SnakeZZ

Vielen Dank für die Hinweise!

Ich habs jetzt wie folgt gelöst:


([+01:00] and [Wetterstation:temperature] < 1 ) (set pushmsg msg 'Frostwächter: Heize für 15 min', set draussen.Elektrokasten.Sw05.01 on-for-timer 900)


in Kombination

mit einem

attr do always

Damit mach ich jede Stunde die Heizung für 15 Minuten an, sobald die Aussentemperatur unter 1°C liegt.

Gruss,

SnakeZZ

Deckoffizier

Hallo,

ZitatEs will so aber nicht. Was mach ich falsch?

bin auch nur DOIF Novice....
aber könnte es daran gelegen haben aus der commandref

Zitat
Sollen Verzögerungen innerhalb von Befehlsfolgen stattfinden, so müssen diese Kommandos in eigene Klammern gesetzt werden, das Modul arbeitet dann mit Zwischenzuständen.

Beispiel: Bei einer Befehlssequenz, hier: (set lamp1 on, set lamp2 on), soll vor dem Schalten von lamp2 eine Verzögerung von einer Sekunde stattfinden. Die Befehlsfolge muss zunächst mit Hilfe von Klammerblöcke in eine Befehlssequenz aufgespalten werden: (set lamp1 on)(set lamp2 on). Nun kann mit dem wait-Attribut nicht nur für den Beginn der Sequenz, sondern für jeden Klammerblock eine Verzögerung, getrennt mit Komma, definieren werden, hier also: wait 0,1. Damit wird lamp1 sofort, lamp2 eine Sekunde danach geschaltet. Die Verzögerungszeit bezieht sich immer auf den vorherigen Befehl.

Gruß
Hans-Jürgen
FHEM 5.8 auf "yakkaroo Emu A1FL.1" mit CUL 868MHz, SIGNALduino,2 1Wire USB Busmaster, diverse 1 Wire Sensoren,Landroid,Aeotec USB Dongle Z-Wave Plus

Per

Zitat von: Deckoffizier am 20 Dezember 2018, 20:47:40aber könnte es daran gelegen haben
Nein.

@SnakeZZ
ABER: wenn es aus irgend einem Grund zur vollen Stunde nicht kalt genug ist oder der Frost zu stark ist, kommt dein DOIF an seine Grenzen.
Und:
Zitat von: SnakeZZIch bin zu blöd....
ist zumindest kein sinnvoller Betreff. "Stündliche Ausführung" oder so wäre treffender.

Damian

DOIF ([Wetterstation:temperature] < 1 ) (set pushmsg msg 'Frostwächter: Heize für 15 min', set draussen.Elektrokasten.Sw05.01 on-for-timer 900)
attr repeatcmd 3600


ohne do always
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF