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. [gelöst]Pushover Nachricht offene FensterAlarm

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.9k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    900

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[gelöst]Pushover Nachricht offene FensterAlarm

Geplant Angeheftet Gesperrt Verschoben JavaScript
7 Beiträge 3 Kommentatoren 557 Aufrufe 2 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.
  • B Offline
    B Offline
    Baerny
    schrieb am zuletzt editiert von Baerny
    #1

    Hallo, ich nutze ein älteres Alarmanlagenscript von @tempestas. U. a. überwacht das Script auch die offenen Fenster beim Scharfstellen der Alarmanlage und meldet diese per Pushover. Mein Problem: es kommt zwar eine Nachricht aber es stehen dort keine offenen Fenster drinnen, lediglich ein paar Kommas. Die Fenster sind alle in hm rpc1 gelistet. Hat jemand eine Idee was im Script geändert werden muss.
    Script:

    // ########################################################################
    // ####### Fensterstatus beim einschalten der Alarmanlage überwachen  #####
    var fensterOffen =[];
    var info;
    function fensterPruef() {
        var cacheSelectorState  = $('channel[state.id=*.STATE](functions="Verschluss")');
        cacheSelectorState.each(function (id, i) {                              // Schleife für jedes gefundenen Element *.STATE im Gewerk Alarmanlage_Huelle
            var status = getState(id).val;                                          // Zustand *.STATE abfragen (jedes Element)   // alt: getState(id).val;
            var obj    = getObject(id);
            var name = getObject(id).common.name;
            var devicename = name.substring(0, name.indexOf(":1.STATE"));             //:1.state aus Text entfernen
            if(status ||status === 1){
                fensterOffen.push(devicename);                                          // offene Fenster zum Array hinzufügen
                fensterOffen.sort;                                                      // Array sortieren
                if(debug2) log(fensterOffen);
            }
        });
        if(fensterOffen.length > 0) info = "Folgende Fenster noch offen: "+fensterOffen;
        else info = "Alle Fenster geschlossen.";
        if(debug2) log("Info ist "+info);
    }
    // #########################################################
    

    hier noch ein Bild vom State
    state.png
    so sieht es auf dem Handy aus
    IMG_2673.PNG

    Ich hoffe ihr könnt mir helfen

    CCU 2 | Intel NUC mit Proxmox

    thewhoboxT 1 Antwort Letzte Antwort
    0
    • B Baerny

      Hallo, ich nutze ein älteres Alarmanlagenscript von @tempestas. U. a. überwacht das Script auch die offenen Fenster beim Scharfstellen der Alarmanlage und meldet diese per Pushover. Mein Problem: es kommt zwar eine Nachricht aber es stehen dort keine offenen Fenster drinnen, lediglich ein paar Kommas. Die Fenster sind alle in hm rpc1 gelistet. Hat jemand eine Idee was im Script geändert werden muss.
      Script:

      // ########################################################################
      // ####### Fensterstatus beim einschalten der Alarmanlage überwachen  #####
      var fensterOffen =[];
      var info;
      function fensterPruef() {
          var cacheSelectorState  = $('channel[state.id=*.STATE](functions="Verschluss")');
          cacheSelectorState.each(function (id, i) {                              // Schleife für jedes gefundenen Element *.STATE im Gewerk Alarmanlage_Huelle
              var status = getState(id).val;                                          // Zustand *.STATE abfragen (jedes Element)   // alt: getState(id).val;
              var obj    = getObject(id);
              var name = getObject(id).common.name;
              var devicename = name.substring(0, name.indexOf(":1.STATE"));             //:1.state aus Text entfernen
              if(status ||status === 1){
                  fensterOffen.push(devicename);                                          // offene Fenster zum Array hinzufügen
                  fensterOffen.sort;                                                      // Array sortieren
                  if(debug2) log(fensterOffen);
              }
          });
          if(fensterOffen.length > 0) info = "Folgende Fenster noch offen: "+fensterOffen;
          else info = "Alle Fenster geschlossen.";
          if(debug2) log("Info ist "+info);
      }
      // #########################################################
      

      hier noch ein Bild vom State
      state.png
      so sieht es auf dem Handy aus
      IMG_2673.PNG

      Ich hoffe ihr könnt mir helfen

      thewhoboxT Offline
      thewhoboxT Offline
      thewhobox
      schrieb am zuletzt editiert von thewhobox
      #2

      @Baerny sagte in Pushover Nachricht offene Fenster bei Alarm:

      getObject(id).common.name

      Ist bei dir "Fensterkontakt_Büro.State".

      name.indexOf(":1.STATE")
      Du suchst aber nach ":1.STATE"
      Im Namen ist aber kein Doopelpunkt und keine eins. Somit gibt dein name.substring einen leeren String zurück.

      var devicename = name.substring(0, name.indexOf(".STATE"));
      

      So sollte es gehen.

      Edit:
      Noch eine anmerkung. Du fragst das Object zwei mal ab und verwendest dann die Variable aber nicht?

      var obj    = getObject(id);
      var name = getObject(id).common.name;
      

      Meine Adapter: emby | discovery
      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

      B 1 Antwort Letzte Antwort
      0
      • thewhoboxT thewhobox

        @Baerny sagte in Pushover Nachricht offene Fenster bei Alarm:

        getObject(id).common.name

        Ist bei dir "Fensterkontakt_Büro.State".

        name.indexOf(":1.STATE")
        Du suchst aber nach ":1.STATE"
        Im Namen ist aber kein Doopelpunkt und keine eins. Somit gibt dein name.substring einen leeren String zurück.

        var devicename = name.substring(0, name.indexOf(".STATE"));
        

        So sollte es gehen.

        Edit:
        Noch eine anmerkung. Du fragst das Object zwei mal ab und verwendest dann die Variable aber nicht?

        var obj    = getObject(id);
        var name = getObject(id).common.name;
        
        B Offline
        B Offline
        Baerny
        schrieb am zuletzt editiert von
        #3

        @thewhobox vielen Dank, jetzt sind die Namen in der Nachricht enthalten, allerdings leert sich die die Log Datei nicht. Aber das ist wohl eine andere Baustelle.

        zu den beiden Abfragen - ich hab keine Ahnung von Javascript. Wie erwähnt habe ich das Script aus einem Tread übernommen.

        CCU 2 | Intel NUC mit Proxmox

        paul53P 1 Antwort Letzte Antwort
        0
        • B Baerny

          @thewhobox vielen Dank, jetzt sind die Namen in der Nachricht enthalten, allerdings leert sich die die Log Datei nicht. Aber das ist wohl eine andere Baustelle.

          zu den beiden Abfragen - ich hab keine Ahnung von Javascript. Wie erwähnt habe ich das Script aus einem Tread übernommen.

          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @Baerny sagte:

          allerdings leert sich die die Log Datei nicht.

          var fensterOffen =[];
          

          muss in die Funktion fensterPruef() (an den Anfang).

          Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
          Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

          B 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @Baerny sagte:

            allerdings leert sich die die Log Datei nicht.

            var fensterOffen =[];
            

            muss in die Funktion fensterPruef() (an den Anfang).

            B Offline
            B Offline
            Baerny
            schrieb am zuletzt editiert von
            #5

            @paul53 versteh ich nicht wirklich, "var fensterOffen =[];" steht doch ganz am Anfang.

            CCU 2 | Intel NUC mit Proxmox

            paul53P 1 Antwort Letzte Antwort
            0
            • B Baerny

              @paul53 versteh ich nicht wirklich, "var fensterOffen =[];" steht doch ganz am Anfang.

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von
              #6

              @Baerny sagte:

              "var fensterOffen =[];" steht doch ganz am Anfang.

              Eben, außerhalb der Funktion und wird so nur einmal bei Skriptstart ausgeführt. Richtig:

              const cacheSelectorState  = $('channel[state.id=*.STATE](functions="Verschluss")');
              var info;
              
              function fensterPruef() {
                  var fensterOffen = [];
                  cacheSelectorState.each(function (id, i) {                              // Schleife für jedes gefundenen Element *.STATE im Gewerk Alarmanlage_Huelle
              

              Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
              Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

              B 1 Antwort Letzte Antwort
              0
              • paul53P paul53

                @Baerny sagte:

                "var fensterOffen =[];" steht doch ganz am Anfang.

                Eben, außerhalb der Funktion und wird so nur einmal bei Skriptstart ausgeführt. Richtig:

                const cacheSelectorState  = $('channel[state.id=*.STATE](functions="Verschluss")');
                var info;
                
                function fensterPruef() {
                    var fensterOffen = [];
                    cacheSelectorState.each(function (id, i) {                              // Schleife für jedes gefundenen Element *.STATE im Gewerk Alarmanlage_Huelle
                
                B Offline
                B Offline
                Baerny
                schrieb am zuletzt editiert von
                #7

                @paul53 Funktioniert!!!!, super :+1:

                CCU 2 | Intel NUC mit Proxmox

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


                Support us

                ioBroker
                Community Adapters
                Donate

                749

                Online

                32.6k

                Benutzer

                82.2k

                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