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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [Vorlage] Generisches Fensteroffenskript + Vis

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

[Vorlage] Generisches Fensteroffenskript + Vis

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascripttemplatemonitoring
768 Beiträge 81 Kommentatoren 222.6k Aufrufe 97 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.
  • qqolliQ qqolli

    @crunchip

    Hi, mit alles funktionieren meinte ich den Rest (also ohne Sprachausgabe). Ich benutze einen Sonos One im Alexa-Mode, kann sein das es daran liegt. Morgen bekomme ich noch ein Echo Dot (3. Generation), so das ich es mal am Wochenende ausprobieren kann, quasi Sonos vs. "Origignal". Mal sehen, ich halte Euch auf dem laufenden.

    @Pittini ,@crunchip Vielen Dank für Eure Hilfe und Mühe!

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

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

    Ich benutze einen Sonos One im Alexa-Mode, kann sein das es daran liegt.

    ja, da findest Du hier im Forum viele Beiträge. Mal gehen die Sonos und mal nicht.

    qqolliQ 1 Antwort Letzte Antwort
    0
    • dslraserD dslraser

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

      Ich benutze einen Sonos One im Alexa-Mode, kann sein das es daran liegt.

      ja, da findest Du hier im Forum viele Beiträge. Mal gehen die Sonos und mal nicht.

      qqolliQ Offline
      qqolliQ Offline
      qqolli
      schrieb am zuletzt editiert von
      #284

      @dslraser

      Aber der Sound ist wirklich gut und die Dinger sind einfach anzuschliessen :-)

      Bis jetzt, in den paar Tagen wo ich ihn habe, hat er was Alexa betrifft ganz gut funktioniert. Mal sehen, wie sich der Echo Dot schlägt.

      dslraserD 1 Antwort Letzte Antwort
      0
      • qqolliQ qqolli

        @dslraser

        Aber der Sound ist wirklich gut und die Dinger sind einfach anzuschliessen :-)

        Bis jetzt, in den paar Tagen wo ich ihn habe, hat er was Alexa betrifft ganz gut funktioniert. Mal sehen, wie sich der Echo Dot schlägt.

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

        @qqolli
        es geht dabei um z.B. speak, oder ssml, oder auch Ankündigungen. Die gingen in den letzten Monaten immer mal wieder nicht auf sonos, auf allen anderen Alexa Geräten die das können ging es weiterhin.

        Beispiel

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

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

          @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

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

          crunchipC 1 Antwort Letzte Antwort
          0
          • NegaleinN Negalein

            @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

            crunchipC Abwesend
            crunchipC Abwesend
            crunchip
            Forum Testing Most Active
            schrieb am zuletzt editiert von crunchip
            #287

            @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

            umgestiegen von Proxmox auf Unraid

            NegaleinN 1 Antwort Letzte Antwort
            0
            • crunchipC 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

              NegaleinN Offline
              NegaleinN Offline
              Negalein
              Global Moderator
              schrieb am zuletzt editiert von
              #288

              @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

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

              crunchipC 1 Antwort Letzte Antwort
              0
              • NegaleinN Negalein

                @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

                crunchipC Abwesend
                crunchipC Abwesend
                crunchip
                Forum Testing Most Active
                schrieb am zuletzt editiert von crunchip
                #289

                @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

                umgestiegen von Proxmox auf Unraid

                NegaleinN 2 Antworten Letzte Antwort
                0
                • crunchipC 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

                  NegaleinN Offline
                  NegaleinN Offline
                  Negalein
                  Global Moderator
                  schrieb am zuletzt editiert von
                  #290

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

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

                  leider keine Änderung

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

                  crunchipC 1 Antwort Letzte Antwort
                  0
                  • NegaleinN Negalein

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

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

                    leider keine Änderung

                    crunchipC Abwesend
                    crunchipC Abwesend
                    crunchip
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von crunchip
                    #291

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

                    umgestiegen von Proxmox auf Unraid

                    NegaleinN 1 Antwort Letzte Antwort
                    0
                    • crunchipC crunchip

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

                      NegaleinN Offline
                      NegaleinN Offline
                      Negalein
                      Global Moderator
                      schrieb am zuletzt editiert von
                      #292

                      @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
                      

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

                      Dominik F.D 1 Antwort Letzte Antwort
                      0
                      • NegaleinN Negalein

                        @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.D Offline
                        Dominik F.D Offline
                        Dominik F.
                        schrieb am zuletzt editiert von
                        #293

                        @Negalein

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

                        NegaleinN 1 Antwort Letzte Antwort
                        0
                        • Dominik F.D Dominik F.

                          @Negalein

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

                          NegaleinN Offline
                          NegaleinN Offline
                          Negalein
                          Global Moderator
                          schrieb am zuletzt editiert von
                          #294

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

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

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

                            @crunchip @Dominik-F

                            Bingo, es läuft
                            Danke

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

                            1 Antwort Letzte Antwort
                            0
                            • crunchipC 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

                              NegaleinN Offline
                              NegaleinN Offline
                              Negalein
                              Global Moderator
                              schrieb am zuletzt editiert von
                              #296

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

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

                              crunchipC 1 Antwort Letzte Antwort
                              0
                              • NegaleinN Negalein

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

                                crunchipC Abwesend
                                crunchipC Abwesend
                                crunchip
                                Forum Testing Most Active
                                schrieb am zuletzt editiert von crunchip
                                #297

                                @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

                                umgestiegen von Proxmox auf Unraid

                                1 Antwort Letzte Antwort
                                0
                                • P Pittini

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

                                  Wo kann ich das nach "2 / benutzerdefiniert" einrichten? Ich habe nichts gefunden.

                                  Anleitung .6.13

                                  R Offline
                                  R Offline
                                  rotamint
                                  schrieb am zuletzt editiert von
                                  #298

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

                                  1 Antwort Letzte Antwort
                                  0
                                  • dslraserD dslraser

                                    @qqolli
                                    es geht dabei um z.B. speak, oder ssml, oder auch Ankündigungen. Die gingen in den letzten Monaten immer mal wieder nicht auf sonos, auf allen anderen Alexa Geräten die das können ging es weiterhin.

                                    Beispiel

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

                                    qqolliQ Offline
                                    qqolliQ Offline
                                    qqolli
                                    schrieb am zuletzt editiert von
                                    #299

                                    @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 Antwort Letzte Antwort
                                    0
                                    • qqolliQ qqolli

                                      @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 Offline
                                      P Offline
                                      Pittini
                                      Developer
                                      schrieb am zuletzt editiert von
                                      #300

                                      @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 Antwort Letzte Antwort
                                      0
                                      • crunchipC Abwesend
                                        crunchipC Abwesend
                                        crunchip
                                        Forum Testing Most Active
                                        schrieb am zuletzt editiert von
                                        #301

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

                                        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

                                        umgestiegen von Proxmox auf Unraid

                                        P 1 Antwort Letzte Antwort
                                        0
                                        • crunchipC crunchip

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

                                          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 Offline
                                          P Offline
                                          Pittini
                                          Developer
                                          schrieb am zuletzt editiert von
                                          #302

                                          @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?

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          732

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe