DoIf Ich find den Fehler nicht

Begonnen von DieterL, 27 März 2015, 07:02:15

Vorheriges Thema - Nächstes Thema

DieterL

könnte evtl. einmal jemand drüberschauen.

define Wohnzrolloreab DOIF ([{sunset(-1800)}] and [Balkontuer] eq "off") (set Wohnzrollolre off,set pushmsg message Die Rolläden wurden heruntergefahren)

define Wohnzrolloreauf DOIF ([{sunrise(+3600)}] and [Balkontuer] eq "off") (set Wohnzrollolre on,set pushmsg message Die Rolläden wurden heraufgefahren)

was mache ich falsch. Es funktioniert nicht. !?
Vielen Dank im Voraus.
Raspi 2, Cul868, CUL433, Jeelink,HM-USB,4 *ITM100, 6* FHT8V, 6*CMR500, x-FS20 Komp., X- FS20 ST-4, 6* FS20 DI22-4 , YWT-8500, 4* Sonos Play:1, 2* Sonos Pl5, div selbstgestrickte Sensoren, 5* S555TH,9 * LaCrosse TX 29-IT, Philips Hue, 4* Piri-2,HomeMatic 4-Kanal-Schalter, 2*Velux,Bluetooth Stick

Otto123

Ich denke da fehlen Klammern, so eventuell?
Zitat von: DieterL am 27 März 2015, 07:02:15
define Wohnzrolloreab DOIF ([{sunset(-1800)}] and ([Balkontuer] eq "off")) (set Wohnzrollolre off,set pushmsg message Die Rolläden wurden heruntergefahren)

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

Damian

Zitat von: Otto123 am 27 März 2015, 11:46:56
Ich denke da fehlen Klammern, so eventuell?
Gruß Otto

Es fehlen hier keine Klammern, er hat kein do always definiert.

Da es eine Problemstellung ist, würde ich nur ein DOIF nehmen, dann so:

define Wohnzrolloreab DOIF ([{sunset(-1800)}] and [Balkontuer] eq "off")
  (set Wohnzrollolre off,set pushmsg message Die Rolläden wurden heruntergefahren)
DOELSEIF ([{sunrise(+3600)}] and [Balkontuer] eq "off")
  (set Wohnzrollolre on,set pushmsg message Die Rolläden wurden heraufgefahren)


Hier braucht man kein do always, denn das Modul kennt hier zwei verschiedene Zustände, die sich gegenseitig ausschließen.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Otto123

Hallo Damian,

sorry da lag ich falsch. Das mit dem do always, habe ich mir jetzt aufmerksam durchgelesen. Alles gut und ausführlich beschrieben, keine Frage.
Aber ich glaube, die Beantwortung der Frage: Wann brauche ich "do always" wird schwierig bleiben.  :-\
Man muss sich an Deinen Beispielen entlang hangeln und ganz genau überlegen.

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

Damian

Zitat von: Otto123 am 27 März 2015, 15:23:59
Hallo Damian,

sorry da lag ich falsch. Das mit dem do always, habe ich mir jetzt aufmerksam durchgelesen. Alles gut und ausführlich beschrieben, keine Frage.
Aber ich glaube, die Beantwortung der Frage: Wann brauche ich "do always" wird schwierig bleiben.  :-\
Man muss sich an Deinen Beispielen entlang hangeln und ganz genau überlegen.

Gruß Otto

Zu do always habe ich schon mal etwas geschrieben. ich habe die do always Einstellung bewusst nicht als Default-Einstellung genommen, um sich vom notify abzugrenzen. Viele User benutzen notify für zyklisch sendende Sensoren der Art: "notify * if wert>0 dann set bla on" und merken nicht was sie damit produzieren. DOIF merkt sich Zustände und wiederholt im Normalfall keine Kommandos. Wenn man ein Kommando bewusst wiederholen möchte, dann muss man das bei DOIF halt per do always angeben.

Und auch dieses habe ich nicht umsonst in die Commandref aufgenommen:

ZitatStandardmäßig, ohne das Attribut do always, wird das Wiederholen desselben Kommmandos vom Modul unterbunden. Daher sollte nach Möglichkeit eine Problemlösung mit Hilfe eines und nicht mehrerer DOIF-Module realisiert werden, getreu dem Motto "wer die Lampe einschaltet, soll sie auch wieder ausschalten". Dadurch wird erreicht, dass unnötiges (wiederholendes) Schalten vom Modul unterbunden werden kann, ohne dass sich der Anwender selbst darum kümmern muss.

Gruß

Damian

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

Otto123

Verstehe ich das richtig , dass das "umgekehrte" Problem beim notify quasi mit  event-on-change-reading behoben wird?

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

DieterL

hui.....vielen vielen Dank. Da wär ich ja im Leben nue von allein drauf gekommen  :o
Raspi 2, Cul868, CUL433, Jeelink,HM-USB,4 *ITM100, 6* FHT8V, 6*CMR500, x-FS20 Komp., X- FS20 ST-4, 6* FS20 DI22-4 , YWT-8500, 4* Sonos Play:1, 2* Sonos Pl5, div selbstgestrickte Sensoren, 5* S555TH,9 * LaCrosse TX 29-IT, Philips Hue, 4* Piri-2,HomeMatic 4-Kanal-Schalter, 2*Velux,Bluetooth Stick

Damian

#7
Zitat von: Otto123 am 27 März 2015, 18:02:28
Verstehe ich das richtig , dass das "umgekehrte" Problem beim notify quasi mit  event-on-change-reading behoben wird?

Gruß Otto

