Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Vorlage] Generisches Fensteroffenskript + Vis

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Vorlage] Generisches Fensteroffenskript + Vis

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

      @Pittini

      Ich habe gerade das Script auf 1.6.5 geändert und bekomme 5 Warnmeldungen.

      20:01:33.384	warn	javascript.0 (592) at init (script.js.Fenster.Fensterauswertung:308:45)
      20:01:33.384	warn	javascript.0 (592) at main (script.js.Fenster.Fensterauswertung:323:5)
      20:01:33.385	warn	javascript.0 (592) at InitialSort (script.js.Fenster.Fensterauswertung:291:5)
      20:01:33.385	warn	javascript.0 (592) at script.js.Fenster.Fensterauswertung:255:13
      20:01:33.390	info	javascript.0 (592) script.js.Fenster.Fensterauswertung: Reaching CheckForHmShit val=null typof val=string x=6 Sensor[x]=mihome.0.devices.magnet_158d0003cd4123
      20:01:33.390	warn	javascript.0 (592) script.js.Fenster.Fensterauswertung: Unknown Windowstate undefined detected at mihome.0.devices.magnet_158d0003cd4123, please check your configuration
      

      Der Fensterkontakt zeigt jedoch den richtigen State an.
      objects - ioBroker.png

      crunchip 1 Reply Last reply Reply Quote 0
      • crunchip
        crunchip Forum Testing Most Active @Negalein last edited by crunchip

        @Negalein was hast du eingestellt im Script?
        Tür/Fenster
        du hast in deiner Aufzählung ...Verschluss, Tür?
        ausserdem ist mihome.0.devices.magnet_158d0003cd4123 nicht der in deinem screen

        Negalein 1 Reply Last reply Reply Quote 0
        • Negalein
          Negalein Global Moderator @crunchip last edited by

          @crunchip sagte in [Vorlage] Generisches Fensteroffenskript + Vis:

          @Negalein was hast du eingestellt im Script?

          const Skriptversion = "1.6.5" //vom 05.07.2020 - https://github.com/Pittini/iobroker-Fensterauswertung - https://forum.iobroker.net/topic/31674/vorlage-generisches-fensteroffenskript-vis
          //Script um offene Fenster/Türen pro Raum und insgesamt zu zählen.
          //Möglichkeit eine Ansage nach x Minuten einmalig oder zyklisch bis Fensterschließung anzugeben
          //Dynamische erzeugung einer HTML Übersichtstabelle
          //WICHTIG!!!
          //Vorraussetzungen: Den Geräten müssen Räume zugewiesen sein, sowie die Funktion "Fenster" bzw "Tuer" für jeden entsprechenden Datenpunkt.
          
          //Grundeinstellungen
          const logging = true; //Erweiterte Logs ausgeben?
          const praefix = "javascript.0.FensterUeberwachung."; //Grundpfad für Script DPs - Muß innerhalb javascript.x sein.
          const PresenceDp = "" //Pfad zum Anwesenheitsdatenpunkt, leer lassen wenn nicht vorhanden
          const WhichWindowFunctionToUse = "Fenster"; // Legt fest nach welchem Begriff in Funktionen gesucht wird. Diese Funktion nur dem Datenpunkt zuweisen, NICHT dem ganzen Channel!
          const WhichDoorFunctionToUse = "Tuer"; // Legt fest nach welchem Begriff in Funktionen gesucht wird. Diese Funktion nur dem Datenpunkt zuweisen, NICHT dem ganzen Channel!
          const WindowIgnoreTime = 10000; // 10000 ms = 10 Sekunden - Zeit in ms für die kurzzeitiges öffnen/schliessen ignoriert wird
          const DoorIgnoreTime = 5000; // 1000 ms = 1 Sekunden - Zeit in ms für die kurzzeitiges öffnen/schliessen ignoriert wird
          
          
          //Nachrichteneinstellungen
          const TimeToMsg = 1200000 // 300000 ms = 5 Minuten - Zyklus- bzw. Ablaufzeit für Tür/Fenster-offenwarnung/en
          const MaxMessages = 5; //Maximale Anzahl der Nachrichten pro Raum 
          
          const UseTelegram = false; // Sollen Nachrichten via Telegram gesendet werden?
          const UseAlexa = false; // Sollen Nachrichten via Alexa ausgegeben werden?
          const AlexaId = ""; // Die Alexa Seriennummer.
          const UseMail = true; //Nachricht via Mail versenden?
          const UseSay = false; // Sollen Nachrichten via Say ausgegeben werden? Autorenfunktion, muß deaktiviert werden.
          const UseEventLog = false; // Sollen Nachrichten ins Eventlog geschreiben werden? Autorenfunktion, muß deaktiviert werden.
          const NoMsgAtPresence = false; //Sollen Nachrichten bei Anwesenheit unterdrückt werden?
          
          //Tabelleneinstellungen
          const DoorOpenImg = "/icons-mfd-svg/fts_door_open.svg"; //Icon für Tür offen
          const DoorCloseImg = "/icons-mfd-svg/fts_door.svg"; // Icon für Tür geschlossen
          const DoorTiltedImg = "/icons-mfd-svg/fts_door_tilt.svg" // Icon für Tür gekippt
          const WindowOpenImg = "/icons-mfd-svg/fts_window_1w_open.svg"; //Icon für Fenster offen
          const WindowCloseImg = "/icons-mfd-svg/fts_window_1w.svg"; // Icon für Fenster geschlossen
          const WindowTiltedImg = "/icons-mfd-svg/fts_window_1w_tilt.svg" //Icon für Fenster gekippt
          const WindowOpenTiltedImg = "/icons-mfd-svg/fts_window_2w_open_l_tilt_r.svg" //Icon für offen und gekippt in einem Raum gleichzeitig
          const VentImg = "/icons-mfd-svg/vent_ventilation.svg"; //Icon für Lüftungsinfo
          const ImgInvert = 1; // Bildfarben invertieren? Erlaubte Werte von 0 bis 1
          const OpenWindowColor = "#f44336"; // Farbe für Fenster offen
          const OpenDoorColor = "darkorange"; //Farbe für Tür offen
          const TiltedWindowColor = "#F56C62"; //Farbe für gekippte Fenster o. Tür/en
          const ClosedWindowColor = "#4caf50"; // Farbe für geschlossene Fenster o. Tür/en
          const VentWarnColor = "#ffc107"; // Farbe für Lüftungswarnung
          const ShowCaptionTbl = false; // Überschrift anzeigen?
          const ShowSummaryTbl = true; // Zusammenfassung anzeigen?
          const ShowDetailTbl = true; // Details anzeigen?
          const RoomSortMode = 1; //0= Raumliste unsortiert, 1= alpabetisch sortiert, 2= Benutzerdefinierte Sortierung
          
          //Logeinstellungen
          const MaxLogEntrys = 20; //Maximale Anzahl der zu speichernden Logeinträge
          const AutoAddTimestamp = true; //Soll den geloggten Nachrichten automatisch ein Zeitsempel zugeordnet werden?
          const LogTimeStampFormat = "TT.MM.JJJJ SS:mm:ss"; //Zeitformatierung für Log Zeitstempel
          const LogEntrySeparator = "<br>"; //Trennzeichen für Logeinträge
          

          Tür/Fenster
          du hast in deiner Aufzählung ...Verschluss, Tür?

          Verschluss ist jetzt weg (keine Ahnung von wo der gekommen ist). Meldungen bleiben

          20:23:28.475	warn	javascript.0 (592) at init (script.js.Fenster.Fensterauswertung:308:45)
          20:23:28.476	warn	javascript.0 (592) at main (script.js.Fenster.Fensterauswertung:323:5)
          20:23:28.476	warn	javascript.0 (592) at InitialSort (script.js.Fenster.Fensterauswertung:291:5)
          20:23:28.476	warn	javascript.0 (592) at Object.<anonymous> (script.js.Fenster.Fensterauswertung:255:13)
          20:23:28.477	warn	javascript.0 (592) script.js.Fenster.Fensterauswertung: Unknown Windowstate undefined detected at mihome.0.devices.magnet_158d0002ec2655, please check your configuration
          20:23:28.480	warn	javascript.0 (592) at init (script.js.Fenster.Fensterauswertung:308:45)
          20:23:28.480	warn	javascript.0 (592) at main (script.js.Fenster.Fensterauswertung:323:5)
          20:23:28.481	warn	javascript.0 (592) at InitialSort (script.js.Fenster.Fensterauswertung:291:5)
          20:23:28.481	warn	javascript.0 (592) at Object.<anonymous> (script.js.Fenster.Fensterauswertung:255:13)
          20:23:28.482	warn	javascript.0 (592) script.js.Fenster.Fensterauswertung: Unknown Windowstate undefined detected at mihome.0.devices.magnet_158d0003139ea7, please check your configuration
          20:23:28.485	warn	javascript.0 (592) at init (script.js.Fenster.Fensterauswertung:308:45)
          20:23:28.485	warn	javascript.0 (592) at main (script.js.Fenster.Fensterauswertung:323:5)
          20:23:28.485	warn	javascript.0 (592) at InitialSort (script.js.Fenster.Fensterauswertung:291:5)
          20:23:28.485	warn	javascript.0 (592) at Object.<anonymous> (script.js.Fenster.Fensterauswertung:255:13)
          20:23:28.486	warn	javascript.0 (592) script.js.Fenster.Fensterauswertung: Unknown Windowstate undefined detected at mihome.0.devices.magnet_158d000316d3ad, please check your configuration
          20:23:28.489	warn	javascript.0 (592) at init (script.js.Fenster.Fensterauswertung:308:45)
          20:23:28.489	warn	javascript.0 (592) at main (script.js.Fenster.Fensterauswertung:323:5)
          20:23:28.489	warn	javascript.0 (592) at InitialSort (script.js.Fenster.Fensterauswertung:291:5)
          20:23:28.489	warn	javascript.0 (592) at Object.<anonymous> (script.js.Fenster.Fensterauswertung:255:13)
          20:23:28.490	warn	javascript.0 (592) script.js.Fenster.Fensterauswertung: Unknown Windowstate undefined detected at mihome.0.devices.magnet_158d00032b770e, please check your configuration
          20:23:28.493	warn	javascript.0 (592) at init (script.js.Fenster.Fensterauswertung:308:45)
          20:23:28.493	warn	javascript.0 (592) at main (script.js.Fenster.Fensterauswertung:323:5)
          20:23:28.494	warn	javascript.0 (592) at InitialSort (script.js.Fenster.Fensterauswertung:291:5)
          20:23:28.494	warn	javascript.0 (592) at Object.<anonymous> (script.js.Fenster.Fensterauswertung:255:13)
          20:23:28.494	warn	javascript.0 (592) script.js.Fenster.Fensterauswertung: Unknown Windowstate undefined detected at mihome.0.devices.magnet_158d0003cd589f, please check your configuration
          20:23:28.497	warn	javascript.0 (592) at init (script.js.Fenster.Fensterauswertung:308:45)
          20:23:28.498	warn	javascript.0 (592) at main (script.js.Fenster.Fensterauswertung:323:5)
          20:23:28.498	warn	javascript.0 (592) at InitialSort (script.js.Fenster.Fensterauswertung:291:5)
          20:23:28.498	warn	javascript.0 (592) at Object.<anonymous> (script.js.Fenster.Fensterauswertung:255:13)
          20:23:28.499	warn	javascript.0 (592) script.js.Fenster.Fensterauswertung: Unknown Windowstate undefined detected at mihome.0.devices.magnet_158d0003cd2299, please check your configuration
          20:23:28.502	warn	javascript.0 (592) at init (script.js.Fenster.Fensterauswertung:308:45)
          20:23:28.502	warn	javascript.0 (592) at main (script.js.Fenster.Fensterauswertung:323:5)
          20:23:28.502	warn	javascript.0 (592) at InitialSort (script.js.Fenster.Fensterauswertung:291:5)
          20:23:28.502	warn	javascript.0 (592) at Object.<anonymous> (script.js.Fenster.Fensterauswertung:255:13)
          20:23:28.503	warn	javascript.0 (592) script.js.Fenster.Fensterauswertung: Unknown Windowstate undefined detected at mihome.0.devices.magnet_158d0003cd4123, please check your configuration
          

          ausserdem ist mihome.0.devices.magnet_158d0003cd4123 nicht der in deinem screen

          War ein Beispiel. Hab den falschen Screenshot erwischt. Es betrifft alle 7 Sensoren.

          Obwohl 1 offen ist (Küche), wird es geschlossen angezeigt.
          vis.png

          crunchip 1 Reply Last reply Reply Quote 0
          • crunchip
            crunchip Forum Testing Most Active @Negalein last edited by crunchip

            @Negalein Verschluss war noch aus den anfangszeiten des scripts
            überprüfe deine Sensoren nochmal genau aller Räume Türen und Fenster.
            Danach Instanz javascript einmal neustarten, danach müsste auch das script funktionieren

            die Anzeige nutze ich gar nicht, nur die Sprachausgabe, für die Anzeige habe ich was anderes

            Negalein 2 Replies Last reply Reply Quote 0
            • Negalein
              Negalein Global Moderator @crunchip last edited by

              @crunchip sagte in [Vorlage] Generisches Fensteroffenskript + Vis:

              überprüfe deine Sensoren nochmal genau aller Räume Türen und Fenster.

              leider keine Änderung

              crunchip 1 Reply Last reply Reply Quote 0
              • crunchip
                crunchip Forum Testing Most Active @Negalein last edited by crunchip

                @Negalein welche Meldung kommt dann jetzt?
                bei mir sieht das z.b so aus
                6d8907d1-1b6b-4c79-8387-a293e231ad2a-image.png

                Negalein 1 Reply Last reply Reply Quote 0
                • Negalein
                  Negalein Global Moderator @crunchip last edited by

                  @crunchip sagte in [Vorlage] Generisches Fensteroffenskript + Vis:

                  welche Meldung kommt dann jetzt?

                  An den Meldungen hat sich nichts geändert

                  20:42:16.151	warn	javascript.0 (1602) at init (script.js.Fenster.Fensterauswertung:308:45)
                  20:42:16.151	warn	javascript.0 (1602) at main (script.js.Fenster.Fensterauswertung:323:5)
                  20:42:16.151	warn	javascript.0 (1602) at InitialSort (script.js.Fenster.Fensterauswertung:291:5)
                  20:42:16.152	warn	javascript.0 (1602) at Object.<anonymous> (script.js.Fenster.Fensterauswertung:255:13)
                  20:42:16.153	info	javascript.0 (1602) script.js.Fenster.Fensterauswertung: Reaching CheckForHmShit val=null typof val=string x=4 Sensor[x]=mihome.0.devices.magnet_158d0003cd589f
                  20:42:16.153	warn	javascript.0 (1602) script.js.Fenster.Fensterauswertung: Unknown Windowstate undefined detected at mihome.0.devices.magnet_158d0003cd589f, please check your configuration
                  
                  Dominik F. 1 Reply Last reply Reply Quote 0
                  • Dominik F.
                    Dominik F. @Negalein last edited by

                    @Negalein

                    Du hast den ganzen Channel Tuer genannt, es soll jedoch nur der einzelne State in die Aufzählung

                    Negalein 1 Reply Last reply Reply Quote 0
                    • Negalein
                      Negalein Global Moderator @Dominik F. last edited by

                      @Dominik-F sagte in [Vorlage] Generisches Fensteroffenskript + Vis:

                      Du hast den ganzen Channel Tuer genannt, es soll jedoch nur der einzelne State in die Aufzählung

                      Ah, muss ich überlesen haben.
                      Ändere es gleich.

                      1 Reply Last reply Reply Quote 0
                      • Negalein
                        Negalein Global Moderator last edited by

                        @crunchip @Dominik-F

                        Bingo, es läuft
                        Danke

                        1 Reply Last reply Reply Quote 0
                        • Negalein
                          Negalein Global Moderator @crunchip last edited by

                          @crunchip sagte in [Vorlage] Generisches Fensteroffenskript + Vis:

                          für die Anzeige habe ich was anderes

                          was verwendest du dafür?

                          Gibt es dort auch einen DP für die Anzahl aller Türen und Fenster gemeinsam?

                          Derzeit verwende ich noch dieses Script mit dem "Metro - tile String" Widget.
                          Screenshot_2020-07-11 Edit vis.png

                          /* Status Zahl Fenster
                          Homematic var cacheSelectorLevel = $('channel[state.id=*.STATE](functions="Fenster")');
                          Mi var cacheSelectorState = $('state[id=*.state](functions="Fenster")');
                          {1}
                          */
                          var logging = false;
                           
                          var idAnzahlEin = 'javascript.0.Status.Fenster.Anzahl_auf',
                              idAnzahl = 'javascript.0.Status.Fenster.Anzahl',
                              idText = 'javascript.0.Status.Fenster.Text',
                              idRaum = 'javascript.0.Status.Fenster.Raum', // <---- NEU
                              idAnsage = 'javascript.0.Status.Fenster.Ansage';
                           
                          // Ab hier nix mehr ändern
                          createState(idAnzahl, { // wenn benötigt: Anzahl der vorhandenen Lichter
                              type: 'number',
                              name: 'Anzahl aller Fenster',
                              min: 0,
                              def: 0,
                              role: 'value'
                          });
                          createState(idAnzahlEin, { // Anzahl der Fenster, die auf sind als Variable unter Javascript.0 anlegen
                              type: 'number',
                              name: 'Anzahl der offenen Fenster',
                              min: 0,
                              def: 0,
                              role: 'value'
                          });
                          createState(idText, { // Anzahl der brennenden Lichter und deren Namen als Variable unter Javascript.0 anlegen
                              type: 'string',
                              name: 'Offene Fenster',
                              desc: 'Namen der offenen Fenster',
                              def: ' ',
                              role: 'value'
                          });
                          createState(idAnsage, {
                              type: 'string',
                              name: 'Offene Fenster (Ansage)',
                              desc: 'Namen der offenen Fenster (für Ansage aufbereitet)',
                              def: ' ',
                              role: 'value'
                          });
                          createState(idRaum, { // Räume, in denen Lichter brennen // <---- NEU
                              type: 'string',
                              name: 'Räume mit offenen Fenster',
                              desc: 'Namen der Räume, in denen Fenster offen sind',
                              def: ' ',
                              role: 'value'
                          });
                           
                          //var cacheSelectorState = $('channel[state.id=*.STATE](functions="Licht")'); // Gewerk Licht
                          var cacheSelectorLevel = $('channel[state.id=*.LEVEL](functions="XXX")');
                          //var cacheSelectorHue = $('state[id=*.on](functions=Licht)');
                          var cacheSelectorState2 = $('channel[state.id=*.STATE](functions="Fenster")'); //Homematic
                          var cacheSelectorState = $('state[id=*.state](functions="Fenster")'); //Mi
                           
                          function checkDevices(obj) {
                              // Setzt die Zähler vor dem Durchlauf aller Elemente *.STATE im Gewerk Licht auf 0
                              var anzahlLichterAn = 0;
                              var anzahlLichter = 0;
                              var textLichterAn = [];
                              var textRaum = [];
                              if (logging) {
                                  log('++++++ Fenster Anzahl ++++ ');
                                  log('#### Mi ##### ');
                              }
                              cacheSelectorState.each(function(id, i) { // Schleife für jedes gefundenen Element *.state im Gewerk Fenster
                                  var status = getState(id).val; // Zustand *.state abfragen (jedes Element)
                                  var deviceId = id.substring(0, id.lastIndexOf("."));
                                  var devicename = getObject(deviceId).common.name; 
                                  var raumname = getObject(id, "rooms").enumNames[0];
                                  if (logging) {
                                      log('---Mi----');
                                      log('Raum: ' + JSON.stringify(raumname));
                                      log('Status: ' + status);
                                  }
                                  if (status) { // wenn Zustand = true, dann wird die Anzahl der Fenster hochgezählt
                                      ++anzahlLichterAn;
                                      textLichterAn.push(devicename); // Zu Array hinzufügen
                                      textRaum.push(raumname); // <---- NEU
                                  }
                                  ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status
                              });
                              
                              cacheSelectorState2.each(function(id, i) { // Schleife für jedes gefundenen Element *.ON im Gewerk Licht
                                  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"); // <---- NEU
                           
                                  // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen)
                                  // if ( (devicename.search(/(CUX)|(K2)|(K3)|(VK)|(:)/ig) == -1) ) { 
                                  if (logging) {
                                      log('---Homematic----');
                                      log('Kanal: ' + name);
                                      log('Status: ' + status);
                                  }
                                  if (status) { // wenn Zustand = true, dann wird die Anzahl der Lichter hochgezählt
                                      ++anzahlLichterAn;
                                      textLichterAn.push(devicename); // Zu Array hinzufügen
                                      textRaum.push(raumname.enumNames); // <---- NEU
                                  }
                                  ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status
                                  // } // ENDE VK-Abfrage
                              });
                           
                              if (logging) log('#### DIMMER ##### ');
                              cacheSelectorLevel.each(function(id, i) { // Schleife für jedes gefundenen Element *.LEVEL im Gewerk Licht
                                  var obj = getObject(id);
                                  var name = getObject(id).common.name;
                                  var status = getState(id).val; // Zustand *.LEVEL abfragen (jedes Element)
                                  var devicename = name.substring(0, name.indexOf(".LEVEL")); //.state aus Text entfernen
                                  var raumname = getObject(id, "rooms"); // <---- NEU
                           
                                  // ########## Abfrage ob Virtueller Kanal? VK oder : im Namen)
                                  // if ( (devicename.search(/(CUX)|(K2)|(K3)|(V10)|(VK)|(:)/ig) == -1) ) { // Geräte mit diesen Strings im namen nicht beachten
                                  
                                  if (logging) {
                                      log('-------');
                                      log('Kanal: ' + name);
                                      log('Status: ' + status + '%');
                                  }
                                  if (parseFloat(status) > 0) { // Wenn Dimmwert über 0
                                      ++anzahlLichterAn;
                                      textLichterAn.push(devicename); // Zu Array hinzufügen
                                      textRaum.push(raumname.enumNames); // <---- NEU
                                  }
                                  ++anzahlLichter; // Zählt die Anzahl der vorhandenen Lichter unabhängig vom Status
                                  // } // Ende Abfrage VK 
                              });
                           
                              // Array mit Lichternamen sortieren
                              textLichterAn.sort();
                              textRaum.sort(); // <---- NEU
                              // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon an) ausgegeben
                              if (logging) log("Text: " + textLichterAn);
                              if (logging) log("Anzahl Fenster: " + anzahlLichter + " # davon Fenster offen: " + anzahlLichterAn);
                              // die ermittelten Werte werden als javascript.0. Variable in ioBroker gespeichert (z.B. für die Verarbeitung in VIS)
                              setState(idText, textLichterAn.join(', ')); // Schreibt die aktuelle Namen der eingeschalteten Lichter
                              setState(idAnzahlEin, textLichterAn.length); // Schreibt die aktuelle Anzahl der eingeschalteten Lichter
                              setState(idAnzahl, anzahlLichter); // Schreibt die aktuelle Anzahl der vorhandene Elemente im Gewerk Licht
                              // setState(idRaum, textRaum.join(',<br>')); // Räume, in denen Licht brennt // <---- NEU
                              setState(idRaum, textRaum.join(', ')); // Räume, in denen Licht brennt // <---- NEU
                          }
                           
                          // Trigger
                          cacheSelectorState.on(function(obj) { // bei Zustandänderung *.STATE im Gewerk Licht
                              if (logging) log('Auslösender Schalter: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat
                              checkDevices();
                          });
                          cacheSelectorState2.on(function(obj) { // bei Zustandänderung *.ON von HUE Lampen im Gewerk Licht
                              if (logging) log('Auslösende Homematic: ' + obj.id + ': ' + obj.state.val); // Info im Log, welcher Zustand sich geändert hat
                              checkDevices();
                          });
                          cacheSelectorLevel.on(function(obj) { // bei Zustandänderung *.LEVEL im Gewerk Licht
                              if (logging) log('Auslösender Dimmer: ' + 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(/(&nbsp;|<([^>]+)>)/ig, " ");
                              return (rueckgabe);
                          }
                           
                          on(idText, function(obj) {
                              var text = obj.state.val;
                              text = (getState(idAnzahl).val > 0) ? 'Fenster offen: ' + strip_tags(text) : 'Alle Fenster geschlossen';
                              setState(idAnsage, text);
                          });
                          

                          Das Script von Pitini gibt leider keine Gesamtanzahl aus.

                          crunchip 1 Reply Last reply Reply Quote 0
                          • crunchip
                            crunchip Forum Testing Most Active @Negalein last edited by crunchip

                            @Negalein ich habe oben in meiner Menüleiste über Sichtbarkeit gesteuert. Wenn Licht an, bzw Fenster oder Tür geöffnet ist, wird mir der Raumname eingeblendet, ansonsten ist alles ausgeblendet
                            1e0b594f-243d-4308-9605-2659eea1a23b-image.png
                            50b2d85e-b6df-40a4-806d-682a23e94c2d-image.png

                            1 Reply Last reply Reply Quote 0
                            • R
                              rotamint @Pittini last edited by

                              @Pittini Danke! Vor lauter Bäumen den Wald nicht gesehen...

                              1 Reply Last reply Reply Quote 0
                              • qqolli
                                qqolli @dslraser last edited by

                                @dslraser

                                Hi,

                                habe am Wochenende den Echo Dot ausprobiert und wie ihr bereits vorhergesagt hattet ging alles ohne Probleme, das Skript hat brav seine Ansagen gemacht und der liebe Sonos die "Klappe" gehalten.

                                @Pittini Sorry für die Art und Weise am Anfang, war nich ok so. Du hattest natürlich recht.
                                @Pittini An Deiner Snips-Lösung wäre ich weiterhin sehr interessiert. Hättest Du evtl. mehr Material zum einarbeiten?

                                P 1 Reply Last reply Reply Quote 0
                                • P
                                  Pittini Developer @qqolli last edited by

                                  @qqolli sagte in [Vorlage] Generisches Fensteroffenskript + Vis:

                                  @Pittini An Deiner Snips-Lösung wäre ich weiterhin sehr interessiert. Hättest Du evtl. mehr Material zum einarbeiten?

                                  Hilft Dir doch alles nix mehr, Du kannst Dich weder anmelden noch was ändern, bei mir läufts halt "noch" weil ich vorher schon alles eingerichtet hatte. Aber vielleicht hilft Dir das da, hab ich die Tage entdeckt, aber noch keinerlei Tests gemacht: https://forum.iobroker.net/topic/34343/sepia-open-assistant-diy-sprachassistent-iobroker

                                  1 Reply Last reply Reply Quote 0
                                  • crunchip
                                    crunchip Forum Testing Most Active last edited by

                                    @Pittini mal so nebenbei zwei Fragen, auch wenn du ne Abneigung zur Alexa hast😜

                                    hatte bis vor kurzem das Script aus deinem Anfangspost, mit dem neuen habe ich jedoch ein Lautstärkenproblem.

                                    1. hast du ne Ahnung woher das kommen kann, wenn mehrere Meldungen nacheinander ausgegeben werden...z.b.nicht gelüftet...Raum1...., Raum2.... ,Raum3..., die erste Meldung in der Lautstärke kommt, wie der Echo eingestellt ist, jedoch alle folge Meldungen für Raum 2...3...dann aber wesentlich leiser ausgegeben werden, so das man es kaum noch versteht?
                                    2. daher die zweite Frage, wäre es möglich die Lautstärke als Variable mit einzubinden, da die Kinder gerne mal an der Lautstärke vom Echo spielen
                                    P 1 Reply Last reply Reply Quote 0
                                    • P
                                      Pittini Developer @crunchip last edited by

                                      @crunchip sagte in [Vorlage] Generisches Fensteroffenskript + Vis:

                                      hatte bis vor kurzem das Script aus deinem Anfangspost, mit dem neuen habe ich jedoch ein Lautstärkenproblem.

                                      Seltsam, an diesen Funktionen hat sich absolut nix geändert, die Textübergabe an Alexa is absolut identisch zur alten Version.

                                      hast du ne Ahnung woher das kommen kann, wenn mehrere Meldungen nacheinander ausgegeben werden...z.b.nicht gelüftet...Raum1...., Raum2.... ,Raum3..., die erste Meldung in der Lautstärke kommt, wie der Echo eingestellt ist, jedoch alle folge Meldungen für Raum 2...3...dann aber wesentlich leiser ausgegeben werden, so das man es kaum noch versteht?

                                      Keine Ahnung, hat imho nix mit dem Skript zu tun

                                      daher die zweite Frage, wäre es möglich die Lautstärke als Variable mit einzubinden, da die Kinder gerne mal an der Lautstärke vom Echo spielen

                                      Machbar wenn Du mir sagen kannst wie der Befehl aussehen muss um ne Lautstärke an Alexa zu übergeben. Aktuell sieht der Beffehl so aus:

                                      setState("alexa2.0.Echo-Devices." + AlexaId + ".Commands.announcement"/*announcement*/, msg)
                                      

                                      Wo kommt da die Lautstärke hin?

                                      crunchip sigi234 2 Replies Last reply Reply Quote 0
                                      • crunchip
                                        crunchip Forum Testing Most Active @Pittini last edited by

                                        @Pittini sagte in [Vorlage] Generisches Fensteroffenskript + Vis:

                                        die Textübergabe an Alexa is absolut identisch zur alten Version.

                                        die gab es im alten script doch noch gar nicht, Meldungen wie ...Raum-xy nicht gelüftet...

                                        Einzelne Ansagen, ob was geöffnet/geschlossen wurde, oder etwas seit x Minuten offen steht, funktioniert ja, da es nur 1 Commands.announcement ausgegeben wird.

                                        Bei Raum xy nicht gelüftet... funktioniert es auch, solange nur ein Raum ausgegeben wird, sind es mehrere Räume, werden diese nacheinander ausgegeben, Signalton, gefolgt von der MSG, danach (ab hier ganz leise) erneut Signalton gefolgt von der nächsten MSG...usw
                                        ich hätte da erwartet, einmalig Signalton, dann alle Meldungen nacheinander
                                        Warum die Lautstärke aber unterschiedlich ist, in dem Fall, keine Ahnung

                                        @Pittini sagte in [Vorlage] Generisches Fensteroffenskript + Vis:

                                        Wo kommt da die Lautstärke hin?

                                        wenn ich das wüsste🙁

                                        F 1 Reply Last reply Reply Quote 0
                                        • sigi234
                                          sigi234 Forum Testing Most Active @Pittini last edited by

                                          @Pittini sagte in [Vorlage] Generisches Fensteroffenskript + Vis:

                                          Wo kommt da die Lautstärke hin?

                                          So setze ich für einen Dot ein Volume, vielleicht hilft das.

                                          setState("alexa2.0.Echo-Devices.xxxxxxxxxxxx.Player.volume"/*volume*/, 80);
                                          
                                          dslraser 1 Reply Last reply Reply Quote 0
                                          • dslraser
                                            dslraser Forum Testing Most Active @sigi234 last edited by dslraser

                                            @sigi234 sagte in [Vorlage] Generisches Fensteroffenskript + Vis:

                                            So setze ich für einen Dot ein Volume, vielleicht hilft das.
                                            setState("alexa2.0.Echo-Devices.xxxxxxxxxxxx.Player.volume"/volume/, 80);

                                            Das ist für Musik (Player.volume), oder MultiroomMusik Gruppen.

                                            Als was wird denn die Ansage ausgegeben ?

                                            speak
                                            ssml
                                            oder ankündigung ?

                                            Wenn darüber, dann ist es

                                            alexa2.0.Echo-Devices.xxx.Commands.speak-volume
                                            

                                            oder man setzt vor dem eigentlichen Text die Lautstärke als Zahl;Text...

                                            Screenshot_20200714-161027_Chrome.jpg

                                            Screenshot_20200714-161045_Chrome.jpg

                                            https://github.com/Apollon77/ioBroker.alexa2

                                            Nach der eigentlichen Ansage wird die Lautstärke dann automatisch wieder auf die zuvor eingestellte Lautstärke gesetzt.

                                            Also diese gesetzte Lautstärke ist dann nur für diese Ansage

                                            Edit: habe es selbst gefunden, also als Ankündigung

                                            Bildschirmfoto 2020-07-14 um 16.17.39.png

                                            Bildschirmfoto 2020-07-14 um 16.24.40.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            903
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript monitoring template
                                            81
                                            768
                                            178735
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo