Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Zustandsänderung DP von mehreren DPs über ID von Selektor?

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    462

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    383

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    972

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

Geplant Angeheftet Gesperrt Verschoben Blockly
17 Beiträge 5 Kommentatoren 1.4k Aufrufe 4 Beobachtet
  • Ä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.
  • actionbyteA actionbyte

    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?

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

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

    Bild_2022-04-10_090818733.png

    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

    AsgothianA 1 Antwort Letzte Antwort
    0
    • paul53P paul53

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

      Bild_2022-04-10_090818733.png

      AsgothianA Offline
      AsgothianA Offline
      Asgothian
      Developer
      schrieb am zuletzt editiert von Asgothian
      #7

      @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

      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

      1 Antwort Letzte Antwort
      2
      • actionbyteA Offline
        actionbyteA Offline
        actionbyte
        schrieb am zuletzt editiert von
        #8

        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?

        AsgothianA paul53P 2 Antworten Letzte Antwort
        0
        • actionbyteA actionbyte

          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?

          AsgothianA Offline
          AsgothianA Offline
          Asgothian
          Developer
          schrieb am zuletzt editiert von
          #9

          @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.

          ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
          "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

          actionbyteA 1 Antwort Letzte Antwort
          0
          • AsgothianA Asgothian

            @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.

            actionbyteA Offline
            actionbyteA Offline
            actionbyte
            schrieb am zuletzt editiert von actionbyte
            #10

            @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>
            

            AsgothianA 2 Antworten Letzte Antwort
            0
            • actionbyteA 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>
              

              AsgothianA Offline
              AsgothianA Offline
              Asgothian
              Developer
              schrieb am zuletzt editiert von
              #11

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

              A.

              ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
              "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

              actionbyteA 1 Antwort Letzte Antwort
              0
              • AsgothianA Asgothian

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

                A.

                actionbyteA Offline
                actionbyteA Offline
                actionbyte
                schrieb am zuletzt editiert von
                #12

                Willkommen.jpg

                1 Antwort Letzte Antwort
                0
                • actionbyteA 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>
                  

                  AsgothianA Offline
                  AsgothianA Offline
                  Asgothian
                  Developer
                  schrieb am zuletzt editiert von Asgothian
                  #13

                  @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.

                  ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                  "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                  1 Antwort Letzte Antwort
                  0
                  • actionbyteA actionbyte

                    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?

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

                    @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;
                    

                    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

                    actionbyteA 1 Antwort Letzte Antwort
                    1
                    • paul53P 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;
                      
                      actionbyteA Offline
                      actionbyteA Offline
                      actionbyte
                      schrieb am zuletzt editiert von
                      #15

                      @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.

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • actionbyteA actionbyte

                        @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.

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

                        @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

                        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

                        actionbyteA 1 Antwort Letzte Antwort
                        1
                        • paul53P 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

                          actionbyteA Offline
                          actionbyteA Offline
                          actionbyte
                          schrieb am zuletzt editiert von actionbyte
                          #17

                          @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 Antwort Letzte Antwort
                          0

                          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

                          Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

                          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

                          Registrieren Anmelden
                          Antworten
                          • In einem neuen Thema antworten
                          Anmelden zum Antworten
                          • Älteste zuerst
                          • Neuste zuerst
                          • Meiste Stimmen


                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          371

                          Online

                          32.8k

                          Benutzer

                          82.8k

                          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