Doif zum Schalten nutzen. Mit Logo Jalousien steuern

Begonnen von Wasserwerk33, 24 Juli 2018, 19:22:58

Vorheriges Thema - Nächstes Thema

Wasserwerk33

Hallo Leute.
Habe eine Logo zum Jaoulsien steuern und Fhem. Nun wollte ich das meine Jalousien selbstständig fahren wenn ich den passenden schalter für anschalte.

Nur ich habe warscheinlich einen fehler in meinem Doif. Habe meine anderen schon angeschaut finde ich nur nicht. Hat jemand nen tipp?
defmod Wohnzimmer_Sonnenschutz DOIF ([16:00-20:30] and [Sonnenschutz_UG: "on"]) (set Wohnzimmer_runter TRIGGER) DOELSEIF ([20:31] and [Sonnenschutz_UG: "on"]) (set Wohnzimmer_hoch TRIGGER)
attr Wohnzimmer_Sonnenschutz room Sonnenschutz

setstate Wohnzimmer_Sonnenschutz initialized
setstate Wohnzimmer_Sonnenschutz 2018-07-24 17:35:38 cmd 0
setstate Wohnzimmer_Sonnenschutz 2018-07-24 17:35:38 mode enabled
setstate Wohnzimmer_Sonnenschutz 2018-07-24 17:35:38 state initialized
setstate Wohnzimmer_Sonnenschutz 2018-07-24 17:35:38 timer_01_c01 25.07.2018 14:00:00
setstate Wohnzimmer_Sonnenschutz 2018-07-24 17:35:38 timer_02_c01 24.07.2018 20:30:00
setstate Wohnzimmer_Sonnenschutz 2018-07-24 17:35:38 timer_03_c02 24.07.2018 20:31:00



Das ist ein Code von meiner Logo
defmod Wohnzimmer_hoch S7_DWrite db 0 8.0
attr Wohnzimmer_hoch IODev myLogo
attr Wohnzimmer_hoch room Logo,Sonnenschutz
attr Wohnzimmer_hoch webCmd TRIGGER


Haben den Trigger befehl per hand in Fhem ausgeführt. Also in der Logo Steuerung dort klappt er. Also ist dort nicht der Fehler.

Hat wer nen vielleicht nen Tip?

Danke schon mal.

Otto123

#1
Hi,

ich halte dies für falsch:[Sonnenschutz_UG: "on"] -> [Sonnenschutz_UG:"on"]

Das hier
[16:00-20:30] and [Sonnenschutz_UG:"on"] würde schalten wenn zwischen 16:00 und 20:30 ein Event mit on in Sonnenschutz_UG kommt. Könnte funktionieren, falls es diesen Event gibt.

das hier [20:31] and [Sonnenschutz_UG:"on"] würde schalten wenn exakt 20:31 ein Event mit on in Sonnenschutz_UG kommt. Ist praktisch unmöglich, es sei denn Sonnenschutz_UG wird von der gleichen Uhr auf on getriggert :)
ZitatAnwendungsbeispiel: wie oben, jedoch wird hier nur das Ereignis (welches im Eventmonitor erscheint) ausgewertet und nicht der Status von "remotecontrol" wie im vorherigen Beispiel

define di_garage DOIF ([remotecontrol:"on"]) (set garage on) DOELSEIF ([remotecontrol:"off"]) (set garage off)

In diesem Beispiel wird nach dem Vorkommen von "on" innerhalb des Events gesucht. Falls "on" gefunden wird, wird der Ausdruck wahr und der DOIF-Fall wird ausgeführt, ansonsten wird der DOELSEIF-Fall entsprechend ausgewertet. Die Auswertung von reinen Ereignissen bietet sich dann an, wenn ein Modul keinen Status oder Readings benutzt, die man abfragen kann, wie z. B. beim Modul "sequence". Die Angabe von regulären Ausdrücken kann recht komplex werden und würde die Aufzählung aller Möglichkeiten an dieser Stelle den Rahmen sprengen. Weitere Informationen zu regulären Ausdrücken sollten in der Perl-Dokumentation nachgeschlagen werden. Die logische Verknüpfung "and" mehrerer Ereignisse ist nicht sinnvoll, da zu einem Zeitpunkt immer nur ein Ereignis zutreffen kann.
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

