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

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

NEWS

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

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

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.4k

Skriptsammlung für den neuen ALEXA2.0 Adapter

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
184 Beiträge 45 Kommentatoren 45.3k Aufrufe 19 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.
  • S Offline
    S Offline
    Sprite01
    schrieb am zuletzt editiert von
    #135

    Bei mir gehen mal wieder keine Antworten des Scriptes für Licht und für Fenster.

    Im Log steht:

    alexa2.0	2018-10-05 20:47:22.471	info	Smarthome-Device Capability Alexa.PlaybackStateReporter unknown. Report to developer this and next log line from logfile on disk!
    alexa2.0	2018-10-05 20:47:22.471	info	{"applianceId":"SKILL_"für_Anzeige_hier_ein_paar_Buchstaben_entfernt"_WE3LTE5ZGEtNNGMdkkMDlmIjoibGl2ZSJ9_RINCON_B8E937AB1801400","endpointTypeId":"SonosTestMDODevice","driv
    alexa2.0	2018-10-05 20:47:22.470	info	Smarthome-Device Capability Alexa.PlaybackStateReporter unknown. Report to developer this and next log line from logfile on disk!
    javascript.0	2018-10-05 20:47:15.155	info	script.js.Eigene.Alexa_antwortet_Fensterabfrage: registered 0 subscriptions and 0 schedules
    javascript.0	2018-10-05 20:47:15.138	info	Start javascript script.js.Eigene.Alexa_antwortet_Fensterabfrage
    

    Seltsam, geändert wurde nichts wissentlich. Selbst ein Updaten der Adapter erfolgte nicht.

    PS: nach iobroker stop und iobroker start funktioniert es wieder.

    Gruß

    Dirk

    http://www.DessauWetter.de

    (ioBroker auf IntelNuc und Proxmox)

    1 Antwort Letzte Antwort
    0
    • B Offline
      B Offline
      Belei
      schrieb am zuletzt editiert von
      #136

      @dslraser:

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

      Kannst du das mal erklären bzw zeigen?

      1 Antwort Letzte Antwort
      0
      • S Offline
        S Offline
        Spike08122
        schrieb am zuletzt editiert von
        #137

        Hallo Zusammen,

        ich habe mir das Skript auch für meine Bedürfnisse angepasst. Es funktioniert auch, aber der Name der aktuell genutzten bzw. angefragten Alexa wird in der History/Name nicht immer aktualisiert. Also bekomme ich nur die Ansage, wenn ich die Alexa zuvor schon genutzt habe, bzw. der Name entsprechend aktualisiert wurde.

        Woran liegt das bzw. wie kann ich das ändern?

        Gruß

        Spike


        NUC mit Proxmox: ioBroker, ConBee, Raspimatic, InluxDB und Grafana als VM bzw. LXC. Außerdem HUE, Harmony HUB, div. ESP8266 und Alexa

        1 Antwort Letzte Antwort
        0
        • dslraserD Offline
          dslraserD Offline
          dslraser
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #138

          @Spike08122:

          Hallo Zusammen,

          ich habe mir das Skript auch für meine Bedürfnisse angepasst. Es funktioniert auch, aber der Name der aktuell genutzten bzw. angefragten Alexa wird in der History/Name nicht immer aktualisiert. Also bekomme ich nur die Ansage, wenn ich die Alexa zuvor schon genutzt habe, bzw. der Name entsprechend aktualisiert wurde.

          Woran liegt das bzw. wie kann ich das ändern?

          Gruß

          Spike ` Hast Du im Alexa2 Adapter auf Push gestellt ?

          Sonst kannst Du auch die Zeit etwas erhöhen, also die Millisekunden…

          1 Antwort Letzte Antwort
          0
          • WebrangerW Offline
            WebrangerW Offline
            Webranger
            schrieb am zuletzt editiert von
            #139

            @tadek:

            Hallo zusammen,

            ich möchte meinen Briefkasten dazu bringen mir eine Nachricht an Alexa zu schicken mittels HM Fensterkontakt.

            Ich möchte aber nicht, dass die Nachricht sofort ausgegeben wird, das habe ich schon hinbekommen, sondern dass

            der Echo leuchtet und mir signalisiert, dass eine Nachricht zum abrufen bereit ist.

            Ähnlich, wie es der Abfallkalender Skill macht.

            Mit "Alexa, welche Benachrichtigung habe ich" wird dann erst die Ausgabe gemacht.

            Geht das mit dem Alexa 2 Adapter? `

            Hast Du das hinbekommen bzw. eine Lösung gefunden?

            Gruss

            Intel NUC Celeron, Xiaomi Gateway, Fritzbox 7590, XS1

            1 Antwort Letzte Antwort
            0
            • S Offline
              S Offline
              Spike08122
              schrieb am zuletzt editiert von
              #140

              @dslraser:

              @Spike08122:

              Hallo Zusammen,

              ich habe mir das Skript auch für meine Bedürfnisse angepasst. Es funktioniert auch, aber der Name der aktuell genutzten bzw. angefragten Alexa wird in der History/Name nicht immer aktualisiert. Also bekomme ich nur die Ansage, wenn ich die Alexa zuvor schon genutzt habe, bzw. der Name entsprechend aktualisiert wurde.

              Woran liegt das bzw. wie kann ich das ändern?

              Gruß

              Spike ` Hast Du im Alexa2 Adapter auf Push gestellt ?

              Sonst kannst Du auch die Zeit etwas erhöhen, also die Millisekunden… `

              Super Danke, das war´s

              Spike


              NUC mit Proxmox: ioBroker, ConBee, Raspimatic, InluxDB und Grafana als VM bzw. LXC. Außerdem HUE, Harmony HUB, div. ESP8266 und Alexa

              1 Antwort Letzte Antwort
              0
              • dslraserD Offline
                dslraserD Offline
                dslraser
                Forum Testing Most Active
                schrieb am zuletzt editiert von
                #141

                @Belei:

                @dslraser:

                @sissiwup:

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

                Kannst du das mal erklären bzw zeigen? `
                Falls Du mich bzw. das mit den Datenpunkten meinst ? hier mal einige Beispiele…

                Datenpunkte erstelle ich nun immer mit JS neu, hat auch den Vorteil, falls mal was weg ist kann man die immer schnell mit JS erstellen.

                Hier mal z.B. Lautstärke ohne Smartnamen für Alexa

                //Denon AVR 4520 Lautstärke regeln
                createState('Eigene_Datenpunkte.Denon.Denon_Lautstärke', { 
                    type:  'number', 
                    name:  'Denon-Lautstärke', 
                    min:    0, 
                    max:    100, 
                    def:    30, 
                    read:   true, 
                    write:  true, 
                    role:  'level.volume',
                    "smartName": {
                      "de": "Verstärker",
                      "smartType": "",
                      "byON": "30"
                }});
                

                oder hier als Steckdose mit Smartnamen für Alexa als Switch

                //Steckdose Geschirrspueler
                createState("Eigene_Datenpunkte.Geschirrspueler.Geschirrspueler", {
                    name: 'Geschirrspueler', 
                    role: 'switch',
                    type: 'boolean', 
                    read:  true, 
                    write: true, 
                    def:   false,
                    "smartName": {
                    "de": "Geschirrspüler",
                    "smartType": "SMARTPLUG"
                }});
                

                oder hier einen Button für meinen Sat Receiver

                //VU Mute
                //Datenpunkt Mute
                createState("Eigene_Datenpunkte.Fernsehen.Mute", {
                    name: 'Mute', 
                    role: 'button',
                    type: 'object', 
                    read:  true, 
                    write: true, 
                    def:   false,
                    "smartName": {
                    "de": "Alexa Mute",
                    "smartType": "SWITCH"
                }});
                

                oder hier einen Sender

                //TV Sender oder Menü VU
                //Datenpunkt Fernsehen mit VU Wohnzimmer ARD - Kanal 2
                createState("Eigene_Datenpunkte.Fernsehen.02ARD", {
                    name: '02ARD', 
                    role: 'button',
                    type: 'object', 
                    read:  true, 
                    write: true, 
                    def:   false,
                    "smartName": {
                    "de": "02 Kanal A.R.D.",
                    "smartType": "SWITCH"
                }});
                

                Hier triggere ich dann Quasi den erstellten Datenpunkt
                3822_bildschirmfoto_2018-11-01_um_15.35.36.png

                Und diese Datenpunkte verwurste ich dann in den Blocklys. Wenn Du JS benutzt kannst Du die auch direkt ins Script packen.

                Diese Datenpunkte schalte ich dann meistens über Routinen in der Alexa App, dann ist es auch egal wie die heissen.

                1 Antwort Letzte Antwort
                0
                • B Offline
                  B Offline
                  Belei
                  schrieb am zuletzt editiert von
                  #142

                  Super Danke, muss ich auch nochmal einbauen damit sie nicht beim iobroker neustart so viel sabbelt…

                  Wozu ist eigentlich das "steuere Trigger/rescan mit wahr" im Blockly?

                  1 Antwort Letzte Antwort
                  0
                  • dslraserD Offline
                    dslraserD Offline
                    dslraser
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von
                    #143

                    @Belei:

                    Wozu ist eigentlich das "steuere Trigger/rescan mit wahr" im Blockly? `

                    Damit wird Alexa2 quasi aktualisiert und nachgeschaut welcher Echo den letzten Befehl bekommen hat.

                    1 Antwort Letzte Antwort
                    0
                    • dslraserD Offline
                      dslraserD Offline
                      dslraser
                      Forum Testing Most Active
                      schrieb am zuletzt editiert von
                      #144

                      @Belei:

                      Super Danke, muss ich auch nochmal einbauen damit sie nicht beim iobroker neustart so viel sabbelt…

                      Wozu ist eigentlich das "steuere Trigger/rescan mit wahr" im Blockly? `

                      PS: Wenn Du den Haken im Alexa2 Adapter bei Push gesetzt hast brauchst Du Trigger/rescan nicht.

                      1 Antwort Letzte Antwort
                      0
                      • NegaleinN Offline
                        NegaleinN Offline
                        Negalein
                        Global Moderator
                        schrieb am zuletzt editiert von
                        #145

                        @Chaot:

                        • Am Sonoff DHT22 und Taster angeschlossen `

                        Hallo

                        Wird der DHT22 zwingend benötigt? Das ist doch nur ein Temperatursensor und Luftfeuchtigkeitssensor. Oder täusch ich mich da?

                        Da ich keine Fritzbox habe, reicht es mir, wenn ein drücken an der Glocke bei Alexa angesagt wird!

                        Danke für deine Hilfe!

                        ° Node.js: 20.17.0 NPM: 10.8.2
                        ° Proxmox, Ubuntu 22.04.3 LTS
                        ° Fixer ---> iob fix

                        1 Antwort Letzte Antwort
                        0
                        • ChaotC Offline
                          ChaotC Offline
                          Chaot
                          schrieb am zuletzt editiert von
                          #146

                          Oh nein, der Temperatursensor wird dort nicht benötigt.

                          Das hat alleine den Grund das ich, wenn ich dort sowieso einen Sonoff einbaue auch gleich die Außentemperatur für meine VIS machen kann. Der DHT22 ist übrigens mittlerweile ein BME280 geworden :D

                          ioBroker auf NUC unter Proxmox; VIS: 12" Touchscreen und 17" Touch; Lichtsteuerung, Thermometer und Sensoren: Tasmota (39); Ambiente Beleuchtung: WLED (9); Heizung: DECT Thermostate (9) an Fritz 6690; EMS-ESP; 1 Echo V2; 3 Echo DOT; 1 Echo Connect; 2 Echo Show 5; Unifi Ap-Ac Lite.

                          1 Antwort Letzte Antwort
                          0
                          • M Offline
                            M Offline
                            Mr.X
                            schrieb am zuletzt editiert von
                            #147

                            kurze Hilfeanfrage: Nachdem ich mein Amazon PW geändert habe habe ich den Adapter neu istalliert.

                            Jetzt wird der auch grün und alle Geräte werden angezeigt.

                            Aber weder weder bekomme ich ein update der History noch funktioniert Speech für die Sprachausgabe.

                            Hat jemand eine Idee, woran das liegen könnte?

                            1 Antwort Letzte Antwort
                            0
                            • dslraserD Offline
                              dslraserD Offline
                              dslraser
                              Forum Testing Most Active
                              schrieb am zuletzt editiert von
                              #148

                              @tadek:

                              kurze Hilfeanfrage: Nachdem ich mein Amazon PW geändert habe habe ich den Adapter neu istalliert.

                              Jetzt wird der auch grün und alle Geräte werden angezeigt.

                              Aber weder weder bekomme ich ein update der History noch funktioniert Speech für die Sprachausgabe.

                              Hat jemand eine Idee, woran das liegen könnte? ` Haken bei Pushverbindung gesetzt ?

                              1 Antwort Letzte Antwort
                              0
                              • M Offline
                                M Offline
                                Mr.X
                                schrieb am zuletzt editiert von
                                #149

                                ja, der war standardmäßig an.

                                Auch kommt kein Update, wenn ich den manuel über History –> #trigger anstoße

                                1 Antwort Letzte Antwort
                                0
                                • Rene.HomeR Offline
                                  Rene.HomeR Offline
                                  Rene.Home
                                  schrieb am zuletzt editiert von
                                  #150

                                  Hallo,

                                  ich habe da mit dem triggern des Fensterskriptes ein Logik-Problem. Es werden die Fenster gezählt aber ich bekomme es gedanklich nicht auf die Reihe wie die Zählung angetriggert wird

                                  Die Einrichtung habe ich wie folgt gemacht:

                                  1. das Skript "Fensterstatus" mit dem folgenden Inhalt angelegt und laufen gelassen.

                                  ! ````
                                  // Status Fenster. Das Script zählt alle Fenster im Gewerk Verschluss mit der id=*.STATE
                                  !
                                  ! var logging = false;
                                  !
                                  ! 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, { // Anzahl der vorhandenen Fenster
                                  ! type: 'number',
                                  ! name: 'Anzahl aller Fenster',
                                  ! min: 0,
                                  ! def: 0,
                                  ! role: 'value'
                                  ! });
                                  ! createState(idAnzahlAuf, { // Anzahl der Fenster, die auf sind
                                  ! type: 'number',
                                  ! name: 'Anzahl der geoeffneten Fenster',
                                  ! min: 0,
                                  ! def: 0,
                                  ! role: 'value'
                                  ! });
                                  ! createState(idText, { // Anzahl der geoeffneten Fenster und deren Namen
                                  ! 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 Verschluss
                                  ! function checkDevices(obj) {
                                  ! // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Verschluss 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 Verschluss
                                  ! 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 Verschluss
                                  ! // 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 Verschluss
                                  ! 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);
                                  ! });

                                  
                                  das Ergebnis war dann die richtige Anzahl an Fenster
                                  
                                  2\. das Skript "deleteDuplicates" unter Global gepackt
                                  
                                  3\. das Blocky Skript mit dem Namen "Fensterabfrage" eingerichtet und entsprechend an den Echo angepasst. Die Ausgabe funktioniert.
                                  
                                  4\. in der Cloud das Skript "scriptEnabled.rules.Alexa_sagt.Fensterabfrage" als Smart Gerät eingefügt.
                                  
                                  Jetzt kommt mein Verständnisproblem. Das Fensterabfrage-Blocky-Skript macht ja nur eine Ausgabe. Die Ermittlung der offenen und geschlossenen Fenster erfolgt ja in dem Skript unter Punkt 1\. Müsste ich dieses dann nicht als Smart Gerät einbinden? Wenn ich das aber mache, wie wird dann das Blocky aufgerufen um die Ausgabe an den Speak vom Echo zu geben?
                                  
                                  Kann mir das bitte einer erklären. Wo liegt mein Fehler in der Logik.Für mich ist das interessant da ich noch andere Themen umsetzen will und entsprechende Skripte entwickeln und implementieren möchte.
                                  
                                  Vielen Dank schon mal im Vorfeld
                                  1 Antwort Letzte Antwort
                                  0
                                  • dslraserD Offline
                                    dslraserD Offline
                                    dslraser
                                    Forum Testing Most Active
                                    schrieb am zuletzt editiert von
                                    #151

                                    @Rene.Home:

                                    Hallo,

                                    ich habe da mit dem triggern des Fensterskriptes ein Logik-Problem. Es werden die Fenster gezählt aber ich bekomme es gedanklich nicht auf die Reihe wie die Zählung angetriggert wird

                                    Die Einrichtung habe ich wie folgt gemacht:

                                    1. das Skript "Fensterstatus" mit dem folgenden Inhalt angelegt und laufen gelassen.

                                    ! ````
                                    // Status Fenster. Das Script zählt alle Fenster im Gewerk Verschluss mit der id=*.STATE
                                    !
                                    ! var logging = false;
                                    !
                                    ! 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, { // Anzahl der vorhandenen Fenster
                                    ! type: 'number',
                                    ! name: 'Anzahl aller Fenster',
                                    ! min: 0,
                                    ! def: 0,
                                    ! role: 'value'
                                    ! });
                                    ! createState(idAnzahlAuf, { // Anzahl der Fenster, die auf sind
                                    ! type: 'number',
                                    ! name: 'Anzahl der geoeffneten Fenster',
                                    ! min: 0,
                                    ! def: 0,
                                    ! role: 'value'
                                    ! });
                                    ! createState(idText, { // Anzahl der geoeffneten Fenster und deren Namen
                                    ! 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 Verschluss
                                    ! function checkDevices(obj) {
                                    ! // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Verschluss 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 Verschluss
                                    ! 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 Verschluss
                                    ! // 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 Verschluss
                                    ! 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);
                                    ! });

                                    
                                    das Ergebnis war dann die richtige Anzahl an Fenster
                                    
                                    2\. das Skript "deleteDuplicates" unter Global gepackt
                                    
                                    3\. das Blocky Skript mit dem Namen "Fensterabfrage" eingerichtet und entsprechend an den Echo angepasst. Die Ausgabe funktioniert.
                                    
                                    4\. in der Cloud das Skript "scriptEnabled.rules.Alexa_sagt.Fensterabfrage" als Smart Gerät eingefügt.
                                    
                                    Jetzt kommt mein Verständnisproblem. Das Fensterabfrage-Blocky-Skript macht ja nur eine Ausgabe. Die Ermittlung der offenen und geschlossenen Fenster erfolgt ja in dem Skript unter Punkt 1\. Müsste ich dieses dann nicht als Smart Gerät einbinden? Wenn ich das aber mache, wie wird dann das Blocky aufgerufen um die Ausgabe an den Speak vom Echo zu geben?
                                    
                                    Kann mir das bitte einer erklären. Wo liegt mein Fehler in der Logik.Für mich ist das interessant da ich noch andere Themen umsetzen will und entsprechende Skripte entwickeln und implementieren möchte.
                                    
                                    Vielen Dank schon mal im Vorfeld `  
                                    

                                    Ich habe mir einen extra Datenpunkt angelegt, denn wenn Du das Script in den Cloudadapter packst sabbelt Alexa ja auch beim Scriptstart los. Bei mehreren Scripten wird das dann lustig. (oder beim JS Adapter Neustart….oder mitten in der Nacht)

                                    z.B. so,

                                    //Alexa Fensterabfrage-Ansage
                                    createState("Eigene_Datenpunkte.Alexa_antwortet.Fensteransage", {
                                        name: 'Alexa_Fensteransage', 
                                        role: 'switch',
                                        type: 'boolean', 
                                        read:  true, 
                                        write: true,
                                        "smartName": {
                                        "de": "Alexa Fensteransage",
                                        "smartType": "SWITCH"
                                    }
                                    });
                                    

                                    kannst aber auch einen Button machen

                                    //Alexa Fensterabfrage-Ansage
                                    createState("Eigene_Datenpunkte.Alexa_antwortet.Fensteransage", {
                                        name: 'Alexa_Fensteransage', 
                                        "type": "object",
                                        "role": "button",
                                        read:  true, 
                                        write: true,
                                        "smartName": {
                                        "de": "Alexa Fensteransage",
                                        "smartType": "SWITCH"
                                    }
                                    });
                                    

                                    Dann noch ein Blockly was die Fensterdatenpunkte (oder auch Licht, oder Steckdosen usw) von Deinem Script abfragt.

                                    z.B. so (Screenshot passt nicht ganz drauf)
                                    3822_bildschirmfoto_2018-11-08_um_21.44.59.png

                                    Und in der Alexa App auf dem Handy eine neue Routine anlegen, wo dann Dein neuer Datenpunkt geschaltet wird….z.B. Alexa, sind noch Fenster auf.

                                    Hier noch der Blockly Export

                                    ! ````
                                    <xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="4O(a~f,K8t9;VKQ1gVX*" x="-538" y="-1138"><mutation items="1"></mutation>
                                    <field name="CONDITION">any</field>

                                    <value name="OID0"><shadow type="field_oid" id="gVMgi@bFNV0L^d#eht9#"><field name="oid">javascript.0.Eigene_Datenpunkte.Alexa_antwortet.Fensteransage</field></shadow></value> 
                                    <statement name="STATEMENT"><block type="controls_if" id="{_JT|3Mpv*tSOVWD3Pz6"><value name="IF0"><block type="logic_compare" id="D?,*QGBBwauCm,Qte=Q-"><field name="OP">EQ</field>
                                            <value name="A"><block type="get_value" id="]irLwLWGul].x{m`.#.@"><field name="ATTR">val</field>
                                                <field name="OID">javascript.0.Status.Fenster.Anzahl_auf</field></block></value> 
                                            <value name="B"><block type="math_number" id="5LL6xi4F_7}-aEi^jHY@"><field name="NUM">0</field></block></value></block></value> 
                                        <statement name="DO0"><block type="variables_set" id="5VFfHYTB!S7A^A*?SicA"><field name="VAR">Ausgabetext</field>
                                            <value name="VALUE"><block type="text_join" id="4?k[0reCRn.mjkxHg41~"><mutation items="2"></mutation>
                                                <value name="ADD0"><block type="text" id="75Z)Wn`YF@;38~bIM;pA"><field name="TEXT">aktuell sind,</field></block></value> 
                                                <value name="ADD1"><block type="get_value" id="Vh/8rxU]yD!3mT}0y[eC"><field name="ATTR">val</field>
                                                    <field name="OID">javascript.0.Status.Fenster.Ansage</field></block></value></block></value> 
                                            <next><block type="timeouts_settimeout" id="xA_MJ^@=AB=-WtDTe(3}"><field name="NAME">timeout</field>
                                                <field name="DELAY">500</field>
                                                <field name="UNIT">ms</field>
                                                <statement name="STATEMENT"><block type="comment" id="s30b2{fSQ:a0uC3`+QWU"><field name="COMMENT">Wohnzimmer</field>
                                                    <next><block type="controls_if" id="l(E24=q]l]b,GJDj4dSj"><value name="IF0"><block type="logic_compare" id="MKwJn0C!O]xc!~.9|B`*"><field name="OP">EQ</field>
                                                            <value name="A"><block type="get_value" id="p-SHbJ5Dmwr6djxg2ohH"><field name="ATTR">val</field>
                                                                <field name="OID">alexa2.0.History.name</field></block></value> 
                                                            <value name="B"><block type="text" id="?}A;8(IyMF%F@(t]Kc~+"><field name="TEXT">Wohnzimmer</field></block></value></block></value> 
                                                        <statement name="DO0"><block type="control" id=")M^jLcZ!hCpj,X={-`nV"><mutation delay_input="false"></mutation>
                                                            <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                                            <field name="WITH_DELAY">FALSE</field>
                                                            <value name="VALUE"><block type="variables_get" id="p)bNOdcZFVoq1e^M5V-."><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                        <next><block type="comment" id="As,dG(xO[B@wIYcyAG?h"><field name="COMMENT">Küche</field>
                                                            <next><block type="controls_if" id="wrH-}P(84mn7Y/rg8A[."><value name="IF0"><block type="logic_compare" id="kg.QKB751NaS#Ihk1Vlg"><field name="OP">EQ</field>
                                                                    <value name="A"><block type="get_value" id="qnTz1Oe31sq:NXjmbxIJ"><field name="ATTR">val</field>
                                                                        <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                    <value name="B"><block type="text" id="3=W.?c8BZN+QrGX4xL}h"><field name="TEXT">Küche</field></block></value></block></value> 
                                                                <statement name="DO0"><block type="control" id="}?dK++*V.7JQcjG{3uhB"><mutation delay_input="false"></mutation>
                                                                    <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                                                    <field name="WITH_DELAY">FALSE</field>
                                                                    <value name="VALUE"><block type="variables_get" id="qHoN]~u1FI@iDQs*2C2v"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                <next><block type="comment" id="_amxz6B=9F}_2uEGsK}`"><field name="COMMENT">Badezimmer</field>
                                                                    <next><block type="controls_if" id=".n7JtGwDJDGfaeyl!8*B"><value name="IF0"><block type="logic_compare" id="I-@9%{Ng!%}9rE#IESc;"><field name="OP">EQ</field>
                                                                            <value name="A"><block type="get_value" id="c?dSeG!fu]W8UO@?D4I3"><field name="ATTR">val</field>
                                                                                <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                            <value name="B"><block type="text" id="MivGV@*kt)3rY9COKpKA"><field name="TEXT">Badezimmer</field></block></value></block></value> 
                                                                        <statement name="DO0"><block type="control" id="zTwXc~r8Ldt0u-5TNcVn"><mutation delay_input="false"></mutation>
                                                                            <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                                                            <field name="WITH_DELAY">FALSE</field>
                                                                            <value name="VALUE"><block type="variables_get" id="*X*~qQG3]~[NC{WMMndW"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                        <next><block type="comment" id="CJNG59[?CJ|U-=Bf]c)z"><field name="COMMENT">Gästezimmer</field>
                                                                            <next><block type="controls_if" id="OC]k1_}iDlExQPVc=(ib"><value name="IF0"><block type="logic_compare" id="OBIXw6hJ@]2Xr`HBIz5h"><field name="OP">EQ</field>
                                                                                    <value name="A"><block type="get_value" id="=x~5W)ns/VV;c|RFqQcE"><field name="ATTR">val</field>
                                                                                        <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                                    <value name="B"><block type="text" id="IxW:hplIvDQm1ax=@X+M"><field name="TEXT">Gästezimmer</field></block></value></block></value> 
                                                                                <statement name="DO0"><block type="control" id="g+2]wvsrhR8vxv7c,kJ_"><mutation delay_input="false"></mutation>
                                                                                    <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                                                                    <field name="WITH_DELAY">FALSE</field>
                                                                                    <value name="VALUE"><block type="variables_get" id="5q6/z~S`0DeJ6sYrWhj1"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                                <next><block type="comment" id="C6,wSh?BEZ,G:B9Tl@#w"><field name="COMMENT">Flur</field>
                                                                                    <next><block type="controls_if" id="l/g@UNw6pzeQ6_698R:-"><value name="IF0"><block type="logic_compare" id="=Z)D6qrCzY2oU/fVV93A"><field name="OP">EQ</field>
                                                                                            <value name="A"><block type="get_value" id="StsaG2CB;*5f5wIvH,kE"><field name="ATTR">val</field>
                                                                                                <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                                            <value name="B"><block type="text" id="7N;yy7cC=tE`}MYOFfF6"><field name="TEXT">Flur</field></block></value></block></value> 
                                                                                        <statement name="DO0"><block type="control" id="5#-V887QhCCSAzI+twok"><mutation delay_input="false"></mutation>
                                                                                            <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                                                                            <field name="WITH_DELAY">FALSE</field>
                                                                                            <value name="VALUE"><block type="variables_get" id="NurE:%K_z!^Vlj(fn5qI"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                                        <next><block type="comment" id="qKD3bDxHV;NBtuFFs|e."><field name="COMMENT">Schlafzimmer</field>
                                                                                            <next><block type="controls_if" id="iMz(H}c1#NO@KVNnhnlQ"><value name="IF0"><block type="logic_compare" id="z`vyyAWvaYdxt8YZt,0O"><field name="OP">EQ</field>
                                                                                                    <value name="A"><block type="get_value" id="mEF)naqwJ#xLCe1NeKO:"><field name="ATTR">val</field>
                                                                                                        <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                                                    <value name="B"><block type="text" id="F7::fb4cokeJJD:fk~pV"><field name="TEXT">Schlafzimmer</field></block></value></block></value> 
                                                                                                <statement name="DO0"><block type="control" id="{2s/h/xpkm]F+1ik-f4m"><mutation delay_input="false"></mutation>
                                                                                                    <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                                                                                    <field name="WITH_DELAY">FALSE</field>
                                                                                                    <value name="VALUE"><block type="variables_get" id="ft7Uf33@IB1zu_xdTAxn"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                                                <next><block type="comment" id="wIYZ1bLOSjFi=NxT9WcM"><field name="COMMENT">Keller-Flur</field>
                                                                                                    <next><block type="controls_if" id="%EEK(pKJ%lGo)32cR7qF"><value name="IF0"><block type="logic_compare" id="7Mb(anM]kR9056)gxqnW"><field name="OP">EQ</field>
                                                                                                            <value name="A"><block type="get_value" id="xF~b7`{fV||4n}zB-}.u"><field name="ATTR">val</field>
                                                                                                                <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                                                            <value name="B"><block type="text" id="VH^2CJsPGOd!6hGoqdK4"><field name="TEXT">Keller-Flur</field></block></value></block></value> 
                                                                                                        <statement name="DO0"><block type="control" id="F_[xezXeyr~*(A=q.YFJ"><mutation delay_input="false"></mutation>
                                                                                                            <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                                                                                            <field name="WITH_DELAY">FALSE</field>
                                                                                                            <value name="VALUE"><block type="variables_get" id="SjtrIJ?gA20oj88N|srb"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                                                        <next><block type="comment" id="E#D1a/,rcH`dm3?Nx^:q"><field name="COMMENT">Werkstatt</field>
                                                                                                            <next><block type="controls_if" id="=s~d:-WIg1#TE`^zf9[4"><value name="IF0"><block type="logic_compare" id="*:X%VM^+2MoYl-:u!WK`"><field name="OP">EQ</field>
                                                                                                                    <value name="A"><block type="get_value" id="6fnRWyK0;P(.x;H{)22T"><field name="ATTR">val</field>
                                                                                                                        <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                                                                    <value name="B"><block type="text" id="S:#keRENw1gGjHWLUD!-"><field name="TEXT">Werkstatt</field></block></value></block></value> 
                                                                                                                <statement name="DO0"><block type="control" id="ql@`4(PNtjS_AM0bEqD+"><mutation delay_input="false"></mutation>
                                                                                                                    <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                                                                                                    <field name="WITH_DELAY">FALSE</field>
                                                                                                                    <value name="VALUE"><block type="variables_get" id="P[ojMqQDVRouu#vN~{[%"><field name="VAR">Ausgabetext</field></block></value></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></statement> 
                                        <next><block type="controls_if" id="N+F+/fYbDeMZL#(HaEo|"><value name="IF0"><block type="logic_compare" id="T+)nZ(]w4LgDY/|?p56g"><field name="OP">NEQ</field>
                                                <value name="A"><block type="get_value" id="k=BXdEuQo7?Mo%bdfdng"><field name="ATTR">val</field>
                                                    <field name="OID">javascript.0.Status.Fenster.Anzahl_auf</field></block></value> 
                                                <value name="B"><block type="math_number" id="j-blGyC;V4jTLHKvikXr"><field name="NUM">0</field></block></value></block></value> 
                                            <statement name="DO0"><block type="variables_set" id="mk,--n%8x}e1WshOCBc."><field name="VAR">Ausgabetext</field>
                                                <value name="VALUE"><block type="text_join" id="Ew3VTw7qG|Fx:}vq3hIR"><mutation items="3"></mutation>
                                                    <value name="ADD0"><block type="text" id="Lo0@rGsN^gt1iZ#@~A/7"><field name="TEXT">aktuell sind im,</field></block></value> 
                                                    <value name="ADD1"><block type="get_value" id="i?[Ze,W23|M`_S5@d?;q"><field name="ATTR">val</field>
                                                        <field name="OID">javascript.0.Status.Fenster.Raum</field></block></value> 
                                                    <value name="ADD2"><block type="text" id="NqEob9;8UT11wT`dCQi#"><field name="TEXT">geöffnete Fenster</field></block></value></block></value> 
                                                <next><block type="timeouts_settimeout" id="^c,bQ)^![(HGz2QrWw/u"><field name="NAME">timeout2</field>
                                                    <field name="DELAY">500</field>
                                                    <field name="UNIT">ms</field>
                                                    <statement name="STATEMENT"><block type="comment" id="3e5[cR-lQ2P@g3-V]T.*"><field name="COMMENT">Wohnzimmer</field>
                                                        <next><block type="controls_if" id="KauxWUEJAP2sp)D%Cdm9"><value name="IF0"><block type="logic_compare" id="F4MK(fbY8WU[yWO)@Z~O"><field name="OP">EQ</field>
                                                                <value name="A"><block type="get_value" id="Oe@)VM+1Y`_1YJn?6xyl"><field name="ATTR">val</field>
                                                                    <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                <value name="B"><block type="text" id="Q8@T8q|P]D*WR6aG#*j0"><field name="TEXT">Wohnzimmer</field></block></value></block></value> 
                                                            <statement name="DO0"><block type="control" id="r|w?GKF2R8A%WSX@AP[|"><mutation delay_input="false"></mutation>
                                                                <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                                                <field name="WITH_DELAY">FALSE</field>
                                                                <value name="VALUE"><block type="variables_get" id="HTcKd2V9F)=k:Ae4mS}F"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                            <next><block type="comment" id="Lg@:ha-a2x,0rfhC.]_="><field name="COMMENT">Küche</field>
                                                                <next><block type="controls_if" id="DTWD3KK_f2CmowWl}Dw+"><value name="IF0"><block type="logic_compare" id="*r~k%Po!vzUQHybU`)sv"><field name="OP">EQ</field>
                                                                        <value name="A"><block type="get_value" id="285L,qT@eWkZS(#hgXnl"><field name="ATTR">val</field>
                                                                            <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                        <value name="B"><block type="text" id="w!HtM,nb,KI1aqaOeI36"><field name="TEXT">Küche</field></block></value></block></value> 
                                                                    <statement name="DO0"><block type="control" id="_H{%k4b|sj!:P^rDu%};"><mutation delay_input="false"></mutation>
                                                                        <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                                                        <field name="WITH_DELAY">FALSE</field>
                                                                        <value name="VALUE"><block type="variables_get" id="~51B8(3{stq1BpR1J~p%"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                    <next><block type="comment" id="0Y;8c=RG%f;qqP2yyjbm"><field name="COMMENT">Badezimmer</field>
                                                                        <next><block type="controls_if" id="JS`zfpqZ~NiBhWxa_;gH"><value name="IF0"><block type="logic_compare" id="-7AVWpsa42LalJseqzv{"><field name="OP">EQ</field>
                                                                                <value name="A"><block type="get_value" id="cm6sMr|*pCsxx{9uCMrm"><field name="ATTR">val</field>
                                                                                    <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                                <value name="B"><block type="text" id="7+szyIbBBP!dtC~D1h)O"><field name="TEXT">Badezimmer</field></block></value></block></value> 
                                                                            <statement name="DO0"><block type="control" id="Hg;Dq%gJEXg{SLV;t6{6"><mutation delay_input="false"></mutation>
                                                                                <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                                                                <field name="WITH_DELAY">FALSE</field>
                                                                                <value name="VALUE"><block type="variables_get" id="*lX{ZM`VBTc}A`1!gM9H"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                            <next><block type="comment" id=":Ka+W*uwIV:h(pjzq_h,"><field name="COMMENT">Gästezimmer</field>
                                                                                <next><block type="controls_if" id="Ug#8mH1FI!icK/)QEYjQ"><value name="IF0"><block type="logic_compare" id=")@76q4MZ/}oCH_mLKWO4"><field name="OP">EQ</field>
                                                                                        <value name="A"><block type="get_value" id="iI-HkvUXFC@;;_+[TcRP"><field name="ATTR">val</field>
                                                                                            <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                                        <value name="B"><block type="text" id="#:=Dp]Dt1gil*WOPj/h{"><field name="TEXT">Gästezimmer</field></block></value></block></value> 
                                                                                    <statement name="DO0"><block type="control" id="yoHnz^WG58=+X)|S-u8#"><mutation delay_input="false"></mutation>
                                                                                        <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                                                                        <field name="WITH_DELAY">FALSE</field>
                                                                                        <value name="VALUE"><block type="variables_get" id="Y8LHCPPH..OnEJN^sjFQ"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                                    <next><block type="comment" id="!40Mmgu)T0A3-qPaF9yO"><field name="COMMENT">Flur</field>
                                                                                        <next><block type="controls_if" id="b/SgE1YjT,ld[nn}{%RH"><value name="IF0"><block type="logic_compare" id="c)SjW;jeX|#Fh/Cha,,3"><field name="OP">EQ</field>
                                                                                                <value name="A"><block type="get_value" id="H9=}F/!XKY9UBnnbr~D/"><field name="ATTR">val</field>
                                                                                                    <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                                                <value name="B"><block type="text" id="r^EgI!FQ;-DPWFF_D!C1"><field name="TEXT">Flur</field></block></value></block></value> 
                                                                                            <statement name="DO0"><block type="control" id=";7jyou9f+V(`5**;CDV?"><mutation delay_input="false"></mutation>
                                                                                                <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                                                                                <field name="WITH_DELAY">FALSE</field>
                                                                                                <value name="VALUE"><block type="variables_get" id="Q_k9kSJVNP5e%a8((xhe"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                                            <next><block type="comment" id="`?k8YL[;!mE5;-NddVTc"><field name="COMMENT">Schlafzimmer</field>
                                                                                                <next><block type="controls_if" id="zyeAn3wMc!;hYZDhK)hy"><value name="IF0"><block type="logic_compare" id="bq=B-rG}sw}7gG1{/Y-."><field name="OP">EQ</field>
                                                                                                        <value name="A"><block type="get_value" id="Zr`S-l8E!}8.4{,qM9*i"><field name="ATTR">val</field>
                                                                                                            <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                                                        <value name="B"><block type="text" id="te+gSwhWiVR4,scYV%ca"><field name="TEXT">Schlafzimmer</field></block></value></block></value> 
                                                                                                    <statement name="DO0"><block type="control" id="grH6#whY1.N-q[pLM5X."><mutation delay_input="false"></mutation>
                                                                                                        <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                                                                                        <field name="WITH_DELAY">FALSE</field>
                                                                                                        <value name="VALUE"><block type="variables_get" id="[hMf^;p|,CaZVyd+qTm~"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                                                    <next><block type="comment" id="N3@K2BRC7C5N9daBycv_"><field name="COMMENT">Keller-Flur</field>
                                                                                                        <next><block type="controls_if" id="HPxOdxs4N%j2umWTfUNG"><value name="IF0"><block type="logic_compare" id="DX=kCQ/,E6kqYsQ}/=[e"><field name="OP">EQ</field>
                                                                                                                <value name="A"><block type="get_value" id="XionPRa91nQ16NK(N9+."><field name="ATTR">val</field>
                                                                                                                    <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                                                                <value name="B"><block type="text" id="ZB}mEWERKZ/fb~*Lwd1A"><field name="TEXT">Keller-Flur</field></block></value></block></value> 
                                                                                                            <statement name="DO0"><block type="control" id="kPLG+9decg*iGUm87`-2"><mutation delay_input="false"></mutation>
                                                                                                                <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                                                                                                <field name="WITH_DELAY">FALSE</field>
                                                                                                                <value name="VALUE"><block type="variables_get" id="}.I+7-Frw4fjj1-N[AeP"><field name="VAR">Ausgabetext</field></block></value></block></statement> 
                                                                                                            <next><block type="comment" id="C~L9w[G_b.Hb*%7oT~aE"><field name="COMMENT">Werkstatt</field>
                                                                                                                <next><block type="controls_if" id="`;ot|i:*)I|EwW@zS,B2"><value name="IF0"><block type="logic_compare" id="H!ldSYtR|C|^VcqxS;Xt"><field name="OP">EQ</field>
                                                                                                                        <value name="A"><block type="get_value" id="I)o6A2U2(,A7e|4.8lo."><field name="ATTR">val</field>
                                                                                                                            <field name="OID">alexa2.0.History.name</field></block></value> 
                                                                                                                        <value name="B"><block type="text" id="s4owS.Ww){6ayek?VzFb"><field name="TEXT">Werkstatt</field></block></value></block></value> 
                                                                                                                    <statement name="DO0"><block type="control" id="5Gh*aVl-x(IPCnF@5,5/"><mutation delay_input="false"></mutation>
                                                                                                                        <field name="OID">alexa2.0.Echo-Devices.xxx.Commands.speak</field>
                                                                                                                        <field name="WITH_DELAY">FALSE</field>
                                                                                                                        <value name="VALUE"><block type="variables_get" id="dmO{yR;|g@(rZJE,HX4k"><field name="VAR">Ausgabetext</field></block></value></block></statement></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></next></block></statement></block></next></block></statement></block></xml> 
                                    
                                    1 Antwort Letzte Antwort
                                    0
                                    • Rene.HomeR Offline
                                      Rene.HomeR Offline
                                      Rene.Home
                                      schrieb am zuletzt editiert von
                                      #152

                                      Ja verstehe… aber damit löse ich doch immer nur das Blocky-Skript aus. Dieses liest aber nur den Inhalt der Variablen aus.

                                      Aber wie werden die Inhalte der Variablen aktualisiert. Dieses wird doch in dem ersten Skript gemacht. Ich sehe immer noch nicht die Verbindung oder ist es so das das erste Skript zum aktualisieren der Variablen einen Timer bekommen muss der unabhängig von der Abfrage via Alexa läuft.

                                      Ich bin immer davon ausgegangen das die Aufforderung an Alexa erst einmal eine Prüfung ablaufen lässt gefolgt von der Ausgabe.

                                      1 Antwort Letzte Antwort
                                      0
                                      • dslraserD Offline
                                        dslraserD Offline
                                        dslraser
                                        Forum Testing Most Active
                                        schrieb am zuletzt editiert von
                                        #153

                                        @Rene.Home:

                                        Ja verstehe… aber damit löse ich doch immer nur das Blocky-Skript aus. Dieses liest aber nur den Inhalt der Variablen aus.

                                        Aber wie werden die Inhalte der Variablen aktualisiert. Dieses wird doch in dem ersten Skript gemacht. Ich sehe immer noch nicht die Verbindung oder ist es so das das erste Skript zum aktualisieren der Variablen einen Timer bekommen muss der unabhängig von der Abfrage via Alexa läuft.

                                        Ich bin immer davon ausgegangen das die Aufforderung an Alexa erst einmal eine Prüfung ablaufen lässt gefolgt von der Ausgabe. ` ich verstehe nicht so ganz was Du meinst. Das Fensterscript läuft ja immer, somit sind die Datenpunkte auch immer aktuell (offene Fenster).

                                        Das Blockly greift ja wiederum nur diese Datenpunkte vom Fensterscript ab und gibt diese per Speak wieder.

                                        Das Blockly selbst wird nur über einen Datenpunkt getriggert damit es los läuft wenn der Datenpunkt aktualisiert wurde. Das geschiet durch Deine Anfrage bei Alexa.

                                        Vielleicht verstehe ich auch nicht was Du meinst ?

                                        1 Antwort Letzte Antwort
                                        0
                                        • dslraserD Offline
                                          dslraserD Offline
                                          dslraser
                                          Forum Testing Most Active
                                          schrieb am zuletzt editiert von
                                          #154

                                          …...

                                          hier stand was für einen anderen Beitrag drinn...

                                          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

                                          522

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          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