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.
    • G
      gubel4ever last edited by

      Hallo Zusammen,
      ich würde gerne meinen Humidor mit einem kleinen Lüfter betreiben. Was habe ich für Bauteile:

      Ventilator aus einem PC Netzteil 12V
      Shelly 1 eingestellt auf 12V
      Trafo 12V
      Temperatur und Luftfeuchtesensor von MI

      Shelly 1 und Sensor sind schon im IOBROKER und können abgefragt werden.

      Könnt ihr mir mal ein Blockly zeigen was folgendes kann:

      Luftfeuchtigkeit im Humidor messen - ist die Luftfeuchtigkeit unter 68% dann soll er über den Shelly1 den Ventilator einschalten, wenn die Luftfeuchtigkeit 73% erreicht hat, dann Ventilator ausschalten. Fällt die Luftfeuchtigkeit dann wieder unter 68%, dann wieder alles von vorne.

      Da ich einfach nicht genug Zeit habe das selber zu programmieren, wäre eine Unterstützung echt hilfreich.

      paul53 1 Reply Last reply Reply Quote 0
      • 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

                          933
                          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