Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Durchgehend offenstehende Tür + Nachricht

    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

    Durchgehend offenstehende Tür + Nachricht

    This topic has been deleted. Only users with topic management privileges can see it.
    • M
      Markus84 @Guest last edited by

      @Paul-OL Am einfachsten ist es, wenn du anstatt des timeous ein interval nimmst. Dann wird alle 2 Minuten geprüft, ob die Tür noch offen ist. In deine erste falls/mache Schleife musst du dann nur noch einbauen, dass das interval abgebrochen wird, wenn das Fenster bzw. die Tür wieder geschlossen wird.

      1 Reply Last reply Reply Quote 0
      • ?
        A Former User last edited by

        Hallo Markus, danke für deine Tipps.

        Ist das oben gut gelöst mit Falls Objekt "wurde geändert"? Ich hab es auch mir "ist wahr" und "wurde aktualisiert" versucht. Alles funktioniert gleich gut.

        Stimmt, das mit dem Intervall sehe ich jetzt auch deutlicher.

        Was ich mich jetzt noch frage ist, warum erhalte ich die Meldung immer zwei mal bei Telegram. Auch ein debug output schreibt es zwei mal rein.Bildschirmfoto 2020-05-29 um 02.57.04.png

        paul53 M dslraser 3 Replies Last reply Reply Quote 0
        • paul53
          paul53 @Guest last edited by paul53

          @Paul-OL sagte:

          warum erhalte ich die Meldung immer zwei mal bei Telegram.

          Weil mehr als nur ein Intervall läuft, denn Du hast stop Intervall beim Schließen der Tür vergessen.

          1 Reply Last reply Reply Quote 0
          • M
            Markus84 @Guest last edited by

            @Paul-OL said in Durchgehend offenstehende Tür + Nachricht:

            Ist das oben gut gelöst mit Falls Objekt "wurde geändert"?

            Ja, denn du willst beim Schließen des Fenster das interval abbrechen.

            D4vE 1 Reply Last reply Reply Quote 0
            • dslraser
              dslraser Forum Testing Most Active @Guest last edited by dslraser

              @Paul-OL

              Vorschlag

              Bildschirmfoto 2020-05-29 um 14.14.11.png

              <xml xmlns="https://developers.google.com/blockly/xml">
               <variables>
                 <variable id="P!5;J?(GbcTTf.V@ep8P">intervall_dauer</variable>
                 <variable id="Ag@opP3u?Tmz4Q;ls4*B">minute</variable>
                 <variable id="?Xk;]eNIJp=F]o#z//X_">zaehler</variable>
                 <variable type="interval" id="Fenster">Fenster</variable>
               </variables>
               <block type="comment" id="6esKRv5*7lGyI|Vae9/U" x="-12" y="1238">
                 <field name="COMMENT">60000 = 1 Minute</field>
                 <next>
                   <block type="variables_set" id="tmVlBezs89-J7#6GrI,u">
                     <field name="VAR" id="P!5;J?(GbcTTf.V@ep8P">intervall_dauer</field>
                     <value name="VALUE">
                       <block type="math_arithmetic" id="y3:tj|oZ7D}r;ijPkEIj">
                         <field name="OP">MULTIPLY</field>
                         <value name="A">
                           <shadow type="math_number" id="EnFtjd,:WI_!Tq=phH9A">
                             <field name="NUM">1</field>
                           </shadow>
                           <block type="math_number" id="t@$Rrt8{n+B!1y7su}[5">
                             <field name="NUM">60000</field>
                           </block>
                         </value>
                         <value name="B">
                           <shadow type="math_number" id="JAyxxG}6cOL@k^j--48X">
                             <field name="NUM">2</field>
                           </shadow>
                         </value>
                       </block>
                     </value>
                     <next>
                       <block type="variables_set" id="A3DJ+t]poyn{-{QWwX|d">
                         <field name="VAR" id="Ag@opP3u?Tmz4Q;ls4*B">minute</field>
                         <value name="VALUE">
                           <block type="math_number" id="AG~{3whuTGZ}jjwA4V-Q">
                             <field name="NUM">60000</field>
                           </block>
                         </value>
                         <next>
                           <block type="variables_set" id="hCxlVXP-xf@x}O7tcM)?">
                             <field name="VAR" id="?Xk;]eNIJp=F]o#z//X_">zaehler</field>
                             <value name="VALUE">
                               <block type="math_number" id="1J@4lY0T.(Ne2]=(KP{3">
                                 <field name="NUM">0</field>
                               </block>
                             </value>
                             <next>
                               <block type="on_ext" id="g@SDiyxr,4+?}Gr*3/#M">
                                 <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                 <field name="CONDITION">ne</field>
                                 <field name="ACK_CONDITION"></field>
                                 <value name="OID0">
                                   <shadow type="field_oid" id="zW1m0qyRn?{.@5%@pVak">
                                     <field name="oid">hm-rpc.0.0000D709956847.1.STATE</field>
                                   </shadow>
                                 </value>
                                 <statement name="STATEMENT">
                                   <block type="controls_if" id="S%,5qiJYrE#DJSLMIKwM">
                                     <value name="IF0">
                                       <block type="on_source" id="B|!vuql4oXcm=gG5;A;=">
                                         <field name="ATTR">state.val</field>
                                       </block>
                                     </value>
                                     <statement name="DO0">
                                       <block type="variables_set" id="Aw~S/0H.|w`a~/j*Pt)w">
                                         <field name="VAR" id="?Xk;]eNIJp=F]o#z//X_">zaehler</field>
                                         <value name="VALUE">
                                           <block type="math_number" id="xjF7TTt)K09}hzGI~:XL">
                                             <field name="NUM">0</field>
                                           </block>
                                         </value>
                                         <next>
                                           <block type="timeouts_clearinterval" id="mlog;TCL$_ewDgYJI!JP">
                                             <field name="NAME">Fenster</field>
                                             <next>
                                               <block type="timeouts_setinterval" id=",]#nBMI|(,.z)r}+x;No">
                                                 <field name="NAME">Fenster</field>
                                                 <field name="INTERVAL">intervall_dauer</field>
                                                 <field name="UNIT">ms</field>
                                                 <statement name="STATEMENT">
                                                   <block type="math_change" id="wf[L0455(b0PYeTBZ2pa">
                                                     <field name="VAR" id="?Xk;]eNIJp=F]o#z//X_">zaehler</field>
                                                     <value name="DELTA">
                                                       <shadow type="math_number" id=".2(w$uk3}N?I,8y(RV;]">
                                                         <field name="NUM">1</field>
                                                       </shadow>
                                                     </value>
                                                     <next>
                                                       <block type="telegram" id="i8L7ocnITsG.GIA28HcT">
                                                         <field name="INSTANCE"></field>
                                                         <field name="LOG"></field>
                                                         <field name="SILENT">FALSE</field>
                                                         <field name="PARSEMODE">Markdown</field>
                                                         <value name="MESSAGE">
                                                           <shadow type="text" id="9|Jwn.-%Ror[C?f=~qH8">
                                                             <field name="TEXT">text</field>
                                                           </shadow>
                                                           <block type="text_join" id="yig5gi3D=Q_NPge~J5[8" inline="false">
                                                             <mutation items="7"></mutation>
                                                             <value name="ADD0">
                                                               <block type="text" id="iUY$a;.]VZB!By{+guvh">
                                                                 <field name="TEXT">Die Terassentür ist seit</field>
                                                               </block>
                                                             </value>
                                                             <value name="ADD1">
                                                               <block type="text" id="8*XLt$Yqb)b82mr#f0OW">
                                                                 <field name="TEXT"> </field>
                                                               </block>
                                                             </value>
                                                             <value name="ADD2">
                                                               <block type="math_arithmetic" id="|EZdm6MS6@6lxQ+e%_vD" inline="false">
                                                                 <field name="OP">DIVIDE</field>
                                                                 <value name="A">
                                                                   <shadow type="math_number" id="O5Ui:|*kw}U}zohk8X0U">
                                                                     <field name="NUM">1</field>
                                                                   </shadow>
                                                                   <block type="math_arithmetic" id="fL41Udeo|0Vms2kEfv8r" inline="false">
                                                                     <field name="OP">MULTIPLY</field>
                                                                     <value name="A">
                                                                       <shadow type="math_number" id=";?N/Mi!L^C5l)gD]09vD">
                                                                         <field name="NUM">1</field>
                                                                       </shadow>
                                                                       <block type="variables_get" id="Kd:*zXJS!W`Wru?2o31{">
                                                                         <field name="VAR" id="?Xk;]eNIJp=F]o#z//X_">zaehler</field>
                                                                       </block>
                                                                     </value>
                                                                     <value name="B">
                                                                       <shadow type="math_number" id="{2o@Az:ob;LXRv3vnv$D">
                                                                         <field name="NUM">1</field>
                                                                       </shadow>
                                                                       <block type="variables_get" id="ax8E,K0e%C:ZojzwfKqs">
                                                                         <field name="VAR" id="P!5;J?(GbcTTf.V@ep8P">intervall_dauer</field>
                                                                       </block>
                                                                     </value>
                                                                   </block>
                                                                 </value>
                                                                 <value name="B">
                                                                   <shadow type="math_number" id="b:(}aJ(|lE_W_vA|)xDN">
                                                                     <field name="NUM">0</field>
                                                                   </shadow>
                                                                   <block type="variables_get" id="ORklIWpv2-iaaTD^)_jB">
                                                                     <field name="VAR" id="Ag@opP3u?Tmz4Q;ls4*B">minute</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <value name="ADD3">
                                                               <block type="text" id="4S=+1^{z^kgCcE`H0Pr]">
                                                                 <field name="TEXT"> </field>
                                                               </block>
                                                             </value>
                                                             <value name="ADD4">
                                                               <block type="text" id="nyABgXm^Q):H-KYpNcYT">
                                                                 <field name="TEXT">Minuten geöffnet ☝️</field>
                                                               </block>
                                                             </value>
                                                             <value name="ADD5">
                                                               <block type="text_newline" id="G4OJ`CgUZTZ(F=|ZZs#2">
                                                                 <field name="Type">\n</field>
                                                               </block>
                                                             </value>
                                                             <value name="ADD6">
                                                               <block type="text" id="oVs8e!ic,R!gif7Vd8:.">
                                                                 <field name="TEXT">Bitte schließen ❗️</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <value name="USERNAME">
                                                           <block type="text" id="]r{^1:1%6h`lm}xc~dH|">
                                                             <field name="TEXT">Heiko</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </statement>
                                               </block>
                                             </next>
                                           </block>
                                         </next>
                                       </block>
                                     </statement>
                                     <next>
                                       <block type="controls_if" id="u3P(4~w*2-x7qgQy.y{h">
                                         <value name="IF0">
                                           <block type="logic_operation" id="}j0}r~A]ZNq@[XWFY|0o" inline="false">
                                             <field name="OP">AND</field>
                                             <value name="A">
                                               <block type="logic_negate" id=".?0T85dHbCRKpaX~faon">
                                                 <value name="BOOL">
                                                   <block type="on_source" id="3%CDY4DJE1nEi)Q.uGd#">
                                                     <field name="ATTR">state.val</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <value name="B">
                                               <block type="logic_compare" id="rU(l{6ANj^HN/ZxVKnk8">
                                                 <field name="OP">GT</field>
                                                 <value name="A">
                                                   <block type="variables_get" id="d~:1r}FW3h6Ql(|{+!,8">
                                                     <field name="VAR" id="?Xk;]eNIJp=F]o#z//X_">zaehler</field>
                                                   </block>
                                                 </value>
                                                 <value name="B">
                                                   <block type="math_number" id="#HEeC/rSHvB.9:R`]X90">
                                                     <field name="NUM">0</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <statement name="DO0">
                                           <block type="telegram" id="3]}Y/gV;T=4XjBJQ7pY.">
                                             <field name="INSTANCE"></field>
                                             <field name="LOG"></field>
                                             <field name="SILENT">FALSE</field>
                                             <field name="PARSEMODE">default</field>
                                             <value name="MESSAGE">
                                               <shadow type="text" id="fTxD,jLE+5H;dlVt+#_T">
                                                 <field name="TEXT"></field>
                                               </shadow>
                                               <block type="text" id="b@rQ24[qQ!OJz=M$+JXI">
                                                 <field name="TEXT">Danke das Du die Terassentür geschlossen hast 👍</field>
                                               </block>
                                             </value>
                                             <value name="USERNAME">
                                               <block type="text" id="B#JOq;2Py6o]WXQ*-~8V">
                                                 <field name="TEXT">Heiko</field>
                                               </block>
                                             </value>
                                           </block>
                                         </statement>
                                       </block>
                                     </next>
                                   </block>
                                 </statement>
                               </block>
                             </next>
                           </block>
                         </next>
                       </block>
                     </next>
                   </block>
                 </next>
               </block>
              </xml>
              

              Ergebnis

              Screenshot_20200529-141058_Telegram.jpg

              1 Reply Last reply Reply Quote 0
              • ?
                A Former User last edited by

                Ich habe folgende Version:

                Bildschirmfoto 2020-06-05 um 00.28.52.png

                Sobald eine Tür auf geht, bekomme ich bis zur unendlichkeit Meldungen.
                Das hört nicht auf. Wo ist mein Denkfehler?

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

                  @Paul-OL sagte:

                  Wo ist mein Denkfehler?

                  Es laufen mehrere Timeouts und Intervalle parallel, da beide Türen triggern. Beispiel: Wenn Türkontakt 3 offen meldet und Türkontakt 1 triggert, wird jedesmal für Türkontakt 3 ein neues Timeout und Intervall gestartet.
                  Verwende für jede Tür einen eigenen Trigger und triggere auf "wurde geändert".

                  1 Reply Last reply Reply Quote 0
                  • ?
                    A Former User last edited by

                    Du hast recht, nun funktioniert es.

                    Ich wundere mich, denn ich wollte alle Türen in einem Script zusammenfassen. Und genau deswegen habe ich immer vorher gefragt, ob die Tür aufsteht. Naja ging nicht. Jetzt wo es einzeln ist, geht es wieder.

                    Danke.

                    Hier die funktionierende Lösung:
                    Bildschirmfoto 2020-06-05 um 22.40.15.png

                    Schade, dass es keine Bibliothek oder Verzeichnis mit funktionierenden Lösungen gibt. Beim Programmieren gibt es ja "Entwurfsmuster" design patterns etc. Jeder der neu dabei ist, wird immer wieder Probleme haben und die selben Fehler machen. Mal schauen, was die Zukunft bringt. 😃

                    1 Reply Last reply Reply Quote 1
                    • Cinimod
                      Cinimod Most Active last edited by Cinimod

                      Ich würde auf "geändert" triggern, und als erstes den timeout und interval stoppen.

                      Bildschirmfoto 2020-06-08 um 18.42.04.png

                      jedesmal wenn getriggert (Tür sich öffnet oder schließt) wird, wird der Intervall gestoppt
                      -> falls Tür offen ist startet er den interval neu, ist die wert von tür nicht wahr, macht er nix mehr und der Intervall ist gestoppt.

                      man kann natürlich dann noch einmal nen telegramm schicken wenn tür wieder zu ist

                      Bildschirmfoto 2020-06-08 um 18.50.14.png

                      dslraser paul53 2 Replies Last reply Reply Quote 1
                      • dslraser
                        dslraser Forum Testing Most Active @Cinimod last edited by

                        @Dom-Sch

                        so ähnlich war auch mein Vorschlag...

                        https://forum.iobroker.net/post/441125

                        Cinimod 1 Reply Last reply Reply Quote 0
                        • Cinimod
                          Cinimod Most Active @dslraser last edited by

                          @dslraser said in Durchgehend offenstehende Tür + Nachricht:

                          @Dom-Sch

                          so ähnlich war auch mein Vorschlag...

                          https://forum.iobroker.net/post/441125

                          ja etwas umfangreicher 🙂

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

                            @Dom-Sch sagte:

                            jedesmal wenn getriggert (Tür sich öffnet oder schließt) wird, wird der Intervall gestoppt

                            Das Intervall, das beim Tür schließen gestoppt wurde, wird beim Tür öffnen nochmal gestoppt.

                            @dslraser sagte in Durchgehend offenstehende Tür + Nachricht:

                            so ähnlich war auch mein Vorschlag...

                            Aber nur so ähnlich: Das Intervall wird erst beim erneuten Tür öffnen gestoppt.

                            Cinimod dslraser 2 Replies Last reply Reply Quote 0
                            • Cinimod
                              Cinimod Most Active @paul53 last edited by

                              @paul53 said in Durchgehend offenstehende Tür + Nachricht:

                              @Dom-Sch sagte:

                              jedesmal wenn getriggert (Tür sich öffnet oder schließt) wird, wird der Intervall gestoppt

                              Das Intervall, das beim Tür schließen gestoppt wurde, wird beim Tür öffnen nochmal gestoppt.

                              @dslraser sagte in Durchgehend offenstehende Tür + Nachricht:

                              so ähnlich war auch mein Vorschlag...

                              Aber nur so ähnlich: Das Intervall wird erst beim erneuten Tür öffnen gestoppt.

                              ja sicher, wenn zustand sich öndert löcht er alten interval, aber wenn tür offen startet der interval doch erneut ... sonst wirst du zugeschmissen mit nachrichten ... hast nachher 5 mal den interval am laufen 🙂

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

                                @Dom-Sch sagte:

                                wenn tür offen startet der interval doch erneut

                                Ja, das funktioniert so auch. Das Stoppen des Intervalls nur beim Schließen der Tür genügt aber.

                                Cinimod 1 Reply Last reply Reply Quote 0
                                • Cinimod
                                  Cinimod Most Active @paul53 last edited by Cinimod

                                  @paul53 said in Durchgehend offenstehende Tür + Nachricht:

                                  @Dom-Sch sagte:

                                  wenn tür offen startet der interval doch erneut

                                  Ja, das funktioniert so auch. Das Stoppen des Intervalls nur beim Schließen der Tür genügt aber.

                                  ja wohl wahr ... reicht auch aus ... ich mache es immer so ... laufendes zeug als erstes löschen 😳

                                  dann so :

                                  Bildschirmfoto 2020-06-08 um 19.03.45.png

                                  1 Reply Last reply Reply Quote 0
                                  • dslraser
                                    dslraser Forum Testing Most Active @paul53 last edited by

                                    @paul53 sagte in Durchgehend offenstehende Tür + Nachricht:

                                    Aber nur so ähnlich: Das Intervall wird erst beim erneuten Tür öffnen gestoppt.

                                    stimmt, hast recht. (wie immer😀)

                                    1 Reply Last reply Reply Quote 0
                                    • D4vE
                                      D4vE @Markus84 last edited by

                                      @Markus84 das skript geht so nicht nach der Tür schließen! kommt weiterhin die meldung das die tür noch auf sei ^^

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

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      443
                                      Online

                                      31.9k
                                      Users

                                      80.2k
                                      Topics

                                      1.3m
                                      Posts

                                      blockly security
                                      6
                                      18
                                      1283
                                      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