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
    11
    1
    515

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

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

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 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 Online
    da_WoodyD Online
    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 Online
        da_WoodyD Online
        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 Online
                  da_WoodyD Online
                  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 Online
                        da_WoodyD Online
                        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

                                  653

                                  Online

                                  32.5k

                                  Benutzer

                                  81.8k

                                  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