Zitatwürde schalten wenn exakt 20:31 ein Event mit on in Sonnenschutz_UG kommt. Ist praktisch unmöglich, es sei denn Sonnenschutz_UG wird von der gleichen Uhr auf on getriggert :)

Es ist grundsätzlich unmöglich, denn die Events und Timer werden nacheinander abgearbeitet. Ein Event-Trigger und Timer-Trigger können bei DOIF niemals gleichzeitig wahr sein.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Wasserwerk33

Okay. Also habe ich das richtig verstanden. Das ich die Uhrzeit verändern muss?
Das ich mit einem Eventmonitor arbeiten muss??
Den die Jalousien sollen ja von 16:00-20:30 uhr Schalten wenn wir den zusätzlichen schalter anschalten. um 20:31 sollen sie dann wieder hochfahren.

Otto123

#4
1. nein
2. Immer eine gute Idee aber hat jetzt nicht unbedingt etwas mit dem falschen Code zu tun. Deine Frage klingt unwissend. https://wiki.fhem.de/wiki/Event_monitor
3. dann musst Du um 20:31 den Zustand abfragen [?Sonnenschutz_UG] eq "on" also
([20:31] and [?Sonnenschutz_UG] eq "on")
https://commandref.fhem.de/commandref_DE.html#DOIF_Zeitintervalle_Readings_und_Status_ohne_Trigger


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

Wasserwerk33

Okay nochmal den Referenz vom Doif gelesen. Also wenn ich ein Fragen zeichen vor der Abfrage mache dann bedeutet dieser nur als zustand und nicht als Trigger befehl?


Otto123

Ja, Du hattest allerdings ursprünglich die Auswertung des Events vorgenommen, das ist nochmal etwas anderes.
Alles gut erklärt in der Doku :)
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: Wasserwerk33 am 24 Juli 2018, 21:24:36
Okay nochmal den Referenz vom Doif gelesen. Also wenn ich ein Fragen zeichen vor der Abfrage mache dann bedeutet dieser nur als zustand und nicht als Trigger befehl?

Das habe ich gestern versucht vereinfacht zu erklären: https://forum.fhem.de/index.php/topic,89608.msg820768.html#msg820768
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Wasserwerk33

So nun habe ich getüftelt, so sollte es doch nach dem Doif Wiki funktonieren?

([?13:00-18:00] and [Sonnenschutz_UG:"on"]) (set Garten_runter Trigger) DOELSEIF ([18:00]) (set Garten_hoch Trigger)
Das hochfahren klappt auch. Und wenn ich cmd auslöse klappt dieses auch. Sollte so doch nun funktonieren oder was meint Ihr??


Könnt ihr mir vielleicht sagen wie ich die Warnung noch wegbekomme?? Der Lichtsensor arbeitet nun mal mit % und schalten funktoniert. Zumindestens beim Licht
defmod Esszimmer_Sonnenschutz DOIF ([?7:30-13:00] and [Sonnenschutz_UG:"on"]) (set Esszimmer_runter Trigger) DOELSEIF ([14:00] or [ZWave_SENSOR_NOTIFICATION_3:luminance] < 30) (set Esszimmer_hoch Trigger)
attr Esszimmer_Sonnenschutz do always
attr Esszimmer_Sonnenschutz room Sonnenschutz

