FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: elektro_rainer am 13 Juli 2017, 11:08:17

Titel: DOIF mit Zeitbegrenzung
Beitrag von: elektro_rainer am 13 Juli 2017, 11:08:17
Hallo,

ich möchte feststellen ob es Außen kühler als innen ist und mit Zeitlich begrenzt eine Nachricht schicken, später sollen dann die Rolladen gesteuert werden.... aber ich scheitere schon am DOIF....

Folgendes DOIF möchte ich nehmen:
define Rollo_Auto DOIF ([KNX_1002] < [KNX_8302]) ([16:00-22:00] set teleBot message Rolladen hoch) DOELSE ([08:00-15:00] set teleBot message Rolladen runter)

ich bekomme immer wieder folgende Fehlermeldung:
[16:00-22:00] set teleBot message Rolladen hoch: Unknown command [16:00-22:00], try help.

Hat jemand eine Idee für mich?
Titel: Antw:DOIF mit Zeitbegrenzung
Beitrag von: pc1246 am 13 Juli 2017, 12:07:50
Hallo Rainer
Bei DOIF gibt es einen Bedingungsteil und einen Ausfuehrungsteil. Du aber hast in die Ausfuehrungsteile jeweils noch eine Bedingung reingetan. Das geht so nicht. Du musst die Urzeit auch in den Bedingungsteil packen!
Gruss Christoph
Titel: Antw:DOIF mit Zeitbegrenzung
Beitrag von: CoolTux am 13 Juli 2017, 12:14:56
Am besten Du schaust Dir mal in aller Ruhe für eine Stunde die Commandref zu DOIF an. Wenn Du da 3-4 Beispiele Gedanklich korrekt nachvollziehen kannst, hast Du DOIF ein bisschen Verstanden und wirst Deine Aufgabe ohne Probleme selbst lösen können.


define <name> DOIF (<Bedingung>) (<Befehle>) DOELSEIF (<Bedingung>) (<Befehle>) DOELSEIF ... DOELSE (<Befehle>)
Titel: Antw:DOIF mit Zeitbegrenzung
Beitrag von: elektro_rainer am 13 Juli 2017, 13:30:44
danke euch,.. machmal sieht man den wald vor lauter bäumen nicht...
das hier scheint nun zu funktionieren:

define RolladenAutomatik DOIF \
([16:00-22:00] & ([KNX_1002] < [KNX_8302])) (set teleBot message Rolladen hochf) DOELSE \
([08:00-15:00] & ([KNX_1002] > [KNX_8302]))  (set teleBot message Rolladen runter)

merci ;-)
Titel: Antw:DOIF mit Zeitbegrenzung
Beitrag von: nils_ am 13 Juli 2017, 14:07:16
Zitat von: elektro_rainer am 13 Juli 2017, 13:30:44
das hier scheint nun zu funktionieren:

das vermute ich nicht.
bei DOELSE gibt es keinen Bedinungsteil mehr, den gibt es wenn dann nur bei DOELSEIF

siehe auch
Zitat von: CoolTux am 13 Juli 2017, 12:14:56
define <name> DOIF (<Bedingung>) (<Befehle>) DOELSEIF (<Bedingung>) (<Befehle>) DOELSEIF ... DOELSE (<Befehle>)


ob das einzelne & in perl/DOIF geht weiß ich so auf anhieb nicht (vermute aber nein!).
mach entweder "&&" oder "and"