Nicht ganz.  event-on-change-reading bezieht sich auf die Events - also Trigger (Input). Das kann man auf für DOIF nutzen.

DOIF arbeitet im Gegensatz zu notify je nach Definition mit verschiedenen Zuständen (Output), die es sich merkt und danach schaltet: wiederholend oder eben nicht.

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Otto123

Danke Damian.
Ich werde heute mal ein paar at's in einem DOIF zusammenfassen. Mal sehen ob es funktioniert :)

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

Damian

Zitat von: Otto123 am 28 März 2015, 00:51:33
Danke Damian.
Ich werde heute mal ein paar at's in einem DOIF zusammenfassen. Mal sehen ob es funktioniert :)

Gruß Otto

Warum sollte es nicht funktionieren? Ich benutze schon länger keine ats und keine notifys mehr ;)

Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Otto123

Hall Damian,

hat funktioniert :)
Das Problem ist ja garantiert nicht das DOIF sondern der Kerl der die DEF  eintippt  ;)

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

DieterL

ich bräuchte noch einmal eure hilfe....ich krieg es nicht ans laufen


define Wohnzrolloreab DOIF ([{sunset(-3600)}|0123456] and [Balkontuer] eq "off") (set Wohnzrollolre off,set pushmsg message Die Rolläden wurden heruntergefahren)

define Wohnzrolloreauf DOIF ([{sunrise(+3601)}|0123456] and [Balkontuer] eq "off") (set Wohnzrollolre on, set pushmsg message Die Rolläden wurden heraufgefahren

auch nicht mir dem attr always
ich bin am verzweifeln  :-[
Raspi 2, Cul868, CUL433, Jeelink,HM-USB,4 *ITM100, 6* FHT8V, 6*CMR500, x-FS20 Komp., X- FS20 ST-4, 6* FS20 DI22-4 , YWT-8500, 4* Sonos Play:1, 2* Sonos Pl5, div selbstgestrickte Sensoren, 5* S555TH,9 * LaCrosse TX 29-IT, Philips Hue, 4* Piri-2,HomeMatic 4-Kanal-Schalter, 2*Velux,Bluetooth Stick

Damian

Zitat von: DieterL am 03 April 2015, 09:57:36
ich bräuchte noch einmal eure hilfe....ich krieg es nicht ans laufen


define Wohnzrolloreab DOIF ([{sunset(-3600)}|0123456] and [Balkontuer] eq "off") (set Wohnzrollolre off,set pushmsg message Die Rolläden wurden heruntergefahren)

define Wohnzrolloreauf DOIF ([{sunrise(+3601)}|0123456] and [Balkontuer] eq "off") (set Wohnzrollolre on, set pushmsg message Die Rolläden wurden heraufgefahren

auch nicht mir dem attr always
ich bin am verzweifeln  :-[

Welchen Sinn macht das alle Wochentage der Woche aufzuzählen? Und Zitat aus der Commanref zu DOIF:

ZitatFalls ein Komma nicht als Trennzeichen zwischen FHEM-Befehlen gelten soll, so muss der FHEM-Ausdruck zusätzlich in runde Klammern gesetzt werden:

define di_light DOIF ([08:00]) ((set lamp1,lamp2 on),set switch on)

Dann eher:

define Wohnzrolloreab DOIF ([{sunset(-3600)}] and [Balkontuer] eq "off")
  ((set Wohnzrollolre off,set pushmsg message Die Rolläden wurden heruntergefahren))
DOELSEIF ([{sunrise(+3601)}] and [Balkontuer] eq "off")
  ((set Wohnzrollolre on, set pushmsg message Die Rolläden wurden heraufgefahren))


Gruß

Damian



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

DieterL

Hall Damian,
wenn ich so mache wie du es oben angegeben hast bekomme ich diesen Fehler:


error
set Wohnzrollolre off,set pushmsg message Die Rolläden wurden heruntergefahren: Unknown argument off,set, choose one of off:noArg on:noArg blink toggle on-for-timer on-till off-for-timer intervals off-till
2015-04-03 19:41:54
Raspi 2, Cul868, CUL433, Jeelink,HM-USB,4 *ITM100, 6* FHT8V, 6*CMR500, x-FS20 Komp., X- FS20 ST-4, 6* FS20 DI22-4 , YWT-8500, 4* Sonos Play:1, 2* Sonos Pl5, div selbstgestrickte Sensoren, 5* S555TH,9 * LaCrosse TX 29-IT, Philips Hue, 4* Piri-2,HomeMatic 4-Kanal-Schalter, 2*Velux,Bluetooth Stick

Damian

#14
Zitat von: DieterL am 04 April 2015, 00:02:45
Hall Damian,
wenn ich so mache wie du es oben angegeben hast bekomme ich diesen Fehler:


error
set Wohnzrollolre off,set pushmsg message Die Rolläden wurden heruntergefahren: Unknown argument off,set, choose one of off:noArg on:noArg blink toggle on-for-timer on-till off-for-timer intervals off-till
2015-04-03 19:41:54

ja, mein Fehler, die doppelten Klammern sind hier falsch, denn das Komma soll ja ein Trennzeichen zwischen den set-Befehlen sein, also wie ich schon am Anfang bereits gepostet habe:

define Wohnzrolloreab DOIF ([{sunset(-3600)}] and [Balkontuer] eq "off")
  (set Wohnzrollolre off,set pushmsg message Die Rolläden wurden heruntergefahren)
DOELSEIF ([{sunrise(+3601)}] and [Balkontuer] eq "off")
  (set Wohnzrollolre on, set pushmsg message Die Rolläden wurden heraufgefahren)


Gruß

Damian
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF