NEWS
Bier maischen Script mit Blockly
-
Noch einmal angepasst stand Heute.
Intro geändert,
Zeitplan eingefügt der alle 59 Sekunden triggert,
wenn Brauen ist ein wird das Programm ausgeführt.
nicht mehr per Kessel Temperatur
Brauen Ein / Aus eingefügt, DP Brauen Ein / Aus angelegt.
Der Rest wurde Versuchsweise angepasst / optimiert.
Versuche jetzt erst einmal eine Simulation des Programm zu erreichen.
Live testen geht ja nicht.
Wenn die Simu läuft geht es weiter.
Kann aber dauern.
Next,
Thema Sicherheit, Programm startet nur wenn ??
Hier z.B Stromausfall / Reboot, das Programm darf nie anlaufen.
Bei triggern automatischer Sicherheitskette ein Erfolgt was ?
Brauen ein geht nur wenn Biersorte gewählt ist.
Verbleibe erst einmal so
Ralla
5230_15_01_2019_teil_3.jpg
5230_15_01_2019_teil_2.jpg
5230_15_01_2019_teil_1.jpg -
Hi IOBroker,
Stück für Stück geht es weiter.
Visu und Datenpunkte sind minimal angelegt worden.
Slider zur Simulation habe ich noch eingefügt um den Kesselfühler zu simulieren.
Erste Test laufen nun aus der VIS heraus um das Programm von Fehlern zu bereinigen.
Da zu sind zwei Fragen aufgetaucht.
Die Schleife prüft die Bedingung am Anfang oder Ende der Schleife ?
Würde das Grundkonzept ja gerne nach Prüfung euch zur Verfügung stellen.
Der Blockly Code kann ja exportiert werden.
Mal angenommen jemand importiert diesen.
Müssen dann die Datenpunkte erst da sein ?
Ist der Import von Versionen abhängig ?
Möchte schon das es bis zur Grundversion läuft.
Gebrauchen kann ich das Programm nicht.
Ehrgeiz, ja etwas.
Treibt ja keiner..
Warum ? Um selbst zu lernen und Spass an der Freude.
Einen Einblick wie Bier gebraut wird habe ich auch bekommen.
Prost.
:mrgreen:
Danke Ralla
5230_dp_17012019.jpg
5230_vis_17012019.jpg
5230_schleife.jpg -
Hallo Ralla, hallo AlCalzone,
ihr beide seit echt der Knaller, vielen lieben Dank erstmal für eure Mühen, sich mit so einem Noob abzugeben und so viel Zeit in so ein Projekt zu investieren. da ich leider bis einschließlich heute extrem eingespannt war, bin ich nicht dazu gekommen, hier weiter zu bauen. Aber morgen habe ich was früher frei und es ist endlich Wochenende.
Ich werde mich umgehend wieder an dieses Hammerscript geben und weiter basteln und euch dann (hoffentlich) positive Auskunft über den Ablauf der Tests am "lebenden Objekt" geben können…
[Edit]: wie hast du denn diese grafische Darstellung auf dem mittleren Bild hingekriegt? Ist das auch IOBroker?
[Edit²]: Ach du liebe Zeit, was hast du denn da alles für Objekte angelegt? Hier steigt mein Verstand jetzt grade komplett aus. Ich habe doch nur 2 Objekte. Die Steckdose und mein Temperaturfühler. Wo kommen die ganzen anderen Dinger denn her und wie soll/ kann ich die in den Instanzen anlegen?
Ich bin grade komplett verwirrt… :?
-
Mittleres Bild ist aus IoBroker Vis.
In Vis kannst du Bilder einfügen, Schalter anlegen, Analoge Manometer darstellen usw.
Die Schalter, Manometer usw. haben eine Verbindung zu deinen Datenpunkten in den Objekten.
Du kannst Werte abholen oder in den Datenpunkten hinein schreiben.
Nee, keine Sorge, das Bild wäre eine Endausbaustufe.
Datenpunkte hast du nicht so viele.
Brauen ein,
Biersorte wählen,
Temperatur
Funke
Viel mehr wird das nicht.
Klöppel dir mal ein Grundgerüst zusammen was du minimum brauchst.
Kommentare füge ich ein.
Das wird nicht laufen, ist aber auch nur dafür gedacht das du ein Grundgefühl
dafür bekommst was du an Parametern brauchst.
Ralla
-
Jeder hat mal angefangen.
Anbei die Grundkonfig.
Wenn du Bierbrauen in Objekte / Datenpunkt auf true setzt wird sofort auf false geschaltet.
Aber logisch da deine Temperatur nicht eingebunden ist.
-
WOW, also Ralla,
ich habe das alles mal nachgebaut. Am lebenden Objekt kann ich es erst morgen gegen Mittag testen, da bis dahin die Küche für mich gesperrt ist.
Ich bin mir aber bei einigen Dingen ncht ganz sicher, ob die so funktionieren können.
Einmal die ganzen Objekte, bzw. Datenpunkte. Ich habe mal, davon ausgehend, dass ich erst einmal mit nur 3 Stufen ( Einmaischen, Kombirast und Abmaischen) anfange, die entsprechenden Stufen, bzw. Objekte erstellt. Sieht dann so aus:
Kann das so sein, oder müssen da noch Parameter gesetzt werden?
Das nachgebaute Script wäre ja ungefähr so:
Und hier kommt mein Dillema. Wenn ich die Logik richtig interpretiere, müsste das Script (für ein einfaches Lager mit einer ganz einfachen Kombirast) ja dann ungefähr so aussehen:
ich habe das einfach mal zusammengecopypasted, aber ich denke, ich habe das noch einige Denkfehler, die es zu bereinigen gilt. Ich teste das Ganz mal im Laufe des morgigen Tages, sobald mein Weibchen aus der Küche raus ist.
Dann sehen wir weiter.
Aber so weit erst einmal vielen lieben Dank für die Hilfe an diesem Projekt.
Und keine Sorge, mein Weizen hat alle Rasten durch und ist bei allen bis dato gut angekommen…
-
Lege dir noch einen Datenpunkt Runterzähler an.
Sieht doch schon ganz gut aus.
Kommentar siehe Bilder.
Denke du hast noch ein Denkfehler drin.
Der Intervall ist dafür Gedacht die Temperatur zu halten in einer gewissen Zeitspanne.
Das Aufheizen geschieht wie ?
Ist Kombirast nicht Vorheizen auf 70 Grad und halten ?
Genauso der Block Einmaischen Halten.
Das falls mache für Einmaischen Halten darf erst dann ausgeführt werden wenn die
Temperatur Vorheizen > 37 Grad ist.
Richtig so ?
Genau so zwischen den Halteblöcken.
Nach Einmaischen Halten muß der nächste Block aufheizen x Grad sein für den nächsten Block.
Dann wieder halten.
Ralla
5230_hw_v3_teil_2.jpg
5230_hw_v3_teil_1.jpg
5230_hw_v3_teil_4.jpg -
Jeder Block sollte mindestens enthalten, aufheizen, halten.
Das löse zuerst.
Super einfach kannst du Einmaisch Zeit festlegen als Aufheizzeit + Haltezeit.
Wäre dann aber Einmaischen Gesamt Zeit.
Eben abhängig davon wie schnell die Heizung die Maische aufheizt.
Wenn du Einmaische Gesamt Zeit möchtest ist Haltezeit überflüssig.
Geht aber nicht da die chemischen Prozesse nur in einem bestimmten
Grad Rahmen statt finden.
Dieser kann in der Aufheizphase liegen, muß aber nicht.
Deswegen mußt du aufheizen und halten getrennt proggen.
Lösung einfach dazu könnte wie im Bild sein.
Bestimmt nicht Fehlerfrei, aber ein Schubs in die richtige Richtung.
-
Hey Ralla,
erstmal vielen lieben Dank für deine schier endlose Geduld!!!
Ich habe heute den ganzen Nachmittag mit basteln verbracht. Alles was ich ausprobierte, hat irgendwie nicht gefunzt.
Nach deiner letzten Anweisung habe ich das Script jetzt exakt so gebastelt:
Es passiert aber beim Start genau gar nix. Es wird die Funke nicht ein einziges Mal eingeschaltet.
Ich glaube, wir denken zu kompliziert. Nochmal die Grundbedingungen:
1. Wenn <startsignal>dann starte Aufheizvorgang auf Temperatur X (skalierbar je nach Biersorte)
2. Wenn <temperatur aufheizen="">erreicht, dann halte für X Minuten (skalierbar je nach Biersorte (Aufheizen und Einmaischen könnte hier dasselbe sein, da es sich ja im Prinzip um den selben Vorgang handelt)
3. Sobald <x minuten="">abgelaufen, starte wieder Aufheizvorgang auf Temperatur Y (auch wieder skalierbar)
4. Wiederholung im Prinzip von Schritt 2 bis 4 je nach Biersorte mit unterschiedlichen Zeiten und Temperaturen
5. Nach Ablauf des letzten Schrittes (Abmaischen bei 78°C, nicht skalierbar, da für alle Biersorten gleich)) Script Ende und Funke aus
Wahrscheinlich ist es alles wesentlich einfacher, als wir es hier momentan sehen. Ich komme nur nicht drauf, wie…
Und ich will doch nur eine Bierbrauautomatik bauen...Schnief</x></temperatur></startsignal>
-
-
OK, vielen Dank dafür, Ralla. Ich habe es in den einzelnen Stufen abgeändert, jedoch ohne Erfolg.
Ich habe auch ein wenig mit dem "Urscript" von AlCalszone rumexperimentiert. Bis zu diesem Punkt
hat es ja funktioniert.
Allerdings kann ich im Folgeverlauf abändern was ich will, es funktioniert danach nichts mehr.
Vielleicht müssen wir anfangen zu kombinieren, oder irgendwie zusammenzuscripten. Ich bin raus für heute. Ich verstehe es auch nicht. Meine Herren, wenn ich das vorher gewusst hätte… :roll:
:? GN8 und vielen lieben Dank für die Mühe mit einem Vollnoob wie mir...
-
Das sieht doch alles recht gut aus.
Jetzt mußt du locker bleiben.
Machen wir mal eine Fehlersuche.
Erstelle dir mal einen Datenpunkt mit Name "Test".
Im Programm füge ein -> aktuallisiere Test mit dem Text Programm läuft.
Siehe Bild.
Wenn du jetzt Bierbrauen auf wahr stellst sollte unter Objekte im Datenpunkt
Test nach 15 Sekunden Programm läuft stehen.
Denke an die 15 Sekunden warten.
Wenn nicht wird das Programm nicht gestartet,
dann sehen wir weiter.
Teste mal.
-
Tja, ich habe es noch einmal hin und her geschoben, deaktiviert und wieder aktiviert, ich kann es drehen und wenden wie ich will, es geht nicht. Es wird nichts angesteuert. Vielleicht liegt es an meinen Datenpunkten:
Was mir aber dann jetzt aufgefallen ist, am Anfang steht ja Falls <wert>von Objekt <bierbrauen>ist gleich <wahr>dann mache…
Wie wird denn der Wert von diesem Objekt gesteuert? Ich habe mal eine Variable erstellt und diese so davor gesetzt:
aber leider auch ohne Erfolg. So langsam bin ich mit meinem Latein am Ende… :(</wahr></bierbrauen></wert>
-
Lege dir ein Datenpunkt Test an.
Sonst sehen wir nicht ob das Programm bis dahin läuft.
-
Bei mir rennt das jetzt bis zum Hauptprogramm.
Bilder anbei.
Läuft bei mir aus der Visu heraus.
Kürze das noch ein damit du das übernehmen kannst.
-
Sodele was zum Testen für dich.
Unter Objekte legst du an Datenpunkt Test und Runterzaehler.
Genau so nachbauen.
Wenn du Brauen einschaltest muß der DP Runterzaehler abwärst zählen.
Bei Runterzaehler 0 wird der Text ausgegeben.
Jetzt sollten sich erste Erfolge einstellen. :mrgreen:
Tipp, nicht so viel verschiedenes probieren.
Lieber ein Projekt und darin den Fehler suchen.
Also probiere es.
-
Hallo Ralla,
vielen Dank für deine Tipps. Leider liege ich im Moment krankheitsbedingt flach. Werde mich aber ASAP an die U Setzung machen, sobald ich wieder einigermaßen fit bin. Melde mich dann mit (hoffentlich) ersten Erfolgen…
-
Hallo Ralla,
ich habe jetzt zum testen mal dein Script nachgebaut. Und zwar exakt so:
also genau nach Vorgabe. Es passiert aber exakt gar nichts wenn ich es starte.Wenn es also bei dir funktioniert und bei mir nicht, obwohl beide Scripte exakt gleich sind, dann kann es ja eigentlich nur an den Datenpunkten liegen, oder? Hier nochmal so, wie sie bei mir aussehen:
Fällt dir hierzu etwas auf? Soll ich sie alle nochmal löschen und neu anlegen, oder woran hängt es.Danke für deine Gedult… :?
-
Wahrscheinlich liegt es daran, dass du deine Objekte unter vis.0 angelegt hast!
Eigene Objekte bitte immer unter javascript.0 bzw in eigene Ordner!
Enrico
-
So wie Enrico empfiehlt ausführen.
Bierbrauen hast du state switch.
Ist bei mir state level.
Somit wird Bierbrauen einmal getriggert.
Der Runterzähler läuft dann ab.
Am Ende des Programms wird Bierbrauen auf false gesetzt.
Einmaschaie Zeit und Grad würde ich noch einen Datenpunkt anlegen
um zu sehen ob Zeit und Grad in die Var geschrieben wird.
Ralla
5230_25012019.jpg