Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Bier maischen Script mit Blockly

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Bier maischen Script mit Blockly

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
101 Beiträge 9 Kommentatoren 10.3k Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • H Offline
    H Offline
    hanzwurzt
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich bin auch Anfänger, was Blockly und Scripten angeht. Ich möchte eine kleine Steuerung zum Schalten von Steckdosen (HS100 von TPLink) abhängig von Temperatur und für eine gewisse Zeit realisieren.

    Es geht mir darum einen Heizstab, der sich in meinem Topf mit der Maische befindet und über eine HS100 (hier mit dem Namen Funke2 ausgestattet) geschaltet wird, bei erreichen von bestimmten Temperaturen an oder aus zu schalten.

    Das Thermometer ist ein DS18B20.

    Der Topf soll sich zuerst auf eine bestimmte Temperatur aufheizen, hier zum Beispiel 55°C.

    Er soll die Temperatur von 55°C nicht unterschreiten, also immer dann die Steckdose anschalten wenn sie unter 55°C fällt.

    Er soll die Temperatur von 57°C nicht überschreiten, also die Steckdose immer dann abschalten, wenn sie über 57°C steigt.

    Ich denke, es könnte so ungefähr so aussehen.

    12588_script.jpg

    Falls das so in Ordnung ist, kommt jetzt mein eigentliches Problem. Ich möchte das die Temperatur für eine bestimmte Zeit gehalten wird. In diesem Fall für 30 Minuten.

    Danach soll er auf eine nächste Temperaturstufe angehoben werden. Zum Beispiel 63°C. Diese Stufe dann für wieder eine bestimmte Zeit gehalten werden. usw.

    in einem weiteren parallelen Step soll dann eine zweite HS100 angeschaltet werden. Das ist aber nur ein einmaliges Anschalten.

    Wie kann ich

    a) die Zeitschaltung realisieren (Cronjob triggert ja nur alle x Minuten etwas an, nicht für x Minuten)

    b) Die ganzen verschiedenen Trigger hintereinander ausführen lassen? Einfach untendrunter anhängen?

    Bin wie erwähnt totaler Noob auf diesem Gebiet und bin für jede Hilfe dankbar… :D

    1 Antwort Letzte Antwort
    0
    • MicM Offline
      MicM Offline
      Mic
      Developer
      schrieb am zuletzt editiert von
      #2

      Bier brauen sollte man unterstützen :D , kenne mich allerdings null in Blockly aus, sondern nur in Javascript. Sollte hier innerhalb einer Woche keine Antwort kommen, dann schreib mir eine PM, dann schaue ich mir das an und ich mache eine Javascript-Lösung 8-) :D

      1 Antwort Letzte Antwort
      0
      • H Offline
        H Offline
        hanzwurzt
        schrieb am zuletzt editiert von
        #3

        Super, Mic. Vielen Dank!! Ich werde mich dann melden. Allerdings würde ich das schon gerne auch mit Blockly lösen können….

        1 Antwort Letzte Antwort
        0
        • HomoranH Nicht stören
          HomoranH Nicht stören
          Homoran
          Global Moderator Administrators
          schrieb am zuletzt editiert von
          #4

          Hier war vor einiger Zeit schon mal so ein Thema mit Räuchern(?).

          da ging es auch um Temperaturen oder Feuchtigkeitsstufen über Zeit.

          Such mal bitte (ich mach das nachher auch)

          EDIT: schon gefunden:

          viewtopic.php?f=21&t=9615&start=40&hilit=r%C3%A4uchern

          Gruß

          Rainer

          kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

          Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

          der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

          1 Antwort Letzte Antwort
          0
          • J Offline
            J Offline
            Jan1
            schrieb am zuletzt editiert von
            #5

            Dein Blockly sollte so wie es ist schon fast laufen. Das "nach Zahl" wird allerdings nichts, da hier die Variable was er überhaupt nach Zahl konvertiert werden soll, an der falschen Stelle steht. Falls das überhaupt nötig wäre, denn dazu brächte man die Info zu dem DP den Du als Wert hast (der sollte doch eh schon ne Zahl sein). Dann kannst die mittleren 2 Blöcke weg lassen, da wenn er unter 55° anschaltet, das auch noch über 55° der Fall ist, reicht es wenn man bei über 57° wieder ausschaltet.

            1 Antwort Letzte Antwort
            0
            • H Offline
              H Offline
              hanzwurzt
              schrieb am zuletzt editiert von
              #6

              Hi, und vielen Dank für die Antworten. Das mit dem Räucherofen ist schon etwas komplexer, das muss ich mir morgen mal was genauer anschauen.

              Jan1, ich verstehe nicht ganz, was du meinst. Du sagst, dass Konvertieren nach Zahl unnötig wäre. Wie könnte ich das Script umbauen, damit die Gradzahl konstant zwischen 55°C und 56°C gehalten wird?

              Ich habe mir das so gedacht, dass halt immer geprüft wird, ob die Temperatur konstant bleibt?

              Danke für die Anregungen so far…

              :)

              1 Antwort Letzte Antwort
              0
              • J Offline
                J Offline
                Jan1
                schrieb am zuletzt editiert von
                #7

                Mach mal ein Screeshot von dem DP der die Temperatur anzeigt. Das müsste schon ne Zahl sein, deshalb musst Du nichts konvertieren, wenn Du es direkt mit einer Zahl vergleichen möchtest.

                Du willst die Temperatur zwischen 55° und 57° halten, somit reichte es doch, wenn Du unter 55 anschaltest und über 57 wieder aus. Das ist schon verdammt eng bei einander und man kann das noch etwas enger halten in dem man einfach "ist gleich oder größer" 57° einsetzt. Da ist es schon entscheidend, wie gut die Heizung reagiert. Bei 3 °C Differenz brauchst da was recht flottes um nicht viel über und unter Schwingung im Regelkreis zu haben.

                1 Antwort Letzte Antwort
                0
                • H Offline
                  H Offline
                  hanzwurzt
                  schrieb am zuletzt editiert von
                  #8

                  So, ich habe mal ein wenig rumgebastelt. Mein Script sieht jetzt so aus:

                  12588_script.jpg

                  Step 1: Kessel aufheizen für 10 Minuten zwischen 55°C und 56°C

                  Step 2: Kessel weiter aufheizen auf knappe 72°C

                  Leider funktioniert dieser Zeitplan nicht, wie ich es gerne hätte. Ich komme allerdings nicht drauf, wie ich es anders einstellen soll.

                  Ich habe auch jetzt einmal in das Script des Räucherofens reingeschaut, aber hier wird mit Variablen gearbeitet und ich finde keine Erklärung, wie zum Beispiel die Variable "Tagesminuten" auch tatsächlich als Minuten berechnet werden.

                  Ich möchte einfach nur, dass das Script meinen Heizstab antriggert und für eine bestimmte Zeit eine Temperatur halten lässt und nach Ablauf der Zeit auf die nächste Temperaturstufe hochheizt. Das kann doch eigentlich nicht so schwer sein, bzw. bin ich tatsächlich zu blöde dafür? (Bitte hier keine ehrlichen Antworten posten, vielen Dank… :D )

                  Gibt es noch eine Rettung für mein Projekt?

                  1 Antwort Letzte Antwort
                  0
                  • J Offline
                    J Offline
                    Jan1
                    schrieb am zuletzt editiert von
                    #9

                    Trigger im Trigger ist eben ne blöde Idee :lol:

                    Der Interne Trigger wird nur aktiv, wenn der externe aktiv ist, somit wird der Zeitplan nur dann aktiv, wenn sich die Temperatur ändert und ist nutzlos.

                    Wobei der Zeitplan eh sinnlos ist, da er die gesamte Regelung über die Temperatur durcheinander bringen würde. Das regelt sich doch selber und muss nicht alle 10 oder 30 Minuten noch mal aktiviert werden. Beispiel, der Zeitplan läuft gerade nicht, die Heizung ist aber an und Deine Maische bei 90°, dann schaltet da auch nix ab und Du kannst das Zeug entsorgen :lol:

                    1 Antwort Letzte Antwort
                    0
                    • AlCalzoneA Offline
                      AlCalzoneA Offline
                      AlCalzone
                      Developer
                      schrieb am zuletzt editiert von
                      #10

                      @hanzwurzt:

                      Ich möchte einfach nur, dass das Script meinen Heizstab antriggert und für eine bestimmte Zeit eine Temperatur halten lässt und nach Ablauf der Zeit auf die nächste Temperaturstufe hochheizt. `

                      Mangels Blockly hier in Textform:

                      [ Variable erstellen: Zieltemperatur mit Wert 55 ]
                      [ Timeout (10 Minuten) ]
                          [ Zieltemperatur setzen auf 72 ]
                      
                      [ Falls Objekt Thermometer geändert ]
                          [ Falls Wert < Zieltemperatur, dann Funke1 => wahr]
                          [ Sonst falls Wert > Zieltemperatur + 1, dann Funke1 => unwahr ]
                      
                      

                      Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                      1 Antwort Letzte Antwort
                      0
                      • H Offline
                        H Offline
                        hanzwurzt
                        schrieb am zuletzt editiert von
                        #11

                        Also, vielen Dank für die Antworten,

                        leider scheine ich tatsächlich zu blöde dafür zu sein. :? @AlCazone: Wenn ich es ganz genau nach dem baue, wie du gesagt hast, würde es ungefähr so aussehen:
                        12588_script.png

                        Funktioniert aber auch nicht. Der ganze Krempel heizt einfach in einem durch auf die endgültige Temperatur von 55°C (diesmal in echter 5- stelliger Zahl angegeben, wie sie auch vom Thermometer weitergegeben wird).

                        Und nach 15 Minuten passiert nichts mehr. Eigentlich sollte er ja die 35°C für 10 Minuten halten…

                        WAHHHH, ich werde noch komplett irre mit dem Kram. So schwer kann das doch eigentlich nicht sein...GRMBL :cry:

                        Hat noch jemand eine Idee? Was mache ich falsch? Irgendwo habe ich einen Denkfehler... :(

                        1 Antwort Letzte Antwort
                        0
                        • Ralla66R Offline
                          Ralla66R Offline
                          Ralla66
                          Most Active
                          schrieb am zuletzt editiert von
                          #12

                          Nicht so viel auf einmal.

                          Erst einmal den Cron und die Variablen weg lassen.

                          Versuche es wie im Bild.

                          Wenn du unter 55 Grad bist wird der Funke eingeschaltet.

                          Über 57 Grad schaltet der Funke aus.

                          Das sollte erst einmal klappen, dann weiter.

                          Mach dir mal Gedanken was du haben willst, ohne Cron.

                          Stufe 1 gesteuert über Thermostat.

                          An bei kleiner 55 Grad.

                          Aus bei größer 57 Grad.

                          Stufe 2 Aufheizen ?

                          Datenpunkt aufheizen anlegen,

                          wenn Datenpunkt aufheizen ist kleiner 72 Grad Funke weiter ein.

                          Abschaltung Funke bei 73 Grad.
                          5230_hanswurst_v1.jpg

                          1 Antwort Letzte Antwort
                          0
                          • AlCalzoneA Offline
                            AlCalzoneA Offline
                            AlCalzone
                            Developer
                            schrieb am zuletzt editiert von
                            #13

                            @hanzwurzt:

                            Funktioniert aber auch nicht. Der ganze Krempel heizt einfach in einem durch auf die endgültige Temperatur von 55°C (diesmal in echter 5- stelliger Zahl angegeben, wie sie auch vom Thermometer weitergegeben wird).

                            Und nach 15 Minuten passiert nichts mehr. Eigentlich sollte er ja die 35°C für 10 Minuten halten… `
                            Ahh ok, ich sehe den Fehler…

                            Die Zieltemperatur wird 10 Minuten nach Skriptstart auf 55 gesetzt. Du willst aber 10 Minuten nach Erreichen der ersten Stufe die Zieltemp auf 55 setzen.

                            Dazu musst du nach dem ersten Erreichen der Zieltemperatur einmalig den Timer starten.

                            Mangels Blockly die nötigen Änderungen in Textform:

                            - Timeout zu Beginn raus.
                            - Dafür eine weitere Variable => Stufe1Erreicht = false
                            - In den Zweig (Falls Objekt geändert) eine weitere Bedigung, am besten vor oder nach der aktuellen:
                              Falls (Wert >= Zieltemperatur) UND (Stufe1Erreicht  == false) => 
                                Stufe1Erreicht = true  
                                Timeout 10 Minuten => Zieltempratur auf 55°
                            
                            

                            Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                            1 Antwort Letzte Antwort
                            0
                            • H Offline
                              H Offline
                              hanzwurzt
                              schrieb am zuletzt editiert von
                              #14

                              Also, wieder erst einmal vielen Dank für die Antworten. Ich habe es jetzt einmal so gemacht:

                              12588_screen.png

                              Aber dann passiert rein gar nichts.

                              So langsam kriege ich hier echt die Motten. Es kann doch nicht sein, dass das so schwer ist… :(

                              1 Antwort Letzte Antwort
                              0
                              • Ralla66R Offline
                                Ralla66R Offline
                                Ralla66
                                Most Active
                                schrieb am zuletzt editiert von
                                #15

                                Boah was verkaspert.

                                Auf die schnelle,

                                Bild anbei.
                                5230_io-v3.jpg

                                1 Antwort Letzte Antwort
                                0
                                • H Offline
                                  H Offline
                                  hanzwurzt
                                  schrieb am zuletzt editiert von
                                  #16

                                  OK, vielen Dank Ralla,

                                  leider funktioniert das so auch nicht, da ich den Block mit "Stufe1 erreicht = wahr" nicht in den Block einfügen kann wie auf deiner Grafik angezeigt.

                                  12588_screen2.png

                                  Ich hatte es ja soweit, dass das Aufheizen bis zu einer bestimmten Stufe funktioniert hat. Das Halten der Temperatur auch. Nur das Ganze an eine gewisse Zeit zu binden, ist der große Knackpunkt.

                                  Also, es soll eine Temperatur von 30000 angefahren werden.

                                  Dann 30000 für eine zeit von 10 Minuten halten.

                                  Dann auf 55000 aufheizen.

                                  Dann wieder für 30 Minuten halten.

                                  danach wieder aufheizen usw.

                                  Ein Cronjob kann das nicht. Ein Timeout scheint das auch irgendwie nicht richtig zu triggern, jedenfalls nicht dort, wo er sitzt.

                                  Was gibt es noch für Möglichkeiten?

                                  [Edit]: Sorry, habe nicht gesehen, dass du deinen Beitrag schon editiert hast. Ich schau da aber erst morgen mal rein. Muss jetzt in die Heia. Aber vielen lieben Dank für deine/ eure Mühen…

                                  1 Antwort Letzte Antwort
                                  0
                                  • Ralla66R Offline
                                    Ralla66R Offline
                                    Ralla66
                                    Most Active
                                    schrieb am zuletzt editiert von
                                    #17

                                    Ja ok Zeit,

                                    nimm dir ein Cron, den führst du jede Minute aus.

                                    Im Cron zählst du eine Variable "Minute" hoch.

                                    Diese schreibst du in einen Datenpunkt ( DP ).

                                    Immer +1 die Var.

                                    Setze die Var alle 1440 auf 0, also alle 24 Stunden oder so.

                                    1 Antwort Letzte Antwort
                                    0
                                    • Ralla66R Offline
                                      Ralla66R Offline
                                      Ralla66
                                      Most Active
                                      schrieb am zuletzt editiert von
                                      #18

                                      Datenpunkt Minute.
                                      5230_datenpunkt_minute.jpg
                                      5230_datenpunkt.jpg

                                      1 Antwort Letzte Antwort
                                      0
                                      • AlCalzoneA Offline
                                        AlCalzoneA Offline
                                        AlCalzone
                                        Developer
                                        schrieb am zuletzt editiert von
                                        #19

                                        @hanzwurzt:

                                        Was gibt es noch für Möglichkeiten? `
                                        Les dir meinen Post bitte mal genau durch. Da steht alles drin, welche Änderungen du an deinem vorhergehenden Skript machen musst.

                                        Deine letzten beiden Versuche haben leider gar nichts mit dem zu tun, was ich beschrieben habe. Der 2. Versuch kommt näher dran, aber es fehlen erstens Blöcke aus dem Skript, das du nur modifizieren solltest, und zweitens fliegen Blöcke im Nirvana rum, die eigentlich innerhalb der Logik-Blöcke sein sollten.

                                        Edit: Hier das Bild für eine Stufe. Der Abschnitt mit dem Timeout muss in die Klammer bei "mache", das war mir in Photoshop gerade zu umständlich.
                                        1097_unbenannt-1.png
                                        Für weitere Stufen muss die Bedingung, die die neue Zieltemperatur festlegt, etwas umgestrickt werden.

                                        Bevor ich dir das auch noch bastele, bitte ich dich, meinen Post nochmal aufmerksam zu lesen, dein altes Skript genau anzuschauen und nachzuvollziehen, was wo geändert wurde.

                                        Halbherzig lesen, ganz was anderes umsetzen und dann meckern dass es nicht geht, hilft niemand!

                                        Wenn du soweit bist, bitte alle Details: Wie viele Stufen? Wird zwischendrin abgekühlst oder nur weiter geheizt?

                                        Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                                        1 Antwort Letzte Antwort
                                        0
                                        • H Offline
                                          H Offline
                                          hanzwurzt
                                          schrieb am zuletzt editiert von
                                          #20

                                          Also, zuerst einmal vielen Dank für die Anregungen.

                                          Ich habe das Script anhand deiner Ideen Ralla, abgeändert. Erst einmal so:

                                          12588_script2.jpg

                                          Leider ohne den erwarteten Erfolg. Nach diesem Script heizt der Heizstab das Wasser bis zu einer Endtemperatur von 40°C in einem durch auf.

                                          @AlCalzone: Das Bild in dem die Blöcke nicht verbunden waren, war eigentlich nur zur Verdeutlichung gedacht, weil sich die Blöcke nicht so verbinden ließen, wie ich es aus deiner Beschreibung gelesen habe. Es tut mir leid, wenn ich mich so blöd anstelle, aber das hier ist absolutes Neuland für mich.

                                          Ich habe es jetzt so gebastelt, wie du vorgeschlagen hast und dieses Script funktioniert:

                                          12588_script.jpg

                                          Es steuert dein Heizstab so an, dass die Temperatur erst auf 20°C hochgefahren wird, diese dann für 10 Minuten hält und nach Ablauf der 10 Minuten die Temperatur auf 30°C hochfährt. So weit SUPER!! Vielen Dank dafür!!! :)

                                          Ab hier wird das Script im Prinzip für jede Art von Bier etwas unterschiedlich. Als Beispiel:

                                          Für ein Weizenbier möchte ich mehrere Temperaturstufen durchfahren:

                                          1. Einmaischen bei 45°C halten für 10 Minuten

                                          2. Eiweißrast bei 55°C halten für 15 Minuten

                                          3. Maltoserast bei 63°C halten für 60 Minuten

                                          4. Verzuckerungsrast bei 72°C für 30 Minuten

                                          5. Abmaischen bei 78°C

                                          Für andere Biere muss ich andere Stufen durchfahren. Eine helles Lager würde ich wahrscheinlich so machen:

                                          1. Einmaischen bei 55°C halten für 10 Minuten

                                          2. Kombirast bei 68°C für 60 Minuten

                                          3. Abmaischen bei 78°C

                                          Dazwischen gibt es verschiedene Variationen, die eine individuelle Anpassung vor jedem Brauvorgang unerlässlich macht.

                                          Das bedeutet, ich muss das Script ab diesem Punkt so gestalten, dass ich hier skalierbar bleibe und etwaige Stufen ein oder ausbauen kann, ohne Abhängigkeiten zu beeinträchtigen.

                                          Leider ist es nicht so ganz einfach, ab hier weiterzubauen. Ich habe über die letzten Tage viele verschiedene Kombinationen ausprobiert, aber keine hat den gewünschten Erfolg begracht. Ich habe dann auch mit kopieren einzelner Blöcke experimentiert:

                                          12588_script3.jpg

                                          aber anscheinend passiert dann genau das. Das ganze Script funktioniert dann nicht mehr so, wie ich es eigentlich möchte. Anscheinend werden hier dann Abhängigkeiten überschrieben.

                                          Also noch einmal vielen vielen Dank für eure Gedult und entschuldigt bitte mein Unvermögen, mich in diese Dinge reinzuversetzen, wie es nötig wäre.

                                          Wenn ihr mir hier noch einmal einen Schubs geben könntet, wäre das wirklich super…. ;)

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          740

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe