NEWS
Umstieg von fhem - ein paar grundsätzliche Fragen
-
Hallo zusammen - bin neu hier und beim ioBroker - aktuell im Status des ausprobierens.
In fhem habe ich mich an zwei Themen gewöhnt und wollte mal fragen, wie das mit dem ioBroker geht:
- Reguläre Ausdrücke und Notify:
Wenn irgendein Gerät "battery low" sendet, dann triggert der notify entsprechend - ich wüsste gerne, wie das mit ioBroker geht - da habe ich noch nichts gefunden:
.*:[Bb]attery:.* { if ($EVENT !~ m/ok/) { my $bt = $attr{"$NAME"}{'batterytype'}; my $al = $attr{"$NAME"}{'alias'}; Log 3, "$NAME ($al) : Batteriewarnung $EVENT ($bt)"; if ($al eq "") { $al = $NAME; } DebianMail($main::emails, 'FHEM Batteriewarnung', "$al sendet \"$EVENT\". $al braucht $bt!"); } }
- "at" - also Timer:
*{sunset("REAL","16:00","20:00")} set xyz on
Bei obigem Beispiel kommen verschiedene Dinge zusammen:
- Sunset - Sonnenuntergang (REAL) - gibts bei iOBroker auch (Astro - hab ich gesehen)
- "16:00" - nicht vor 16:00 und
- "20:00" nicht später als 20:00
Ich habe schedule gesehen - allerdings entweder zu den Astro-Zeiten oder als Cron-Wert, ...
was ich etwas "unelegant" finde, ist nen schedule jede Minute und dann gegen die Grenzen prüfen.
Ich würde "variables" Schedule benötigen:einmal am Tag den/die Timer setzen zu variablen Zeiten und die genau 1 mal ausführen und dann erneut die Timer setzen.
Wie geht das?
-
Hi @ltathome
Zu 1.
Hier mal der Link zur Javascript-Doku:
https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#on---subscribe-on-changes-or-updates-of-some-state
Das funktioniert auch im Zusammenhang mit Regulären ausrücken. Da kannst du schon ziemlich viel mit abdecken.Alternativ der $-Selector:
https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#---selector
Hier kannst du auch nach Räumen oder Rollen triggern.Zu 2.
Du könntest zuerst auf das Astro-Event triggern und dann im zweiten Schritt noch die Zeitspanne eingrenzen.Etwa so:
schedule({astro: 'sunset'}, function () { if (!compareTime('16:00', '20:00', 'between')) return; //Hier was auch immer erledigen });
VG
Tobi -
@tl82 Danke.
Ich habe das Thema "subscribe" gefunden - damit komme ich dahin wo ich hin will.
Dein Vorschlag mit dem schedule werde ich ausprobieren.