Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Skript für Wohnraumlüftung

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Skript für Wohnraumlüftung

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      ami9o last edited by ami9o

      Hallo zusammen,

      nachdem ich meine Wolf CWL-F-300 per Sonoff 4ch pro smart gemacht habe, probiere ich mich nun an einem ersten Skript. Dieses möchte (noch) nicht funktionieren. Zudem tue ich mich schwer, eine Hysterese in Blockly umzusetzen.

      Genug geredet, hier mein erster Skriptversuch:

      563c3b6e-6612-47d7-83c1-88151df92fe2-image.png

      Vielleicht sieht jemand auf Anhieb wo das Problem steckt.

      Vielen Dank vorab für eure Hilfe.


      <xml xmlns="https://developers.google.com/blockly/xml">
      <variables>
      <variable id="#(o,NQ=5-MzE@lgK(56">vorheriger Wert</variable> </variables> <block type="on_ext" id=")fw|#y$xK/8%ks..bJzM" x="131" y="-3"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <field name="CONDITION">any</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="D{xjXdLih|T#{P;{HVa">
      <field name="oid">deconz.0.Sensors.3.humidity</field>
      </shadow>
      </value>
      <value name="OID1">
      <shadow type="field_oid" id="[DKT{#LGO|iqQy[yShu"> <field name="oid">deconz.0.Sensors.19.humidity</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="Q%~7d1*D$1!R_Uj}tpJk"> <mutation else="1"></mutation> <value name="IF0"> <block type="logic_operation" id="KWqvDx::s]vZq!e;87TC" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="l~/w3xw^}0LUT=1H6R;y" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="l6JhQLEdvXcU:OABor(V"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="HoK%bz[N~-GKGsc.}hmD"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.3.humidity</field> </block> </value> <value name="B"> <block type="math_number" id="uE8ptEP$wi]Y)3mU/5!p"> <field name="NUM">75</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="W.g!?CTxAq%u|~d$Dtjb"> <field name="OP">GT</field> <value name="A"> <block type="get_value" id="%5y?H4,-1!%mgHzk$:;z"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.9.humidity</field> </block> </value> <value name="B"> <block type="math_number" id="VfSq/vF7pql|(/7mvlrL"> <field name="NUM">75</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_operation" id="(h=H3L~/CS;mX$f]j3iE" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="IBfbWCPp8_R#@Gw3=]^T"> <field name="OP">LTE</field> <value name="A"> <block type="variables_get" id="#zzyUC%o}C|49q)%p(9">
      <field name="VAR" id="#(o,NQ=5-MzE@lgK(56">vorheriger Wert</field> </block> </value> <value name="B"> <block type="math_number" id="x{|qJ38H#AAhI;!Fj^l$"> <field name="NUM">80</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="#!GpLyo|b|+Ut]c+3Z">
      <field name="OP">LTE</field>
      <value name="A">
      <block type="get_value" id="a4{3k8j
      QpD.8:zv%p=x">
      <field name="ATTR">val</field>
      <field name="OID">deconz.0.Sensors.9.humidity</field>
      </block>
      </value>
      <value name="B">
      <block type="math_number" id="Xb[Zkokr%l8z~7,fXP2"> <field name="NUM">60</field> </block> </value> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="P9hhA(tviw.T+zUR:op">
      <mutation elseif="1"></mutation>
      <value name="IF0">
      <block type="logic_compare" id="=f}DNXhG[pZyq9V4TvKr">
      <field name="OP">LT</field>
      <value name="A">
      <block type="get_value" id="$1s|13N6S;8If-o@IJV~">
      <field name="ATTR">val</field>
      <field name="OID">deconz.0.Sensors.8.temperature</field>
      </block>
      </value>
      <value name="B">
      <block type="math_number" id=".70D/cnS_@E1Ec%KhZ7"> <field name="NUM">30</field> </block> </value> </block> </value> <statement name="DO0"> <block type="comment" id="7T~|krQ$w[4|~3H{,),U"> <field name="COMMENT">Intensivlüftung zur Feuchtereduzierung</field> <next> <block type="control" id="wQ311x-[J0twV5@^:%j_"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">sonoff.0.Lueftungssteuerung.POWER3</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="7V]%r,.1xtn~oXC~c={u"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="debug" id="8O6ZkIzQQFjP8z*UziYj"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="Z[W)-XC;AN#MhMyO:J,">
      <field name="TEXT">Intensivlüftung gestartet</field>
      </shadow>
      </value>
      </block>
      </next>
      </block>
      </next>
      </block>
      </statement>
      <value name="IF1">
      <block type="logic_compare" id="I6b0}^a##b~kyg8=SI!"> <field name="OP">GTE</field> <value name="A"> <block type="get_value" id="11;^@y7NWJJv^kj12r]8"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.8.temperature</field> </block> </value> <value name="B"> <block type="math_number" id="d)2uR|i/{$P;L]8_9lI">
      <field name="NUM">30</field>
      </block>
      </value>
      </block>
      </value>
      <statement name="DO1">
      <block type="comment" id="rR:XR{5zcq-Y}JwP)^Cj">
      <field name="COMMENT">reduzierte Lüftung</field>
      <next>
      <block type="control" id="P%,ew1qUK.SJ{8OcCgx/">
      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
      <field name="OID">sonoff.0.Lueftungssteuerung.POWER1</field>
      <field name="WITH_DELAY">FALSE</field>
      <value name="VALUE">
      <block type="logic_boolean" id="jMdY1x.CB(tk;[sZT(:?">
      <field name="BOOL">FALSE</field>
      </block>
      </value>
      <next>
      <block type="control" id="=|$reaA!76~!{;$@[PDC">
      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
      <field name="OID">sonoff.0.Lueftungssteuerung.POWER2</field>
      <field name="WITH_DELAY">FALSE</field>
      <value name="VALUE">
      <block type="logic_boolean" id=":i?S6xtghj=Be);d/9x{">
      <field name="BOOL">FALSE</field>
      </block>
      </value>
      <next>
      <block type="control" id="gK^7|vZsihdR41ooq%hJ">
      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
      <field name="OID">sonoff.0.Lueftungssteuerung.POWER3</field>
      <field name="WITH_DELAY">FALSE</field>
      <value name="VALUE">
      <block type="logic_boolean" id="V[rbNwB=[VEB6gxA^[T?">
      <field name="BOOL">FALSE</field>
      </block>
      </value>
      <next>
      <block type="debug" id="%RBgMVcQ_|R,L~$8E.G"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="2=}y8bc.O=Qk!=|dzsO~"> <field name="TEXT">Reduzierte Lüftung gestartet</field> </shadow> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> <statement name="ELSE"> <block type="controls_if" id="kGXy,9)6[Wqn9)v(Rh8O"> <value name="IF0"> <block type="logic_operation" id="!A$hht.h5U)hkztylv8*" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_operation" id="/7iR0}Ir:J^E:^3Q_Jg^" inline="false"> <field name="OP">OR</field> <value name="A"> <block type="logic_compare" id="%x%00W^MPcQ_p~4~8*d">
      <field name="OP">LTE</field>
      <value name="A">
      <block type="get_value" id="Fe2xuoln/:Dy9LcTP5N"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.3.humidity</field> </block> </value> <value name="B"> <block type="math_number" id="yElV8=aT!nFFV13jE$X+"> <field name="NUM">75</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="Gfv.H|CWBI,}EM;M/w9m"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="Q3q/ZGMWLzOx]Ln)CSZV"> <field name="ATTR">val</field> <field name="OID">deconz.0.Sensors.9.humidity</field> </block> </value> <value name="B"> <block type="math_number" id="_intM0a:3%%AEfQ!ChLh"> <field name="NUM">75</field> </block> </value> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="tu2f~iin{=]Tcp3WE)fO"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id=":CHB6SC.!h+qdyK.T#y">
      <field name="VAR" id="#(o,NQ=5-MzE@lgK(56">vorheriger Wert</field> </block> </value> <value name="B"> <block type="math_number" id="}cne#MMNNOnXSdDcS_V">
      <field name="NUM">75</field>
      </block>
      </value>
      </block>
      </value>
      </block>
      </value>
      <statement name="DO0">
      <block type="comment" id="-PhigH3~t!cDAN4t02)9">
      <field name="COMMENT">Nennlüftung</field>
      <next>
      <block type="control" id="z)32Ky1]ITXWo`$jjj4Q">
      <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
      <field name="OID">sonoff.0.Lueftungssteuerung.POWER2</field>
      <field name="WITH_DELAY">FALSE</field>
      <value name="VALUE">
      <block type="logic_boolean" id="J)}*6$2oykYck6(S|ljK">
      <field name="BOOL">TRUE</field>
      </block>
      </value>
      <next>
      <block type="debug" id="U^-d#8r3Ry@5Ga]dku=9">
      <field name="Severity">log</field>
      <value name="TEXT">
      <shadow type="text" id="|Wa8-%M)oz%JUCN)c92?">
      <field name="TEXT">Nennlüftung</field>
      </shadow>
      </value>
      </block>
      </next>
      </block>
      </next>
      </block>
      </statement>
      </block>
      </statement>
      </block>
      </statement>
      </block>
      </xml>

      M sigi234 2 Replies Last reply Reply Quote 0
      • M
        MCU @ami9o last edited by

        @ami9o
        Wann wird Feuchteschutz(50m³/Std) auf "WAHR" gesetzt?
        Warum wird auf Änderung von Feuchtesensor HWR abgefragt, aber nicht genutzt?
        Es wird dann noch die Außensensor HWR Feuchtigkeit abgefragt?
        Evtl. erklärst du mal was genau mit dem Script erreichen willst?
        Soweit ich es verstanden habe gibt es 3 Zustände, die man in der Wohnraumlüftung aktiveren kann.
        Feuchteschutz
        Nennlüftung
        Intensivlüftung
        Diese drei Zustände werden mittels Sonoff 4ch angesteuert, richtig?
        Und wenn es geht bitte Dein Script in einen SPOILER hüllen "das Auge". Sonst ist die Anzeige in der INFO immer für alle so lang zu sehen.

        Danke.

        A 1 Reply Last reply Reply Quote 0
        • A
          ami9o @MCU last edited by ami9o

          @MCU said in Skript für Wohnraumlüftung:

          @ami9o
          Wann wird Feuchteschutz(50m³/Std) auf "WAHR" gesetzt?
          Warum wird auf Änderung von Feuchtesensor HWR abgefragt, aber nicht genutzt?
          Es wird dann noch die Außensensor HWR Feuchtigkeit abgefragt?
          Evtl. erklärst du mal was genau mit dem Script erreichen willst?
          Soweit ich es verstanden habe gibt es 3 Zustände, die man in der Wohnraumlüftung aktiveren kann.
          Feuchteschutz
          Nennlüftung
          Intensivlüftung
          Diese drei Zustände werden mittels Sonoff 4ch angesteuert, richtig?
          Und wenn es geht bitte Dein Script in einen SPOILER hüllen "das Auge". Sonst ist die Anzeige in der INFO immer für alle so lang zu sehen.

          Danke.

          Vorab zur Erläuterung: Es gibt neben den Zuständen "Feuchteschutz", "Nennlüftung" und "Intensivlüftung" auch einen weiteren (vierten) Zustand "Reduzierte Lüftung". Dieser Zustand ist wahr, wenn keiner der vorherigen Zustände über den Sonoff gesteuert wird.

          Der Datenpunkt Feuchteschutz wird in diesem Skript nicht auf wahr gesetzt. (Er muss aber - neben Nennlüftung und Intensivlüftung - auf Falsch gesetzt werden, damit Reduzierte Lüftung auf wahr gesetzt werden kann.

          "Warum wird auf Änderung von Feuchtesensor HWR abgefragt, aber nicht genutzt?" OK, da ist schon ein Fehler...
          Es müsste statt Außensensor HWR der Wert von Feuchtesensor HWR erfasst werden.

          Jedoch dürfte das keinen Einfluss haben, wenn der Wert Feuchtesensor Bad über 75 % läge.

          Folgender Gedanke hinter dem Skript:

          Wenn die Luftfeuchte im Bad oder im Hauswirtschaftsraum über 75 % liegt und der vorherige Wert unter 75 % lag und die Außenluftfeuchte unter 60 % liegt, soll die Intensivlüftung erfolgen, sofern die Außentemperatur unter 30 °C liegt.

          Sollte die Außentemperatur über 30 °C liegen, soll eine reduzierte Lüftung - der vierte Zustand - aktiviert werden.

          Wenn die Feuchtewerte der beiden Räume wieder unter 75 % liegen und der vorherige Wert darüber lag, soll die Nennlüftung aktiviert werden.

          Ich hoffe, mich soweit verständlich ausgedrückt zu haben.

          M 1 Reply Last reply Reply Quote 0
          • M
            MCU @ami9o last edited by MCU

            @ami9o
            Also so? :

            d3bcde0b-3bc3-49e1-95e0-b4e33d9f3364-image.png

            Wenn der Feuchteschutz sowieso nicht verändert wird, kann man den natürlich auch einmal beim Start vom Script setzen?

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

              @MCU sagte:

              Also so?

              • Variablen ohne Inhalt (undefined) werden zum Vergleich herangezogen ?
              • vorheriger Wert ist bei Mehrfachtrigger so nicht verwendbar, da nicht klar ist, wer getriggert hat
              • Die Bewertung der rel. Feuchte außen ist für die Entscheidung "Entfeuchten" ungeeignet. Es müssen abs. Feuchte bzw. Taupunkt innen und außen verglichen werden.
              M A 2 Replies Last reply Reply Quote 0
              • sigi234
                sigi234 Forum Testing Most Active @ami9o last edited by

                @ami9o

                Mal was zum lesen:

                https://forum.iobroker.net/topic/2313/skript-absolute-feuchte-berechnen?page=1

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

                  @paul53 Zum Thema vorheriger Wert:
                  Der vorherige Wert wird immer auf den Trigger bezogen!

                  b1215fcb-1679-4cb2-935f-d4150243b501-image.png

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

                    @MCU sagte:

                    Der vorherige Wert wird immer auf den Trigger bezogen!

                    Ja, natürlich auf den Trigger. Wer aber hat getriggert: Bad oder HWR ?

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

                      @paul53 said in Skript für Wohnraumlüftung:

                      @MCU sagte:

                      Also so?

                      • Variablen ohne Inhalt (undefined) werden zum Vergleich herangezogen ?
                      • vorheriger Wert ist bei Mehrfachtrigger so nicht verwendbar, da nicht klar ist, wer getriggert hat
                      • Die Bewertung der rel. Feuchte außen ist für die Entscheidung "Entfeuchten" ungeeignet. Es müssen abs. Feuchte bzw. Taupunkt innen und außen verglichen werden.

                      Das sieht gut aus.
                      *1 Die Fragestellung verstehe ich nicht so ganz
                      *2 wieder etwas gelernt 🙂
                      *3 Wie genau stelle ich diesen Vergleich an?

                      M 1 Reply Last reply Reply Quote 0
                      • M
                        MCU @ami9o last edited by MCU

                        @ami9o Ich hatte ja in dem BLOCKLY nicht Deine Werte mit genutzt, sondern nur die Logik abgebildet.
                        Du musst natürlich deine Werte eintragen anstatt der Variablen!
                        Also nicht Variable "Luftfeuchtigkeit_HWR" sondern "WERT von ObjectID 'Feuchtesensor HWR (Luftfeuchte) humidity" nutzen.
                        Oder Variable setzen "Luftfeuchtigkeit HWR" = "WERT von ObjectID 'Feuchtesensor HWR (Luftfeuchte) humidity".
                        Wollte nicht die ObjectStruktur anlegen. Ging ja erstmal um die Logik.
                        Bei dem unteren hat natürlich der @paul53 Recht. Hier müsste man den "vorherigen" Wert noch genauer abfragen.
                        Aber nur wenn man bei dem "und" der beiden Wert (Luftfeuchtigkeit) bleibt, denn bei "oder" ist es egal.
                        Bezogen auf die rel. Luftfeuchtigkeit solltest du dir nochmal den Link von @sigi234 anschauen.

                        5a8577fb-b532-4c10-89e4-d2ba46c9f1ee-image.png

                        So kann man die vorherigen Werte der einzelnen ObjectID unterscheiden.

                        2ce07661-b63a-46f7-a353-2dab1bc53dce-image.png

                        A 1 Reply Last reply Reply Quote 0
                        • A
                          ami9o @MCU last edited by

                          @MCU; @paul53; @sigi234

                          Vielen Dank für euer Feedback. Werde mich nun intensiver mit der Materie befassen und das Skript entsprechend anpassen.

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

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          836
                          Online

                          31.9k
                          Users

                          80.1k
                          Topics

                          1.3m
                          Posts

                          4
                          11
                          767
                          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