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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. (gelöst) Blocky für Fenstersensor (MAX!) und Thermostat (Homematic)

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    936

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

(gelöst) Blocky für Fenstersensor (MAX!) und Thermostat (Homematic)

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
18 Beiträge 2 Kommentatoren 2.0k Aufrufe
  • Ä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.
  • M Offline
    M Offline
    meikel
    schrieb am zuletzt editiert von
    #9

    Das ganze scheint echt zu tricky für mich zu sein. So wie es jetzt ist passiert folgendens:

    Fenster ist zu, alles ist bestens und das Thermostat steht auf permanent "Auto".

    Wird das Fenster geöffnet, ändert sich nach ein paar Sekunden der Mode auf "Manuell" und die Temperatur geht auf 12°. Nach 30 Sekunden wechselt kurz der Modus auf "Auto" um dann direkt auf "Manuell" zu gehen. Also jedes Update des Fenstersensor löst das Toggeln aus. Das Ganze passiert so lange bis das Fenster geschlossen wird und das Thermostat dauerhaft in den Modus Auto geht.

    Ich warte jetzt erst mal bis sich das alles beruhigt hat und tüftel dann weiter.

    1 Antwort Letzte Antwort
    0
    • M Offline
      M Offline
      meikel
      schrieb am zuletzt editiert von
      #10

      @paul53:

      Beispiel, das funktionieren sollte (nicht getestet):

      Blockly_HKT_Mode.JPG `

      Besten Dank, werde ich später mal testen. Ich muss mich noch mit dem Verschachteln der einzelnen Blöcke beschäftigen, Das ist mir alles noch nicht ganz so einleuchtend, aber an solchen Beispielen lernt man ja :).

      1 Antwort Letzte Antwort
      0
      • paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von
        #11

        @meikel:

        Also jedes Update des Fenstersensor löst das Toggeln aus. `
        Das kommt daher, dass mit Test auf "wahr" beim Trigger nicht nur auf Änderung, sondern auf Aktualisierung getriggert wird, d.h. der Befehl MANU_MODE wird erneut gesendet. Das mag der Thermostat offenbar nicht ? Oder sendest Du weiterhin bei offenem Fenster erst AUTO_MODE false und 2 s später MANU_MODE 12 ?

        In meinem Beispiel wird auf Änderung getriggert; also dürfte dieses erneute Senden nicht passieren.

        EDIT: Hier noch der Export meines Beispiels:

        ! ````
        <xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="+RQ8Qq0zRoKc`WNlgJ/b" x="-737" y="-312"><mutation items="1"></mutation>
        <field name="CONDITION">ne</field>

        <value name="OID0"><shadow type="field_oid" id="NGh|JL4P5(YSX|MvxQ~;"><field name="oid">hm-rpc.0.NEQ1234567.1.Fenster_offen</field></shadow></value> 
        <statement name="STATEMENT"><block type="controls_if" id="#uw[Q0.4.zhVfek`_};="><mutation else="1"></mutation>
            <value name="IF0"><block type="variables_get" id="bOYtI-m/Vq]=@cugU2=a"><field name="VAR">value</field></block></value> 
            <statement name="DO0"><block type="control" id="}lqa}Vi)?:H[0SYr.xmy"><mutation delay_input="false"></mutation>
                <field name="OID">hm-rpc.0.NEQ1234567.1.MANU_MODE</field>
                <field name="WITH_DELAY">FALSE</field>
                <value name="VALUE"><block type="math_number" id="E1xi[_fv|8BODs.DhP^h"><field name="NUM">12</field></block></value></block></statement> 
            <statement name="ELSE"><block type="control" id="kE-be#;kr*TTz_{,7!ab"><mutation delay_input="false"></mutation>
                <field name="OID">hm-rpc.0.NEQ1234567.1.AUTO_MODE</field>
                <field name="WITH_DELAY">FALSE</field>
                <value name="VALUE"><block type="logic_boolean" id="CIy,=pM=-a~{=V%|kMAd"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement> 
        <next><block type="on_ext" id="aw%bg0k{Gmrg6l3BMOiX"><mutation items="1"></mutation>
            <field name="CONDITION">ne</field>
        
            <value name="OID0"><shadow type="field_oid" id="V~jFO:b!buQ;(s[`2R{3"><field name="oid">hm-rpc.0.NEQ1234567.1.CONTROL_MODE</field></shadow></value> 
            <statement name="STATEMENT"><block type="debug" id="?60+I7Wp`qL{YZ*ddtbU"><field name="Severity">log</field>
                <value name="TEXT"><shadow type="text" id="{feYHS_bV5qC_LdZBB;m"><field name="TEXT">test</field></shadow> 
                  <block type="text_join" id="U+vXGEc@8*NbqOI7}]53"><mutation items="2"></mutation>
                    <value name="ADD0"><block type="text" id=".A9p22)X8)fO/I`}I0^9"><field name="TEXT">HKT Modus:</field></block></value> 
                    <value name="ADD1"><block type="variables_get" id="Cw!Il;eD~2qRIz%X0tI4"><field name="VAR">value</field></block></value></block></value></block></statement></block></next></block></xml> 
        

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        0
        • M Offline
          M Offline
          meikel
          schrieb am zuletzt editiert von
          #12

          @paul53:

          @meikel:

          Also jedes Update des Fenstersensor löst das Toggeln aus. `
          Das kommt daher, dass mit Test auf "wahr" beim Trigger nicht nur auf Änderung, sondern auf Aktualisierung getriggert wird, d.h. der Befehl MANU_MODE wird erneut gesendet. Das mag der Thermostat offenbar nicht ?

          In meinem Beispiel wird auf Änderung getriggert; also dürfte dieses erneute Senden nicht passieren. ` Schau ich mir morgen an, muss mich erstmal um die defekte Waschmaschine kümmern. Ansonsten gibt's Ärger von der Regierung

          Gesendet von meinem ONEPLUS A5010 mit Tapatalk

          1 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            meikel
            schrieb am zuletzt editiert von
            #13

            @paul53:

            @meikel:

            Also jedes Update des Fenstersensor löst das Toggeln aus. `
            Das kommt daher, dass mit Test auf "wahr" beim Trigger nicht nur auf Änderung, sondern auf Aktualisierung getriggert wird, d.h. der Befehl MANU_MODE wird erneut gesendet. Das mag der Thermostat offenbar nicht ? Oder sendest Du weiterhin bei offenem Fenster erst AUTO_MODE false und 2 s später MANU_MODE 12 ?

            In meinem Beispiel wird auf Änderung getriggert; also dürfte dieses erneute Senden nicht passieren.

            EDIT: Hier noch der Export meines Beispiels:

            ! ````
            <xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="+RQ8Qq0zRoKc`WNlgJ/b" x="-737" y="-312"><mutation items="1"></mutation>
            <field name="CONDITION">ne</field>

            <value name="OID0"><shadow type="field_oid" id="NGh|JL4P5(YSX|MvxQ~;"><field name="oid">hm-rpc.0.NEQ1234567.1.Fenster_offen</field></shadow></value> 
            <statement name="STATEMENT"><block type="controls_if" id="#uw[Q0.4.zhVfek`_};="><mutation else="1"></mutation>
                <value name="IF0"><block type="variables_get" id="bOYtI-m/Vq]=@cugU2=a"><field name="VAR">value</field></block></value> 
                <statement name="DO0"><block type="control" id="}lqa}Vi)?:H[0SYr.xmy"><mutation delay_input="false"></mutation>
                    <field name="OID">hm-rpc.0.NEQ1234567.1.MANU_MODE</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE"><block type="math_number" id="E1xi[_fv|8BODs.DhP^h"><field name="NUM">12</field></block></value></block></statement> 
                <statement name="ELSE"><block type="control" id="kE-be#;kr*TTz_{,7!ab"><mutation delay_input="false"></mutation>
                    <field name="OID">hm-rpc.0.NEQ1234567.1.AUTO_MODE</field>
                    <field name="WITH_DELAY">FALSE</field>
                    <value name="VALUE"><block type="logic_boolean" id="CIy,=pM=-a~{=V%|kMAd"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement> 
            <next><block type="on_ext" id="aw%bg0k{Gmrg6l3BMOiX"><mutation items="1"></mutation>
                <field name="CONDITION">ne</field>
                
                <value name="OID0"><shadow type="field_oid" id="V~jFO:b!buQ;(s[`2R{3"><field name="oid">hm-rpc.0.NEQ1234567.1.CONTROL_MODE</field></shadow></value> 
                <statement name="STATEMENT"><block type="debug" id="?60+I7Wp`qL{YZ*ddtbU"><field name="Severity">log</field>
                    <value name="TEXT"><shadow type="text" id="{feYHS_bV5qC_LdZBB;m"><field name="TEXT">test</field></shadow> 
                      <block type="text_join" id="U+vXGEc@8*NbqOI7}]53"><mutation items="2"></mutation>
                        <value name="ADD0"><block type="text" id=".A9p22)X8)fO/I`}I0^9"><field name="TEXT">HKT Modus:</field></block></value> 
                        <value name="ADD1"><block type="variables_get" id="Cw!Il;eD~2qRIz%X0tI4"><field name="VAR">value</field></block></value></block></value></block></statement></block></next></block></xml> 
            

            ```` `

            Waschmaschine ist zerlegt und die Kohlen sind wohl hinüber…...

            Vielen Dank für die Erklärungen, aber was hat der kleine Block "Value" zu bewirken. Das verstehe ich leider nicht.

            1 Antwort Letzte Antwort
            0
            • paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #14

              @meikel:

              was hat der kleine Block "Value" zu bewirken `
              Die Skriptvariable "value" wird in jedem Triggerbaustein per (internem) Standard als lokale Variable (Gültigkeit innerhalb der Funktion) erzeugt und mit dem Wert des auslösenden Datenpunktes befüllt. Das kann man sehen, wenn man rechts oben mal auf "Zeige Code" klickt. Mein Beispiel als Javascript Code:

              on({id: 'hm-rpc.0.NEQ1234567.1.Fenster_offen', change: "ne"}, function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
                if (value) {
                  setState("hm-rpc.0.NEQ1234567.1.MANU_MODE"/*MANU_MODE*/, 12);
                } else {
                  setState("hm-rpc.0.NEQ1234567.1.AUTO_MODE"/*AUTO_MODE*/, true);
                }
              });
              on({id: 'hm-rpc.0.NEQ1234567.1.CONTROL_MODE', change: "ne"}, function (obj) {
                var value = obj.state.val;
                var oldValue = obj.oldState.val;
                console.log((String('HKT Modus: ') + String(value)));
              });
              
              

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              1 Antwort Letzte Antwort
              0
              • M Offline
                M Offline
                meikel
                schrieb am zuletzt editiert von
                #15

                Aber müsste es dann nicht heißen

                falls value =wahr (Fenster offen) mache "manu Mode" mit 12°

                sonst "auto Mode" mit wahr

                Ich weiß, ist doof ausgedrückt aber mit fehlt noch der Bezug zum offenen Fenster :?:
                4941_bildschirmfoto_2018-01-22_um_19.19.46.png

                1 Antwort Letzte Antwort
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #16

                  @meikel:

                  aber mit fehlt noch der Bezug zum offenen Fenster `

                  on({id: 'hm-rpc.0.NEQ1234567.1.Fenster_offen', change: "ne"}, function (obj) {
                    var value = obj.state.val;  // Hier wird der Wert des Datenpunktes "Fenster_offen" an value übergeben (true = Fenster offen)
                  
                  

                  @meikel:

                  Aber müsste es dann nicht heißen

                  falls value =wahr (Fenster offen) mache `
                  Ein Vergleich liefert als Ergebnis true oder false. Die Skriptvariable value enthält schon true oder false, deshalb muss man nicht noch mit true vergleichen, was eine verkürzte Schreibweise erlaubt.

                  if(value)
                  

                  entspricht

                  if(value == true)
                  

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  1 Antwort Letzte Antwort
                  0
                  • M Offline
                    M Offline
                    meikel
                    schrieb am zuletzt editiert von
                    #17

                    Das ist ja mega pfiffig und somit für faule Leute :D

                    Die Gedanken die ich habe sind für euch vermutlich total krude, aber ich habe vom Programmieren so viel Ahnung wie eine Kuh vom Eislaufen.

                    Hier wird man aber permanent schlauer….DANKE

                    1 Antwort Letzte Antwort
                    0
                    • M Offline
                      M Offline
                      meikel
                      schrieb am zuletzt editiert von
                      #18

                      Jetzt funktioniert es so wie gewünscht. Vielen Dank an @paul53. Es gab wohl irgendwie noch Stress mit der Variable "value", die wurde nicht ausgewertet oder passte nicht zu dem Block, jedenfalls wurden die Statusänderungen des Fenstersensors nicht vom Skript erkannt. Nachdem ich den kleinen Block entfernt und neu angelegt hatte da fluppte es wie es soll.

                      Daher für alle die das gerne nachbauen wollen:

                      ! <xml 1999/xmlns="<URL url=" http:/www.w3.org/xhtml"="">http://www.w3.org/1999/xhtml">
                      ! <block type="on_ext" id="E;zsSlF|Wq:}1G^F;0q" x="63" y="63"><mutation items="1"></mutation> ! <field name="CONDITION">ne</field> ! <value name="OID0"><shadow type="field_oid" id="(sxO/REdna0^OVt6DeUp"><field name="oid">maxcube.0.devices.contact_0d5c46.opened</field></shadow></value> ! <statement name="STATEMENT"><block type="controls_if" id="+gUM?%8ubybNMqlhjD_*"><mutation else="1"></mutation> ! <value name="IF0"><block type="variables_get" id="3ZAY1A0v)_!p9D(-ZYW-"><field name="VAR">value</field></block></value> ! <statement name="DO0"><block type="control" id="a*0{4@}gVK[9|4OSx0P+"><mutation delay_input="false"></mutation> ! <field name="OID">hm-rpc.0.OEQ0664559.4.MANU_MODE</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="math_number" id="g(u(_F0I6F7:VB1,J*It"><field name="NUM">12</field></block></value></block></statement> ! <statement name="ELSE"><block type="control" id="u);Y.B7MQpHh,#z_TX/,"><mutation delay_input="false"></mutation> ! <field name="OID">hm-rpc.0.OEQ0664559.4.AUTO_MODE</field> ! <field name="WITH_DELAY">FALSE</field> ! <value name="VALUE"><block type="logic_boolean" id="8iM,,OYn-Lvc(HuDAS09"><field name="BOOL">TRUE</field></block></value></block></statement></block></statement> ! <next><block type="on_ext" id="vfMUu2c^cxVBgv4YO%Ie"><mutation items="1"></mutation> ! <field name="CONDITION">ne</field> ! <value name="OID0"><shadow type="field_oid" id="hILF9#alzhQgZ{!X]]F"><field name="oid">hm-rpc.0.OEQ0664559.4.CONTROL_MODE</field></shadow></value>
                      ! <statement name="STATEMENT"><block type="debug" id="o-;;Q|%W2pFWqC~IXEQ@"><field name="Severity">log</field>
                      ! <value name="TEXT"><shadow type="text" id="fs3T.rGHz`HkSR(oL_#z"><field name="TEXT">Modeänderung</field></shadow>
                      ! <block type="text_join" id="kWRnmjATh4TKlM;lkcCN"><mutation items="2"></mutation>
                      ! <value name="ADD0"><block type="text" id="j.s6K?|f!g1cYODN[D|E"><field name="TEXT">HKT Mode:</field></block></value>
                      ! <value name="ADD1"><block type="variables_get" id="s};j7yMuZGuOlcB[rEaD"><field name="VAR">value</field></block></value></block></value></block></statement></block></next></block></xml>

                      4941_bildschirmfoto_2018-01-23_um_13.51.48.png

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


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      508

                      Online

                      32.6k

                      Benutzer

                      82.2k

                      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