NEWS
Einschaltdauer darstellen
-
Hallo,
ich habe in der CCU ein Programm für einen Aktor HM-LC-Sw4-WM, das eine Einschaltdauer setzt und dann einschaltet.
In ioBroker.vis starte ich per Widget das Programm. Der Aktor schaltet ein.
Nun möchte ich im View darstellen, wie lange der Aktor noch eingeschaltet ist.
1. Bekomme ich die (RestDauer) irgendwie über den HM-Adapter mitgeteilt?
2. Wenn ja, mit welchem Widget stelle ich diesen Wert sinnvollerweise dar?
Wenn 2 mal nein: Alternativen?
Danke!
Gruß
Manfred
-
hat dein Gerät einen so einen Kanal wie "on_time" oder Ähnliches?
da könnte man das eventuell abgreifen bzw. setzen.
du könntest auch das CCU-Programm nach IoB überführen.
Da ich solch Gerät nicht habe, sind das alles "ungetestete" Ausagen.
-
hat dein Gerät einen so einen Kanal wie "on_time" oder Ähnliches?
da könnte man das eventuell abgreifen bzw. setzen.
du könntest auch das CCU-Programm nach IoB überführen.
Da ich solch Gerät nicht habe, sind das alles "ungetestete" Ausagen. `
Das Gerät hat tatsächlich einen Kanal ON_Time, den ich in den Objekten unter ioBroker sehe. Nur steht der immer auf "timer.off" und "0 s".
Tatsächlich setze ich aber einen Timer im CCU-Programm und der funktioniert auch:
Vielleicht kann hier einer der Homematic-Spezis was dazu sagen?
Gruß
Manfred
-
Ich denke der Datenpunkt ist nur zum Setzen der Einschaltdauer, aber nicht als countdowntimer geeignet.
Gruß
Rainer
-
Hallo manfred,
es gäbe zweieinhalb Wege:
- Du portierst das Programm komplett zu ioBroker Javascript. Wie ist die die ID von CCU_Status?
Da sind noch weitere Bedingungen, die hie rim Screenshot nicht zu sehen sind, oder? Sonst macht ja __nur prüfen__ keinen Sinn. Das Einstellen der Zapfstelle ist jedenfalls kein Problem: ```` setState("hm-rpc.0.XXX1234567.ON_TIME", 3600 * 1000); // Ontime-Datenpunkt im Aktor auf 3600s setzen setStateDelayed("hm-rpc.0.XXX1234567.STATE", true, 1000); // Aktor 1s verzögert einschalten ````
-
ioBroker Javascript kann auf das setzen des Schaltaktors auf true reagieren und einen Countdown runterzählen. Der Countdown läuft nur in Javascript/ioBroker und kann visualisiert werden. Er kann abgebrochen werden, wenn der Aktor auf false geht.
-
Du legst die komplette Logik ioBroker (inklusive Countdown)
Gruß
Pix
-
@pix:Hallo manfred,
es gäbe zweieinhalb Wege:
… `
Hallo Pix,
danke für die Tipps.
Zuerst einmal: das Programm sieht wirklich so aus. Es soll nur manuell gestartet werden (bzw. von ioBroker aus). Die "nur prüfen" Bedingung soll lediglich verhindern, dass es bei einem Reset der CCU automatisch ausgeführt wird.
Einen Timer parallel nach Start des Programmes laufen zu lassen wäre schon ausreichend. Es geht nur um den WAF ("wer garantiert mir, dass das Wasser auch wirklich nach einer Stunde wieder zu geht…?").
Ich bin aber in ioBroker, und erst recht in Javascript, noch so unbedarft, dass ich das (noch) nicht alleine hinbekomme.
Also weiter reinfuchsen oder es hilft mir jemand. :roll:
-
Vorschlag:
createState("Countdown", 0, { read: true, write: true, desc: "Restzeit Wasser-Zapfstelle", type: "number", min: 0, max: 3600, def: 0, unit: "s" }); var timer = null; var time = 0; on("hm-rpc.0.XXX1234567.STATE", function(dp) { if(dp.state.val) { time = 3600; timer = setInterval(function() { if(time > 0) { time--; setState("Countdown", time); } else clearInterval(timer); }, 1000); } else { if(timer) clearInterval(timer); time = 0; } setState("Countdown", time); });