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. Praktische Anwendungen (Showcase)
  4. Chinaheizung halbwegs smart gemacht

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    141

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.4k

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

Chinaheizung halbwegs smart gemacht

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
17 Beiträge 3 Kommentatoren 2.0k Aufrufe 4 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.
  • G Offline
    G Offline
    gmt94
    schrieb am zuletzt editiert von
    #1

    Hallo Zusammen,

    nun möchte ich euch mein kleines Projekt der letzten Tage vorstellen. Es ist jedoch noch nicht komplett abgeschlossen.
    Ich habe mir vor einiger Zeit in meiner Werkstatt so eine Chinastandheizung für knapp 100€ installiert. Leider ist dort die Bedienung nur per Fernbedienung und Tasten am Display möglich.

    Anfangs wollte ich die Tasten mit einem 4 Fach Aktor (Relaisplatine) von homematic ansteuern. Kurzzeitig muss ich jedoch Mr. 3000V gewesen sein und habe die Platine und die Fernbedienung zerschossen :-).

    Als nächstes habe ich eine Platine von Shelly entdeckt, die quasi das gleich kann nur noch viel mehr zum 1/3 des Preises der Homematic Platine. Leider ist die Shelly Platine noch nicht im Adapter integriert (Git Request habe ich bereits bestellt), jedoch kann ich alles per html request steuern.

    Da die Fernbedienung nun kaputt ist, bin ich jetzt direkt an die Tasten des Displays gegangen. Hier bediene ich dann nur die Tasten ON/OFF sowie Heizstufe hoch und runter.

    Damit das ganze auch halbwegs schick und gewollt aussieht habe ich noch eine kleine Box gedruckt, die die Shlleyplatine, das Display sowie einen Shelly Uni aufnimmt.

    Der Shelly Uni wird benutzt um die Pegelstand im Tank zu messen um es in der Vis auch darzustellen. Später wird der Pegelstand noch benutzt, um eine automatische Betankung des kleinen 5,5l Tanks mittels Pumpe aus einem großen Kanister zu bewerkstelligen.

    20241123_114754.jpg

    Das ist die Shelly Platine. die ersten 3 Relais von oben sind für die Steuerung des Displays. Für eine einfachere Montage hab ich dort einen Zwischenstecker installiert.
    Das unterste Relais wird später für die Ansteuerung des Krafstoffpumpe verwendet.

    20241123_114804.jpg

    Hier ist das Display mit den angelöteten Gegensteckern.

    20241123_094039.jpg

    Da ich sehr gerne Ordnung mag hab ich gleich Steckplätze für Wagoklemmen in die Box integriert. Und damit bei der Montage nichts schief geht gleich mehrfarbig gedruckt. Die unteren Wagos dienen zur Spannungsversorgung der Heizung, Shellyplatine und der Kraftstoffpumpe.

    20241123_110658.jpg

    Auf der rechten Seite der Box befindet sich die Aufname für den Shelly Uni.

    20241123_093912.jpg

    Des Weiteren hab ich noch eine Aufnahme für das eigentliche Display gedruckt. Unten in der Box liegt die Shellyplatine, darauf kommt die Aufnahme und darauf wird dann das Display befestigt.

    20241123_144945.jpg

    Angeschlossen sieht das ganze dann so aus.

    Als Pegelerfassung nutze ich eine 125mmUnbenannt.PNG Pegelsonde.

    Diese hat einen veränderlichen Widerstand von 0-190ohm. Leider ist dieser nicht kontinuierlich. Jedoch sind es insgesamt 6 Stufen wo sich der Widerstand ändert. Ist für mich ausreichend genau. Um jedoch das Signal zu messen, habe ich einen Spannungsteiler mit 1kOhm als Widerstand gebaut. Mit der Eingangsspannung von 12V ergeben sich dann knapp 0-2 Volt als Messbereich. Ausreichend groß um die Stufen dann mittels Shelly Uni zu messen und per Script dann in den jeweilgen Füllstand umzurechnen.

    An der Shellyplatine hab ich dann noch einen Temperaturfühler angebracht um die Ausströmertemperatur zu messen.

    Nun gibt es noch die bisher erstellten BlocklyScripte:

    Startscript: Startet die Heizung und sperrt zunächst 8min die Steuerung. Die Heizung fährt sich alleine erstmal hoch, dort reagiert sie auch nicht auf eine Änderung am Display.

    <xml xmlns="https://developers.google.com/blockly/xml">
      <block type="on" id="$tU996o~hQ[gu+Rp]ZzL" x="138" y="88">
        <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_On</field>
        <field name="CONDITION">ne</field>
        <field name="ACK_CONDITION"></field>
        <statement name="STATEMENT">
          <block type="controls_if" id="-kvipVRHx8bQ=BYHNv*|">
            <value name="IF0">
              <block type="logic_compare" id="%z+e+i0x7-#GA)9#3[5F">
                <field name="OP">EQ</field>
                <value name="A">
                  <block type="get_value" id="?1RP)!8R(~0^N,3i{}hQ">
                    <field name="ATTR">val</field>
                    <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_On</field>
                  </block>
                </value>
                <value name="B">
                  <block type="logic_boolean" id="9P]dho?Dg)Ol5EY~$Utq">
                    <field name="BOOL">TRUE</field>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO0">
              <block type="control" id="`E9{]wV#ZzVvYxa-[qIi">
                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                <field name="WITH_DELAY">FALSE</field>
                <value name="VALUE">
                  <block type="math_number" id="8KWV8^?KTJK~1/,FxL0x">
                    <field name="NUM">3</field>
                  </block>
                </value>
                <next>
                  <block type="request" id="=#~U|~ufO;;RIFT51z*Z">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                    <field name="WITH_STATEMENT">FALSE</field>
                    <field name="LOG"></field>
                    <value name="URL">
                      <shadow type="text" id="Dv-gz/AEM.O*pf8=9d=e">
                        <field name="TEXT">http://192.168.178.140/relay/2?turn=on</field>
                      </shadow>
                    </value>
                    <next>
                      <block type="timeouts_wait" id="Ut#@_]7_Ocl!qwh0+9ZH">
                        <field name="DELAY">2500</field>
                        <field name="UNIT">ms</field>
                        <next>
                          <block type="request" id="b)IGmCnP(mkg+HpY3ZJu">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                            <field name="WITH_STATEMENT">FALSE</field>
                            <field name="LOG"></field>
                            <value name="URL">
                              <shadow type="text" id="$|(F/4!az1S+8D?w!i0%">
                                <field name="TEXT">http://192.168.178.140/relay/2?turn=off</field>
                              </shadow>
                            </value>
                            <next>
                              <block type="control" id="Q(KElrPDwU#?`05agb:$">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE">
                                  <block type="text" id="N}TV|F%J;H/d1ma,~lnu">
                                    <field name="TEXT">Heizung startet! Bedienung für 8min gesperrt.</field>
                                  </block>
                                </value>
                                <next>
                                  <block type="control" id="8@rsdx{|5Ny-mRp77$;l">
                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                    <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Freigabe</field>
                                    <field name="WITH_DELAY">TRUE</field>
                                    <field name="DELAY_MS">8</field>
                                    <field name="UNIT">min</field>
                                    <field name="CLEAR_RUNNING">FALSE</field>
                                    <value name="VALUE">
                                      <block type="logic_boolean" id="k(F9$uy7Kop+oGm9MCp6">
                                        <field name="BOOL">TRUE</field>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="control" id="EK9bbEhGIZpD_5w{n[EG">
                                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                        <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                                        <field name="WITH_DELAY">TRUE</field>
                                        <field name="DELAY_MS">8</field>
                                        <field name="UNIT">min</field>
                                        <field name="CLEAR_RUNNING">FALSE</field>
                                        <value name="VALUE">
                                          <block type="text" id="q-ZIoo@6^==/AcRP=oT~">
                                            <field name="TEXT">Hochlauf abgeschlossen und Freigabe erteilt</field>
                                          </block>
                                        </value>
                                        <next>
                                          <block type="control" id="#0laTSHaL(M~X6PfBM~:">
                                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                            <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                                            <field name="WITH_DELAY">TRUE</field>
                                            <field name="DELAY_MS">500</field>
                                            <field name="UNIT">sec</field>
                                            <field name="CLEAR_RUNNING">FALSE</field>
                                            <value name="VALUE">
                                              <block type="text" id="j|Y@e5V{,B|-d*#BGwAV">
                                                <field name="TEXT"></field>
                                              </block>
                                            </value>
                                          </block>
                                        </next>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </statement>
          </block>
        </statement>
      </block>
    </xml>
    

    Wenn die 8 min vorbei sind, wird die Freigabe für Heizstufe hoch und runter erteilt. Die Heizung startet immer in Heizstufe 3 von 6.

    Die Scripte zählen dann automatisch die Heizstufen mit hoch und runter und sperren sich wenn die kleinste oder höchste Stufe erreicht ist.

    Heizstufe runter:

    <xml xmlns="https://developers.google.com/blockly/xml">
      <block type="on" id="YQ6XX(]NsmxZEN-^$jHM" x="238" y="62">
        <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Down</field>
        <field name="CONDITION">ne</field>
        <field name="ACK_CONDITION"></field>
        <statement name="STATEMENT">
          <block type="controls_if" id="9!khcKWsA5;ZZ[t+/@8O">
            <value name="IF0">
              <block type="logic_multi_and" id="mKL^S/vITNpfMyhKtfdC">
                <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                <value name="AND0">
                  <block type="logic_compare" id="9B0O//g^EB2tA0~l+uii">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block type="get_value" id="v(i5r#h[]ul``DFZ$z|d">
                        <field name="ATTR">val</field>
                        <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Down</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_boolean" id="@OVi1+pG[|$)4W6#/_Tl">
                        <field name="BOOL">TRUE</field>
                      </block>
                    </value>
                  </block>
                </value>
                <value name="AND1">
                  <block type="logic_multi_and" id="-#;92aA#@bv`%Y*!`@]2">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                    <value name="AND0">
                      <block type="logic_compare" id="kWeOb0!:)Y+G]g,9OKT?">
                        <field name="OP">GTE</field>
                        <value name="A">
                          <block type="get_value" id="+wFLQW9[|04f=t$W+Dw`">
                            <field name="ATTR">val</field>
                            <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="math_number" id=".AH`b}8=?AZAXihpYrl!">
                            <field name="NUM">2</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="AND1">
                      <block type="logic_compare" id="xiOi|fX8*AL*alPUm5W_">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="get_value" id="%9qa^R(SGh4?Ogz5w;R]">
                            <field name="ATTR">val</field>
                            <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Freigabe</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_boolean" id="!B*L#|AGyB;#$DG}S%C^">
                            <field name="BOOL">TRUE</field>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO0">
              <block type="request" id="=#~U|~ufO;;RIFT51z*Z">
                <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                <field name="WITH_STATEMENT">FALSE</field>
                <field name="LOG"></field>
                <value name="URL">
                  <shadow type="text" id="Dv-gz/AEM.O*pf8=9d=e">
                    <field name="TEXT">http://192.168.178.140/relay/1?turn=on</field>
                  </shadow>
                </value>
                <next>
                  <block type="timeouts_wait" id="c-p;x5/E.2j{i$2C0B4`">
                    <field name="DELAY">750</field>
                    <field name="UNIT">ms</field>
                    <next>
                      <block type="request" id="J@{%uh|E@DB3a0+I~RLX">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                        <field name="WITH_STATEMENT">FALSE</field>
                        <field name="LOG"></field>
                        <value name="URL">
                          <shadow type="text" id="6g21V#a+@_cTOom}bs,g">
                            <field name="TEXT">http://192.168.178.140/relay/1?turn=off</field>
                          </shadow>
                        </value>
                        <next>
                          <block type="control" id="@jihPVZsZeHBBIhzK!-)">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                            <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Down</field>
                            <field name="WITH_DELAY">TRUE</field>
                            <field name="DELAY_MS">1000</field>
                            <field name="UNIT">ms</field>
                            <field name="CLEAR_RUNNING">FALSE</field>
                            <value name="VALUE">
                              <block type="logic_boolean" id="uK$Axj2l8o.TOts@JbPE">
                                <field name="BOOL">FALSE</field>
                              </block>
                            </value>
                            <next>
                              <block type="control" id="e.`Cm)ApP934MxaV?/C@">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE">
                                  <block type="math_arithmetic" id="U,mmQ7v^5B/!I+{8U#rq">
                                    <field name="OP">MINUS</field>
                                    <value name="A">
                                      <shadow type="math_number" id="n:x}*D9/xx+fELeF2P*u">
                                        <field name="NUM">1</field>
                                      </shadow>
                                      <block type="get_value" id="gB+dc%F/$obpW%Bu6.`u">
                                        <field name="ATTR">val</field>
                                        <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <shadow type="math_number" id="u1@ALAb#3^nhm-uif/x@">
                                        <field name="NUM">1</field>
                                      </shadow>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </statement>
            <next>
              <block type="controls_if" id="1}AvgoEZ%O+o}/?:w=#^">
                <value name="IF0">
                  <block type="logic_multi_and" id="wFt5Q,D3A%CH*`~!]IPa">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                    <value name="AND0">
                      <block type="logic_compare" id="+mdg%j:=G,Fj$D9J3iN+">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="get_value" id="jpGn_bnsar54`/)+F.+]">
                            <field name="ATTR">val</field>
                            <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Down</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_boolean" id="=nNU?H?v/.hw65[EdvQh">
                            <field name="BOOL">TRUE</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="AND1">
                      <block type="logic_compare" id="i9Qe(:z|.+I0GPs+j:ql">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="get_value" id="kh!ozti.:f*W5zFiq`kF">
                            <field name="ATTR">val</field>
                            <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="math_number" id="b$7:,(xUS_!/EX*;#CYM">
                            <field name="NUM">1</field>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="control" id="hi8QC05VCtuMPc@MZ3/W">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                    <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Down</field>
                    <field name="WITH_DELAY">TRUE</field>
                    <field name="DELAY_MS">1000</field>
                    <field name="UNIT">ms</field>
                    <field name="CLEAR_RUNNING">FALSE</field>
                    <value name="VALUE">
                      <block type="logic_boolean" id="6~J=fBw_ZF9%(j,KLaPI">
                        <field name="BOOL">FALSE</field>
                      </block>
                    </value>
                    <next>
                      <block type="control" id="Q(KElrPDwU#?`05agb:$">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                        <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="text" id="N}TV|F%J;H/d1ma,~lnu">
                            <field name="TEXT">Kleinste Stufe erreicht</field>
                          </block>
                        </value>
                        <next>
                          <block type="control" id="3=jGY}5;qwu=G-flCg0^">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                            <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                            <field name="WITH_DELAY">TRUE</field>
                            <field name="DELAY_MS">10</field>
                            <field name="UNIT">sec</field>
                            <field name="CLEAR_RUNNING">FALSE</field>
                            <value name="VALUE">
                              <block type="text" id=")_gK@lrF#Zq$G@_@V=LQ">
                                <field name="TEXT"></field>
                              </block>
                            </value>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
            </next>
          </block>
        </statement>
      </block>
    </xml>
    

    Heizstufe hoch:

    <xml xmlns="https://developers.google.com/blockly/xml">
      <block type="on" id="YQ6XX(]NsmxZEN-^$jHM" x="238" y="62">
        <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Up</field>
        <field name="CONDITION">ne</field>
        <field name="ACK_CONDITION"></field>
        <statement name="STATEMENT">
          <block type="controls_if" id="9!khcKWsA5;ZZ[t+/@8O">
            <value name="IF0">
              <block type="logic_multi_and" id="mKL^S/vITNpfMyhKtfdC">
                <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                <value name="AND0">
                  <block type="logic_compare" id="9B0O//g^EB2tA0~l+uii">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block type="get_value" id="v(i5r#h[]ul``DFZ$z|d">
                        <field name="ATTR">val</field>
                        <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Up</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_boolean" id="@OVi1+pG[|$)4W6#/_Tl">
                        <field name="BOOL">TRUE</field>
                      </block>
                    </value>
                  </block>
                </value>
                <value name="AND1">
                  <block type="logic_multi_and" id="-#;92aA#@bv`%Y*!`@]2">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                    <value name="AND0">
                      <block type="logic_compare" id="kWeOb0!:)Y+G]g,9OKT?">
                        <field name="OP">LTE</field>
                        <value name="A">
                          <block type="get_value" id="+wFLQW9[|04f=t$W+Dw`">
                            <field name="ATTR">val</field>
                            <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="math_number" id=".AH`b}8=?AZAXihpYrl!">
                            <field name="NUM">5</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="AND1">
                      <block type="logic_compare" id="xiOi|fX8*AL*alPUm5W_">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="get_value" id="%9qa^R(SGh4?Ogz5w;R]">
                            <field name="ATTR">val</field>
                            <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Freigabe</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_boolean" id="!B*L#|AGyB;#$DG}S%C^">
                            <field name="BOOL">TRUE</field>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO0">
              <block type="request" id="=#~U|~ufO;;RIFT51z*Z">
                <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                <field name="WITH_STATEMENT">FALSE</field>
                <field name="LOG"></field>
                <value name="URL">
                  <shadow type="text" id="Dv-gz/AEM.O*pf8=9d=e">
                    <field name="TEXT">http://192.168.178.140/relay/3?turn=on</field>
                  </shadow>
                </value>
                <next>
                  <block type="timeouts_wait" id="c-p;x5/E.2j{i$2C0B4`">
                    <field name="DELAY">750</field>
                    <field name="UNIT">ms</field>
                    <next>
                      <block type="request" id="J@{%uh|E@DB3a0+I~RLX">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                        <field name="WITH_STATEMENT">FALSE</field>
                        <field name="LOG"></field>
                        <value name="URL">
                          <shadow type="text" id="6g21V#a+@_cTOom}bs,g">
                            <field name="TEXT">http://192.168.178.140/relay/3?turn=off</field>
                          </shadow>
                        </value>
                        <next>
                          <block type="control" id="@jihPVZsZeHBBIhzK!-)">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                            <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Up</field>
                            <field name="WITH_DELAY">TRUE</field>
                            <field name="DELAY_MS">1000</field>
                            <field name="UNIT">ms</field>
                            <field name="CLEAR_RUNNING">FALSE</field>
                            <value name="VALUE">
                              <block type="logic_boolean" id="uK$Axj2l8o.TOts@JbPE">
                                <field name="BOOL">FALSE</field>
                              </block>
                            </value>
                            <next>
                              <block type="control" id="e.`Cm)ApP934MxaV?/C@">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE">
                                  <block type="math_arithmetic" id="U,mmQ7v^5B/!I+{8U#rq">
                                    <field name="OP">ADD</field>
                                    <value name="A">
                                      <shadow type="math_number" id="n:x}*D9/xx+fELeF2P*u">
                                        <field name="NUM">1</field>
                                      </shadow>
                                      <block type="get_value" id="gB+dc%F/$obpW%Bu6.`u">
                                        <field name="ATTR">val</field>
                                        <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                                      </block>
                                    </value>
                                    <value name="B">
                                      <shadow type="math_number" id="u1@ALAb#3^nhm-uif/x@">
                                        <field name="NUM">1</field>
                                      </shadow>
                                    </value>
                                  </block>
                                </value>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </statement>
            <next>
              <block type="controls_if" id="1}AvgoEZ%O+o}/?:w=#^">
                <value name="IF0">
                  <block type="logic_multi_and" id="wFt5Q,D3A%CH*`~!]IPa">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                    <value name="AND0">
                      <block type="logic_compare" id="+mdg%j:=G,Fj$D9J3iN+">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="get_value" id="jpGn_bnsar54`/)+F.+]">
                            <field name="ATTR">val</field>
                            <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Up</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_boolean" id="=nNU?H?v/.hw65[EdvQh">
                            <field name="BOOL">TRUE</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="AND1">
                      <block type="logic_compare" id="i9Qe(:z|.+I0GPs+j:ql">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="get_value" id="kh!ozti.:f*W5zFiq`kF">
                            <field name="ATTR">val</field>
                            <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="math_number" id="b$7:,(xUS_!/EX*;#CYM">
                            <field name="NUM">6</field>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="control" id="hi8QC05VCtuMPc@MZ3/W">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                    <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Up</field>
                    <field name="WITH_DELAY">TRUE</field>
                    <field name="DELAY_MS">1000</field>
                    <field name="UNIT">ms</field>
                    <field name="CLEAR_RUNNING">FALSE</field>
                    <value name="VALUE">
                      <block type="logic_boolean" id="6~J=fBw_ZF9%(j,KLaPI">
                        <field name="BOOL">FALSE</field>
                      </block>
                    </value>
                    <next>
                      <block type="control" id="Q(KElrPDwU#?`05agb:$">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                        <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="text" id="N}TV|F%J;H/d1ma,~lnu">
                            <field name="TEXT">Höchste Stufe erreicht</field>
                          </block>
                        </value>
                        <next>
                          <block type="control" id="3=jGY}5;qwu=G-flCg0^">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                            <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                            <field name="WITH_DELAY">TRUE</field>
                            <field name="DELAY_MS">10</field>
                            <field name="UNIT">sec</field>
                            <field name="CLEAR_RUNNING">FALSE</field>
                            <value name="VALUE">
                              <block type="text" id=")_gK@lrF#Zq$G@_@V=LQ">
                                <field name="TEXT"></field>
                              </block>
                            </value>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
            </next>
          </block>
        </statement>
      </block>
    </xml>
    

    Abschalten:

    <xml xmlns="https://developers.google.com/blockly/xml">
      <block type="on" id="$tU996o~hQ[gu+Rp]ZzL" x="138" y="88">
        <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_On</field>
        <field name="CONDITION">ne</field>
        <field name="ACK_CONDITION"></field>
        <statement name="STATEMENT">
          <block type="controls_if" id="-kvipVRHx8bQ=BYHNv*|">
            <value name="IF0">
              <block type="logic_compare" id="%z+e+i0x7-#GA)9#3[5F">
                <field name="OP">EQ</field>
                <value name="A">
                  <block type="get_value" id="?1RP)!8R(~0^N,3i{}hQ">
                    <field name="ATTR">val</field>
                    <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_On</field>
                  </block>
                </value>
                <value name="B">
                  <block type="logic_boolean" id="9P]dho?Dg)Ol5EY~$Utq">
                    <field name="BOOL">FALSE</field>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO0">
              <block type="request" id="=#~U|~ufO;;RIFT51z*Z">
                <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                <field name="WITH_STATEMENT">FALSE</field>
                <field name="LOG"></field>
                <value name="URL">
                  <shadow type="text" id="Dv-gz/AEM.O*pf8=9d=e">
                    <field name="TEXT">http://192.168.178.140/relay/2?turn=on</field>
                  </shadow>
                </value>
                <next>
                  <block type="timeouts_wait" id="Ut#@_]7_Ocl!qwh0+9ZH">
                    <field name="DELAY">2500</field>
                    <field name="UNIT">ms</field>
                    <next>
                      <block type="request" id="b)IGmCnP(mkg+HpY3ZJu">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                        <field name="WITH_STATEMENT">FALSE</field>
                        <field name="LOG"></field>
                        <value name="URL">
                          <shadow type="text" id="$|(F/4!az1S+8D?w!i0%">
                            <field name="TEXT">http://192.168.178.140/relay/2?turn=off</field>
                          </shadow>
                        </value>
                        <next>
                          <block type="control" id="Q(KElrPDwU#?`05agb:$">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                            <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="text" id="N}TV|F%J;H/d1ma,~lnu">
                                <field name="TEXT">Heizung fährt herunter, Freigabe entzogen</field>
                              </block>
                            </value>
                            <next>
                              <block type="control" id="8@rsdx{|5Ny-mRp77$;l">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Freigabe</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE">
                                  <block type="logic_boolean" id="k(F9$uy7Kop+oGm9MCp6">
                                    <field name="BOOL">FALSE</field>
                                  </block>
                                </value>
                                <next>
                                  <block type="control" id="/f@iSqb-Z)tvu!A5A*+r">
                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                    <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                                    <field name="WITH_DELAY">TRUE</field>
                                    <field name="DELAY_MS">2</field>
                                    <field name="UNIT">min</field>
                                    <field name="CLEAR_RUNNING">FALSE</field>
                                    <value name="VALUE">
                                      <block type="text" id="WKFRSa1mm=Vc?V|%}U?(">
                                        <field name="TEXT"></field>
                                      </block>
                                    </value>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </next>
              </block>
            </statement>
          </block>
        </statement>
      </block>
    </xml>
    

    Analog zum selbständigen Hochfahren der Heizung führt diese auch eine Selbstständige Abkühlphase durch. Zur Zeit wird das jedoch noch nicht vom Script erschlagen. Daher bitte mit vorsicht zu genießen.

    Nun folgen noch die Abfrage der Temperatur und Spannung der jeweiligen Shelly:

    Temperatur

    <xml xmlns="https://developers.google.com/blockly/xml">
      <variables>
        <variable id="!);hs;9{=,[~A8o5{=Hv">x</variable>
        <variable id="vKh/VeTs4fFJuM1~{sL^">result</variable>
      </variables>
      <block type="schedule" id="S5y/ctFHiI7:WlW-,Dfh" x="112" y="63">
        <field name="SCHEDULE">* * * * * *</field>
        <statement name="STATEMENT">
          <block type="request" id="UTG6!ewVuNx|/w}T^dBz">
            <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
            <field name="WITH_STATEMENT">TRUE</field>
            <field name="LOG"></field>
            <value name="URL">
              <shadow type="text" id="0KpZxvNEi=c6f!Np2x*U">
                <field name="TEXT">http://192.168.178.140/rpc/Temperature.GetStatus?id=100</field>
              </shadow>
            </value>
            <statement name="STATEMENT">
              <block type="variables_set" id="bfIINS`.pTEu+cC3%qg[">
                <field name="VAR" id="!);hs;9{=,[~A8o5{=Hv">x</field>
                <value name="VALUE">
                  <block type="get_attr" id="6l|u$1Ux]=:T::Zok93~">
                    <value name="PATH">
                      <shadow type="text" id="QR9!,Cad!IG[S06MPl|z">
                        <field name="TEXT">tC</field>
                      </shadow>
                    </value>
                    <value name="OBJECT">
                      <shadow type="get_object" id="aq)Rdy.u8%`LFx0K+o@!">
                        <field name="OID">Object ID</field>
                      </shadow>
                      <block type="convert_json2object" id=";Ll?WdS,2,vA-zX:V]9M">
                        <value name="VALUE">
                          <block type="variables_get" id="tY3hxMoz/LX!f_go.c.N">
                            <field name="VAR" id="vKh/VeTs4fFJuM1~{sL^">result</field>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
                <next>
                  <block type="update" id="=q.UG4o;V#*~Md#`H$o9">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                    <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Ausstroemertemperatur</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="variables_get" id="f_l+(|oUEI0^){.#3A;-">
                        <field name="VAR" id="!);hs;9{=,[~A8o5{=Hv">x</field>
                      </block>
                    </value>
                  </block>
                </next>
              </block>
            </statement>
          </block>
        </statement>
      </block>
    </xml>
    

    Spannung:

    <xml xmlns="https://developers.google.com/blockly/xml">
      <variables>
        <variable id="!);hs;9{=,[~A8o5{=Hv">x</variable>
        <variable id="vKh/VeTs4fFJuM1~{sL^">result</variable>
      </variables>
      <block type="schedule" id="S5y/ctFHiI7:WlW-,Dfh" x="112" y="63">
        <field name="SCHEDULE">* * * * * *</field>
        <statement name="STATEMENT">
          <block type="request" id="UTG6!ewVuNx|/w}T^dBz">
            <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
            <field name="WITH_STATEMENT">TRUE</field>
            <field name="LOG"></field>
            <value name="URL">
              <shadow type="text" id="0KpZxvNEi=c6f!Np2x*U">
                <field name="TEXT">http://192.168.178.141/rpc/Voltmeter.GetStatus?id=100</field>
              </shadow>
            </value>
            <statement name="STATEMENT">
              <block type="variables_set" id="bfIINS`.pTEu+cC3%qg[">
                <field name="VAR" id="!);hs;9{=,[~A8o5{=Hv">x</field>
                <value name="VALUE">
                  <block type="get_attr" id="6l|u$1Ux]=:T::Zok93~">
                    <value name="PATH">
                      <shadow type="text" id="QR9!,Cad!IG[S06MPl|z">
                        <field name="TEXT">voltage</field>
                      </shadow>
                    </value>
                    <value name="OBJECT">
                      <shadow type="get_object" id="aq)Rdy.u8%`LFx0K+o@!">
                        <field name="OID">Object ID</field>
                      </shadow>
                      <block type="convert_json2object" id=";Ll?WdS,2,vA-zX:V]9M">
                        <value name="VALUE">
                          <block type="variables_get" id="tY3hxMoz/LX!f_go.c.N">
                            <field name="VAR" id="vKh/VeTs4fFJuM1~{sL^">result</field>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
                <next>
                  <block type="update" id="=q.UG4o;V#*~Md#`H$o9">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                    <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="variables_get" id="f_l+(|oUEI0^){.#3A;-">
                        <field name="VAR" id="!);hs;9{=,[~A8o5{=Hv">x</field>
                      </block>
                    </value>
                  </block>
                </next>
              </block>
            </statement>
          </block>
        </statement>
      </block>
    </xml>
    

    Und abschließend noch die Umrechnung von Volt in prozentualen Stufen:

    <xml xmlns="https://developers.google.com/blockly/xml">
      <block type="on" id="xJ[|`FS|n8IM09ZoRk]`" x="88" y="-137">
        <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
        <field name="CONDITION">ne</field>
        <field name="ACK_CONDITION"></field>
        <statement name="STATEMENT">
          <block type="controls_if" id="#nK)yu%Qt.JT=6)rwfQ/">
            <mutation elseif="5"></mutation>
            <value name="IF0">
              <block type="logic_between" id="}5fmcYO^vc{Rd7thL#:F">
                <field name="MIN_OPERATOR">LE</field>
                <field name="MAX_OPERATOR">LT</field>
                <value name="MIN">
                  <block type="math_number" id="x`b46TWbLjMn4NxzqINX">
                    <field name="NUM">0</field>
                  </block>
                </value>
                <value name="VALUE">
                  <shadow type="math_number" id="P2@qS~JU~R?O#Al@zu=I">
                    <field name="NUM">42</field>
                  </shadow>
                  <block type="get_value" id="ZoHikS+~ewT]pdjbH$r0">
                    <field name="ATTR">val</field>
                    <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
                  </block>
                </value>
                <value name="MAX">
                  <block type="math_number" id="AGgj!,MY9I9*y,,`rX^f">
                    <field name="NUM">0.3</field>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO0">
              <block type="control" id="1,~#!4#0T0[[{lSh8(+q">
                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Tankfüllstand</field>
                <field name="WITH_DELAY">FALSE</field>
                <value name="VALUE">
                  <block type="math_number" id="8b[`?[g3R`luMN,^|nJ|">
                    <field name="NUM">0</field>
                  </block>
                </value>
              </block>
            </statement>
            <value name="IF1">
              <block type="logic_between" id="EwqHluPmKIS/a-s+d|$$">
                <field name="MIN_OPERATOR">LE</field>
                <field name="MAX_OPERATOR">LT</field>
                <value name="MIN">
                  <block type="math_number" id="PVq4yno;HUGZZc01^h}T">
                    <field name="NUM">0.3</field>
                  </block>
                </value>
                <value name="VALUE">
                  <shadow type="math_number" id="P2@qS~JU~R?O#Al@zu=I">
                    <field name="NUM">42</field>
                  </shadow>
                  <block type="get_value" id="lC?5E,AwvS8h=4h.3C)T">
                    <field name="ATTR">val</field>
                    <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
                  </block>
                </value>
                <value name="MAX">
                  <block type="math_number" id="UOhMfk2/A)IzWup_4JNJ">
                    <field name="NUM">0.6</field>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO1">
              <block type="control" id="-i[.mk.8{?P9K|`9+e4,">
                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Tankfüllstand</field>
                <field name="WITH_DELAY">FALSE</field>
                <value name="VALUE">
                  <block type="math_number" id="T#kIquVF);B]oOu~hy9m">
                    <field name="NUM">20</field>
                  </block>
                </value>
              </block>
            </statement>
            <value name="IF2">
              <block type="logic_between" id=".J+Ij9*Ghf}y3O@1S-cy">
                <field name="MIN_OPERATOR">LE</field>
                <field name="MAX_OPERATOR">LT</field>
                <value name="MIN">
                  <block type="math_number" id="kZmPc[c(vU6FtFhbNc43">
                    <field name="NUM">0.6</field>
                  </block>
                </value>
                <value name="VALUE">
                  <shadow type="math_number" id="P2@qS~JU~R?O#Al@zu=I">
                    <field name="NUM">42</field>
                  </shadow>
                  <block type="get_value" id="cL4zpYl-~-^Oxj+tH3s5">
                    <field name="ATTR">val</field>
                    <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
                  </block>
                </value>
                <value name="MAX">
                  <block type="math_number" id="H|+{+t(D|EDSt(2.T}Zg">
                    <field name="NUM">1.2</field>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO2">
              <block type="control" id="=e|m.lKD)hZ^WI0e_t3k">
                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Tankfüllstand</field>
                <field name="WITH_DELAY">FALSE</field>
                <value name="VALUE">
                  <block type="math_number" id="M(Y*TBKe%,-yW$8#[ArG">
                    <field name="NUM">40</field>
                  </block>
                </value>
              </block>
            </statement>
            <value name="IF3">
              <block type="logic_between" id="[k)#~YK5`AWZfC7+}YUY">
                <field name="MIN_OPERATOR">LE</field>
                <field name="MAX_OPERATOR">LT</field>
                <value name="MIN">
                  <block type="math_number" id="czsmVFCZ^O,ERz*j)fWz">
                    <field name="NUM">1.2</field>
                  </block>
                </value>
                <value name="VALUE">
                  <shadow type="math_number" id="P2@qS~JU~R?O#Al@zu=I">
                    <field name="NUM">42</field>
                  </shadow>
                  <block type="get_value" id="HSkz0?fd:#KnwqY62`eR">
                    <field name="ATTR">val</field>
                    <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
                  </block>
                </value>
                <value name="MAX">
                  <block type="math_number" id="4@h`zh|v7]bN]rG7zgJL">
                    <field name="NUM">1.45</field>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO3">
              <block type="control" id="6DNPjF{a_6pipj1PT2,a">
                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Tankfüllstand</field>
                <field name="WITH_DELAY">FALSE</field>
                <value name="VALUE">
                  <block type="math_number" id="wF.o.Bl@x$/jh#BwD}Gh">
                    <field name="NUM">60</field>
                  </block>
                </value>
              </block>
            </statement>
            <value name="IF4">
              <block type="logic_between" id="_HkC0ZK~c4P|)VuPp[7C">
                <field name="MIN_OPERATOR">LE</field>
                <field name="MAX_OPERATOR">LT</field>
                <value name="MIN">
                  <block type="math_number" id="6x!sjnvwh0JgPuwzkiF9">
                    <field name="NUM">1.45</field>
                  </block>
                </value>
                <value name="VALUE">
                  <shadow type="math_number" id="P2@qS~JU~R?O#Al@zu=I">
                    <field name="NUM">42</field>
                  </shadow>
                  <block type="get_value" id="8q8H1b?Iek`o(jKtnY:m">
                    <field name="ATTR">val</field>
                    <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
                  </block>
                </value>
                <value name="MAX">
                  <block type="math_number" id="lG4ISgP1FYEz#xap9(NB">
                    <field name="NUM">1.7</field>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO4">
              <block type="control" id="}aGMHDP]R/gRz0#C]fe]">
                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Tankfüllstand</field>
                <field name="WITH_DELAY">FALSE</field>
                <value name="VALUE">
                  <block type="math_number" id=".Y:Abs0.lO_;;AL+GG}`">
                    <field name="NUM">80</field>
                  </block>
                </value>
              </block>
            </statement>
            <value name="IF5">
              <block type="logic_between" id=".~VsBY_):n-HG$p=d]O/">
                <field name="MIN_OPERATOR">LE</field>
                <field name="MAX_OPERATOR">LT</field>
                <value name="MIN">
                  <block type="math_number" id="emPN?M|ULRTqN5pa0eZE">
                    <field name="NUM">1.7</field>
                  </block>
                </value>
                <value name="VALUE">
                  <shadow type="math_number" id="P2@qS~JU~R?O#Al@zu=I">
                    <field name="NUM">42</field>
                  </shadow>
                  <block type="get_value" id="D0W-M6!,eUa,%R?!iJA1">
                    <field name="ATTR">val</field>
                    <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
                  </block>
                </value>
                <value name="MAX">
                  <block type="math_number" id="MdQ_?q*S`9!sfib![;3H">
                    <field name="NUM">2.1</field>
                  </block>
                </value>
              </block>
            </value>
            <statement name="DO5">
              <block type="control" id="NoM/k3ug%pt~33EXJp+_">
                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Tankfüllstand</field>
                <field name="WITH_DELAY">FALSE</field>
                <value name="VALUE">
                  <block type="math_number" id="xUVm,_mTZUu,W~SKn@%*">
                    <field name="NUM">100</field>
                  </block>
                </value>
              </block>
            </statement>
          </block>
        </statement>
      </block>
    </xml>
    

    In der Vis hab ich das bisher nur erstmal quick and dirty integriert und sieht so aus.

    Vis.PNG

    Für die Zukunft sind die angesprochene automatische Betankung und weitere Scripte z.B. einen Automatikmodus geplant.
    Sowie die Gestaltung des Deckels mit den Druckknöpfen für die Tasten am Display. Aktuell sieht es nämlich so aus.

    20241123_195624.jpg

    Über ein Feedback von euch würde ich mich sehr freuen.

    da_WoodyD R 2 Antworten Letzte Antwort
    3
    • G gmt94

      Hallo Zusammen,

      nun möchte ich euch mein kleines Projekt der letzten Tage vorstellen. Es ist jedoch noch nicht komplett abgeschlossen.
      Ich habe mir vor einiger Zeit in meiner Werkstatt so eine Chinastandheizung für knapp 100€ installiert. Leider ist dort die Bedienung nur per Fernbedienung und Tasten am Display möglich.

      Anfangs wollte ich die Tasten mit einem 4 Fach Aktor (Relaisplatine) von homematic ansteuern. Kurzzeitig muss ich jedoch Mr. 3000V gewesen sein und habe die Platine und die Fernbedienung zerschossen :-).

      Als nächstes habe ich eine Platine von Shelly entdeckt, die quasi das gleich kann nur noch viel mehr zum 1/3 des Preises der Homematic Platine. Leider ist die Shelly Platine noch nicht im Adapter integriert (Git Request habe ich bereits bestellt), jedoch kann ich alles per html request steuern.

      Da die Fernbedienung nun kaputt ist, bin ich jetzt direkt an die Tasten des Displays gegangen. Hier bediene ich dann nur die Tasten ON/OFF sowie Heizstufe hoch und runter.

      Damit das ganze auch halbwegs schick und gewollt aussieht habe ich noch eine kleine Box gedruckt, die die Shlleyplatine, das Display sowie einen Shelly Uni aufnimmt.

      Der Shelly Uni wird benutzt um die Pegelstand im Tank zu messen um es in der Vis auch darzustellen. Später wird der Pegelstand noch benutzt, um eine automatische Betankung des kleinen 5,5l Tanks mittels Pumpe aus einem großen Kanister zu bewerkstelligen.

      20241123_114754.jpg

      Das ist die Shelly Platine. die ersten 3 Relais von oben sind für die Steuerung des Displays. Für eine einfachere Montage hab ich dort einen Zwischenstecker installiert.
      Das unterste Relais wird später für die Ansteuerung des Krafstoffpumpe verwendet.

      20241123_114804.jpg

      Hier ist das Display mit den angelöteten Gegensteckern.

      20241123_094039.jpg

      Da ich sehr gerne Ordnung mag hab ich gleich Steckplätze für Wagoklemmen in die Box integriert. Und damit bei der Montage nichts schief geht gleich mehrfarbig gedruckt. Die unteren Wagos dienen zur Spannungsversorgung der Heizung, Shellyplatine und der Kraftstoffpumpe.

      20241123_110658.jpg

      Auf der rechten Seite der Box befindet sich die Aufname für den Shelly Uni.

      20241123_093912.jpg

      Des Weiteren hab ich noch eine Aufnahme für das eigentliche Display gedruckt. Unten in der Box liegt die Shellyplatine, darauf kommt die Aufnahme und darauf wird dann das Display befestigt.

      20241123_144945.jpg

      Angeschlossen sieht das ganze dann so aus.

      Als Pegelerfassung nutze ich eine 125mmUnbenannt.PNG Pegelsonde.

      Diese hat einen veränderlichen Widerstand von 0-190ohm. Leider ist dieser nicht kontinuierlich. Jedoch sind es insgesamt 6 Stufen wo sich der Widerstand ändert. Ist für mich ausreichend genau. Um jedoch das Signal zu messen, habe ich einen Spannungsteiler mit 1kOhm als Widerstand gebaut. Mit der Eingangsspannung von 12V ergeben sich dann knapp 0-2 Volt als Messbereich. Ausreichend groß um die Stufen dann mittels Shelly Uni zu messen und per Script dann in den jeweilgen Füllstand umzurechnen.

      An der Shellyplatine hab ich dann noch einen Temperaturfühler angebracht um die Ausströmertemperatur zu messen.

      Nun gibt es noch die bisher erstellten BlocklyScripte:

      Startscript: Startet die Heizung und sperrt zunächst 8min die Steuerung. Die Heizung fährt sich alleine erstmal hoch, dort reagiert sie auch nicht auf eine Änderung am Display.

      <xml xmlns="https://developers.google.com/blockly/xml">
        <block type="on" id="$tU996o~hQ[gu+Rp]ZzL" x="138" y="88">
          <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_On</field>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <statement name="STATEMENT">
            <block type="controls_if" id="-kvipVRHx8bQ=BYHNv*|">
              <value name="IF0">
                <block type="logic_compare" id="%z+e+i0x7-#GA)9#3[5F">
                  <field name="OP">EQ</field>
                  <value name="A">
                    <block type="get_value" id="?1RP)!8R(~0^N,3i{}hQ">
                      <field name="ATTR">val</field>
                      <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_On</field>
                    </block>
                  </value>
                  <value name="B">
                    <block type="logic_boolean" id="9P]dho?Dg)Ol5EY~$Utq">
                      <field name="BOOL">TRUE</field>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO0">
                <block type="control" id="`E9{]wV#ZzVvYxa-[qIi">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                  <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <value name="VALUE">
                    <block type="math_number" id="8KWV8^?KTJK~1/,FxL0x">
                      <field name="NUM">3</field>
                    </block>
                  </value>
                  <next>
                    <block type="request" id="=#~U|~ufO;;RIFT51z*Z">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                      <field name="WITH_STATEMENT">FALSE</field>
                      <field name="LOG"></field>
                      <value name="URL">
                        <shadow type="text" id="Dv-gz/AEM.O*pf8=9d=e">
                          <field name="TEXT">http://192.168.178.140/relay/2?turn=on</field>
                        </shadow>
                      </value>
                      <next>
                        <block type="timeouts_wait" id="Ut#@_]7_Ocl!qwh0+9ZH">
                          <field name="DELAY">2500</field>
                          <field name="UNIT">ms</field>
                          <next>
                            <block type="request" id="b)IGmCnP(mkg+HpY3ZJu">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                              <field name="WITH_STATEMENT">FALSE</field>
                              <field name="LOG"></field>
                              <value name="URL">
                                <shadow type="text" id="$|(F/4!az1S+8D?w!i0%">
                                  <field name="TEXT">http://192.168.178.140/relay/2?turn=off</field>
                                </shadow>
                              </value>
                              <next>
                                <block type="control" id="Q(KElrPDwU#?`05agb:$">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                  <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE">
                                    <block type="text" id="N}TV|F%J;H/d1ma,~lnu">
                                      <field name="TEXT">Heizung startet! Bedienung für 8min gesperrt.</field>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="control" id="8@rsdx{|5Ny-mRp77$;l">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                      <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Freigabe</field>
                                      <field name="WITH_DELAY">TRUE</field>
                                      <field name="DELAY_MS">8</field>
                                      <field name="UNIT">min</field>
                                      <field name="CLEAR_RUNNING">FALSE</field>
                                      <value name="VALUE">
                                        <block type="logic_boolean" id="k(F9$uy7Kop+oGm9MCp6">
                                          <field name="BOOL">TRUE</field>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="control" id="EK9bbEhGIZpD_5w{n[EG">
                                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                          <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                                          <field name="WITH_DELAY">TRUE</field>
                                          <field name="DELAY_MS">8</field>
                                          <field name="UNIT">min</field>
                                          <field name="CLEAR_RUNNING">FALSE</field>
                                          <value name="VALUE">
                                            <block type="text" id="q-ZIoo@6^==/AcRP=oT~">
                                              <field name="TEXT">Hochlauf abgeschlossen und Freigabe erteilt</field>
                                            </block>
                                          </value>
                                          <next>
                                            <block type="control" id="#0laTSHaL(M~X6PfBM~:">
                                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                              <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                                              <field name="WITH_DELAY">TRUE</field>
                                              <field name="DELAY_MS">500</field>
                                              <field name="UNIT">sec</field>
                                              <field name="CLEAR_RUNNING">FALSE</field>
                                              <value name="VALUE">
                                                <block type="text" id="j|Y@e5V{,B|-d*#BGwAV">
                                                  <field name="TEXT"></field>
                                                </block>
                                              </value>
                                            </block>
                                          </next>
                                        </block>
                                      </next>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </statement>
            </block>
          </statement>
        </block>
      </xml>
      

      Wenn die 8 min vorbei sind, wird die Freigabe für Heizstufe hoch und runter erteilt. Die Heizung startet immer in Heizstufe 3 von 6.

      Die Scripte zählen dann automatisch die Heizstufen mit hoch und runter und sperren sich wenn die kleinste oder höchste Stufe erreicht ist.

      Heizstufe runter:

      <xml xmlns="https://developers.google.com/blockly/xml">
        <block type="on" id="YQ6XX(]NsmxZEN-^$jHM" x="238" y="62">
          <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Down</field>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <statement name="STATEMENT">
            <block type="controls_if" id="9!khcKWsA5;ZZ[t+/@8O">
              <value name="IF0">
                <block type="logic_multi_and" id="mKL^S/vITNpfMyhKtfdC">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                  <value name="AND0">
                    <block type="logic_compare" id="9B0O//g^EB2tA0~l+uii">
                      <field name="OP">EQ</field>
                      <value name="A">
                        <block type="get_value" id="v(i5r#h[]ul``DFZ$z|d">
                          <field name="ATTR">val</field>
                          <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Down</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_boolean" id="@OVi1+pG[|$)4W6#/_Tl">
                          <field name="BOOL">TRUE</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <value name="AND1">
                    <block type="logic_multi_and" id="-#;92aA#@bv`%Y*!`@]2">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                      <value name="AND0">
                        <block type="logic_compare" id="kWeOb0!:)Y+G]g,9OKT?">
                          <field name="OP">GTE</field>
                          <value name="A">
                            <block type="get_value" id="+wFLQW9[|04f=t$W+Dw`">
                              <field name="ATTR">val</field>
                              <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="math_number" id=".AH`b}8=?AZAXihpYrl!">
                              <field name="NUM">2</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="AND1">
                        <block type="logic_compare" id="xiOi|fX8*AL*alPUm5W_">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="get_value" id="%9qa^R(SGh4?Ogz5w;R]">
                              <field name="ATTR">val</field>
                              <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Freigabe</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="logic_boolean" id="!B*L#|AGyB;#$DG}S%C^">
                              <field name="BOOL">TRUE</field>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO0">
                <block type="request" id="=#~U|~ufO;;RIFT51z*Z">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                  <field name="WITH_STATEMENT">FALSE</field>
                  <field name="LOG"></field>
                  <value name="URL">
                    <shadow type="text" id="Dv-gz/AEM.O*pf8=9d=e">
                      <field name="TEXT">http://192.168.178.140/relay/1?turn=on</field>
                    </shadow>
                  </value>
                  <next>
                    <block type="timeouts_wait" id="c-p;x5/E.2j{i$2C0B4`">
                      <field name="DELAY">750</field>
                      <field name="UNIT">ms</field>
                      <next>
                        <block type="request" id="J@{%uh|E@DB3a0+I~RLX">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                          <field name="WITH_STATEMENT">FALSE</field>
                          <field name="LOG"></field>
                          <value name="URL">
                            <shadow type="text" id="6g21V#a+@_cTOom}bs,g">
                              <field name="TEXT">http://192.168.178.140/relay/1?turn=off</field>
                            </shadow>
                          </value>
                          <next>
                            <block type="control" id="@jihPVZsZeHBBIhzK!-)">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                              <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Down</field>
                              <field name="WITH_DELAY">TRUE</field>
                              <field name="DELAY_MS">1000</field>
                              <field name="UNIT">ms</field>
                              <field name="CLEAR_RUNNING">FALSE</field>
                              <value name="VALUE">
                                <block type="logic_boolean" id="uK$Axj2l8o.TOts@JbPE">
                                  <field name="BOOL">FALSE</field>
                                </block>
                              </value>
                              <next>
                                <block type="control" id="e.`Cm)ApP934MxaV?/C@">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                  <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE">
                                    <block type="math_arithmetic" id="U,mmQ7v^5B/!I+{8U#rq">
                                      <field name="OP">MINUS</field>
                                      <value name="A">
                                        <shadow type="math_number" id="n:x}*D9/xx+fELeF2P*u">
                                          <field name="NUM">1</field>
                                        </shadow>
                                        <block type="get_value" id="gB+dc%F/$obpW%Bu6.`u">
                                          <field name="ATTR">val</field>
                                          <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <shadow type="math_number" id="u1@ALAb#3^nhm-uif/x@">
                                          <field name="NUM">1</field>
                                        </shadow>
                                      </value>
                                    </block>
                                  </value>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </statement>
              <next>
                <block type="controls_if" id="1}AvgoEZ%O+o}/?:w=#^">
                  <value name="IF0">
                    <block type="logic_multi_and" id="wFt5Q,D3A%CH*`~!]IPa">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                      <value name="AND0">
                        <block type="logic_compare" id="+mdg%j:=G,Fj$D9J3iN+">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="get_value" id="jpGn_bnsar54`/)+F.+]">
                              <field name="ATTR">val</field>
                              <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Down</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="logic_boolean" id="=nNU?H?v/.hw65[EdvQh">
                              <field name="BOOL">TRUE</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="AND1">
                        <block type="logic_compare" id="i9Qe(:z|.+I0GPs+j:ql">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="get_value" id="kh!ozti.:f*W5zFiq`kF">
                              <field name="ATTR">val</field>
                              <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="math_number" id="b$7:,(xUS_!/EX*;#CYM">
                              <field name="NUM">1</field>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO0">
                    <block type="control" id="hi8QC05VCtuMPc@MZ3/W">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                      <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Down</field>
                      <field name="WITH_DELAY">TRUE</field>
                      <field name="DELAY_MS">1000</field>
                      <field name="UNIT">ms</field>
                      <field name="CLEAR_RUNNING">FALSE</field>
                      <value name="VALUE">
                        <block type="logic_boolean" id="6~J=fBw_ZF9%(j,KLaPI">
                          <field name="BOOL">FALSE</field>
                        </block>
                      </value>
                      <next>
                        <block type="control" id="Q(KElrPDwU#?`05agb:$">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                          <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE">
                            <block type="text" id="N}TV|F%J;H/d1ma,~lnu">
                              <field name="TEXT">Kleinste Stufe erreicht</field>
                            </block>
                          </value>
                          <next>
                            <block type="control" id="3=jGY}5;qwu=G-flCg0^">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                              <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                              <field name="WITH_DELAY">TRUE</field>
                              <field name="DELAY_MS">10</field>
                              <field name="UNIT">sec</field>
                              <field name="CLEAR_RUNNING">FALSE</field>
                              <value name="VALUE">
                                <block type="text" id=")_gK@lrF#Zq$G@_@V=LQ">
                                  <field name="TEXT"></field>
                                </block>
                              </value>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </statement>
                </block>
              </next>
            </block>
          </statement>
        </block>
      </xml>
      

      Heizstufe hoch:

      <xml xmlns="https://developers.google.com/blockly/xml">
        <block type="on" id="YQ6XX(]NsmxZEN-^$jHM" x="238" y="62">
          <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Up</field>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <statement name="STATEMENT">
            <block type="controls_if" id="9!khcKWsA5;ZZ[t+/@8O">
              <value name="IF0">
                <block type="logic_multi_and" id="mKL^S/vITNpfMyhKtfdC">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                  <value name="AND0">
                    <block type="logic_compare" id="9B0O//g^EB2tA0~l+uii">
                      <field name="OP">EQ</field>
                      <value name="A">
                        <block type="get_value" id="v(i5r#h[]ul``DFZ$z|d">
                          <field name="ATTR">val</field>
                          <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Up</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_boolean" id="@OVi1+pG[|$)4W6#/_Tl">
                          <field name="BOOL">TRUE</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <value name="AND1">
                    <block type="logic_multi_and" id="-#;92aA#@bv`%Y*!`@]2">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                      <value name="AND0">
                        <block type="logic_compare" id="kWeOb0!:)Y+G]g,9OKT?">
                          <field name="OP">LTE</field>
                          <value name="A">
                            <block type="get_value" id="+wFLQW9[|04f=t$W+Dw`">
                              <field name="ATTR">val</field>
                              <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="math_number" id=".AH`b}8=?AZAXihpYrl!">
                              <field name="NUM">5</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="AND1">
                        <block type="logic_compare" id="xiOi|fX8*AL*alPUm5W_">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="get_value" id="%9qa^R(SGh4?Ogz5w;R]">
                              <field name="ATTR">val</field>
                              <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Freigabe</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="logic_boolean" id="!B*L#|AGyB;#$DG}S%C^">
                              <field name="BOOL">TRUE</field>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO0">
                <block type="request" id="=#~U|~ufO;;RIFT51z*Z">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                  <field name="WITH_STATEMENT">FALSE</field>
                  <field name="LOG"></field>
                  <value name="URL">
                    <shadow type="text" id="Dv-gz/AEM.O*pf8=9d=e">
                      <field name="TEXT">http://192.168.178.140/relay/3?turn=on</field>
                    </shadow>
                  </value>
                  <next>
                    <block type="timeouts_wait" id="c-p;x5/E.2j{i$2C0B4`">
                      <field name="DELAY">750</field>
                      <field name="UNIT">ms</field>
                      <next>
                        <block type="request" id="J@{%uh|E@DB3a0+I~RLX">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                          <field name="WITH_STATEMENT">FALSE</field>
                          <field name="LOG"></field>
                          <value name="URL">
                            <shadow type="text" id="6g21V#a+@_cTOom}bs,g">
                              <field name="TEXT">http://192.168.178.140/relay/3?turn=off</field>
                            </shadow>
                          </value>
                          <next>
                            <block type="control" id="@jihPVZsZeHBBIhzK!-)">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                              <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Up</field>
                              <field name="WITH_DELAY">TRUE</field>
                              <field name="DELAY_MS">1000</field>
                              <field name="UNIT">ms</field>
                              <field name="CLEAR_RUNNING">FALSE</field>
                              <value name="VALUE">
                                <block type="logic_boolean" id="uK$Axj2l8o.TOts@JbPE">
                                  <field name="BOOL">FALSE</field>
                                </block>
                              </value>
                              <next>
                                <block type="control" id="e.`Cm)ApP934MxaV?/C@">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                  <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE">
                                    <block type="math_arithmetic" id="U,mmQ7v^5B/!I+{8U#rq">
                                      <field name="OP">ADD</field>
                                      <value name="A">
                                        <shadow type="math_number" id="n:x}*D9/xx+fELeF2P*u">
                                          <field name="NUM">1</field>
                                        </shadow>
                                        <block type="get_value" id="gB+dc%F/$obpW%Bu6.`u">
                                          <field name="ATTR">val</field>
                                          <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                                        </block>
                                      </value>
                                      <value name="B">
                                        <shadow type="math_number" id="u1@ALAb#3^nhm-uif/x@">
                                          <field name="NUM">1</field>
                                        </shadow>
                                      </value>
                                    </block>
                                  </value>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </statement>
              <next>
                <block type="controls_if" id="1}AvgoEZ%O+o}/?:w=#^">
                  <value name="IF0">
                    <block type="logic_multi_and" id="wFt5Q,D3A%CH*`~!]IPa">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                      <value name="AND0">
                        <block type="logic_compare" id="+mdg%j:=G,Fj$D9J3iN+">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="get_value" id="jpGn_bnsar54`/)+F.+]">
                              <field name="ATTR">val</field>
                              <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Up</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="logic_boolean" id="=nNU?H?v/.hw65[EdvQh">
                              <field name="BOOL">TRUE</field>
                            </block>
                          </value>
                        </block>
                      </value>
                      <value name="AND1">
                        <block type="logic_compare" id="i9Qe(:z|.+I0GPs+j:ql">
                          <field name="OP">EQ</field>
                          <value name="A">
                            <block type="get_value" id="kh!ozti.:f*W5zFiq`kF">
                              <field name="ATTR">val</field>
                              <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                            </block>
                          </value>
                          <value name="B">
                            <block type="math_number" id="b$7:,(xUS_!/EX*;#CYM">
                              <field name="NUM">6</field>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                  <statement name="DO0">
                    <block type="control" id="hi8QC05VCtuMPc@MZ3/W">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                      <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Up</field>
                      <field name="WITH_DELAY">TRUE</field>
                      <field name="DELAY_MS">1000</field>
                      <field name="UNIT">ms</field>
                      <field name="CLEAR_RUNNING">FALSE</field>
                      <value name="VALUE">
                        <block type="logic_boolean" id="6~J=fBw_ZF9%(j,KLaPI">
                          <field name="BOOL">FALSE</field>
                        </block>
                      </value>
                      <next>
                        <block type="control" id="Q(KElrPDwU#?`05agb:$">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                          <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                          <field name="WITH_DELAY">FALSE</field>
                          <value name="VALUE">
                            <block type="text" id="N}TV|F%J;H/d1ma,~lnu">
                              <field name="TEXT">Höchste Stufe erreicht</field>
                            </block>
                          </value>
                          <next>
                            <block type="control" id="3=jGY}5;qwu=G-flCg0^">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                              <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                              <field name="WITH_DELAY">TRUE</field>
                              <field name="DELAY_MS">10</field>
                              <field name="UNIT">sec</field>
                              <field name="CLEAR_RUNNING">FALSE</field>
                              <value name="VALUE">
                                <block type="text" id=")_gK@lrF#Zq$G@_@V=LQ">
                                  <field name="TEXT"></field>
                                </block>
                              </value>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </statement>
                </block>
              </next>
            </block>
          </statement>
        </block>
      </xml>
      

      Abschalten:

      <xml xmlns="https://developers.google.com/blockly/xml">
        <block type="on" id="$tU996o~hQ[gu+Rp]ZzL" x="138" y="88">
          <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_On</field>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <statement name="STATEMENT">
            <block type="controls_if" id="-kvipVRHx8bQ=BYHNv*|">
              <value name="IF0">
                <block type="logic_compare" id="%z+e+i0x7-#GA)9#3[5F">
                  <field name="OP">EQ</field>
                  <value name="A">
                    <block type="get_value" id="?1RP)!8R(~0^N,3i{}hQ">
                      <field name="ATTR">val</field>
                      <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_On</field>
                    </block>
                  </value>
                  <value name="B">
                    <block type="logic_boolean" id="9P]dho?Dg)Ol5EY~$Utq">
                      <field name="BOOL">FALSE</field>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO0">
                <block type="request" id="=#~U|~ufO;;RIFT51z*Z">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                  <field name="WITH_STATEMENT">FALSE</field>
                  <field name="LOG"></field>
                  <value name="URL">
                    <shadow type="text" id="Dv-gz/AEM.O*pf8=9d=e">
                      <field name="TEXT">http://192.168.178.140/relay/2?turn=on</field>
                    </shadow>
                  </value>
                  <next>
                    <block type="timeouts_wait" id="Ut#@_]7_Ocl!qwh0+9ZH">
                      <field name="DELAY">2500</field>
                      <field name="UNIT">ms</field>
                      <next>
                        <block type="request" id="b)IGmCnP(mkg+HpY3ZJu">
                          <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                          <field name="WITH_STATEMENT">FALSE</field>
                          <field name="LOG"></field>
                          <value name="URL">
                            <shadow type="text" id="$|(F/4!az1S+8D?w!i0%">
                              <field name="TEXT">http://192.168.178.140/relay/2?turn=off</field>
                            </shadow>
                          </value>
                          <next>
                            <block type="control" id="Q(KElrPDwU#?`05agb:$">
                              <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                              <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE">
                                <block type="text" id="N}TV|F%J;H/d1ma,~lnu">
                                  <field name="TEXT">Heizung fährt herunter, Freigabe entzogen</field>
                                </block>
                              </value>
                              <next>
                                <block type="control" id="8@rsdx{|5Ny-mRp77$;l">
                                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                  <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Freigabe</field>
                                  <field name="WITH_DELAY">FALSE</field>
                                  <value name="VALUE">
                                    <block type="logic_boolean" id="k(F9$uy7Kop+oGm9MCp6">
                                      <field name="BOOL">FALSE</field>
                                    </block>
                                  </value>
                                  <next>
                                    <block type="control" id="/f@iSqb-Z)tvu!A5A*+r">
                                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                      <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                                      <field name="WITH_DELAY">TRUE</field>
                                      <field name="DELAY_MS">2</field>
                                      <field name="UNIT">min</field>
                                      <field name="CLEAR_RUNNING">FALSE</field>
                                      <value name="VALUE">
                                        <block type="text" id="WKFRSa1mm=Vc?V|%}U?(">
                                          <field name="TEXT"></field>
                                        </block>
                                      </value>
                                    </block>
                                  </next>
                                </block>
                              </next>
                            </block>
                          </next>
                        </block>
                      </next>
                    </block>
                  </next>
                </block>
              </statement>
            </block>
          </statement>
        </block>
      </xml>
      

      Analog zum selbständigen Hochfahren der Heizung führt diese auch eine Selbstständige Abkühlphase durch. Zur Zeit wird das jedoch noch nicht vom Script erschlagen. Daher bitte mit vorsicht zu genießen.

      Nun folgen noch die Abfrage der Temperatur und Spannung der jeweiligen Shelly:

      Temperatur

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable id="!);hs;9{=,[~A8o5{=Hv">x</variable>
          <variable id="vKh/VeTs4fFJuM1~{sL^">result</variable>
        </variables>
        <block type="schedule" id="S5y/ctFHiI7:WlW-,Dfh" x="112" y="63">
          <field name="SCHEDULE">* * * * * *</field>
          <statement name="STATEMENT">
            <block type="request" id="UTG6!ewVuNx|/w}T^dBz">
              <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
              <field name="WITH_STATEMENT">TRUE</field>
              <field name="LOG"></field>
              <value name="URL">
                <shadow type="text" id="0KpZxvNEi=c6f!Np2x*U">
                  <field name="TEXT">http://192.168.178.140/rpc/Temperature.GetStatus?id=100</field>
                </shadow>
              </value>
              <statement name="STATEMENT">
                <block type="variables_set" id="bfIINS`.pTEu+cC3%qg[">
                  <field name="VAR" id="!);hs;9{=,[~A8o5{=Hv">x</field>
                  <value name="VALUE">
                    <block type="get_attr" id="6l|u$1Ux]=:T::Zok93~">
                      <value name="PATH">
                        <shadow type="text" id="QR9!,Cad!IG[S06MPl|z">
                          <field name="TEXT">tC</field>
                        </shadow>
                      </value>
                      <value name="OBJECT">
                        <shadow type="get_object" id="aq)Rdy.u8%`LFx0K+o@!">
                          <field name="OID">Object ID</field>
                        </shadow>
                        <block type="convert_json2object" id=";Ll?WdS,2,vA-zX:V]9M">
                          <value name="VALUE">
                            <block type="variables_get" id="tY3hxMoz/LX!f_go.c.N">
                              <field name="VAR" id="vKh/VeTs4fFJuM1~{sL^">result</field>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                  <next>
                    <block type="update" id="=q.UG4o;V#*~Md#`H$o9">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                      <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Ausstroemertemperatur</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="variables_get" id="f_l+(|oUEI0^){.#3A;-">
                          <field name="VAR" id="!);hs;9{=,[~A8o5{=Hv">x</field>
                        </block>
                      </value>
                    </block>
                  </next>
                </block>
              </statement>
            </block>
          </statement>
        </block>
      </xml>
      

      Spannung:

      <xml xmlns="https://developers.google.com/blockly/xml">
        <variables>
          <variable id="!);hs;9{=,[~A8o5{=Hv">x</variable>
          <variable id="vKh/VeTs4fFJuM1~{sL^">result</variable>
        </variables>
        <block type="schedule" id="S5y/ctFHiI7:WlW-,Dfh" x="112" y="63">
          <field name="SCHEDULE">* * * * * *</field>
          <statement name="STATEMENT">
            <block type="request" id="UTG6!ewVuNx|/w}T^dBz">
              <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
              <field name="WITH_STATEMENT">TRUE</field>
              <field name="LOG"></field>
              <value name="URL">
                <shadow type="text" id="0KpZxvNEi=c6f!Np2x*U">
                  <field name="TEXT">http://192.168.178.141/rpc/Voltmeter.GetStatus?id=100</field>
                </shadow>
              </value>
              <statement name="STATEMENT">
                <block type="variables_set" id="bfIINS`.pTEu+cC3%qg[">
                  <field name="VAR" id="!);hs;9{=,[~A8o5{=Hv">x</field>
                  <value name="VALUE">
                    <block type="get_attr" id="6l|u$1Ux]=:T::Zok93~">
                      <value name="PATH">
                        <shadow type="text" id="QR9!,Cad!IG[S06MPl|z">
                          <field name="TEXT">voltage</field>
                        </shadow>
                      </value>
                      <value name="OBJECT">
                        <shadow type="get_object" id="aq)Rdy.u8%`LFx0K+o@!">
                          <field name="OID">Object ID</field>
                        </shadow>
                        <block type="convert_json2object" id=";Ll?WdS,2,vA-zX:V]9M">
                          <value name="VALUE">
                            <block type="variables_get" id="tY3hxMoz/LX!f_go.c.N">
                              <field name="VAR" id="vKh/VeTs4fFJuM1~{sL^">result</field>
                            </block>
                          </value>
                        </block>
                      </value>
                    </block>
                  </value>
                  <next>
                    <block type="update" id="=q.UG4o;V#*~Md#`H$o9">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                      <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
                      <field name="WITH_DELAY">FALSE</field>
                      <value name="VALUE">
                        <block type="variables_get" id="f_l+(|oUEI0^){.#3A;-">
                          <field name="VAR" id="!);hs;9{=,[~A8o5{=Hv">x</field>
                        </block>
                      </value>
                    </block>
                  </next>
                </block>
              </statement>
            </block>
          </statement>
        </block>
      </xml>
      

      Und abschließend noch die Umrechnung von Volt in prozentualen Stufen:

      <xml xmlns="https://developers.google.com/blockly/xml">
        <block type="on" id="xJ[|`FS|n8IM09ZoRk]`" x="88" y="-137">
          <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <statement name="STATEMENT">
            <block type="controls_if" id="#nK)yu%Qt.JT=6)rwfQ/">
              <mutation elseif="5"></mutation>
              <value name="IF0">
                <block type="logic_between" id="}5fmcYO^vc{Rd7thL#:F">
                  <field name="MIN_OPERATOR">LE</field>
                  <field name="MAX_OPERATOR">LT</field>
                  <value name="MIN">
                    <block type="math_number" id="x`b46TWbLjMn4NxzqINX">
                      <field name="NUM">0</field>
                    </block>
                  </value>
                  <value name="VALUE">
                    <shadow type="math_number" id="P2@qS~JU~R?O#Al@zu=I">
                      <field name="NUM">42</field>
                    </shadow>
                    <block type="get_value" id="ZoHikS+~ewT]pdjbH$r0">
                      <field name="ATTR">val</field>
                      <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
                    </block>
                  </value>
                  <value name="MAX">
                    <block type="math_number" id="AGgj!,MY9I9*y,,`rX^f">
                      <field name="NUM">0.3</field>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO0">
                <block type="control" id="1,~#!4#0T0[[{lSh8(+q">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                  <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Tankfüllstand</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <value name="VALUE">
                    <block type="math_number" id="8b[`?[g3R`luMN,^|nJ|">
                      <field name="NUM">0</field>
                    </block>
                  </value>
                </block>
              </statement>
              <value name="IF1">
                <block type="logic_between" id="EwqHluPmKIS/a-s+d|$$">
                  <field name="MIN_OPERATOR">LE</field>
                  <field name="MAX_OPERATOR">LT</field>
                  <value name="MIN">
                    <block type="math_number" id="PVq4yno;HUGZZc01^h}T">
                      <field name="NUM">0.3</field>
                    </block>
                  </value>
                  <value name="VALUE">
                    <shadow type="math_number" id="P2@qS~JU~R?O#Al@zu=I">
                      <field name="NUM">42</field>
                    </shadow>
                    <block type="get_value" id="lC?5E,AwvS8h=4h.3C)T">
                      <field name="ATTR">val</field>
                      <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
                    </block>
                  </value>
                  <value name="MAX">
                    <block type="math_number" id="UOhMfk2/A)IzWup_4JNJ">
                      <field name="NUM">0.6</field>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO1">
                <block type="control" id="-i[.mk.8{?P9K|`9+e4,">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                  <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Tankfüllstand</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <value name="VALUE">
                    <block type="math_number" id="T#kIquVF);B]oOu~hy9m">
                      <field name="NUM">20</field>
                    </block>
                  </value>
                </block>
              </statement>
              <value name="IF2">
                <block type="logic_between" id=".J+Ij9*Ghf}y3O@1S-cy">
                  <field name="MIN_OPERATOR">LE</field>
                  <field name="MAX_OPERATOR">LT</field>
                  <value name="MIN">
                    <block type="math_number" id="kZmPc[c(vU6FtFhbNc43">
                      <field name="NUM">0.6</field>
                    </block>
                  </value>
                  <value name="VALUE">
                    <shadow type="math_number" id="P2@qS~JU~R?O#Al@zu=I">
                      <field name="NUM">42</field>
                    </shadow>
                    <block type="get_value" id="cL4zpYl-~-^Oxj+tH3s5">
                      <field name="ATTR">val</field>
                      <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
                    </block>
                  </value>
                  <value name="MAX">
                    <block type="math_number" id="H|+{+t(D|EDSt(2.T}Zg">
                      <field name="NUM">1.2</field>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO2">
                <block type="control" id="=e|m.lKD)hZ^WI0e_t3k">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                  <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Tankfüllstand</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <value name="VALUE">
                    <block type="math_number" id="M(Y*TBKe%,-yW$8#[ArG">
                      <field name="NUM">40</field>
                    </block>
                  </value>
                </block>
              </statement>
              <value name="IF3">
                <block type="logic_between" id="[k)#~YK5`AWZfC7+}YUY">
                  <field name="MIN_OPERATOR">LE</field>
                  <field name="MAX_OPERATOR">LT</field>
                  <value name="MIN">
                    <block type="math_number" id="czsmVFCZ^O,ERz*j)fWz">
                      <field name="NUM">1.2</field>
                    </block>
                  </value>
                  <value name="VALUE">
                    <shadow type="math_number" id="P2@qS~JU~R?O#Al@zu=I">
                      <field name="NUM">42</field>
                    </shadow>
                    <block type="get_value" id="HSkz0?fd:#KnwqY62`eR">
                      <field name="ATTR">val</field>
                      <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
                    </block>
                  </value>
                  <value name="MAX">
                    <block type="math_number" id="4@h`zh|v7]bN]rG7zgJL">
                      <field name="NUM">1.45</field>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO3">
                <block type="control" id="6DNPjF{a_6pipj1PT2,a">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                  <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Tankfüllstand</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <value name="VALUE">
                    <block type="math_number" id="wF.o.Bl@x$/jh#BwD}Gh">
                      <field name="NUM">60</field>
                    </block>
                  </value>
                </block>
              </statement>
              <value name="IF4">
                <block type="logic_between" id="_HkC0ZK~c4P|)VuPp[7C">
                  <field name="MIN_OPERATOR">LE</field>
                  <field name="MAX_OPERATOR">LT</field>
                  <value name="MIN">
                    <block type="math_number" id="6x!sjnvwh0JgPuwzkiF9">
                      <field name="NUM">1.45</field>
                    </block>
                  </value>
                  <value name="VALUE">
                    <shadow type="math_number" id="P2@qS~JU~R?O#Al@zu=I">
                      <field name="NUM">42</field>
                    </shadow>
                    <block type="get_value" id="8q8H1b?Iek`o(jKtnY:m">
                      <field name="ATTR">val</field>
                      <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
                    </block>
                  </value>
                  <value name="MAX">
                    <block type="math_number" id="lG4ISgP1FYEz#xap9(NB">
                      <field name="NUM">1.7</field>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO4">
                <block type="control" id="}aGMHDP]R/gRz0#C]fe]">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                  <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Tankfüllstand</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <value name="VALUE">
                    <block type="math_number" id=".Y:Abs0.lO_;;AL+GG}`">
                      <field name="NUM">80</field>
                    </block>
                  </value>
                </block>
              </statement>
              <value name="IF5">
                <block type="logic_between" id=".~VsBY_):n-HG$p=d]O/">
                  <field name="MIN_OPERATOR">LE</field>
                  <field name="MAX_OPERATOR">LT</field>
                  <value name="MIN">
                    <block type="math_number" id="emPN?M|ULRTqN5pa0eZE">
                      <field name="NUM">1.7</field>
                    </block>
                  </value>
                  <value name="VALUE">
                    <shadow type="math_number" id="P2@qS~JU~R?O#Al@zu=I">
                      <field name="NUM">42</field>
                    </shadow>
                    <block type="get_value" id="D0W-M6!,eUa,%R?!iJA1">
                      <field name="ATTR">val</field>
                      <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
                    </block>
                  </value>
                  <value name="MAX">
                    <block type="math_number" id="MdQ_?q*S`9!sfib![;3H">
                      <field name="NUM">2.1</field>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO5">
                <block type="control" id="NoM/k3ug%pt~33EXJp+_">
                  <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                  <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Tankfüllstand</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <value name="VALUE">
                    <block type="math_number" id="xUVm,_mTZUu,W~SKn@%*">
                      <field name="NUM">100</field>
                    </block>
                  </value>
                </block>
              </statement>
            </block>
          </statement>
        </block>
      </xml>
      

      In der Vis hab ich das bisher nur erstmal quick and dirty integriert und sieht so aus.

      Vis.PNG

      Für die Zukunft sind die angesprochene automatische Betankung und weitere Scripte z.B. einen Automatikmodus geplant.
      Sowie die Gestaltung des Deckels mit den Druckknöpfen für die Tasten am Display. Aktuell sieht es nämlich so aus.

      20241123_195624.jpg

      Über ein Feedback von euch würde ich mich sehr freuen.

      da_WoodyD Offline
      da_WoodyD Offline
      da_Woody
      schrieb am zuletzt editiert von
      #2

      @gmt94 super projekt! laola.gif

      gruß vom Woody
      HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

      1 Antwort Letzte Antwort
      0
      • G gmt94

        Hallo Zusammen,

        nun möchte ich euch mein kleines Projekt der letzten Tage vorstellen. Es ist jedoch noch nicht komplett abgeschlossen.
        Ich habe mir vor einiger Zeit in meiner Werkstatt so eine Chinastandheizung für knapp 100€ installiert. Leider ist dort die Bedienung nur per Fernbedienung und Tasten am Display möglich.

        Anfangs wollte ich die Tasten mit einem 4 Fach Aktor (Relaisplatine) von homematic ansteuern. Kurzzeitig muss ich jedoch Mr. 3000V gewesen sein und habe die Platine und die Fernbedienung zerschossen :-).

        Als nächstes habe ich eine Platine von Shelly entdeckt, die quasi das gleich kann nur noch viel mehr zum 1/3 des Preises der Homematic Platine. Leider ist die Shelly Platine noch nicht im Adapter integriert (Git Request habe ich bereits bestellt), jedoch kann ich alles per html request steuern.

        Da die Fernbedienung nun kaputt ist, bin ich jetzt direkt an die Tasten des Displays gegangen. Hier bediene ich dann nur die Tasten ON/OFF sowie Heizstufe hoch und runter.

        Damit das ganze auch halbwegs schick und gewollt aussieht habe ich noch eine kleine Box gedruckt, die die Shlleyplatine, das Display sowie einen Shelly Uni aufnimmt.

        Der Shelly Uni wird benutzt um die Pegelstand im Tank zu messen um es in der Vis auch darzustellen. Später wird der Pegelstand noch benutzt, um eine automatische Betankung des kleinen 5,5l Tanks mittels Pumpe aus einem großen Kanister zu bewerkstelligen.

        20241123_114754.jpg

        Das ist die Shelly Platine. die ersten 3 Relais von oben sind für die Steuerung des Displays. Für eine einfachere Montage hab ich dort einen Zwischenstecker installiert.
        Das unterste Relais wird später für die Ansteuerung des Krafstoffpumpe verwendet.

        20241123_114804.jpg

        Hier ist das Display mit den angelöteten Gegensteckern.

        20241123_094039.jpg

        Da ich sehr gerne Ordnung mag hab ich gleich Steckplätze für Wagoklemmen in die Box integriert. Und damit bei der Montage nichts schief geht gleich mehrfarbig gedruckt. Die unteren Wagos dienen zur Spannungsversorgung der Heizung, Shellyplatine und der Kraftstoffpumpe.

        20241123_110658.jpg

        Auf der rechten Seite der Box befindet sich die Aufname für den Shelly Uni.

        20241123_093912.jpg

        Des Weiteren hab ich noch eine Aufnahme für das eigentliche Display gedruckt. Unten in der Box liegt die Shellyplatine, darauf kommt die Aufnahme und darauf wird dann das Display befestigt.

        20241123_144945.jpg

        Angeschlossen sieht das ganze dann so aus.

        Als Pegelerfassung nutze ich eine 125mmUnbenannt.PNG Pegelsonde.

        Diese hat einen veränderlichen Widerstand von 0-190ohm. Leider ist dieser nicht kontinuierlich. Jedoch sind es insgesamt 6 Stufen wo sich der Widerstand ändert. Ist für mich ausreichend genau. Um jedoch das Signal zu messen, habe ich einen Spannungsteiler mit 1kOhm als Widerstand gebaut. Mit der Eingangsspannung von 12V ergeben sich dann knapp 0-2 Volt als Messbereich. Ausreichend groß um die Stufen dann mittels Shelly Uni zu messen und per Script dann in den jeweilgen Füllstand umzurechnen.

        An der Shellyplatine hab ich dann noch einen Temperaturfühler angebracht um die Ausströmertemperatur zu messen.

        Nun gibt es noch die bisher erstellten BlocklyScripte:

        Startscript: Startet die Heizung und sperrt zunächst 8min die Steuerung. Die Heizung fährt sich alleine erstmal hoch, dort reagiert sie auch nicht auf eine Änderung am Display.

        <xml xmlns="https://developers.google.com/blockly/xml">
          <block type="on" id="$tU996o~hQ[gu+Rp]ZzL" x="138" y="88">
            <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_On</field>
            <field name="CONDITION">ne</field>
            <field name="ACK_CONDITION"></field>
            <statement name="STATEMENT">
              <block type="controls_if" id="-kvipVRHx8bQ=BYHNv*|">
                <value name="IF0">
                  <block type="logic_compare" id="%z+e+i0x7-#GA)9#3[5F">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block type="get_value" id="?1RP)!8R(~0^N,3i{}hQ">
                        <field name="ATTR">val</field>
                        <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_On</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_boolean" id="9P]dho?Dg)Ol5EY~$Utq">
                        <field name="BOOL">TRUE</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="control" id="`E9{]wV#ZzVvYxa-[qIi">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                    <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="math_number" id="8KWV8^?KTJK~1/,FxL0x">
                        <field name="NUM">3</field>
                      </block>
                    </value>
                    <next>
                      <block type="request" id="=#~U|~ufO;;RIFT51z*Z">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                        <field name="WITH_STATEMENT">FALSE</field>
                        <field name="LOG"></field>
                        <value name="URL">
                          <shadow type="text" id="Dv-gz/AEM.O*pf8=9d=e">
                            <field name="TEXT">http://192.168.178.140/relay/2?turn=on</field>
                          </shadow>
                        </value>
                        <next>
                          <block type="timeouts_wait" id="Ut#@_]7_Ocl!qwh0+9ZH">
                            <field name="DELAY">2500</field>
                            <field name="UNIT">ms</field>
                            <next>
                              <block type="request" id="b)IGmCnP(mkg+HpY3ZJu">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                                <field name="WITH_STATEMENT">FALSE</field>
                                <field name="LOG"></field>
                                <value name="URL">
                                  <shadow type="text" id="$|(F/4!az1S+8D?w!i0%">
                                    <field name="TEXT">http://192.168.178.140/relay/2?turn=off</field>
                                  </shadow>
                                </value>
                                <next>
                                  <block type="control" id="Q(KElrPDwU#?`05agb:$">
                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                    <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE">
                                      <block type="text" id="N}TV|F%J;H/d1ma,~lnu">
                                        <field name="TEXT">Heizung startet! Bedienung für 8min gesperrt.</field>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="control" id="8@rsdx{|5Ny-mRp77$;l">
                                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                        <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Freigabe</field>
                                        <field name="WITH_DELAY">TRUE</field>
                                        <field name="DELAY_MS">8</field>
                                        <field name="UNIT">min</field>
                                        <field name="CLEAR_RUNNING">FALSE</field>
                                        <value name="VALUE">
                                          <block type="logic_boolean" id="k(F9$uy7Kop+oGm9MCp6">
                                            <field name="BOOL">TRUE</field>
                                          </block>
                                        </value>
                                        <next>
                                          <block type="control" id="EK9bbEhGIZpD_5w{n[EG">
                                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                            <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                                            <field name="WITH_DELAY">TRUE</field>
                                            <field name="DELAY_MS">8</field>
                                            <field name="UNIT">min</field>
                                            <field name="CLEAR_RUNNING">FALSE</field>
                                            <value name="VALUE">
                                              <block type="text" id="q-ZIoo@6^==/AcRP=oT~">
                                                <field name="TEXT">Hochlauf abgeschlossen und Freigabe erteilt</field>
                                              </block>
                                            </value>
                                            <next>
                                              <block type="control" id="#0laTSHaL(M~X6PfBM~:">
                                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                                <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                                                <field name="WITH_DELAY">TRUE</field>
                                                <field name="DELAY_MS">500</field>
                                                <field name="UNIT">sec</field>
                                                <field name="CLEAR_RUNNING">FALSE</field>
                                                <value name="VALUE">
                                                  <block type="text" id="j|Y@e5V{,B|-d*#BGwAV">
                                                    <field name="TEXT"></field>
                                                  </block>
                                                </value>
                                              </block>
                                            </next>
                                          </block>
                                        </next>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
            </statement>
          </block>
        </xml>
        

        Wenn die 8 min vorbei sind, wird die Freigabe für Heizstufe hoch und runter erteilt. Die Heizung startet immer in Heizstufe 3 von 6.

        Die Scripte zählen dann automatisch die Heizstufen mit hoch und runter und sperren sich wenn die kleinste oder höchste Stufe erreicht ist.

        Heizstufe runter:

        <xml xmlns="https://developers.google.com/blockly/xml">
          <block type="on" id="YQ6XX(]NsmxZEN-^$jHM" x="238" y="62">
            <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Down</field>
            <field name="CONDITION">ne</field>
            <field name="ACK_CONDITION"></field>
            <statement name="STATEMENT">
              <block type="controls_if" id="9!khcKWsA5;ZZ[t+/@8O">
                <value name="IF0">
                  <block type="logic_multi_and" id="mKL^S/vITNpfMyhKtfdC">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                    <value name="AND0">
                      <block type="logic_compare" id="9B0O//g^EB2tA0~l+uii">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="get_value" id="v(i5r#h[]ul``DFZ$z|d">
                            <field name="ATTR">val</field>
                            <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Down</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_boolean" id="@OVi1+pG[|$)4W6#/_Tl">
                            <field name="BOOL">TRUE</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="AND1">
                      <block type="logic_multi_and" id="-#;92aA#@bv`%Y*!`@]2">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                        <value name="AND0">
                          <block type="logic_compare" id="kWeOb0!:)Y+G]g,9OKT?">
                            <field name="OP">GTE</field>
                            <value name="A">
                              <block type="get_value" id="+wFLQW9[|04f=t$W+Dw`">
                                <field name="ATTR">val</field>
                                <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="math_number" id=".AH`b}8=?AZAXihpYrl!">
                                <field name="NUM">2</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <value name="AND1">
                          <block type="logic_compare" id="xiOi|fX8*AL*alPUm5W_">
                            <field name="OP">EQ</field>
                            <value name="A">
                              <block type="get_value" id="%9qa^R(SGh4?Ogz5w;R]">
                                <field name="ATTR">val</field>
                                <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Freigabe</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="logic_boolean" id="!B*L#|AGyB;#$DG}S%C^">
                                <field name="BOOL">TRUE</field>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="request" id="=#~U|~ufO;;RIFT51z*Z">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                    <field name="WITH_STATEMENT">FALSE</field>
                    <field name="LOG"></field>
                    <value name="URL">
                      <shadow type="text" id="Dv-gz/AEM.O*pf8=9d=e">
                        <field name="TEXT">http://192.168.178.140/relay/1?turn=on</field>
                      </shadow>
                    </value>
                    <next>
                      <block type="timeouts_wait" id="c-p;x5/E.2j{i$2C0B4`">
                        <field name="DELAY">750</field>
                        <field name="UNIT">ms</field>
                        <next>
                          <block type="request" id="J@{%uh|E@DB3a0+I~RLX">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                            <field name="WITH_STATEMENT">FALSE</field>
                            <field name="LOG"></field>
                            <value name="URL">
                              <shadow type="text" id="6g21V#a+@_cTOom}bs,g">
                                <field name="TEXT">http://192.168.178.140/relay/1?turn=off</field>
                              </shadow>
                            </value>
                            <next>
                              <block type="control" id="@jihPVZsZeHBBIhzK!-)">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Down</field>
                                <field name="WITH_DELAY">TRUE</field>
                                <field name="DELAY_MS">1000</field>
                                <field name="UNIT">ms</field>
                                <field name="CLEAR_RUNNING">FALSE</field>
                                <value name="VALUE">
                                  <block type="logic_boolean" id="uK$Axj2l8o.TOts@JbPE">
                                    <field name="BOOL">FALSE</field>
                                  </block>
                                </value>
                                <next>
                                  <block type="control" id="e.`Cm)ApP934MxaV?/C@">
                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                    <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE">
                                      <block type="math_arithmetic" id="U,mmQ7v^5B/!I+{8U#rq">
                                        <field name="OP">MINUS</field>
                                        <value name="A">
                                          <shadow type="math_number" id="n:x}*D9/xx+fELeF2P*u">
                                            <field name="NUM">1</field>
                                          </shadow>
                                          <block type="get_value" id="gB+dc%F/$obpW%Bu6.`u">
                                            <field name="ATTR">val</field>
                                            <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <shadow type="math_number" id="u1@ALAb#3^nhm-uif/x@">
                                            <field name="NUM">1</field>
                                          </shadow>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </statement>
                <next>
                  <block type="controls_if" id="1}AvgoEZ%O+o}/?:w=#^">
                    <value name="IF0">
                      <block type="logic_multi_and" id="wFt5Q,D3A%CH*`~!]IPa">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                        <value name="AND0">
                          <block type="logic_compare" id="+mdg%j:=G,Fj$D9J3iN+">
                            <field name="OP">EQ</field>
                            <value name="A">
                              <block type="get_value" id="jpGn_bnsar54`/)+F.+]">
                                <field name="ATTR">val</field>
                                <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Down</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="logic_boolean" id="=nNU?H?v/.hw65[EdvQh">
                                <field name="BOOL">TRUE</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <value name="AND1">
                          <block type="logic_compare" id="i9Qe(:z|.+I0GPs+j:ql">
                            <field name="OP">EQ</field>
                            <value name="A">
                              <block type="get_value" id="kh!ozti.:f*W5zFiq`kF">
                                <field name="ATTR">val</field>
                                <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="math_number" id="b$7:,(xUS_!/EX*;#CYM">
                                <field name="NUM">1</field>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO0">
                      <block type="control" id="hi8QC05VCtuMPc@MZ3/W">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                        <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Down</field>
                        <field name="WITH_DELAY">TRUE</field>
                        <field name="DELAY_MS">1000</field>
                        <field name="UNIT">ms</field>
                        <field name="CLEAR_RUNNING">FALSE</field>
                        <value name="VALUE">
                          <block type="logic_boolean" id="6~J=fBw_ZF9%(j,KLaPI">
                            <field name="BOOL">FALSE</field>
                          </block>
                        </value>
                        <next>
                          <block type="control" id="Q(KElrPDwU#?`05agb:$">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                            <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="text" id="N}TV|F%J;H/d1ma,~lnu">
                                <field name="TEXT">Kleinste Stufe erreicht</field>
                              </block>
                            </value>
                            <next>
                              <block type="control" id="3=jGY}5;qwu=G-flCg0^">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                                <field name="WITH_DELAY">TRUE</field>
                                <field name="DELAY_MS">10</field>
                                <field name="UNIT">sec</field>
                                <field name="CLEAR_RUNNING">FALSE</field>
                                <value name="VALUE">
                                  <block type="text" id=")_gK@lrF#Zq$G@_@V=LQ">
                                    <field name="TEXT"></field>
                                  </block>
                                </value>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </statement>
                  </block>
                </next>
              </block>
            </statement>
          </block>
        </xml>
        

        Heizstufe hoch:

        <xml xmlns="https://developers.google.com/blockly/xml">
          <block type="on" id="YQ6XX(]NsmxZEN-^$jHM" x="238" y="62">
            <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Up</field>
            <field name="CONDITION">ne</field>
            <field name="ACK_CONDITION"></field>
            <statement name="STATEMENT">
              <block type="controls_if" id="9!khcKWsA5;ZZ[t+/@8O">
                <value name="IF0">
                  <block type="logic_multi_and" id="mKL^S/vITNpfMyhKtfdC">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                    <value name="AND0">
                      <block type="logic_compare" id="9B0O//g^EB2tA0~l+uii">
                        <field name="OP">EQ</field>
                        <value name="A">
                          <block type="get_value" id="v(i5r#h[]ul``DFZ$z|d">
                            <field name="ATTR">val</field>
                            <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Up</field>
                          </block>
                        </value>
                        <value name="B">
                          <block type="logic_boolean" id="@OVi1+pG[|$)4W6#/_Tl">
                            <field name="BOOL">TRUE</field>
                          </block>
                        </value>
                      </block>
                    </value>
                    <value name="AND1">
                      <block type="logic_multi_and" id="-#;92aA#@bv`%Y*!`@]2">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                        <value name="AND0">
                          <block type="logic_compare" id="kWeOb0!:)Y+G]g,9OKT?">
                            <field name="OP">LTE</field>
                            <value name="A">
                              <block type="get_value" id="+wFLQW9[|04f=t$W+Dw`">
                                <field name="ATTR">val</field>
                                <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="math_number" id=".AH`b}8=?AZAXihpYrl!">
                                <field name="NUM">5</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <value name="AND1">
                          <block type="logic_compare" id="xiOi|fX8*AL*alPUm5W_">
                            <field name="OP">EQ</field>
                            <value name="A">
                              <block type="get_value" id="%9qa^R(SGh4?Ogz5w;R]">
                                <field name="ATTR">val</field>
                                <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Freigabe</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="logic_boolean" id="!B*L#|AGyB;#$DG}S%C^">
                                <field name="BOOL">TRUE</field>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="request" id="=#~U|~ufO;;RIFT51z*Z">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                    <field name="WITH_STATEMENT">FALSE</field>
                    <field name="LOG"></field>
                    <value name="URL">
                      <shadow type="text" id="Dv-gz/AEM.O*pf8=9d=e">
                        <field name="TEXT">http://192.168.178.140/relay/3?turn=on</field>
                      </shadow>
                    </value>
                    <next>
                      <block type="timeouts_wait" id="c-p;x5/E.2j{i$2C0B4`">
                        <field name="DELAY">750</field>
                        <field name="UNIT">ms</field>
                        <next>
                          <block type="request" id="J@{%uh|E@DB3a0+I~RLX">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                            <field name="WITH_STATEMENT">FALSE</field>
                            <field name="LOG"></field>
                            <value name="URL">
                              <shadow type="text" id="6g21V#a+@_cTOom}bs,g">
                                <field name="TEXT">http://192.168.178.140/relay/3?turn=off</field>
                              </shadow>
                            </value>
                            <next>
                              <block type="control" id="@jihPVZsZeHBBIhzK!-)">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Up</field>
                                <field name="WITH_DELAY">TRUE</field>
                                <field name="DELAY_MS">1000</field>
                                <field name="UNIT">ms</field>
                                <field name="CLEAR_RUNNING">FALSE</field>
                                <value name="VALUE">
                                  <block type="logic_boolean" id="uK$Axj2l8o.TOts@JbPE">
                                    <field name="BOOL">FALSE</field>
                                  </block>
                                </value>
                                <next>
                                  <block type="control" id="e.`Cm)ApP934MxaV?/C@">
                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                    <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE">
                                      <block type="math_arithmetic" id="U,mmQ7v^5B/!I+{8U#rq">
                                        <field name="OP">ADD</field>
                                        <value name="A">
                                          <shadow type="math_number" id="n:x}*D9/xx+fELeF2P*u">
                                            <field name="NUM">1</field>
                                          </shadow>
                                          <block type="get_value" id="gB+dc%F/$obpW%Bu6.`u">
                                            <field name="ATTR">val</field>
                                            <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                                          </block>
                                        </value>
                                        <value name="B">
                                          <shadow type="math_number" id="u1@ALAb#3^nhm-uif/x@">
                                            <field name="NUM">1</field>
                                          </shadow>
                                        </value>
                                      </block>
                                    </value>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </statement>
                <next>
                  <block type="controls_if" id="1}AvgoEZ%O+o}/?:w=#^">
                    <value name="IF0">
                      <block type="logic_multi_and" id="wFt5Q,D3A%CH*`~!]IPa">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation>
                        <value name="AND0">
                          <block type="logic_compare" id="+mdg%j:=G,Fj$D9J3iN+">
                            <field name="OP">EQ</field>
                            <value name="A">
                              <block type="get_value" id="jpGn_bnsar54`/)+F.+]">
                                <field name="ATTR">val</field>
                                <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Up</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="logic_boolean" id="=nNU?H?v/.hw65[EdvQh">
                                <field name="BOOL">TRUE</field>
                              </block>
                            </value>
                          </block>
                        </value>
                        <value name="AND1">
                          <block type="logic_compare" id="i9Qe(:z|.+I0GPs+j:ql">
                            <field name="OP">EQ</field>
                            <value name="A">
                              <block type="get_value" id="kh!ozti.:f*W5zFiq`kF">
                                <field name="ATTR">val</field>
                                <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Heizstufe</field>
                              </block>
                            </value>
                            <value name="B">
                              <block type="math_number" id="b$7:,(xUS_!/EX*;#CYM">
                                <field name="NUM">6</field>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                    <statement name="DO0">
                      <block type="control" id="hi8QC05VCtuMPc@MZ3/W">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                        <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Up</field>
                        <field name="WITH_DELAY">TRUE</field>
                        <field name="DELAY_MS">1000</field>
                        <field name="UNIT">ms</field>
                        <field name="CLEAR_RUNNING">FALSE</field>
                        <value name="VALUE">
                          <block type="logic_boolean" id="6~J=fBw_ZF9%(j,KLaPI">
                            <field name="BOOL">FALSE</field>
                          </block>
                        </value>
                        <next>
                          <block type="control" id="Q(KElrPDwU#?`05agb:$">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                            <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE">
                              <block type="text" id="N}TV|F%J;H/d1ma,~lnu">
                                <field name="TEXT">Höchste Stufe erreicht</field>
                              </block>
                            </value>
                            <next>
                              <block type="control" id="3=jGY}5;qwu=G-flCg0^">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                                <field name="WITH_DELAY">TRUE</field>
                                <field name="DELAY_MS">10</field>
                                <field name="UNIT">sec</field>
                                <field name="CLEAR_RUNNING">FALSE</field>
                                <value name="VALUE">
                                  <block type="text" id=")_gK@lrF#Zq$G@_@V=LQ">
                                    <field name="TEXT"></field>
                                  </block>
                                </value>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </statement>
                  </block>
                </next>
              </block>
            </statement>
          </block>
        </xml>
        

        Abschalten:

        <xml xmlns="https://developers.google.com/blockly/xml">
          <block type="on" id="$tU996o~hQ[gu+Rp]ZzL" x="138" y="88">
            <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_On</field>
            <field name="CONDITION">ne</field>
            <field name="ACK_CONDITION"></field>
            <statement name="STATEMENT">
              <block type="controls_if" id="-kvipVRHx8bQ=BYHNv*|">
                <value name="IF0">
                  <block type="logic_compare" id="%z+e+i0x7-#GA)9#3[5F">
                    <field name="OP">EQ</field>
                    <value name="A">
                      <block type="get_value" id="?1RP)!8R(~0^N,3i{}hQ">
                        <field name="ATTR">val</field>
                        <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_On</field>
                      </block>
                    </value>
                    <value name="B">
                      <block type="logic_boolean" id="9P]dho?Dg)Ol5EY~$Utq">
                        <field name="BOOL">FALSE</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="request" id="=#~U|~ufO;;RIFT51z*Z">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                    <field name="WITH_STATEMENT">FALSE</field>
                    <field name="LOG"></field>
                    <value name="URL">
                      <shadow type="text" id="Dv-gz/AEM.O*pf8=9d=e">
                        <field name="TEXT">http://192.168.178.140/relay/2?turn=on</field>
                      </shadow>
                    </value>
                    <next>
                      <block type="timeouts_wait" id="Ut#@_]7_Ocl!qwh0+9ZH">
                        <field name="DELAY">2500</field>
                        <field name="UNIT">ms</field>
                        <next>
                          <block type="request" id="b)IGmCnP(mkg+HpY3ZJu">
                            <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation>
                            <field name="WITH_STATEMENT">FALSE</field>
                            <field name="LOG"></field>
                            <value name="URL">
                              <shadow type="text" id="$|(F/4!az1S+8D?w!i0%">
                                <field name="TEXT">http://192.168.178.140/relay/2?turn=off</field>
                              </shadow>
                            </value>
                            <next>
                              <block type="control" id="Q(KElrPDwU#?`05agb:$">
                                <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE">
                                  <block type="text" id="N}TV|F%J;H/d1ma,~lnu">
                                    <field name="TEXT">Heizung fährt herunter, Freigabe entzogen</field>
                                  </block>
                                </value>
                                <next>
                                  <block type="control" id="8@rsdx{|5Ny-mRp77$;l">
                                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                    <field name="OID">0_userdata.0.Werkstattheizung.B_Werkstattheizung_Freigabe</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE">
                                      <block type="logic_boolean" id="k(F9$uy7Kop+oGm9MCp6">
                                        <field name="BOOL">FALSE</field>
                                      </block>
                                    </value>
                                    <next>
                                      <block type="control" id="/f@iSqb-Z)tvu!A5A*+r">
                                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation>
                                        <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Text</field>
                                        <field name="WITH_DELAY">TRUE</field>
                                        <field name="DELAY_MS">2</field>
                                        <field name="UNIT">min</field>
                                        <field name="CLEAR_RUNNING">FALSE</field>
                                        <value name="VALUE">
                                          <block type="text" id="WKFRSa1mm=Vc?V|%}U?(">
                                            <field name="TEXT"></field>
                                          </block>
                                        </value>
                                      </block>
                                    </next>
                                  </block>
                                </next>
                              </block>
                            </next>
                          </block>
                        </next>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
            </statement>
          </block>
        </xml>
        

        Analog zum selbständigen Hochfahren der Heizung führt diese auch eine Selbstständige Abkühlphase durch. Zur Zeit wird das jedoch noch nicht vom Script erschlagen. Daher bitte mit vorsicht zu genießen.

        Nun folgen noch die Abfrage der Temperatur und Spannung der jeweiligen Shelly:

        Temperatur

        <xml xmlns="https://developers.google.com/blockly/xml">
          <variables>
            <variable id="!);hs;9{=,[~A8o5{=Hv">x</variable>
            <variable id="vKh/VeTs4fFJuM1~{sL^">result</variable>
          </variables>
          <block type="schedule" id="S5y/ctFHiI7:WlW-,Dfh" x="112" y="63">
            <field name="SCHEDULE">* * * * * *</field>
            <statement name="STATEMENT">
              <block type="request" id="UTG6!ewVuNx|/w}T^dBz">
                <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
                <field name="WITH_STATEMENT">TRUE</field>
                <field name="LOG"></field>
                <value name="URL">
                  <shadow type="text" id="0KpZxvNEi=c6f!Np2x*U">
                    <field name="TEXT">http://192.168.178.140/rpc/Temperature.GetStatus?id=100</field>
                  </shadow>
                </value>
                <statement name="STATEMENT">
                  <block type="variables_set" id="bfIINS`.pTEu+cC3%qg[">
                    <field name="VAR" id="!);hs;9{=,[~A8o5{=Hv">x</field>
                    <value name="VALUE">
                      <block type="get_attr" id="6l|u$1Ux]=:T::Zok93~">
                        <value name="PATH">
                          <shadow type="text" id="QR9!,Cad!IG[S06MPl|z">
                            <field name="TEXT">tC</field>
                          </shadow>
                        </value>
                        <value name="OBJECT">
                          <shadow type="get_object" id="aq)Rdy.u8%`LFx0K+o@!">
                            <field name="OID">Object ID</field>
                          </shadow>
                          <block type="convert_json2object" id=";Ll?WdS,2,vA-zX:V]9M">
                            <value name="VALUE">
                              <block type="variables_get" id="tY3hxMoz/LX!f_go.c.N">
                                <field name="VAR" id="vKh/VeTs4fFJuM1~{sL^">result</field>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                    <next>
                      <block type="update" id="=q.UG4o;V#*~Md#`H$o9">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                        <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Ausstroemertemperatur</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="variables_get" id="f_l+(|oUEI0^){.#3A;-">
                            <field name="VAR" id="!);hs;9{=,[~A8o5{=Hv">x</field>
                          </block>
                        </value>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
            </statement>
          </block>
        </xml>
        

        Spannung:

        <xml xmlns="https://developers.google.com/blockly/xml">
          <variables>
            <variable id="!);hs;9{=,[~A8o5{=Hv">x</variable>
            <variable id="vKh/VeTs4fFJuM1~{sL^">result</variable>
          </variables>
          <block type="schedule" id="S5y/ctFHiI7:WlW-,Dfh" x="112" y="63">
            <field name="SCHEDULE">* * * * * *</field>
            <statement name="STATEMENT">
              <block type="request" id="UTG6!ewVuNx|/w}T^dBz">
                <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation>
                <field name="WITH_STATEMENT">TRUE</field>
                <field name="LOG"></field>
                <value name="URL">
                  <shadow type="text" id="0KpZxvNEi=c6f!Np2x*U">
                    <field name="TEXT">http://192.168.178.141/rpc/Voltmeter.GetStatus?id=100</field>
                  </shadow>
                </value>
                <statement name="STATEMENT">
                  <block type="variables_set" id="bfIINS`.pTEu+cC3%qg[">
                    <field name="VAR" id="!);hs;9{=,[~A8o5{=Hv">x</field>
                    <value name="VALUE">
                      <block type="get_attr" id="6l|u$1Ux]=:T::Zok93~">
                        <value name="PATH">
                          <shadow type="text" id="QR9!,Cad!IG[S06MPl|z">
                            <field name="TEXT">voltage</field>
                          </shadow>
                        </value>
                        <value name="OBJECT">
                          <shadow type="get_object" id="aq)Rdy.u8%`LFx0K+o@!">
                            <field name="OID">Object ID</field>
                          </shadow>
                          <block type="convert_json2object" id=";Ll?WdS,2,vA-zX:V]9M">
                            <value name="VALUE">
                              <block type="variables_get" id="tY3hxMoz/LX!f_go.c.N">
                                <field name="VAR" id="vKh/VeTs4fFJuM1~{sL^">result</field>
                              </block>
                            </value>
                          </block>
                        </value>
                      </block>
                    </value>
                    <next>
                      <block type="update" id="=q.UG4o;V#*~Md#`H$o9">
                        <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                        <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE">
                          <block type="variables_get" id="f_l+(|oUEI0^){.#3A;-">
                            <field name="VAR" id="!);hs;9{=,[~A8o5{=Hv">x</field>
                          </block>
                        </value>
                      </block>
                    </next>
                  </block>
                </statement>
              </block>
            </statement>
          </block>
        </xml>
        

        Und abschließend noch die Umrechnung von Volt in prozentualen Stufen:

        <xml xmlns="https://developers.google.com/blockly/xml">
          <block type="on" id="xJ[|`FS|n8IM09ZoRk]`" x="88" y="-137">
            <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
            <field name="CONDITION">ne</field>
            <field name="ACK_CONDITION"></field>
            <statement name="STATEMENT">
              <block type="controls_if" id="#nK)yu%Qt.JT=6)rwfQ/">
                <mutation elseif="5"></mutation>
                <value name="IF0">
                  <block type="logic_between" id="}5fmcYO^vc{Rd7thL#:F">
                    <field name="MIN_OPERATOR">LE</field>
                    <field name="MAX_OPERATOR">LT</field>
                    <value name="MIN">
                      <block type="math_number" id="x`b46TWbLjMn4NxzqINX">
                        <field name="NUM">0</field>
                      </block>
                    </value>
                    <value name="VALUE">
                      <shadow type="math_number" id="P2@qS~JU~R?O#Al@zu=I">
                        <field name="NUM">42</field>
                      </shadow>
                      <block type="get_value" id="ZoHikS+~ewT]pdjbH$r0">
                        <field name="ATTR">val</field>
                        <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
                      </block>
                    </value>
                    <value name="MAX">
                      <block type="math_number" id="AGgj!,MY9I9*y,,`rX^f">
                        <field name="NUM">0.3</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO0">
                  <block type="control" id="1,~#!4#0T0[[{lSh8(+q">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                    <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Tankfüllstand</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="math_number" id="8b[`?[g3R`luMN,^|nJ|">
                        <field name="NUM">0</field>
                      </block>
                    </value>
                  </block>
                </statement>
                <value name="IF1">
                  <block type="logic_between" id="EwqHluPmKIS/a-s+d|$$">
                    <field name="MIN_OPERATOR">LE</field>
                    <field name="MAX_OPERATOR">LT</field>
                    <value name="MIN">
                      <block type="math_number" id="PVq4yno;HUGZZc01^h}T">
                        <field name="NUM">0.3</field>
                      </block>
                    </value>
                    <value name="VALUE">
                      <shadow type="math_number" id="P2@qS~JU~R?O#Al@zu=I">
                        <field name="NUM">42</field>
                      </shadow>
                      <block type="get_value" id="lC?5E,AwvS8h=4h.3C)T">
                        <field name="ATTR">val</field>
                        <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
                      </block>
                    </value>
                    <value name="MAX">
                      <block type="math_number" id="UOhMfk2/A)IzWup_4JNJ">
                        <field name="NUM">0.6</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO1">
                  <block type="control" id="-i[.mk.8{?P9K|`9+e4,">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                    <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Tankfüllstand</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="math_number" id="T#kIquVF);B]oOu~hy9m">
                        <field name="NUM">20</field>
                      </block>
                    </value>
                  </block>
                </statement>
                <value name="IF2">
                  <block type="logic_between" id=".J+Ij9*Ghf}y3O@1S-cy">
                    <field name="MIN_OPERATOR">LE</field>
                    <field name="MAX_OPERATOR">LT</field>
                    <value name="MIN">
                      <block type="math_number" id="kZmPc[c(vU6FtFhbNc43">
                        <field name="NUM">0.6</field>
                      </block>
                    </value>
                    <value name="VALUE">
                      <shadow type="math_number" id="P2@qS~JU~R?O#Al@zu=I">
                        <field name="NUM">42</field>
                      </shadow>
                      <block type="get_value" id="cL4zpYl-~-^Oxj+tH3s5">
                        <field name="ATTR">val</field>
                        <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
                      </block>
                    </value>
                    <value name="MAX">
                      <block type="math_number" id="H|+{+t(D|EDSt(2.T}Zg">
                        <field name="NUM">1.2</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO2">
                  <block type="control" id="=e|m.lKD)hZ^WI0e_t3k">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                    <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Tankfüllstand</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="math_number" id="M(Y*TBKe%,-yW$8#[ArG">
                        <field name="NUM">40</field>
                      </block>
                    </value>
                  </block>
                </statement>
                <value name="IF3">
                  <block type="logic_between" id="[k)#~YK5`AWZfC7+}YUY">
                    <field name="MIN_OPERATOR">LE</field>
                    <field name="MAX_OPERATOR">LT</field>
                    <value name="MIN">
                      <block type="math_number" id="czsmVFCZ^O,ERz*j)fWz">
                        <field name="NUM">1.2</field>
                      </block>
                    </value>
                    <value name="VALUE">
                      <shadow type="math_number" id="P2@qS~JU~R?O#Al@zu=I">
                        <field name="NUM">42</field>
                      </shadow>
                      <block type="get_value" id="HSkz0?fd:#KnwqY62`eR">
                        <field name="ATTR">val</field>
                        <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
                      </block>
                    </value>
                    <value name="MAX">
                      <block type="math_number" id="4@h`zh|v7]bN]rG7zgJL">
                        <field name="NUM">1.45</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO3">
                  <block type="control" id="6DNPjF{a_6pipj1PT2,a">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                    <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Tankfüllstand</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="math_number" id="wF.o.Bl@x$/jh#BwD}Gh">
                        <field name="NUM">60</field>
                      </block>
                    </value>
                  </block>
                </statement>
                <value name="IF4">
                  <block type="logic_between" id="_HkC0ZK~c4P|)VuPp[7C">
                    <field name="MIN_OPERATOR">LE</field>
                    <field name="MAX_OPERATOR">LT</field>
                    <value name="MIN">
                      <block type="math_number" id="6x!sjnvwh0JgPuwzkiF9">
                        <field name="NUM">1.45</field>
                      </block>
                    </value>
                    <value name="VALUE">
                      <shadow type="math_number" id="P2@qS~JU~R?O#Al@zu=I">
                        <field name="NUM">42</field>
                      </shadow>
                      <block type="get_value" id="8q8H1b?Iek`o(jKtnY:m">
                        <field name="ATTR">val</field>
                        <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
                      </block>
                    </value>
                    <value name="MAX">
                      <block type="math_number" id="lG4ISgP1FYEz#xap9(NB">
                        <field name="NUM">1.7</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO4">
                  <block type="control" id="}aGMHDP]R/gRz0#C]fe]">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                    <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Tankfüllstand</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="math_number" id=".Y:Abs0.lO_;;AL+GG}`">
                        <field name="NUM">80</field>
                      </block>
                    </value>
                  </block>
                </statement>
                <value name="IF5">
                  <block type="logic_between" id=".~VsBY_):n-HG$p=d]O/">
                    <field name="MIN_OPERATOR">LE</field>
                    <field name="MAX_OPERATOR">LT</field>
                    <value name="MIN">
                      <block type="math_number" id="emPN?M|ULRTqN5pa0eZE">
                        <field name="NUM">1.7</field>
                      </block>
                    </value>
                    <value name="VALUE">
                      <shadow type="math_number" id="P2@qS~JU~R?O#Al@zu=I">
                        <field name="NUM">42</field>
                      </shadow>
                      <block type="get_value" id="D0W-M6!,eUa,%R?!iJA1">
                        <field name="ATTR">val</field>
                        <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Pegelstand_Spannung</field>
                      </block>
                    </value>
                    <value name="MAX">
                      <block type="math_number" id="MdQ_?q*S`9!sfib![;3H">
                        <field name="NUM">2.1</field>
                      </block>
                    </value>
                  </block>
                </value>
                <statement name="DO5">
                  <block type="control" id="NoM/k3ug%pt~33EXJp+_">
                    <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                    <field name="OID">0_userdata.0.Werkstattheizung.Var_Werkstattheizung_Tankfüllstand</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE">
                      <block type="math_number" id="xUVm,_mTZUu,W~SKn@%*">
                        <field name="NUM">100</field>
                      </block>
                    </value>
                  </block>
                </statement>
              </block>
            </statement>
          </block>
        </xml>
        

        In der Vis hab ich das bisher nur erstmal quick and dirty integriert und sieht so aus.

        Vis.PNG

        Für die Zukunft sind die angesprochene automatische Betankung und weitere Scripte z.B. einen Automatikmodus geplant.
        Sowie die Gestaltung des Deckels mit den Druckknöpfen für die Tasten am Display. Aktuell sieht es nämlich so aus.

        20241123_195624.jpg

        Über ein Feedback von euch würde ich mich sehr freuen.

        R Offline
        R Offline
        Radi
        schrieb am zuletzt editiert von
        #3

        @gmt94 Dein Projekt erscheint ja höchst interessant. Ich habe eine ähnliche Konstellation im Einsatz und ärgere mich immer wieder, dass ich das Gerät eigentlich nur am oder in der Nähe des Geräts bedienen kann. Von daher wäre ich an einem Nachbau deines Projekts interessiert. Welche Platine von Shelly hast du denn dabei genutzt? Ich fand auf die Schnelle nichts, was nach der von dir genutzten Platine aussieht.

        da_WoodyD G 2 Antworten Letzte Antwort
        0
        • R Radi

          @gmt94 Dein Projekt erscheint ja höchst interessant. Ich habe eine ähnliche Konstellation im Einsatz und ärgere mich immer wieder, dass ich das Gerät eigentlich nur am oder in der Nähe des Geräts bedienen kann. Von daher wäre ich an einem Nachbau deines Projekts interessiert. Welche Platine von Shelly hast du denn dabei genutzt? Ich fand auf die Schnelle nichts, was nach der von dir genutzten Platine aussieht.

          da_WoodyD Offline
          da_WoodyD Offline
          da_Woody
          schrieb am zuletzt editiert von
          #4

          @radi musste auch suchen. Noch nie gesehen.
          https://www.shelly.com/de/products/db2024r-xsm
          Da gibt's noch was
          https://www.shelly.com/de/products/db2024t-xsm

          gruß vom Woody
          HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

          G 1 Antwort Letzte Antwort
          1
          • R Radi

            @gmt94 Dein Projekt erscheint ja höchst interessant. Ich habe eine ähnliche Konstellation im Einsatz und ärgere mich immer wieder, dass ich das Gerät eigentlich nur am oder in der Nähe des Geräts bedienen kann. Von daher wäre ich an einem Nachbau deines Projekts interessiert. Welche Platine von Shelly hast du denn dabei genutzt? Ich fand auf die Schnelle nichts, was nach der von dir genutzten Platine aussieht.

            G Offline
            G Offline
            gmt94
            schrieb am zuletzt editiert von
            #5

            @radi

            Hey Radi,

            Hier ist der Link:

            https://www.shelly.com/de/products/db2024r-xsm

            Falls du weitere Unterstützung benötigst einfach melden.

            Vg

            R 1 Antwort Letzte Antwort
            1
            • G gmt94

              @radi

              Hey Radi,

              Hier ist der Link:

              https://www.shelly.com/de/products/db2024r-xsm

              Falls du weitere Unterstützung benötigst einfach melden.

              Vg

              R Offline
              R Offline
              Radi
              schrieb am zuletzt editiert von
              #6

              @gmt94 Danke dir und auch da_Woody. Die Platine kannte ich auch noch nicht. Vielleicht kannst du mal, wenn genug Zeit ist, eine Materialaufstellung machen. Das würde den Nachbau erleichtern. Die .stl-Files für den 3D-Druck wären natürlich auch willkommen. So, jetzt habe ich aber genug gewünscht. Es ist auf jeden Fall ein sehr interessantes Projekt, das mich zum Nachbau anstachelt.

              G 2 Antworten Letzte Antwort
              0
              • da_WoodyD da_Woody

                @radi musste auch suchen. Noch nie gesehen.
                https://www.shelly.com/de/products/db2024r-xsm
                Da gibt's noch was
                https://www.shelly.com/de/products/db2024t-xsm

                G Offline
                G Offline
                gmt94
                schrieb am zuletzt editiert von
                #7

                @da_woody

                Bist du der woody aus dem shelly forum der da nicht mehr aktiv ist?

                Wenn ja hab ich dir damals ja die shelly in Box druckdatei extra für dich erstellt. :-)

                da_WoodyD 1 Antwort Letzte Antwort
                0
                • R Radi

                  @gmt94 Danke dir und auch da_Woody. Die Platine kannte ich auch noch nicht. Vielleicht kannst du mal, wenn genug Zeit ist, eine Materialaufstellung machen. Das würde den Nachbau erleichtern. Die .stl-Files für den 3D-Druck wären natürlich auch willkommen. So, jetzt habe ich aber genug gewünscht. Es ist auf jeden Fall ein sehr interessantes Projekt, das mich zum Nachbau anstachelt.

                  G Offline
                  G Offline
                  gmt94
                  schrieb am zuletzt editiert von
                  #8

                  @radi

                  Werde ich heute abend alles zusammen stellen.

                  1 Antwort Letzte Antwort
                  0
                  • G gmt94

                    @da_woody

                    Bist du der woody aus dem shelly forum der da nicht mehr aktiv ist?

                    Wenn ja hab ich dir damals ja die shelly in Box druckdatei extra für dich erstellt. :-)

                    da_WoodyD Offline
                    da_WoodyD Offline
                    da_Woody
                    schrieb am zuletzt editiert von
                    #9

                    @gmt94 oioi, wie die Zeit vergeht...
                    Jup, das war meinereiner. Wurde damals vom selbsternannten godadmin gesperrt.
                    Thnx noch mal für die Box!
                    Biste da noch dran für die neuen Shelly?

                    gruß vom Woody
                    HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                    1 Antwort Letzte Antwort
                    0
                    • R Radi

                      @gmt94 Danke dir und auch da_Woody. Die Platine kannte ich auch noch nicht. Vielleicht kannst du mal, wenn genug Zeit ist, eine Materialaufstellung machen. Das würde den Nachbau erleichtern. Die .stl-Files für den 3D-Druck wären natürlich auch willkommen. So, jetzt habe ich aber genug gewünscht. Es ist auf jeden Fall ein sehr interessantes Projekt, das mich zum Nachbau anstachelt.

                      G Offline
                      G Offline
                      gmt94
                      schrieb am zuletzt editiert von gmt94
                      #10

                      @radi

                      So wie versprochen anbei die Stückliste. Ich werde nachher auch noch einen Schaltplan malen.

                      1x Shelly X MOD1 – DevKit with 4 relays
                      1x Shelly Uni
                      1x Temperatursensor ds18b20
                      4x Wago 221 5 Fach
                      1x Wago 221 3 Fach
                      2x Zugentlastung M12
                      1x kOhm Widerstand
                      12x M3 Einpressmuttern
                      8x M3x10 Senkkopf
                      4x M3x6 Flachkopf
                      3x Steckverbindungskabel (optional, erleichtert jedoch Montage von Display und Shelly)
                      1x 125mm Pegelmesser
                      2x1,5qm Kabel
                      0,5qm Signalkabel
                      einige kleine Aderendhülsen
                      Schrumpfschlauch
                      Lötkolben

                      Das müsste es erstmal gewesen sein. Am Wochenende hab ich dann noch für die Ausströmerseite ein kleines Rohr mit Bogen gedruckt, dieser kann dann den Temperatursensor aufnehmen. Das habe ich jedoch aus ASA aufgrund der Temperaturbeständigkeit gedruckt,

                      20241125_165722[1].jpg

                      20241125_165729[1].jpg

                      G da_WoodyD R 3 Antworten Letzte Antwort
                      0
                      • G gmt94

                        @radi

                        So wie versprochen anbei die Stückliste. Ich werde nachher auch noch einen Schaltplan malen.

                        1x Shelly X MOD1 – DevKit with 4 relays
                        1x Shelly Uni
                        1x Temperatursensor ds18b20
                        4x Wago 221 5 Fach
                        1x Wago 221 3 Fach
                        2x Zugentlastung M12
                        1x kOhm Widerstand
                        12x M3 Einpressmuttern
                        8x M3x10 Senkkopf
                        4x M3x6 Flachkopf
                        3x Steckverbindungskabel (optional, erleichtert jedoch Montage von Display und Shelly)
                        1x 125mm Pegelmesser
                        2x1,5qm Kabel
                        0,5qm Signalkabel
                        einige kleine Aderendhülsen
                        Schrumpfschlauch
                        Lötkolben

                        Das müsste es erstmal gewesen sein. Am Wochenende hab ich dann noch für die Ausströmerseite ein kleines Rohr mit Bogen gedruckt, dieser kann dann den Temperatursensor aufnehmen. Das habe ich jedoch aus ASA aufgrund der Temperaturbeständigkeit gedruckt,

                        20241125_165722[1].jpg

                        20241125_165729[1].jpg

                        G Offline
                        G Offline
                        gmt94
                        schrieb am zuletzt editiert von
                        #11

                        Wie angekündigt hier noch der Schaltplan:

                        Schaltplan.png

                        Ich hoffe, dass man damit was anfangen kann.

                        1 Antwort Letzte Antwort
                        0
                        • G gmt94

                          @radi

                          So wie versprochen anbei die Stückliste. Ich werde nachher auch noch einen Schaltplan malen.

                          1x Shelly X MOD1 – DevKit with 4 relays
                          1x Shelly Uni
                          1x Temperatursensor ds18b20
                          4x Wago 221 5 Fach
                          1x Wago 221 3 Fach
                          2x Zugentlastung M12
                          1x kOhm Widerstand
                          12x M3 Einpressmuttern
                          8x M3x10 Senkkopf
                          4x M3x6 Flachkopf
                          3x Steckverbindungskabel (optional, erleichtert jedoch Montage von Display und Shelly)
                          1x 125mm Pegelmesser
                          2x1,5qm Kabel
                          0,5qm Signalkabel
                          einige kleine Aderendhülsen
                          Schrumpfschlauch
                          Lötkolben

                          Das müsste es erstmal gewesen sein. Am Wochenende hab ich dann noch für die Ausströmerseite ein kleines Rohr mit Bogen gedruckt, dieser kann dann den Temperatursensor aufnehmen. Das habe ich jedoch aus ASA aufgrund der Temperaturbeständigkeit gedruckt,

                          20241125_165722[1].jpg

                          20241125_165729[1].jpg

                          da_WoodyD Offline
                          da_WoodyD Offline
                          da_Woody
                          schrieb am zuletzt editiert von
                          #12

                          @gmt94 sagte in Chinaheizung halbwegs smart gemacht:

                          0,5qm Signalkabel

                          ganz schön dick... floet.gif
                          ne, auch wenn ich sowas nicht brauche, thnx fürs teilen!

                          gruß vom Woody
                          HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

                          1 Antwort Letzte Antwort
                          0
                          • G gmt94

                            @radi

                            So wie versprochen anbei die Stückliste. Ich werde nachher auch noch einen Schaltplan malen.

                            1x Shelly X MOD1 – DevKit with 4 relays
                            1x Shelly Uni
                            1x Temperatursensor ds18b20
                            4x Wago 221 5 Fach
                            1x Wago 221 3 Fach
                            2x Zugentlastung M12
                            1x kOhm Widerstand
                            12x M3 Einpressmuttern
                            8x M3x10 Senkkopf
                            4x M3x6 Flachkopf
                            3x Steckverbindungskabel (optional, erleichtert jedoch Montage von Display und Shelly)
                            1x 125mm Pegelmesser
                            2x1,5qm Kabel
                            0,5qm Signalkabel
                            einige kleine Aderendhülsen
                            Schrumpfschlauch
                            Lötkolben

                            Das müsste es erstmal gewesen sein. Am Wochenende hab ich dann noch für die Ausströmerseite ein kleines Rohr mit Bogen gedruckt, dieser kann dann den Temperatursensor aufnehmen. Das habe ich jedoch aus ASA aufgrund der Temperaturbeständigkeit gedruckt,

                            20241125_165722[1].jpg

                            20241125_165729[1].jpg

                            R Offline
                            R Offline
                            Radi
                            schrieb am zuletzt editiert von
                            #13

                            @gmt94 Danke für die Aufstellung. Ist sehr detailliert geworden. Was für ein Display hast du da verbaut?
                            Ich habe es bei mir so realisiert, das ich am Ausgang der Heizung einen temperaturbeständigen Rohrlüfter angeschlossen habe, der über die Stromaufnahme der Standheizung gesteuert eingeschaltet wird und die warme Luft über ein Rohrsystem mit mehreren Luftauslässen im Gebäude verteilt.

                            G 1 Antwort Letzte Antwort
                            0
                            • R Radi

                              @gmt94 Danke für die Aufstellung. Ist sehr detailliert geworden. Was für ein Display hast du da verbaut?
                              Ich habe es bei mir so realisiert, das ich am Ausgang der Heizung einen temperaturbeständigen Rohrlüfter angeschlossen habe, der über die Stromaufnahme der Standheizung gesteuert eingeschaltet wird und die warme Luft über ein Rohrsystem mit mehreren Luftauslässen im Gebäude verteilt.

                              G Offline
                              G Offline
                              gmt94
                              schrieb am zuletzt editiert von
                              #14

                              @radi

                              Na das ist das Display direkt von der Heizung. Das habe ich aus dem originalen Gehäuse ausgebaut. Ohne dem funktioniert ja die ganze Heizung nicht.

                              R 1 Antwort Letzte Antwort
                              0
                              • G gmt94

                                @radi

                                Na das ist das Display direkt von der Heizung. Das habe ich aus dem originalen Gehäuse ausgebaut. Ohne dem funktioniert ja die ganze Heizung nicht.

                                R Offline
                                R Offline
                                Radi
                                schrieb am zuletzt editiert von
                                #15

                                @gmt94 Manchmal ist man einfach nur blind. Habe mir das Bild gerade noch mal richtig angeschaut und mir erstmal vor den Kopf geschlagen ;)

                                G 1 Antwort Letzte Antwort
                                0
                                • R Radi

                                  @gmt94 Manchmal ist man einfach nur blind. Habe mir das Bild gerade noch mal richtig angeschaut und mir erstmal vor den Kopf geschlagen ;)

                                  G Offline
                                  G Offline
                                  gmt94
                                  schrieb am zuletzt editiert von
                                  #16

                                  @radi

                                  Hast du ein Display mit schwarzem oder weißen Stecker? Die sind nämlich etwas unterschiedlich.

                                  R 1 Antwort Letzte Antwort
                                  0
                                  • G gmt94

                                    @radi

                                    Hast du ein Display mit schwarzem oder weißen Stecker? Die sind nämlich etwas unterschiedlich.

                                    R Offline
                                    R Offline
                                    Radi
                                    schrieb am zuletzt editiert von
                                    #17

                                    @gmt94 Habs noch nicht auseinander gebaut. Würde mich melden, wenn ich mal wieder Muse habe, mich mit dem Thema zu beschäftigen. Momentan haben leider noch andere Dinge Priorität.

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


                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    849

                                    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