NEWS
Durchfluss von Bier messen
-
Ich habe nun eine Siemens Logo eingesetzt, wo ich die Impulse sehen kann. Da setze ich nach einer gewissen azahl Impulse einen Merker oder einen Ausgang, den ich in ioBroker sehen kann. `
Klingt ja soweit schon ganz gut. Kannst du mal nen Screenshot davon machen was du jetzt im ioBroker siehst?
-
Bei Merker 0 steht dann true
-
Ich habe mit Blockly mal etwas versucht. allerdings nicht sehr erfolgreich.
Was mache ich falsch?
-
Hallo Phips_CH,
hab's gestern abend nicht mehr geschafft - hab z.Z. paar zu viele Baustellen;-)
Mit Blockly hab ich's gar nicht so, aber wenn dir das lieber ist als Javascript dann versuchs ruhig damit. Ist ja sowieso besser wenn du zum Schluss was gelernt hast dabei;-)
Was mir an deinem Blockly auffällt ist:
"ist größer als letztes" - das wird so nicht klappen da ein "true" ja nicht zwingend größer ist als ein "false". Ich weiß jetzt nicht was Blockly alles für Auswahlen anbietet… Versuchs mal mit "ist gleich true" oder so ähnlich
-
Kein Problem
Für mich ist Blockly etwas verständlicher. (auf den ersten Blick)
Ich habe mal auf "true" gewechselt
Hier mal den Java-Skript aus dem Blockly.
var Biermeter; on({id: 's7.0.Inputs.0.4', val: true, ack: true}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; while (Biermeter < 1000000000) { Biermeter = (typeof Biermeter == 'number' ? Biermeter : 0) + 1; } });
-
Und - tut sich was?
Falls nicht würde ich als erstes mal das "Wiederhole solange Biermeter < 1000000000" weglassen. Weiterhin würde ich "anerkannt ist" erstmal auf "egal" stellen… Und - bitte zuerst mal eine Loggingausgabe mit einbauen (sollte doch in Blockly auch gehen -oder?) die dir jeweils den Wert der Variablen "Biermeter" anzeigt. So wie's jetzt ist kannst du ja gar nicht mitbekommen ob das Script was tut. Später musst du den Wert dann natürlich noch in einen Datenpunkt schreiben...
-
Wie mache ich eine Logikausgabe?
Wenn der Merker aktive ist, schaltet in den Objekten der Skript auf rot. Das heisst doch das der Skript gestartet wird.
Aber was er macht, oder wieso er nicht Zählt sehe ich nicht.
Ich habe bei Objekte einen Datenpunkz erstellt. dieser habe ich Biermenge genannt.
-
Ich habe bei Objekte einen Datenpunkz erstellt. dieser habe ich Biermenge genannt. `
Das ist schon mal sehr gut
Nur kann ich dir leider nicht so aus dem Hut sagen wie du den in Blockly mit dem neuen Wert beschreiben musst… Ich mach's deshalb mal als Javascript:
var dpBiermeter = "s7.0.Biermenge" //hier musst du deinen Datenpunkt eintragen on({id: 's7.0.Inputs.0.4', val: true}, function (obj) { setState(dpBiermeter,getState(dpBiermeter).val + 1,true); //log("Biermenge um 1 hochgezählt"); //wenn die Zeile ins Log geschrieben werden soll kannst du die vorderen beiden // löschen });
-
Hab es hinbekommen.
Ich hatte den Überlegungsfehler drin. dass wenn der Merker true ist. ich eine Schlaufe starte. Das geht natürlich nicht. Bis ich dann geschnallt habe, das ich nur 1 hochzählen muss.
Ist es möglich, die History zu löschen resp. zu leeren?
ich habe jetzt durch das Probieren in Flot schon Werte drin, die ich geleert haben möchte.
-
Klingt doch gut. Dann kannst du ja jetzt mal den Durchfluss ein wenig pushen
History leeren geht nur über Umwege. Der einfachste wäre m.E. die "Aufbewahrungszeit" auf den kürzesten Zeitraum (1 Tag??) zu stellen und halt so lange zu warten…