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.6k

[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.
  • 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
                                • P Pittini

                                  @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 Abwesend
                                  crunchipC Abwesend
                                  crunchip
                                  Forum Testing Most Active
                                  schrieb am zuletzt editiert von
                                  #303

                                  @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:slightly_frowning_face:

                                  umgestiegen von Proxmox auf Unraid

                                  F 1 Antwort Letzte Antwort
                                  0
                                  • P Pittini

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

                                    sigi234S Online
                                    sigi234S Online
                                    sigi234
                                    Forum Testing Most Active
                                    schrieb am zuletzt editiert von
                                    #304

                                    @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);
                                    

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

                                    dslraserD 1 Antwort Letzte Antwort
                                    0
                                    • sigi234S sigi234

                                      @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);
                                      
                                      dslraserD Offline
                                      dslraserD Offline
                                      dslraser
                                      Forum Testing Most Active
                                      schrieb am zuletzt editiert von dslraser
                                      #305

                                      @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

                                      crunchipC 1 Antwort Letzte Antwort
                                      0
                                      • crunchipC crunchip

                                        @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:slightly_frowning_face:

                                        F Offline
                                        F Offline
                                        fastfoot
                                        schrieb am zuletzt editiert von
                                        #306

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

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

                                        Die mehrfachen Signaltöne im announcement kommen von Semikolon-separierten Texten, also z.B.: "Hallo Text1; Hallo Text2".
                                        Mir ist es aber nicht gelungen, durch irgendwelche Kombinationen die Lautstärke zu verändern, ich habe aber auch kein Beispiel einer Textausgabe des Skripts(keine Sensoren), könntest du mal einen kompletten solchen Text posten?

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

                                        Wo kommt da die Lautstärke hin?

                                        wenn ich das wüsste:slightly_frowning_face:

                                        Die Lautstärke kann man durch Voranstellen in der Message einstellen, sie muss durch Semikolon separiert werden: "25; Hallo Test" setzt die Lautstärke nur für diesen Text, ansonsten gilt weiterhin die mit speak-volume festgelegte Lautstärke, sehr praktisch. Ein Setzen der Lautstärke mitten im Text funktioniert nicht, dann gibt Alexa die Zahlen aus

                                        iobroker läuft unter Docker auf QNAP TS-451+
                                        SkriptRecovery: https://forum.iobroker.net/post/930558

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

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

                                          @dslraser das weiss ich schon, dass der speak DP dafür zu nehmen ist und im blockly kann man in der Nachricht direkt die Lautstärke mitgeben.
                                          Jedoch
                                          In dem Fall als Ankündigung ...Commands.announcement
                                          ich dachte als Variable im Script hinterlegen, so in der Art wie beim Wetterwarnung-Push-Script, nur ist dieses Script anders aufgebaut.
                                          so in der Art, jedoch weiss ich nicht wie der Befehl dann aussehen soll

                                          /* Konfiguration Sprachausgabe über Alexa
                                          /* mehrere Einträge möglich, bei mir ging nur der Echo, 2 dots 2.Gen reagieren nicht auf announcement. */
                                          var idAlexaSerial       = ['']; // die reine Seriennummer des Echos z.B.: var idAlexaSerial =['G090RV32984110Y', 'G090RV32984110Y']
                                          var alexaVolumen        = [30]; // Lautstärke die gleiche Anzahl an Einträgen wie bei idAlexaSerial
                                          

                                          @fastfoot hier mal ein Beispiel, SprachAusgabe erfolgt ohne Datum und Uhrzeit

                                          javascript.0 (976) script.js.Benachrichtigung.Fenster_Tür-Status: TempMessageLog=14.07.2020 16:27:32: Küche nicht gelüftet 2 Tage 20 Std. 10 Min.,14.07.2020 16:27:32: Kinderzimmer nicht gelüftet 2 Tage 1 Std. 8 Min.,14.07.2020 16:27:32: Badezimmer nicht gelüftet 2 Tage 6 Std. 9 Min.
                                          

                                          umgestiegen von Proxmox auf Unraid

                                          dslraserD F 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

                                          743

                                          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