NEWS
Wie das "at" von FHEM in ioBroker nachbauen
-
Hallo zusammen,
ich hatte vor ioBroker eine FHEM Installation am laufen.
Nun möchte ich das "at" von FHEM siehe hier: https://wiki.fhem.de/wiki/At in ioBroker nachbauen - finde aber keine passenden Elemente dazu.
Der Charme am FHEM "at" war, dass man ihm sagen konnte, ob ein Event einmalig zu einem gewissen Zeitpunkt generiert werden soll, oder regelmäßig.
Das macht es z. B. bei der Automatisierung meiner Heizung recht komfortabel. Dort konnte ich z. B. in einem Perl-Skript sagen:
- Frage (per FHEM "notify") ab, wann am Tag die Heizung sich abschaltet
- Schalte (per FHEM "at") abhängig von der Uhrzeit der Abschaltung die Heizung zum Zeitpunkt x und y wieder ein
Ganz grob (in pseudo-Perl) etwa so:
define benachrichtigeBeiHeiz-Ende notify Heizung:.* { define starteHeizung at +01:00:00 {SchalteHeizung(an)}; if($hour > 12> { define starteHeizung at +04:00:00 {SchalteHeizung(aus)}; } else { define starteHeizung at +08:00:00 {SchalteHeizung(aus)}; } }
FHEM generiert in diesem notify zuerst ein einmaliges neues Element, was nur den Befehl "Heizung an" beinhaltet und 1h nach dem Eintreten des "Heizung ist aus" Events gestartet wird. Danach existiert das Element nicht mehr.
Danach wird noch ein weiteres einmaliges Element für "Heizung aus" generiert, dessen Start-Zeitpunkt abhängig von der gerade aktuellen Stunde erst nach 4h bzw. 8h ist. Nach der Startzeit existiert auch dieses Element nicht mehr im FHEM Speicher.
Wie bekomme ich so etwas elegant in ioBroker Script/Blockly gebaut?
Danke für ein paar hilfreiche Tipps!
Gruß
root2 -
@root2 sagte in Wie das "at" von FHEM in ioBroker nachbauen:
ob ein Event einmalig zu einem gewissen Zeitpunkt generiert werden soll, oder regelmäßig.
ist das nicht das selbe wie ein Cron?
* * * * *
jede Minute
30 17 12 24 2024
an Heiligabend '24 um 17 30 -
@root2 ich denk mal, du bist noch zu weit in der FHEM welt unterwegs.
im ioB muss nicht alles über scripts/blocklys gemacht werden. dazu gibts adapter, mit denen du solche sachen einfacher steuern kannst. z.b.
https://forum.iobroker.net/topic/22579/test-adapter-heatingcontrol-v2-12-x -
@homoran said in Wie das "at" von FHEM in ioBroker nachbauen:
ist das nicht das selbe wie ein Cron?
Kann ich im cron denn auch sagen ausführen in "jetzt + 2 Stunden"?
Ich kenne es halt auch vom Linux Befehl "at", da geht z. B. auch sowas: "at now + 2h", aber nicht bei cron.
@da_woody said in Wie das "at" von FHEM in ioBroker nachbauen:
...ich denk mal, du bist noch zu weit in der FHEM welt unterwegs.
im ioB muss nicht alles über scripts/blocklys gemacht werden. dazu gibts adapter, mit denen du solche sachen einfacher steuern kannst. ...Danke für den Hinweis auf den Adapter!
Mein "Problem" mit der Heizung (wofür ich das Ganze "at"-Gedönse benötige) ist, dass sie (Wärmepumpe) bei warmen Außentemperaturen zu oft taktet. Das kann der von Dir beschriebene Adapter mit an Sicherheit grenzender Wahrscheinlichkeit nicht "in den Griff bekommen", da er dazu auf Daten zugreifen muss, die nichts mit eingestellten Raumtpemeraturen, Vorlauf- oder Rücklauf zu tun haben bzw. es nicht einfach ausreicht zu sagen "Temperatur 'Ist' ist gleich Temperatur 'Soll', also schalte ab"
root2
-
@root2 sagte in Wie das "at" von FHEM in ioBroker nachbauen:
Mein "Problem" mit der Heizung (wofür ich das Ganze "at"-Gedönse benötige) ist, dass sie (Wärmepumpe) bei warmen Außentemperaturen zu oft taktet. Das kann der von Dir beschriebene Adapter mit an Sicherheit grenzender Wahrscheinlichkeit nicht "in den Griff bekommen", da er dazu auf Daten zugreifen muss, die nichts mit eingestellten Raumtpemeraturen, Vorlauf- oder Rücklauf zu tun haben bzw. es nicht einfach ausreicht zu sagen "Temperatur 'Ist' ist gleich Temperatur 'Soll', also schalte ab"
Dann skizziere doch mal die angedachte Logik und die Eingangsgrößen.
-
@root2 kann ich dir leider nicht sagen, da ich mit Infrarotheizung und Shelly arbeite und somit eine andere Lösung brauchte.
Aber Hilfe ist ja schon da... -
@codierknecht said in Wie das "at" von FHEM in ioBroker nachbauen:
Dann skizziere doch mal die angedachte Logik und die Eingangsgrößen.
Klar, gerne.
In etwa so:
Also eine Mischung aus "mache etwas in x Stunden" und "mache etwas um hh:mm Uhr" abhängig von Heizstufe, dem Flag der Warmwasserbereitung und der Außentemperatur.
Es gibt noch einen weiteren Fall der zu betrachten ist (wenn Heizstufe vorher > 1 war und jetzt < 1 ist) aber den hab ich der Übersicht halber nicht mit rein skizziert.
-
@root2
Das wäre eine Kombination aus CRON und Timeouts.
Wie Du schon sehr richtig erkant hast, ist per CRON etwas wie "mach was in X Stunden" nicht zu lösen.
Aber mit 'nem Timeout.Die festen Schaltzeiten könnte man mit dynamisch erzeugten CRON-Jobs behandeln, oder - weils einfacher ist - zu festen Zeiten ausführen lassen und dann prüfen, ob zum entsprechenden Zeitpunkt ausgelöst werden soll oder nicht.
Das "mach was in X" ginge alternativ auch mit dynamisch erzeugten Zeitplänen.
Man muss dann halt ausrechnen, welche Zeit in 2 Stunden erreicht ist und einen passenden Zeitplan erzeugen.
Ist aber relativ aufwändig - timeouts sind da vermutlich der einfachere Weg.