NEWS
Frage wegen Warnings in Blockly Prg
-
Ein "und" bekomme ich hier nicht
-
@hg6806
Es ist doch nicht so schwer sich die richtigen Blöcke selber zu suchen.
UND ist Logik
-
So, habe es umgesetzt, tut leider nicht.
Der aktuelle Wert wird abgespeichert, aber es wird wenn die Bedingung erfüllt ist, nicht hochgezählt.
Wie kann man die Variable abfragen?"timeout" hatte ich als Variable ebenfalls angelegt, war das richtig?
-
@hg6806
Im unteren Blockly hast Du Wert von Objekt ID….als Trigger, das geht schon mal nicht. (nur Objekt ID nehmen) -
Stimmt!
Ist gefixt.Ich bekomme allerdings noch immer ein Warning:
Ist Zeile 17?
-
@hg6806 Kein Screenshot!
ich kann da nichts zitieren! -
OK, hier das Javascript:
var Boost_Soll_T_Raum, timeout, timeout; on({id: 'smartmeter.0.1-0:16_7_0__255.value', change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("javascript.0.PV.Heizung-Boost").val && !timeout) { if ((obj.state ? obj.state.val : "") < -500) { if (Boost_Soll_T_Raum < 30) { Boost_Soll_T_Raum = (typeof Boost_Soll_T_Raum == 'number' ? Boost_Soll_T_Raum : 0) + 0.5; } } } else if ((obj.state ? obj.state.val : "") < -50 && Boost_Soll_T_Raum > getState("javascript.0.PV.Raumtemp-Soll_alt").val) { Boost_Soll_T_Raum = (typeof Boost_Soll_T_Raum == 'number' ? Boost_Soll_T_Raum : 0) + -0.5; } if (getState("smartmeter.0.1-0:16_7_0__255.value").val != Boost_Soll_T_Raum) { setState("fhem.0.myHPSU.HPSU~Soll_T_Raum_1"/*myHPSU HPSU.Soll_T_Raum_1*/, Boost_Soll_T_Raum); timeout = setTimeout(async function () { timeout = null; }, 60000); } }); setState("javascript.0.PV.Heizung-Boost"/*Heizung-Boost*/, false); on({id: 'javascript.0.PV.Heizung-Boost', change: "ne"}, async function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if ((obj.state ? obj.state.val : "")) { Boost_Soll_T_Raum = getState("fhem.0.myHPSU.HPSU~Soll_T_Raum_1").val; setState("javascript.0.PV.Raumtemp-Soll_alt"/*Raumtemp-Soll_alt*/, Boost_Soll_T_Raum, true); } else { setState("fhem.0.myHPSU.HPSU~Soll_T_Raum_1"/*myHPSU HPSU.Soll_T_Raum_1*/, getState("javascript.0.PV.Raumtemp-Soll_alt").val); } });
-
@hg6806 sagte in Frage wegen Warnings in Blockly Prg:
setState("fhem.0.myHPSU.HPSU~Soll_T_Raum_1"/myHPSU HPSU.Soll_T_Raum_1/, Boost_Soll_T_Raum)
was macht die Tilde da?
Heisst deine ID wirklich so? -
Ja, die wilde Tilde ist leider Bestandteil des Datenpunktes.
Der kommt von FHEM. -
@hg6806
hast Du mal probiert dafür einen Alias zu erstellen und dann den im Blockly zu verwenden ?
Da kannst Du dann wenigstens „vernünftige“ Namen und ID vergeben (ohne wilde Tilde) -
Habe ein Alias für den Wert erstellt.
Alias-Namen ohne Tilde. Steht auch so im Alias-Manager drin.Wenn ich den Alias dann auswähle steht wieder eine Tilde drin?????
Nach dem Fix von Wert des Objekt ID in nur Objekt ID geht es, zählt jedoch alle 5-10 Sek hoch und nicht jede Minute.
Ich schätze da stimmt was mit Timeout nicht.
Ist auch komisch dass es in der Variablendeklaration 2x auftaucht.Wie schon geschrieben hatte ich "timeout" als Variable neu angelegt, da ich es sonst im Blockly nicht hätte auswählen können
-
@hg6806 sagte: Wie schon geschrieben hatte ich "timeout" als Variable neu angelegt, da ich es sonst im Blockly nicht hätte auswählen können
Dann wähle die andere (echte) Variable timeout aus und kontrolliere in der Javascript-Ansicht, dass nur noch eine Variable timeout existiert.
@hg6806 sagte in Frage wegen Warnings in Blockly Prg:
hier das Javascript:
Falsch nachgebaut. Hier ein Export, bei dem nur noch sämtliche Datenpunkt-IDs zugewiesen werden müssen:
-
@paul53
Danke, aber Ziel ist es, dass ich es alleine auf die Beine stelle.
Das Blockly hatte ich nur zur Hälfte verstanden, bei deinem Javascript verstehe ich gar nichts. Das bringt mir nichts.Ich muss erst einmal schauen, warum mir Alias wieder eine Tilde ausspuckt, obwohl ich ohne Tilde erstelle.
-
@hg6806 sagte: Ziel ist es, dass ich es alleine auf die Beine stelle.
Gut so. Vergleiche die Anordnung von "Ausführen timeout".
-
@paul53
Stimmt!So sollte es hoffentlich passen. Kann es erst morgen testen:
-
@hg6806 sagte: So sollte es hoffentlich passen.
Weshalb wird "Heizung-Boost" bei Skriptstart auf falsch gesetzt?
-
Weil ich es generell eben auf aus gestellt haben möchte, wenn der Pi mal gebootet wird Javascript neu gestartet, etc.
-
So, nachdem ich es richtig umgesetzt wurde läuft es endlich
Noch eine kurze Off Topic Frage.
Das Objekt myHPSU HPSU.Betriebsart..... gibt mir ab und zu ein "Abtauen" aus.
Jedoch funktioniert die Falls-Abfrage nicht. -
@hg6806 sagte in Frage wegen Warnings in Blockly Prg:
Jedoch funktioniert die Falls-Abfrage nicht.
wie sieht denn das RAW des Datenpunktes aus?
kann das eine Werteliste sein? -
Hier ist das Raw. Werteliste kann ich nicht beantworten.
{ "_id": "fhem.0.myHPSU.HPSU~Aktive_Betriebsart", "type": "state", "common": { "name": "myHPSU HPSU.Aktive_Betriebsart", "type": "string", "role": "text", "read": true, "write": false, "custom": { "history.0": { "enabled": true, "aliasId": "", "changesOnly": true, "debounce": 0, "changesRelogInterval": "0", "changesMinDelta": 0, "maxLength": 10, "retention": "31536000" } } }, "native": { "Name": "myHPSU", "Attribute": "HPSU.Aktive_Betriebsart", "Readings": true, "type": "string", "role": "text" }, "value": { "val": "Standby" }, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" }, "from": "system.adapter.admin.0", "user": "system.user.admin", "ts": 1622098457713 }