Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [GELÖST] Lichter Überwachen und Info bei Ausfall

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [GELÖST] Lichter Überwachen und Info bei Ausfall

    This topic has been deleted. Only users with topic management privileges can see it.
    • Spegeli
      Spegeli last edited by Spegeli

      Servus liebe Community,
      ich bräuchte wieder mal Hilfe bei einem kleinen Blockly Script.

      Und zwar nutze Ich in meiner Wohnung Philips HUE Lampen und möchte nun per Blockly checken wenn sich der "Reachable" Status irgend einer Lampe ändert.
      Wenn sich bei irgend einer Lampe der Reachable State in False ändert soll er 15 Sekunden warten um abzuwarten ob Sich noch weitere Lampen in False ändern.

      Danach soll er alle Lampen durchgehen, alle die nicht mehr Erreichbar sind, in eine Liste Packen und diese mir per Whatsapp zuschicken.
      So weis ich dann das es bei einer mehrere Lampen zu Problemen kommt und nach diesen Schauen muss.

      Objektbaum:
      Screenshot 2.png
      Sind natürlich noch viel mehr Lampen eingebunden.

      Und das ist mein aktueller Test:
      Screenshot 3.png

      Aktuelles Problem:
      Bei der foreach Schleife soll er am besten nur einen array aus den IDs machen wo
      hue-extended.0.lights.*.state.reachable false ist (um so anschließend weniger abfragen durchführen zu müssen).
      Danach soll er den jeweiligen Lampen Namen abfragen:
      hue-extended.0.lights.004-flur_spot_1.name und diesen dann in eine Liste schreiben welche mit per WhatsApp / Pushover zugeschickt wird.

      Das hier ist der Block der mir Probleme macht:
      Screenshot 4.png
      Wenn ich beim Selektor "device[id=hue-extended.0.lights]" verwende um so erst mal alle Lampen abzufragen habe ich anschließend das Problem die unter Objekte .name und .state.reachable abzufragen.

      Ich hoffe jemand kann mir etwas weiter helfen wie ich das ganze evtl. Lösen kann.

      Mfg

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

        @Spegeli
        Verwende diesen Selektor für die Schleife:

        Blockly_temp.JPG

        Um den Gerätenamen zu erhalten, benötigt man eine Javascript-Funktion mit Ergebnis.

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

          @paul53 sagte in [HILFE GESUCHT] Lichter Überwachen und Info bei Ausfall:

          @Spegeli
          Verwende diesen Selektor für die Schleife:

          Blockly_temp.JPG

          Um den Gerätenamen zu erhalten, benötigt man eine Javascript-Funktion mit Ergebnis.

          Thx das Hilft schon mal weiter.
          Ein letztes Problem hab ich noch bei dem JavaScript Code:

          id = id.substring(0, id.lastIndexOf('.'));
          if(existsObject(id) && getObject(id).type == 'channel') return getObject(id).common.name;
          id = id.substring(0, id.lastIndexOf('.'));
          if(existsObject(id) && getObject(id).type == 'channel') return getObject(id).common.name;
          

          Wenn ich das JS so benutze springt er zu:
          hue-extended.0.lights.004-flur_spot_1.state
          Und nimt davon den Name.

          Ich bräuchte allerdings den Name von : hue-extended.0.lights.004-flur_spot_1
          oder den Wert von: hue-extended.0.lights.004-flur_spot_1.name

          Unbenannt.png

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

            @Spegeli sagte

            springt er zu: hue-extended.0.lights.004-flur_spot_1.state

            Lösche die Zeile 2 im Script.

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

              @paul53 sagte in [HILFE GESUCHT] Lichter Überwachen und Info bei Ausfall:

              @Spegeli sagte

              springt er zu: hue-extended.0.lights.004-flur_spot_1.state

              Lösche die Zeile 2 im Script.

              Er nimmt trotzdem weiterhin den Name vom State Channel.

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

                @Spegeli sagte:

                weiterhin den Name vom State Channel.

                Das glaube ich nicht. So geändert ?

                id = id.substring(0, id.lastIndexOf('.'));
                id = id.substring(0, id.lastIndexOf('.'));
                if(existsObject(id) && getObject(id).type == 'channel') return getObject(id).common.name;
                
                Spegeli 1 Reply Last reply Reply Quote 1
                • Spegeli
                  Spegeli @paul53 last edited by

                  @paul53 sagte in [HILFE GESUCHT] Lichter Überwachen und Info bei Ausfall:

                  @Spegeli sagte:

                  weiterhin den Name vom State Channel.

                  Das glaube ich nicht. So geändert ?

                  id = id.substring(0, id.lastIndexOf('.'));
                  id = id.substring(0, id.lastIndexOf('.'));
                  if(existsObject(id) && getObject(id).type == 'channel') return getObject(id).common.name;
                  

                  Mein Fail hatte die beiden untersten Reihen gelöscht ^^ jetzt gehts.

                  Hier mal die Fertige Lösung falls jemand auch mal sowas braucht:
                  Unbenannt.png

                  <xml xmlns="https://developers.google.com/blockly/xml">
                    <variables>
                      <variable id="EX]LYsG8PM_-@gtsLI3z">x</variable>
                      <variable id="a_L0Hey%qu{Z|Pq|*6(m">disableTrigger</variable>
                      <variable type="timeout" id="timeout">timeout</variable>
                      <variable id="FO2pipHT}g7wO)`0c_N]">list</variable>
                      <variable id="[Gbxk;.a[5i*y(D^f1qv">id</variable>
                    </variables>
                    <block type="on_ext" id="*,7?x)AnJ%#(Q4@ZQRrm" x="-2287" y="-637">
                      <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                      <field name="CONDITION">ne</field>
                      <field name="ACK_CONDITION"></field>
                      <value name="OID0">
                        <shadow type="field_oid" id="ZkksXP[i]R_DJ}gNR(04">
                          <field name="oid">hue-extended.0.lights.004-hue_ambiance_spot_1.state.reachable</field>
                        </shadow>
                        <block type="selector" id="odgvIVTBF{`?9#a6y_E%">
                          <field name="TEXT">[state.id=hue-extended.0.lights.*.state.reachable]</field>
                        </block>
                      </value>
                      <statement name="STATEMENT">
                        <block type="controls_if" id="2yUjv71uC`~T1c~lk$,q">
                          <value name="IF0">
                            <block type="logic_negate" id="n?q;1Tyg`|B}Y#UNe,.8">
                              <value name="BOOL">
                                <block type="variables_get" id="nx-C$-8qv7#/|x97b.}v">
                                  <field name="VAR" id="a_L0Hey%qu{Z|Pq|*6(m">disableTrigger</field>
                                </block>
                              </value>
                            </block>
                          </value>
                          <statement name="DO0">
                            <block type="variables_set" id="a?KyY`?1q;;`Zqni9]VQ">
                              <field name="VAR" id="a_L0Hey%qu{Z|Pq|*6(m">disableTrigger</field>
                              <value name="VALUE">
                                <block type="logic_boolean" id="[)5WeD;7}1cA9^$nLk3@">
                                  <field name="BOOL">TRUE</field>
                                </block>
                              </value>
                              <next>
                                <block type="timeouts_settimeout" id="sm5uLDQ*iP}{m6MQ+!hM">
                                  <field name="NAME">timeout</field>
                                  <field name="DELAY">30</field>
                                  <field name="UNIT">sec</field>
                                  <statement name="STATEMENT">
                                    <block type="variables_set" id="=~M$eg/mq)6fysd;+1h3">
                                      <field name="VAR" id="FO2pipHT}g7wO)`0c_N]">list</field>
                                      <value name="VALUE">
                                        <block type="text" id="XEXUpvb9i%[L0VNSUZ+P">
                                          <field name="TEXT"></field>
                                        </block>
                                      </value>
                                      <next>
                                        <block type="controls_forEach" id="QmD8=Y]w/:P2#FL7xy}3">
                                          <field name="VAR" id="[Gbxk;.a[5i*y(D^f1qv">id</field>
                                          <value name="LIST">
                                            <block type="selector" id="tU7,q~v)!JL?b*cFWeSt">
                                              <field name="TEXT">hue-extended.0.lights.*.state.reachable</field>
                                            </block>
                                          </value>
                                          <statement name="DO">
                                            <block type="controls_if" id="J5+R{~PD1[%6NM{!s7~{">
                                              <value name="IF0">
                                                <block type="logic_negate" id="%XT]H@nD[(Sx`d;dVk}w">
                                                  <value name="BOOL">
                                                    <block type="get_value_var" id="d0=U:1JB`ancP)Y0_Nn$">
                                                      <field name="ATTR">val</field>
                                                      <value name="OID">
                                                        <shadow type="text" id="m:Dv;`Jh9=4;E`f$0a:(">
                                                          <field name="TEXT"></field>
                                                        </shadow>
                                                        <block type="variables_get" id="U1:-%iJ;+38UgV`OTm7R">
                                                          <field name="VAR" id="[Gbxk;.a[5i*y(D^f1qv">id</field>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                              <statement name="DO0">
                                                <block type="debug" id=";=kpv7G:R40*/M~.8G(5">
                                                  <field name="Severity">error</field>
                                                  <value name="TEXT">
                                                    <shadow type="text" id="Zp3zzJ$WB[^86dTbfNeC">
                                                      <field name="TEXT">Ein Objekt mit FALSE gefunden</field>
                                                    </shadow>
                                                  </value>
                                                  <next>
                                                    <block type="text_append" id="P{`mX$LV8Z+/.2cB,htY">
                                                      <field name="VAR" id="FO2pipHT}g7wO)`0c_N]">list</field>
                                                      <value name="TEXT">
                                                        <shadow type="text" id="Qv`!(-J;y@H}Y|y.b`dM">
                                                          <field name="TEXT"></field>
                                                        </shadow>
                                                        <block type="text_join" id="U;:=cU5jfzKvzc-GGsng">
                                                          <mutation items="2"></mutation>
                                                          <value name="ADD0">
                                                            <block type="procedures_callcustomreturn" id="yk3au;E5vTU~YH#URT?`">
                                                              <mutation name="deviceName">
                                                                <arg name="x"></arg>
                                                              </mutation>
                                                              <value name="ARG0">
                                                                <block type="variables_get" id="vMAS51O[Cxng0gz0d.Q+">
                                                                  <field name="VAR" id="[Gbxk;.a[5i*y(D^f1qv">id</field>
                                                                </block>
                                                              </value>
                                                            </block>
                                                          </value>
                                                          <value name="ADD1">
                                                            <block type="text_newline" id="u8cH`W-q2$7EJFEOBlrv">
                                                              <field name="Type">\n</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </next>
                                                </block>
                                              </statement>
                                            </block>
                                          </statement>
                                          <next>
                                            <block type="controls_if" id="7+27pFM.tHyvUXT=MJIr">
                                              <value name="IF0">
                                                <block type="logic_compare" id="|va{t${+vLfjx{UE+N@t">
                                                  <field name="OP">EQ</field>
                                                  <value name="A">
                                                    <block type="lists_isEmpty" id="]2AuOSn6hN)vxo$:q0Gz">
                                                      <value name="VALUE">
                                                        <block type="variables_get" id="U)vPzD5tE?0S5:dk$fdT">
                                                          <field name="VAR" id="FO2pipHT}g7wO)`0c_N]">list</field>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                  <value name="B">
                                                    <block type="logic_boolean" id="ScaQ{J%*2|Ex:/jrz%8K">
                                                      <field name="BOOL">FALSE</field>
                                                    </block>
                                                  </value>
                                                </block>
                                              </value>
                                              <statement name="DO0">
                                                <block type="whatsapp-cmb" id="od#*JdVo*`GMTn9rQZmx">
                                                  <field name="INSTANCE"></field>
                                                  <field name="LOG"></field>
                                                  <value name="MESSAGE">
                                                    <shadow type="text" id="zpZNP~2/-+A%!O~/h,,g">
                                                      <field name="TEXT">text</field>
                                                    </shadow>
                                                    <block type="text_join" id="MA-uFEVdUEBD=m2-tD@J">
                                                      <mutation items="3"></mutation>
                                                      <value name="ADD0">
                                                        <block type="text" id="pi:fnC7TP41BB:jMx)tJ">
                                                          <field name="TEXT">Es gehen folgende Lampen nicht: </field>
                                                        </block>
                                                      </value>
                                                      <value name="ADD1">
                                                        <block type="text_newline" id="JhUPg;fo_6Tya)]}s^bd">
                                                          <field name="Type">\n</field>
                                                        </block>
                                                      </value>
                                                      <value name="ADD2">
                                                        <block type="variables_get" id="E=JmHVgN]0Wk;?qZowG.">
                                                          <field name="VAR" id="FO2pipHT}g7wO)`0c_N]">list</field>
                                                        </block>
                                                      </value>
                                                    </block>
                                                  </value>
                                                  <next>
                                                    <block type="pushover" id="xrW90L`d;Kmw`%E{w#g3">
                                                      <field name="INSTANCE"></field>
                                                      <field name="SOUND"></field>
                                                      <field name="PRIORITY">1</field>
                                                      <field name="LOG"></field>
                                                      <value name="MESSAGE">
                                                        <shadow type="text" id="QUVgLrdB1G=;M,r%AMX`">
                                                          <field name="TEXT">text</field>
                                                        </shadow>
                                                        <block type="text_join" id=".8le?}EJmCj|*kc2)I`T">
                                                          <mutation items="3"></mutation>
                                                          <value name="ADD0">
                                                            <block type="text" id=");f!YHZuD1|bWv@r)0AP">
                                                              <field name="TEXT">Es gehen folgende Lampen nicht: </field>
                                                            </block>
                                                          </value>
                                                          <value name="ADD1">
                                                            <block type="text_newline" id="[,6c_+C`HP#A|Hlln8ql">
                                                              <field name="Type">\n</field>
                                                            </block>
                                                          </value>
                                                          <value name="ADD2">
                                                            <block type="variables_get" id="6K6kr$l)PQ`KRP6+PIXG">
                                                              <field name="VAR" id="FO2pipHT}g7wO)`0c_N]">list</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </value>
                                                      <next>
                                                        <block type="variables_set" id="3Dd@?o}(bZT15WZ*nQ$v">
                                                          <field name="VAR" id="a_L0Hey%qu{Z|Pq|*6(m">disableTrigger</field>
                                                          <value name="VALUE">
                                                            <block type="logic_boolean" id="@@{in4Ky`go,Sw^5UAJg">
                                                              <field name="BOOL">FALSE</field>
                                                            </block>
                                                          </value>
                                                        </block>
                                                      </next>
                                                    </block>
                                                  </next>
                                                </block>
                                              </statement>
                                            </block>
                                          </next>
                                        </block>
                                      </next>
                                    </block>
                                  </statement>
                                </block>
                              </next>
                            </block>
                          </statement>
                        </block>
                      </statement>
                    </block>
                    <block type="procedures_defcustomreturn" id="N[:/N@x2QXRmdKeh;k2w" x="-1462" y="-313">
                      <mutation statements="false">
                        <arg name="x" varid="EX]LYsG8PM_-@gtsLI3z"></arg>
                      </mutation>
                      <field name="NAME">deviceName</field>
                      <field name="SCRIPT">aWQgPSBpZC5zdWJzdHJpbmcoMCwgaWQubGFzdEluZGV4T2YoJy4nKSk7DQppZCA9IGlkLnN1YnN0cmluZygwLCBpZC5sYXN0SW5kZXhPZignLicpKTsNCmlmKGV4aXN0c09iamVjdChpZCkgJiYgZ2V0T2JqZWN0KGlkKS50eXBlID09ICdjaGFubmVsJykgcmV0dXJuIGdldE9iamVjdChpZCkuY29tbW9uLm5hbWU7</field>
                      <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                    </block>
                  </xml>
                  

                  Sobald eine Philips Lampe die Verbindung verliert (Defekt, kompletter Stromverlust etc.) wartet das Script weitere 30 Sekunden ob noch weitere Lampen ausfallen.
                  Anschließend holt er die Namen alle Lampen die nicht mehr Erreichbar sind und schickt eine Nachricht per WhatsApp / pushover.

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

                    @Spegeli sagte:

                    jetzt gehts.

                    Dann ersetze bitte in der Überschrift [HILFE GESUCHT] durch [gelöst].

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

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    380
                    Online

                    32.0k
                    Users

                    80.4k
                    Topics

                    1.3m
                    Posts

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