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. ioBroker Allgemein
  4. Adapter hm-rpc Alarm Objekte

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    550

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

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

Adapter hm-rpc Alarm Objekte

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
15 Beiträge 3 Kommentatoren 1.3k Aufrufe
  • Ä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.
  • cashC Offline
    cashC Offline
    cash
    Most Active
    schrieb am zuletzt editiert von
    #1

    Ich habe da mal eine Frage bezüglich der Objektfelder *.ALARM

    Es gibt dort ja z.B. neben unreach noch ein unreach_alarm. Das gleiche für alle anderen Fehlerfelder. Immer gibt es ein Pendant mit Alarm angehängt.

    Wenn ich die FAQ bei GitHub richtig verstehe kann dieses Feld 0 (kein Fehler), 1 (Fehler) und 2 (Acknowledged) sein.

    Nur verstehe ich nicht wieso? Um sich ein Script mit Servicemeldungen zu erstellen ist ja eigentlich nur "1" interessant.

    Nach dem Motto wenn Feld = 1 dann sende Push. Zumal das Feld doch auch nur noch zwischen 1 und 2 wechseln wenn einmal ein Fehler aufgetreten ist oder? Bei mir sind nur bei den Homematic Komponenten die noch nie ein unreach hatten das Feld mit 0 gefühlt. Andere (selbst wenn die unreach Meldung gefühlt 1 Jahr her ist steht auf 2. Wo ist also der Sinn dieser 3 Stati und warum wurden die Felder gedoppelt (unreach und unreach_Alarm? Bitte nicht falsch verstehen. Ich will nur verstehen wo der Sinn dahinter ist. Insgesamt bin ich sehr froh das derzeit intensiv am Adapter gearbeitet. Vor der aktuellen Version waren alle meine Abfrageversuchen via Script nicht deckungsgleich mit den Servicemeldungen meiner CCU.

    2. Frage wäre es nicht sinnvoll im Feld "LOWBAT" noch eine Info zu haben um welchen Typ es sich handelt? Somit könnte man nicht nur Abfragen das eine Batteriemeldung vorliegt sondern auch welche Batterie nötig ist. Es gibt ja im Homematic-Forum das All-Inc-Script von Alchy welches diese Info auch liefert. So stelle ich mir das für ioBroker auch vor.

    Wenn ich also z. B. bei einem Fensterkontakt an die Info komme das es ein HM-Sec-RHS ist kann ich im Script hinterlegen das dort 2 x LR44 (AG13) brauche usw.

    1 Antwort Letzte Antwort
    0
    • foxriver76F Offline
      foxriver76F Offline
      foxriver76
      Developer
      schrieb am zuletzt editiert von
      #2

      Zu 1: es gab die Alarmmeldungen schon zuvor allerdings aufgrund einer finde ich falschen Inplementierung nur wenn man eine rfd Instanz hatte. Und auch die HmIP Alarmmeldungen wurden dann fälschlicherweise in der rfd angelegt oder wenn keine rfd existiert dann gar nicht.

      Zudem war der Alarm true oder false, jedoch liefert die CCU für die Alarme (Servicemeldungen): 0 für keine bekannt, 1 für aktuell und 2 für bestätigt. Wobei der timestamp des letztens alarms allerdings bei 2 erhalten bleibt siehe FAQ. Vorher war es so dass der Alarm bei 1 und 2 auf true geblieben ist, was mMn keinen Sinn gemacht hat. Für Details zu meinem Gedankengang siehe: https://github.com/ioBroker/ioBroker.hm-rega/issues/50

      Videotutorials & mehr

      Hier könnt ihr mich unterstützen.

      1 Antwort Letzte Antwort
      0
      • cashC Offline
        cashC Offline
        cash
        Most Active
        schrieb am zuletzt editiert von
        #3

        @foxriver76:

        Zu 1: es gab die Alarmmeldungen schon zuvor allerdings aufgrund einer finde ich falschen Inplementierung nur wenn man eine rfd Instanz hatte. Und auch die HmIP Alarmmeldungen wurden dann fälschlicherweise in der rfd angelegt oder wenn keine rfd existiert dann gar nicht. `

        Das ist mir auch aufgefallen. Erst durch Deinen Eintrag auf Github hin habe ich bei mir nochmal genauer geschaut. Endlich kann man alle Servicemeldungen auch über iobroker verarbeiten und sich melden lassen. Schon alleine dafür ein riesen Dank.

        Nur um es abschließend aber nochmal zu wissen: Der Wert 0 ist nur so lange dort zu finden bis einmal ein Fehler auftritt. Danach nie mehr?

        So dürfte vemutlich bei jedem LOWBAT_ALRAM spätestes nach 2 Jahren Nutzung nie mehr eine 0 dort erscheinen?

        Was sagst Du denn zu meinen 2. Punkt?

        1 Antwort Letzte Antwort
        0
        • foxriver76F Offline
          foxriver76F Offline
          foxriver76
          Developer
          schrieb am zuletzt editiert von
          #4

          Also nur so empirisch: ich glaube bei mir wurden nach einem CCU Neustart die Meldungen von 2 auf 0 gesetzt. Die Nummern kommen so von der CCU, wenn du näheres zum Verhalten herausfindest nur her damit.

          Zu 2: klingt interessant, allerdings eher was für ein externes Skript finde ich. Außer du weißt eine Möglichkeit den Batterietyp automatisiert aus der CCU abzufragen. So wie es klingt möchtest du jedoch manuell die Typen pflegen.

          Videotutorials & mehr

          Hier könnt ihr mich unterstützen.

          1 Antwort Letzte Antwort
          0
          • cashC Offline
            cashC Offline
            cash
            Most Active
            schrieb am zuletzt editiert von
            #5

            Externes Script ist klar. Nur dazu muss man halt abfragen können wenn eine LOWBAT Meldung kommt von welchen Typ der Sensor ist. Der Name oder die Seriennr (die derzeit als einzige Info vorhanden ist) sind da ja eher nicht hilfreich. Einzig die Info wie z. B. HM-Sec-RHS würden hier helfen. Abfragbar sollte das auf jeden Fall sein. Bei den Objekten im ioBroker unter hm-rpc-meta sind sie ja.

            Per Homematic Script geht das auch. Wie genau weiß ich leider nicht. Sollte irgendwie mit HssType() funktionen?

            1 Antwort Letzte Antwort
            0
            • foxriver76F Offline
              foxriver76F Offline
              foxriver76
              Developer
              schrieb am zuletzt editiert von
              #6

              Im Objekt stehen doch die Typinformationen drin: obj.native.TYPE

              {
                "_id": "hm-rpc.0.OEQ0313814",
                "type": "device",
                "common": {
                  "name": "Keymatic Haustür",
                  "icon": "/icons/14_hm-sec-key_thumb.png"
                },
                "native": {
                  "ADDRESS": "OEQ0313814",
                  "CHILDREN": [
                    "OEQ0313814:0",
                    "OEQ0313814:1"
                  ],
                  "FIRMWARE": "2.5",
                  "FLAGS": 1,
                  "INTERFACE": "PEQ0174423",
                  "PARAMSETS": [
                    "MASTER"
                  ],
                  "PARENT": "",
                  "RF_ADDRESS": 5718645,
                  "ROAMING": 0,
                  "RX_MODE": 2,
                  "TYPE": "HM-Sec-Key-S",
                  "UPDATABLE": 0,
                  "VERSION": 7
                },
                "from": "system.adapter.hm-rega.0",
                "ts": 1548444115252,
                "acl": {
                  "object": 1636,
                  "owner": "system.user.admin",
                  "ownerGroup": "system.group.administrator"
                }
              }
              
              

              Videotutorials & mehr

              Hier könnt ihr mich unterstützen.

              1 Antwort Letzte Antwort
              0
              • cashC Offline
                cashC Offline
                cash
                Most Active
                schrieb am zuletzt editiert von
                #7

                Das stimmt. Nur der Auslöser ist bei einer LOWBAT Meldung doch dieser Datenpunkt?

                Ich frage mit

                var cacheSelectorLOWBAT  = $('channel[state.id=hm-rpc.0.*.0.LOWBAT_ALARM$]');
                

                Ich glaube da liefert mir obj.native.TYPE nichts. Werde das aber nochmal testen. Ansonsten wäre es halt perfekt wenn dieser TYPE auch unter LOWBAT_ALARM auftauchen würde.

                1 Antwort Letzte Antwort
                0
                • cashC Offline
                  cashC Offline
                  cash
                  Most Active
                  schrieb am zuletzt editiert von
                  #8

                  Kriege ein undefined wenn ich es versuche:

                  ! ````
                  var logging = true;
                  var debugging = true;
                  ! //var _device = 'All';
                  var cacheSelectorLOWBAT = $('channel[state.id=hm-rpc.0.*.0.LOWBAT_ALARM$]');
                  ! function countLowbat(obj) {
                  // Setzt die Zähler vor dem Durchlauf aller Elemente *.LOWBAT auf 0
                  var moeglicheLOWBAT = 0;
                  var LOWBAT = 0;
                  var textLOWBAT = [];

                  cacheSelectorLOWBAT.each(function (id, i) {                         // Schleife für jedes gefundenen Element *.LOWBAT
                      var status = getState(id).val;                                  // Zustand *.LOWBAT abfragen (jedes Element)
                      var obj    = getObject(id);
                      var Bezeichnung =  getObject(id).common.name.substr(0, obj.common.name.indexOf(':'));
                      var ID_Name = id.split('.')[2];
                      var test = obj.native.TYPE
                      if (status === true) {      // wenn Zustand = true, dann wird die Anzahl der Geräte hochgezählt
                          ++LOWBAT;
                          textLOWBAT.push(ID_Name + ' ' +Bezeichnung);                           // Zu Array hinzufügen
                          _message_tmp = _message_tmp +ID_Name + ' ' +Bezeichnung+'\n';
                  
                      }  
                      ++moeglicheLOWBAT;                                        // Zählt die Anzahl der vorhandenen Geräte unabhängig vom Status
                      if(debugging){
                          log('Geräte Nr. ' + i + ': ' +ID_Name +' '+ Bezeichnung + ': ' + status +test);
                      }
                  
                  }); 
                  

                  ! // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon LOWBAT zutreffend) ausgegeben
                  if(LOWBAT > 0){
                  if(logging){
                  log('Anzahl möglicher Geräte mit Batteriewarnung ' + moeglicheLOWBAT +' Stück, davon Geräte mit LOWBAT: '+LOWBAT + ' Stück');
                  log('Betroffene Geräte: ' + textLOWBAT.join(', '));

                     }
                  
                  }
                  

                  }

                  ! //beim Start
                  countLowbat();
                  ! ````

                  1 Antwort Letzte Antwort
                  0
                  • foxriver76F Offline
                    foxriver76F Offline
                    foxriver76
                    Developer
                    schrieb am zuletzt editiert von
                    #9

                    Ja weil das nur im Objekt des Channels drin steht, probier es mal so:

                    on({id: 'hm-rpc.1.000393C99B9EDF.0.LOW_BAT_ALARM', val: 1, ack: true}, obj => {
                        getObject(obj.id.substring(0, obj.id.lastIndexOf('.') - 2), (err, _obj) => {
                            log(`Batterie von ${_obj.common.name} (${_obj.native.TYPE})  leer`, 'warn');
                        });
                    });
                    

                    Videotutorials & mehr

                    Hier könnt ihr mich unterstützen.

                    1 Antwort Letzte Antwort
                    0
                    • foxriver76F Offline
                      foxriver76F Offline
                      foxriver76
                      Developer
                      schrieb am zuletzt editiert von
                      #10

                      Ich habe diesbezüglich noch Fixes vorgenommen in REGA und RPC. RPC ignoriert nun den stateChange (bestätigen von Servicemeldungen) was vorher zu einer Fehlermeldung geführt hat. Und Rega kann jetzt auch für alle anderen Typen als rfd die Servicemeldungen bestätigen, da war noch ein kleiner Bug drin. Entsprechend REGA 2.2.1, RPC 1.9.5

                      Videotutorials & mehr

                      Hier könnt ihr mich unterstützen.

                      1 Antwort Letzte Antwort
                      0
                      • foxriver76F Offline
                        foxriver76F Offline
                        foxriver76
                        Developer
                        schrieb am zuletzt editiert von
                        #11

                        @cash:

                        Kriege ein undefined wenn ich es versuche:

                        ! ````
                        var logging = true;
                        var debugging = true;
                        ! //var _device = 'All';
                        var cacheSelectorLOWBAT = $('channel[state.id=hm-rpc.0.*.0.LOWBAT_ALARM$]');
                        ! function countLowbat(obj) {
                        // Setzt die Zähler vor dem Durchlauf aller Elemente *.LOWBAT auf 0
                        var moeglicheLOWBAT = 0;
                        var LOWBAT = 0;
                        var textLOWBAT = [];

                        cacheSelectorLOWBAT.each(function (id, i) {                         // Schleife für jedes gefundenen Element *.LOWBAT
                            var status = getState(id).val;                                  // Zustand *.LOWBAT abfragen (jedes Element)
                            var obj    = getObject(id);
                            var Bezeichnung =  getObject(id).common.name.substr(0, obj.common.name.indexOf(':'));
                            var ID_Name = id.split('.')[2];
                            var test = obj.native.TYPE
                            if (status === true) {      // wenn Zustand = true, dann wird die Anzahl der Geräte hochgezählt
                                ++LOWBAT;
                                textLOWBAT.push(ID_Name + ' ' +Bezeichnung);                           // Zu Array hinzufügen
                                _message_tmp = _message_tmp +ID_Name + ' ' +Bezeichnung+'\n';
                               
                             
                            }  
                            ++moeglicheLOWBAT;                                        // Zählt die Anzahl der vorhandenen Geräte unabhängig vom Status
                            if(debugging){
                                log('Geräte Nr. ' + i + ': ' +ID_Name +' '+ Bezeichnung + ': ' + status +test);
                            }
                                                                         
                        }); 
                        

                        ! // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon LOWBAT zutreffend) ausgegeben
                        if(LOWBAT > 0){
                        if(logging){
                        log('Anzahl möglicher Geräte mit Batteriewarnung ' + moeglicheLOWBAT +' Stück, davon Geräte mit LOWBAT: '+LOWBAT + ' Stück');
                        log('Betroffene Geräte: ' + textLOWBAT.join(', '));

                           }
                           
                        }
                        

                        }

                        ! //beim Start
                        countLowbat();
                        ! ```` `

                        const logging = true;
                        const debugging = true;
                        
                        //var _device = 'All'; 
                        const cacheSelectorLOWBAT  = $('channel[state.id=hm-rpc.0.*.0.LOWBAT_ALARM$]');
                        
                        function countLowbat(obj) {
                           // Setzt die Zähler vor dem Durchlauf aller Elemente *.LOWBAT auf 0
                           let moeglicheLOWBAT = 0;
                           let LOWBAT = 0;
                           const textLOWBAT      = [];
                        
                            cacheSelectorLOWBAT.each(function (id, i) {                         // Schleife für jedes gefundenen Element *.LOWBAT
                                const status = getState(id).val;                                  // Zustand *.LOWBAT abfragen (jedes Element)
                                const obj    = getObject(id);
                                const Bezeichnung =  getObject(id).common.name.substr(0, obj.common.name.indexOf(':'));
                                const ID_Name = id.split('.')[2];
                                const test = getObject(id.substring(0, id.lastIndexOf('.') - 2)).native.TYPE;
                                if (status === true) {      // wenn Zustand = true, dann wird die Anzahl der Geräte hochgezählt
                                    ++LOWBAT;
                                    textLOWBAT.push(ID_Name + ' ' +Bezeichnung);                           // Zu Array hinzufügen
                                    const _message_tmp = _message_tmp + ID_Name + ' ' +Bezeichnung+'\n';
                                }  
                                ++moeglicheLOWBAT;                                        // Zählt die Anzahl der vorhandenen Geräte unabhängig vom Status
                                if(debugging){
                                    log('Geräte Nr. ' + i + ': ' + ID_Name + ' '+ Bezeichnung + ': ' + status + ' ' + test);
                                }
                        
                            }); 
                        
                            // Schleife ist durchlaufen. Im Log wird der aktuelle Status (Anzahl, davon LOWBAT zutreffend) ausgegeben
                            if(LOWBAT > 0){
                               if(logging){
                                    log('Anzahl möglicher Geräte mit Batteriewarnung ' + moeglicheLOWBAT +' Stück, davon Geräte mit LOWBAT: '+LOWBAT + ' Stück');
                                    log('Betroffene Geräte: ' + textLOWBAT.join(', '));
                        
                               }
                        
                            }
                        
                        }
                        
                        //beim Start
                        countLowbat();
                        

                        Videotutorials & mehr

                        Hier könnt ihr mich unterstützen.

                        1 Antwort Letzte Antwort
                        0
                        • cashC Offline
                          cashC Offline
                          cash
                          Most Active
                          schrieb am zuletzt editiert von
                          #12

                          So noch etwas probiert und es sieht vielversprechend aus.

                          1407_2be706a6-0d39-42cd-979c-9556322d2d00.jpeg

                          So sieht die Meldung derzeit aus. Noch ein wenig Feintuning dann veröffentliche ich das Script mal. Wenn alles klappt sollte dann bei einer LOWBAt Meldung eine Push verschickt werden mit der Info welche Batterie man braucht.

                          Deine Verbesserung guck ich mir mal an. Verstehe ich das richtig das ich wenn ich den State sticky_unread_Alarm auf 2 in iobroker setze die Servicemeldung in der ccu bestätige?

                          Das wäre perfekt. Die anderen Meldungen verschwinden ja sowieso automatisch…

                          1 Antwort Letzte Antwort
                          0
                          • foxriver76F Offline
                            foxriver76F Offline
                            foxriver76
                            Developer
                            schrieb am zuletzt editiert von
                            #13

                            Ja Meldungen kannst du bestätigen damit, sogar wenn in der CCU die Schaltfläche ausgegraut ist soweit ich weiß

                            Videotutorials & mehr

                            Hier könnt ihr mich unterstützen.

                            1 Antwort Letzte Antwort
                            0
                            • E Offline
                              E Offline
                              excalibur270
                              schrieb am zuletzt editiert von
                              #14

                              @cash:

                              So noch etwas probiert und es sieht vielversprechend aus.

                              2BE706A6-0D39-42CD-979C-9556322D2D00.jpeg

                              So sieht die Meldung derzeit aus. Noch ein wenig Feintuning dann veröffentliche ich das Script mal. Wenn alles klappt sollte dann bei einer LOWBAt Meldung eine Push verschickt werden mit der Info welche Batterie man braucht.

                              Deine Verbesserung guck ich mir mal an. Verstehe ich das richtig das ich wenn ich den State sticky_unread_Alarm auf 2 in iobroker setze die Servicemeldung in der ccu bestätige?

                              Das wäre perfekt. Die anderen Meldungen verschwinden ja sowieso automatisch… `
                              Das wäre super wenn du das Script veröffentlichst.

                              1 Antwort Letzte Antwort
                              0
                              • cashC Offline
                                cashC Offline
                                cash
                                Most Active
                                schrieb am zuletzt editiert von
                                #15

                                Ich habe das Script unter

                                viewtopic.php?f=21&t=21651

                                veröffentlicht.

                                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
                                FAQ Cloud / IOT
                                HowTo: Node.js-Update
                                HowTo: Backup/Restore
                                Downloads
                                BLOG

                                490

                                Online

                                32.7k

                                Benutzer

                                82.5k

                                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