Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. Blockly - Humidor Luftfeuchtigkeit

    NEWS

    • Monatsrückblick – September 2025

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    Blockly - Humidor Luftfeuchtigkeit

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @gubel4ever last edited by paul53

      @gubel4ever sagte:

      Luftfeuchtigkeit unter 68% dann soll er über den Shelly1 den Ventilator einschalten, wenn die Luftfeuchtigkeit 73% erreicht hat, dann Ventilator ausschalten.

      Blockly_temp.JPG

      <xml xmlns="http://www.w3.org/1999/xhtml">
       <variables>
         <variable type="" id="N;IYl3F7}+)zja)-m;_[">shelly</variable>
       </variables>
       <block type="comment" id="4l$yD5XCn9/zP:`VH=t{" x="63" y="38">
         <field name="COMMENT">% rH</field>
         <next>
           <block type="on_ext" id="$%1Qj^V`(Ac45OkhTe!A">
             <mutation items="1"></mutation>
             <field name="CONDITION">ne</field>
             <field name="ACK_CONDITION"></field>
             <value name="OID0">
               <shadow type="field_oid" id=".~23}*%)ZA~N)1(_~5]f">
                 <field name="oid">default</field>
               </shadow>
             </value>
             <statement name="STATEMENT">
               <block type="controls_if" id="0G{%6MO[eQ~j5gnMNG#m">
                 <mutation elseif="1"></mutation>
                 <value name="IF0">
                   <block type="logic_compare" id="Qe;s%HBZTE26_=TbwFtY">
                     <field name="OP">LT</field>
                     <value name="A">
                       <block type="on_source" id="yZ;vmZqc9Ky0@yUJy|)8">
                         <field name="ATTR">state.val</field>
                       </block>
                     </value>
                     <value name="B">
                       <block type="math_number" id="^aCA%e~X`yF5S/(ayT5O">
                         <field name="NUM">68</field>
                       </block>
                     </value>
                   </block>
                 </value>
                 <statement name="DO0">
                   <block type="variables_set" id="T$Rgq[4q^@wP,xrVn2_!">
                     <field name="VAR" id="N;IYl3F7}+)zja)-m;_[" variabletype="">shelly</field>
                     <value name="VALUE">
                       <block type="logic_boolean" id="cX2Rh]yu.ph@m8`RFL+[">
                         <field name="BOOL">TRUE</field>
                       </block>
                     </value>
                   </block>
                 </statement>
                 <value name="IF1">
                   <block type="logic_compare" id="_jF10U=tVC+vSB}de4!I">
                     <field name="OP">GT</field>
                     <value name="A">
                       <block type="on_source" id="cCjEAO}hoEe7yd+JE.6?">
                         <field name="ATTR">state.val</field>
                       </block>
                     </value>
                     <value name="B">
                       <block type="math_number" id=";[M$|nsY+$h(RZP.FPDL">
                         <field name="NUM">73</field>
                       </block>
                     </value>
                   </block>
                 </value>
                 <statement name="DO1">
                   <block type="variables_set" id="#POjkxI1-I%l,TIx`4j*">
                     <field name="VAR" id="N;IYl3F7}+)zja)-m;_[" variabletype="">shelly</field>
                     <value name="VALUE">
                       <block type="logic_boolean" id="jBiqNmYKRd8(b1-j/5k8">
                         <field name="BOOL">FALSE</field>
                       </block>
                     </value>
                   </block>
                 </statement>
                 <next>
                   <block type="controls_if" id="ue|Zv7.aVr6nT4Q(oeON">
                     <value name="IF0">
                       <block type="logic_compare" id="mEM2*H,QbmE#v8jiE)Nm">
                         <field name="OP">NEQ</field>
                         <value name="A">
                           <block type="variables_get" id="nbW_)Y%O@[W_ogJVm/Fa">
                             <field name="VAR" id="N;IYl3F7}+)zja)-m;_[" variabletype="">shelly</field>
                           </block>
                         </value>
                         <value name="B">
                           <block type="get_value" id="ZKd*Aro!rUdBOmfXNvW/">
                             <field name="ATTR">val</field>
                             <field name="OID">ID auswählen</field>
                           </block>
                         </value>
                       </block>
                     </value>
                     <statement name="DO0">
                       <block type="control" id="6MHsn=rL(TpUB3Zo97]T">
                         <mutation delay_input="false"></mutation>
                         <field name="OID">Object ID</field>
                         <field name="WITH_DELAY">FALSE</field>
                         <value name="VALUE">
                           <block type="variables_get" id="OM4o%oVUzDGv5;wA]k4L">
                             <field name="VAR" id="N;IYl3F7}+)zja)-m;_[" variabletype="">shelly</field>
                           </block>
                         </value>
                       </block>
                     </statement>
                   </block>
                 </next>
               </block>
             </statement>
           </block>
         </next>
       </block>
      </xml>
      

      1 Reply Last reply Reply Quote 0
      • G
        gubel4ever last edited by

        Hallo Paul, wollte das Ding nachbauen. Scheitere schon daran, dass ich den Block falls mache sonst falls mache nicht finde.

        Kann ich den Code nicht einfach kopieren und dann irgendwie einfügen und dann als blockly anlegen lassen.

        Sorry bin halt totaler Anfänger

        paul53 1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @gubel4ever last edited by paul53

          @gubel4ever sagte:

          Kann ich den Code nicht einfach kopieren

          Den XML-Export kannst Du kopieren und in Blockly importieren. Musst dann noch die Datenpunkt-IDs zuweisen.

          1 Reply Last reply Reply Quote 0
          • G
            gubel4ever last edited by

            Bin einen kleinen Schritt weiter. Habe ich das erste schon mal richtig geändert?

            Den unteren Teil verstehe ich nicht 😁

            Bildschirmfoto 2020-05-07 um 23.02.00.png

            laufen tut es so nicht

            paul53 1 Reply Last reply Reply Quote 0
            • G
              gubel4ever last edited by

              Es läuft. 👍 👍 👍 👍 👍

              1 Reply Last reply Reply Quote 0
              • G
                gubel4ever last edited by

                Nur das blockt ist gelb und jede menge rote einträge im log:

                avascript.0 2020-05-07 23:11:13.514 error (17506) at processImmediate (timers.js:658:5)
                javascript.0 2020-05-07 23:11:13.514 error (17506) at tryOnImmediate (timers.js:676:5)
                javascript.0 2020-05-07 23:11:13.514 error (17506) at runCallback (timers.js:705:18)
                javascript.0 2020-05-07 23:11:13.513 error (17506) at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4851:37)
                javascript.0 2020-05-07 23:11:13.513 error (17506) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:364:25)
                javascript.0 2020-05-07 23:11:13.513 error (17506) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:963:38)
                javascript.0 2020-05-07 23:11:13.513 error (17506) at Object.<anonymous> (script.js.Haus.Licht.Humidor:13:79)
                javascript.0 2020-05-07 23:11:13.513 error (17506) Error in callback: TypeError: Cannot read property 'val' of undefined
                javascript.0 2020-05-07 23:11:13.512 error (17506) script.js.Haus.Licht.Humidor: Please disable that setting or use "getState" with a callback, e.g.: getState("mihome.0.devices.sensor_ht_158d0004102651.humidity", (err, state) => { ... });
                javascript.0 2020-05-07 23:11:13.512 error (17506) script.js.Haus.Licht.Humidor: The "getState" method cannot be used synchronously, because the adapter setting "Do not subscribe to all states on start" is enabled.
                javascript.0 2020-05-07 23:10:48.235 error (17506) at processImmediate (timers.js:658:5)
                javascript.0 2020-05-07 23:10:48.234 error (17506) at tryOnImmediate (timers.js:676:5)
                javascript.0 2020-05-07 23:10:48.234 error (17506) at runCallback (timers.js:705:18)
                javascript.0 2020-05-07 23:10:48.234 error (17506) at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4851:37)
                javascript.0 2020-05-07 23:10:48.234 error (17506) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:364:25)
                javascript.0 2020-05-07 23:10:48.234 error (17506) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:963:38)
                javascript.0 2020-05-07 23:10:48.234 error (17506) at Object.<anonymous> (script.js.Haus.Licht.Humidor:13:79)
                javascript.0 2020-05-07 23:10:48.233 error (17506) Error in callback: TypeError: Cannot read property 'val' of undefined
                javascript.0 2020-05-07 23:10:48.233 error (17506) script.js.Haus.Licht.Humidor: Please disable that setting or use "getState" with a callback, e.g.: getState("mihome.0.devices.sensor_ht_158d0004102651.humidity", (err, state) => { ... });
                javascript.0 2020-05-07 23:10:48.232 error (17506) script.js.Haus.Licht.Humidor: The "getState" method cannot be used synchronously, because the adapter setting "Do not subscribe to all states on start" is enabled.
                javascript.0 2020-05-07 23:10:17.703 error (17506) at processImmediate (timers.js:658:5)
                javascript.0 2020-05-07 23:10:17.703 error (17506) at tryOnImmediate (timers.js:676:5)
                javascript.0 2020-05-07 23:10:17.702 error (17506) at runCallback (timers.js:705:18)
                javascript.0 2020-05-07 23:10:17.702 error (17506) at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4851:37)
                javascript.0 2020-05-07 23:10:17.702 error (17506) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:364:25)
                javascript.0 2020-05-07 23:10:17.702 error (17506) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:963:38)
                javascript.0 2020-05-07 23:10:17.702 error (17506) at Object.<anonymous> (script.js.Haus.Licht.Humidor:13:79)
                javascript.0 2020-05-07 23:10:17.702 error (17506) Error in callback: TypeError: Cannot read property 'val' of undefined
                javascript.0 2020-05-07 23:10:17.701 error (17506) script.js.Haus.Licht.Humidor: Please disable that setting or use "getState" with a callback, e.g.: getState("mihome.0.devices.sensor_ht_158d0004102651.humidity", (err, state) => { ... });
                javascript.0 2020-05-07 23:10:17.701 error (17506) script.js.Haus.Licht.Humidor: The "getState" method cannot be used synchronously, because the adapter setting "Do not subscribe to all states on start" is enabled.
                javascript.0 2020-05-07 23:10:12.469 error (17506) at processImmediate (timers.js:658:5)
                javascript.0 2020-05-07 23:10:12.469 error (17506) at tryOnImmediate (timers.js:676:5)
                javascript.0 2020-05-07 23:10:12.469 error (17506) at runCallback (timers.js:705:18)
                javascript.0 2020-05-07 23:10:12.469 error (17506) at Immediate.setImmediate (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:4851:37)
                javascript.0 2020-05-07 23:10:12.469 error (17506) at Object.stateChange (/opt/iobroker/node_modules/iobroker.javascript/main.js:364:25)
                javascript.0 2020-05-07 23:10:12.469 error (17506) at Object.callback (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:963:38)
                javascript.0 2020-05-07 23:10:12.469 error (17506) at Object.<anonymous> (script.js.Haus.Licht.Humidor:13:79)
                javascript.0 2020-05-07 23:10:12.468 error (17506) Error in callback: TypeError: Cannot read property 'val' of undefined
                javascript.0 2020-05-07 23:10:12.468 error (17506) script.js.Haus.Licht.Humidor: Please disable that setting or use "getState" with a callback, e.g.: getState("mihome.0.devices.sensor_ht_158d0004102651.humidity", (err, state) => { ... });
                javascript.0 2020-05-07 23:10:12.468 error (17506) script.js.Haus.Licht.Humidor: The "getState" method cannot be used synchronously, because the adapter setting "Do not subscribe to all states on start" is enabled.

                Thomas Braun 1 Reply Last reply Reply Quote 0
                • Thomas Braun
                  Thomas Braun Most Active last edited by

                  @paul53
                  Kannst du den unteren Block mit dem != erklären? Ich versteh nicht was damit abgefangen wird. Den Fall, das der Wert leer ist?

                  paul53 1 Reply Last reply Reply Quote 0
                  • Thomas Braun
                    Thomas Braun Most Active @gubel4ever last edited by

                    @gubel4ever said in Blockly - Humidor Luftfeuchtigkeit:

                    The "getState" method cannot be used synchronously, because the adapter setting "Do not subscribe to all states on start" is enabled.

                    Im JS-Adapter das mal ausstellen.

                    1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @Thomas Braun last edited by

                      @Thomas-Braun sagte:

                      Kannst du den unteren Block mit dem != erklären?

                      Damit soll unnötiges Senden (Störung anderer Funkkomponenten) verhindert werden.

                      1 Reply Last reply Reply Quote 0
                      • paul53
                        paul53 @gubel4ever last edited by paul53

                        @gubel4ever sagte:

                        Habe ich das erste schon mal richtig geändert?

                        Nein. Es wird genau deshalb erst eine Variable gesetzt und diese mit dem Ist-Zustand des Aktors verglichen, damit nicht unnötig gesendet wird (Störpegel). In beiden Blöcken unten muss die ID des Aktor-Datenpunktes zugewiesen werden.

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        926
                        Online

                        32.2k
                        Users

                        80.8k
                        Topics

                        1.3m
                        Posts

                        3
                        11
                        828
                        Loading More Posts
                        • Oldest to Newest
                        • Newest to Oldest
                        • Most Votes
                        Reply
                        • Reply as topic
                        Log in to reply
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                        The ioBroker Community 2014-2023
                        logo