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
    549

  • 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
    #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

                        607

                        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