Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. Dynamische Abfrage Tür/Fenster Status

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    2.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    996

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.3k

Dynamische Abfrage Tür/Fenster Status

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
blocklytürtürkontaktfensterfenster türenfensterkontaktfensterkontaktestatusdeconzaqara
11 Beiträge 5 Kommentatoren 2.6k Aufrufe 10 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • siggi85S Offline
    siggi85S Offline
    siggi85
    schrieb am zuletzt editiert von siggi85
    #1

    Anbei mein Blockly Script um den Status meiner Fenster und Türen zu überwachen.

    Features:

    • Es werden alle Tür/Fensterkontakte zur Prüfung hinzugezogen. Nach Einbinden eines neuen Sensors, wird dieser automatisch zur Prüfung hinzugezogen.
      • Man kann auch Sensoren aus dieser Prüfung nehmen, falls diese keine Fenster oder Türen "überwachen". Im Skript sind zwei Sensoren rausgenommen. In meinem Fall "Klingelsensor" und "Briefschlitz". Kann nach belieben erweitert werden.
    • Es werden immer alle Sensoren neu evaluiert, sobald sich ein Status ändert. So sind die Datenpunkte immer mit den korrekten Informationen befüllt
    • es werden 3 Datenpunkte befüllt
      • fenster_tueren_offen
        • Datenpunkt Zahl
        • Anzahl an offenen Fenstern und Türen zusammen, bspw. "2"
      • fenster_tueren_offen_list
        • Datenpunkt Zeichenkette
        • Aufzählung der einzelnen offenen Fenster und Türen, bspw. "Terassentür links Kinderzimmer"
      • fenster_tueren_offen_string
        • Datenpunkt Zeichenkette
        • Beschreibung des Zustandes, inkl. aller offenen Fenster und Türen (nutzbar für Ausgaben als Sprache oder in VIS), bspw. "Es sind 2 Türen und Fenster geöffnet: Terassentür links Kinderzimmer"
    • Der Kanalname desn Sensors, nicht der Datenpunktname (.*open), werden zur Befüllung der neuen Datenpunkte genutzt

    Nachteile

    • maximale Anzahl an Sensoren muss im Skript festgelegt werden (aktuell auf 50 gesetzt) --> Ggf. hat hier jemand eine bessere Idee für die Schleife?!

    Infos

    • die Sensoren sollten wiedererkennbar benannt werden (bspw. Terassentür links, Haustür, Kinderzimmer Kind1, etc.)
    • die unter Features aufgeführten Datenpunkte müssen selbst angelegt werden
    • Im Skript werden Aquara Sensoren die über Deconz angelernt sind genutzt. Sollten andere Sensoren oder Adapter genutzt werden (bspw. zigbee Adapter), müsste das nach Anpassungen im Skript aber auch funktionieren. Im Prinzip basiert das Skript darauf, dass ein bestimmter Datenpunkt (.*open), nur bei solch einem Sensor existiert

    Ich selbst nutze es zur automatischen Ansage, wenn morgens der letzte die Haustür zum Gehen öffnet und als manuelle Abfrage über Alexa bei Bedarf. In Zukunft möchte ich noch ein Tablet oder Smartmirror im Flur mit dem aktuellen Status befüllen.

    Blockly Export

    <xml xmlns="http://www.w3.org/1999/xhtml">
     <variables>
       <variable type="" id="EAzR}B*X)rUFFh66:sEb">oid</variable>
       <variable type="" id="+N$gqj0e}}9g##ahkGDC">id</variable>
       <variable type="" id="-5Vm?rn40;B.c68-#4@x">openCount</variable>
       <variable type="" id="fIlv_E%~|CGknOD3bwrq">openNames</variable>
       <variable type="" id="`Br{V#$H9f/{gzm}qirT">i</variable>
       <variable type="" id="D)2)rfqI8$h?GD?dpd2V">name</variable>
     </variables>
     <block type="on_ext" id="w5pI+iyHY2g#u-~b.].L" x="-162" y="-587">
       <mutation items="1"></mutation>
       <field name="CONDITION">any</field>
       <field name="ACK_CONDITION"></field>
       <value name="OID0">
         <shadow type="field_oid" id="X_=JUP7hFr|U)]sJ=73o">
           <field name="oid">custom.0.abfrage_buttons.fenster_tueren</field>
         </shadow>
         <block type="regex" id="2+c,Lnmm4J[Z3,C_ab/k">
           <field name="TEXT">(deconz.0.Sensors.*open)</field>
         </block>
       </value>
       <statement name="STATEMENT">
         <block type="variables_set" id="Nh;v/AWW?;LNz+hB!}f@">
           <field name="VAR" id="-5Vm?rn40;B.c68-#4@x" variabletype="">openCount</field>
           <value name="VALUE">
             <block type="math_number" id="O7;=BJ#T-J6M!CHP-ZK`">
               <field name="NUM">0</field>
             </block>
           </value>
           <next>
             <block type="variables_set" id="PtUMSHStH62Ic!2jEaS{">
               <field name="VAR" id="fIlv_E%~|CGknOD3bwrq" variabletype="">openNames</field>
               <value name="VALUE">
                 <block type="text" id="VWmmXV-b6QLqr0k5WMh[">
                   <field name="TEXT"></field>
                 </block>
               </value>
               <next>
                 <block type="variables_set" id="Ot5p-p5L?O+0!2RWSAG*">
                   <field name="VAR" id="`Br{V#$H9f/{gzm}qirT" variabletype="">i</field>
                   <value name="VALUE">
                     <block type="math_number" id="Rc(uh}~ZYh538q(Esyms">
                       <field name="NUM">1</field>
                     </block>
                   </value>
                   <next>
                     <block type="controls_whileUntil" id="2w2UFIQAHg`c%WudJVtD">
                       <field name="MODE">WHILE</field>
                       <value name="BOOL">
                         <block type="logic_compare" id="z[|xX]?lHu#*ErTm%[o)">
                           <field name="OP">LTE</field>
                           <value name="A">
                             <block type="variables_get" id="`*[{u(bb#O..5,]i/Q+r">
                               <field name="VAR" id="`Br{V#$H9f/{gzm}qirT" variabletype="">i</field>
                             </block>
                           </value>
                           <value name="B">
                             <block type="math_number" id=":;(2@rcXEmiRfPz^4%8K">
                               <field name="NUM">50</field>
                             </block>
                           </value>
                         </block>
                       </value>
                       <statement name="DO">
                         <block type="controls_if" id="yxk%=EstM=)v_kqyMUj:">
                           <value name="IF0">
                             <block type="procedures_callcustomreturn" id="~SZ[ov+HKBYUBf0z`dE6">
                               <mutation name="id_exist">
                                 <arg name="oid"></arg>
                               </mutation>
                               <value name="ARG0">
                                 <block type="text_join" id="xMR1AJ`~}.@IpAR-[aR@">
                                   <mutation items="3"></mutation>
                                   <value name="ADD0">
                                     <block type="text" id="f1gtP*iLQ=Hp9cJ?q9D|">
                                       <field name="TEXT">deconz.0.Sensors.</field>
                                     </block>
                                   </value>
                                   <value name="ADD1">
                                     <block type="variables_get" id="($-3Smaq7dJpxDW,MAYZ">
                                       <field name="VAR" id="`Br{V#$H9f/{gzm}qirT" variabletype="">i</field>
                                     </block>
                                   </value>
                                   <value name="ADD2">
                                     <block type="text" id="})z:LwMr?yE=Z=lg-El|">
                                       <field name="TEXT">.open</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                             </block>
                           </value>
                           <statement name="DO0">
                             <block type="controls_if" id="vnTm*N_e2YO^42dD9Ma2">
                               <value name="IF0">
                                 <block type="get_value_var" id="ExRZr~88Mvg=WA$VZwq~">
                                   <field name="ATTR">val</field>
                                   <value name="OID">
                                     <shadow type="text" id="EHdrNMrO;C5}QgTiplLJ">
                                       <field name="TEXT"></field>
                                     </shadow>
                                     <block type="text_join" id="CgSZXH@QK!K]@f[C1^?v">
                                       <mutation items="3"></mutation>
                                       <value name="ADD0">
                                         <block type="text" id="$V/*M_zHm}`usi5N,Ut~">
                                           <field name="TEXT">deconz.0.Sensors.</field>
                                         </block>
                                       </value>
                                       <value name="ADD1">
                                         <block type="variables_get" id="(^TaYPD4JuB=UKdBIol$">
                                           <field name="VAR" id="`Br{V#$H9f/{gzm}qirT" variabletype="">i</field>
                                         </block>
                                       </value>
                                       <value name="ADD2">
                                         <block type="text" id="3t2|SVkn+1@wk}{/*RsG">
                                           <field name="TEXT">.open</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                               <statement name="DO0">
                                 <block type="variables_set" id="b=83jJ14td4CDEbSwqZc">
                                   <field name="VAR" id="D)2)rfqI8$h?GD?dpd2V" variabletype="">name</field>
                                   <value name="VALUE">
                                     <block type="get_attr" id="/jo~Xr8Kr!UuVYlg8]!{">
                                       <value name="PATH">
                                         <shadow type="text" id="fnd-`2%r9~eu$2qD;v6W">
                                           <field name="TEXT"></field>
                                         </shadow>
                                         <block type="text" id="+mwy[mV^{aMP)43@[^LF">
                                           <field name="TEXT">common.name</field>
                                         </block>
                                       </value>
                                       <value name="OBJECT">
                                         <block type="procedures_callcustomreturn" id="bm^v%J3?bofHc!5r^m,a">
                                           <mutation name="object">
                                             <arg name="id"></arg>
                                           </mutation>
                                           <value name="ARG0">
                                             <block type="text_join" id="/M[]ENz{R`(fzh[0)Do5">
                                               <mutation items="2"></mutation>
                                               <value name="ADD0">
                                                 <block type="text" id=":^B_.yPUpBWKy2-P_bS[">
                                                   <field name="TEXT">deconz.0.Sensors.</field>
                                                 </block>
                                               </value>
                                               <value name="ADD1">
                                                 <block type="variables_get" id="EgrTrg!ZYug$nj[%5V9n">
                                                   <field name="VAR" id="`Br{V#$H9f/{gzm}qirT" variabletype="">i</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="controls_if" id="TkwC/7hvh^h3x/3|Y~h.">
                                       <value name="IF0">
                                         <block type="logic_operation" id="u%reV):#qdIzx@4{88D4" inline="false">
                                           <field name="OP">AND</field>
                                           <value name="A">
                                             <block type="logic_compare" id="4dsK-wQuZi|*oB|x3_a~">
                                               <field name="OP">NEQ</field>
                                               <value name="A">
                                                 <block type="variables_get" id="sftr^u?od[)$qSXwOZzB">
                                                   <field name="VAR" id="D)2)rfqI8$h?GD?dpd2V" variabletype="">name</field>
                                                 </block>
                                               </value>
                                               <value name="B">
                                                 <block type="text" id="(/pD:AJjOAh%xinDX5q,">
                                                   <field name="TEXT">Klingelsensor</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <block type="logic_compare" id="K_F[8mX1Ip=YB@/,=E7|">
                                               <field name="OP">NEQ</field>
                                               <value name="A">
                                                 <block type="variables_get" id="#[kY4FTOpRi}[!pT(oA#">
                                                   <field name="VAR" id="D)2)rfqI8$h?GD?dpd2V" variabletype="">name</field>
                                                 </block>
                                               </value>
                                               <value name="B">
                                                 <block type="text" id="lD26uZV0?3wX:No(kgw{">
                                                   <field name="TEXT">Briefschlitz</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <statement name="DO0">
                                         <block type="math_change" id="zf!VaW,N#cn`[Hqg*#}d">
                                           <field name="VAR" id="-5Vm?rn40;B.c68-#4@x" variabletype="">openCount</field>
                                           <value name="DELTA">
                                             <shadow type="math_number" id="1W,L(gUww]EVLOs+Rh^r">
                                               <field name="NUM">1</field>
                                             </shadow>
                                           </value>
                                           <next>
                                             <block type="text_append" id="Q+4~inF9.FA[=Y_9ylqX">
                                               <field name="VAR" id="fIlv_E%~|CGknOD3bwrq" variabletype="">openNames</field>
                                               <value name="TEXT">
                                                 <shadow type="text" id="C|JeTe5oLJVg%w6ZKr5y">
                                                   <field name="TEXT"></field>
                                                 </shadow>
                                                 <block type="text_join" id="5xi1PBL5-Hi*KSwDGVMj" inline="true">
                                                   <mutation items="2"></mutation>
                                                   <value name="ADD0">
                                                     <block type="variables_get" id="A722QB$m$+[*yIS|v,GE">
                                                       <field name="VAR" id="D)2)rfqI8$h?GD?dpd2V" variabletype="">name</field>
                                                     </block>
                                                   </value>
                                                   <value name="ADD1">
                                                     <block type="text_newline" id="j|@hG[Fv|Ytr/N$~%jQd">
                                                       <field name="Type">\n</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                             </block>
                                           </next>
                                         </block>
                                       </statement>
                                     </block>
                                   </next>
                                 </block>
                               </statement>
                             </block>
                           </statement>
                           <next>
                             <block type="math_change" id=";yB0[Q;y5n3n(XXv||gX">
                               <field name="VAR" id="`Br{V#$H9f/{gzm}qirT" variabletype="">i</field>
                               <value name="DELTA">
                                 <shadow type="math_number" id="bKg-@-d)k:#Urs59pfH5">
                                   <field name="NUM">1</field>
                                 </shadow>
                               </value>
                             </block>
                           </next>
                         </block>
                       </statement>
                       <next>
                         <block type="control" id="GyL0TXO5HspGPh(6)m@(">
                           <mutation delay_input="false"></mutation>
                           <field name="OID">custom.0.status.fenster_tueren_offen</field>
                           <field name="WITH_DELAY">FALSE</field>
                           <value name="VALUE">
                             <block type="variables_get" id="bQS9#9%}!}4T?4L@,`x2">
                               <field name="VAR" id="-5Vm?rn40;B.c68-#4@x" variabletype="">openCount</field>
                             </block>
                           </value>
                           <next>
                             <block type="control" id="h~ycr$p*:f9%kh%C+bY#">
                               <mutation delay_input="false"></mutation>
                               <field name="OID">custom.0.status.fenster_tueren_offen_list</field>
                               <field name="WITH_DELAY">FALSE</field>
                               <value name="VALUE">
                                 <block type="variables_get" id="-klcrg?Q~Zw(OgCPpe+1">
                                   <field name="VAR" id="fIlv_E%~|CGknOD3bwrq" variabletype="">openNames</field>
                                 </block>
                               </value>
                               <next>
                                 <block type="controls_if" id="5lXV(tp#82tI$/7R@;4R">
                                   <mutation elseif="1" else="1"></mutation>
                                   <value name="IF0">
                                     <block type="logic_compare" id="{:KwTPu4rOP1|-?]Ch.M">
                                       <field name="OP">GT</field>
                                       <value name="A">
                                         <block type="variables_get" id="$]T%jKq-rTHon0~3K=|B">
                                           <field name="VAR" id="-5Vm?rn40;B.c68-#4@x" variabletype="">openCount</field>
                                         </block>
                                       </value>
                                       <value name="B">
                                         <block type="math_number" id="KO)~so6Oo1:APGEsD/1b">
                                           <field name="NUM">1</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <statement name="DO0">
                                     <block type="control_ex" id="R6;|ds?FCUyr*qd@IXh^">
                                       <field name="TYPE">false</field>
                                       <field name="CLEAR_RUNNING">FALSE</field>
                                       <value name="OID">
                                         <shadow type="field_oid" id="8hVp2H2JKtvScV6p^5Bm">
                                           <field name="oid">Object ID</field>
                                         </shadow>
                                         <block type="field_oid" id="}.^sj|@)Y1694tgimLOZ">
                                           <field name="oid">custom.0.status.fenster_tueren_offen_string</field>
                                         </block>
                                       </value>
                                       <value name="VALUE">
                                         <shadow type="logic_boolean" id=".fV8a_Ob;i7mh@v1z.2m">
                                           <field name="BOOL">TRUE</field>
                                         </shadow>
                                         <block type="text_join" id="N5i38/mHCEj|/sSr2(Tu" inline="false">
                                           <mutation items="5"></mutation>
                                           <value name="ADD0">
                                             <block type="text" id="T?)7)m?B+8k11q76Zy]J">
                                               <field name="TEXT">Es sind </field>
                                             </block>
                                           </value>
                                           <value name="ADD1">
                                             <block type="variables_get" id="suvHV}WLStIxu-Lv;H3w">
                                               <field name="VAR" id="-5Vm?rn40;B.c68-#4@x" variabletype="">openCount</field>
                                             </block>
                                           </value>
                                           <value name="ADD2">
                                             <block type="text" id="Phxofn^gRr:gjUSK2rNV">
                                               <field name="TEXT"> Türen und Fenster geöffnet:</field>
                                             </block>
                                           </value>
                                           <value name="ADD3">
                                             <block type="text_newline" id="K*X!frnXIGp}NL~sT3A{">
                                               <field name="Type">\n</field>
                                             </block>
                                           </value>
                                           <value name="ADD4">
                                             <block type="variables_get" id="K-Q:7M1rn#gha1oee-i+">
                                               <field name="VAR" id="fIlv_E%~|CGknOD3bwrq" variabletype="">openNames</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <value name="DELAY_MS">
                                         <shadow type="math_number" id=",DqZmB2oWsNlQ+aJe!Z*">
                                           <field name="NUM">0</field>
                                         </shadow>
                                       </value>
                                     </block>
                                   </statement>
                                   <value name="IF1">
                                     <block type="logic_compare" id="L_*(r~a*oD}w0*.vr?5w">
                                       <field name="OP">EQ</field>
                                       <value name="A">
                                         <block type="variables_get" id="F9-3wEbXKtSF{[xtQUG+">
                                           <field name="VAR" id="-5Vm?rn40;B.c68-#4@x" variabletype="">openCount</field>
                                         </block>
                                       </value>
                                       <value name="B">
                                         <block type="math_number" id="[T$]IqC@VFoe7^.U^kJ!">
                                           <field name="NUM">1</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <statement name="DO1">
                                     <block type="control_ex" id="xSp!#]MPFi$}R5eym~mZ">
                                       <field name="TYPE">false</field>
                                       <field name="CLEAR_RUNNING">FALSE</field>
                                       <value name="OID">
                                         <shadow type="field_oid" id="8hVp2H2JKtvScV6p^5Bm">
                                           <field name="oid">Object ID</field>
                                         </shadow>
                                         <block type="field_oid" id="rv:0!Km|3.mfqd|)j7tX">
                                           <field name="oid">custom.0.status.fenster_tueren_offen_string</field>
                                         </block>
                                       </value>
                                       <value name="VALUE">
                                         <shadow type="logic_boolean" id=".fV8a_Ob;i7mh@v1z.2m">
                                           <field name="BOOL">TRUE</field>
                                         </shadow>
                                         <block type="text_join" id="a*AI-][2G4gYAN+Se*Jh" inline="false">
                                           <mutation items="3"></mutation>
                                           <value name="ADD0">
                                             <block type="text" id="v*W-u{*CD[p{OgT0LTPV">
                                               <field name="TEXT">Es ist eine Tür oder Fenster geöffnet:</field>
                                             </block>
                                           </value>
                                           <value name="ADD1">
                                             <block type="text_newline" id="N*7)/9c=Oa_N1)xGA.dC">
                                               <field name="Type">\n</field>
                                             </block>
                                           </value>
                                           <value name="ADD2">
                                             <block type="variables_get" id="6Ht6J#tBXtZ|L0y)6B_`">
                                               <field name="VAR" id="fIlv_E%~|CGknOD3bwrq" variabletype="">openNames</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <value name="DELAY_MS">
                                         <shadow type="math_number" id="4Ud}f:VD)]8u;[sI9x)L">
                                           <field name="NUM">0</field>
                                         </shadow>
                                       </value>
                                     </block>
                                   </statement>
                                   <statement name="ELSE">
                                     <block type="control_ex" id="2!4*H_4x[dql1!tw-D9s">
                                       <field name="TYPE">false</field>
                                       <field name="CLEAR_RUNNING">FALSE</field>
                                       <value name="OID">
                                         <shadow type="field_oid" id="8hVp2H2JKtvScV6p^5Bm">
                                           <field name="oid">Object ID</field>
                                         </shadow>
                                         <block type="field_oid" id="2oFQC4JQmW4,+y(:b}qX">
                                           <field name="oid">custom.0.status.fenster_tueren_offen_string</field>
                                         </block>
                                       </value>
                                       <value name="VALUE">
                                         <shadow type="logic_boolean" id=".fV8a_Ob;i7mh@v1z.2m">
                                           <field name="BOOL">TRUE</field>
                                         </shadow>
                                         <block type="text" id="?`N*_B84qKR!):k;BG^*">
                                           <field name="TEXT">Alle Türen und Fenster sind zu.</field>
                                         </block>
                                       </value>
                                       <value name="DELAY_MS">
                                         <shadow type="math_number" id="9D%ZF9*(Bxser8:Qg|7D">
                                           <field name="NUM">0</field>
                                         </shadow>
                                       </value>
                                     </block>
                                   </statement>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
               </next>
             </block>
           </next>
         </block>
       </statement>
     </block>
     <block type="procedures_defcustomreturn" id="8;GF=diV-u,ZTm4$i[~3" x="288" y="-587">
       <mutation statements="false">
         <arg name="oid" varid="EAzR}B*X)rUFFh66:sEb"></arg>
       </mutation>
       <field name="NAME">id_exist</field>
       <field name="SCRIPT">cmV0dXJuICEhJChvaWQpLmxlbmd0aDsg</field>
       <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
     </block>
     <block type="procedures_defcustomreturn" id="O@Xz0YR:jx8{z??)z%id" x="288" y="-537">
       <mutation statements="false">
         <arg name="id" varid="+N$gqj0e}}9g##ahkGDC"></arg>
       </mutation>
       <field name="NAME">object</field>
       <field name="SCRIPT">cmV0dXJuIGdldE9iamVjdChpZCk7</field>
       <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
     </block>
    </xml>
    

    Screenshots


    0d061e9b-8cb0-47b3-9899-a4e025cb323c-grafik.png

    bf8862a7-0ed3-46ba-aa5e-00e22c0992f7-grafik.png

    Z 1 Antwort Letzte Antwort
    1
    • M Offline
      M Offline
      martinschm
      schrieb am zuletzt editiert von
      #2

      Hi,

      das was du suchst nennt sich selector. Funktioniert glaube ich aber nur über javascript. Damit kannst du dir alle Geräte des deconz Adapters in eine Liste packen lassen.

      Statt dann bis 50 durch die Schleife zu laufen durchläufst du die Liste der Geräte. Es gibt einige Skripte zum Thema Offene Fenster, die machen das genau so.

      1 Antwort Letzte Antwort
      0
      • siggi85S siggi85

        Anbei mein Blockly Script um den Status meiner Fenster und Türen zu überwachen.

        Features:

        • Es werden alle Tür/Fensterkontakte zur Prüfung hinzugezogen. Nach Einbinden eines neuen Sensors, wird dieser automatisch zur Prüfung hinzugezogen.
          • Man kann auch Sensoren aus dieser Prüfung nehmen, falls diese keine Fenster oder Türen "überwachen". Im Skript sind zwei Sensoren rausgenommen. In meinem Fall "Klingelsensor" und "Briefschlitz". Kann nach belieben erweitert werden.
        • Es werden immer alle Sensoren neu evaluiert, sobald sich ein Status ändert. So sind die Datenpunkte immer mit den korrekten Informationen befüllt
        • es werden 3 Datenpunkte befüllt
          • fenster_tueren_offen
            • Datenpunkt Zahl
            • Anzahl an offenen Fenstern und Türen zusammen, bspw. "2"
          • fenster_tueren_offen_list
            • Datenpunkt Zeichenkette
            • Aufzählung der einzelnen offenen Fenster und Türen, bspw. "Terassentür links Kinderzimmer"
          • fenster_tueren_offen_string
            • Datenpunkt Zeichenkette
            • Beschreibung des Zustandes, inkl. aller offenen Fenster und Türen (nutzbar für Ausgaben als Sprache oder in VIS), bspw. "Es sind 2 Türen und Fenster geöffnet: Terassentür links Kinderzimmer"
        • Der Kanalname desn Sensors, nicht der Datenpunktname (.*open), werden zur Befüllung der neuen Datenpunkte genutzt

        Nachteile

        • maximale Anzahl an Sensoren muss im Skript festgelegt werden (aktuell auf 50 gesetzt) --> Ggf. hat hier jemand eine bessere Idee für die Schleife?!

        Infos

        • die Sensoren sollten wiedererkennbar benannt werden (bspw. Terassentür links, Haustür, Kinderzimmer Kind1, etc.)
        • die unter Features aufgeführten Datenpunkte müssen selbst angelegt werden
        • Im Skript werden Aquara Sensoren die über Deconz angelernt sind genutzt. Sollten andere Sensoren oder Adapter genutzt werden (bspw. zigbee Adapter), müsste das nach Anpassungen im Skript aber auch funktionieren. Im Prinzip basiert das Skript darauf, dass ein bestimmter Datenpunkt (.*open), nur bei solch einem Sensor existiert

        Ich selbst nutze es zur automatischen Ansage, wenn morgens der letzte die Haustür zum Gehen öffnet und als manuelle Abfrage über Alexa bei Bedarf. In Zukunft möchte ich noch ein Tablet oder Smartmirror im Flur mit dem aktuellen Status befüllen.

        Blockly Export

        <xml xmlns="http://www.w3.org/1999/xhtml">
         <variables>
           <variable type="" id="EAzR}B*X)rUFFh66:sEb">oid</variable>
           <variable type="" id="+N$gqj0e}}9g##ahkGDC">id</variable>
           <variable type="" id="-5Vm?rn40;B.c68-#4@x">openCount</variable>
           <variable type="" id="fIlv_E%~|CGknOD3bwrq">openNames</variable>
           <variable type="" id="`Br{V#$H9f/{gzm}qirT">i</variable>
           <variable type="" id="D)2)rfqI8$h?GD?dpd2V">name</variable>
         </variables>
         <block type="on_ext" id="w5pI+iyHY2g#u-~b.].L" x="-162" y="-587">
           <mutation items="1"></mutation>
           <field name="CONDITION">any</field>
           <field name="ACK_CONDITION"></field>
           <value name="OID0">
             <shadow type="field_oid" id="X_=JUP7hFr|U)]sJ=73o">
               <field name="oid">custom.0.abfrage_buttons.fenster_tueren</field>
             </shadow>
             <block type="regex" id="2+c,Lnmm4J[Z3,C_ab/k">
               <field name="TEXT">(deconz.0.Sensors.*open)</field>
             </block>
           </value>
           <statement name="STATEMENT">
             <block type="variables_set" id="Nh;v/AWW?;LNz+hB!}f@">
               <field name="VAR" id="-5Vm?rn40;B.c68-#4@x" variabletype="">openCount</field>
               <value name="VALUE">
                 <block type="math_number" id="O7;=BJ#T-J6M!CHP-ZK`">
                   <field name="NUM">0</field>
                 </block>
               </value>
               <next>
                 <block type="variables_set" id="PtUMSHStH62Ic!2jEaS{">
                   <field name="VAR" id="fIlv_E%~|CGknOD3bwrq" variabletype="">openNames</field>
                   <value name="VALUE">
                     <block type="text" id="VWmmXV-b6QLqr0k5WMh[">
                       <field name="TEXT"></field>
                     </block>
                   </value>
                   <next>
                     <block type="variables_set" id="Ot5p-p5L?O+0!2RWSAG*">
                       <field name="VAR" id="`Br{V#$H9f/{gzm}qirT" variabletype="">i</field>
                       <value name="VALUE">
                         <block type="math_number" id="Rc(uh}~ZYh538q(Esyms">
                           <field name="NUM">1</field>
                         </block>
                       </value>
                       <next>
                         <block type="controls_whileUntil" id="2w2UFIQAHg`c%WudJVtD">
                           <field name="MODE">WHILE</field>
                           <value name="BOOL">
                             <block type="logic_compare" id="z[|xX]?lHu#*ErTm%[o)">
                               <field name="OP">LTE</field>
                               <value name="A">
                                 <block type="variables_get" id="`*[{u(bb#O..5,]i/Q+r">
                                   <field name="VAR" id="`Br{V#$H9f/{gzm}qirT" variabletype="">i</field>
                                 </block>
                               </value>
                               <value name="B">
                                 <block type="math_number" id=":;(2@rcXEmiRfPz^4%8K">
                                   <field name="NUM">50</field>
                                 </block>
                               </value>
                             </block>
                           </value>
                           <statement name="DO">
                             <block type="controls_if" id="yxk%=EstM=)v_kqyMUj:">
                               <value name="IF0">
                                 <block type="procedures_callcustomreturn" id="~SZ[ov+HKBYUBf0z`dE6">
                                   <mutation name="id_exist">
                                     <arg name="oid"></arg>
                                   </mutation>
                                   <value name="ARG0">
                                     <block type="text_join" id="xMR1AJ`~}.@IpAR-[aR@">
                                       <mutation items="3"></mutation>
                                       <value name="ADD0">
                                         <block type="text" id="f1gtP*iLQ=Hp9cJ?q9D|">
                                           <field name="TEXT">deconz.0.Sensors.</field>
                                         </block>
                                       </value>
                                       <value name="ADD1">
                                         <block type="variables_get" id="($-3Smaq7dJpxDW,MAYZ">
                                           <field name="VAR" id="`Br{V#$H9f/{gzm}qirT" variabletype="">i</field>
                                         </block>
                                       </value>
                                       <value name="ADD2">
                                         <block type="text" id="})z:LwMr?yE=Z=lg-El|">
                                           <field name="TEXT">.open</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                               <statement name="DO0">
                                 <block type="controls_if" id="vnTm*N_e2YO^42dD9Ma2">
                                   <value name="IF0">
                                     <block type="get_value_var" id="ExRZr~88Mvg=WA$VZwq~">
                                       <field name="ATTR">val</field>
                                       <value name="OID">
                                         <shadow type="text" id="EHdrNMrO;C5}QgTiplLJ">
                                           <field name="TEXT"></field>
                                         </shadow>
                                         <block type="text_join" id="CgSZXH@QK!K]@f[C1^?v">
                                           <mutation items="3"></mutation>
                                           <value name="ADD0">
                                             <block type="text" id="$V/*M_zHm}`usi5N,Ut~">
                                               <field name="TEXT">deconz.0.Sensors.</field>
                                             </block>
                                           </value>
                                           <value name="ADD1">
                                             <block type="variables_get" id="(^TaYPD4JuB=UKdBIol$">
                                               <field name="VAR" id="`Br{V#$H9f/{gzm}qirT" variabletype="">i</field>
                                             </block>
                                           </value>
                                           <value name="ADD2">
                                             <block type="text" id="3t2|SVkn+1@wk}{/*RsG">
                                               <field name="TEXT">.open</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <statement name="DO0">
                                     <block type="variables_set" id="b=83jJ14td4CDEbSwqZc">
                                       <field name="VAR" id="D)2)rfqI8$h?GD?dpd2V" variabletype="">name</field>
                                       <value name="VALUE">
                                         <block type="get_attr" id="/jo~Xr8Kr!UuVYlg8]!{">
                                           <value name="PATH">
                                             <shadow type="text" id="fnd-`2%r9~eu$2qD;v6W">
                                               <field name="TEXT"></field>
                                             </shadow>
                                             <block type="text" id="+mwy[mV^{aMP)43@[^LF">
                                               <field name="TEXT">common.name</field>
                                             </block>
                                           </value>
                                           <value name="OBJECT">
                                             <block type="procedures_callcustomreturn" id="bm^v%J3?bofHc!5r^m,a">
                                               <mutation name="object">
                                                 <arg name="id"></arg>
                                               </mutation>
                                               <value name="ARG0">
                                                 <block type="text_join" id="/M[]ENz{R`(fzh[0)Do5">
                                                   <mutation items="2"></mutation>
                                                   <value name="ADD0">
                                                     <block type="text" id=":^B_.yPUpBWKy2-P_bS[">
                                                       <field name="TEXT">deconz.0.Sensors.</field>
                                                     </block>
                                                   </value>
                                                   <value name="ADD1">
                                                     <block type="variables_get" id="EgrTrg!ZYug$nj[%5V9n">
                                                       <field name="VAR" id="`Br{V#$H9f/{gzm}qirT" variabletype="">i</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="controls_if" id="TkwC/7hvh^h3x/3|Y~h.">
                                           <value name="IF0">
                                             <block type="logic_operation" id="u%reV):#qdIzx@4{88D4" inline="false">
                                               <field name="OP">AND</field>
                                               <value name="A">
                                                 <block type="logic_compare" id="4dsK-wQuZi|*oB|x3_a~">
                                                   <field name="OP">NEQ</field>
                                                   <value name="A">
                                                     <block type="variables_get" id="sftr^u?od[)$qSXwOZzB">
                                                       <field name="VAR" id="D)2)rfqI8$h?GD?dpd2V" variabletype="">name</field>
                                                     </block>
                                                   </value>
                                                   <value name="B">
                                                     <block type="text" id="(/pD:AJjOAh%xinDX5q,">
                                                       <field name="TEXT">Klingelsensor</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                               <value name="B">
                                                 <block type="logic_compare" id="K_F[8mX1Ip=YB@/,=E7|">
                                                   <field name="OP">NEQ</field>
                                                   <value name="A">
                                                     <block type="variables_get" id="#[kY4FTOpRi}[!pT(oA#">
                                                       <field name="VAR" id="D)2)rfqI8$h?GD?dpd2V" variabletype="">name</field>
                                                     </block>
                                                   </value>
                                                   <value name="B">
                                                     <block type="text" id="lD26uZV0?3wX:No(kgw{">
                                                       <field name="TEXT">Briefschlitz</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <statement name="DO0">
                                             <block type="math_change" id="zf!VaW,N#cn`[Hqg*#}d">
                                               <field name="VAR" id="-5Vm?rn40;B.c68-#4@x" variabletype="">openCount</field>
                                               <value name="DELTA">
                                                 <shadow type="math_number" id="1W,L(gUww]EVLOs+Rh^r">
                                                   <field name="NUM">1</field>
                                                 </shadow>
                                               </value>
                                               <next>
                                                 <block type="text_append" id="Q+4~inF9.FA[=Y_9ylqX">
                                                   <field name="VAR" id="fIlv_E%~|CGknOD3bwrq" variabletype="">openNames</field>
                                                   <value name="TEXT">
                                                     <shadow type="text" id="C|JeTe5oLJVg%w6ZKr5y">
                                                       <field name="TEXT"></field>
                                                     </shadow>
                                                     <block type="text_join" id="5xi1PBL5-Hi*KSwDGVMj" inline="true">
                                                       <mutation items="2"></mutation>
                                                       <value name="ADD0">
                                                         <block type="variables_get" id="A722QB$m$+[*yIS|v,GE">
                                                           <field name="VAR" id="D)2)rfqI8$h?GD?dpd2V" variabletype="">name</field>
                                                         </block>
                                                       </value>
                                                       <value name="ADD1">
                                                         <block type="text_newline" id="j|@hG[Fv|Ytr/N$~%jQd">
                                                           <field name="Type">\n</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </next>
                                             </block>
                                           </statement>
                                         </block>
                                       </next>
                                     </block>
                                   </statement>
                                 </block>
                               </statement>
                               <next>
                                 <block type="math_change" id=";yB0[Q;y5n3n(XXv||gX">
                                   <field name="VAR" id="`Br{V#$H9f/{gzm}qirT" variabletype="">i</field>
                                   <value name="DELTA">
                                     <shadow type="math_number" id="bKg-@-d)k:#Urs59pfH5">
                                       <field name="NUM">1</field>
                                     </shadow>
                                   </value>
                                 </block>
                               </next>
                             </block>
                           </statement>
                           <next>
                             <block type="control" id="GyL0TXO5HspGPh(6)m@(">
                               <mutation delay_input="false"></mutation>
                               <field name="OID">custom.0.status.fenster_tueren_offen</field>
                               <field name="WITH_DELAY">FALSE</field>
                               <value name="VALUE">
                                 <block type="variables_get" id="bQS9#9%}!}4T?4L@,`x2">
                                   <field name="VAR" id="-5Vm?rn40;B.c68-#4@x" variabletype="">openCount</field>
                                 </block>
                               </value>
                               <next>
                                 <block type="control" id="h~ycr$p*:f9%kh%C+bY#">
                                   <mutation delay_input="false"></mutation>
                                   <field name="OID">custom.0.status.fenster_tueren_offen_list</field>
                                   <field name="WITH_DELAY">FALSE</field>
                                   <value name="VALUE">
                                     <block type="variables_get" id="-klcrg?Q~Zw(OgCPpe+1">
                                       <field name="VAR" id="fIlv_E%~|CGknOD3bwrq" variabletype="">openNames</field>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="controls_if" id="5lXV(tp#82tI$/7R@;4R">
                                       <mutation elseif="1" else="1"></mutation>
                                       <value name="IF0">
                                         <block type="logic_compare" id="{:KwTPu4rOP1|-?]Ch.M">
                                           <field name="OP">GT</field>
                                           <value name="A">
                                             <block type="variables_get" id="$]T%jKq-rTHon0~3K=|B">
                                               <field name="VAR" id="-5Vm?rn40;B.c68-#4@x" variabletype="">openCount</field>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <block type="math_number" id="KO)~so6Oo1:APGEsD/1b">
                                               <field name="NUM">1</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <statement name="DO0">
                                         <block type="control_ex" id="R6;|ds?FCUyr*qd@IXh^">
                                           <field name="TYPE">false</field>
                                           <field name="CLEAR_RUNNING">FALSE</field>
                                           <value name="OID">
                                             <shadow type="field_oid" id="8hVp2H2JKtvScV6p^5Bm">
                                               <field name="oid">Object ID</field>
                                             </shadow>
                                             <block type="field_oid" id="}.^sj|@)Y1694tgimLOZ">
                                               <field name="oid">custom.0.status.fenster_tueren_offen_string</field>
                                             </block>
                                           </value>
                                           <value name="VALUE">
                                             <shadow type="logic_boolean" id=".fV8a_Ob;i7mh@v1z.2m">
                                               <field name="BOOL">TRUE</field>
                                             </shadow>
                                             <block type="text_join" id="N5i38/mHCEj|/sSr2(Tu" inline="false">
                                               <mutation items="5"></mutation>
                                               <value name="ADD0">
                                                 <block type="text" id="T?)7)m?B+8k11q76Zy]J">
                                                   <field name="TEXT">Es sind </field>
                                                 </block>
                                               </value>
                                               <value name="ADD1">
                                                 <block type="variables_get" id="suvHV}WLStIxu-Lv;H3w">
                                                   <field name="VAR" id="-5Vm?rn40;B.c68-#4@x" variabletype="">openCount</field>
                                                 </block>
                                               </value>
                                               <value name="ADD2">
                                                 <block type="text" id="Phxofn^gRr:gjUSK2rNV">
                                                   <field name="TEXT"> Türen und Fenster geöffnet:</field>
                                                 </block>
                                               </value>
                                               <value name="ADD3">
                                                 <block type="text_newline" id="K*X!frnXIGp}NL~sT3A{">
                                                   <field name="Type">\n</field>
                                                 </block>
                                               </value>
                                               <value name="ADD4">
                                                 <block type="variables_get" id="K-Q:7M1rn#gha1oee-i+">
                                                   <field name="VAR" id="fIlv_E%~|CGknOD3bwrq" variabletype="">openNames</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <value name="DELAY_MS">
                                             <shadow type="math_number" id=",DqZmB2oWsNlQ+aJe!Z*">
                                               <field name="NUM">0</field>
                                             </shadow>
                                           </value>
                                         </block>
                                       </statement>
                                       <value name="IF1">
                                         <block type="logic_compare" id="L_*(r~a*oD}w0*.vr?5w">
                                           <field name="OP">EQ</field>
                                           <value name="A">
                                             <block type="variables_get" id="F9-3wEbXKtSF{[xtQUG+">
                                               <field name="VAR" id="-5Vm?rn40;B.c68-#4@x" variabletype="">openCount</field>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <block type="math_number" id="[T$]IqC@VFoe7^.U^kJ!">
                                               <field name="NUM">1</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <statement name="DO1">
                                         <block type="control_ex" id="xSp!#]MPFi$}R5eym~mZ">
                                           <field name="TYPE">false</field>
                                           <field name="CLEAR_RUNNING">FALSE</field>
                                           <value name="OID">
                                             <shadow type="field_oid" id="8hVp2H2JKtvScV6p^5Bm">
                                               <field name="oid">Object ID</field>
                                             </shadow>
                                             <block type="field_oid" id="rv:0!Km|3.mfqd|)j7tX">
                                               <field name="oid">custom.0.status.fenster_tueren_offen_string</field>
                                             </block>
                                           </value>
                                           <value name="VALUE">
                                             <shadow type="logic_boolean" id=".fV8a_Ob;i7mh@v1z.2m">
                                               <field name="BOOL">TRUE</field>
                                             </shadow>
                                             <block type="text_join" id="a*AI-][2G4gYAN+Se*Jh" inline="false">
                                               <mutation items="3"></mutation>
                                               <value name="ADD0">
                                                 <block type="text" id="v*W-u{*CD[p{OgT0LTPV">
                                                   <field name="TEXT">Es ist eine Tür oder Fenster geöffnet:</field>
                                                 </block>
                                               </value>
                                               <value name="ADD1">
                                                 <block type="text_newline" id="N*7)/9c=Oa_N1)xGA.dC">
                                                   <field name="Type">\n</field>
                                                 </block>
                                               </value>
                                               <value name="ADD2">
                                                 <block type="variables_get" id="6Ht6J#tBXtZ|L0y)6B_`">
                                                   <field name="VAR" id="fIlv_E%~|CGknOD3bwrq" variabletype="">openNames</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                           <value name="DELAY_MS">
                                             <shadow type="math_number" id="4Ud}f:VD)]8u;[sI9x)L">
                                               <field name="NUM">0</field>
                                             </shadow>
                                           </value>
                                         </block>
                                       </statement>
                                       <statement name="ELSE">
                                         <block type="control_ex" id="2!4*H_4x[dql1!tw-D9s">
                                           <field name="TYPE">false</field>
                                           <field name="CLEAR_RUNNING">FALSE</field>
                                           <value name="OID">
                                             <shadow type="field_oid" id="8hVp2H2JKtvScV6p^5Bm">
                                               <field name="oid">Object ID</field>
                                             </shadow>
                                             <block type="field_oid" id="2oFQC4JQmW4,+y(:b}qX">
                                               <field name="oid">custom.0.status.fenster_tueren_offen_string</field>
                                             </block>
                                           </value>
                                           <value name="VALUE">
                                             <shadow type="logic_boolean" id=".fV8a_Ob;i7mh@v1z.2m">
                                               <field name="BOOL">TRUE</field>
                                             </shadow>
                                             <block type="text" id="?`N*_B84qKR!):k;BG^*">
                                               <field name="TEXT">Alle Türen und Fenster sind zu.</field>
                                             </block>
                                           </value>
                                           <value name="DELAY_MS">
                                             <shadow type="math_number" id="9D%ZF9*(Bxser8:Qg|7D">
                                               <field name="NUM">0</field>
                                             </shadow>
                                           </value>
                                         </block>
                                       </statement>
                                     </block>
                                   </next>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                       </next>
                     </block>
                   </next>
                 </block>
               </next>
             </block>
           </statement>
         </block>
         <block type="procedures_defcustomreturn" id="8;GF=diV-u,ZTm4$i[~3" x="288" y="-587">
           <mutation statements="false">
             <arg name="oid" varid="EAzR}B*X)rUFFh66:sEb"></arg>
           </mutation>
           <field name="NAME">id_exist</field>
           <field name="SCRIPT">cmV0dXJuICEhJChvaWQpLmxlbmd0aDsg</field>
           <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
         </block>
         <block type="procedures_defcustomreturn" id="O@Xz0YR:jx8{z??)z%id" x="288" y="-537">
           <mutation statements="false">
             <arg name="id" varid="+N$gqj0e}}9g##ahkGDC"></arg>
           </mutation>
           <field name="NAME">object</field>
           <field name="SCRIPT">cmV0dXJuIGdldE9iamVjdChpZCk7</field>
           <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
         </block>
        </xml>
        

        Screenshots


        0d061e9b-8cb0-47b3-9899-a4e025cb323c-grafik.png

        bf8862a7-0ed3-46ba-aa5e-00e22c0992f7-grafik.png

        Z Offline
        Z Offline
        zokkai
        schrieb am zuletzt editiert von
        #3

        @siggi85 Hi, so etwas suche ich auch. Ich habe Dein Script versucht an die Aqara Sensoren des Zigbee-Adapters anzupassen. Leider komme ich da nicht weiter.

        Der Datenpunkt im Zigbee heisst opened der dann wahlweise auf true/false steht.
        Ich kann in deinem Script nicht erkennen, wo auf diesen Wert geprüft wird.

        19-04-_2020_13-57-41.jpg

        Aktuell werden nur die Datenpunkte *.offen=0 und *.string= Alle Türen und Fenster sind zu. gefüllt.

        19-04-_2020_14-05-51.jpg

        Woran könnte dies liegen?
        Danke im voraus.

        Kai

        siggi85S 1 Antwort Letzte Antwort
        0
        • Z zokkai

          @siggi85 Hi, so etwas suche ich auch. Ich habe Dein Script versucht an die Aqara Sensoren des Zigbee-Adapters anzupassen. Leider komme ich da nicht weiter.

          Der Datenpunkt im Zigbee heisst opened der dann wahlweise auf true/false steht.
          Ich kann in deinem Script nicht erkennen, wo auf diesen Wert geprüft wird.

          19-04-_2020_13-57-41.jpg

          Aktuell werden nur die Datenpunkte *.offen=0 und *.string= Alle Türen und Fenster sind zu. gefüllt.

          19-04-_2020_14-05-51.jpg

          Woran könnte dies liegen?
          Danke im voraus.

          Kai

          siggi85S Offline
          siggi85S Offline
          siggi85
          schrieb am zuletzt editiert von
          #4

          @zokkai
          Im Deconz Adapter sind alle Sensoren durchnummeriert. Daher gehe ich alle Sensoren durch und prüfe ob es einen "open" Datenpunkt gibt.

          a47165ac-8571-4ee0-9b0a-cc54a7f7a5c1-grafik.png

          Ich habe es mir also zugegebenermaßen ziemlich einfach gemacht...

          Im Zigbee wird das nicht durchnummeriert. Hier müsste man mit Selector arbeiten wie im Kommentar von @martinschm beschrieben.
          Auch wenn diese nicht nativ in blockly möglich ist, über Funktionen kann man ja auch in Blockly direkt Javascript verwenden. Sollte also möglich sein.

          Ich würde diese Variante auch präferieren (sie ist ersten eleganter und zweitens wird der deconz Adapter wohl mittelfristig auch auf IDs umgebaut statt einfach durchzunummerieren). Habe mich mit Selectoren aber noch nicht auseinandergesetzt, falls du das anpasst würde ich die Lösung auch gerne wissen. :)

          Z 1 Antwort Letzte Antwort
          0
          • siggi85S siggi85

            @zokkai
            Im Deconz Adapter sind alle Sensoren durchnummeriert. Daher gehe ich alle Sensoren durch und prüfe ob es einen "open" Datenpunkt gibt.

            a47165ac-8571-4ee0-9b0a-cc54a7f7a5c1-grafik.png

            Ich habe es mir also zugegebenermaßen ziemlich einfach gemacht...

            Im Zigbee wird das nicht durchnummeriert. Hier müsste man mit Selector arbeiten wie im Kommentar von @martinschm beschrieben.
            Auch wenn diese nicht nativ in blockly möglich ist, über Funktionen kann man ja auch in Blockly direkt Javascript verwenden. Sollte also möglich sein.

            Ich würde diese Variante auch präferieren (sie ist ersten eleganter und zweitens wird der deconz Adapter wohl mittelfristig auch auf IDs umgebaut statt einfach durchzunummerieren). Habe mich mit Selectoren aber noch nicht auseinandergesetzt, falls du das anpasst würde ich die Lösung auch gerne wissen. :)

            Z Offline
            Z Offline
            zokkai
            schrieb am zuletzt editiert von
            #5

            @siggi85 danke dür die Info.
            Ich bin alleridngs auch nur Anwender und kann mir ein paar Blockly's zusammenklöppeln, mehr aber dann auch nicht.
            Von daher werde ich mal sehen, ob ich es anders lösen kann. :grin:

            siggi85S 1 Antwort Letzte Antwort
            0
            • Z zokkai

              @siggi85 danke dür die Info.
              Ich bin alleridngs auch nur Anwender und kann mir ein paar Blockly's zusammenklöppeln, mehr aber dann auch nicht.
              Von daher werde ich mal sehen, ob ich es anders lösen kann. :grin:

              siggi85S Offline
              siggi85S Offline
              siggi85
              schrieb am zuletzt editiert von
              #6

              @zokkai sagte in Dynamische Abfrage Tür/Fenster Status:

              @siggi85 danke dür die Info.
              Ich bin alleridngs auch nur Anwender und kann mir ein paar Blockly's zusammenklöppeln, mehr aber dann auch nicht.
              Von daher werde ich mal sehen, ob ich es anders lösen kann. :grin:

              Wenn ich das doch mal anpassen sollte (wahrscheinlich spätestens wenn deconz umgestellt wird :P ), werde ich das Update hier posten. :)

              1 Antwort Letzte Antwort
              0
              • M Offline
                M Offline
                martinschm
                schrieb am zuletzt editiert von
                #7

                Schaut mal, es gibt jetzt noch ein anderes Skript von @Pittini. Vielleicht lassen sich die Skripte ja vereinigen bzw gemeinsam weiter entwickeln.

                Und vielleicht wird mit @Dutchman's Hilfe auch noch ein Adapter draus.

                P 1 Antwort Letzte Antwort
                0
                • M martinschm

                  Schaut mal, es gibt jetzt noch ein anderes Skript von @Pittini. Vielleicht lassen sich die Skripte ja vereinigen bzw gemeinsam weiter entwickeln.

                  Und vielleicht wird mit @Dutchman's Hilfe auch noch ein Adapter draus.

                  P Offline
                  P Offline
                  Pittini
                  Developer
                  schrieb am zuletzt editiert von Pittini
                  #8

                  @martinschm sagte in Dynamische Abfrage Tür/Fenster Status:

                  Vielleicht lassen sich die Skripte ja vereinigen bzw gemeinsam weiter entwickeln.

                  Grundsätzlich nix dagegen, allerdings hab ich kein Plan von blockly (und will auch keinen haben). Zum anderen ist mein Skript für Türen eher ungeeignet da ich, soweit ich das gesehen, hab nen anderen Ansatz verfolge und auch der Meinung bin das Türen und Fenster nicht in einem Skript verwurstet gehören. Außerdem hab ich nen opt-in Ansatz (Solange nicht anders definiert, wird nix als Fensterkontakt angesehen), das blockly scheint nen opt-out Ansatz zu verfolgen (Erstmal ist alles Fensterkontakt außer es wurde ausgeschlossen). Mein Skript arbeitet zudem Raumbasiert und kann alle Sensoren verwenden egal welcher Adapter sie zur Verfügung stellt, die Zuweisung der Kontakte erfolgt über die Aufzählungen Räume und Funktionen. Dürfte schwierig werden das zu verbinden. Aber wer es sich anguggen will, hier isses zu finden.

                  1 Antwort Letzte Antwort
                  0
                  • DutchmanD Offline
                    DutchmanD Offline
                    Dutchman
                    Developer Most Active Administrators
                    schrieb am zuletzt editiert von
                    #9

                    Ein Script für Türen, eins für Fenster das andere für beide wieder sind nur zur visualisierung ohne telegram das andere telegram

                    Hunderte scripte ==> 1 Adapter wen man sich zusammensetzt und über die Funktionalität einig :)

                    P 1 Antwort Letzte Antwort
                    1
                    • DutchmanD Dutchman

                      Ein Script für Türen, eins für Fenster das andere für beide wieder sind nur zur visualisierung ohne telegram das andere telegram

                      Hunderte scripte ==> 1 Adapter wen man sich zusammensetzt und über die Funktionalität einig :)

                      P Offline
                      P Offline
                      Pittini
                      Developer
                      schrieb am zuletzt editiert von
                      #10

                      @Dutchman sagte in Dynamische Abfrage Tür/Fenster Status:

                      Ein Script für Türen, eins für Fenster das andere für beide wieder sind nur zur visualisierung ohne telegram das andere telegram
                      Hunderte scripte ==> 1 Adapter wen man sich zusammensetzt und über die Funktionalität einig

                      Deswegen hab ich das Fensterskript gemacht, welches möglichst generisch alle Kontakte verwenden kann und Ausgaben via Alexa/Mail/Telegram macht, Lüftungsempfehlung sowie umfangreiche Konfigmöglichkeiten bietet UND auch noch die Daten für Visualisierung zur Verfügung stellt, sowohl als einzelne Datenpunkte als auch als fertige Tabelle. Ich sehe einfach nicht was Türen in diesem Skript zu suchen haben, bei diesen würde ich eher an Alarmoptionen etc. denken. Und klar kann man nen Adapter draus machen, aber was genau wäre der Vorteil eines Adapters gegenüber dem Skript in diesem Fall?

                      siggi85S 1 Antwort Letzte Antwort
                      0
                      • P Pittini

                        @Dutchman sagte in Dynamische Abfrage Tür/Fenster Status:

                        Ein Script für Türen, eins für Fenster das andere für beide wieder sind nur zur visualisierung ohne telegram das andere telegram
                        Hunderte scripte ==> 1 Adapter wen man sich zusammensetzt und über die Funktionalität einig

                        Deswegen hab ich das Fensterskript gemacht, welches möglichst generisch alle Kontakte verwenden kann und Ausgaben via Alexa/Mail/Telegram macht, Lüftungsempfehlung sowie umfangreiche Konfigmöglichkeiten bietet UND auch noch die Daten für Visualisierung zur Verfügung stellt, sowohl als einzelne Datenpunkte als auch als fertige Tabelle. Ich sehe einfach nicht was Türen in diesem Skript zu suchen haben, bei diesen würde ich eher an Alarmoptionen etc. denken. Und klar kann man nen Adapter draus machen, aber was genau wäre der Vorteil eines Adapters gegenüber dem Skript in diesem Fall?

                        siggi85S Offline
                        siggi85S Offline
                        siggi85
                        schrieb am zuletzt editiert von siggi85
                        #11

                        Ich fände einen Adapter auch eine gute Idee. Ist einfacher zu handeln und nutzbarer für die Masse als ein Skript. Das war auch ein Grund das ganze in ein Blockly zu verpacken: Dass kann die Masse auch einfacher auf seine Bedürfnisse anpassen.

                        Obwohl ich das Skript von @Pittini nicht selber implementiert habe, lesen sich die Features sehr durchdacht.
                        Die Idee Fenster und Türen zusammen zu bringen ist einfach: Wenn das Haus verlassen wird, will ich schnell und einfach prüfen können, ob ich vergessen habe was zu schließen. Entweder über einen Smartmirror in der Nähe der Haustür und/oder über eine Ansage, die alle aktuell offenen Fenster und Türen ansagt die noch offen sind wenn die Haustür geöffnet wird und wenn die Zahl offener Türen UND Fenster >0 beträgt.
                        Es kann also durchaus Sinn machen Türen und Fenster zusammen zu betrachten; es hängt nur davon ab, aus welcher Motivation und mit welchem Ziel man diese Daten zusammen bringt. Zum Status vom Lüften ist die Überwachung der Türen natürlich weniger relevant. Da macht das wirklich wenig Sinn.

                        1 Antwort Letzte Antwort
                        0
                        Antworten
                        • In einem neuen Thema antworten
                        Anmelden zum Antworten
                        • Älteste zuerst
                        • Neuste zuerst
                        • Meiste Stimmen


                        Support us

                        ioBroker
                        Community Adapters
                        Donate

                        676

                        Online

                        32.6k

                        Benutzer

                        82.3k

                        Themen

                        1.3m

                        Beiträge
                        Community
                        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                        ioBroker Community 2014-2025
                        logo
                        • Anmelden

                        • Du hast noch kein Konto? Registrieren

                        • Anmelden oder registrieren, um zu suchen
                        • Erster Beitrag
                          Letzter Beitrag
                        0
                        • Home
                        • Aktuell
                        • Tags
                        • Ungelesen 0
                        • Kategorien
                        • Unreplied
                        • Beliebt
                        • GitHub
                        • Docu
                        • Hilfe