Guten Abend zusammen,
ich betreibe bereits Twilight seit geraumer Zeit zum steuern meiner Rollos im Haus.
Nun habe ich die Terrasse erneuert und LED-Spots in diese eingebaut.
Anhand einer HomeMatic Steckdose kann ich die Spots auch steuern und mir daher folgendes Szenario ausgedacht:
- Terassentür ist auf (Kontakt ist im Türgriff - ergo wir sitzen draußen)
- Draußen wird es dunkel (anhand von Twilight bestimmt)
- Spots gehen an.
Das beschriebene Szenario habe ich in folgendem DOIF festgehalten:
#RAW-DEF
defmod terassenlicht_steuerung DOIF (([TC_TWILIGHT:twilight] < 80) and [Fenster_WZ:"on"]) (set Schalter_LED_Terrasse on) DOELSEIF ([Fenster_WZ:"off"]) (set Schalter_LED_Terrasse off)\
attr terassenlicht_steuerung checkReadingEvent 1
attr terassenlicht_steuerung checkall all
attr terassenlicht_steuerung room 01_Konfiguration
setstate terassenlicht_steuerung cmd_2
setstate terassenlicht_steuerung 2018-05-28 21:30:47 Device TC_TWILIGHT
setstate terassenlicht_steuerung 2018-05-28 21:26:01 cmd 2
setstate terassenlicht_steuerung 2018-05-28 21:26:01 cmd_event Fenster_WZ
setstate terassenlicht_steuerung 2018-05-28 21:26:01 cmd_nr 2
setstate terassenlicht_steuerung 2018-05-28 21:26:01 e_Fenster_WZ_events reading: off
setstate terassenlicht_steuerung 2018-05-28 21:30:47 e_TC_TWILIGHT_twilight 66.8
setstate terassenlicht_steuerung 2018-05-18 14:09:37 mode enabled
setstate terassenlicht_steuerung 2018-05-28 21:26:01 state cmd_2
Das funktioniert soweit auch gut, jedoch stolpere ich in derzeit über folgendes Fehlerbild.
Die Tür ist offen, bevor der Twilight-Wert ([TC_TWILIGHT:twilight] < 80) ist.
Nach Zeitraum x ist der Wert <80, die Tür ist weiterhin offen aber das Licht geht nicht an.
Erst wenn ich die Tür nun händisch schließe und wieder öffne, wird das Licht aktiviert.
Habe bereits das DOIF mehrfach umgestellt, jedoch komme ich nicht weiter.
Für Feedback wäre ich wirklich dankbar!
VG
Xsicht
Wenn die States exakt deinem Fehlerbild entsprechen, dann ist meines Erachtens bei Fenster_WZ on und off genau vertauscht.
Deine States sagen aus das Twilight < 80 ist und das Fenster auf off steht (offen?). Damit landest du genau im DOELSEIF. Wenn du jetzt die Tür schliesst, dann geht der Status des Fensters auf on und das Licht geht an, weil twilight < 80. Das wäre genau dein Fehlerbild.
Zitat von: xsichtasdf am 28 Mai 2018, 21:40:11
Guten Abend zusammen,
ich betreibe bereits Twilight seit geraumer Zeit zum steuern meiner Rollos im Haus.
Nun habe ich die Terrasse erneuert und LED-Spots in diese eingebaut.
Anhand einer HomeMatic Steckdose kann ich die Spots auch steuern und mir daher folgendes Szenario ausgedacht:
- Terassentür ist auf (Kontakt ist im Türgriff - ergo wir sitzen draußen)
- Draußen wird es dunkel (anhand von Twilight bestimmt)
- Spots gehen an.
Das beschriebene Szenario habe ich in folgendem DOIF festgehalten:
#RAW-DEF
defmod terassenlicht_steuerung DOIF (([TC_TWILIGHT:twilight] < 80) and [Fenster_WZ:"on"]) (set Schalter_LED_Terrasse on) DOELSEIF ([Fenster_WZ:"off"]) (set Schalter_LED_Terrasse off)\
attr terassenlicht_steuerung checkReadingEvent 1
attr terassenlicht_steuerung checkall all
attr terassenlicht_steuerung room 01_Konfiguration
setstate terassenlicht_steuerung cmd_2
setstate terassenlicht_steuerung 2018-05-28 21:30:47 Device TC_TWILIGHT
setstate terassenlicht_steuerung 2018-05-28 21:26:01 cmd 2
setstate terassenlicht_steuerung 2018-05-28 21:26:01 cmd_event Fenster_WZ
setstate terassenlicht_steuerung 2018-05-28 21:26:01 cmd_nr 2
setstate terassenlicht_steuerung 2018-05-28 21:26:01 e_Fenster_WZ_events reading: off
setstate terassenlicht_steuerung 2018-05-28 21:30:47 e_TC_TWILIGHT_twilight 66.8
setstate terassenlicht_steuerung 2018-05-18 14:09:37 mode enabled
setstate terassenlicht_steuerung 2018-05-28 21:26:01 state cmd_2
Das funktioniert soweit auch gut, jedoch stolpere ich in derzeit über folgendes Fehlerbild.
Die Tür ist offen, bevor der Twilight-Wert ([TC_TWILIGHT:twilight] < 80) ist.
Nach Zeitraum x ist der Wert <80, die Tür ist weiterhin offen aber das Licht geht nicht an.
Erst wenn ich die Tür nun händisch schließe und wieder öffne, wird das Licht aktiviert.
Habe bereits das DOIF mehrfach umgestellt, jedoch komme ich nicht weiter.
Für Feedback wäre ich wirklich dankbar!
VG
Xsicht
Das Problem ist das Du bei Fenster ein Event abfragst. Du musst den Status abfragen.
[Fenster_WZ:state] eq "on"
Zitat von: mumpitzstuff am 28 Mai 2018, 22:45:42
Wenn die States exakt deinem Fehlerbild entsprechen, dann ist meines Erachtens bei Fenster_WZ on und off genau vertauscht.
Deine States sagen aus das Twilight < 80 ist und das Fenster auf off steht (offen?). Damit landest du genau im DOELSEIF. Wenn du jetzt die Tür schliesst, dann geht der Status des Fensters auf on und das Licht geht an, weil twilight < 80. Das wäre genau dein Fehlerbild.
Hi, vielen Dank für deine Antwort.
Ich finde die Bezeichnung bei den Kontakten auch manchmal verwirrend, ist aber in diesem Fall tatsächlich korrekt.
Wenn die Tür geschlossen ist, befindet sie sich im Status "off", wenn offen im Status "on".
Zitat von: CoolTux am 29 Mai 2018, 06:08:52
Das Problem ist das Du bei Fenster ein Event abfragst. Du musst den Status abfragen.
[Fenster_WZ:state] eq "on"
Vielen Dank! Ich werde das heute umgehend ausprobieren und hier das Feedback posten.
Nabend,
Das Problem besteht leider immer noch, hat sich dahin gehend jedoch verschärft, da der gesamte DoIf nun gar nicht mehr funktioniert.
Er erkennt anscheinend den state nicht.
defmod terassenlicht_steuerung DOIF (([TC_TWILIGHT:twilight] < 80) and ([Fenster_WZ:state] eq "on")) (set Schalter_LED_Terrasse on) DOELSEIF ([Fenster_WZ:"off"]) (set Schalter_LED_Terrasse off)\
attr terassenlicht_steuerung checkReadingEvent 1
attr terassenlicht_steuerung checkall all
attr terassenlicht_steuerung room 01_Konfiguration
setstate terassenlicht_steuerung cmd_2
setstate terassenlicht_steuerung 2018-05-29 21:20:51 Device TC_TWILIGHT
setstate terassenlicht_steuerung 2018-05-29 21:17:46 cmd 2
setstate terassenlicht_steuerung 2018-05-29 21:17:46 cmd_event Fenster_WZ
setstate terassenlicht_steuerung 2018-05-29 21:17:46 cmd_nr 2
setstate terassenlicht_steuerung 2018-05-29 21:18:45 e_Fenster_WZ_events reading: on
setstate terassenlicht_steuerung 2018-05-29 21:20:51 e_TC_TWILIGHT_twilight 74.4
setstate terassenlicht_steuerung 2018-05-29 21:17:17 mode enabled
setstate terassenlicht_steuerung 2018-05-29 21:17:46 state cmd_2
Eine Idee, wieso es nicht mehr klappt?
Danke und VG
Zitat von: xsichtasdf am 29 Mai 2018, 21:23:35
Nabend,
Das Problem besteht leider immer noch, hat sich dahin gehend jedoch verschärft, da der gesamte DoIf nun gar nicht mehr funktioniert.
Er erkennt anscheinend den state nicht.
defmod terassenlicht_steuerung DOIF (([TC_TWILIGHT:twilight] < 80) and ([Fenster_WZ:state] eq "on")) (set Schalter_LED_Terrasse on) DOELSEIF ([Fenster_WZ:"off"]) (set Schalter_LED_Terrasse off)\
attr terassenlicht_steuerung checkReadingEvent 1
attr terassenlicht_steuerung checkall all
attr terassenlicht_steuerung room 01_Konfiguration
setstate terassenlicht_steuerung cmd_2
setstate terassenlicht_steuerung 2018-05-29 21:20:51 Device TC_TWILIGHT
setstate terassenlicht_steuerung 2018-05-29 21:17:46 cmd 2
setstate terassenlicht_steuerung 2018-05-29 21:17:46 cmd_event Fenster_WZ
setstate terassenlicht_steuerung 2018-05-29 21:17:46 cmd_nr 2
setstate terassenlicht_steuerung 2018-05-29 21:18:45 e_Fenster_WZ_events reading: on
setstate terassenlicht_steuerung 2018-05-29 21:20:51 e_TC_TWILIGHT_twilight 74.4
setstate terassenlicht_steuerung 2018-05-29 21:17:17 mode enabled
setstate terassenlicht_steuerung 2018-05-29 21:17:46 state cmd_2
Eine Idee, wieso es nicht mehr klappt?
Danke und VG
Benutzt du auch die aktuelle DOIF-Version?
# $Id: 98_DOIF.pm 16755 2018-05-18 13:47:23Z Damian $
Zitat von: Damian am 29 Mai 2018, 21:33:08
Benutzt du auch die aktuelle DOIF-Version?
# $Id: 98_DOIF.pm 16755 2018-05-18 13:47:23Z Damian $
Hi, Grade zur Sicherheit nochmal geupdated - Fehlerbild unverändert.
Version: 98_DOIF.pm 16755 2018-05-18 13:47:23Z Damian
Ggf. Hilft es als Hinweis:
Die Zustandsprüfung der Fensterkontakte erfolgt mit einem Arduino und Firmata.
So sieht das die Konfiguration für sie Terrassentür aus:
defmod Fenster_WZ FRM_IN 40
attr Fenster_WZ IODev FIRMATA
attr Fenster_WZ alarmDevice Sensor
attr Fenster_WZ alarmSettings alarm6,|Fenster_WZ.*on|Terassentür|on
attr Fenster_WZ alias Fenster_WZ
attr Fenster_WZ internal-pullup on
attr Fenster_WZ room Wohnzimmer
attr Fenster_WZ stateFormat reading
setstate Fenster_WZ off
setstate Fenster_WZ 2018-05-29 21:47:56 reading off
setstate Fenster_WZ 2018-04-26 19:38:12 state Initialized
Hier ist der state 'initialized' klappt es deswegen nicht?
Wenn ja, wie löse ich das Thema denn dann? ???
VG
Zitat von: xsichtasdf am 29 Mai 2018, 21:52:43
Hi, Grade zur Sicherheit nochmal geupdated - Fehlerbild unverändert.
Version: 98_DOIF.pm 16755 2018-05-18 13:47:23Z Damian
Ggf. Hilft es als Hinweis:
Die Zustandsprüfung der Fensterkontakte erfolgt mit einem Arduino und Firmata.
So sieht das die Konfiguration für sie Terrassentür aus:
defmod Fenster_WZ FRM_IN 40
attr Fenster_WZ IODev FIRMATA
attr Fenster_WZ alarmDevice Sensor
attr Fenster_WZ alarmSettings alarm6,|Fenster_WZ.*on|Terassentür|on
attr Fenster_WZ alias Fenster_WZ
attr Fenster_WZ internal-pullup on
attr Fenster_WZ room Wohnzimmer
attr Fenster_WZ stateFormat reading
setstate Fenster_WZ off
setstate Fenster_WZ 2018-05-29 21:47:56 reading off
setstate Fenster_WZ 2018-04-26 19:38:12 state Initialized
Hier ist der state 'initialized' klappt es deswegen nicht?
Wenn ja, wie löse ich das Thema denn dann? ???
VG
on/off steht nicht in state sondern im Reading namens "reading". Das hast du offenbar durch stateFormat abgeändert.
Abgesehen davon sind die beiden Attribute
attr terassenlicht_steuerung checkReadingEvent 1
attr terassenlicht_steuerung checkall all
in deiner Definition nicht sinnvoll.
Zitat von: Damian am 29 Mai 2018, 21:57:45
on/off steht nicht in state sondern im Reading namens "reading". Das hast du offenbar durch stateFormat abgeändert.
Abgesehen davon sind die beiden Attribute
attr terassenlicht_steuerung checkReadingEvent 1
attr terassenlicht_steuerung checkall all
in deiner Definition nicht sinnvoll.
Habe die beiden Attribute gelöscht.
Tatsächlich wurde der Kontakt so in FHEM durch Firmata automatisch angelegt. Händisch habe ich daran nichts modifiziert.
Ich teste, ob es ohne die beiden Attribute nun funktioniert.
Hättest du denn einen Lösungsansatz, wie ich den Kontakt "korrigieren" kann?