NEWS
Bier maischen Script mit Blockly
-
Mal im Log nachgeschaut ?
https://github.com/ioBroker/ioBroker.ja … issues/150
Der Datenpunkt Bierbrauen ist ja vergleichbar mit einem mechanischem Schalter.
Als wenn du Zuhause das Licht ein oder ausschaltest.
Mit true oder false wird hier per Soft eben Brauen ein oder ausgeschaltet.
Macht ja auch Sinn da du nicht 365 Tage im Jahr brauen willst.
Ralla
-
OK, versteh ich ja. Allerdings würde ich jetzt eigentlich davon ausgehen, dass wenn das Script durchgelaufen ist (Schalter ein) und alles soweit funktioniert hat, bei der Ausschaltung des Scriptes der Zustand der Schalter auch wieder in den Urzustand zurückgesetzt wird. Offensichtlich ist das nicht der Fall, sodass man dann einige Schalter vor dem erneuten Durchlaufen des Scriptes (Automatisierung) manuell wieder in die Ausgangsstellung setzen muss.
Wenn das so ist, und man das auf dem Schrim hat, ist es ja gut. Allerdings würde ich jetzt schon fast dazu tendieren ein Script zu basteln, was alles wieder auf Anfang setzt. Einfach damit man nachher im Alltagsgebrauch nicht vergisst an Schalter XY noch eine Einstellung manuell vornehmen zu müssen.
Das muss aber der zweite Schritt sein.
OK, wir haben also einen bis zum Schritt "schreibe irgendwas in Objekt Test" funktionierendes Script.
Wie geht´s jetzt weiter? Können wir zur Kontrolle, ob alles so läuft wie es soll, weitere Texte in die Datenpunkte schreiben lassen?
Wenn alles so weit durchläuft (immer unter der Premisse, sich zu merken, wo welche Schalter wieder zurückgesetzt werden müssen) könnten wir die nächsten Temperaturstufen versuchen einzubinden.
Ich würde gerne so weit vorfahren, dass ich den Kessel mit dem Heizstab auch mal real anklemme und schaue, ob es funktioniert.
Übrigens, das Log schmeißt mir eine Menge Warnmeldungen aus:
avascript.0 2019-01-31 21:54:28.951 warn at TCP.onread (net.js:601:20)
javascript.0 2019-01-31 21:54:28.951 warn at Socket.Readable.push (_stream_readable.js:208:10)
javascript.0 2019-01-31 21:54:28.950 warn at readableAddChunk (_stream_readable.js:250:11)
javascript.0 2019-01-31 21:54:28.950 warn at addChunk (_stream_readable.js:263:12)
javascript.0 2019-01-31 21:54:28.950 warn at Socket.emit (events.js:211:7)
javascript.0 2019-01-31 21:54:28.949 warn at emitOne (events.js:116:13)
javascript.0 2019-01-31 21:54:28.949 warn at Socket._ultron.on (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/WebSocket.js:138:22)
javascript.0 2019-01-31 21:54:28.948 warn at Receiver.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:139:10)
javascript.0 2019-01-31 21:54:28.948 warn at Receiver.startLoop (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:165:16)
javascript.0 2019-01-31 21:54:28.948 warn at Receiver.getData (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:330:12)
javascript.0 2019-01-31 21:54:28.947 warn at Receiver.dataMessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/Receiver.js:389:14)
javascript.0 2019-01-31 21:54:28.947 warn at Receiver._receiver.onmessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/WebSocket.js:141:47)
javascript.0 2019-01-31 21:54:28.947 warn at WebSocket.emit (events.js:211:7)
javascript.0 2019-01-31 21:54:28.946 warn at emitOne (events.js:116:13)
javascript.0 2019-01-31 21:54:28.946 warn at WebSocket.onMessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/EventTarget.js:99:16)
javascript.0 2019-01-31 21:54:28.946 warn at WebSocket.ws.onmessage (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transports/websocket.js:147:10)
javascript.0 2019-01-31 21:54:28.945 warn at WS.Transport.onData (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transport.js:137:8)
javascript.0 2019-01-31 21:54:28.945 warn at WS.Transport.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transport.js:145:8)
javascript.0 2019-01-31 21:54:28.945 warn at WS.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
javascript.0 2019-01-31 21:54:28.944 warn at WS. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/socket.js:273:10)
javascript.0 2019-01-31 21:54:28.944 warn at Socket.onPacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/socket.js:456:14)
javascript.0 2019-01-31 21:54:28.944 warn at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
javascript.0 2019-01-31 21:54:28.943 warn at Socket. <anonymous>(/opt/iobroker/node_modules/component-bind/index.js:21:15)
javascript.0 2019-01-31 21:54:28.943 warn at Manager.ondata (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:335:16)
javascript.0 2019-01-31 21:54:28.943 warn at Decoder.add (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-parser/index.js:251:12)
javascript.0 2019-01-31 21:54:28.942 warn at Decoder.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
javascript.0 2019-01-31 21:54:28.942 warn at Decoder. <anonymous>(/opt/iobroker/node_modules/component-bind/index.js:21:15)
javascript.0 2019-01-31 21:54:28.942 warn at Manager.ondecoded (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/manager.js:345:8)
javascript.0 2019-01-31 21:54:28.941 warn at Manager.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
javascript.0 2019-01-31 21:54:28.941 warn at Manager. <anonymous>(/opt/iobroker/node_modules/component-bind/index.js:21:15)
javascript.0 2019-01-31 21:54:28.941 warn at Socket.onpacket (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:236:12)
javascript.0 2019-01-31 21:54:28.940 warn at Socket.onevent (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/socket.io-client/lib/socket.js:278:10)
javascript.0 2019-01-31 21:54:28.940 warn at Socket.Emitter.emit (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/component-emitter/index.js:133:20)
javascript.0 2019-01-31 21:54:28.940 warn at Socket. <anonymous>(/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInMemClient.js:52:30)
javascript.0 2019-01-31 21:54:28.939 warn at Object.change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:3425:37)
javascript.0 2019-01-31 21:54:28.939 warn at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:358:25)
javascript.0 2019-01-31 21:54:28.939 warn at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:756:38)
javascript.0 2019-01-31 21:54:28.938 warn at Object. <anonymous>(script.js.Skript_2:27:9)
javascript.0 2019-01-31 21:54:28.938 warn at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1236:28)
javascript.0 2019-01-31 21:54:28.914 warn Wrong type of javascript.0.Runterzähler: "number". Please fix, while deprecated and will not work in next versions.
Kannst du damit was anfangen???
Danke vielmals für deine Geduld…</anonymous></anonymous></anonymous></anonymous></anonymous></anonymous>
-
Ok, hier mal ganz einfach.
Wenn du Bierbrauen einschaltest und die Kesseltemp kleiner 20 Grad ist
muß Funke eingeschaltet werden.
Unter Objekte Datenpunkt Bierbrauen muß auf true stehen.
5230_hw_klein.png -
OK, ich habe das Script jetzt wie folgt am Laufen:
Allerdings ist es jetzt so, dass das Script bis zu der letzten Textstelle in einem durchläuft und die Temperatur nicht gesteuert wird. Die Temperatur heizt in einem durch ohne zu stoppen, zu halten oder ähnliches.
Hast du ne Idee, woran es liegen könnte?
-
Also läuft Aufheizen ja.
Prima.
Der intervall halten wird überlaufen.
Bild später.
Nachtrag, Bild,
ob Intervall im Intervall geht weiss ich nicht , probiere es.
Ralla
5230_erkl_rb_r.jpg
5230_4.jpg -
Hmmm, Script habe ich wie folgt angepasst:
Leider nicht der erwünschte Erfolg. Es heizt weiter auf ohne zu halten oder zu stoppen. Aber anscheinend läuft das Script nicht mehr bis zum Ende durch, da der Endtext jetzt nicht mehr angezeigt wird…grübel
-
Schau im Beitrag davor.
Heizung halten wird überlaufen weil eine Pause fehlt bis der Kessel aufheizt.
Ralla
-
Fehler gefunden.
siehe Bild.
5230_6.jpg -
Ok, hatte ich übersehen. Script wie folgt angepasst:
Script läuft iinerhalb Sekundenbruchteilen bis ende durch und macht ansonsten nix.
Scheint also der falsche Weg zu sein.
Ich geh nochmal einen Schritt zurück…
-
Baue dir aktualisiere Test ein egal wo um zu sehen wie weit das Programm durch läuft.
Zurück setzen mußt du nach Programm Ende nichts.
Da sind noch zwei große Fehler bei dir drin.
Du mußt nach Kessel aufheizen Heizung ein warten bis der Kessel aufgeheizt ist.
Also fehlt die Pause nach aufheizen in der du immer wieder abfragst ob die Kesseltemp erreicht ist.
Simulieren kannst du das Prrogramm nur wenn sich die Kesselfühlertemperatur ändert.
Entweder mit einem realen Kesselfühlerwert oder in dem du im Programm den Wert vorgibst.
Teste doch real mit Kesseltemp und Funke.
Spricht ja nichts dagegen.
Das ist schon der richtige Weg, deine Methode zur Analyse und Simulation ist eher merkwürdig.
Versuche mal zu verstehen was das Programm eigentlich macht.
Das mit dem warten nach Kessel aufheizen hast du noch nicht verstanden.
Ist doch aber logisch oder ?
Das Programm rennt ja durch weil Kesseltemp nie größer oder gleich einmaische Grad ist.
Dann kann die Regelung nie greifen.
Also logisch.
Ralla
5230_7.jpg -
Das läuft jetzt in der Simu.
Beachte das die Regelung im Programm vorgegeben ist.
-
Schließe die Anlage an mit Fühler und Funke.
Programm Livetest siehe Bild.
Ralla
5230_livetest_03.02.jpg
5230_livetest_03.02_2.jpg
5230_livetest_03.02_1.jpg -
Läuft aus der Vis heraus.
Runterzähler und Temperaturregelung geht.
Falscher Weg :lol:
Programm für dich vom 03.02 22:32 sollte bei dir laufen.
Ralla :mrgreen:
5230_04_02_r2.jpg
5230_04_02_r1.jpg
5230_04_02_vis.jpg -
Hi Ralla,
es tut mir leid, aber ich hatte die letzten Tage ne Menge Stress um die Ohren. Darum melde ich mich erst jetzt.
Das Script habe ich 1 zu 1 übernommen:
Es läuft genau bis hierhin:
wie man sieht, heizt er ab dem Punkt wieder einfach weiter durch.
Woran könnte es liegen???
-
Kein Problem,
dauert eben.
Slider ist zur Simulation bei mir gewesen.
Bild 1 ersetze Slider mit deinem Datenpunkt Kesseltemperatur ist.
Ist glaube ich bei dir Sensor1.
Bild 2 auch.
!!!!! Die Regelung gehört innerhalb des Intervalls 3 !!!!!
Ralla
5230_s2.jpg
5230_s1.jpg -
Intervall_3
5230_s3.jpg
Runterzähler2 muß Kesseltemp rein ( Variable )
-
Hi Ralla,
erstmal vielen Dank für die Tipps. Leider läuft es noch immer nicht ganz rund. Das Script an sich läuft bis zu diesem Punkt:Mein Script sieht nun wie folgt aus:
Wenn ich mir das so ansehe, scheint es ein Problem mit dem Ausführen der Intervalle zu tun zu haben. Könnte man das nicht irgendwie anders regeln?
Ich bin mittlerweile so weit, dass ich das Script vielleicht in mehrere einzelne kleine Scripte aufteilen würde, wenn dass das Problem eingrenzen könnte... -
@hanzwurzt
Boah diese Board Umstellung nervt.
Nur noch alles in Englisch
Gibt auch Leute über 50 zig.
Der Datenpunkt Sensor1 ist 30.937 C versuch mal den als Value oder so gerade darzustellen.
30 Grad ohne Punkt.
Vermute sehr stark das das script nur 30,31,32 Grad usw erkennt.
Also ohne Komma.
Den Sensor1 Wert lege mal unter Javascript.0 ab.
Weiss nicht ob parser.0 richtig ist.
Script schaue ich mir morgen in Ruhe an.
Sieht aber gut aus auf die schnelle .Bleib jetzt am Ball, Ziel ist nahe
Ralla
-
Tja, ich habe den Sensor jetzt mal auf Valule gesetzt, hat keine Auswirkung. Ich muss den Sensor (Temperaturfühler Ds18b20) über den Parser anbinden, weil ich ihn als 1Wire-Sensor an den Raspi angeklemmt habe. Der hängt nativ an den GPIOs.
Wenn ich die Kommastellen verändere, versetzt es diese lediglich nach hinten oder vorne. Die Stellen an sich bleiben bestehen.Und ja, das neue Board ist ziemlich kacke...
-
@hanzwurzt
Ja ok, dann Trickkiste.
Im Programm hast du drei mal " Wert von Objekt ID Sensor 1".
Ändere das in " 40 " oder " 20"
Dann sollte das Programm reagieren.
Hier gibst du dann einen festen Wert vor.
Nur als Test ob es am Komma Wert liegt.Das neue Board, ist doch schön Kreis bunt.
Mehr als schlecht.
Findest nix mehr direkt.
Soll se machen, wird alles nur schwerer.
Progger mit langeweile die einen Beginner nicht verstehen.