Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. Zustandsänderung DP von mehreren DPs über ID von Selektor?

    NEWS

    • Neues Video "KI im Smart Home" - ioBroker plus n8n

    • Neues Video über Aliase, virtuelle Geräte und Kategorien

    • Wir empfehlen: Node.js 22.x

    Zustandsänderung DP von mehreren DPs über ID von Selektor?

    This topic has been deleted. Only users with topic management privileges can see it.
    • haus-automatisierung
      haus-automatisierung Developer Most Active @actionbyte last edited by

      @actionbyte ID von Selektor hat erstmal nichts mit Triggern zu tun. Du bekommst eine Liste mit IDs, welche "treffen". Welche das sind, hängt von der Definition ab.

      Das hat auch nichts mit true oder anderen Werten / dem Datentyp zu tun.

      Du könntest also auch mit einer Schleife über all diese IDs gehen und schauen, wie der Wert ist oder wann er zuletzt geändert wurde (state.lc).

      David G. 1 Reply Last reply Reply Quote 0
      • actionbyte
        actionbyte last edited by

        @haus-automatisierung sagte in Zustandsänderung DP von mehreren DPs über ID von Selektor?:

        Du könntest also auch mit einer Schleife über all diese IDs gehen und schauen, wie der Wert ist oder wann er zuletzt geändert wurde (state.lc).

        Hallo Matthias, der IDvSelektor ist natürlich kein Trigger, ich wollte ihn nur Anfangs aus Mangel an Wissen/Ideen an einem Trigger verwenden.
        Mit state.lc habe ich mich noch nicht beschäftigt, hast du ein Link zu einem hilfreichen Beispiel?

        1 Reply Last reply Reply Quote 0
        • David G.
          David G. @haus-automatisierung last edited by David G.

          So ähnlich würde ich es auch machen.

          Trigger mit einem entsprechenden selector.
          Dann anhand des selectors eine Schleife erstellen.

          In der Schleife dann den Wert und das Alter prüfen (für das Alter braucht man ggf einen js Baustein? Da muss ggf jemand anderes helfen.)

          Edit:
          In etwa so.

          Screenshot_20220409-113844_Chrome.jpg

          Nur wo man die Zeit her bekommt weiß in in dem Fall nicht.

          EDIT2:
          So in der Art? Musste klappen oder?
          Muss man sich nur noch die Formel zum berechnen des Alters bauen.

          Screenshot_20220409-115246_Chrome.jpg

          EDIT3:
          Hier bekomme ich von allen Geräten eine Telegram die in den letzten 10sek auf true bzw 1 geändert wurden:

          Screenshot_20220409-130223_Chrome.jpg

          So kann man sich ja jetzt Listen, Tabellen etc erstellen.

          1 Reply Last reply Reply Quote 1
          • paul53
            paul53 @actionbyte last edited by

            @actionbyte sagte: innerhalb von z.B. 10 Sekunden den Zustand von 0 -> 1 ändern. Die IDs der geänderten DPs möchte ich eine Variabel schreiben, aber nur diese.

            Vorschlag:

            Bild_2022-04-09_150541566.png

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

              @actionbyte
              Falls nur einmal zum Ende der Trigger-Serie erfasst werden soll, muss man eine Verzögerung verwenden.

              Bild_2022-04-10_090818733.png

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

                @actionbyte sagte in Zustandsänderung DP von mehreren DPs über ID von Selektor?:

                Hi,
                Szenario:
                x-Datenpunkte von denen 1 oder mehrere innerhalb von z.B. 10 Sekunden den Zustand von 0 -> 1 ändern.
                Die IDs der geänderten DPs möchte ich eine Variabel schreiben, aber nur diese.
                Also nicht die, die eventuell schon vor der Änderung auf 1 waren oder gar innerhalb der 10 Sekunden auf 0 gewechselt haben.
                Geht das mit ID von Selektor? Damit bekomme ich doch eigentlich nur alle DPs nach Trigger heraus die danach auf "true" stehen und nicht die Änderung 0 -> 1, richtig?

                Falsch.

                Wenn du

                • einen trigger auf eine Liste von ID’s setzt (wurde geändert)
                • im trigger den Baustein ObjectID aus dem trigger Bereich nutzt
                  Kannst du damit feststellen welcher der datenpunkte sich geändert hat.

                Nun geht es so:

                • Variable “chagendstates” definieren, mit einer leeren Liste initialisieren
                • Trigger auf die datenpunkte, wurde geändert
                • Falls nicht timeout und ‘wert’ mache starte timeout in 10 Sekunden -.> Inhalt von changedstates in einem datenpunkt Schreiben, changedstates auf leere Liste setzen
                • falls ‘wert’ mache: ‘objektID’ an ‘changedstates’ anhängen, sonst: nach ‘objektID’ in ‘changedstates’ suchen und aus der Liste entfernen.

                Damit baut sich getriggert von der ersten Änderung eines DP auf wahr eine liste der datenpunkte auf die innerhalb der 10 Sekunden auf wahr gewechselt haben und nicht wieder auf falsch zurück sind.

                Blockly beispielcode kann ich heute Abend liefern.

                A.

                Screen Shot 2022-04-10 at 16.31.58 .png

                1 Reply Last reply Reply Quote 2
                • actionbyte
                  actionbyte last edited by

                  Danke für die erstellten Beispiele. @Asgothian: Dein Script kann ich nur in Teilen praktisch nachvollziehen, der letzte Listenbaustein "remove #" kann ich so nicht einfügen, nicht vorhanden?

                  Ich möchte konkreter werden: wie schon häufig versucht möchte ich eine Begrüßung durch Alexa mittels Radar Adapter und Türkontakt. Eigentlich ziemlich einfach, allerdings möchte ich bei einer Anwesenheitsänderung erkenen wieviele Bewohner beim Trigger Türkontakt das Haus betrehten und eben nur eine oder mehrere Personen gleichzeitig begrüßen.
                  Ich erfasse also eine Änderung über Radar, warte 10 Sekunden ob noch jmd über radar sich anmeldet. Diese Änderungen (>=1) soll beim Trigger Türkontrakt dann korrekt ausgewertet werden, also "Hallo Peter!" oder eben "Hallo Peter und Maria!".

                  Möglich das o.g. Konstrukt hierfür anzuwenden oder andere Lösung besser?

                  Asgothian paul53 2 Replies Last reply Reply Quote 0
                  • Asgothian
                    Asgothian Developer @actionbyte last edited by

                    @actionbyte dafür ist es nutzbar.

                    Der Baustein mit “entferne…” ist eine der möglichen Einstellungen des “nimm” Bausteins in den Listen. Ich kann den leider heute nicht posten.

                    A.

                    actionbyte 1 Reply Last reply Reply Quote 0
                    • actionbyte
                      actionbyte @Asgothian last edited by actionbyte

                      @asgothian sagte in Zustandsänderung DP von mehreren DPs über ID von Selektor?:

                      Der Baustein mit “entferne…” ist eine der möglichen Einstellungen des “nimm” Bausteins in den Listen.

                      Gefunden, danke. Ich wusste nicht das der Baustein nach Auswahl die Struktur ändert, coole Sache.
                      Abgsehen davon habe ich schon ein Verständnisproblem beim Erfassen über den IDSelektor.

                      Ich hoffe deine Vorgabe entsprechend halbwegs korrekt umgesetzt zu haben. Als Trigger nutze ich vorerst ein Zigbee Würfel und für den Versuch nehme ich die vorhande Aufzählung meiner Fenster (da brauche ich das ein oder andere nur öffnen anstatt die Handys ein- und auszuschalten oder meine Frau bitten muss unsere Wohung ständig zu verlassen 😉 ), jedoch liefert mir IVS unsinnige Ergebnisse.
                      Zudem ist mir nicht ganz klar wie der so gebaute Timeout die Ereignisse während der letzten 10 Sekunden festhalten soll, so wie jetzt konstruiert werden doch nur die Ergebnisse nach 3 Sekunden erfasst, oder habe ich das Setzen der Variabel Timeout falsch umgesetzt?
                      Ich habe da wohl noch etliche Fehler drin. 😞

                      <xml xmlns="https://developers.google.com/blockly/xml">
                       <variables>
                         <variable id="vdwwr]?6{?cv/cU,=b,i">Versuch Nr</variable>
                         <variable id="dwr.Mrs3?j3Z,^YB)H-L">Geraet_dp</variable>
                         <variable id="Lwr#)gq-SprTeGEpm1z|">timeout</variable>
                         <variable id="VXoQOS[~W!W+;S(Sty0a">Anwesend</variable>
                         <variable id="#3W//wc3hA/%wNm1p70~">id_Mitbewohner</variable>
                         <variable id="cayivWZ]0_O{ShFNX`XL">index</variable>
                         <variable type="timeout" id="timeout">timeout</variable>
                         <variable id="h{N`{}Qlm1I0G!t;SDPC">Name Mitbewohner</variable>
                       </variables>
                       <block type="variables_set" id="e[w[hQ;]/%_=:RW}hokZ" x="-437" y="-612">
                         <field name="VAR" id="vdwwr]?6{?cv/cU,=b,i">Versuch Nr</field>
                         <value name="VALUE">
                           <block type="math_number" id=";]NgL]UV$81#i^h-OYVI">
                             <field name="NUM">0</field>
                           </block>
                         </value>
                         <next>
                           <block type="on_ext" id="R9Y~#OzYui9j@k=Cg}OB">
                             <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                             <field name="CONDITION">true</field>
                             <field name="ACK_CONDITION"></field>
                             <value name="OID0">
                               <shadow type="field_oid" id="DAw+%x9`1ILfcm]rCm@I">
                                 <field name="oid">zigbee.0.00158d00029bbc84.flip90</field>
                               </shadow>
                             </value>
                             <statement name="STATEMENT">
                               <block type="math_change" id="m#RqfYtof%;:7fa1H]J!">
                                 <field name="VAR" id="vdwwr]?6{?cv/cU,=b,i">Versuch Nr</field>
                                 <value name="DELTA">
                                   <shadow type="math_number" id="fCK,}1%u;,!sJHHB@Xw/">
                                     <field name="NUM">1</field>
                                   </shadow>
                                   <block type="math_number" id="]v)4WM$Xum99#T)g9:/G">
                                     <field name="NUM">1</field>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="variables_set" id="{gIM~P3Yy3_7h9N)9l,^">
                                     <field name="VAR" id="Lwr#)gq-SprTeGEpm1z|">timeout</field>
                                     <value name="VALUE">
                                       <block type="logic_boolean" id=")N)+jccbia}of[}J7!#g">
                                         <field name="BOOL">FALSE</field>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="debug" id="7/yOP_sFt7|!$di4NQ/r">
                                         <field name="Severity">log</field>
                                         <value name="TEXT">
                                           <shadow type="text" id="fPH33egeDd]9kCa{xL4$">
                                             <field name="TEXT">test</field>
                                           </shadow>
                                           <block type="text_join" id="OI{}Z6zpTNJ8Qq6NAr^T">
                                             <mutation items="2"></mutation>
                                             <value name="ADD0">
                                               <block type="text" id=",M^V@LJ9myVk8embZi]c">
                                                 <field name="TEXT">Versuch Nummer: </field>
                                               </block>
                                             </value>
                                             <value name="ADD1">
                                               <block type="variables_get" id="stZS6}{#%y5mbk{`.ogB">
                                                 <field name="VAR" id="vdwwr]?6{?cv/cU,=b,i">Versuch Nr</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <next>
                                           <block type="variables_set" id="bE1TlPA~dShzEeOegxH#">
                                             <field name="VAR" id="VXoQOS[~W!W+;S(Sty0a">Anwesend</field>
                                             <value name="VALUE">
                                               <block type="lists_create_with" id="5[`t5i[%GkaNZSr[xX2w">
                                                 <mutation items="0"></mutation>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="controls_forEach" id="*N!2Nm|Qz_hsaxzNghU1">
                                                 <field name="VAR" id="#3W//wc3hA/%wNm1p70~">id_Mitbewohner</field>
                                                 <value name="LIST">
                                                   <block type="selector" id="WsIR?,[EkN1C@QSn[?a0">
                                                     <field name="TEXT">state[id=*](functions=window)</field>
                                                   </block>
                                                 </value>
                                                 <statement name="DO">
                                                   <block type="controls_if" id="rIAoOEkQ0A,kTV{#]XMs">
                                                     <value name="IF0">
                                                       <block type="logic_operation" id="$Lk;K~;u{Lp=%=V#8]/N">
                                                         <field name="OP">AND</field>
                                                         <value name="A">
                                                           <block type="logic_compare" id="tGui*#9Q|GOkw#FJbu6V">
                                                             <field name="OP">EQ</field>
                                                             <value name="A">
                                                               <block type="get_value_var" id="|r+jJ)l@U^HH`EIIHz$2">
                                                                 <field name="ATTR">val</field>
                                                                 <value name="OID">
                                                                   <shadow type="text" id="%H(njzZx?tR!@Kt;dYcT">
                                                                     <field name="TEXT"></field>
                                                                   </shadow>
                                                                   <block type="variables_get" id="F@[18jF,SgH|j5!5[].n">
                                                                     <field name="VAR" id="#3W//wc3hA/%wNm1p70~">id_Mitbewohner</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <value name="B">
                                                               <block type="logic_boolean" id="#N+,ZjNFr+~#oS:-}3eY">
                                                                 <field name="BOOL">TRUE</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                         <value name="B">
                                                           <block type="logic_negate" id="RAgmM{uq?*]DP9Z[_zxS">
                                                             <value name="BOOL">
                                                               <block type="variables_get" id="h?Xjgow.-~PA8[3hptx`">
                                                                 <field name="VAR" id="Lwr#)gq-SprTeGEpm1z|">timeout</field>
                                                               </block>
                                                             </value>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <statement name="DO0">
                                                       <block type="timeouts_settimeout" id="7zrrM8/tf3tD%{)=|f_O">
                                                         <field name="NAME">timeout</field>
                                                         <field name="DELAY">3</field>
                                                         <field name="UNIT">sec</field>
                                                         <statement name="STATEMENT">
                                                           <block type="variables_set" id="#pA6oH!^H%u9|1DlBT0@">
                                                             <field name="VAR" id="h{N`{}Qlm1I0G!t;SDPC">Name Mitbewohner</field>
                                                             <value name="VALUE">
                                                               <block type="procedures_callcustomreturn" id="_?qPSc($DkOdgL)eeb.R">
                                                                 <mutation name="Objekt ermitteln">
                                                                   <arg name="Geraet_dp"></arg>
                                                                 </mutation>
                                                                 <value name="ARG0">
                                                                   <block type="variables_get" id="t^Ni%9+CRR]5Ls9~oDq@">
                                                                     <field name="VAR" id="#3W//wc3hA/%wNm1p70~">id_Mitbewohner</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <next>
                                                               <block type="lists_setIndex" id="Zf9DP0Fw$CA:Dk;|OdTP" inline="false">
                                                                 <mutation at="false"></mutation>
                                                                 <field name="MODE">INSERT</field>
                                                                 <field name="WHERE">LAST</field>
                                                                 <value name="LIST">
                                                                   <block type="variables_get" id="HX2v_eA,~a^Vk}1zvIIG">
                                                                     <field name="VAR" id="VXoQOS[~W!W+;S(Sty0a">Anwesend</field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="TO">
                                                                   <block type="lists_create_with" id="FCDPt.PYBWL$UYZ9NHEa">
                                                                     <mutation items="1"></mutation>
                                                                     <value name="ADD0">
                                                                       <block type="variables_get" id="cSzaUd?$8UrAYzu!JjHL">
                                                                         <field name="VAR" id="h{N`{}Qlm1I0G!t;SDPC">Name Mitbewohner</field>
                                                                       </block>
                                                                     </value>
                                                                   </block>
                                                                 </value>
                                                                 <next>
                                                                   <block type="variables_set" id="Nb)@Ma-wM:B?OtnV@Lu`">
                                                                     <field name="VAR" id="Lwr#)gq-SprTeGEpm1z|">timeout</field>
                                                                     <value name="VALUE">
                                                                       <block type="logic_boolean" id=":|xjwqgQ)2QSQFiiQ+V}">
                                                                         <field name="BOOL">TRUE</field>
                                                                       </block>
                                                                     </value>
                                                                     <next>
                                                                       <block type="debug" id="(r__]]PMBml6fsWf#N~X">
                                                                         <field name="Severity">log</field>
                                                                         <value name="TEXT">
                                                                           <shadow type="text" id="W7:F%arK}1_qa(g=]JYl">
                                                                             <field name="TEXT">test</field>
                                                                           </shadow>
                                                                           <block type="variables_get" id="O?e[ct=bZYt4}oS+hQaM">
                                                                             <field name="VAR" id="VXoQOS[~W!W+;S(Sty0a">Anwesend</field>
                                                                           </block>
                                                                         </value>
                                                                       </block>
                                                                     </next>
                                                                   </block>
                                                                 </next>
                                                               </block>
                                                             </next>
                                                           </block>
                                                         </statement>
                                                       </block>
                                                     </statement>
                                                   </block>
                                                 </statement>
                                                 <next>
                                                   <block type="variables_set" id="-k+`7Rr,%Omr9L1?#g9f">
                                                     <field name="VAR" id="cayivWZ]0_O{ShFNX`XL">index</field>
                                                     <value name="VALUE">
                                                       <block type="lists_indexOf" id="zP%,|,JuA1/tYK#(p1G;">
                                                         <field name="END">FIRST</field>
                                                         <value name="VALUE">
                                                           <block type="variables_get" id="@t+l91/IJ|ggC}.[:VFY">
                                                             <field name="VAR" id="VXoQOS[~W!W+;S(Sty0a">Anwesend</field>
                                                           </block>
                                                         </value>
                                                         <value name="FIND">
                                                           <block type="variables_get" id="qNPJ2ApH(BVMk5OEY;O-">
                                                             <field name="VAR" id="h{N`{}Qlm1I0G!t;SDPC">Name Mitbewohner</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="controls_if" id="z9U$,2E3tlcf1K8GHs[t">
                                                         <mutation else="1"></mutation>
                                                         <value name="IF0">
                                                           <block type="variables_get" id="iat8`(A,i}u8.KBnnr(}">
                                                             <field name="VAR" id="#3W//wc3hA/%wNm1p70~">id_Mitbewohner</field>
                                                           </block>
                                                         </value>
                                                         <statement name="DO0">
                                                           <block type="controls_if" id="[A6#Whe))*Sf*K*q+]-u">
                                                             <value name="IF0">
                                                               <block type="logic_compare" id="a@,@pE5TT4WaayQ2SG*~">
                                                                 <field name="OP">LT</field>
                                                                 <value name="A">
                                                                   <block type="variables_get" id="dG6$bb##;l8d;/`?|1*M">
                                                                     <field name="VAR" id="cayivWZ]0_O{ShFNX`XL">index</field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="B">
                                                                   <block type="math_number" id="[VPZ^ktnjwX5$P/b~DA^">
                                                                     <field name="NUM">1</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <statement name="DO0">
                                                               <block type="lists_setIndex" id="F=FOSo}]N],m6^hCCvAs">
                                                                 <mutation at="false"></mutation>
                                                                 <field name="MODE">INSERT</field>
                                                                 <field name="WHERE">LAST</field>
                                                                 <value name="LIST">
                                                                   <block type="variables_get" id="qw`H1KUd/3+}G^YO)_Q5">
                                                                     <field name="VAR" id="VXoQOS[~W!W+;S(Sty0a">Anwesend</field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="TO">
                                                                   <block type="variables_get" id="@R%MP$G@e!ePteofkA`+">
                                                                     <field name="VAR" id="h{N`{}Qlm1I0G!t;SDPC">Name Mitbewohner</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </statement>
                                                           </block>
                                                         </statement>
                                                         <statement name="ELSE">
                                                           <block type="controls_if" id="MvH-5J^Bw#!Wlu=[W8PC">
                                                             <value name="IF0">
                                                               <block type="logic_compare" id="/2,Z7eAGMGxs%t#d19g%">
                                                                 <field name="OP">GT</field>
                                                                 <value name="A">
                                                                   <block type="variables_get" id="i$m4ZO%0Ls%B*7[XcUIV">
                                                                     <field name="VAR" id="cayivWZ]0_O{ShFNX`XL">index</field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="B">
                                                                   <block type="math_number" id="OBaDUptY8@kT+7,cL~!}">
                                                                     <field name="NUM">0</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </value>
                                                             <statement name="DO0">
                                                               <block type="lists_getIndex" id="0]Xs8EK;lNVDs!}pq-cP">
                                                                 <mutation statement="true" at="true"></mutation>
                                                                 <field name="MODE">REMOVE</field>
                                                                 <field name="WHERE">FROM_START</field>
                                                                 <value name="VALUE">
                                                                   <block type="variables_get" id="%v){Cjd4im,mua2.h#/c">
                                                                     <field name="VAR" id="VXoQOS[~W!W+;S(Sty0a">Anwesend</field>
                                                                   </block>
                                                                 </value>
                                                                 <value name="AT">
                                                                   <block type="variables_get" id=";Q~BK@,VK=1NboqD6Pf8">
                                                                     <field name="VAR" id="cayivWZ]0_O{ShFNX`XL">index</field>
                                                                   </block>
                                                                 </value>
                                                               </block>
                                                             </statement>
                                                           </block>
                                                         </statement>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </next>
                                               </block>
                                             </next>
                                           </block>
                                         </next>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                             </statement>
                           </block>
                         </next>
                       </block>
                       <block type="procedures_defcustomreturn" id="j1T[AD2~{K{mzt@zA2!." x="13" y="-387">
                         <mutation statements="false">
                           <arg name="Geraet_dp" varid="dwr.Mrs3?j3Z,^YB)H-L"></arg>
                         </mutation>
                         <field name="NAME">Objekt ermitteln</field>
                         <field name="SCRIPT">cmV0dXJuIGdldE9iamVjdChHZXJhZXRfZHApLmNvbW1vbi5uYW1lOw==</field>
                         <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                       </block>
                      </xml>
                      

                      Asgothian 2 Replies Last reply Reply Quote 0
                      • Asgothian
                        Asgothian Developer @actionbyte last edited by

                        @actionbyte da ich keinen Zugriff auf mein System hab musst du mir das Skript als Screenshot posten

                        A.

                        actionbyte 1 Reply Last reply Reply Quote 0
                        • actionbyte
                          actionbyte @Asgothian last edited by

                          Willkommen.jpg

                          1 Reply Last reply Reply Quote 0
                          • Asgothian
                            Asgothian Developer @actionbyte last edited by Asgothian

                            @actionbyte sagte in Zustandsänderung DP von mehreren DPs über ID von Selektor?:

                            Ich habe da wohl noch etliche Fehler drin.

                            Fangen wir mit den einfachen Fehlern an.

                            • wenn du 10 sekunden timeout willst dann solltest du auch 10 sekunden eintragen
                            • wenn du an eine Liste etwas anhängen willst, dann am besten einen Wert, keine Liste
                              Screenshot 2022-04-16 at 10.20.38.png
                            • der Baustein "ausführen timeout" erzeugt eine Variable "timeout". Diese bekommt einen sogenannten "Handle". den zerstörst du dadurch das du die Variable manuell mit "wahr" und "falsch" beschreibst.

                            Leider habe ich bei meiner Antwort das das Konstrukt nutzbar ist übersehen das du Änderungen in der Vergangenheit prüfen willst. das macht das ganze komplex.

                            was du tun musst:
                            Trigger auf den Türkontakt. Darin (ggf. mit Timeout damit die Meldung nach Türöffnung kommt):

                            • aktuelle Zeit holen, in variable speichern (als datum-objekt)
                            • durch die Liste der möglichen Personen durchgehen und prüfen:
                            • Wert vom ObjektID = wahr und aktuelle Zeit - letzte Änderung von ObjektId < (n*1000) (für n sekunden, 10000 für 10 sekunden). Wenn wahr, name des Mitbewohners an die liste anhängen. Damit stellst du sicher das nur die Mitbewohner begrüsst werden die in den letzten 10 sekunden "angemeldet" wurden. Je nach dem wie gut de Radar adapter bei dir geht musst du die Zeit etwas erhöhen.
                            • wenn das für alle Mitbewohner getan ist, die Nachricht mit der liste der in den letzten 10 sekunden eingetroffenen Mitbewohnern ausgeben.

                            A.

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

                              @actionbyte sagte: erkenen wieviele Bewohner beim Trigger Türkontakt das Haus betrehten

                              Dazu sollte es genügen, beim Schließen der Tür zu triggern und im Trigger zu prüfen, wessen Anwesenheit sich in den letzten 10 Sekunden von false auf true geändert hat.

                              Bild_2022-04-16_110756829.png

                              Inhalt der JS-Funktion getName(id):

                              return getObject(id).common.name;
                              
                              actionbyte 1 Reply Last reply Reply Quote 1
                              • actionbyte
                                actionbyte @paul53 last edited by

                                @paul53
                                Habe dein Script entsprechend umgesetzt:
                                Screenshot 2022-04-19 115507.jpg
                                Inhalt vom JS-Funktion "Objekt ermitteln":

                                return getObject(Geraet_dp).common.name;
                                

                                Abweichend zu deiner Vorgabe:

                                • Trigger (für mich hier zum Versuch)
                                • ID vom Selektor: noch immer meine Fensterauflistung die ich zum Testen verwende. Diese wird in anderen Scripten korrekt ausgewertet, daher sollte eine Änderung auch in diesem Script korrekt funktionieren.

                                Variabel "letzte Änderungt": ist die so richtig? Muss die noch anders beschrieben werden oder ist das auch ein "Handle"?
                                Wie wird die "Letzte Änderung" vom Zeitpunkt festgehalten und wie ist die Angabe <100000 zu verstehen? Mir fehlt hier die Angabe als Zeit an sich. Wenn das für das Script eindeutig als Zeit gesetzt wird, dann reden wir hier über ms?

                                Nachdem ich ein Fenster geöffnet habe (Pedant Anwesenheit Mitbewohner kommt) und kurz danach (<100000 sollte lang genug sein) meinen Trigger starte, bleibt die Liste dennoch leider leer.

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

                                  @actionbyte sagte: <100000 sollte lang genug sein

                                  Du hast 1000000 ms eingetragen, was ca. 17 Minuten sind.

                                  @actionbyte sagte in Zustandsänderung DP von mehreren DPs über ID von Selektor?:

                                  Variabel "letzte Änderungt": ist die so richtig?

                                  "letzte Änderung" ist eine vordefinierte lokale Variable, die den Zeitpunkt der letzten Änderung des Trigger-Datenpunktes enthält:

                                  Blockly_DP_Props.JPG

                                  actionbyte 1 Reply Last reply Reply Quote 1
                                  • actionbyte
                                    actionbyte @paul53 last edited by actionbyte

                                    @paul53
                                    Danke, meine falsche Variabel war das Problem, habe nun die lokale Triggervariabel genommen und Liste wird wie gewünscht erstellt. 👍
                                    Ich werde meine 17 Minuten jetzt der Praxis entsprechend auf < 1 Minute ändern und die Liste IDvS auf die Mitbewohner umstellen.

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    877
                                    Online

                                    32.1k
                                    Users

                                    80.7k
                                    Topics

                                    1.3m
                                    Posts

                                    5
                                    17
                                    921
                                    Loading More Posts
                                    • Oldest to Newest
                                    • Newest to Oldest
                                    • Most Votes
                                    Reply
                                    • Reply as topic
                                    Log in to reply
                                    Community
                                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                    The ioBroker Community 2014-2023
                                    logo