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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Alexa Wecker schaltet Beleuchtung an

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    324

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

Alexa Wecker schaltet Beleuchtung an

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
javascriptblockly
60 Beiträge 13 Kommentatoren 7.4k Aufrufe 13 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • J Jan1

    @Elzershark
    Ok das war ja das Beispiel @sveni_lee oben und wenn das funktioniert, brauch ich das gar nicht mehr testen.
    Wenn man die Funktion dieses Block kennt, ist es wirklich sehr einfach😎

    Da muss ich mir gleich noch was ausdenken wo man das noch überall sinnvoll einsetzen kann.

    S Offline
    S Offline
    sveni_lee
    schrieb am zuletzt editiert von
    #36

    @Jan1

    naja, im Grunde überall wo Du verschiedene DP überwachenmöchtests die entweder mit dem gleichen Pfad beginnen oder aber gleich enden... Das gilt für eine Menge Adapter...

    J 1 Antwort Letzte Antwort
    1
    • S sveni_lee

      @Jan1

      naja, im Grunde überall wo Du verschiedene DP überwachenmöchtests die entweder mit dem gleichen Pfad beginnen oder aber gleich enden... Das gilt für eine Menge Adapter...

      J Offline
      J Offline
      Jan1
      schrieb am zuletzt editiert von
      #37

      @sveni_lee
      Eben und da gibts am WE viel zu vereinfachen. Bei Blockly erklärt sich das meiste von selber, aber solche Blöcke eben nicht. Deshalb freue ich mich da immer wie Bolle, wenn einer hier mal ein Beispiel aufzeigt was das Ding macht und gleich ein praktisches Beispiel dazu.

      Das lustige bei Dir ist dann noch, dass Du von Blockly kein Plan hast, aber eben JavaScript beherrschst.

      1 Antwort Letzte Antwort
      0
      • ElzersharkE Elzershark

        @dslraser
        Jo. Ich schreib das noch so, da wo der Wecker klingelt, also Schlafzimmer, Kinderzimmer u.s.w., das dann auch nur "Da" die Lampen angehen, u.s.w. :)

        Einfach für jeden Echo den Block kopieren, und das Licht, oder was auch immer passieren soll, passiert dann, wenn der Wecker klingelt.

        Pfad zum Alexa2 Adapter kopieren und umändern. Beispiel:

        alexa2.0.Echo-Devices.G000MW04741702CN.Alarm.00444ada-fc0d-37e3-84ff-03b6b8e93613.triggered

        umändern in

        alexa2.0.Echo-Devices.G000MW04741702CN.Alarm.*.triggered
        und dann einfügen.

        Von nem riesen Script zu nem Einzeiler. Schon fasst Peinlich.. 😂😂
        Zwischenablage-1.jpg

        ostseereiterO Offline
        ostseereiterO Offline
        ostseereiter
        schrieb am zuletzt editiert von
        #38

        @Elzershark
        der Trigger RegExp gibt es bei mir nicht. Bekomme auch ne Fehlermeldung beim Script kopieren,
        Screenshot (29).png

        Gruß OSR

        Plattform
        Linux x64 CPUs2 AMD G-T56N Processor 1646 MHz 8GB RAM

        dslraserD 1 Antwort Letzte Antwort
        0
        • ostseereiterO ostseereiter

          @Elzershark
          der Trigger RegExp gibt es bei mir nicht. Bekomme auch ne Fehlermeldung beim Script kopieren,
          Screenshot (29).png

          dslraserD Offline
          dslraserD Offline
          dslraser
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #39

          @ostseereiter

          welche Version vom Adapter ist installiert ?

          Bildschirmfoto 2020-01-27 um 16.26.52.png

          ostseereiterO 1 Antwort Letzte Antwort
          0
          • dslraserD dslraser

            @ostseereiter

            welche Version vom Adapter ist installiert ?

            Bildschirmfoto 2020-01-27 um 16.26.52.png

            ostseereiterO Offline
            ostseereiterO Offline
            ostseereiter
            schrieb am zuletzt editiert von
            #40

            @dslraser 4.1.12
            Screenshot (30).png

            Gruß OSR

            Plattform
            Linux x64 CPUs2 AMD G-T56N Processor 1646 MHz 8GB RAM

            ostseereiterO dslraserD paul53P 3 Antworten Letzte Antwort
            0
            • ostseereiterO ostseereiter

              @dslraser 4.1.12
              Screenshot (30).png

              ostseereiterO Offline
              ostseereiterO Offline
              ostseereiter
              schrieb am zuletzt editiert von
              #41

              Screenshot (31).png
              Muss man hier noch was einstellen?

              Gruß OSR

              Plattform
              Linux x64 CPUs2 AMD G-T56N Processor 1646 MHz 8GB RAM

              1 Antwort Letzte Antwort
              0
              • ostseereiterO ostseereiter

                @dslraser 4.1.12
                Screenshot (30).png

                dslraserD Offline
                dslraserD Offline
                dslraser
                Forum Testing Most Active
                schrieb am zuletzt editiert von
                #42

                @ostseereiter
                installiere mal eine höhere Version, der Baustein kam glaube ich erst nach 4.1.12 dazu

                ostseereiterO 1 Antwort Letzte Antwort
                0
                • dslraserD dslraser

                  @ostseereiter
                  installiere mal eine höhere Version, der Baustein kam glaube ich erst nach 4.1.12 dazu

                  ostseereiterO Offline
                  ostseereiterO Offline
                  ostseereiter
                  schrieb am zuletzt editiert von
                  #43

                  @dslraser ok alles klar

                  Gruß OSR

                  Plattform
                  Linux x64 CPUs2 AMD G-T56N Processor 1646 MHz 8GB RAM

                  1 Antwort Letzte Antwort
                  0
                  • ostseereiterO ostseereiter

                    @dslraser 4.1.12
                    Screenshot (30).png

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

                    @ostseereiter sagte:

                    4.1.12

                    Installiere Version 4.3.4 (latest).

                    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

                    ostseereiterO 1 Antwort Letzte Antwort
                    1
                    • paul53P paul53

                      @ostseereiter sagte:

                      4.1.12

                      Installiere Version 4.3.4 (latest).

                      ostseereiterO Offline
                      ostseereiterO Offline
                      ostseereiter
                      schrieb am zuletzt editiert von
                      #45

                      @paul53
                      habe jetzt aus latest 4.3.0 installiert höher gibt es bei mir nicht. Funktioniert aber auch danke.

                      Gruß OSR

                      Plattform
                      Linux x64 CPUs2 AMD G-T56N Processor 1646 MHz 8GB RAM

                      1 Antwort Letzte Antwort
                      0
                      • X Offline
                        X Offline
                        xbow42
                        schrieb am zuletzt editiert von xbow42
                        #46

                        Hallo,
                        ich habe in der AlexaApp 2 Wecker konfiguriert die an Arbeitstagen also Mo-Fr. auslösen würden.
                        iobroker-alarm0.png
                        Nachts soll per cronTrigger ein/kein Wecker je nach Bedingungen(Wetter/iCal(Urlaub)/Feiertag/manuelle Fahrzeugwahl) gestellt werden.
                        iobroker-alarm1.png
                        die Gefahr besteht das man über die App beim Konfigurieren ggf. den/die Wecker löscht.
                        Für den Fall will ich über den DP ..Alarm.AddNew einen neuen Wecker anlegen.

                        • Gibt es im Blockly wowas wie IfExist(ObjektID) um zu prüfen ob der DP existiert?
                        • Wie ermittel ich am besten nach dem neuen Wecker anlegen die ID .Alarm.xxxxxxxxxxxxxxxxx und baue sie dann so in das Script ein das zur AlarmNr dann der passende Wecker gestellt wird?
                        • Gibts im Bockly auch die Möglichkeit einen Objektbaum .Alarm.xxxxxxxxxxxxxxxxx zu löschen?
                        dslraserD 1 Antwort Letzte Antwort
                        0
                        • X xbow42

                          Hallo,
                          ich habe in der AlexaApp 2 Wecker konfiguriert die an Arbeitstagen also Mo-Fr. auslösen würden.
                          iobroker-alarm0.png
                          Nachts soll per cronTrigger ein/kein Wecker je nach Bedingungen(Wetter/iCal(Urlaub)/Feiertag/manuelle Fahrzeugwahl) gestellt werden.
                          iobroker-alarm1.png
                          die Gefahr besteht das man über die App beim Konfigurieren ggf. den/die Wecker löscht.
                          Für den Fall will ich über den DP ..Alarm.AddNew einen neuen Wecker anlegen.

                          • Gibt es im Blockly wowas wie IfExist(ObjektID) um zu prüfen ob der DP existiert?
                          • Wie ermittel ich am besten nach dem neuen Wecker anlegen die ID .Alarm.xxxxxxxxxxxxxxxxx und baue sie dann so in das Script ein das zur AlarmNr dann der passende Wecker gestellt wird?
                          • Gibts im Bockly auch die Möglichkeit einen Objektbaum .Alarm.xxxxxxxxxxxxxxxxx zu löschen?
                          dslraserD Offline
                          dslraserD Offline
                          dslraser
                          Forum Testing Most Active
                          schrieb am zuletzt editiert von
                          #47

                          @xbow42 sagte in Alexa Wecker schaltet Beleuchtung an:

                          Gibt es im Blockly wowas wie IfExist(ObjektID) um zu prüfen ob der DP existiert?

                          kannst ja mal damit "rum spielen"

                          Bildschirmfoto 2020-01-31 um 17.31.15.png

                          <xml xmlns="http://www.w3.org/1999/xhtml">
                           <variables>
                             <variable type="" id="E-2Ms[EQ*lEe7IRh*cIa">id</variable>
                           </variables>
                           <block type="procedures_defcustomreturn" id="7R:L*9?)7Wl^RqVg+G`q" x="13" y="13">
                             <mutation statements="false">
                               <arg name="id" varid="E-2Ms[EQ*lEe7IRh*cIa"></arg>
                             </mutation>
                             <field name="NAME">existiert_DP</field>
                             <field name="SCRIPT">CmlmKGV4aXN0c09iamVjdChpZCkpCnJldHVybiBleGlzdHNTdGF0ZShpZCk7</field>
                             <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                           </block>
                           <block type="controls_if" id="]U!yuZ]Xu)hfS_B0[PT_" x="13" y="88">
                             <mutation else="1"></mutation>
                             <value name="IF0">
                               <block type="procedures_callcustomreturn" id="LYyU(xF{iqT8am1OyTzX" inline="true">
                                 <mutation name="existiert_DP">
                                   <arg name="id"></arg>
                                 </mutation>
                                 <value name="ARG0">
                                   <block type="text_join" id="0THYr?_2)~g0iT?%Ws04">
                                     <mutation items="3"></mutation>
                                     <value name="ADD0">
                                       <block type="text" id="Jj-;K=C14.ARbvgb^G8E">
                                         <field name="TEXT">alexa2.0.Echo-Devices.</field>
                                       </block>
                                     </value>
                                     <value name="ADD1">
                                       <block type="get_value" id="6cY*I*]xw7%U[1dU(}J(">
                                         <field name="ATTR">val</field>
                                         <field name="OID">alexa2.0.History.serialNumber</field>
                                       </block>
                                     </value>
                                     <value name="ADD2">
                                       <block type="text" id="pQ{:#RL`7+yD^nom$nP[">
                                         <field name="TEXT">.Commands.speak-volume</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                               </block>
                             </value>
                             <statement name="DO0">
                               <block type="debug" id="cS5*PvPwP7rh%ln:bffF">
                                 <field name="Severity">log</field>
                                 <value name="TEXT">
                                   <shadow type="text" id=",uX#K5U5NdEsTsyHL#@Y">
                                     <field name="TEXT">test</field>
                                   </shadow>
                                   <block type="procedures_callcustomreturn" id=";;#sdcjDgk|l?EWS{y2^" inline="true">
                                     <mutation name="existiert_DP">
                                       <arg name="id"></arg>
                                     </mutation>
                                     <value name="ARG0">
                                       <block type="text_join" id="klYn:eOwTM6$6l|^)wg|">
                                         <mutation items="3"></mutation>
                                         <value name="ADD0">
                                           <block type="text" id="=pjJ{/,+=}]fS~rBVln0">
                                             <field name="TEXT">alexa2.0.Echo-Devices.</field>
                                           </block>
                                         </value>
                                         <value name="ADD1">
                                           <block type="get_value" id="SSP;CdoTz=fnDrj17]J8">
                                             <field name="ATTR">val</field>
                                             <field name="OID">alexa2.0.History.serialNumber</field>
                                           </block>
                                         </value>
                                         <value name="ADD2">
                                           <block type="text" id="QHarz9?-l+2tO.HzoIe0">
                                             <field name="TEXT">.Commands.speak-volume</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="comment" id="M$fBZaLgg0pN,/E!r{xy">
                                     <field name="COMMENT">mach irgendwas.....</field>
                                   </block>
                                 </next>
                               </block>
                             </statement>
                             <statement name="ELSE">
                               <block type="debug" id="6a4`,4@P]oEr*lBB];K!">
                                 <field name="Severity">log</field>
                                 <value name="TEXT">
                                   <shadow type="text" id=",uX#K5U5NdEsTsyHL#@Y">
                                     <field name="TEXT">test</field>
                                   </shadow>
                                   <block type="text" id="Fb^)xLhI/b6Xzz6j,X4@">
                                     <field name="TEXT">existiert nicht</field>
                                   </block>
                                 </value>
                               </block>
                             </statement>
                           </block>
                          </xml>
                          

                          Bildschirmfoto 2020-01-31 um 17.32.28.png

                          X paul53P 2 Antworten Letzte Antwort
                          1
                          • dslraserD dslraser

                            @xbow42 sagte in Alexa Wecker schaltet Beleuchtung an:

                            Gibt es im Blockly wowas wie IfExist(ObjektID) um zu prüfen ob der DP existiert?

                            kannst ja mal damit "rum spielen"

                            Bildschirmfoto 2020-01-31 um 17.31.15.png

                            <xml xmlns="http://www.w3.org/1999/xhtml">
                             <variables>
                               <variable type="" id="E-2Ms[EQ*lEe7IRh*cIa">id</variable>
                             </variables>
                             <block type="procedures_defcustomreturn" id="7R:L*9?)7Wl^RqVg+G`q" x="13" y="13">
                               <mutation statements="false">
                                 <arg name="id" varid="E-2Ms[EQ*lEe7IRh*cIa"></arg>
                               </mutation>
                               <field name="NAME">existiert_DP</field>
                               <field name="SCRIPT">CmlmKGV4aXN0c09iamVjdChpZCkpCnJldHVybiBleGlzdHNTdGF0ZShpZCk7</field>
                               <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                             </block>
                             <block type="controls_if" id="]U!yuZ]Xu)hfS_B0[PT_" x="13" y="88">
                               <mutation else="1"></mutation>
                               <value name="IF0">
                                 <block type="procedures_callcustomreturn" id="LYyU(xF{iqT8am1OyTzX" inline="true">
                                   <mutation name="existiert_DP">
                                     <arg name="id"></arg>
                                   </mutation>
                                   <value name="ARG0">
                                     <block type="text_join" id="0THYr?_2)~g0iT?%Ws04">
                                       <mutation items="3"></mutation>
                                       <value name="ADD0">
                                         <block type="text" id="Jj-;K=C14.ARbvgb^G8E">
                                           <field name="TEXT">alexa2.0.Echo-Devices.</field>
                                         </block>
                                       </value>
                                       <value name="ADD1">
                                         <block type="get_value" id="6cY*I*]xw7%U[1dU(}J(">
                                           <field name="ATTR">val</field>
                                           <field name="OID">alexa2.0.History.serialNumber</field>
                                         </block>
                                       </value>
                                       <value name="ADD2">
                                         <block type="text" id="pQ{:#RL`7+yD^nom$nP[">
                                           <field name="TEXT">.Commands.speak-volume</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                               <statement name="DO0">
                                 <block type="debug" id="cS5*PvPwP7rh%ln:bffF">
                                   <field name="Severity">log</field>
                                   <value name="TEXT">
                                     <shadow type="text" id=",uX#K5U5NdEsTsyHL#@Y">
                                       <field name="TEXT">test</field>
                                     </shadow>
                                     <block type="procedures_callcustomreturn" id=";;#sdcjDgk|l?EWS{y2^" inline="true">
                                       <mutation name="existiert_DP">
                                         <arg name="id"></arg>
                                       </mutation>
                                       <value name="ARG0">
                                         <block type="text_join" id="klYn:eOwTM6$6l|^)wg|">
                                           <mutation items="3"></mutation>
                                           <value name="ADD0">
                                             <block type="text" id="=pjJ{/,+=}]fS~rBVln0">
                                               <field name="TEXT">alexa2.0.Echo-Devices.</field>
                                             </block>
                                           </value>
                                           <value name="ADD1">
                                             <block type="get_value" id="SSP;CdoTz=fnDrj17]J8">
                                               <field name="ATTR">val</field>
                                               <field name="OID">alexa2.0.History.serialNumber</field>
                                             </block>
                                           </value>
                                           <value name="ADD2">
                                             <block type="text" id="QHarz9?-l+2tO.HzoIe0">
                                               <field name="TEXT">.Commands.speak-volume</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="comment" id="M$fBZaLgg0pN,/E!r{xy">
                                       <field name="COMMENT">mach irgendwas.....</field>
                                     </block>
                                   </next>
                                 </block>
                               </statement>
                               <statement name="ELSE">
                                 <block type="debug" id="6a4`,4@P]oEr*lBB];K!">
                                   <field name="Severity">log</field>
                                   <value name="TEXT">
                                     <shadow type="text" id=",uX#K5U5NdEsTsyHL#@Y">
                                       <field name="TEXT">test</field>
                                     </shadow>
                                     <block type="text" id="Fb^)xLhI/b6Xzz6j,X4@">
                                       <field name="TEXT">existiert nicht</field>
                                     </block>
                                   </value>
                                 </block>
                               </statement>
                             </block>
                            </xml>
                            

                            Bildschirmfoto 2020-01-31 um 17.32.28.png

                            X Offline
                            X Offline
                            xbow42
                            schrieb am zuletzt editiert von xbow42
                            #48

                            @dslraser danke, sieht schon mal sehr schlüssig aus!

                            B 1 Antwort Letzte Antwort
                            0
                            • dslraserD dslraser

                              @xbow42 sagte in Alexa Wecker schaltet Beleuchtung an:

                              Gibt es im Blockly wowas wie IfExist(ObjektID) um zu prüfen ob der DP existiert?

                              kannst ja mal damit "rum spielen"

                              Bildschirmfoto 2020-01-31 um 17.31.15.png

                              <xml xmlns="http://www.w3.org/1999/xhtml">
                               <variables>
                                 <variable type="" id="E-2Ms[EQ*lEe7IRh*cIa">id</variable>
                               </variables>
                               <block type="procedures_defcustomreturn" id="7R:L*9?)7Wl^RqVg+G`q" x="13" y="13">
                                 <mutation statements="false">
                                   <arg name="id" varid="E-2Ms[EQ*lEe7IRh*cIa"></arg>
                                 </mutation>
                                 <field name="NAME">existiert_DP</field>
                                 <field name="SCRIPT">CmlmKGV4aXN0c09iamVjdChpZCkpCnJldHVybiBleGlzdHNTdGF0ZShpZCk7</field>
                                 <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                               </block>
                               <block type="controls_if" id="]U!yuZ]Xu)hfS_B0[PT_" x="13" y="88">
                                 <mutation else="1"></mutation>
                                 <value name="IF0">
                                   <block type="procedures_callcustomreturn" id="LYyU(xF{iqT8am1OyTzX" inline="true">
                                     <mutation name="existiert_DP">
                                       <arg name="id"></arg>
                                     </mutation>
                                     <value name="ARG0">
                                       <block type="text_join" id="0THYr?_2)~g0iT?%Ws04">
                                         <mutation items="3"></mutation>
                                         <value name="ADD0">
                                           <block type="text" id="Jj-;K=C14.ARbvgb^G8E">
                                             <field name="TEXT">alexa2.0.Echo-Devices.</field>
                                           </block>
                                         </value>
                                         <value name="ADD1">
                                           <block type="get_value" id="6cY*I*]xw7%U[1dU(}J(">
                                             <field name="ATTR">val</field>
                                             <field name="OID">alexa2.0.History.serialNumber</field>
                                           </block>
                                         </value>
                                         <value name="ADD2">
                                           <block type="text" id="pQ{:#RL`7+yD^nom$nP[">
                                             <field name="TEXT">.Commands.speak-volume</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <statement name="DO0">
                                   <block type="debug" id="cS5*PvPwP7rh%ln:bffF">
                                     <field name="Severity">log</field>
                                     <value name="TEXT">
                                       <shadow type="text" id=",uX#K5U5NdEsTsyHL#@Y">
                                         <field name="TEXT">test</field>
                                       </shadow>
                                       <block type="procedures_callcustomreturn" id=";;#sdcjDgk|l?EWS{y2^" inline="true">
                                         <mutation name="existiert_DP">
                                           <arg name="id"></arg>
                                         </mutation>
                                         <value name="ARG0">
                                           <block type="text_join" id="klYn:eOwTM6$6l|^)wg|">
                                             <mutation items="3"></mutation>
                                             <value name="ADD0">
                                               <block type="text" id="=pjJ{/,+=}]fS~rBVln0">
                                                 <field name="TEXT">alexa2.0.Echo-Devices.</field>
                                               </block>
                                             </value>
                                             <value name="ADD1">
                                               <block type="get_value" id="SSP;CdoTz=fnDrj17]J8">
                                                 <field name="ATTR">val</field>
                                                 <field name="OID">alexa2.0.History.serialNumber</field>
                                               </block>
                                             </value>
                                             <value name="ADD2">
                                               <block type="text" id="QHarz9?-l+2tO.HzoIe0">
                                                 <field name="TEXT">.Commands.speak-volume</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="comment" id="M$fBZaLgg0pN,/E!r{xy">
                                         <field name="COMMENT">mach irgendwas.....</field>
                                       </block>
                                     </next>
                                   </block>
                                 </statement>
                                 <statement name="ELSE">
                                   <block type="debug" id="6a4`,4@P]oEr*lBB];K!">
                                     <field name="Severity">log</field>
                                     <value name="TEXT">
                                       <shadow type="text" id=",uX#K5U5NdEsTsyHL#@Y">
                                         <field name="TEXT">test</field>
                                       </shadow>
                                       <block type="text" id="Fb^)xLhI/b6Xzz6j,X4@">
                                         <field name="TEXT">existiert nicht</field>
                                       </block>
                                     </value>
                                   </block>
                                 </statement>
                               </block>
                              </xml>
                              

                              Bildschirmfoto 2020-01-31 um 17.32.28.png

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

                              @dslraser
                              Besser so:

                              if(existsObject(id)) return existsState(id);
                              return false;
                              

                              sonst wird bei nicht existierendem Objekt undefined zurück gegeben.

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

                              1 Antwort Letzte Antwort
                              3
                              • X xbow42

                                @dslraser danke, sieht schon mal sehr schlüssig aus!

                                B Offline
                                B Offline
                                bishop
                                schrieb am zuletzt editiert von
                                #50

                                @xbow42
                                würdest du mir dein blockly für den Wecker zur Verfügung stellen!?!
                                Würde auch gerne auf ICal/Feiertage reagieren damit er den Wecker dann ausschaltet.

                                Danke
                                Grüße

                                X 1 Antwort Letzte Antwort
                                0
                                • B bishop

                                  @xbow42
                                  würdest du mir dein blockly für den Wecker zur Verfügung stellen!?!
                                  Würde auch gerne auf ICal/Feiertage reagieren damit er den Wecker dann ausschaltet.

                                  Danke
                                  Grüße

                                  X Offline
                                  X Offline
                                  xbow42
                                  schrieb am zuletzt editiert von xbow42
                                  #51

                                  @bishop
                                  ich bin mir nicht sicher, ob du damit was anfangen kannst.
                                  so 1zu1 wird das nicht laufen da ich weitere Adapter nutze und manuell angelegte DP unter userdata.0 angelegt habe. Mein ICal-Adapter filtert auf "Urlaub".

                                  Die Funktion "chk_IsWorkingDay" , hilft dir vieleicht dein Script anzupassen.
                                  iobroker_script_chk_IsWorkingDay.png
                                  Edit optimierte chk_Funktion:

                                  <block xmlns="https://developers.google.com/blockly/xml" type="procedures_defreturn" id="w)XegB]vEJkV_0eX]6Qc" x="462.99492026748976" y="-512.0510259487883">
                                   <field name="NAME">chk_isWorkingDay</field>
                                   <comment pinned="false" h="80" w="160">Funktion - Ist aktueller Tag ein Arbeitstag? (iCal/Feiertag-Adapter)</comment>
                                   <statement name="STACK">
                                     <block type="variables_set" id="i?z|+p`afay)h4l5A(M_">
                                       <field name="VAR" id="+mr|bkNhZXs@C}[MoEko">isWorkingday</field>
                                       <value name="VALUE">
                                         <block type="logic_negate" id="6*qRRQ$aCx.:T03Eqv^o">
                                           <value name="BOOL">
                                             <block type="logic_operation" id="a#e8Ku_;:UcuHr).Gd(a" inline="false">
                                               <field name="OP">OR</field>
                                               <value name="A">
                                                 <block type="logic_operation" id="1Uq#I7@}iyEG27`^+T[m" inline="false">
                                                   <field name="OP">OR</field>
                                                   <value name="A">
                                                     <block type="get_value" id="H(*G_1H]p-.$3OI1P.Yc">
                                                       <field name="ATTR">val</field>
                                                       <field name="OID">feiertage.0.heute.boolean</field>
                                                     </block>
                                                   </value>
                                                   <value name="B">
                                                     <block type="get_value" id="_^95;?E8rUNUA0,t4M?G">
                                                       <field name="ATTR">val</field>
                                                       <field name="OID">ical.0.events.0.today.Urlaub</field>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                               <value name="B">
                                                 <block type="logic_operation" id="upyRkyiaX,bAwQ8E]WMR" inline="false">
                                                   <field name="OP">OR</field>
                                                   <value name="A">
                                                     <block type="logic_compare" id=".4o(!h+4!LE5wl4Z)5Bg">
                                                       <field name="OP">EQ</field>
                                                       <value name="A">
                                                         <block type="time_get" id="FLfeVsl:h(K*eqz,;:ev">
                                                           <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                           <field name="OPTION">wd</field>
                                                         </block>
                                                       </value>
                                                       <value name="B">
                                                         <block type="math_number" id="+W9B-clYl6nM3l2}|oqx">
                                                           <field name="NUM">0</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                   <value name="B">
                                                     <block type="logic_compare" id="m(L2ytt)gZ5cq2yL17dw">
                                                       <field name="OP">EQ</field>
                                                       <value name="A">
                                                         <block type="time_get" id="@nw.m$8S=3m|l}m}pB;c">
                                                           <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                           <field name="OPTION">wd</field>
                                                         </block>
                                                       </value>
                                                       <value name="B">
                                                         <block type="math_number" id="(~^XXmzPIC8fv7+,j~(F">
                                                           <field name="NUM">6</field>
                                                         </block>
                                                       </value>
                                                     </block>
                                                   </value>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="control" id="#7Yn85R$R|n#0oF*_1[v">
                                           <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                           <field name="OID">0_userdata.0.Allgemein.IsWorkingDay</field>
                                           <field name="WITH_DELAY">FALSE</field>
                                           <value name="VALUE">
                                             <block type="variables_get" id="KlK$-Xp5Kx{O0yf;bNrT">
                                               <field name="VAR" id="+mr|bkNhZXs@C}[MoEko">isWorkingday</field>
                                             </block>
                                           </value>
                                         </block>
                                       </next>
                                     </block>
                                   </statement>
                                   <value name="RETURN">
                                     <block type="variables_get" id="[:l(YYM|Zjgm_D[zT0$p">
                                       <field name="VAR" id="+mr|bkNhZXs@C}[MoEko">isWorkingday</field>
                                     </block>
                                   </value>
                                  </block>
                                  


                                  iobroker_AlexaWecker.txt

                                  Export DP_Wecker
                                  0_userdata.0.Geräte.Wecker.json

                                  B 1 Antwort Letzte Antwort
                                  0
                                  • X xbow42

                                    @bishop
                                    ich bin mir nicht sicher, ob du damit was anfangen kannst.
                                    so 1zu1 wird das nicht laufen da ich weitere Adapter nutze und manuell angelegte DP unter userdata.0 angelegt habe. Mein ICal-Adapter filtert auf "Urlaub".

                                    Die Funktion "chk_IsWorkingDay" , hilft dir vieleicht dein Script anzupassen.
                                    iobroker_script_chk_IsWorkingDay.png
                                    Edit optimierte chk_Funktion:

                                    <block xmlns="https://developers.google.com/blockly/xml" type="procedures_defreturn" id="w)XegB]vEJkV_0eX]6Qc" x="462.99492026748976" y="-512.0510259487883">
                                     <field name="NAME">chk_isWorkingDay</field>
                                     <comment pinned="false" h="80" w="160">Funktion - Ist aktueller Tag ein Arbeitstag? (iCal/Feiertag-Adapter)</comment>
                                     <statement name="STACK">
                                       <block type="variables_set" id="i?z|+p`afay)h4l5A(M_">
                                         <field name="VAR" id="+mr|bkNhZXs@C}[MoEko">isWorkingday</field>
                                         <value name="VALUE">
                                           <block type="logic_negate" id="6*qRRQ$aCx.:T03Eqv^o">
                                             <value name="BOOL">
                                               <block type="logic_operation" id="a#e8Ku_;:UcuHr).Gd(a" inline="false">
                                                 <field name="OP">OR</field>
                                                 <value name="A">
                                                   <block type="logic_operation" id="1Uq#I7@}iyEG27`^+T[m" inline="false">
                                                     <field name="OP">OR</field>
                                                     <value name="A">
                                                       <block type="get_value" id="H(*G_1H]p-.$3OI1P.Yc">
                                                         <field name="ATTR">val</field>
                                                         <field name="OID">feiertage.0.heute.boolean</field>
                                                       </block>
                                                     </value>
                                                     <value name="B">
                                                       <block type="get_value" id="_^95;?E8rUNUA0,t4M?G">
                                                         <field name="ATTR">val</field>
                                                         <field name="OID">ical.0.events.0.today.Urlaub</field>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                                 <value name="B">
                                                   <block type="logic_operation" id="upyRkyiaX,bAwQ8E]WMR" inline="false">
                                                     <field name="OP">OR</field>
                                                     <value name="A">
                                                       <block type="logic_compare" id=".4o(!h+4!LE5wl4Z)5Bg">
                                                         <field name="OP">EQ</field>
                                                         <value name="A">
                                                           <block type="time_get" id="FLfeVsl:h(K*eqz,;:ev">
                                                             <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                             <field name="OPTION">wd</field>
                                                           </block>
                                                         </value>
                                                         <value name="B">
                                                           <block type="math_number" id="+W9B-clYl6nM3l2}|oqx">
                                                             <field name="NUM">0</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                     <value name="B">
                                                       <block type="logic_compare" id="m(L2ytt)gZ5cq2yL17dw">
                                                         <field name="OP">EQ</field>
                                                         <value name="A">
                                                           <block type="time_get" id="@nw.m$8S=3m|l}m}pB;c">
                                                             <mutation xmlns="http://www.w3.org/1999/xhtml" format="false" language="false"></mutation>
                                                             <field name="OPTION">wd</field>
                                                           </block>
                                                         </value>
                                                         <value name="B">
                                                           <block type="math_number" id="(~^XXmzPIC8fv7+,j~(F">
                                                             <field name="NUM">6</field>
                                                           </block>
                                                         </value>
                                                       </block>
                                                     </value>
                                                   </block>
                                                 </value>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                         <next>
                                           <block type="control" id="#7Yn85R$R|n#0oF*_1[v">
                                             <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                             <field name="OID">0_userdata.0.Allgemein.IsWorkingDay</field>
                                             <field name="WITH_DELAY">FALSE</field>
                                             <value name="VALUE">
                                               <block type="variables_get" id="KlK$-Xp5Kx{O0yf;bNrT">
                                                 <field name="VAR" id="+mr|bkNhZXs@C}[MoEko">isWorkingday</field>
                                               </block>
                                             </value>
                                           </block>
                                         </next>
                                       </block>
                                     </statement>
                                     <value name="RETURN">
                                       <block type="variables_get" id="[:l(YYM|Zjgm_D[zT0$p">
                                         <field name="VAR" id="+mr|bkNhZXs@C}[MoEko">isWorkingday</field>
                                       </block>
                                     </value>
                                    </block>
                                    


                                    iobroker_AlexaWecker.txt

                                    Export DP_Wecker
                                    0_userdata.0.Geräte.Wecker.json

                                    B Offline
                                    B Offline
                                    bishop
                                    schrieb am zuletzt editiert von
                                    #52

                                    @xbow42
                                    werde mal schauen was ich verwenden kann!

                                    vielen dank

                                    1 Antwort Letzte Antwort
                                    0
                                    • P Offline
                                      P Offline
                                      Paddex
                                      schrieb am zuletzt editiert von
                                      #53

                                      Hallo,

                                      ich möchte das Thema noch einmal aufgreifen und auch hier mal meine Frage stellen.
                                      Ich möchte bei mir eine Steuerung programmieren, die 30 Minuten vor dem ersten eingestellten Wecker die Heizung im Badezimmer anmachen soll.

                                      Dafür itteriere ich Nachts um 4 Uhr über alle Alarm-Ordner (später kann man den dies auch machen lassen, wenn z.B. in der Alexa Summery das Stichwort Wecker hällt). Suche die raus die "true" sind, packen sie dann in eine Liste welche ich dann sortiere.

                                      Dann siehe ich von der kleinsten Uhrzeit 30 Minuten ab und habe die Lösung :-)

                                      JUHU - dachte ich ...

                                      Leider musste ich feststellen, dass wenn ein neuer Wecker angelegt wird, das Script diesen nicht findet. Erst wenn ich den javascript Adapter neu starte, erst dann findet er den neuen Wecker.

                                      Hier erstmal mein Code:

                                      var lst_Alarme, lst_Weckzeiten, int_Anzahl, acID, i, str_Weckzeit, str_kleinsteWeckzeitMinus30Min, VorWecker1;
                                      
                                      function listsGetSortCompare(type, direction) {
                                        var compareFuncs = {
                                          "NUMERIC": function(a, b) {
                                              return Number(a) - Number(b); },
                                          "TEXT": function(a, b) {
                                              return a.toString() > b.toString() ? 1 : -1; },
                                          "IGNORE_CASE": function(a, b) {
                                              return a.toString().toLowerCase() > b.toString().toLowerCase() ? 1 : -1; },
                                        };
                                        var compare = compareFuncs[type];
                                        return function(a, b) { return compare(a, b) * direction; }
                                      }
                                      
                                      
                                      // Alle Alarme von Schlafzimmer Echo Dot
                                      lst_Alarme = Array.prototype.slice.apply($("channel[state.id=alexa2.0.Echo-Devices.alexa2.0.Echo-Devices.G09XXXXXXXXXX.Alarm.*.enabled]"));
                                      lst_Weckzeiten = [];
                                      int_Anzahl = 0;
                                      if (!lst_Alarme.length) {
                                        console.log('Keine Alarme gefunden');
                                      } else {
                                        for (var acID_index in lst_Alarme) {
                                          acID = lst_Alarme[acID_index];
                                          int_Anzahl = (typeof int_Anzahl == 'number' ? int_Anzahl : 0) + 1;
                                          console.log(([int_Anzahl,' - ',acID,' - ',getState(acID).val].join('')));
                                          if (getState(acID).val) {
                                            console.log(([acID,' - ',getState(acID).val].join('')));
                                            str_Weckzeit = getState((String(acID.slice(0, acID.length - 7)) + 'time')).val;
                                            lst_Weckzeiten.push(getDateObject(str_Weckzeit).getTime());
                                          }
                                        }
                                        if (!lst_Weckzeiten.length) {
                                          console.log('Keine AKTIVIERTEN Alarme gefunden');
                                        } else {
                                          console.log('fertige Liste durchsuchen');
                                          for (var i_index in lst_Weckzeiten) {
                                            i = lst_Weckzeiten[i_index];
                                            console.log(('' + formatDate(getDateObject(getDateObject(i).getTime()), "hh:mm:ss")));
                                          }
                                          console.log('sortierte  Liste');
                                          var i_list = lst_Weckzeiten.slice().sort(listsGetSortCompare("NUMERIC", 1));
                                          for (var i_index2 in i_list) {
                                            i = i_list[i_index2];
                                            console.log(('' + formatDate(getDateObject(getDateObject(i).getTime()), "hh:mm:ss")));
                                          }
                                          console.log('kleinste Element');
                                          console.log(('' + formatDate(getDateObject((lst_Weckzeiten.slice().sort(listsGetSortCompare("NUMERIC", 1))[0])), "hh:mm:ss")));
                                          console.log('kleinste Element - 30 Minuten');
                                          str_kleinsteWeckzeitMinus30Min = ('' + formatDate(getDateObject((parseFloat(getDateObject((lst_Weckzeiten.slice().sort(listsGetSortCompare("NUMERIC", 1))[0])).getTime()) - 30 * 1000 * 60)), "hh:mm:ss"));
                                          console.log(str_kleinsteWeckzeitMinus30Min);
                                          console.log('kleinste Element - 30 Minuten');
                                          (function () {if (VorWecker1) {clearSchedule(VorWecker1); VorWecker1 = null;}})();
                                          VorWecker1 = schedule((getDateObject(str_kleinsteWeckzeitMinus30Min).getMinutes()).toString().trim() + ' ' + getDateObject(str_kleinsteWeckzeitMinus30Min).getHours().toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim(), async function () {
                                          });
                                        }
                                      }
                                      

                                      Und hier noch mal in zusammengesetztes Bild vom Blockly:

                                      BlocklyScriptAlexaWecker.png

                                      Vielleicht hat ja einer von euch eine Idee, wie man in JS neue Datenpunkte einlesen kann, die Instanz neu starten kann .. etc..

                                      Vielen Dank und ich bin gespannt

                                      dslraserD Dr. BakteriusD 2 Antworten Letzte Antwort
                                      0
                                      • P Paddex

                                        Hallo,

                                        ich möchte das Thema noch einmal aufgreifen und auch hier mal meine Frage stellen.
                                        Ich möchte bei mir eine Steuerung programmieren, die 30 Minuten vor dem ersten eingestellten Wecker die Heizung im Badezimmer anmachen soll.

                                        Dafür itteriere ich Nachts um 4 Uhr über alle Alarm-Ordner (später kann man den dies auch machen lassen, wenn z.B. in der Alexa Summery das Stichwort Wecker hällt). Suche die raus die "true" sind, packen sie dann in eine Liste welche ich dann sortiere.

                                        Dann siehe ich von der kleinsten Uhrzeit 30 Minuten ab und habe die Lösung :-)

                                        JUHU - dachte ich ...

                                        Leider musste ich feststellen, dass wenn ein neuer Wecker angelegt wird, das Script diesen nicht findet. Erst wenn ich den javascript Adapter neu starte, erst dann findet er den neuen Wecker.

                                        Hier erstmal mein Code:

                                        var lst_Alarme, lst_Weckzeiten, int_Anzahl, acID, i, str_Weckzeit, str_kleinsteWeckzeitMinus30Min, VorWecker1;
                                        
                                        function listsGetSortCompare(type, direction) {
                                          var compareFuncs = {
                                            "NUMERIC": function(a, b) {
                                                return Number(a) - Number(b); },
                                            "TEXT": function(a, b) {
                                                return a.toString() > b.toString() ? 1 : -1; },
                                            "IGNORE_CASE": function(a, b) {
                                                return a.toString().toLowerCase() > b.toString().toLowerCase() ? 1 : -1; },
                                          };
                                          var compare = compareFuncs[type];
                                          return function(a, b) { return compare(a, b) * direction; }
                                        }
                                        
                                        
                                        // Alle Alarme von Schlafzimmer Echo Dot
                                        lst_Alarme = Array.prototype.slice.apply($("channel[state.id=alexa2.0.Echo-Devices.alexa2.0.Echo-Devices.G09XXXXXXXXXX.Alarm.*.enabled]"));
                                        lst_Weckzeiten = [];
                                        int_Anzahl = 0;
                                        if (!lst_Alarme.length) {
                                          console.log('Keine Alarme gefunden');
                                        } else {
                                          for (var acID_index in lst_Alarme) {
                                            acID = lst_Alarme[acID_index];
                                            int_Anzahl = (typeof int_Anzahl == 'number' ? int_Anzahl : 0) + 1;
                                            console.log(([int_Anzahl,' - ',acID,' - ',getState(acID).val].join('')));
                                            if (getState(acID).val) {
                                              console.log(([acID,' - ',getState(acID).val].join('')));
                                              str_Weckzeit = getState((String(acID.slice(0, acID.length - 7)) + 'time')).val;
                                              lst_Weckzeiten.push(getDateObject(str_Weckzeit).getTime());
                                            }
                                          }
                                          if (!lst_Weckzeiten.length) {
                                            console.log('Keine AKTIVIERTEN Alarme gefunden');
                                          } else {
                                            console.log('fertige Liste durchsuchen');
                                            for (var i_index in lst_Weckzeiten) {
                                              i = lst_Weckzeiten[i_index];
                                              console.log(('' + formatDate(getDateObject(getDateObject(i).getTime()), "hh:mm:ss")));
                                            }
                                            console.log('sortierte  Liste');
                                            var i_list = lst_Weckzeiten.slice().sort(listsGetSortCompare("NUMERIC", 1));
                                            for (var i_index2 in i_list) {
                                              i = i_list[i_index2];
                                              console.log(('' + formatDate(getDateObject(getDateObject(i).getTime()), "hh:mm:ss")));
                                            }
                                            console.log('kleinste Element');
                                            console.log(('' + formatDate(getDateObject((lst_Weckzeiten.slice().sort(listsGetSortCompare("NUMERIC", 1))[0])), "hh:mm:ss")));
                                            console.log('kleinste Element - 30 Minuten');
                                            str_kleinsteWeckzeitMinus30Min = ('' + formatDate(getDateObject((parseFloat(getDateObject((lst_Weckzeiten.slice().sort(listsGetSortCompare("NUMERIC", 1))[0])).getTime()) - 30 * 1000 * 60)), "hh:mm:ss"));
                                            console.log(str_kleinsteWeckzeitMinus30Min);
                                            console.log('kleinste Element - 30 Minuten');
                                            (function () {if (VorWecker1) {clearSchedule(VorWecker1); VorWecker1 = null;}})();
                                            VorWecker1 = schedule((getDateObject(str_kleinsteWeckzeitMinus30Min).getMinutes()).toString().trim() + ' ' + getDateObject(str_kleinsteWeckzeitMinus30Min).getHours().toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim(), async function () {
                                            });
                                          }
                                        }
                                        

                                        Und hier noch mal in zusammengesetztes Bild vom Blockly:

                                        BlocklyScriptAlexaWecker.png

                                        Vielleicht hat ja einer von euch eine Idee, wie man in JS neue Datenpunkte einlesen kann, die Instanz neu starten kann .. etc..

                                        Vielen Dank und ich bin gespannt

                                        dslraserD Offline
                                        dslraserD Offline
                                        dslraser
                                        Forum Testing Most Active
                                        schrieb am zuletzt editiert von
                                        #54

                                        @paddex sagte in Alexa Wecker schaltet Beleuchtung an:

                                        Vielleicht hat ja einer von euch eine Idee, wie man in JS neue Datenpunkte einlesen kann, die Instanz neu starten kann .. etc..
                                        Vielen Dank und ich bin gespannt

                                        Vielleicht hilft Dir das hier

                                        https://forum.iobroker.net/post/608712

                                        1 Antwort Letzte Antwort
                                        0
                                        • P Paddex

                                          Hallo,

                                          ich möchte das Thema noch einmal aufgreifen und auch hier mal meine Frage stellen.
                                          Ich möchte bei mir eine Steuerung programmieren, die 30 Minuten vor dem ersten eingestellten Wecker die Heizung im Badezimmer anmachen soll.

                                          Dafür itteriere ich Nachts um 4 Uhr über alle Alarm-Ordner (später kann man den dies auch machen lassen, wenn z.B. in der Alexa Summery das Stichwort Wecker hällt). Suche die raus die "true" sind, packen sie dann in eine Liste welche ich dann sortiere.

                                          Dann siehe ich von der kleinsten Uhrzeit 30 Minuten ab und habe die Lösung :-)

                                          JUHU - dachte ich ...

                                          Leider musste ich feststellen, dass wenn ein neuer Wecker angelegt wird, das Script diesen nicht findet. Erst wenn ich den javascript Adapter neu starte, erst dann findet er den neuen Wecker.

                                          Hier erstmal mein Code:

                                          var lst_Alarme, lst_Weckzeiten, int_Anzahl, acID, i, str_Weckzeit, str_kleinsteWeckzeitMinus30Min, VorWecker1;
                                          
                                          function listsGetSortCompare(type, direction) {
                                            var compareFuncs = {
                                              "NUMERIC": function(a, b) {
                                                  return Number(a) - Number(b); },
                                              "TEXT": function(a, b) {
                                                  return a.toString() > b.toString() ? 1 : -1; },
                                              "IGNORE_CASE": function(a, b) {
                                                  return a.toString().toLowerCase() > b.toString().toLowerCase() ? 1 : -1; },
                                            };
                                            var compare = compareFuncs[type];
                                            return function(a, b) { return compare(a, b) * direction; }
                                          }
                                          
                                          
                                          // Alle Alarme von Schlafzimmer Echo Dot
                                          lst_Alarme = Array.prototype.slice.apply($("channel[state.id=alexa2.0.Echo-Devices.alexa2.0.Echo-Devices.G09XXXXXXXXXX.Alarm.*.enabled]"));
                                          lst_Weckzeiten = [];
                                          int_Anzahl = 0;
                                          if (!lst_Alarme.length) {
                                            console.log('Keine Alarme gefunden');
                                          } else {
                                            for (var acID_index in lst_Alarme) {
                                              acID = lst_Alarme[acID_index];
                                              int_Anzahl = (typeof int_Anzahl == 'number' ? int_Anzahl : 0) + 1;
                                              console.log(([int_Anzahl,' - ',acID,' - ',getState(acID).val].join('')));
                                              if (getState(acID).val) {
                                                console.log(([acID,' - ',getState(acID).val].join('')));
                                                str_Weckzeit = getState((String(acID.slice(0, acID.length - 7)) + 'time')).val;
                                                lst_Weckzeiten.push(getDateObject(str_Weckzeit).getTime());
                                              }
                                            }
                                            if (!lst_Weckzeiten.length) {
                                              console.log('Keine AKTIVIERTEN Alarme gefunden');
                                            } else {
                                              console.log('fertige Liste durchsuchen');
                                              for (var i_index in lst_Weckzeiten) {
                                                i = lst_Weckzeiten[i_index];
                                                console.log(('' + formatDate(getDateObject(getDateObject(i).getTime()), "hh:mm:ss")));
                                              }
                                              console.log('sortierte  Liste');
                                              var i_list = lst_Weckzeiten.slice().sort(listsGetSortCompare("NUMERIC", 1));
                                              for (var i_index2 in i_list) {
                                                i = i_list[i_index2];
                                                console.log(('' + formatDate(getDateObject(getDateObject(i).getTime()), "hh:mm:ss")));
                                              }
                                              console.log('kleinste Element');
                                              console.log(('' + formatDate(getDateObject((lst_Weckzeiten.slice().sort(listsGetSortCompare("NUMERIC", 1))[0])), "hh:mm:ss")));
                                              console.log('kleinste Element - 30 Minuten');
                                              str_kleinsteWeckzeitMinus30Min = ('' + formatDate(getDateObject((parseFloat(getDateObject((lst_Weckzeiten.slice().sort(listsGetSortCompare("NUMERIC", 1))[0])).getTime()) - 30 * 1000 * 60)), "hh:mm:ss"));
                                              console.log(str_kleinsteWeckzeitMinus30Min);
                                              console.log('kleinste Element - 30 Minuten');
                                              (function () {if (VorWecker1) {clearSchedule(VorWecker1); VorWecker1 = null;}})();
                                              VorWecker1 = schedule((getDateObject(str_kleinsteWeckzeitMinus30Min).getMinutes()).toString().trim() + ' ' + getDateObject(str_kleinsteWeckzeitMinus30Min).getHours().toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim() + ' ' + '*'.toString().trim(), async function () {
                                              });
                                            }
                                          }
                                          

                                          Und hier noch mal in zusammengesetztes Bild vom Blockly:

                                          BlocklyScriptAlexaWecker.png

                                          Vielleicht hat ja einer von euch eine Idee, wie man in JS neue Datenpunkte einlesen kann, die Instanz neu starten kann .. etc..

                                          Vielen Dank und ich bin gespannt

                                          Dr. BakteriusD Online
                                          Dr. BakteriusD Online
                                          Dr. Bakterius
                                          Most Active
                                          schrieb am zuletzt editiert von
                                          #55

                                          @paddex Siehe auch: https://github.com/ioBroker/ioBroker.javascript/issues/109

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          644

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          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