NEWS
CCU2 übernimmt keine Variable von IOBroker
-
Dann könnte es ja theoretisch funktionieren.
Habe jetzt mal den Text verändert, der in der Variable steht. Jetzt kommt bei Aktualisierung im Objekt der neue Text für ca. 1-2s um dann wieder zurück auf den alten Text zu springen, der eigentlich nirgends gespeichert ist. Es gibt auch kein 2. Script, das diese Variable beschreiben würde.
Seltsam.
Es wird irgendwo, in den unendlichen Weiten, ein Bit verbogen sein :-).
Ciao Matthias
-
Stell mal das objekt auf write (edit: ist es ja schon)
Ändere dann den wert manuell unter Objekte.
Ändert sich dann der Wert in der CCU?
Gruß Rainer
-
Ja, dann geht es.
Habe gearde beobachtet, dass bei den Objekten nach der Aktualisierung der Text grün ist, dann gleich rot. Dann steht er ein paar Sekunden rot da um dann wieder auf den vorherigen Text zurückzuspringen.
-
Mach mal bitte einen Screenshot von dem Blockly
-
Habe nur Script, da in Blockly, bei der langen Gleichung, immer falsch gerechnet wurde.
Prinzipiell sieht es aber so aus:
![](</s><URL url=)http://up.picr.de/33291924xk.png" /> -
Ich kann kein js, aber fehlt da nicht ein ToString oder wie immer das heisst
-
Ich habe mir das in Blockly erstellt, ohne die lange Formel, dann den Code in ein neues Script kopiert und die Formel angepasst.
Mich wundert nur, dass es in den Objekten manchmal steht, aber nicht in die CCU übernommen wird, und seit neuestem in den Objekten wieder auf den alten Text zurückspringt und auch nicht übernommen wird.
In meiner Denkweise schreibe ich ja was in die Variable, die in der CCU liegt, rein. IOBroker holt sich ja nur den Inhalt der CCU Variable her und zeigt den in den Objekten.
Oder sehe ich das prinzipiell falsch?
-
Grün heisst: da kommt ein frischer Wert,
Rot heisst: der ist nicht übernommen
Anschließend merkt der Adapter, dass der Wert aus der CCU nicht in dem Objekt steht und schreibt ihn rein.
Wenn dein Wert eine Zahl ist wird sie von der ccu nicht akzeptiert.
Wenn deine Formel in blockly falsch recnet liegt es nicht an blockly sondern an der Formel
Dann müsste man da mal sehen.
Gruß Rainer
-
Also liegt das Problem an der CCU. Sie will die Daten, so wie sie sind, nicht haben. Hat die CCU vielleicht grundlegend ein Problem mit String Variablen?
Die Formel hat sau viele Klammern und das hat in Blockly nicht geklappt. Deswegen bin ich auf JS umgeschwenkt, da ich dort die Formel so eingeben konnte, wie sie tatsächlich ist. Ist aber auch gut möglich, dass ich in Blockly was falsch zusammengeklickt hatte.
Auf alle Fälle kam irgendein Ergebnis raus, das (weil eine Zahl) auch wunderbar in die CCU gewandert ist, nur der Text will nicht.
-
Das füllen einer Zeichenkettevariable funktioniert ohne Probleme.
-
on({id: 'hm-rpc.2.000ED709AED1FD.1.ACTUAL_TEMPERATURE', change: "any"}, function (obj) { TempC = getState("hm-rpc.2.000ED709AED1FD.1.ACTUAL_TEMPERATURE").val; ```` `
Ändere mal in change: "ne" und vereinfache die Wertübergabe an die Variable.
on({id: 'hm-rpc.2.000ED709AED1FD.1.ACTUAL_TEMPERATURE', change: 'ne'}, function (obj) { TempC = obj.state.val;
if (Hitzeindex >= 27 && Hitzeindex <= 32) {
setState("hm-rega.0.8748"/Warnung Hitzeindex/, 'Text Text Text');
}
}); `
Schreib mal einen anderen Text in den Datenpunkt, wenn die Bedingung nicht erfüllt ist, z.B.if (Hitzeindex >= 27 && Hitzeindex <= 32) setState("hm-rega.0.8748"/*Warnung Hitzeindex*/, 'Warnung !'); else setState("hm-rega.0.8748"/*Warnung Hitzeindex*/, 'keine Warnung'); });
-
-
Mach mal eine vollständige Auswertung des Hitzeindex für die Warnungs-SV.
var warn = 'keine Hitze'; if(Hitzeindex > 27) warn = 'Vorsicht'; if(Hitzeindex > 32) warn = 'Erhöhte Vorsicht'; if(Hitzeindex > 41) warn = 'Gefahr !'; if(Hitzeindex > 54) warn = 'Hohe Gefahr !'; setState("hm-rega.0.8748"/*Warnung Hitzeindex*/, warn); });
-
-
Bei der vollständigen Auswertung geht es teilweise. Soll heißen, der erste IF Wert Text wird eingetragen und übergeben. Habe jetzt die Werte etwas angepasst, da es ja gerade nicht so heiß ist. Auch den Trigger habe ich wieder auf "any", da es sich bei uns eingeregnet hat und kaum Temperaturänderung ist.
Also erster Wert >19, zweiter Wert >20 (hier ist gerade 20,6). Der Text vom zweiten Wert wird kurz in die Variable geschrieben, aber nicht übernommen. Nach wenigen Sekunden springt er wieder auf den alten Wert zurück.
-
Nach wenigen Sekunden springt er wieder auf den alten Wert zurück. `
Läuft noch ein zweites Skript, das auf den Datenpunkt zugreift oder ein Programm in der CCU, das den Wert ändert ?Deaktiviere mal zum Testen das Polling in der Konfiguration von hm-rega.0.
-
Habe extra eine neue Variable erstellt, weil ich auch den Gedanken hatte.
-
Wird der wert in den objekten jemals schwarz, oder nur grün -> rot -> alter Wert?
-
Nehme ich Deine erste Variante mit if, else funktioniert es und der Wert wird auch schwarz.
Bei der kompletten Auswertung wird nur der alte Wert schwarz, der Rest wird nach grün gleich rot, danach wieder grün mit dem alten Wert und dann schwarz mit dem alten Wert.
-
Habe jetzt mal if, else if und else genommen, gleiches Problem.