setstate Esszimmer_Sonnenschutz cmd_2
setstate Esszimmer_Sonnenschutz 2018-07-26 14:44:35 Device ZWave_SENSOR_NOTIFICATION_3
setstate Esszimmer_Sonnenschutz 2018-07-24 21:54:40 cmd 2
setstate Esszimmer_Sonnenschutz 2018-07-24 21:54:40 cmd_event ZWave_SENSOR_NOTIFICATION_3
setstate Esszimmer_Sonnenschutz 2018-07-24 21:54:40 cmd_nr 2
setstate Esszimmer_Sonnenschutz 2018-07-26 14:44:35 e_ZWave_SENSOR_NOTIFICATION_3_luminance 50 %
setstate Esszimmer_Sonnenschutz 2018-07-24 21:50:57 mode enabled
setstate Esszimmer_Sonnenschutz 2018-07-24 21:54:40 state cmd_2
setstate Esszimmer_Sonnenschutz 2018-07-26 13:00:00 timer_01_c01 27.07.2018 07:30:00
setstate Esszimmer_Sonnenschutz 2018-07-26 13:00:00 timer_02_c01 27.07.2018 13:00:00
setstate Esszimmer_Sonnenschutz 2018-07-26 14:00:00 timer_03_c02 27.07.2018 14:00:00
setstate Esszimmer_Sonnenschutz 2018-07-26 14:44:35 warning condition c02: Argument "50 %" isn't numeric in numeric lt (<)\

Otto123

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

Wasserwerk33

Danke für den letzten Tipp. Hat geholfen Danke schön.

Aber meine Steuerung schaltet einfach nicht.  :(

Wenn ich sie über cmd Auslöse fährt sie runter oder hoch. Hast du noch einen Tipp für mich?

defmod Esszimmer_Sonnenschutz DOIF ([?7:30-13:00] and [Sonnenschutz_UG:"on"]) (set Esszimmer_runter Trigger) DOELSEIF ([14:00]) (set Esszimmer_hoch Trigger)
attr Esszimmer_Sonnenschutz do always
attr Esszimmer_Sonnenschutz room Sonnenschutz

setstate Esszimmer_Sonnenschutz cmd_2
setstate Esszimmer_Sonnenschutz 2018-08-04 14:00:00 cmd 2
setstate Esszimmer_Sonnenschutz 2018-08-04 14:00:00 cmd_event timer_3
setstate Esszimmer_Sonnenschutz 2018-08-04 14:00:00 cmd_nr 2
setstate Esszimmer_Sonnenschutz 2018-07-26 22:10:34 mode enabled
setstate Esszimmer_Sonnenschutz 2018-08-04 14:00:00 state cmd_2
setstate Esszimmer_Sonnenschutz 2018-08-04 13:00:00 timer_01_c01 05.08.2018 07:30:00
setstate Esszimmer_Sonnenschutz 2018-08-04 13:00:00 timer_02_c01 05.08.2018 13:00:00
setstate Esszimmer_Sonnenschutz 2018-08-04 14:00:00 timer_03_c02 05.08.2018 14:00:00

Otto123

Moin,

wer oder was erzeugt diesen Event?
[Sonnenschutz_UG:"on"]
Mach mal ein list von Sonnenschutz_UG

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

Wasserwerk33

Hi

Das löse ich aus. Es ist ein schalter auf meinem Tablet ui.

Internals:
   ADDRESS    7.0
   AREA       db
   CHANGED   
   DB         0
   DEF        db 0 7.0
   IODev      myLogo
   LASTInputDev myLogo
   LENGTH     1
   MSGCNT     306130
   NAME       Sonnenschutz_UG
   NR         32
   POSITION   56
   STATE      off
   TYPE       S7_DWrite
   myLogo_MSGCNT 306130
   myLogo_TIME 2018-08-05 20:45:39
   READINGS:
     2018-08-05 19:57:29   state           off
Attributes:
   IODev      myLogo
   event-on-change-reading 1
   room       Logo,Sonnenschutz
   webCmd     on:off



Damian

Poste mal das entsprechende Event aus dem Eventmonitor.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Otto123

#14
Das hier
event-on-change-reading 1
ist Blödsinn! Aber nicht das Problem  ;D
Bedeutung:
Zitatevent-on-change-reading
Dieses Attribut enthält eine durch Kommata getrennte Liste von "readings". Wenn gesetzt, erzeugen nur Veränderungen der gelisteten "readings" ein Ereignis. Wenn die aktualiserten Werte der gelisteten "readings" identisch sind, wird kein Ereignis generiert.
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