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. Skripten / Logik
  4. Blockly
  5. Viele Sensoren überwachen

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Viele Sensoren überwachen

Geplant Angeheftet Gesperrt Verschoben Blockly
blockly
16 Beiträge 4 Kommentatoren 1.2k Aufrufe 8 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.
  • docadamsD Offline
    docadamsD Offline
    docadams
    schrieb am zuletzt editiert von
    #1

    Hallo,
    ich habe eine Reihe von Fenstersensoren, die ich überwachen möchte.
    Prinzipiell ist das ja eine ODER-Schaltung. Nur der entsprechende Logik-Baustein erfasst ja immer nur 2 Sensoren. Mit "externe Eingänge" kann man das zwar etwas optimieren, aber trotzdem... :-(
    Muss ich da jetzt das sooft verschachteln, bis ich alle erfasst habe. Also "oder" drunter "unter-oder" usw.? Das sieht ja äußerst unübersichtlich aus.
    Ich habe zwar schon mit Listen experimentiert, aber nicht zu Stande gebracht.
    Gibt es da eine clevere Lösung?

    paul53P 1 Antwort Letzte Antwort
    0
    • J Offline
      J Offline
      Jan1
      schrieb am zuletzt editiert von
      #2

      Im Moment ist das genau so wie DU schreibst, könnte aber bald ne Änderung kommen, da es bei den Funktionen für Blockly sehr oft gewünscht wird.
      Also abwarten oder im entsprechenden Thread auch noch mal wünschen:wink:

      1 Antwort Letzte Antwort
      1
      • docadamsD docadams

        Hallo,
        ich habe eine Reihe von Fenstersensoren, die ich überwachen möchte.
        Prinzipiell ist das ja eine ODER-Schaltung. Nur der entsprechende Logik-Baustein erfasst ja immer nur 2 Sensoren. Mit "externe Eingänge" kann man das zwar etwas optimieren, aber trotzdem... :-(
        Muss ich da jetzt das sooft verschachteln, bis ich alle erfasst habe. Also "oder" drunter "unter-oder" usw.? Das sieht ja äußerst unübersichtlich aus.
        Ich habe zwar schon mit Listen experimentiert, aber nicht zu Stande gebracht.
        Gibt es da eine clevere Lösung?

        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #3

        @docadams sagte:

        Ich habe zwar schon mit Listen experimentiert,

        Prinzip mit 3 Fenstern:

        Blockly_Fenster_Array.JPG

        Die Reihenfolge in der Liste vals muss mit der Reihenfolge in der Liste IDs übereinstimmen.

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        1 Antwort Letzte Antwort
        2
        • docadamsD Offline
          docadamsD Offline
          docadams
          schrieb am zuletzt editiert von
          #4

          Vielen Dank.
          Da war ich ja eigentlich schon in der richtigen Richtung, aber das hätte ich nie so hinbekommen.

          paul53P 1 Antwort Letzte Antwort
          0
          • docadamsD docadams

            Vielen Dank.
            Da war ich ja eigentlich schon in der richtigen Richtung, aber das hätte ich nie so hinbekommen.

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von paul53
            #5

            Die Funktion check_offen() kann auch so aussehen (nur einmal aktualisiere)

            Blockly_check_offen.JPG

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Antwort Letzte Antwort
            0
            • docadamsD Offline
              docadamsD Offline
              docadams
              schrieb am zuletzt editiert von
              #6

              Hallo, die Hitze macht es möglich, dass ich mich endlich wieder einmal meinem Hobby widmen kann ;-)

              Ich habe es zum Laufen bekommen und denke auch, dass ich die Logik verstanden habe. (bin ansonsten kein Programmierer). Es wird eine Art Matrix erzeugt und in der Schleife darin wird permanent nachgeschaut, ob in der Spalte vals (ist nur eine Name, aber wofür steht der eigentlich?) irgendwann mal false steht. Würde es das System entlasten, wenn ich dies nur alle 1...3 Sekunden abfrage, also ein Timeout einfüge)

              Für die Listen IDs und vals habe ich als Objekt-ID den Wert contact genommen, ist das richtig so?

              Aber beim Wie haperts noch etwas.
              Die Zeile "in der Liste vals setze das pos ein Wert" Verstehe ich nicht ganz. Es wird nachgeschaut, in welcher Zeile erstmals der Wert wahr nicht vorkommt. Soweit OK.

              Warum ich ratlos nachhake hat folgenden Grund.
              Das Programm reagiert korrekt, wenn es läuft und erst dann ein Kontakt geöffnet wird.
              Ich versuche aber einen Weg zu finden, dass es bereits bei Programmstart überprüft, ob bereits ein Kontakt geöffnet ist.
              Praktisches Beispiel: Ich gehe aus dem Haus, aktiviere das Wachprogramm und es ist noch ein Fenster offen. Das bekommt das Programm aber nicht mit. Es reagiert erst, wenn sich ein Status ändert.

              paul53P 1 Antwort Letzte Antwort
              0
              • docadamsD docadams

                Hallo, die Hitze macht es möglich, dass ich mich endlich wieder einmal meinem Hobby widmen kann ;-)

                Ich habe es zum Laufen bekommen und denke auch, dass ich die Logik verstanden habe. (bin ansonsten kein Programmierer). Es wird eine Art Matrix erzeugt und in der Schleife darin wird permanent nachgeschaut, ob in der Spalte vals (ist nur eine Name, aber wofür steht der eigentlich?) irgendwann mal false steht. Würde es das System entlasten, wenn ich dies nur alle 1...3 Sekunden abfrage, also ein Timeout einfüge)

                Für die Listen IDs und vals habe ich als Objekt-ID den Wert contact genommen, ist das richtig so?

                Aber beim Wie haperts noch etwas.
                Die Zeile "in der Liste vals setze das pos ein Wert" Verstehe ich nicht ganz. Es wird nachgeschaut, in welcher Zeile erstmals der Wert wahr nicht vorkommt. Soweit OK.

                Warum ich ratlos nachhake hat folgenden Grund.
                Das Programm reagiert korrekt, wenn es läuft und erst dann ein Kontakt geöffnet wird.
                Ich versuche aber einen Weg zu finden, dass es bereits bei Programmstart überprüft, ob bereits ein Kontakt geöffnet ist.
                Praktisches Beispiel: Ich gehe aus dem Haus, aktiviere das Wachprogramm und es ist noch ein Fenster offen. Das bekommt das Programm aber nicht mit. Es reagiert erst, wenn sich ein Status ändert.

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #7

                @docadams sagte:

                dass es bereits bei Programmstart überprüft, ob bereits ein Kontakt geöffnet ist.

                Das macht der Aufruf der Funktion check_offen über dem Trigger.

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                1 Antwort Letzte Antwort
                0
                • docadamsD Offline
                  docadamsD Offline
                  docadams
                  schrieb am zuletzt editiert von
                  #8

                  Hm, habe ich mir auch gedacht, macht er aber nicht.
                  Ich möchte das Programm über einen Datenpunkt "Ueberwachung" bedienen und habe es entsprechend in einen Trigger und Logikbaustein Ueberwachung eingebunden. Ansonsten habe ich mich im Wesentlichen eigentlich an euer Beispiel gehalten.
                  Aber auch wenn ich das umgehe, macht er es nicht bei Programmstart.

                  Darf ich mal mein Programm hochladen? vieleSensoren1

                  1 Antwort Letzte Antwort
                  0
                  • iomountainI Offline
                    iomountainI Offline
                    iomountain
                    schrieb am zuletzt editiert von
                    #9

                    Nur so als Anregung für deine Liste:
                    c235593f-081e-4c15-9752-f91011f995d2-image.png

                    docadamsD 1 Antwort Letzte Antwort
                    0
                    • iomountainI iomountain

                      Nur so als Anregung für deine Liste:
                      c235593f-081e-4c15-9752-f91011f995d2-image.png

                      docadamsD Offline
                      docadamsD Offline
                      docadams
                      schrieb am zuletzt editiert von
                      #10

                      @iomountain
                      ich habe den RegExp-Baustein nicht gefunden und kenne auch den Befehl nicht. Deshalb habe ich Wikipedia konsultiert. Meinst du die Wildcard, also das Sternchen?
                      Ich möchte aber nicht alle Kontakte auf gleiche Art überprüfen.
                      Ich muss erst mal das eine Problem lösen, dass er mir zu Programmstart nicht schon mal alle Kontakte überprüft, sondern erst nach einem Zustandswechsel sich meldet.

                      iomountainI paul53P 2 Antworten Letzte Antwort
                      0
                      • docadamsD docadams

                        @iomountain
                        ich habe den RegExp-Baustein nicht gefunden und kenne auch den Befehl nicht. Deshalb habe ich Wikipedia konsultiert. Meinst du die Wildcard, also das Sternchen?
                        Ich möchte aber nicht alle Kontakte auf gleiche Art überprüfen.
                        Ich muss erst mal das eine Problem lösen, dass er mir zu Programmstart nicht schon mal alle Kontakte überprüft, sondern erst nach einem Zustandswechsel sich meldet.

                        iomountainI Offline
                        iomountainI Offline
                        iomountain
                        schrieb am zuletzt editiert von
                        #11

                        @docadams
                        unter System ganz unten die Bausteine, brauchst aber auch die aktuelle Java Version.
                        Mehr dazu unter wunschliste-blockly-elemente.

                        1 Antwort Letzte Antwort
                        0
                        • docadamsD docadams

                          @iomountain
                          ich habe den RegExp-Baustein nicht gefunden und kenne auch den Befehl nicht. Deshalb habe ich Wikipedia konsultiert. Meinst du die Wildcard, also das Sternchen?
                          Ich möchte aber nicht alle Kontakte auf gleiche Art überprüfen.
                          Ich muss erst mal das eine Problem lösen, dass er mir zu Programmstart nicht schon mal alle Kontakte überprüft, sondern erst nach einem Zustandswechsel sich meldet.

                          paul53P Offline
                          paul53P Offline
                          paul53
                          schrieb am zuletzt editiert von
                          #12

                          @docadams sagte:

                          dass er mir zu Programmstart nicht schon mal alle Kontakte überprüft, sondern erst nach einem Zustandswechsel sich meldet.

                          Versuche es mal damit

                          <xml xmlns="http://www.w3.org/1999/xhtml">
                           <variables>
                             <variable type="" id="Rk^aDmFW7$UeXGIB+2y{">i</variable>
                             <variable type="" id="J$kmu`hF-Tao=fF;#LA1">j</variable>
                             <variable type="" id="/GdfO@1?DmfT7-79eLOx">IDs</variable>
                             <variable type="" id="8[J/T+l5)*{;k?1ICu*r">vals</variable>
                             <variable type="" id="kMf{9FAv_%VESw.tRR`2">offen</variable>
                             <variable type="" id="f#H!{XjG3*XryC_=6fkn">pos</variable>
                           </variables>
                           <block type="procedures_defnoreturn" id="-ry1]/2V8?+KJf#[Y$,l" x="-462" y="-563">
                             <field name="NAME">Wachprogramm-Signalisierung</field>
                             <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                             <statement name="STACK">
                               <block type="control" id="($Q@0OhIPY~,V(=Ds--L" disabled="true">
                                 <mutation delay_input="true"></mutation>
                                 <field name="OID">tr-064.0.states.ring</field>
                                 <field name="WITH_DELAY">TRUE</field>
                                 <field name="DELAY_MS">11</field>
                                 <field name="UNIT">ms</field>
                                 <field name="CLEAR_RUNNING">FALSE</field>
                                 <value name="VALUE">
                                   <block type="text" id="6HLNAWc|1(Kq[q+Mn|lq">
                                     <field name="TEXT">**613,6</field>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="control" id="Cml,,4/]b@X6Ur[g#JI:">
                                     <mutation delay_input="true"></mutation>
                                     <field name="OID">tr-064.0.states.ring</field>
                                     <field name="WITH_DELAY">TRUE</field>
                                     <field name="DELAY_MS">2222</field>
                                     <field name="UNIT">ms</field>
                                     <field name="CLEAR_RUNNING">FALSE</field>
                                     <value name="VALUE">
                                       <block type="text" id="(I*JRnyDlL|yscxB8f}N">
                                         <field name="TEXT">**610,11</field>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="control" id="]uR*)ymj%x/+I+eq`lEt" disabled="true">
                                         <mutation delay_input="true"></mutation>
                                         <field name="OID">tr-064.0.states.ring</field>
                                         <field name="WITH_DELAY">TRUE</field>
                                         <field name="DELAY_MS">4444</field>
                                         <field name="UNIT">ms</field>
                                         <field name="CLEAR_RUNNING">FALSE</field>
                                         <value name="VALUE">
                                           <block type="text" id="`L^(Kg3l${)|WajMApUd">
                                             <field name="TEXT">**612,11</field>
                                           </block>
                                         </value>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                             </statement>
                           </block>
                           <block type="procedures_defcustomnoreturn" id="ahfL^da?VRz_]X1jp]*H" x="-462" y="-413">
                             <mutation statements="false">
                               <arg name="i" varid="Rk^aDmFW7$UeXGIB+2y{"></arg>
                               <arg name="j" varid="J$kmu`hF-Tao=fF;#LA1"></arg>
                             </mutation>
                             <field name="NAME">Fenster-ALARM</field>
                             <field name="SCRIPT">ZXZlbnQoJ0FMQVJNISA6ICcgK2kgK2osICd3YWNoZScsICcjRkYwMDQwJyk7</field>
                             <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                           </block>
                           <block type="procedures_defcustomnoreturn" id="[Uoks-jLBro3Pz^!d(9t" x="-462" y="-387">
                             <mutation statements="false">
                               <arg name="i" varid="Rk^aDmFW7$UeXGIB+2y{"></arg>
                               <arg name="j" varid="J$kmu`hF-Tao=fF;#LA1"></arg>
                             </mutation>
                             <field name="NAME">Fenster-ALARM2</field>
                             <field name="SCRIPT">ZXZlbnQoJ0FMQVJNISA6ICcgK2kgK2osICdhbGFybScsICcjRkYwMDQwJyk7</field>
                             <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                           </block>
                           <block type="procedures_defnoreturn" id="ASeG#*f9[M#sIOhKTF50" x="-462" y="-363">
                             <field name="NAME">fenster_offen</field>
                             <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                             <statement name="STACK">
                               <block type="controls_if" id="oJLkc[`#i7kB6Cd[4}F-">
                                 <value name="IF0">
                                   <block type="logic_compare" id="qNy*Cc{L.:vlPW?#zG-%">
                                     <field name="OP">EQ</field>
                                     <value name="A">
                                       <block type="get_value" id="0S_(j6Rs`X6CIy}v$`$0">
                                         <field name="ATTR">val</field>
                                         <field name="OID">datenpunkte.0.Sicherheit.Ueberwachung</field>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <block type="logic_boolean" id="f1?!-UOCuNvVa2JN_NAK">
                                         <field name="BOOL">TRUE</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <statement name="DO0">
                                   <block type="variables_set" id="x.c99:a@;Kb;l_w*-E|e">
                                     <field name="VAR" id="kMf{9FAv_%VESw.tRR`2" variabletype="">offen</field>
                                     <value name="VALUE">
                                       <block type="logic_boolean" id="4C4VWprVGA07,AP:DHGY">
                                         <field name="BOOL">FALSE</field>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="controls_for" id="D4~h:^PVTYbYdR75AAEZ">
                                         <field name="VAR" id="Rk^aDmFW7$UeXGIB+2y{" variabletype="">i</field>
                                         <value name="FROM">
                                           <shadow type="math_number" id="[Bh]8@Fz;F4N(A;aC7+[">
                                             <field name="NUM">1</field>
                                           </shadow>
                                           <block type="math_number" id="x9ty_f/QWzs,gjj6Z#PF">
                                             <field name="NUM">1</field>
                                           </block>
                                         </value>
                                         <value name="TO">
                                           <shadow type="math_number" id="/p+X{GnH*knr+|Z-1Pvy">
                                             <field name="NUM">10</field>
                                           </shadow>
                                           <block type="lists_length" id="_A,T`PBdy*XH5TUaps#V">
                                             <value name="VALUE">
                                               <block type="variables_get" id="X*0a]AG(~.R6=MDSu,aV">
                                                 <field name="VAR" id="8[J/T+l5)*{;k?1ICu*r" variabletype="">vals</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <value name="BY">
                                           <shadow type="math_number" id="mKSWLn0?yPZuFSS].f*k">
                                             <field name="NUM">1</field>
                                           </shadow>
                                           <block type="math_number" id="e1S5g]GhYBK?-|1g*|G7">
                                             <field name="NUM">1</field>
                                           </block>
                                         </value>
                                         <statement name="DO">
                                           <block type="comment" id="%1N6*]9~2m-(i1%j1-JJ">
                                             <field name="COMMENT">irgendwer ist offen</field>
                                             <next>
                                               <block type="controls_if" id="L$Ry^?]k{Zx[|[3H/Qcu">
                                                 <value name="IF0">
                                                   <block type="lists_getIndex" id="i(xsr-[OM.})/IbEnpKY">
                                                     <mutation statement="false" at="true"></mutation>
                                                     <field name="MODE">GET</field>
                                                     <field name="WHERE">FROM_START</field>
                                                     <value name="VALUE">
                                                       <block type="variables_get" id="+^)nZxcb`=-G#o$5IaU+">
                                                         <field name="VAR" id="8[J/T+l5)*{;k?1ICu*r" variabletype="">vals</field>
                                                       </block>
                                                     </value>
                                                     <value name="AT">
                                                       <block type="variables_get" id="ZbCR!^4`6nF(K|LaD%w0">
                                                         <field name="VAR" id="Rk^aDmFW7$UeXGIB+2y{" variabletype="">i</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <statement name="DO0">
                                                   <block type="variables_set" id="mNfLJ2i{Il|!i#LQC.YO">
                                                     <field name="VAR" id="kMf{9FAv_%VESw.tRR`2" variabletype="">offen</field>
                                                     <value name="VALUE">
                                                       <block type="logic_boolean" id="4#XPePj!UG}k%*/rD)m#">
                                                         <field name="BOOL">TRUE</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </statement>
                                               </block>
                                             </next>
                                           </block>
                                         </statement>
                                         <next>
                                           <block type="controls_if" id="!q@FI%iL}HvEZJ~/(NTf">
                                             <value name="IF0">
                                               <block type="logic_operation" id="x)mH+t;^6o!%.k+PMzvU" inline="false">
                                                 <field name="OP">AND</field>
                                                 <value name="A">
                                                   <block type="logic_compare" id="tJ`W4LTE$_9^V(:inN6l" disabled="true">
                                                     <field name="OP">EQ</field>
                                                     <value name="A">
                                                       <block type="get_value" id="~M5pr`e+OjBwdP{F1v:h">
                                                         <field name="ATTR">val</field>
                                                         <field name="OID">datenpunkte.0.Sicherheit.Ueberwachung</field>
                                                       </block>
                                                     </value>
                                                     <value name="B">
                                                       <block type="logic_boolean" id="Wx7S8)MbFAHmqcXeO{eq">
                                                         <field name="BOOL">TRUE</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <value name="B">
                                                   <block type="variables_get" id="^D,Ww`@XZ=[d}X}}]bMf">
                                                     <field name="VAR" id="kMf{9FAv_%VESw.tRR`2" variabletype="">offen</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <statement name="DO0">
                                               <block type="update" id="KZKfnfmI@mW4jfCdK0,K">
                                                 <mutation delay_input="true"></mutation>
                                                 <field name="OID">datenpunkte.0.Sicherheit.Alarm_ausgeloest</field>
                                                 <field name="WITH_DELAY">TRUE</field>
                                                 <field name="DELAY_MS">100</field>
                                                 <field name="UNIT">ms</field>
                                                 <field name="CLEAR_RUNNING">FALSE</field>
                                                 <value name="VALUE">
                                                   <block type="logic_boolean" id="3V|A|19nFL!l#v.1sm)J">
                                                     <field name="BOOL">TRUE</field>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="procedures_callcustomnoreturn" id=")nO6)zFe%FBBh,o*)W~O">
                                                     <mutation name="Fenster-ALARM2">
                                                       <arg name="i"></arg>
                                                       <arg name="j"></arg>
                                                     </mutation>
                                                     <value name="ARG0">
                                                       <block type="text" id="5^nRK(gsUL9SO!oi5{E:">
                                                         <field name="TEXT">MInd. ein Fenster</field>
                                                       </block>
                                                     </value>
                                                     <value name="ARG1">
                                                       <block type="text" id="ICg]u2@%p-c($95DFiPD">
                                                         <field name="TEXT"> ist offen</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </next>
                                               </block>
                                             </statement>
                                           </block>
                                         </next>
                                       </block>
                                     </next>
                                   </block>
                                 </statement>
                               </block>
                             </statement>
                           </block>
                           <block type="variables_set" id="iawYCQpa_(7N#{AY1#jV" x="-463" y="113">
                             <field name="VAR" id="/GdfO@1?DmfT7-79eLOx" variabletype="">IDs</field>
                             <value name="VALUE">
                               <block type="lists_create_with" id=";g-cb6jtC6`)oTX50388">
                                 <mutation items="3"></mutation>
                                 <value name="ADD0">
                                   <block type="field_oid" id="d$Y^+q5Z*iY.,2m$N.T5">
                                     <field name="oid">zigbee.0.00158d000346b2a2.contact</field>
                                   </block>
                                 </value>
                                 <value name="ADD1">
                                   <block type="field_oid" id="g,}{KnW)a/y.DL^z4#E*">
                                     <field name="oid">zigbee.0.00158d0002c160cc.contact</field>
                                   </block>
                                 </value>
                                 <value name="ADD2">
                                   <block type="field_oid" id="#{hl]:YkTub_s3,CP49{">
                                     <field name="oid">zigbee.0.00158d000346b2a4.contact</field>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <next>
                               <block type="variables_set" id="eU!W:MCRqK|!H3u.uru)">
                                 <field name="VAR" id="8[J/T+l5)*{;k?1ICu*r" variabletype="">vals</field>
                                 <value name="VALUE">
                                   <block type="lists_create_with" id="]k6/G(HTL7h0Hxg%QH|4">
                                     <mutation items="3"></mutation>
                                     <value name="ADD0">
                                       <block type="get_value" id="9uS`y4x9NJLlRD$K06_V">
                                         <field name="ATTR">val</field>
                                         <field name="OID">zigbee.0.00158d000346b2a2.contact</field>
                                       </block>
                                     </value>
                                     <value name="ADD1">
                                       <block type="get_value" id="D^sFT@oA5|oVaKNqRVJ]">
                                         <field name="ATTR">val</field>
                                         <field name="OID">zigbee.0.00158d0002c160cc.contact</field>
                                       </block>
                                     </value>
                                     <value name="ADD2">
                                       <block type="get_value" id="M/~pi(Ob?hksRk){HU,_">
                                         <field name="ATTR">val</field>
                                         <field name="OID">zigbee.0.00158d000346b2a4.contact</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="procedures_callnoreturn" id="5XLgeqzY)y/1VX`K}]yu">
                                     <mutation name="fenster_offen"></mutation>
                                     <next>
                                       <block type="on_ext" id="39tigNFo`CBq*1#tukiS">
                                         <mutation items="1"></mutation>
                                         <field name="CONDITION">ne</field>
                                         <field name="ACK_CONDITION"></field>
                                         <value name="OID0">
                                           <shadow type="field_oid" id="0w#0]X;`k(@cQ+f}KAS+">
                                             <field name="oid">datenpunkte.0.Sicherheit.Ueberwachung</field>
                                           </shadow>
                                         </value>
                                         <statement name="STATEMENT">
                                           <block type="controls_if" id="!hf@2`Fnt)Tc0PGf7)c,">
                                             <mutation else="1"></mutation>
                                             <value name="IF0">
                                               <block type="logic_compare" id="[(%y9Rx4Ygd7G)p@)SYt">
                                                 <field name="OP">EQ</field>
                                                 <value name="A">
                                                   <block type="get_value" id="uJ_SCW/F%mq%+JBg16r3">
                                                     <field name="ATTR">val</field>
                                                     <field name="OID">datenpunkte.0.Sicherheit.Ueberwachung</field>
                                                   </block>
                                                 </value>
                                                 <value name="B">
                                                   <block type="logic_boolean" id="[}j=G%N6cBOdVCT(y)Ic">
                                                     <field name="BOOL">TRUE</field>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                             <statement name="DO0">
                                               <block type="procedures_callnoreturn" id="_D[,A=V4Ibr$lMqv_1Mq">
                                                 <mutation name="Wachprogramm-Signalisierung"></mutation>
                                                 <next>
                                                   <block type="procedures_callnoreturn" id="T3KU/}xLy2@DAZd+X:P#">
                                                     <mutation name="fenster_offen"></mutation>
                                                   </block>
                                                 </next>
                                               </block>
                                             </statement>
                                             <statement name="ELSE">
                                               <block type="comment" id="]FV*JD|as^Q-Sm/HzXYD">
                                                 <field name="COMMENT">wenn Wachprogramm deaktiviert wird</field>
                                                 <next>
                                                   <block type="procedures_callnoreturn" id="mXtEmbx[?wRcmBHZ(/i=">
                                                     <mutation name="Wachprogramm-Signalisierung"></mutation>
                                                   </block>
                                                 </next>
                                               </block>
                                             </statement>
                                           </block>
                                         </statement>
                                         <next>
                                           <block type="on_ext" id="5D{A|juBwX.|1P`~QrL#">
                                             <mutation items="1"></mutation>
                                             <field name="CONDITION">ne</field>
                                             <field name="ACK_CONDITION"></field>
                                             <value name="OID0">
                                               <shadow type="field_oid" id="UEjvx3$:/x0yOa=IJMeZ">
                                                 <field name="oid">default</field>
                                               </shadow>
                                               <block type="variables_get" id="d(hm(f_VNpi[I:zUey#P">
                                                 <field name="VAR" id="/GdfO@1?DmfT7-79eLOx" variabletype="">IDs</field>
                                               </block>
                                             </value>
                                             <statement name="STATEMENT">
                                               <block type="variables_set" id="uCFiueCh`%R($vA`lHv9">
                                                 <field name="VAR" id="f#H!{XjG3*XryC_=6fkn" variabletype="">pos</field>
                                                 <value name="VALUE">
                                                   <block type="lists_indexOf" id="enRj`2{L10]]6s3)Sakt">
                                                     <field name="END">FIRST</field>
                                                     <value name="VALUE">
                                                       <block type="variables_get" id="T36:[7VXP%}vq0uQ;Jfo">
                                                         <field name="VAR" id="/GdfO@1?DmfT7-79eLOx" variabletype="">IDs</field>
                                                       </block>
                                                     </value>
                                                     <value name="FIND">
                                                       <block type="on_source" id="WDaw2|:nhwJ$an3T@.Ro">
                                                         <field name="ATTR">id</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <next>
                                                   <block type="lists_setIndex" id="6=m_.*WqE$KQA):E:5:Q">
                                                     <mutation at="true"></mutation>
                                                     <field name="MODE">SET</field>
                                                     <field name="WHERE">FROM_START</field>
                                                     <value name="LIST">
                                                       <block type="variables_get" id="K$!T3j*{Km(3S#W;Qw_G">
                                                         <field name="VAR" id="8[J/T+l5)*{;k?1ICu*r" variabletype="">vals</field>
                                                       </block>
                                                     </value>
                                                     <value name="AT">
                                                       <block type="variables_get" id="*HqCmzkl!@@zFuXh3IYC">
                                                         <field name="VAR" id="f#H!{XjG3*XryC_=6fkn" variabletype="">pos</field>
                                                       </block>
                                                     </value>
                                                     <value name="TO">
                                                       <block type="on_source" id="zR+2[qeB|,zwJJiVLpC(">
                                                         <field name="ATTR">state.val</field>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="controls_if" id="vUfC1EMje*;t/yP3^~f#">
                                                         <mutation else="1"></mutation>
                                                         <value name="IF0">
                                                           <block type="on_source" id="s(a!d^b.i%W)E@JgUZ0N">
                                                             <field name="ATTR">state.val</field>
                                                           </block>
                                                         </value>
                                                         <statement name="DO0">
                                                           <block type="controls_if" id="6r7C.6!RC1[6y!aT??)9">
                                                             <value name="IF0">
                                                               <block type="logic_compare" id="?N:H|7fBL?%~)lCL#(at">
                                                                 <field name="OP">EQ</field>
                                                                 <value name="A">
                                                                   <block type="get_value" id="{KZ851xV@KWiSB;_R@Nb">
                                                                     <field name="ATTR">val</field>
                                                                     <field name="OID">datenpunkte.0.Sicherheit.Ueberwachung</field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="B">
                                                                   <block type="logic_boolean" id="s=Df%1(N5@)dOC;]_lUD">
                                                                     <field name="BOOL">TRUE</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <statement name="DO0">
                                                               <block type="update" id="Ra`)hTf_Q:+inlQdZ3Oa">
                                                                 <mutation delay_input="true"></mutation>
                                                                 <field name="OID">datenpunkte.0.Sicherheit.Alarm_ausgeloest</field>
                                                                 <field name="WITH_DELAY">TRUE</field>
                                                                 <field name="DELAY_MS">100</field>
                                                                 <field name="UNIT">ms</field>
                                                                 <field name="CLEAR_RUNNING">FALSE</field>
                                                                 <value name="VALUE">
                                                                   <block type="logic_boolean" id=")(sOgo=2_8o,g,.AvCk/">
                                                                     <field name="BOOL">TRUE</field>
                                                                   </block>
                                                                 </value>
                                                                 <next>
                                                                   <block type="procedures_callcustomnoreturn" id="B[OsE$4M(5w5ryvz@!gG">
                                                                     <mutation name="Fenster-ALARM2">
                                                                       <arg name="i"></arg>
                                                                       <arg name="j"></arg>
                                                                     </mutation>
                                                                     <value name="ARG0">
                                                                       <block type="on_source" id="cPOT3t;T2$5.$j0Fx7Ye">
                                                                         <field name="ATTR">common.name</field>
                                                                       </block>
                                                                     </value>
                                                                     <value name="ARG1">
                                                                       <block type="text" id="jntdl:=UjUi9,-`zLEb;">
                                                                         <field name="TEXT"> ist offen</field>
                                                                       </block>
                                                                     </value>
                                                                   </block>
                                                                 </next>
                                                               </block>
                                                             </statement>
                                                           </block>
                                                         </statement>
                                                         <statement name="ELSE">
                                                           <block type="procedures_callnoreturn" id=".^YTg_VRK3k}SaqEa#q.">
                                                             <mutation name="fenster_offen"></mutation>
                                                           </block>
                                                         </statement>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </next>
                                               </block>
                                             </statement>
                                           </block>
                                         </next>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                          </xml>
                          

                          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                          1 Antwort Letzte Antwort
                          0
                          • docadamsD Offline
                            docadamsD Offline
                            docadams
                            schrieb am zuletzt editiert von
                            #13

                            Funktioniert leider auch nicht. Es reagiert zwar jetzt auf den Statuswechsel offen --> geschlossen, aber das wäre kein Problem, ich könnte ja statt des contact-Wertes den is open-Wert nehmen. Aber beim Programmstart wird noch nicht auf ein false reagiert.

                            paul53P 1 Antwort Letzte Antwort
                            0
                            • docadamsD docadams

                              Funktioniert leider auch nicht. Es reagiert zwar jetzt auf den Statuswechsel offen --> geschlossen, aber das wäre kein Problem, ich könnte ja statt des contact-Wertes den is open-Wert nehmen. Aber beim Programmstart wird noch nicht auf ein false reagiert.

                              paul53P Offline
                              paul53P Offline
                              paul53
                              schrieb am zuletzt editiert von
                              #14

                              @docadams sagte:

                              Aber beim Programmstart wird noch nicht auf ein false reagiert.

                              Wie soll die Reaktion aussehen ?

                              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                              1 Antwort Letzte Antwort
                              0
                              • docadamsD Offline
                                docadamsD Offline
                                docadams
                                schrieb am zuletzt editiert von
                                #15

                                Jetzt in der Aufbau- und Bastelphase geht ein Licht an, später soll das Haustelefon klingeln, eine Telegramnachricht verschickt werden und eine Sirene heulen. Naja......
                                Ein Datenpunkt "Alarm ausgelöst" soll wahr werden.

                                Es funktioniert jetzt schon, wenn das Programm bereits läuft und dann ein Fenster geöffnet wird. Alles bestens. Ich vermute deshalb, weil ein Zustandswechsel von wahr auf falsch erfolgt

                                Aber wenn das Programm gestartet wird, und das Fenster ist bereits offen, dann passiert nichts. Ich vermute, weil kein Zustandswechsel erfolgt, sondern der Zustand falsch bereits vorhanden ist. Darum vorhin die Frage, dass ich noch nicht begriffen habe , wie es funktioniert.

                                paul53P 1 Antwort Letzte Antwort
                                0
                                • docadamsD docadams

                                  Jetzt in der Aufbau- und Bastelphase geht ein Licht an, später soll das Haustelefon klingeln, eine Telegramnachricht verschickt werden und eine Sirene heulen. Naja......
                                  Ein Datenpunkt "Alarm ausgelöst" soll wahr werden.

                                  Es funktioniert jetzt schon, wenn das Programm bereits läuft und dann ein Fenster geöffnet wird. Alles bestens. Ich vermute deshalb, weil ein Zustandswechsel von wahr auf falsch erfolgt

                                  Aber wenn das Programm gestartet wird, und das Fenster ist bereits offen, dann passiert nichts. Ich vermute, weil kein Zustandswechsel erfolgt, sondern der Zustand falsch bereits vorhanden ist. Darum vorhin die Frage, dass ich noch nicht begriffen habe , wie es funktioniert.

                                  paul53P Offline
                                  paul53P Offline
                                  paul53
                                  schrieb am zuletzt editiert von
                                  #16

                                  @docadams sagte:

                                  weil ein Zustandswechsel von wahr auf falsch erfolgt

                                  Bei einem Zustandswechsel von falsch auf wahr wird der Datenpunkt "Alarm ausgelöst" wahr.

                                  Beim Programmstart wird die Funktion fenster_offen aufgerufen, in der geprüft wird, ob mind. 1 Fenster offen ist. Falls ein Fenster offen ist und "Sicherheit.Ueberwachung" wahr ist, wird "Alarm ausgelöst" auf wahr gesetzt.

                                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                                  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

                                  829

                                  Online

                                  32.7k

                                  Benutzer

                                  82.4k

                                  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