Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Push Skript Alarmbenachrichtigung

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
    915

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

Push Skript Alarmbenachrichtigung

Scheduled Pinned Locked Moved Skripten / Logik
14 Posts 5 Posters 2.1k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • N Offline
    N Offline
    Newmiraculix
    wrote on last edited by
    #1

    Hallo liebe Community,

    ich habe mich mit Hilfe einiger Skripts mal an mein erstes Skript ohne Blockly gewagt. Leider funktioniert es nicht so gut :D Grundsätzlich habe ich 5 HM Rauchmelder, welche in einem Team gruppiert sind.

    Jetzt habe ich versucht mit dem Trigger auf dem State des Teams, rauszufinden, welcher der 5 Melder ausgelöst hat, und diesen dann via Pushover an unsere Smartphones zu schicken.

    createState('Feueralarm.textALARM',""); 
    
    var cacheSelectorSTATE  = $('channel[state.id=*.STATE](functions=Rauchmelder)');
    var textALARM = "";
    on("hm-rpc.0.*NBO0010787.1.STATE", function (obj){
        cacheSelectorSTATE.each(function (id, i) {
            var status = getState(id).val;
            var obj = getObject(id);
            if (status === true) {
                textALARM.push(obj.common.name);
                }
        log("Melder Nr. " + i + ": " + getObject(id).common.name + ": " + status);
        });
    });
    
        setState("Feueralarm.textALARM", textALARM);
    
        sendTo("pushover.2", "send", {
        message: "FEUERALARM" + "\n" + "Ausloesender Melder: " + textALARM,
        sound: "siren",
        priority: 2,
        retry: 60,
        expire: 3600
        }); 
    

    Allerdings schickt das Skript, sobald ich es aktiviere, im Minutentakt Alarmmeldungen raus, natürlich ohne Melder.

    Sieht wer den Denk- oder Logikfehler?

    Danke und Gruß

    Markus

    CCU2 mit noch nicht ganz so vielen Aktoren :D

    RaspberryPi2 für SmartHome mit ioBroker

    RaspberryPi3 für SmartHome Mit iobroker (Multihost)

    Logitech Harmony Hub

    RaspberryPi3 mit openELEC

    Amazon Echo, Echo Dot und Echo…

    1 Reply Last reply
    0
    • BuZZyB Offline
      BuZZyB Offline
      BuZZy
      wrote on last edited by
      #2

      Hallo Markus,

      verstehe die ersten Zeilen nicht so richtig..

      on("hm-rpc.0.*NBO0010787.1.STATE", function (obj){
          cacheSelectorSTATE.each(function (id, i) {.....
      

      Was ist hm-rpc.0.*NBO0010787.1.STATE? Das Script soll ablaufen, sobald sich bei dem Datenpunkt hm-rpc.0.*NBO0010787.1.STATE etwas tut?

      Ist das so gewollt? Normalerweise "hört" man ja alle Rauchmelder ab und sobald sich da irgendwas tut, soll das Script laufen und prüfen welcher "true" meldet.

      Desweiteren befindet sich dein Pushover-Befehl außerhalb jeglicher Funktion,..

      Das bedeutet, sobald du das Script startest wird die Meldung rausgeschickt. (Und alle 60 Sekunden wiederholt so wie du es an den Pushover-Adapter übergeben hast).

      Du musst die Pushover Nachricht direkt nach dem Prüfen von "if (status === true) { …" absenden.

      Du kannst die diversen "Zählscripte" (schwache Batterie, Fenster offen,...) die hier im Forum zu finden sind gut dazu umschreiben..

      Etwa so:

      createState('Feueralarm.textALARM',''); 
      
      var cacheSelectorSTATE  = $('channel[state.id=*.STATE](functions=Rauchmelder)');
      
      function melderCheck(obj) {
          var textALARM      = [];
      
          cacheSelectorSTATE.each(function (id, i) {
      		var status = getState(id).val;
      		var obj    = getObject(id);
      		if (status === true) {
      			textALARM.push(obj.common.name.substr(0, obj.common.name.indexOf(':')));
      			sendTo("pushover.2", "send", {
      				message: "FEUERALARM" + "\n" + "Ausloesender Melder: " + obj.common.name.substr(0, obj.common.name.indexOf(':')),
      				sound: "siren",
      				priority: 2,
      				retry: 60,
      				expire: 3600
      			}); 
              }                
          }); 
      	setState("Feueralarm.textALARM", textALARM.join(', '));
      }
      
      cacheSelectorSTATE.on(function(obj) {
          melderCheck(obj);		
      });
      

      Gruß

      1 Reply Last reply
      0
      • N Offline
        N Offline
        Newmiraculix
        wrote on last edited by
        #3

        Hallo BuZZy,

        ` > Was ist hm-rpc.0.*NBO0010787.1.STATE? Das Script soll ablaufen, sobald sich bei dem Datenpunkt hm-rpc.0.*NBO0010787.1.STATE etwas tut?

        Ist das so gewollt? Normalerweise "hört" man ja alle Rauchmelder ab und sobald sich da irgendwas tut, soll das Script laufen und prüfen welcher "true" meldet. `

        Das Objekt ist das HM Rauchmelder Team, also quasi die Gruppe. Die geht automatisch auf true sobald ein Melder auf true geht.

        Das mit der Fuktion hab ich übersehen. Vielen Dank, das werde ich testen. Hab das aus dem LowBatt Skript zusammengeschustert ;)

        Gruß

        Markus

        CCU2 mit noch nicht ganz so vielen Aktoren :D

        RaspberryPi2 für SmartHome mit ioBroker

        RaspberryPi3 für SmartHome Mit iobroker (Multihost)

        Logitech Harmony Hub

        RaspberryPi3 mit openELEC

        Amazon Echo, Echo Dot und Echo…

        1 Reply Last reply
        0
        • N Offline
          N Offline
          Newmiraculix
          wrote on last edited by
          #4

          Also jetzt funktioniert das Senden wie erwartet ;) (Hab mal einen Melder manuell auf true gestellt) Allerdings kommt der Name nicht mit. Der Fixtext (Feueralarm und Ausloesender Melder) wird gesendet aber die Variable nicht :?:

          CCU2 mit noch nicht ganz so vielen Aktoren :D

          RaspberryPi2 für SmartHome mit ioBroker

          RaspberryPi3 für SmartHome Mit iobroker (Multihost)

          Logitech Harmony Hub

          RaspberryPi3 mit openELEC

          Amazon Echo, Echo Dot und Echo…

          1 Reply Last reply
          0
          • BuZZyB Offline
            BuZZyB Offline
            BuZZy
            wrote on last edited by
            #5

            @Newmiraculix:

            ..Allerdings kommt der Name nicht mit. `

            Dann nimm mal das, und zeige wie der Name aussieht der dann gesendet wird.

            createState('Feueralarm.textALARM',''); 
            
            var cacheSelectorSTATE  = $('channel[state.id=*.STATE](functions=Rauchmelder)');
            
            function melderCheck(obj) {
                var textALARM      = [];
            
                cacheSelectorSTATE.each(function (id, i) {
                  var status = getState(id).val;
                  var obj    = getObject(id);
                  if (status === true) {
                     textALARM.push(obj.common.name);
                     sendTo("pushover.2", "send", {
                        message: "FEUERALARM" + "\n" + "Ausloesender Melder: " + obj.common.name ,
                        sound: "siren",
                        priority: 2,
                        retry: 60,
                        expire: 3600
                     }); 
                    }                
                }); 
               setState("Feueralarm.textALARM", textALARM.join(', '));
            }
            
            cacheSelectorSTATE.on(function(obj) {
                melderCheck(obj);      
            });
            

            Gruß

            1 Reply Last reply
            0
            • N Offline
              N Offline
              Newmiraculix
              wrote on last edited by
              #6

              > Dann nimm mal das, und zeige wie der Name aussieht der dann gesendet wird.

              Besser, Die 2. Zeile der Pushnachricht lautet jetzt: "Ausloesender Melder: Eingang.STATE".

              Weißt du noch wie ich das .STATE wegbekomme?

              CCU2 mit noch nicht ganz so vielen Aktoren :D

              RaspberryPi2 für SmartHome mit ioBroker

              RaspberryPi3 für SmartHome Mit iobroker (Multihost)

              Logitech Harmony Hub

              RaspberryPi3 mit openELEC

              Amazon Echo, Echo Dot und Echo…

              1 Reply Last reply
              0
              • BuZZyB Offline
                BuZZyB Offline
                BuZZy
                wrote on last edited by
                #7

                Ja, so:

                createState('Feueralarm.textALARM',''); 
                
                var cacheSelectorSTATE  = $('channel[state.id=*.STATE](functions=Rauchmelder)');
                
                function melderCheck(obj) {
                    var textALARM      = [];
                
                    cacheSelectorSTATE.each(function (id, i) {
                      var status = getState(id).val;
                      var obj    = getObject(id);
                      if (status === true) {
                         textALARM.push(obj.common.name.substr(0, obj.common.name.indexOf(':')));
                         sendTo("pushover.2", "send", {
                            message: "FEUERALARM" + "\n" + "Ausloesender Melder: " + obj.common.name.substr(0, obj.common.name.indexOf('.')),
                            sound: "siren",
                            priority: 2,
                            retry: 60,
                            expire: 3600
                         }); 
                        }                
                    }); 
                   setState("Feueralarm.textALARM", textALARM.join(', '));
                }
                
                cacheSelectorSTATE.on(function(obj) {
                    melderCheck(obj);      
                });
                

                Gruß

                1 Reply Last reply
                0
                • N Offline
                  N Offline
                  Newmiraculix
                  wrote on last edited by
                  #8

                  Perfekt! Funktioniert. DANKE!

                  CCU2 mit noch nicht ganz so vielen Aktoren :D

                  RaspberryPi2 für SmartHome mit ioBroker

                  RaspberryPi3 für SmartHome Mit iobroker (Multihost)

                  Logitech Harmony Hub

                  RaspberryPi3 mit openELEC

                  Amazon Echo, Echo Dot und Echo…

                  1 Reply Last reply
                  0
                  • K Offline
                    K Offline
                    KlausH
                    wrote on last edited by
                    #9

                    Hallo!

                    ich habe meine Geräte für den Feueralarm im Gewerk "Sicherheit" erfasst.

                    Da sich hier auch andere Gerätetypen befinden müsste ich die Liste auf den Gerätetyp "HM-Sec-SD-2" einschränlen.

                    Wie kann ich das beim cacheSelectorSTATE machen oder kann dich den Typ später beim Versand bestimmen?

                    Danke

                    Klaus

                    1 Reply Last reply
                    0
                    • F Offline
                      F Offline
                      f0rd42
                      wrote on last edited by
                      #10

                      @Newmiraculix:

                      Perfekt! Funktioniert. DANKE! `

                      Kurze Frage zu dem Script.

                      Wo / wie kommt denn der "State == True" zustande?

                      Die Rauchmelder haben doch einen SMOKE_DETECTOR_ALARM_STATUS, der einen Wert von 0-3 (Rauchalarm = 1) annimmt.

                      Ich verstehe das mit den State nicht so ganz.

                      Danke

                      1 Reply Last reply
                      0
                      • F Offline
                        F Offline
                        f0rd42
                        wrote on last edited by
                        #11

                        oder anders gefragt:

                        in Kanal 1 gibt es 4 Variablen vom Type "State".

                        an welcher Stelle im Script wird denn ausgewertet, welche das ist?

                        Bei einem Test am Gerät wird ja keine Nachricht per Push verschickt …..

                        Danke für die Hilfe, fuchse mich in JS gerade ein und stehe teilweise noch vor Problemen die Scripte zu verstehen.

                        1 Reply Last reply
                        0
                        • F Offline
                          F Offline
                          f0rd42
                          wrote on last edited by
                          #12

                          nachdem ich mir hier viewtopic.php?p=229735#p229735 berechtigterweise eine "Backpfeife" abgeholt habe nehme ich die Diskussion hier noch einmal auf.

                          Mein Script sieht derzeit wie folgt aus:

                          ! ````
                          createState('Feueralarm.textALARM','');
                          ! var cacheSelectorSTATE = $('channelstate.id=*.STATE');
                          ! function melderCheck(obj) {
                          var textALARM = [];

                          cacheSelectorSTATE.each(function (id, i) {
                            var status = getState(id).val;
                            var obj    = getObject(id);
                            if (status === true) {
                               textALARM.push(obj.common.name.substr(0, obj.common.name.indexOf(':')));
                               sendTo("pushover.1", "send", {
                                  message: "FEUERALARM" + "\n" + "Ausloesender Melder: " + obj.common.name.substr(0, obj.common.name.indexOf('.')),
                                  sound: "siren",
                                  priority: 2,
                                  retry: 60,
                                  expire: 3600
                               }); 
                              }                
                          }); 
                          

                          setState("Feueralarm.textALARM", textALARM.join(', '));
                          }

                          ! cacheSelectorSTATE.on(function(obj) {
                          melderCheck(obj);
                          });

                          
                          was, wie gesagt nicht funktioniert, aber mich schleicht, als hätte ich das mit den Funktionsgruppen nicht verstanden (siehe meine fragen oben nach den States).
                          
                          Also: muss in die Funktionsgruppen der Channel (in diesem Fall Kanal 1) oder der State an sich.
                          
                          Zur Verdeutlichung: Meine "Rauchmelder" Gruppe sieht aus wie im Bild unten. Ist das richtig, oder muss es eher sein wie in der Gruppe "Test" in die ich nun mal nur den eigentlichen Sate Datenpunkt gelegt habe.
                          
                          ![](https://cdn.pbrd.co/images/HZMNAgN.png)~~![](</s><URL url=)https://cdn.pbrd.co/images/HZMNAgN.png" />~~
                          1 Reply Last reply
                          0
                          • paul53P Offline
                            paul53P Offline
                            paul53
                            wrote on last edited by
                            #13

                            Versuche es so:

                            var cacheSelectorSTATE  = $('channel[state.id=*.STATE](functions=rauchmelder)');
                            
                            

                            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

                            1 Reply Last reply
                            0
                            • F Offline
                              F Offline
                              f0rd42
                              wrote on last edited by
                              #14

                              werde ich machen und testen, geht nur derzeit nicht.

                              das mit den States ist mir aber immer noch nicht klar (siehe meine Posts vom 05.01)

                              1 Reply Last reply
                              0
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              Support us

                              ioBroker
                              Community Adapters
                              Donate

                              447

                              Online

                              32.6k

                              Users

                              82.2k

                              Topics

                              1.3m

                              Posts
                              Community
                              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                              ioBroker Community 2014-2025
                              logo
                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Home
                              • Recent
                              • Tags
                              • Unread 0
                              • Categories
                              • Unreplied
                              • Popular
                              • GitHub
                              • Docu
                              • Hilfe