Hi
ich habe irgendeine Blockade bei DOIFs. Einige funktionieren super andere so gar nicht. Ich würde mich freuen wenn ihr die korrigieren könnt:
1. Licht: Bei tür auf geht außen das Licht für 60 sekunden an und dann eigentständig aus. Das soll aber nur morgens und abends je nach Dämmerung passieren:
#define aussen_licht_an DOIF ( [Fibaro_haupteingang:alarm_AccessControl] eq "Window/Door is open, notificationIsOn") (set HUE_Home_HUEGroup10 on-for-timer 60 ) DOELSE (set HUE_Home_HUEGroup10 off)
--> nach dem Schließen der Tür geht leider sofort das Licht aus und der 60sec timer wird überschrieben
define aussen_licht_an_morgens DOIF ( [Fibaro_haupteingang:alarm_AccessControl] eq "Window/Door is open, notificationIsOn" and [myTwilight:alarm] < 3) (set HUE_Home_HUEGroup10 on-for-timer 60 ) DOELSE
--> Licht geht an, nach dem schließen der Tür bleibt das Licht an, aber die Kondition mit Twighlight wird ignoriert. Heute morgen wurde der Wert von [myTwilight:alarm]
mit 5 im DOIF angezeigt und das Licht ging trotzdem an. Wo habe ich hier den Fehler?
2. Erinnerung den Müll rauszustellen.
define doif_Abfallmorgen DOIF ( [19:30] and [Muelltonnen:next_days] = 1) (set telebot message 'Morgen wird [Muelltonnen:next_text] abgeholt') DOELSEIF ([06:00] and [Muelltonnen:now_text] eq "") (set telebot message 'Heute wird [Muelltonnen:now_text] abgeholt')
attr doif_Abfallmorgen do always
--> die Nachricht 19.30 wird nicht geschickt. Bei der Nachrricht 6 Uhr morgen wird nur 'Heute wird abgeholt' geschickt. Ich habe im Mülltonnen modul gesehen das es kein Reading mit now_text etc gibt. Dies ist nur einmal 6 Uhr morgens erschienen und war dann 6:05Uhr wieder weg. Total schräg. Wo habe ich hier den Fehler?
define Muelltonnen_Kalender Calendar ical url https://calendar.google.com/calendar/ical/..... 3600
define Muelltonnen ABFALL Muelltonnen_Kalender 3600
attr Muelltonnen calendarname_praefix 0
attr Muelltonnen date_style date
attr Muelltonnen delimiter_reading |
attr Muelltonnen delimiter_text_reading und
attr Muelltonnen group Abfall
attr Muelltonnen icon muelltonne
attr Muelltonnen room Allgemein
attr Muelltonnen stateFormat next_text in next_days Tag(en) @ next_weekday am next_date
attr Muelltonnen userReadings ftui_datum {ReadingsVal("Muelltonnen","now_text","") eq "" ? datumHeuteMorgen(ReadingsVal("Muelltonnen","next_datum","")) : "heute";;},ftui_next {ReadingsVal("Muelltonnen","now_text","") eq "" ? ReadingsVal("Muelltonnen","next","") : ReadingsVal("Muelltonnen","now","")."_0";;}
attr Muelltonnen weekday_mapping Sonntag Montag Dienstag Mittwoch Donnerstag Freitag Samstag
1.
Das sollte daran liegen, dass nach dem Schließen der Tür cond1 nicht mehr erfüllt ist und damit automatisch cmd2 ausgeführt wird. Insofern ein nachvollziehbares Verhalten.
Ich habe bisher on-for-timer nicht verwendet, vermute aber, dass dies sowieso das Licht nach 60 Sekunden ausschaltet. Es müsste also reichen wenn du folgendes nimmst:
#define aussen_licht_an DOIF ( [Fibaro_haupteingang:alarm_AccessControl] eq "Window/Door is open, notificationIsOn") (set HUE_Home_HUEGroup10 on-for-timer 60 ) DOELSE ()
2.
Sollte so funktionieren. Ist [myTwilight:alarm] wirklich 5 gewesen? Du könntest es entweder mal mit "lt" statt "<" versuchen oder mit "[myTwilight:alarm:d]".
3.
[Muelltonnen:next_days] = 1 erwartet ein notify, das sicherlich nicht exakt 19:30 kommt. Mit [Muelltonnen:?next_days] = 1 sollte es gehen. Das "?" sorgt dafür, dass nicht das notify benötigt wird, sondern es eine zusätzliche Voraussetzung ist.
Zitat von: T3mplate am 07 November 2017, 11:45:35
3.
[Muelltonnen:next_days] = 1 erwartet ein notify, das sicherlich nicht exakt 19:30 kommt. Mit [Muelltonnen:?next_days] = 1 sollte es gehen. Das "?" sorgt dafür, dass nicht das notify benötigt wird, sondern es eine zusätzliche Voraussetzung ist.
hä? wie notify wird erwartet???
Wenn nicht getriggert wird (ich vermute das meintest du), dann steht das ? am Anfang [?Muelltonnen:next_days]
das ist aber nicht der Fehler, denn '=' ist eine Zuweisung, und was gebraucht wird wäre ein Vergleich '=='.
(vermutlich ist es sogar eher [Muelltonnen:next_days] eq "1" )
Zitat von: nils_ am 07 November 2017, 12:45:03
hä? wie notify wird erwartet???
Wenn nicht getriggert wird (ich vermute das meintest du), dann steht das ? am Anfang [?Muelltonnen:next_days]
das ist aber nicht der Fehler, denn '=' ist eine Zuweisung, und was gebraucht wird wäre ein Vergleich '=='.
(vermutlich ist es sogar eher [Muelltonnen:next_days] eq "1" )
Danke für die Korrektur. Du hast natürlich recht
danke
ich habe die DOIFs folgend geändert und es funktioniert:
define doif_Abfallmorgen DOIF ( [19:00] and [?Muelltonnen:next_days] == 1) (set telebot message 'Morgen wird [Muelltonnen:next_text] abgeholt')
attr doif_Abfallmorgen devStateIcon cmd_1:bag@red
attr doif_Abfallmorgen do always
define doif_Abfallheute3 DOIF ([6:03] and [?Muelltonnen:now_text] ne "") (set telebot message 'Heute wird [Muelltonnen:now_text] abgeholt')
attr doif_Abfallheute3 devStateIcon cmd_1:bag@red
attr doif_Abfallheute3 do always