Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Intelliegenter Badezimmer-Lüfter

    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

    Intelliegenter Badezimmer-Lüfter

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

      Hallo liebe Community,

      ich erweitere mittlerweile ständig mein Smart Home und diesmal möchte ich das Klima im Badezimmer verbessern. Fenster ist leider keines vorhanden deswegen muss ein Lüfter dafür sorgen dass die feuchte Luft abtransportiert wird.

      Ich habe eine Aqara Temperatur- und Feuchtigkeitssensor.

      Wenn die Feuchtigkeit über 60% steigt dann soll die Lüftung für 10min (in meinen Skript 10s fürs Testen) aktiviert werden. Wenn die Feuchtigkeit danach immer noch über 60% beträgt dann soll die Lüftung für weitere 10min aktiv sein. Das soll so lange laufen bis die Feuchtigkeit unter 60% fällt.

      Wenn die Lüftung jedoch bereits vorher läuft, dann soll dieses Skript nicht aktiviert werden.

      Ich nehem an man arbeitet in diesem Fall mit Variablen nur leider stehe ich ein bisschen an.

      LG

      Das ist mein derzeit erstelltes Skript.

      Lüftung.png

      <xml xmlns="http://www.w3.org/1999/xhtml">
        <variables>
          <variable type="undefined" id="timeout">timeout</variable>
        </variables>
        <block type="on_ext" id="a3r3_!N#*$/9TCFkKNX[" x="88" y="-187">
          <mutation items="1"></mutation>
          <field name="CONDITION">ne</field>
          <field name="ACK_CONDITION"></field>
          <value name="OID0">
            <shadow type="field_oid" id="HQ;okbu$SI;|n;Dkk1S6">
              <field name="oid">deconz.0.Sensors.4.humidity</field>
            </shadow>
          </value>
          <statement name="STATEMENT">
            <block type="controls_if" id="e{F%Pg/.X.Rn;t[KE_!@">
              <value name="IF0">
                <block type="logic_operation" id="5E3wav(lgtg(9=XLX^eW" inline="false">
                  <field name="OP">AND</field>
                  <value name="A">
                    <block type="logic_compare" id="98bAjIc~og[$6lZv0Oq7">
                      <field name="OP">GT</field>
                      <value name="A">
                        <block type="get_value" id="a`R5#[5gNHnDZau%nx~]">
                          <field name="ATTR">val</field>
                          <field name="OID">deconz.0.Sensors.4.humidity</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="math_number" id="0I8CZmyI#Lpgf?#.ML(l">
                          <field name="NUM">60</field>
                        </block>
                      </value>
                    </block>
                  </value>
                  <value name="B">
                    <block type="logic_compare" id="5-l.dSX,iJn7rlkxY5~@">
                      <field name="OP">EQ</field>
                      <value name="A">
                        <block type="get_value" id="]EXDXZLE_nupQDL=9UD!">
                          <field name="ATTR">val</field>
                          <field name="OID">sonoff.0.SH_Dachboden_Wohnraumlueftumg.POWER</field>
                        </block>
                      </value>
                      <value name="B">
                        <block type="logic_boolean" id="hAEfk}$pYCZ03ykkB%)u">
                          <field name="BOOL">FALSE</field>
                        </block>
                      </value>
                    </block>
                  </value>
                </block>
              </value>
              <statement name="DO0">
                <block type="control" id="Tb1m79?4)}=VDR[vRw-;">
                  <mutation delay_input="false"></mutation>
                  <field name="OID">sonoff.0.SH_Dachboden_Wohnraumlueftumg.POWER</field>
                  <field name="WITH_DELAY">FALSE</field>
                  <value name="VALUE">
                    <block type="logic_boolean" id="]/D4vbwt?)ZT$^RRs$t8">
                      <field name="BOOL">TRUE</field>
                    </block>
                  </value>
                  <next>
                    <block type="timeouts_settimeout" id="P,3P)V4JUV.x1UB.6FL{">
                      <field name="NAME">timeout</field>
                      <field name="DELAY">10</field>
                      <field name="UNIT">sec</field>
                      <statement name="STATEMENT">
                        <block type="controls_if" id="DenH/.VC+x?@,T~S~$W~">
                          <value name="IF0">
                            <block type="logic_operation" id="+ti;rez)!M3lcy4m9fZs" inline="false">
                              <field name="OP">AND</field>
                              <value name="A">
                                <block type="logic_compare" id="Q8d1ND=qLNT@XzM?DFq`">
                                  <field name="OP">LT</field>
                                  <value name="A">
                                    <block type="get_value" id="EOMn,OB)[R6_TTB,JXn$">
                                      <field name="ATTR">val</field>
                                      <field name="OID">deconz.0.Sensors.4.humidity</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="math_number" id="RY0llEkkBD=%sfc3GZGv">
                                      <field name="NUM">60</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                              <value name="B">
                                <block type="logic_compare" id="1udT4.q?6b`8=1EO!nm1">
                                  <field name="OP">EQ</field>
                                  <value name="A">
                                    <block type="get_value" id="3Us|JG/fR|syg~gM}8nU">
                                      <field name="ATTR">val</field>
                                      <field name="OID">sonoff.0.SH_Dachboden_Wohnraumlueftumg.POWER</field>
                                    </block>
                                  </value>
                                  <value name="B">
                                    <block type="logic_boolean" id="n%281v#~@;ug{P!`y:F6">
                                      <field name="BOOL">TRUE</field>
                                    </block>
                                  </value>
                                </block>
                              </value>
                            </block>
                          </value>
                          <statement name="DO0">
                            <block type="control" id="xP/jLW)NSY[ReUwJadXi">
                              <mutation delay_input="false"></mutation>
                              <field name="OID">sonoff.0.SH_Dachboden_Wohnraumlueftumg.POWER</field>
                              <field name="WITH_DELAY">FALSE</field>
                              <value name="VALUE">
                                <block type="logic_boolean" id="ezS%/@xR^|O}PQ:]$o1+">
                                  <field name="BOOL">FALSE</field>
                                </block>
                              </value>
                            </block>
                          </statement>
                        </block>
                      </statement>
                    </block>
                  </next>
                </block>
              </statement>
            </block>
          </statement>
        </block>
      </xml>
      
      BBTown 1 Reply Last reply Reply Quote 0
      • BBTown
        BBTown @Sepp55464 last edited by

        @Sepp55464
        Wie wäre es mit diesem Vorschlag?
        fac7551b-394e-43e2-941a-1b7824cda861-grafik.png

        <xml xmlns="http://www.w3.org/1999/xhtml">
         <block type="on_ext" id="a-|lV$yn-SI/35=l*|dr" x="88" y="38">
           <mutation items="1"></mutation>
           <field name="CONDITION">ne</field>
           <field name="ACK_CONDITION"></field>
           <value name="OID0">
             <shadow type="field_oid" id="AN:D7IIxiS]/$z6Wqmz)">
               <field name="oid">Test.0.Feuchtigkeitssensor</field>
             </shadow>
           </value>
           <statement name="STATEMENT">
             <block type="controls_if" id=".$loA._Mua%0XL#x7lWd">
               <mutation elseif="1"></mutation>
               <value name="IF0">
                 <block type="logic_operation" id="vPkU5m[bU_SK[eu;Rnxl" inline="false">
                   <field name="OP">AND</field>
                   <value name="A">
                     <block type="logic_compare" id="H{;/Dyjyv2xKzhU{DyaX">
                       <field name="OP">GT</field>
                       <value name="A">
                         <block type="get_value" id="fdJoL3UH6I%^+,!eF!+.">
                           <field name="ATTR">val</field>
                           <field name="OID">Test.0.Feuchtigkeitssensor</field>
                         </block>
                       </value>
                       <value name="B">
                         <block type="math_number" id="w:I)8d9?aNY!-@1dni6H">
                           <field name="NUM">60</field>
                         </block>
                       </value>
                     </block>
                   </value>
                   <value name="B">
                     <block type="logic_compare" id="yG1X5/zB~kgrE)X0GwOk">
                       <field name="OP">LTE</field>
                       <value name="A">
                         <block type="on_source" id="PC~n4oAVh?q$cUgW^r6C">
                           <field name="ATTR">oldState.val</field>
                         </block>
                       </value>
                       <value name="B">
                         <block type="math_number" id="tzHrN:RO2%uOhgyh8fQY">
                           <field name="NUM">60</field>
                         </block>
                       </value>
                     </block>
                   </value>
                 </block>
               </value>
               <statement name="DO0">
                 <block type="control" id="$8rx/k9HpQ#BIgp@=!uU">
                   <mutation delay_input="false"></mutation>
                   <field name="OID">Test.0.Abluft</field>
                   <field name="WITH_DELAY">FALSE</field>
                   <value name="VALUE">
                     <block type="logic_boolean" id="%h-m1F7q;2?zNAnf]_(_">
                       <field name="BOOL">TRUE</field>
                     </block>
                   </value>
                 </block>
               </statement>
               <value name="IF1">
                 <block type="logic_operation" id="pmjM|x.iSgDvEEujmSX+" inline="false">
                   <field name="OP">AND</field>
                   <value name="A">
                     <block type="logic_compare" id="X$F-79eJ!N-QWT:]Fgd_">
                       <field name="OP">LTE</field>
                       <value name="A">
                         <block type="get_value" id="[)[Boq5kaAv?)X*-{mvV">
                           <field name="ATTR">val</field>
                           <field name="OID">Test.0.Feuchtigkeitssensor</field>
                         </block>
                       </value>
                       <value name="B">
                         <block type="math_number" id="EMXdW24o~!/R=W=JfOde">
                           <field name="NUM">60</field>
                         </block>
                       </value>
                     </block>
                   </value>
                   <value name="B">
                     <block type="logic_compare" id=";u+_AfrEE`%7^.tJPq(e">
                       <field name="OP">GT</field>
                       <value name="A">
                         <block type="on_source" id="|%DA[$nVx54,AQo]-eU^">
                           <field name="ATTR">oldState.val</field>
                         </block>
                       </value>
                       <value name="B">
                         <block type="math_number" id="c+}o?R4(b]Ci(J({d=ym">
                           <field name="NUM">60</field>
                         </block>
                       </value>
                     </block>
                   </value>
                 </block>
               </value>
               <statement name="DO1">
                 <block type="control" id="KpoKoS+BUCenALUKbg*U">
                   <mutation delay_input="false"></mutation>
                   <field name="OID">Test.0.Abluft</field>
                   <field name="WITH_DELAY">FALSE</field>
                   <value name="VALUE">
                     <block type="logic_boolean" id="4pmLHFBnJPj4|F~HPtp2">
                       <field name="BOOL">FALSE</field>
                     </block>
                   </value>
                 </block>
               </statement>
             </block>
           </statement>
         </block>
        </xml>
        

        paul53 Homoran 2 Replies Last reply Reply Quote 0
        • paul53
          paul53 @BBTown last edited by

          @BBTown sagte:

          Wie wäre es mit diesem Vorschlag?

          Ohne Hysterese ?

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

            @paul53
            immer diese Details 😎

            1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators @BBTown last edited by

              @BBTown und nicht mit absoluter Feuchte 😂

              1 Reply Last reply Reply Quote 0
              • DAN78
                DAN78 last edited by DAN78

                @Sepp55464 Hallo,

                du kannst auch meine Skripte mal anschauen. Habe versucht einen Smarten Raumregler für Lüftung, Heizung und Entfeuchtung zu erstellen. Anbei ein Auszug von Part Lüftung.

                1. Skript Sollwert: Du kannst deine Vorgaben eingeben

                Sollwert.jpg

                2 Skript Witterung

                Witterung.jpg

                3 Skript Kalendertag: Wird benötigt für die Zeitschaltuhr (Werktag, Wochenende, Feiertage)

                Kalendertag.jpg

                4 Skript Lüftung: Schaltet nach Bewertung der Innen- und Außen- Temperatur, Feuchtigkeit, Taupunkt

                Lüftung.jpg

                Das Skript arbeitet so:
                Je nach dem wie die vohergesehene Temperaturentwicklung ausschaut wird in heiz oder Kühlbetrieb gearbeitet.
                Im winter wenns kalt bzw. im Sommer wenns warm ist wird zur besten Tageszeit gelüftet. Oder falls die Außenbedingungen es sinnvoll machen natürlich jederzeit
                Für die Feuchtigkeit wird als Ziel (mit meinen Einstellungen) auf 50% hingearbeitet. Falls es von den Außentemperatur her sinnvoll. Ist das nicht der Fall erhöht sich je nach Situazion der Sollwert bis hin auf RH max. (in meine Einstellungen 60%)

                Die Sinnhaftigkeit fürs Lüften zum Ent- und Be feuchten wird auch anhand des Taupunkts im Raum und Draussen bewertet.

                Du Musst die Datenpunkte für dein Zuhause anpassen. Diese sind in den Trigger zu finden. Bzw. Datenpunkte die allgemein in Verwendung sind, habe ich in den Funktionen direkt gepakt um die Skripte so schlank als möglich zu halten.
                Zusätzlich ist der Adapter "daswetter" für die Temperaturvorschau nötig.
                Die wenig nötigen Datenpunkte werden jeweil in Ordner, die sich so wie die Skripte nennen erstellt. So kannst du ohne langes Suchen Diese wieder Löschen. Die Zahl vor den Datenpunkte hat folgende Logik.

                1. Ziffer: Ist das Gewerk
                  (0=betrifft keines; 1=Brauchwasser; 2=Lüftung; 3=Heizung; 4=Kühlung; 5=Befeuchten; 6 =Entfeuchten; 7= Rollo; 8= Licht; 9= Geräte/Fahrzeuge
                2. Ziffer: Der Raum
                3. Ziffer: Index Gerät (Falls es mehrere in den Raum gibt)
                4. Ziffer: Nummer vom Parameter

                Skripte.zip

                der Länge wegen, war es nicht möglich diese 4 Skripte als Spoiler zu teilen

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

                Support us

                ioBroker
                Community Adapters
                Donate

                894
                Online

                31.9k
                Users

                80.1k
                Topics

                1.3m
                Posts

                5
                6
                1152
                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