NEWS
Warnmeldung im Javascript/Blockly
-
@crunchip Hallöle.
Das Javascript ist die Java01.txt, s.o.
Wobei "var Intervall_Anzeige" Zeile 1 ist.
Ein Screenshot des Blockly ist etwas schwierig, da zu groß für einen Bildschirm, bzw. man kann es dann nicht mehr lesen.
Die Blockly01.txt ist aber das exportierte Script. -
@DarkSoul sagte in Warnmeldung im Javascript/Blockly:
Die Blockly01.txt ist aber das exportierte Script.
aber als blockly format, deshalb hab ich oben geschrieben, umwandeln und dann hier posten
-
@crunchip Ich glaube zwar wir reden aneinader vorbei, aber Bitteschön:
Und wie gesagt, das Ganze als Javascript ist der txt Java01.
Wobei ich den auch gerne hier direkt einstelle:
var Intervall_Anzeige;Intervall_Anzeige = setInterval(function () { if (getState("mqtt.0.Wasserstand_Teich_2.SWD5.State").val != '0' || getState("mqtt.0.Wasserstand_Teich_2.SWD2.State").val != '0' || getState("mqtt.0.Wasserstand_Teich_2.SWD6.State").val != '0' || getState("mqtt.0.Wasserstand_Teich_2.SWD7.State").val != '0') { if (getState("mqtt.0.Wasserstand_Teich_2.SWD5.State").val == '1') { setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GruenhighSWD5"/*GruenhighSWD5*/, 'true'); } else { setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GruenhighSWD5"/*GruenhighSWD5*/, 'false'); } if (getState("mqtt.0.Wasserstand_Teich_2.SWD2.State").val == '1') { setState("javascript.0.scriptEnabled.EigeneDatenpunkte.RotSWD2"/*RotSWD2*/, 'true'); } else { setState("javascript.0.scriptEnabled.EigeneDatenpunkte.RotSWD2"/*RotSWD2*/, 'false'); } if (getState("mqtt.0.Wasserstand_Teich_2.SWD6.State").val == '1') { setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GelbSWD6"/*EigeneDatenpunkte.GelbSWD6*/, 'true'); } else { setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GelbSWD6"/*EigeneDatenpunkte.GelbSWD6*/, 'false'); } if (getState("mqtt.0.Wasserstand_Teich_2.SWD7.State").val == '1') { setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GruenlowSWD7"/*GruenlowSWD7*/, 'true'); } else { setState("javascript.0.scriptEnabled.EigeneDatenpunkte.GruenlowSWD7"/*GruenlowSWD7*/, 'false'); } } if (getState("mqtt.0.shellies.Shelly4-fachTeich.relay.2").val == 'on') { try { require("request")('http://192.168.1.36/control?cmd=GPIO,0,1').on("error", function (e) {console.error(e);}); } catch (e) { console.error(e); } } if (compareTime('06:00', '06:02', "between", null)) { try { require("request")('http://192.168.1.36/control?cmd=GPIO,0,0').on("error", function (e) {console.error(e);}); } catch (e) { console.error(e); } } if (getState("fullybrowser.0.192_168_1_133.Info.batteryLevel").val <= '20') { try { require("request")('http://192.168.1.40/relay/0?turn=on').on("error", function (e) {console.error(e);}); } catch (e) { console.error(e); } } if (getState("fullybrowser.0.192_168_1_133.Info.batteryLevel").val > '99') { try { require("request")('http://192.168.1.40/relay/0?turn=off').on("error", function (e) {console.error(e);}); } catch (e) { console.error(e); } } }, 10000);
MOD-Edit. Code in code-tags gesetzt!
-
@DarkSoul sagte in Warnmeldung im Javascript/Blockly:
Ich glaube zwar wir reden aneinader vorbei
nein, du liest/machst nicht was ich schreibe
@DarkSoul sagte in Warnmeldung im Javascript/Blockly:
Und wie gesagt, das Ganze als Javascript ist der txt Java01.
und nein, das ist blockly code, siehe sreen aus deinem text
du hast auf blockly exportieren geklickt und den Text kopiert, du solltest auf blockly/JS klicken, das wandelt das blockly in javascript um
-
@DarkSoul Du benutzt im Steuere Teil jeweils Strings('true'). Anzunehmen ist dass du boolesche Werte verwenden musst, also so wie im zweiten Block
-
@crunchip sagte in Warnmeldung im Javascript/Blockly:
...und nein, das ist blockly code, siehe sreen aus deinem text
du hast auf blockly exportieren geklickt und den Text kopiert, du solltest auf blockly/JS klicken, das wandelt das blockly in javascript um
Äh das sind zwei txt Dateien!!! eine Java01.txt und eine Blockly01.txt
-
@fastfoot Ah, könnte sein, werde ich heute Nachmittag mal ausprobieren. Das grüne ist ja nur ein Textfeld.
Bleiben sie dran...
-
huhu du nutzt den Intervall ohne Trigger und Stop, das kann zu problemen führen, besser nen Trigger setzten auf das was sich ändert wenn du schalten willst, das ist ressoucen schonender. Wenn Intervall, dann immer ein Stopp Block davor.
Und du solltest wenn du True/false oder 0/1 prüfst die richtigen blöcke nutzen wie fastfoot schon sagte...
-
@DarkSoul heute sehe ich das auch, gestern hat es mir das nicht angezeigt, auch wenn ich deine text Datei angeklickt hatte. Auch wenn ich von der .text Seite zum Thread zurückblättern wollte, ergab es einen Fehler der Seite, also scheinbar ein Browser/Cache Problem meiner seits gewesen, daher das durcheinander.
Fehler deines Blockly sind ja bereits genannt worden
-
@Adnim Mh ich habe doch diese riesen "oder" Verknüpfung drin. Werden 4 Datenpunkte (Teich Wasserstand) auf 0/1 überprüft und nur wenn einer davon 1 ist läuft das Schreiben der anderen Datenpunkte (Anzeige) ab.
Aber stimmt schon, da Zurzeit ein (Teich) Datenpunkt immer 1 ist, läuft der Kram ständig durch.
Denke ich muss da mal ein wenig entzerren.Was ist eigentlich besser, mehrere kleine Scripte oder wenige große?
-
@crunchip Alles gut, sind ja auch alles nur Scripte und manchmal habe ich das Gefühl die haben ein Eigenleben...
-
@DarkSoul
Was ist eigentlich besser, mehrere kleine Scripte oder wenige große?Ist egal. Nur eine Frage des Geschmacks.
Das Problem an der Form mit Intervall ist das nun deine CPU alle 10s prüft hat sich was an deinen Datenpunkten geändert. Das gibt schon ganz schön last. Schneller(So kanns ja 10s dauern bis was passiert) und Ressourcen schonender ist es wenn sich ein Datenpunkt ändert dein Skript loszutreten. Also ein Trigger auf die 4 Datenpunkte
-
@Adnim Scheint funktioniert zu haben mit dem Logik Feld wahr/Falsch. Warnmeldungen sind weg.
Danke schon mal.Mh was diesen Trigger durch das Ändern der Datenpunkte betrifft. Ist das nicht genau so eine Last? Wenn die CPU ständig überprüft ob einer der Datenpunkt sich geändert hat oder nicht!?
Und einen vergleichbaren Trigger habe ich ja eigentlich drin, direkt nach dem Start des Intervalls werden alle 4 Datenpunkte abgefragt ob sie 0 oder 1 sind. Und nur wenn einer 1, bzw. ungleich 0, ist läuft das Schreiben der anderen Datenpunkte durch.
Der Rest dahinter sind nur ein bischen Beleuchtung und die Akkuladung meines Anzeigetablets. -
nope wenn der DP sich ändert triggert er das skript los. so muss eben nicht alle 10s geprüft werden. Es ist doch viel responsiver wenn das via Trigger läuft, schaltet einer um passiert direkt was.Meine Meinung.
Viele Wege zum Ziel...
-
So kurz nach dem Test war Ende.
Hab ein Update auf den JS-Skript Adapter gemacht und dass war es dann. Broker Tot.
Kann den Broker.js nicht mehr finden ... komplettes Verzeichnis in dem die Datei sein soll ist leer...Bisher rund 4 Versuche ihn neu aufzusetzen sind fehl geschlagen, aber ich bleibe dran... Hab ja im Moment genug Zeit...