Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Skriptsammlung für den neuen ALEXA2.0 Adapter

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    21
    1
    815

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

Skriptsammlung für den neuen ALEXA2.0 Adapter

Scheduled Pinned Locked Moved Skripten / Logik
184 Posts 45 Posters 45.6k Views 19 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • dslraserD Offline
    dslraserD Offline
    dslraser
    Forum Testing Most Active
    wrote on last edited by
    #82

    @haselchen:

    Wenn es Dich nicht gäbe dslraser….klasse support :)

    filename="Unbenannt1.PNG" index="0">~~

    "Dont make functions within a loop" ist die Meldung.

    Ich muss leider alles erfragen,weil ich davon keinen Plan habe :cry: ` Das Log wäre dann für den Adapterentwickler hilfreich.

    Und mit dem Javascript Fehler bin ich ebenfalls überfordert. Kannst ja mal paul53 hier im Forum fragen, er ist richtig fit.

    1 Reply Last reply
    0
    • M Offline
      M Offline
      mk120
      wrote on last edited by
      #83

      Halli Hallo,

      ich sehe glaube ich sehe den Wald vor lauter Bäumen nicht. Ich bekomme das Fensterscript was von der Idee und Umsetzung richtig cool ist nicht ans laufen. Könnte von euch mal jemand rüberschauen und mir einen Tipp geben? Vielen Dank und ein schönen Sonntag
      8565_script.png

      8565_gewerk_fenster.png

      1 Reply Last reply
      0
      • haselchenH Offline
        haselchenH Offline
        haselchen
        Most Active
        wrote on last edited by
        #84

        Hab noch nicht alles bei dir angesehen , aber du solltest auf jedenfall deinen Räumen vernünftige Namen geben.

        Damit würde ich als allererstes anfangen.

        Dann habe ich es mal bei mir verglichen, da heisst es im Wert OPEN(1) oder CLOSED(0)

        Bei dir steht true oder false.

        Ich denke damit hat es wohl auch zu tun.

        Aber dslraser als Skript Profi kennt sich damit besser aus ;)

        Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

        1 Reply Last reply
        0
        • dslraserD Offline
          dslraserD Offline
          dslraser
          Forum Testing Most Active
          wrote on last edited by
          #85

          @mk120:

          Halli Hallo,

          ich sehe glaube ich sehe den Wald vor lauter Bäumen nicht. Ich bekomme das Fensterscript was von der Idee und Umsetzung richtig cool ist nicht ans laufen. Könnte von euch mal jemand rüberschauen und mir einen Tipp geben? Vielen Dank und ein schönen Sonntag

          script.PNG

          gewerk_fenster.PNG `

          Also hier mal was von mir dazu. Das mit den Raumnamen und Gewerken würde ich auch anpassen. (sonst bekommst Du als Raum leer, oder leer1 und roomBathroom usw…)

          Hier mal meine Gewerke
          3822_gewerke.jpg
          und hier mal meine Räume
          filename="Räume.JPG" index="2">~~
          Schau mal unter Aufzählungen wie da Deine Räume und Funktionen heissen. Wenn Du die aus der CCU hast, dann solltest Du es dort anpassen(Räume und Gewerke) danach Geräte neu einlesen von Deiner Instanz.
          3822_instanz.jpg
          Dann musst Du schauen wie bei Dir die STATE oder eben state heißen. Bei mir sind die .STATE groß geschrieben.
          3822_state.jpg
          So ist es dann auch im Script anzupassen
          3822_script.jpg
          Und eben wie Dein Gewerk heißt(bei mir Fenster, so auch im Script(genaue Schreibweise)
          3822_fenster.jpg
          Dann hast Du auch eine bessere Übersicht in den Objekten
          3822_objekte.jpg

          1 Reply Last reply
          0
          • sigi234S Online
            sigi234S Online
            sigi234
            Forum Testing Most Active
            wrote on last edited by
            #86

            @dslraser,

            kommt mir bekannt vor…........... :)

            Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
            Immer Daten sichern!

            1 Reply Last reply
            0
            • M Offline
              M Offline
              mk120
              wrote on last edited by
              #87

              Jungs, vielen Dank für die schnellen Antworten. Ich habe die Kontakte jetzt auf der CCU sauber zugeordenet (Gewerk/Raum) die Leer1 etc waren erstmal für ein Test, da ich dachte das Script zeigt deshalb keine Werte. Ich habe mal geschaut kann es wirklich mit der Open/Closed Geschichte zu tun haben? Bei mir steht true/false statt wie bei dir open/close. Ich habe den STATE im Script auch jetzt großgeschrieben. DANKE für eure Hilfe
              8565_kontakt.png

              1 Reply Last reply
              0
              • dslraserD Offline
                dslraserD Offline
                dslraser
                Forum Testing Most Active
                wrote on last edited by
                #88

                Wenn noch keine Werte nach dem Scriptstart kommen starte mal den Javascript Adapter einmal neu. (nach solchen Änderungen kommt erst dann bei mir sauber was an)

                PS: und schaue bitte in die Aufzählungen unter Funktionen wie Dein Gewerk da heisst (Bei manchen steht es dort in englisch)

                Mach mal bitte einen Screeshot von den Aufzählungen und Deiner Funktion Fenster

                1 Reply Last reply
                0
                • M Offline
                  M Offline
                  mk120
                  wrote on last edited by
                  #89

                  Script/Javascript neugestartet. Leider ohne Erfolg im Log steht auch nichts wildes..
                  8565_funktion.png

                  1 Reply Last reply
                  0
                  • dslraserD Offline
                    dslraserD Offline
                    dslraser
                    Forum Testing Most Active
                    wrote on last edited by
                    #90

                    Bei Dir ist fenster klein geschrieben.

                    enum.functions.fenster

                    Dann muss es im Script auch so geschrieben werden.

                    Bei mir ist es groß geschrieben
                    3822_fenster.jpg
                    Dann da ändern (habe ich oben aber geschrieben)
                    3822_script.jpg

                    1 Reply Last reply
                    0
                    • M Offline
                      M Offline
                      mk120
                      wrote on last edited by
                      #91

                      Fenster in fenster umbenannt. Script und Javascript neugestartet Fensterstatus = 0. Oh man eventuell mag das Script mich nicht :twisted:

                      Ich habe nun das Gewerk und die Datenpunkte Rega neu eingelesen. Nun wird das Gewerk auch Fenster geschrieben aber er möchte einfach nicht. Mir ist zu dem false/true Unterschied zu Open/Closed bei dir aufgefallen dass unter Objekte der Datenpunkt Sensor heißt. Wenn ich ihn als ID einbinden möchte steht halt xxx.hm2.sensor. Ist das eventuell ein Problem?

                      Anbei meine aktuellen Einstellungen:

                      Danke für die Mithilfe am Sonntag

                      8565_objekte.png 8565_script.png 8565_raw.png 8565_funktion.png

                      1 Reply Last reply
                      0
                      • dslraserD Offline
                        dslraserD Offline
                        dslraser
                        Forum Testing Most Active
                        wrote on last edited by
                        #92

                        ich bin nur am Handy und kann an den Screenshots nicht so richtig was sehen. Aber Du kannst es ja auch mal mit id=.sensor oder id=.SENSOR propieren…

                        Ich weiss gerade nicht aus dem Kopf ob dann auch noch andere Stellen geändert werden müssen, ich glaube aber nicht. (ich benutze das gleiche Script für Hue Lampen und da läuft es über id=*.on)

                        Und wenn Du am Script was änderst starte den JS Adapter neu, das war bei mir immer der Grund wenn es nicht übernommen wurde...

                        1 Reply Last reply
                        0
                        • dslraserD Offline
                          dslraserD Offline
                          dslraser
                          Forum Testing Most Active
                          wrote on last edited by
                          #93

                          kannst auch gerne mal hier nachlesen, das ist das gleiche Script aber da haben auch Andere in der betroffenen Zeile was angepasst, je nachdem…

                          viewtopic.php?f=21&t=5735&share_tid=573 ... are_type=t

                          1 Reply Last reply
                          0
                          • haselchenH Offline
                            haselchenH Offline
                            haselchen
                            Most Active
                            wrote on last edited by
                            #94

                            @ dslraser

                            Ich habe mal das Skript getestet , als alle Fenster geschlossen waren.

                            Da kommt dann von Alexa: Es sind…... und dann nichts mehr.

                            Ähm, es wäre schön wenn sie sagt , es ist alles geschlossen oder es ist nichts geöffnet.

                            Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

                            1 Reply Last reply
                            0
                            • dslraserD Offline
                              dslraserD Offline
                              dslraser
                              Forum Testing Most Active
                              wrote on last edited by
                              #95

                              @haselchen:

                              @ dslraser

                              Ich habe mal das Skript getestet , als alle Fenster geschlossen waren.

                              Da kommt dann von Alexa: Es sind…... und dann nichts mehr.

                              Ähm, es wäre schön wenn sie sagt , es ist alles geschlossen oder es ist nichts geöffnet. `

                              Ich lasse mir nur Räume mit geöffneten Fenstern ansagen(Fenster sind mir zu viel) und eben ob alle Fenster geschlossen sind. Kommt wahrscheinlich drauf an auf was Du in Deinem Blockly bei der Ansage zeigst.

                              Mein aktuelles FensterScript

                              ! ````
                              // Status Fenster. Das Script zählt alle Fenster im Gewerk Fenster (Aufzählungen-Funktion)
                              // Telegramnachricht bei Abwesenheit wenn sich der Fensterstatus ändert. Bei Anwesenheit in der Homezone keine Nachricht senden.
                              // Anwesenheit Datenpunkte separat erstellt und durch die Adapter google-sharedlocation und Places geschaltet
                              ! var logging = true;
                              ! var
                              idAnzahlAuf = 'javascript.0.Status.Fenster.Anzahl_auf',
                              idAnzahl = 'javascript.0.Status.Fenster.Anzahl',
                              idText = 'javascript.0.Status.Fenster.Text',
                              idRaum = 'javascript.0.Status.Fenster.Raum',
                              idAnsage = 'javascript.0.Status.Fenster.Ansage';
                              ! // Ab hier nix mehr ändern
                              createState(idAnzahl, { // wenn benötigt: Anzahl der vorhandenen Fenster
                              type: 'number',
                              name: 'Anzahl aller Fenster',
                              min: 0,
                              def: 0,
                              role: 'value'
                              });
                              createState(idAnzahlAuf, { // Anzahl der Fenster, die auf sind als Variable unter Javascript.0 anlegen
                              type: 'number',
                              name: 'Anzahl der geoeffneten Fenster',
                              min: 0,
                              def: 0,
                              role: 'value'
                              });
                              createState(idText, { // Anzahl der geoeffneten Fenster und deren Namen als Variable unter Javascript.0 anlegen
                              type: 'string',
                              name: 'geoeffnete Fenster',
                              desc: 'Namen der geoeffneten Fenster',
                              def: ' ',
                              role: 'value'
                              });
                              createState(idAnsage, {
                              type: 'string',
                              name: 'geoeffnete Fenster (Ansage)',
                              desc: 'Namen der geoeffneten Fenster (für Ansage aufbereitet)',
                              def: ' ',
                              role: 'value'
                              });
                              createState(idRaum, { // Räume, in denen Fenster geoeffnet sind
                              type: 'string',
                              name: 'Räume mit geoeffneten Fenster',
                              desc: 'Namen der Räume, in denen Fenster geoeffnet sind',
                              def: ' ',
                              role: 'value'
                              });
                              ! var cacheSelectorState = $('channelstate.id=*.STATE'); // Gewerk Fenster
                              ! function checkDevices(obj) {
                              // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Fenster auf 0
                              var anzahlFensterAuf = 0;
                              var anzahlFenster = 0;
                              var textFensterAuf = [];
                              var textRaum = [];
                              if (logging) {
                              log('++++++ Fenster Anzahl ++++ ');
                              log('#### SCHALTER ##### ');
                              }
                              cacheSelectorState.each(function(id, i) { // Schleife für jedes gefundenen Element *.STATE im Gewerk Fenster
                              var obj = getObject(id);
                              var name = getObject(id).common.name;
                              var status = getState(id).val; // Zustand *.STATE abfragen (jedes Element)
                              var devicename = name.substring(0, name.indexOf(".STATE")); //.state aus Text entfernen
                              var raumname = getObject(id, "rooms");
                              ! if (logging) {
                              log('-------');
                              log('Kanal: ' + name);
                              log('Status: ' + status);
                              }
                              if (status) { // wenn Zustand = true, dann wird die Anzahl der Fenster hochgezählt
                              ++anzahlFensterAuf;
                              textFensterAuf.push(devicename); // Zu Array hinzufügen
                              textRaum.push(raumname.enumNames); //
                              }
                              ++anzahlFenster; // Zählt die Anzahl der vorhandenen Fenster unabhängig vom Status
                              });

                              textRaum = deleteDuplicates(textRaum); 
                              
                              // Array mit Fensternamen sortieren
                              textFensterAuf.sort();
                              textRaum.sort();
                              // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon auf) ausgegeben
                              if (logging) log("Text: " + textFensterAuf);
                              if (logging) log("Anzahl Fenster: " + anzahlFenster + " # davon Fenster auf: " + anzahlFensterAuf);
                              // die ermittelten Werte werden als javascript.0\. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS)
                              setState(idText, textFensterAuf.join(',\nund\n')); // Schreibt die aktuelle Namen der geoeffneten Fenster
                              setState(idAnzahlAuf, textFensterAuf.length); // Schreibt die aktuelle Anzahl der geoeffneten Fenster
                              setState(idAnzahl, anzahlFenster); // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Fenster
                              // setState(idRaum, textRaum.join(',
                              

                              ')); // Räume, in denen Fenster geoeffnet sind
                              setState(idRaum, textRaum.join(',\nund\n')); // Räume, in denen Fenster geoeffnet sind
                              }

                              ! // Trigger
                              cacheSelectorState.on(function(obj) { // bei Zustandänderung *.STATE im Gewerk Fenster
                              if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat
                              checkDevices();
                              });
                              ! function main() {
                              setTimeout(function() {
                              if (logging) log('Auslöser Skriptstart');
                              checkDevices();
                              }, 2000);
                              }
                              ! main(); // Skriptstart-Auslöser
                              ! // Aufbereitung für Ansage
                              function strip_tags(data) {
                              var rueckgabe = data.replace(/( |<([^>]+)>)/ig, " ");
                              return (rueckgabe);
                              }
                              ! on(idText, function(obj) {
                              var text = obj.state.val;
                              text = (text.length > 1) ? ' ' + strip_tags(text) : 'Alle Fenster geschlossen';
                              setState(idAnsage, text);
                              });
                              ! // Bei Anwesenheit zu Hause keine Telegramnachricht---Bei Abwesenheit sendet Telegram eine Nachricht
                              // on({id: 'javascript.0.Status.Fenster.Ansage', change: "ne"}, function (obj) {
                              // var value = obj.state.val;
                              // var oldValue = obj.oldState.val;
                              // if (getState("javascript.0.Anwesenheit.Heiko.Home.Heiko_Home").val === false) {
                              // sendTo("telegram", "send", {
                              // text: getState("javascript.0.Status.Fenster.Ansage").val,
                              // disable_notification: true // ohne Ton am Handy
                              //});
                              //}
                              //});

                              
                              Ich nehme diese, so passt es bei mir
                              
                              alle Fenster geschlossen = Datenpunkt geöffnete Fenster (Ansage)
                               ![3822_fenster_zu.jpg](/assets/uploads/files/3822_fenster_zu.jpg) 
                              alle Fenster geschlossen = Datenpunkt geöffnete Fenster (Ansage)
                               ![3822_alle_fenster_geschlossen.jpg](/assets/uploads/files/3822_alle_fenster_geschlossen.jpg) 
                              mindestens ein Raum mit geöffnetem Fenster = Datenpunkt Räume mit geöffneten Fenster
                               ![3822_fenster_auf.jpg](/assets/uploads/files/3822_fenster_auf.jpg) 
                              mindestens ein Raum mit geöffnetem Fenster = Datenpunkt Räume mit geöffneten Fenster
                               ![3822_ein_fenster_auf.jpg](/assets/uploads/files/3822_ein_fenster_auf.jpg) 
                              1 Reply Last reply
                              0
                              • haselchenH Offline
                                haselchenH Offline
                                haselchen
                                Most Active
                                wrote on last edited by
                                #96

                                Bei welchem Blocky Punkt sagt sie denn, dass alles geschlossen ist?

                                Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

                                1 Reply Last reply
                                0
                                • dslraserD Offline
                                  dslraserD Offline
                                  dslraser
                                  Forum Testing Most Active
                                  wrote on last edited by
                                  #97

                                  @haselchen:

                                  Bei welchem Blocky Punkt sagt sie denn, dass alles geschlossen ist? `

                                  Schau nochmal in meinen Beitrag über Deinem (da war beim Bilder einfügen was verdreht–-sollte jetzt passen)

                                  1 Reply Last reply
                                  0
                                  • haselchenH Offline
                                    haselchenH Offline
                                    haselchen
                                    Most Active
                                    wrote on last edited by
                                    #98

                                    Jawoll, das wars.

                                    Danke.

                                    Jetzt haut sie es raus: Aktuell sind alle Fenster geschlossen :D

                                    Synology DS218+ & 2 x Fujitsu Esprimo (VM/Container) + FritzBox7590 + 2 AVM 3000 Repeater & Homematic & HUE & Osram & Xiaomi, NPM 10.9.4, Nodejs 22.21.0 ,JS Controller 7.0.7 ,Admin 7.7.19

                                    1 Reply Last reply
                                    0
                                    • dslraserD Offline
                                      dslraserD Offline
                                      dslraser
                                      Forum Testing Most Active
                                      wrote on last edited by
                                      #99

                                      @sissiwup:

                                      @haselchen:

                                      Hab auf die Version 1.0.0 upgedatet vorhin.

                                      Mag sein , dass es deswegen jetzt funktioniert :D

                                      Was sind denn so Gründe , warum Alexa einfach so mal die offenen Fenster ansagt, ohne gefragt zu werden? `

                                      Hallo,

                                      ich habe das auch. Die einzige Variante (die ich gefunden habe) das zu umgehen ist eine Variable dazwischen zu schalten.

                                      D.h. Alexa setzt die Variable Trigger… auf an und das Skript lauscht auf Änderungen an der Variablen.

                                      Ansonsten erzählt die andauern etwas und wenn du wirklich etwas damit steuerst wird es doof.

                                      Ich meine jedes Skript starte beim Neustart des Adapters und beim Speichern neu. `

                                      Kannst Du das bitte mal bissl genauer beschreiben.

                                      (mich stört es auch das manche Sripte beim Neustart bzw. beim aktualisieren loslaufen. (Ich denke da immer so drann wenn keiner zu Hause ist, oder Urlaub und es gibt einen Fehler bzw. Neustart und der Staubsauger oder der Rasenmäher würde los fahren…)

                                      Ein Beispiel Deiner Lösung wäre gut, da ich für mich auch noch keine Lösung gefunden habe.

                                      Edit: Hat sich erledigt, ich habe es für mich nun auch gelöst, wollte ich schon längst mal machen.

                                      Ich habe jetzt eigene Datenpunkte als Logikwert angelegt und schalte bzw. triggere in den Scripten damit.

                                      1 Reply Last reply
                                      0
                                      • paul53P Offline
                                        paul53P Offline
                                        paul53
                                        wrote on last edited by
                                        #100

                                        @mk120:

                                        eventuell mag das Script mich nicht `
                                        Du hast das Gewerk den Datenpunkten zugeordnet. Dann muss der Selektor entsprechend angepasst werden.

                                        const fensterSENSOR = $('[id=*.SENSOR](functions=Fenster)');
                                        

                                        Evtl. "Fenster" klein geschrieben, falls die Enum-Objekt-ID lautet enum.functions.fenster.

                                        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 Reply Last reply
                                        0
                                        • S Offline
                                          S Offline
                                          Sven_hh
                                          wrote on last edited by
                                          #101

                                          Guten Morgen an alle,

                                          Das was „dslraser“ angesprochen hat mit dem Neustart des Raspi und dem damit verbundenen ausführen der Scripte nervt mich bzw meine Frau auch <emoji seq="1f60c">😌</emoji> gibt es da generell eine Möglichkeit das zu unterbinden?

                                          Vg Sven

                                          VG Sven :idea:

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          786

                                          Online

                                          32.5k

                                          Users

                                          81.6k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe