Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Servicemeldungen - All inclusive für Homematic -

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Servicemeldungen - All inclusive für Homematic -

    This topic has been deleted. Only users with topic management privileges can see it.
    • dslraser
      dslraser Forum Testing Most Active last edited by

      okay[emoji16]

      1 Reply Last reply Reply Quote 0
      • cash
        cash Most Active last edited by

        @dslraser

        Bitte mal unter Objekte nach folgenden Sachen filtern:

        U_SOURCE_FAIL

        USBH_POWERFAIL

        ERROR_SABOTAGE

        STICKY_SABOTAGE

        ERROR_REDUCED

        ERROR_NON_FLAT_POSITIONING

        ERROR_SABOTAGE

        SABOTAGE (solltest Du haben unter 0)

        LOW_BAT (solltest Du haben unter 0)

        Falls Du Treffer hast würde mich interessieren welche Geräte das sind und unter welchen Kanal der Treffer ist.

        Filtern einfach:

        ! 1407_bildschirmfoto_2019-02-02_um_22.19.20.png

        1 Reply Last reply Reply Quote 0
        • dslraser
          dslraser Forum Testing Most Active last edited by

          Ich habe nur Treffer von diesen beiden…:(alle anderen Suchbegriffe bleiben leer)
          3822_bildschirmfoto_2019-02-02_um_22.32.24.png
          3822_bildschirmfoto_2019-02-02_um_22.32.45.png

          1 Reply Last reply Reply Quote 0
          • cash
            cash Most Active last edited by

            was hast Du unter hm.rpc.0 und hm.rpc.1?

            Unter 0 sind die IP-Geräte und unter 1 normale Homematic? Oder ist das Cuxd oder virtuelle Gruppen?

            Werde Deine beiden Fehlermeldungen Morgen oder Übermorgen einbauen. Weiß schon wie ich das umsetze. Die Ermittlung der Batterien lagere ich aus. So kann ich es dann für LOWBAT und LOW_BAT nutzen.

            1 Reply Last reply Reply Quote 0
            • dslraser
              dslraser Forum Testing Most Active last edited by

              LOW_BAT habe ich jetzt drin

              sobald ich mehr dazu nehme werden mir wieder 0 mögliche Geräte angezeigt.

              ! ````
              // jshint maxerr:1000
              /**************************

              • Verschickt eine Pushmittteilung bei auftretenden Servicemeldungen bei Homematic-Geräten
              • 28.01.19 V1.00 Erste Version
              • 30.01.19 V1.01 Bei LowBAT Meldungen wird nun auch der Typ und somit die nötigen Batterien ermittelt
              •               UNREACH hinzugefügt
                
              •               STICKY_UNREACH hinzugefügt
                
              •               CONFIG_PENDING hinzugefügt
                
              • 31.01.19 V1.02 Pushnachricht optimiert bei LOWBAT
              • 01.02.19 V1.03 UPDATE_PENDING hinzugefügt
              •               DEVICE_IN_BOOTLOADER hinzugefügt
                
              •               ERROR hinzugefügt
                
              •               FAULT_REPORTING hinzugefügt
                
              •               Debugging erweitert
                
              • 01.02.19 V1.04 Fehler behoben bei ERROR und FAULT_REPORTING
              • 02.02.19 V1.05 Status Texte für ERRPR und FAULT_Reporting hinzugefügt
                Pushmitteilung optimiert für ERROR und FAULT_Reporting
                Anpassung Debugtexte
                Prio ist pro Fehlertyp einstellbar
                **************************/
                var logging = true;
                var debugging = true;
                var sendpush = true;
                var autoAck = false; //Löschen bestätigbarer Kommunikationsstörungen (true = an, false = aus)

              ! //pro Fehlertyp kann eine andere Prio genutzt werden
              var prio_LOWBAT = 0;
              var prio_UNREACH = 0;
              var prio_STICKY_UNREACH = 0;
              var prio_CONFIG_PENDING = 0;
              var prio_UPDATE_PENDING = 0;
              var prio_DEVICE_IN_BOOTLOADER = 0;
              var prio_ERROR = 0;
              var prio_FAULT_REPORTING = 0;
              ! var _prio;
              var _titel;
              var _message;
              var _device = 'TPhone';
              //var _device = 'All';
              ! //Ab hier eigentliches Script
              var cacheSelectorLOWBAT = $('channel[state.id=hm-rpc.0..0.LOW_BAT_ALARM$]');
              var cacheSelectorUNREACH = $('channel[state.id=hm-rpc.0.
              .0.UNREACH_ALARM$]');
              var cacheSelectorSTICKY_UNREACH = $('channel[state.id=hm-rpc.0..0.STICKY_UNREACH_ALARM$]');
              var cacheSelectorCONFIG_PENDING = $('channel[state.id=hm-rpc.0.
              .0.CONFIG_PENDING_ALARM$]');
              var cacheSelectorUPDATE_PENDING = $('channel[state.id=hm-rpc.0..0.CONFIG_PENDING_ALARM$]');
              var cacheSelectorDEVICE_IN_BOOTLOADER = $('channel[state.id=hm-rpc.0.
              .0.DEVICE_IN_BOOTLOADER_ALARM$]');
              var cacheSelectorERROR = $('channel[state.id=hm-rpc.0..1.ERROR$]');
              var cacheSelectorFAULT_REPORTING = $('channel[state.id=hm-rpc.0.
              .4.FAULT_REPORTING$]');
              ! function send_pushover_V4 (_device, _message, _titel, _prio) {
              var pushover_Instanz = 'pushover.0';
              if (_prio === 0){pushover_Instanz = 'pushover.0'}
              else if (_prio == 1){pushover_Instanz = 'pushover.1'}
              else if (_prio == 2){pushover_Instanz = 'pushover.2'}
              else {pushover_Instanz = 'pushover.3'}
              sendTo(pushover_Instanz, {
              device: _device,
              message: _message,
              title: _titel,
              priority: _prio,
              retry: 60,
              expire: 600,
              html: 1
              });
              }
              ! function LOWBAT(obj) {
              // Setzt die Zähler vor dem Durchlauf aller Elemente *.LOWBAT auf 0
              var Gesamt = 0;
              var Betroffen = 0;
              var text = [];
              var _message_tmp = ' ';

              if (obj) {
              log('Auslösender Aktor: ' + obj.id + ': ' + obj.newState.val); // Info im Log, welcher Zustand sich geändert hat
              } else {
              log('Ausgelöst durch Scriptneustart.');
              }

              ! cacheSelectorLOWBAT.each(function (id, i) { // Schleife für jedes gefundenen Element *.LOWBAT
              var status = getState(id).val; // Zustand *.LOWBAT abfragen (jedes Element)
              var status_text;
              if(status === 0){
              status_text = 'Batterie ok';
              }
              else if (status == 1){
              status_text = 'Batterie niedrig';
              }
              else if (status == 2){
              status_text = 'Batterie ok';
              }
              var obj = getObject(id);
              var common_name = getObject(id).common.name.substr(0, obj.common.name.indexOf(':'));
              var id_name = id.split('.')[2];
              var datum = formatDate(getState(id).lc, "TT.MM.JJ SS:mm:ss");
              var datum_neu;
              if(datum < '01.01.71 01:00:00'){datum_neu = '-';}else{datum_neu = datum +' Uhr';}
              var native_type = getObject(id.substring(0, id.lastIndexOf('.') - 2)).native.TYPE;
              var Batterie;
              var cr2016 = 'HM-RC-4,HM-RC-4-B,HM-RC-Key3,HM-RC-Key3-B,HM-RC-P1,HM-RC-Sec3,HM-RC-Sec3-B,ZEL STG RM HS 4';
              var cr2032 = 'HM-PB-2-WM,HM-PB-4-WM,HM-PBI-4-FM,HM-SCI-3-FM,HM-Sec-TiS,HM-SwI-3-FM,HmIP-FCI1';
              var lr14x2 = 'HM-Sec-Sir-WM,HM-OU-CFM-TW';
              var lr44x2 = "HM-Sec-SC,HM-Sec-SC2,HM-Sec-SC-2,HM-Sec-RHS";
              var lr6x2 = "HM-CC-VD,HM-CC-RT-DN,HM-Sec-WDS,HM-Sec-WDS-2,HM-CC-TC,HM-Dis-TD-T,HB-UW-Sen-THPL-I,HM-TC-IT-WM-W-EU,HM-WDS40-TH-I,HM-WDS40-TH-I-2,HM-WDS10-TH-O,HmIP-SMI,HMIP-eTRV,HM-WDS30-OT2-SM-2,HmIP-SMO,HmIP-SMO-A,HmIP-SPI,HmIP-eTRV-2,HmIP-SPDR,HmIP-SWD";
              var lr6x3 = "HmIP-SWO-PL,HM-Sec-MDIR,HM-Sec-MDIR-2,HM-Sec-SD,HM-Sec-Key,HM-Sec-Key-S,HM-Sec-Key-O,HM-Sen-Wa-Od,HM-Sen-MDIR,HM-Sen-MDIR-O,HM-Sen-MDIR-O-2,HM-WDS100-C6-O,HM-WDS100-C6-O-2,HM-WDS100-C6-O-2,HmIP-ASIR,HmIP-SWO-B";
              var lr6x4 = "HM-CCU-1,HM-ES-TX-WM,HM-WDC7000";
              var lr3x1 = "HM-RC-4-2,HM-RC-4-3,HM-RC-Key4-2,HM-RC-Key4-3,HM-RC-Sec4-2,HM-RC-Sec4-3,HM-Sec-RHS-2,HM-Sec-SCo,HmIP-KRC4,HmIP-KRCA,HmIP-RC8,HmIP-SRH,HMIP-SWDO";
              var lr3x2 = "HM-Dis-WM55,HM-Dis-EP-WM55,HM-PB-2-WM55,HM-PB-2-WM55-2,HM-PB-6-WM55,HM-PBI-2-FM,HM-RC-8,HM-Sen-DB-PCB,HM-Sen-EP,HM-Sen-MDIR-SM,HM-Sen-MDIR-WM55,HM-WDS30-T-O,HM-WDS30-OT2-SM,HmIP-STH,HmIP-STHD,HMIP-WRC2,HMIP-WRC6,HMIP-WTH,HMIP-WTH-2,HmIP-SAM,HmIP-SLO,HMIP-SWDO-I,HmIP-FCI6";
              var lr3x3 = "HM-PB-4Dis-WM,HM-PB-4Dis-WM-2,HM-RC-Dis-H-x-EU,HM-Sen-LI-O";
              var lr3x3a = "HM-RC-19,HM-RC-19-B,HM-RC-12,HM-RC-12-B,HM-RC-12-W";
              var block9 = "HM-LC-Sw1-Ba-PCB,HM-LC-Sw4-PCB,HM-MOD-EM-8,HM-MOD-Re-8,HM-Sen-RD-O,HM-OU-CM-PCB,HM-LC-Sw4-WM";
              var fixed = "HM-Sec-SD-2,HMIP-SWSD";
              var recharge = "HM-Sec-Win,HM-Sec-SFA-SM";
              var Treffer1 = cr2016.search(native_type);
              var Treffer2 = cr2032.search(native_type);
              var Treffer3 = lr14x2.search(native_type);
              var Treffer4 = lr44x2.search(native_type);
              var Treffer5 = lr6x2.search(native_type);
              var Treffer6 = lr6x3.search(native_type);
              var Treffer7 = lr6x4.search(native_type);
              var Treffer8 = lr3x1.search(native_type);
              var Treffer9 = lr3x2.search(native_type);
              var Treffer10 = lr3x3.search(native_type);
              var Treffer11 = lr3x3a.search(native_type);
              var Treffer12 = block9.search(native_type);
              var Treffer13 = fixed.search(native_type);
              var Treffer14 = recharge.search(native_type);
              if(Treffer1 >= 0){Batterie = '1x CR2016';}
              else if(Treffer2 >= 0){Batterie = '1x CR2032';}
              else if(Treffer3 >= 0){Batterie = '2x LR14';}
              else if(Treffer4 >= 0){Batterie = '2x LR44/AG13';}
              else if(Treffer5 >= 0){Batterie = '2x LR6/AA';}
              else if(Treffer6 >= 0){Batterie = '3x LR6/AA';}
              else if(Treffer7 >= 0){Batterie = '4x LR6/AA';}
              else if(Treffer8 >= 0){Batterie = '1x LR3/AAA';}
              else if(Treffer9 >= 0){Batterie = '2x LR3/AAA';}
              else if(Treffer10 >= 0){Batterie = '3x LR3/AAA';}
              else if(Treffer11 >= 0){Batterie = '3x AAA Akkus - bitte laden';}
              else if(Treffer12 >= 0){Batterie = '9Volt Block leer oder unbestimmt';}
              else if(Treffer13 >= 0){Batterie = 'Festbatterie leer';}
              else if(Treffer14 >= 0){Batterie = 'Akku entladen - bitte aufladen';}
              else{Batterie = 'unbekannt';}
              var meldungsart = id.split('.')[4];
              //const native_type = getObject(id.substring(0, id.lastIndexOf('.') - 2)).native.TYPE;

                  if (status === 1) {      // wenn Zustand = true, dann wird die Anzahl der Geräte hochgezählt
                      ++Betroffen;
                      text.push(id_name + ' ' +common_name);                           // Zu Array hinzufügen
                      _message_tmp = _message_tmp +common_name +' ('+id_name +')' + ' - Spannung Batterien/Akkus gering. '+Batterie+'\n';
              
                  }  
                  ++Gesamt;                                        // Zählt die Anzahl der vorhandenen Geräte unabhängig vom Status
                  if(debugging){
                      log(' Geräte Nr. ' +i + ': Serien-Nr. ' +id_name +' --- Name: '+ common_name +' --- '+native_type +' --- Typ: '+meldungsart +' --- Status: ' +status +' ' +status_text +' --- seit: '+datum_neu +' ---' +Batterie);
                  }
              
              }); 
              

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

                 }
                 //Push verschicken
                  if(sendpush){
                      _prio = prio_LOWBAT;
                      _titel = 'Servicemeldung';
                      _message = 'Batteriewarnung ausgelöst von: '+'\n';
                      _message = _message +  _message_tmp;
              
                      //_message =  "Ausgelöst von: "+'test' +"test2";
                      send_pushover_V4(_device, _message, _titel, _prio);
                  }
              }
              else{
                  if(debugging){
                      log('Anzahl möglicher Geräte mit Batteriewarnung ' +Gesamt +' Stück, davon Geräte mit LOWBAT: '+Betroffen + ' Stück.');
              
                  }
              }
              

              }

              ! function UNREACH(obj) {
              // Setzt die Zähler vor dem Durchlauf aller Elemente *.LOWBAT auf 0
              var Gesamt = 0;
              var Betroffen = 0;
              var text = [];
              var _message_tmp = ' ';

              if (obj) {
              log('Auslösender Aktor: ' + obj.id + ': ' + obj.newState.val); // Info im Log, welcher Zustand sich geändert hat
              } else {
              log('Ausgelöst durch Scriptneustart.');
              }

              ! cacheSelectorUNREACH.each(function (id, i) { // Schleife für jedes gefundenen Element *.LOWBAT
              var status = getState(id).val; // Zustand *.LOWBAT abfragen (jedes Element)
              var status_text;
              if(status === 0){
              status_text = status;
              }
              else {
              status_text = status;
              }

                  var obj    = getObject(id);
                  var common_name =  getObject(id).common.name.substr(0, obj.common.name.indexOf(':'));
                  var id_name = id.split('.')[2];
                  var meldungsart = id.split('.')[4];
                  var datum = formatDate(getState(id).lc, "TT.MM.JJ SS:mm:ss");
                  var datum_neu;
                  if(datum < '01.01.71 01:00:00'){datum_neu = '-';}else{datum_neu = datum +' Uhr';}
                  var native_type = getObject(id.substring(0, id.lastIndexOf('.') - 2)).native.TYPE;
              
                  if (status === 1) {      // wenn Zustand = true, dann wird die Anzahl der Geräte hochgezählt
                      ++Betroffen;
                      text.push(id_name + ' ' +common_name);                           // Zu Array hinzufügen
                      _message_tmp = _message_tmp +common_name +' ('+id_name +')' + ' - Kommunikation gestört. '+'\n';
              
                  }  
                  ++Gesamt;                                        // Zählt die Anzahl der vorhandenen Geräte unabhängig vom Status
                  if(debugging){
                      log(' Geräte Nr. ' +i + ': Serien-Nr. ' +id_name +' --- Name: '+ common_name +' --- '+native_type +' --- Typ: '+meldungsart +' --- Status: ' +status +' ' +status_text +' --- seit: '+datum_neu);
                  }
              
              }); 
              

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

                 }
                 //Push verschicken
                  if(sendpush){
                      _prio = prio_UNREACH;
                       _titel = 'Servicemeldung';
                      _message = 'Kommunikation gestört von: '+'\n';
                      _message = _message +  _message_tmp;
              
                      //_message =  "Ausgelöst von: "+'test' +"test2";
                      send_pushover_V4(_device, _message, _titel, _prio);
                  }
              }
              else{
                  if(debugging){
                      log('Anzahl möglicher Geräte mit UNREACH: ' +Gesamt +' Stück, davon Geräte mit UNREACH: '+Betroffen + ' Stück.');
              
                  }
              }
              

              }

              ! function STICKY_UNREACH(obj) {
              // Setzt die Zähler vor dem Durchlauf aller Elemente *.LOWBAT auf 0
              var Gesamt = 0;
              var Betroffen = 0;
              var text = [];
              var _message_tmp = ' ';

              if (obj) {
              log('Auslösender Aktor: ' + obj.id + ': ' + obj.newState.val); // Info im Log, welcher Zustand sich geändert hat
              } else {
              log('Ausgelöst durch Scriptneustart.');
              }

              ! cacheSelectorSTICKY_UNREACH.each(function (id, i) { // Schleife für jedes gefundenen Element *.LOWBAT
              var status = getState(id).val; // Zustand *.LOWBAT abfragen (jedes Element)
              var status_text;
              if(status === 0){
              status_text = status;
              }
              else {
              status_text = status;
              }
              var obj = getObject(id);
              var common_name = getObject(id).common.name.substr(0, obj.common.name.indexOf(':'));
              var id_name = id.split('.')[2];
              var meldungsart = id.split('.')[4];
              var datum = formatDate(getState(id).lc, "TT.MM.JJ SS:mm:ss");
              var datum_neu;
              if(datum < '01.01.71 01:00:00'){datum_neu = '-';}else{datum_neu = datum +' Uhr';}
              var native_type = getObject(id.substring(0, id.lastIndexOf('.') - 2)).native.TYPE;

                  if (status === 1) {      // wenn Zustand = true, dann wird die Anzahl der Geräte hochgezählt
                      ++Betroffen;
                      text.push(id_name + ' ' +common_name);                           // Zu Array hinzufügen
                      if(autoAck){
                          _message_tmp = _message_tmp +common_name +' ('+id_name +')' + ' - Meldung über bestätigbare Kommunikationsstörung gelöscht. '+'\n';
                      }
                      else {
                          _message_tmp = _message_tmp +common_name +' ('+id_name +')' + ' - bestätigbare Kommunikationsstörung. '+'\n';    
                      }
              
                  }  
                  ++Gesamt;                                        // Zählt die Anzahl der vorhandenen Geräte unabhängig vom Status
                  if(debugging){
                      log(' Geräte Nr. ' +i + ': Serien-Nr. ' +id_name +' --- Name: '+ common_name +' --- '+native_type +' --- Typ: '+meldungsart +' --- Status: ' +status +' ' +status_text +' --- seit: '+datum_neu);
                  }
              
              }); 
              

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

                 }
                 //Push verschicken
                  if(sendpush){
                      _prio = 0; 
                      _titel = 'Servicemeldung';
                      _message = 'Kommunikation war gestört: '+'\n';
                      _message = _message +  _message_tmp;
              
                      //_message =  "Ausgelöst von: "+'test' +"test2";
                      send_pushover_V4(_device, _message, _titel, _prio);
                  }
              }
              else{
                  if(debugging){
                      log('Anzahl möglicher Geräte mit STICKY_UNREACH ' +Gesamt +' Stück, davon Geräte mit STICKY_UNREACH: '+Betroffen + ' Stück.');
              
                  }
              }
              

              }

              ! function CONFIG_PENDING(obj) {
              // Setzt die Zähler vor dem Durchlauf aller Elemente *.LOWBAT auf 0
              var Gesamt = 0;
              var Betroffen = 0;
              var text = [];
              var _message_tmp = ' ';

              if (obj) {
              log('Auslösender Aktor: ' + obj.id + ': ' + obj.newState.val); // Info im Log, welcher Zustand sich geändert hat
              } else {
              log('Ausgelöst durch Scriptneustart.');
              }

              ! cacheSelectorCONFIG_PENDING.each(function (id, i) { // Schleife für jedes gefundenen Element *.LOWBAT
              var status = getState(id).val; // Zustand *.LOWBAT abfragen (jedes Element)
              var status_text;
              if(status === 0){
              status_text = status;
              }
              else {
              status_text = status;
              }
              var obj = getObject(id);
              var common_name = getObject(id).common.name.substr(0, obj.common.name.indexOf(':'));
              var id_name = id.split('.')[2];
              var meldungsart = id.split('.')[4];
              var datum = formatDate(getState(id).lc, "TT.MM.JJ SS:mm:ss");
              var datum_neu;
              if(datum < '01.01.71 01:00:00'){datum_neu = '-';}else{datum_neu = datum +' Uhr';}
              var native_type = getObject(id.substring(0, id.lastIndexOf('.') - 2)).native.TYPE;

                  if (status === 1) {      // wenn Zustand = true, dann wird die Anzahl der Geräte hochgezählt
                      ++Betroffen;
                      text.push(id_name + ' ' +common_name);                           // Zu Array hinzufügen
                      _message_tmp = _message_tmp +common_name +' ('+id_name +')' + ' - Konfigurationsdaten stehen zur Übertragung an. '+'\n';
              
                  }  
                  ++Gesamt;                                        // Zählt die Anzahl der vorhandenen Geräte unabhängig vom Status
                  if(debugging){
                      log(' Geräte Nr. ' +i + ': Serien-Nr. ' +id_name +' --- Name: '+ common_name +' --- '+native_type +' --- Typ: '+meldungsart +' --- Status: ' +status +' ' +status_text +' --- seit: '+datum_neu);
                  }
              
              }); 
              

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

                 }
                 //Push verschicken
                  if(sendpush){
                      _prio = prio_UPDATE_PENDING; 
                       _titel = 'Servicemeldung';
                      _message = 'CONFIG_PENDING: '+'\n';
                      _message = _message +  _message_tmp;
              
                      //_message =  "Ausgelöst von: "+'test' +"test2";
                      send_pushover_V4(_device, _message, _titel, _prio);
                  }
              }
              else{
                  if(debugging){
                      log('Anzahl möglicher Geräte mit CONFIG_PENDING ' +Gesamt +' Stück, davon Geräte mit CONFIG_PENDING: '+Betroffen + ' Stück.');
              
                  }
              }
              

              }

              ! function UPDATE_PENDING(obj) {
              // Setzt die Zähler vor dem Durchlauf aller Elemente *.LOWBAT auf 0
              var Gesamt = 0;
              var Betroffen = 0;
              var text = [];
              var _message_tmp = ' ';

              if (obj) {
              log('Auslösender Aktor: ' + obj.id + ': ' + obj.newState.val); // Info im Log, welcher Zustand sich geändert hat
              } else {
              log('Ausgelöst durch Scriptneustart.');
              }

              ! cacheSelectorUPDATE_PENDING.each(function (id, i) { // Schleife für jedes gefundenen Element *.LOWBAT
              var status = getState(id).val; // Zustand *.LOWBAT abfragen (jedes Element)
              var status_text;
              if(status === 0){
              status_text = status;
              }
              else {
              status_text = status;
              }
              var obj = getObject(id);
              var common_name = getObject(id).common.name.substr(0, obj.common.name.indexOf(':'));
              var id_name = id.split('.')[2];
              var meldungsart = id.split('.')[4];
              var datum = formatDate(getState(id).lc, "TT.MM.JJ SS:mm:ss");
              var datum_neu;
              if(datum < '01.01.71 01:00:00'){datum_neu = '-';}else{datum_neu = datum +' Uhr';}
              var native_type = getObject(id.substring(0, id.lastIndexOf('.') - 2)).native.TYPE;

                  if (status === 1) {      // wenn Zustand = true, dann wird die Anzahl der Geräte hochgezählt
                      ++Betroffen;
                      text.push(id_name + ' ' +common_name);                           // Zu Array hinzufügen
                      _message_tmp = _message_tmp +common_name +' ('+id_name +')' + ' - Update verfügbar. '+'\n';
              
                  }  
                  ++Gesamt;                                        // Zählt die Anzahl der vorhandenen Geräte unabhängig vom Status
                  if(debugging){
                      log(' Geräte Nr. ' +i + ': Serien-Nr. ' +id_name +' --- Name: '+ common_name +' --- '+native_type +' --- Typ: '+meldungsart +' --- Status: ' +status +' ' +status_text +' --- seit: '+datum_neu);
                  }
              
              }); 
              

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

                 }
                 //Push verschicken
                  if(sendpush){
                      _prio = prio_UPDATE_PENDING; 
                       _titel = 'Servicemeldung';
                      _message = 'UPDATE_PENDING: '+'\n';
                      _message = _message +  _message_tmp;
              
                      //_message =  "Ausgelöst von: "+'test' +"test2";
                      send_pushover_V4(_device, _message, _titel, _prio);
                  }
              }
              else{
                  if(debugging){
                      log('Anzahl möglicher Geräte mit UPDATE_PENDING ' +Gesamt +' Stück, davon Geräte mit UPDATE_PENDING: '+Betroffen + ' Stück.');
              
                  }
              }
              

              }

              ! function DEVICE_IN_BOOTLOADER(obj) {
              // Setzt die Zähler vor dem Durchlauf aller Elemente *.LOWBAT auf 0
              var Gesamt = 0;
              var Betroffen = 0;
              var text = [];
              var _message_tmp = ' ';

              if (obj) {
              log('Auslösender Aktor: ' + obj.id + ': ' + obj.newState.val); // Info im Log, welcher Zustand sich geändert hat
              } else {
              log('Ausgelöst durch Scriptneustart.');
              }

              ! cacheSelectorDEVICE_IN_BOOTLOADER.each(function (id, i) { // Schleife für jedes gefundenen Element *.LOWBAT
              var status = getState(id).val; // Zustand *.LOWBAT abfragen (jedes Element)
              var status_text;
              if(status === 0){
              status_text = status;
              }
              else {
              status_text = status;
              }
              var obj = getObject(id);
              var common_name = getObject(id).common.name.substr(0, obj.common.name.indexOf(':'));
              var id_name = id.split('.')[2];
              var meldungsart = id.split('.')[4];
              var datum = formatDate(getState(id).lc, "TT.MM.JJ SS:mm:ss");
              var datum_neu;
              if(datum < '01.01.71 01:00:00'){datum_neu = '-';}else{datum_neu = datum +' Uhr';}
              var native_type = getObject(id.substring(0, id.lastIndexOf('.') - 2)).native.TYPE;

                  if (status === 1) {      // wenn Zustand = true, dann wird die Anzahl der Geräte hochgezählt
                      ++Betroffen;
                      text.push(id_name + ' ' +common_name);                           // Zu Array hinzufügen
                      _message_tmp = _message_tmp +common_name +' ('+id_name +')' + ' - Gerät startet neu. '+'\n';
              
                  }  
                  ++Gesamt;                                        // Zählt die Anzahl der vorhandenen Geräte unabhängig vom Status
                  if(debugging){
                      log(' Geräte Nr. ' +i + ': Serien-Nr. ' +id_name +' --- Name: '+ common_name +' --- '+native_type +' --- Typ: '+meldungsart +' --- Status: ' +status +' ' +status_text +' --- seit: '+datum_neu);
                  }
              
              }); 
              

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

                 }
                 //Push verschicken
                  if(sendpush){
                      _prio = prio_DEVICE_IN_BOOTLOADER; 
                       _titel = 'Servicemeldung';
                      _message = 'DEVICE_IN_BOOTLOADER: '+'\n';
                      _message = _message +  _message_tmp;
              
                      //_message =  "Ausgelöst von: "+'test' +"test2";
                      send_pushover_V4(_device, _message, _titel, _prio);
                  }
              }
              else{
                  if(debugging){
                      log('Anzahl möglicher Geräte mit Batteriewarnung ' +Gesamt +' Stück, davon Geräte mit LOWBAT: '+Betroffen + ' Stück.');
              
                  }
              }
              

              }

              ! function ERROR(obj) {
              // Setzt die Zähler vor dem Durchlauf aller Elemente *.LOWBAT auf 0
              var Gesamt = 0;
              var Betroffen = 0;
              var text = [];
              var _message_tmp = ' ';

              if (obj) {
              log('Auslösender Aktor: ' + obj.id + ': ' + obj.newState.val); // Info im Log, welcher Zustand sich geändert hat
              } else {
              log('Ausgelöst durch Scriptneustart.');
              }

              ! cacheSelectorERROR.each(function (id, i) { // Schleife für jedes gefundenen Element *.LOWBAT
              var status = getState(id).val; // Zustand *.LOWBAT abfragen (jedes Element)
              var status_text;
              var obj = getObject(id);
              var common_name = getObject(id).common.name.substr(0, obj.common.name.indexOf(':'));
              var id_name = id.split('.')[2];
              var meldungsart = id.split('.')[4];
              var datum = formatDate(getState(id).lc, "TT.MM.JJ SS:mm:ss");
              var datum_neu;
              if(datum < '01.01.71 01:00:00'){datum_neu = '-';}else{datum_neu = datum +' Uhr';}
              var native_type = getObject(id.substring(0, id.lastIndexOf('.') - 2)).native.TYPE;
              if((native_type == 'HM-Sec-RHS') || (native_type == 'HM-Sec-RHS-2') || (native_type == 'HM-Sec-SC') || (native_type == 'HM-Sec-SC-2') ||
              (native_type == 'HM-Sec-SCo') || (native_type == 'HM-Sec-MD') || (native_type == 'HM-Sec-MDIR') || (native_type == 'HM-Sec-MDIR-2')){
              if(status == 7){
              status_text = 'Sabotage';
              }
              else {
              status_text = 'ERROR mit dem Wert: ' +status;
              }
              }
              else if ((native_type=='HM-Sec-Key') || (native_type=='HM-Sec-Key-S') || (native_type=='HM-Sec-Key-O')){
              if(status == 1){
              status_text = 'Einkuppeln fehlgeschlagen';
              }
              else if(status == 2){
              status_text = 'Motorlauf abgebrochen';
              }
              else {
              status_text = 'ERROR mit dem Wert: ' +status;
              }
              }
              else if (native_type=='HM-CC-VD'){
              if(status == 1){
              status_text = 'Ventil Antrieb blockiert';
              }
              else if(status == 2){
              status_text = 'Ventil nicht montiert';
              }
              else if(status == 3){
              status_text = 'Stellbereich zu klein';
              }
              else if(status == 4){
              status_text = 'Batteriezustand niedrig';
              }
              else {
              status_text = 'ERROR mit dem Wert: ' +status;
              }
              }
              else {
              status_text = 'ERROR mit dem Wert: ' +status;
              }
              if (status > 0) { // wenn Zustand größer 0, dann wird die Anzahl der Geräte hochgezählt
              ++Betroffen;
              text.push(id_name + ' ' +common_name); // Zu Array hinzufügen
              _message_tmp = _message_tmp +common_name +' ('+id_name +')' + ' - '+status_text +'. '+'\n';

                  }  
                  ++Gesamt;                                        // Zählt die Anzahl der vorhandenen Geräte unabhängig vom Status
                  if(debugging){
                      log(' Geräte Nr. ' +i + ': Serien-Nr. ' +id_name +' --- Name: '+ common_name +' --- '+native_type +' --- Typ: '+meldungsart +' --- Status: ' +status +' ' +status_text +' --- seit: '+datum_neu);
                  }
              
              }); 
              

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

                 }
                 //Push verschicken
                  if(sendpush){
                      _prio = prio_ERROR; 
                       _titel = 'Servicemeldung';
                      _message = _message_tmp;
              
                      //_message =  "Ausgelöst von: "+'test' +"test2";
                      send_pushover_V4(_device, _message, _titel, _prio);
                  }
              }
              else{
                  if(debugging){
                      log('Anzahl möglicher Geräte mit ERROR ' +Gesamt +' Stück, davon Geräte mit ERROR: '+Betroffen + ' Stück.');
              
                  }
              }
              

              }

              ! function FAULT_REPORTING(obj) {
              // Setzt die Zähler vor dem Durchlauf aller Elemente *.LOWBAT auf 0
              var Gesamt = 0;
              var Betroffen = 0;
              var text = [];
              var _message_tmp = ' ';

              if (obj) {
              log('Auslösender Aktor: ' + obj.id + ': ' + obj.newState.val); // Info im Log, welcher Zustand sich geändert hat
              } else {
              log('Ausgelöst durch Scriptneustart.');
              }

              ! cacheSelectorFAULT_REPORTING.each(function (id, i) { // Schleife für jedes gefundenen Element *.LOWBAT
              var status = getState(id).val; // Zustand *.LOWBAT abfragen (jedes Element)
              var status_text;
              var obj = getObject(id);
              var common_name = getObject(id).common.name.substr(0, obj.common.name.indexOf(':'));
              var id_name = id.split('.')[2];
              var meldungsart = id.split('.')[4];
              var datum = formatDate(getState(id).lc, "TT.MM.JJ SS:mm:ss");
              var datum_neu;
              if(datum < '01.01.71 01:00:00'){datum_neu = '-';}else{datum_neu = datum +' Uhr';}
              var native_type = getObject(id.substring(0, id.lastIndexOf('.') - 2)).native.TYPE;
              if(native_type == 'HM-CC-RT-DN'){
              if(status === 0){
              status_text = 'keine Störung';
              }
              else if(status == 1){
              status_text = 'Ventil blockiert';
              }
              else if(status == 2){
              status_text = 'Einstellbereich Ventil zu groß';
              }
              else if(status == 3){
              status_text = 'Einstellbereich Ventil zu klein';
              }
              else if(status == 4){
              status_text = 'Kommunikationsfehler';
              }
              else if(status == 6){
              status_text = 'Spannung Batterien/Akkus gering';
              }
              else if(status == 7){
              status_text = 'Fehlstellung Ventil';
              }
              else{
              status_text = 'FAULT_REPORTING mit dem Wert: ' +status;
              }
              }
              else{
              status_text = 'FAULT_REPORTING mit dem Wert: ' +status;
              }
              if (status > 0) { // wenn Zustand größer 0, dann wird die Anzahl der Geräte hochgezählt
              ++Betroffen;
              text.push(id_name + ' ' +common_name); // Zu Array hinzufügen
              _message_tmp = _message_tmp +common_name +' ('+id_name +')' + ' - ' +status_text +'. '+'\n';

                  }  
                  ++Gesamt;                                        // Zählt die Anzahl der vorhandenen Geräte unabhängig vom Status
                  if(debugging){
                      log(' Geräte Nr. ' +i + ': Serien-Nr. ' +id_name +' --- Name: '+ common_name +' --- '+native_type +' --- Typ: '+meldungsart +' --- Status: ' +status +' ' +status_text +' --- seit: '+datum_neu);
                  }
              
              }); 
              

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

                 }
                 //Push verschicken
                  if(sendpush){
                      _prio = prio_FAULT_REPORTING; 
                       _titel = 'Servicemeldung';
                      _message = _message_tmp;
              
                      //_message =  "Ausgelöst von: "+'test' +"test2";
                      send_pushover_V4(_device, _message, _titel, _prio);
                  }
              }
              else{
                  if(debugging){
                      log('Anzahl möglicher Geräte mit FAULT_REPORTING ' +Gesamt +' Stück, davon Geräte mit FAULT_REPORTING: '+Betroffen + ' Stück.');
              
                  }
              }
              

              }

              ! cacheSelectorLOWBAT.on(function(obj) { // bei Zustandänderung . LOWBAT in allen Gewerken
              LOWBAT(obj);
              });
              /

              cacheSelectorUNREACH.on(function(obj) { // bei Zustandänderung *. LOWBAT in allen Gewerken
              UNREACH(obj);
              });
              ! cacheSelectorSTICKY_UNREACH.on(function(obj) { // bei Zustandänderung *. LOWBAT in allen Gewerken
              STICKY_UNREACH(obj);
              });
              ! cacheSelectorCONFIG_PENDING.on(function(obj) { // bei Zustandänderung *. LOWBAT in allen Gewerken
              CONFIG_PENDING(obj);
              });
              ! cacheSelectorUPDATE_PENDING.on(function(obj) { // bei Zustandänderung *. LOWBAT in allen Gewerken
              UPDATE_PENDING(obj);
              });
              ! cacheSelectorDEVICE_IN_BOOTLOADER.on(function(obj) { // bei Zustandänderung *. LOWBAT in allen Gewerken
              DEVICE_IN_BOOTLOADER(obj);
              });
              cacheSelectorERROR.on(function(obj) { // bei Zustandänderung *. LOWBAT in allen Gewerken
              ERROR(obj);
              });
              cacheSelectorFAULT_REPORTING.on(function(obj) { // bei Zustandänderung *. LOWBAT in allen Gewerken
              FAULT_REPORTING(obj);
              });
              */
              ! //beim Start
              LOWBAT();
              //UNREACH();
              //STICKY_UNREACH();
              //CONFIG_PENDING();
              //UPDATE_PENDING();
              //DEVICE_IN_BOOTLOADER();
              //ERROR();
              //FAULT_REPORTING();
              ! ````

              3822_bildschirmfoto_2019-02-02_um_23.22.46.png

              IN rpc.0 sind HMIP und in rpc.1 sind normale

              (kann aber sein das da noch cuxd und virtuelle rum schwirren, ich habe schon länger nicht aktualisiert bzw. gelöscht. Ich hatte cuxd und virtuell mal probiert.

              Kann aber sein das da auch Heizgruppen von der CCU drinn sind ,die sind ja auch virtuell)
              3822_bildschirmfoto_2019-02-02_um_23.26.26.png

              PS: in allen Kommentaren steht noch LOWBAT, das sollten wir/Du noch korrigieren) 😄

              1 Reply Last reply Reply Quote 0
              • cash
                cash Most Active last edited by

                Du hast LOW_BAT sowohl in hm.rpc.0 und 1.

                Klapp mal bitte bei Instanzen auf. Und bitte auch jeweils ein Gerät damit ich sehe in welchen Kanal dann etwas ist.

                ! 1407_bildschirmfoto_2019-02-03_um_09.48.13.png

                Und was heißt sobald ich mehr dazu nehme werden mir wieder 0 mögliche Geräte angezeigt?

                1 Reply Last reply Reply Quote 0
                • cash
                  cash Most Active last edited by

                  Neuer Tag neue Version.

                  Im erstenPost habe ich das aktualisierte Script mit der Version 1.06 vom 03.02.19 veröffentlicht.

                  Bitte den kompletten Beitrag nochmal lesen. Ich habe Änderungen in der Grundkonfig vorgenommen die man anpassen sollte.

                  Folgende Sachen habe ich verändert:

                  03.02.19 V1.06 Batterien ermitteln in eigene function ausgelagert

                  • LOW_BAT aufgenommen

                  • SABOTAGE aufgenommen

                  • Neu Configmöglichkeit onetime für einmaliges prüfem

                  • Neue Configmöglichkeit observation für Dauerhafte Überwachung

                  • Fehler CONFIG_PENDING behoben

                  1 Reply Last reply Reply Quote 0
                  • sigi234
                    sigi234 Forum Testing Most Active last edited by

                    @cash:

                    Vor dem richtigen Einsatz solltet Ihr etwas testen. Dazu die Variable "intime" auf true und "oberservation" auf false. Das Script Speichern und einmal im Log nachschauen. Dort solltet Ihr dann z. B sowas sehen:

                    Bei Fragen: fragen :mrgreen: `

                    Bin ich blind, ich sehe keine Variable von intime

                    1 Reply Last reply Reply Quote 0
                    • cash
                      cash Most Active last edited by

                      Habe es korrigiert. Sollte "onetime" heißen.

                      1 Reply Last reply Reply Quote 0
                      • sigi234
                        sigi234 Forum Testing Most Active last edited by

                        @cash:

                        Habe es korrigiert. Sollte "onetime" heißen. `

                        Danke, dachte es mir…. 😉

                        Teste gerade, schaut gut aus. LowBat muss ich noch abklären....

                        Ich habe die cUXD auf 0 und die Homematic auf 1, das muss ich dann noch anpassen.....

                        > Desweiteren werden derzeit nur Fehler gemeldet die auf der Instanz 0 laufen. Solltet Ihr mehrere Instanzen von Homematic RPC haben müsst Ihr das Script anpassen.

                        Ja, und wo genau?

                        Ich denke hier diese von 0 auf 1 ändern?

                        2858_screenshot__1715_.png

                        1 Reply Last reply Reply Quote 0
                        • cash
                          cash Most Active last edited by

                          Ich werde es wahrscheinlich noch anpassen so dass, das Script auf alle Instanzen prüft. Das ein oder andere in Deinem Log gefällt mir auch noch nicht so ganz, das werde ich auch mal anpassen. Soweit schaut es aber gut.

                          Danke fürs Log.

                          1 Reply Last reply Reply Quote 0
                          • cash
                            cash Most Active last edited by

                            Ja genau. Schmeiß einfach mal das erste „.0“ daraus. Wichtig auch den „.“ vor der 0.

                            Sollte dann so aus sehen:

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

                            Das jeweils bei allen cacheSelectorXXXX die Zahl vor dem Fehlertyp sollte so bleiben…

                            1 Reply Last reply Reply Quote 1
                            • sigi234
                              sigi234 Forum Testing Most Active last edited by

                              @cash:

                              Ich werde es wahrscheinlich noch anpassen so dass, das Script auf alle Instanzen prüft.

                              Danke fürs Log. `

                              Das wäre Super.

                              Wunsch:

                              Eine Auswahl der Instanzen die geprüft werden sollen wäre ideal….. 😉

                              1 Reply Last reply Reply Quote 0
                              • cash
                                cash Most Active last edited by

                                Das wird eher schwierig. Aber das fände ich eigentlich auch am Besten. Ich werde mal testen ob och das hinkriege…

                                1 Reply Last reply Reply Quote 0
                                • cash
                                  cash Most Active last edited by

                                  Im ersten Beitrag habe ich wieder die aktuelle Version eingefügt.

                                  1.07 vom 04.02.19

                                  Das Script habe ich in vielen Teilen noch einmal komplett umgebaut. Alle fehlenden Stati übersetzt und ganz ganz viele Kleinigkeiten. Das Log ohne Debug ist jetzt erstmal sehr sauber.

                                  1 Reply Last reply Reply Quote 0
                                  • R
                                    RobertM last edited by

                                    Ich hätte mal ne Frage was müsste man alles tauschen um das script auch für telegramm nutzen zu können?

                                    1 Reply Last reply Reply Quote 0
                                    • rantanplan
                                      rantanplan last edited by

                                      @RobertM:

                                      Ich hätte mal ne Frage was müsste man alles tauschen um das script auch für telegramm nutzen zu können? `
                                      Oder um Meldung einfach in Datenpunkt schreiben. Dann kann man die mit allem Möglichen weiterverarbeiten.

                                      Die Option gab es auch im HM Script.

                                      Grüße

                                      1 Reply Last reply Reply Quote 0
                                      • cash
                                        cash Most Active last edited by

                                        @RobertM:

                                        Ich hätte mal ne Frage was müsste man alles tauschen um das script auch für telegramm nutzen zu können? `

                                        Ich weiß nicht welche Parameter man bei Telegram mitgeben muss. Ich könnte mir vorstellen das es reicht die Function oben function send_pushover_V4

                                        1 Reply Last reply Reply Quote 0
                                        • cash
                                          cash Most Active last edited by

                                          @rantanplan:

                                          Oder um Meldung einfach in Datenpunkt schreiben. Dann kann man die mit allem Möglichen weiterverarbeiten.

                                          Die Option gab es auch im HM Script.

                                          Grüße `

                                          Das werde ich mit der nächsten Version einbauen. Allerdings nur die Anzahl der jeweiligen Meldungen. Das heißt man weiß dann noch nicht welches Gerät ein Problem hat. Ich könnte evt. den Pushtest ebenfalls in ein Datenfeld schreiben.

                                          1 Reply Last reply Reply Quote 0
                                          • cash
                                            cash Most Active last edited by

                                            Im ersten Beitrag ist die aktuelle Version von heute:

                                            05.02.19 V1.08 Bei Sabotage wurde nicht die Variable für die Prio berücksichtigt

                                            • geändert von Kanal 1 auf 0 var cacheSelectorSABOTAGE = $('channel[state.id=hm-rpc.*.0.SABOTAGE_ALARM$]');

                                            • Batterieliste aktualisiert

                                            • Wenn Batterie nicht ermittelbar erfogt ein Hinweis im Log

                                            • Neue Konfig Möglichkeit um Nachrichtentext in Objekte zu schreiben (erstmal Testweise nur in LOWBAT)

                                            • Ergebnis in Datenfleder schreiben zum testen in LOWBAT eingefügt

                                            • 06.02.19 V1.09 Serviemeldung ERROR_CODE aufgenommen

                                            • Wenn Script manuell gestartet wurde wurde kein Ergebnis geloggt wenn eine Servicemeldung vorliegt und Debug = false war

                                            • Logging optimiert

                                            • Es wird keine Push mehr verschickt wenn eine Servicemeldung vorliegt und das Script manuell gestartet wird

                                            **************************/

                                            Zum ersten mal hatte ich heute Nacht um 3 Uhr einen Echtfall. :mrgreen:

                                            Batterie von einen Wandthermostat ist leer. Das Script funktioniert bei mir also auch im Echtfall. Allerdings hat er leider falsche Batterien ermittelt. Der Fehler tritt dann auf wenn der Gerätetyp nicht eindeutig ist. Da muss ich nochmal ran. Derzeit habe ich da aber noch keine Idee wie ich das umgehe.

                                            Beispiel es gibt den Gerätetyp: HM-Sec-RHS und HM-Sec-RHS-2. Hat man nun den zweiten passt es. Beim ersten kommt es zum Fehler weil der erste Gerätetyp auch im zweiten vorhanden ist.

                                            Gestern habe ich Testweise die Möglichkeit geschaffen Ergebnisse in Datenfelder zu schreiben. Habe es aber noch nicht 100% getestet. Auf jeden Fall würde das dazu führen das das Script noch länger wird. Geschätzt um über 200 Zeilen. Ob ich das also wirklich einbaue weiß ich noch nicht. Es sollte ja auch in jeden erdenklichen Fall funktionieren…

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            895
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            javascript
                                            93
                                            1038
                                            231876
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo