NEWS
[gelöst] ON wenn Stromwert unterschritten wird - Bessere Möglichkeit vorhanden?
-
Rainer - du siehst mich wieder Baff erstaunt.
Entscheidungswert - wattn ditte? Habe mir mal alle vier Seiten durchglesen (naja , manches auch überflogen).
Dann Kanalaktion 1,1,80,starwars…. :shock:
Was Du so alles machst. Dachte immer ich mache einiges - aber irgendwie machst Du deutlich mehr. Schön für mch, so kenne ich jemanden, den ich fragen kann. :mrgreen:
Verstehe trotzdem noch ncht, wie Du es in der CCU hinbekommen hast. Läuft da ein Makro? Das macht doch nicht alles der Aktor, oder?
Magst Du vielleicht noch ein Screendump vom Trockner und den CCU-Settings mir posten?
Danke im Voraus,
So long,
Fiiti
-
Magst Du vielleicht noch ein Screendump vom Trockner und den CCU-Settings mir posten? `
Für dich tu ich doch fast ales:
Das macht doch nicht alles der Aktor, oder? `
Im Prinzip schon, nur er zeigt es dir nicht. (Funktioniert ebenso unsichtbar sogar mit Direktverknüpfungen)wie Du es in der CCU hinbekommen hast. `
Um jetzt diesen Wert (Sndars:200=scharfgeschaltet; 0= jetzt ist die Maschine fertig) aber in ioBroker sehen zu können, MUSS dieser Wert in einem Programm auf der CCU eingebunden zu sein. Klingt unglaublich, ist aber so!Dazu habe ich dann das starwars
Programm geschrieben mit allen möglichen Entscheidungswerten im Wenn und einer weiteren Bedingung, die nicht wahr werden soll (Außentemperatur >80°C) und gut ist.
Jetzt ist der Entscheidungswert auch in ioBroker sichtbar.
Der Datenpunkt existierte immer nur mit 0/NULL un änderte sich nicht. Das wir er aber ab sofort!
Frach mich nur!
Gruß
Rainer
-
Moin zusammen,
ich bin nicht der Javascript Typ, im Prinzip kopiere ich mir alles so zusammen, was ich so brauche in der Hoffnung das ich es auch mal verstehe
Mit der Entscheidungsschwelle ist nicht ganz so die Lösung die ich suche.
Ich möchte gerne meinen Trockner fertigmelden, aber dafür müsste ich einen Timer haben, der 3 min abfragt, ob er unterhalb der Grenze liegt, da er am Ende ein paar mal auflockert und somit direkt fertig meldet.
Der Code sieht ja wie folgt aus.
on({id: "hm-rpc.0.NEQ1234567.2.POWER", valLt: 5, oldValGe: 5}, function() {
gibt es für die Funktion eine Einschaltverzögerung? Kenne leider nur S7
Gruß und Danke
-
@ple:…gibt es für die Funktion eine Einschaltverzögerung? `
Ja, setTimeout()var timer = null; function meineFunktion() { ...meine Anweisungen... } on({id: "hm-rpc.0.NEQ1234567.2.POWER", valLt: 5, oldValGe: 5}, function() { timer = setTimeout(meineFunktion, 180000); // 3 Minuten in ms }); on({id: "hm-rpc.0.NEQ1234567.2.POWER", valGe: 5, oldValLt: 5}, function() { if(timer) clearTimeout(timer); });
-
Vielen Dank für deine Unterstützung.
Kann ich den Code so jetzt stehen lassen?
var idSayIt = "sayit.0.tts.text"; var timer = null; // Einschaltverzögerung on({id: "hm-rpc.0.NEQ1234567.2.POWER", valLt: 1.1, oldValGe: 5}, function() { timer = setTimeout(meldung, 180000); // 3 Minuten in ms }); // Timer löschen on({id: "hm-rpc.0.NEQ1234567.2.POWER", valGe: 5, oldValLt: 1.1}, function() { if(timer) clearTimeout(timer); }); // Anweisung function meldung() { log("Trockner fertig"); //setState(idSayIt, "Waschmaschine ist fertig"); sendTo("pushover", "send", { message: 'Trockner fertig', sound: "", title: '', priority: 1 }); setState(idSayIt, "Waschmaschine ist fertig"); }
Wenn ja hätte ich da noch eine Frage.
"if(timer) clearTimeout(timer);"
Womit ist das if verknüpft? Ich verstehe bisher nur, dass der Wert unter 1.1 und dann über 5 geht die Funktion ausgelöst aber was macht das if? würde da auch nicht einfach clearTimeout(timer) reichen?
var timer = null;
Wird dort die Variabel timer einfach mit "null" beschrieben? Würde auch ein "0" gehen? oder muss es ein String sein.
Besten dank für die super Unterstützung!!!
-
@ple:Kann ich den Code so jetzt stehen lassen? `
Probier es aus !
@ple:var timer = null;
Wird dort die Variabel timer einfach mit "null" beschrieben? Würde auch ein "0" gehen? oder muss es ein String sein. `
Timer-Variablen sind Objekte.
@ple:…was macht das if? würde da auch nicht einfach clearTimeout(timer) reichen? `
Es würde vielleicht auch ohne if(timer) funktionieren. Da nach dem Skriptstart und erstem Waschmaschinenstart das on() für Timer löschen ausgeführt wird, ist es zumindest "sauberer" das clearTimeout(timer) dann nicht auszuführen, da die Timervariable noch nicht die richtige Objektstruktur hat (keine Ahnung, wie die aussieht :? ). -
[…]da die Timervariable noch nicht die richtige Objektstruktur hat (keine Ahnung, wie die aussieht :? ). `
Soweit ich weiß, sind Timervariablen einfach Zahlen. Die Runtime (node.js/Browser) hat dann irgendwo eine Tabelle der Timer, die zu den Zahlen gehören.
-
-
Hmm, dann scheinen Browser das anders zu handhaben als NodeJS
1097_unbenannt.png -
Naja, ich versteh da gerade nicht viel von, aber es funktioniert
Danke