Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [Vorlage] Servicemeldungen Volume2

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Vorlage] Servicemeldungen Volume2

    This topic has been deleted. Only users with topic management privileges can see it.
    • Quarkmax
      Quarkmax @looxer01 last edited by

      @looxer01

      zum Batteriescript als Ergänzung

      2x AAA: , 'HmIP-STV', 'HmIP-WKP'
      2x AA: , 'ELV-SH-SW1-BAT'
      3x AA: , 'HmIP-ASIR-2'
      

      Danke

      1 Reply Last reply Reply Quote 1
      • L
        looxer01 last edited by looxer01

        Hi,
        neue Versionen sind online.

        Servicmeldungsscript Version 1.05:

        • Fix fuer Status 0 fuer historische Meldungen. Text aus Tabelle: StandardstatusMessages verwendet // Text angepasst in Tabelle fuer 0
        • Batteriemeldung erweitert
        • Telegram Instanz und User hinzugefügt
        • WICHTIGE Aenderung fuer REGA subscription: Intelligenterer Umgang bei vielen Aenderungen von Anzahl der Servicmeldungen aus der CCU

        Batteriescript Version 1.1

        • doppelte Listungen verhindert, wenn alle Geräte gelistet werden
        • Native IDs für aa und aaa batterien hinzugefügt // Danke an Quarkmax
        1 Reply Last reply Reply Quote 4
        • Knallochse
          Knallochse last edited by Knallochse

          Ich habe eine Sabotage Meldung provoziert. Die Nachricht wird auch versendet (Telegram) aber der Zähler (Anzahl_SABOTAGE) steht bei mir auf 0

          Screenshot 2024-11-11 071658.png

          Es wäre super, wenn man noch die Anzahl der zu überwachenden Instanzen konfigurieren könnte.
          Ich habe 4 rpc Instanzen.
          rpc.0 = CUxD
          rpc.1 = Homematic
          rpc.2 = Homematic IP
          rpc.3 = Virtuelle (Gruppen)

          L 1 Reply Last reply Reply Quote 0
          • L
            looxer01 @Knallochse last edited by looxer01

            @knallochse
            Hi,
            bei Homematic classic werden die Sabotage Meldungen unter MessageType "Error" geführt und da ist auch der Zähler bei dir auf 1. Das ist anders bei HMIP. Da werden die Sabotage Meldungen unter Sabotage geführt.
            Ich könnte das zwar code technisch abfangen. Das wäre aber irgendwie schon sehr Spaghetti.

            zu den instanzen.
            CUxD. Das sind ja vermutlich keine HM-Geräte, die darunter laufen. Da also die Datenstrukturen vermutlich anders sind, sind dann auch die Meldungen nicht identisch. Ich habe keine Ahnung wie das funktioniert.

            Die anderen schaue ich mir an.
            Die virtuellen Gruppen habe ich z.Zt draußengelassen. Der Mehrwert bei Meldungen zur Gruppe ist ohnehin fragwürdig. Allerdings sind die nur auskommentiert im Coding und lassen sich einfach aktivieren.

            vG Looxer

            Edit: also eigentlich lassen sich die Instanzen ja jetzt schon konfigurieren.
            Im Grunde müssen ja nur die vorgegebenen Instanzen um 1 erhöht werden.
            Das befindet sich in den "Experteneinstellungen":

            const idsUNREACH = [];
            // @ts-ignore
            $('state[id=hm-rpc.0.*.UNREACH_ALARM]').each(id => idsUNREACH.push(id));
            // @ts-ignore
            $('state[id=hm-rpc.1.*.UNREACH_ALARM]').each(id => idsUNREACH.push(id));
            // @ts-ignore
            // $('state[id=hm-rpc.2.*.UNREACH_ALARM]').each(id => idsUNREACH.push(id)); // auskommentiert keine Gruppenmeldungen
            
            const idsSTICKY_UNREACH = [];
            // @ts-ignore
            $('state[id=hm-rpc.0.*.STICKY_UNREACH_ALARM]').each(id => idsSTICKY_UNREACH.push(id));
            // @ts-ignore
            $('state[id=hm-rpc.1.*.STICKY_UNREACH_ALARM]').each(id => idsSTICKY_UNREACH.push(id));
            // @ts-ignore
            $('state[id=hm-rpc.2.*.STICKY_UNREACH_ALARM]').each(id => idsSTICKY_UNREACH.push(id));      // auskommentiert keine Gruppenmeldungen
            
            const idsConfig_Pending = [];
            // @ts-ignore
            $('state[id=hm-rpc.0.*.CONFIG_PENDING_ALARM]').each(id => idsConfig_Pending.push(id));
            // @ts-ignore
            $('state[id=hm-rpc.1.*.CONFIG_PENDING_ALARM]').each(id => idsConfig_Pending.push(id));
            // @ts-ignore
            // $('state[id=hm-rpc.2.*.CONFIG_PENDING_ALARM]').each(id => idsConfig_Pending.push(id));   // auskommentiert keine Gruppenmeldungen
            
            const idsUPDATE_PENDING_ALARM = [];
            // @ts-ignore
            $('state[id=hm-rpc.0.*.UPDATE_PENDING_ALARM]').each(id => idsUPDATE_PENDING_ALARM.push(id));
            // @ts-ignore
            $('state[id=hm-rpc.1.*.UPDATE_PENDING_ALARM]').each(id => idsUPDATE_PENDING_ALARM.push(id)); 
            // @ts-ignore
            //$('state[id=hm-rpc.2.*.UPDATE_PENDING_ALARM]').each(id => idsUPDATE_PENDING_ALARM.push(id)); // auskommentiert keine Gruppenmeldungen
            
            const idsLOWBAT_ALARM = [];
            // @ts-ignore
            $('state[id=hm-rpc.0.*.LOWBAT_ALARM]').each(id =>  idsLOWBAT_ALARM.push(id));
            // @ts-ignore
            $('state[id=hm-rpc.1.*.LOW_BAT_ALARM]').each(id => idsLOWBAT_ALARM.push(id));
            // @ts-ignore
            $('state[id=hm-rpc.2.*.LOW_BAT_ALARM]').each(id => idsLOWBAT_ALARM.push(id));                   // auskommentiert keine Gruppenmeldungen
            
            const idsDEVICE_IN_BOOTLOADER_ALARM = [];
            // @ts-ignore
            $('state[id=hm-rpc.0.*.DEVICE_IN_BOOTLOADER_ALARM]').each(id => idsDEVICE_IN_BOOTLOADER_ALARM.push(id)); // nur HM-Classic
            
            const idsERROR = [];
            // @ts-ignore
            $('state[id=hm-rpc.0.*.ERROR]').each(id => idsERROR.push(id));
            // @ts-ignore
            $('state[id=hm-rpc.1.*.ERROR]').each(id => idsERROR.push(id));
            // @ts-ignore
            // $('state[id=hm-rpc.2.*.ERROR]').each(id => idsERROR.push(id));                               // auskommentiert keine Gruppenmeldungen
            
            const idsFAULT_REPORTING = [];
            // @ts-ignore
            $('state[id=hm-rpc.0.*.FAULT_REPORTING]').each(id => idsFAULT_REPORTING.push(id));              // nur HM-Classic
            
            const idsSABOTAGE_ALARM = [];
            // @ts-ignore
            $('state[id=hm-rpc.0.*.SABOTAGE_ALARM]').each(id => idsSABOTAGE_ALARM.push(id));
            // @ts-ignore
            $('state[id=hm-rpc.1.*.SABOTAGE_ALARM]').each(id => idsSABOTAGE_ALARM.push(id));
            // @ts-ignore
            //$('state[id=hm-rpc.2.*.SABOTAGE_ALARM]').each(id => idsSABOTAGE_ALARM.push(id));              // auskommentiert keine Gruppenmeldungen
            
            const idsERROR_NON_FLAT_POSITIONING_ALARM = [];
            // @ts-ignore
            $('state[id=hm-rpc.0.*.ERROR_NON_FLAT_POSITIONING_ALARM]').each(id => idsERROR_NON_FLAT_POSITIONING_ALARM.push(id));
            // @ts-ignore
            $('state[id=hm-rpc.1.*.ERROR_NON_FLAT_POSITIONING_ALARM]').each(id => idsERROR_NON_FLAT_POSITIONING_ALARM.push(id));
            
            
            Knallochse 1 Reply Last reply Reply Quote 0
            • Knallochse
              Knallochse @looxer01 last edited by Knallochse

              @looxer01 sagte in [Vorlage] Servicemeldungen Volume2:

              @knallochse
              Hi,
              bei Homematic classic werden die Sabotage Meldungen unter MessageType "Error" geführt und da ist auch der Zähler bei dir auf 1. Das ist anders bei HMIP. Da werden die Sabotage Meldungen unter Sabotage geführt.
              Ich könnte das zwar code technisch abfangen. Das wäre aber irgendwie schon sehr Spaghetti.

              Dann hab ich es verstanden. Ich bräuchte keine Änderung.

              zu den instanzen.
              CUxD. Das sind ja vermutlich keine HM-Geräte, die darunter laufen. Da also die Datenstrukturen vermutlich anders sind, sind dann auch die Meldungen nicht identisch. Ich habe keine Ahnung wie das funktioniert.

              Eine Überwachung der CUxD Geräte vom Skript ist nicht nötig. Aber die rpc.0 Instanz wird ja überwacht, und die Geräte zur Überwachung befinden sich ja in anderen Instanzen. Wird dann noch alles richtig zugeordnet bzw. überwacht?

              Die anderen schaue ich mir an.
              Die virtuellen Gruppen habe ich z.Zt draußengelassen. Der Mehrwert bei Meldungen zur Gruppe ist ohnehin fragwürdig. Allerdings sind die nur auskommentiert im Coding und lassen sich einfach aktivieren.

              In den Gruppen befinden sich ja die einzelnen Geräte und diese werden ja schon überwacht.

              vG Looxer

              L 1 Reply Last reply Reply Quote 0
              • Knallochse
                Knallochse last edited by

                Von meiner Seite vielen Dank für dein Skript. Schön, dass du dich der Sache annimmst.

                1 Reply Last reply Reply Quote 1
                • L
                  looxer01 @Knallochse last edited by looxer01

                  @knallochse sagte in [Vorlage] Servicemeldungen Volume2:

                  Eine Überwachung vom Skript ist nicht nötig. Aber die rpc.0 Instanz wird ja überwacht, und die Geräte zur Überwachung befinden sich ja in anderen Instanzen. Wird dann noch alles richtig zugeordnet bzw. überwacht?

                  ich denke ja. Dann muß also CuxD einfach nur auschgeschlossen werden.

                  @knallochse sagte in [Vorlage] Servicemeldungen Volume2:

                  In den Gruppen befinden sich ja die einzelnen Geräte und diese werden ja schon überwacht.

                  genau, also ist die Hinzunahme der Gruppen nicht notwendig.

                  Ich habe für dich die Configuration im folgenden Code gemacht. Diesen müßtest du durch den Vorhandenen ersetzen.

                  const idsUNREACH = [];
                  // @ts-ignore
                  $('state[id=hm-rpc.1.*.UNREACH_ALARM]').each(id => idsUNREACH.push(id));
                  // @ts-ignore
                  $('state[id=hm-rpc.2.*.UNREACH_ALARM]').each(id => idsUNREACH.push(id));
                  // @ts-ignore
                  // $('state[id=hm-rpc.3.*.UNREACH_ALARM]').each(id => idsUNREACH.push(id)); // auskommentiert keine Gruppenmeldungen
                  
                  const idsSTICKY_UNREACH = [];
                  // @ts-ignore
                  $('state[id=hm-rpc.1.*.STICKY_UNREACH_ALARM]').each(id => idsSTICKY_UNREACH.push(id));
                  // @ts-ignore
                  $('state[id=hm-rpc.2.*.STICKY_UNREACH_ALARM]').each(id => idsSTICKY_UNREACH.push(id));
                  // @ts-ignore
                  //$('state[id=hm-rpc.3.*.STICKY_UNREACH_ALARM]').each(id => idsSTICKY_UNREACH.push(id));      // auskommentiert keine Gruppenmeldungen
                  
                  const idsConfig_Pending = [];
                  // @ts-ignore
                  $('state[id=hm-rpc.1.*.CONFIG_PENDING_ALARM]').each(id => idsConfig_Pending.push(id));
                  // @ts-ignore
                  $('state[id=hm-rpc.2.*.CONFIG_PENDING_ALARM]').each(id => idsConfig_Pending.push(id));
                  // @ts-ignore
                  // $('state[id=hm-rpc.3.*.CONFIG_PENDING_ALARM]').each(id => idsConfig_Pending.push(id));   // auskommentiert keine Gruppenmeldungen
                  
                  const idsUPDATE_PENDING_ALARM = [];
                  // @ts-ignore
                  $('state[id=hm-rpc.1.*.UPDATE_PENDING_ALARM]').each(id => idsUPDATE_PENDING_ALARM.push(id));
                  // @ts-ignore
                  $('state[id=hm-rpc.2.*.UPDATE_PENDING_ALARM]').each(id => idsUPDATE_PENDING_ALARM.push(id)); 
                  // @ts-ignore
                  //$('state[id=hm-rpc.3.*.UPDATE_PENDING_ALARM]').each(id => idsUPDATE_PENDING_ALARM.push(id)); // auskommentiert keine Gruppenmeldungen
                  
                  const idsLOWBAT_ALARM = [];
                  // @ts-ignore
                  $('state[id=hm-rpc.1.*.LOWBAT_ALARM]').each(id =>  idsLOWBAT_ALARM.push(id));
                  // @ts-ignore
                  $('state[id=hm-rpc.2.*.LOW_BAT_ALARM]').each(id => idsLOWBAT_ALARM.push(id));
                  // @ts-ignore
                  //$('state[id=hm-rpc.3.*.LOW_BAT_ALARM]').each(id => idsLOWBAT_ALARM.push(id));                   // auskommentiert keine Gruppenmeldungen
                  
                  const idsDEVICE_IN_BOOTLOADER_ALARM = [];
                  // @ts-ignore
                  $('state[id=hm-rpc.1.*.DEVICE_IN_BOOTLOADER_ALARM]').each(id => idsDEVICE_IN_BOOTLOADER_ALARM.push(id)); // nur HM-Classic
                  
                  const idsERROR = [];
                  // @ts-ignore
                  $('state[id=hm-rpc.1.*.ERROR]').each(id => idsERROR.push(id));
                  // @ts-ignore
                  $('state[id=hm-rpc.2.*.ERROR]').each(id => idsERROR.push(id));
                  // @ts-ignore
                  // $('state[id=hm-rpc.3.*.ERROR]').each(id => idsERROR.push(id));                               // auskommentiert keine Gruppenmeldungen
                  
                  const idsFAULT_REPORTING = [];
                  // @ts-ignore
                  $('state[id=hm-rpc.1.*.FAULT_REPORTING]').each(id => idsFAULT_REPORTING.push(id));              // nur HM-Classic
                  
                  const idsSABOTAGE_ALARM = [];
                  // @ts-ignore
                  $('state[id=hm-rpc.1.*.SABOTAGE_ALARM]').each(id => idsSABOTAGE_ALARM.push(id));
                  // @ts-ignore
                  $('state[id=hm-rpc.2.*.SABOTAGE_ALARM]').each(id => idsSABOTAGE_ALARM.push(id));
                  // @ts-ignore
                  //$('state[id=hm-rpc.3.*.SABOTAGE_ALARM]').each(id => idsSABOTAGE_ALARM.push(id));              // auskommentiert keine Gruppenmeldungen
                  
                  const idsERROR_NON_FLAT_POSITIONING_ALARM = [];
                  // @ts-ignore
                  $('state[id=hm-rpc.1.*.ERROR_NON_FLAT_POSITIONING_ALARM]').each(id => idsERROR_NON_FLAT_POSITIONING_ALARM.push(id));
                  // @ts-ignore
                  $('state[id=hm-rpc.2.*.ERROR_NON_FLAT_POSITIONING_ALARM]').each(id => idsERROR_NON_FLAT_POSITIONING_ALARM.push(id));
                  
                  1 Reply Last reply Reply Quote 1
                  • Knallochse
                    Knallochse last edited by

                    @looxer01 Vielen Dank.
                    Ich habe den Code durch deinen ersetzt. Ich beobachte das ganze mal eine Weile.
                    Schade, dass sich Batteriemeldungen schlecht simulieren lassen.

                    L 1 Reply Last reply Reply Quote 0
                    • L
                      looxer01 @Knallochse last edited by

                      @knallochse
                      sehr gerne.
                      Ich mache die Instanz wahrscheinlich noch variabel. Dann ist es einfacher anzupassen für alle die, die CuxD verwenden

                      1 Reply Last reply Reply Quote 1
                      • L
                        looxer01 last edited by looxer01

                        Hi,
                        Version 1.06 ist online:

                        • GruppenSelektoren auskommentiert fuer unreach#
                        • Korrektur fuer REGA subcription:Timer variable zuruecksetzen
                        • HM-Classic Sabotage counts werden umgeleitet von error auf Sabotage
                        • Instanzen zur Selektion sind jetzt als Variable definiert - z.B. um CuxD auszuschliessen

                        Looxer01

                        Knallochse 1 Reply Last reply Reply Quote 2
                        • Knallochse
                          Knallochse @looxer01 last edited by Knallochse

                          @looxer01 mit der 1.6 scheint der Zähler bei Auslösen eines Sabotage Aktors nicht mehr zu funktionieren
                          Screenshot 2024-11-12 214454.png

                          in der Nachricht (Telegram) steht SABOTAGE

                          L 1 Reply Last reply Reply Quote 0
                          • L
                            looxer01 @Knallochse last edited by

                            @knallochse
                            vielen Dank
                            Fehler ist gefunden. Fix kommt mit der nächsten Version.

                            vG Looxer

                            1 Reply Last reply Reply Quote 1
                            • L
                              looxer01 last edited by

                              Version 1.07 ist online.

                              • Zähler für Sabotage funktioniert jetzt für HMClassic und HMIP
                              • Text StandardMessages angepasst
                              • Fuer alle Messenger Services kann die gewuenschte Instanz angegeben werden

                              Looxer

                              E Knallochse 2 Replies Last reply Reply Quote 0
                              • E
                                emil70 @looxer01 last edited by

                                @looxer01

                                ist das im 1.07 richtig so

                                // telegram Einstellungen
                                const TelegramUser = "";
                                

                                beim 1.06 sieht das so aus

                                // telegram Einstellungen
                                const TelegramIstanz = 0;
                                const TelegramUser = "";
                                
                                L 1 Reply Last reply Reply Quote 0
                                • L
                                  looxer01 @emil70 last edited by

                                  @emil70
                                  Hi,
                                  ja, das ist ok, weil jetzt alle Messenger mit der Instanz einstellbar sind

                                      const services =               ['email',    'whatsApp',     'Signal',  'Telegram',    'Pushover', 'Pushsafer'];
                                      const MessengerScope = {
                                      'UNREACH_ALARM':                [false,       true,          false,      false,          false,      false],
                                      'LOWBAT_ALARM':                 [false,       true,          false,      false,          false,      false],
                                      'SABOTAGE_ALARM':               [false,       true,          false,      false,          false,      false],
                                      'CONFIG_PENDING':               [false,       true,          false,      false,          false,      false],
                                      'Sonstige':                     [false,       false,         false,      false,          false,      false],
                                      'keineSM':                      [false,       true,          false,      false,          false,      false],
                                      }
                                      const MessengerInstanz =        [0,             0,              0,          0,              0,          0 ]; // Instanz des Messengers
                                  
                                  1 Reply Last reply Reply Quote 1
                                  • Knallochse
                                    Knallochse @looxer01 last edited by

                                    @looxer01 Mit der 1,07 funktioniert der Zähler für Sabotage Super👍

                                    1 Reply Last reply Reply Quote 1
                                    • L
                                      looxer01 last edited by looxer01

                                      Hi,
                                      Version 1.08 ist online

                                      • Ein wenig Kosmetik
                                      • LowBat Meldungen waren nicht vollstaendig für HMIP Geräte. Batterietypen-Hinweis sollte jetzt funktionieren

                                      vG Looxer

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

                                        @looxer01 @looxer01 Hallo, bin zufällig über das Script gestolpert, aufgrund der Vielzahl meiner HM-Geräte war mein Interesse geweckt. Leider bin ich absoluter DAU was JS betrifft, bekomme beim Start des Scripts die folgende Fehlermeldungen. Was kann/muss ich hier tun? Oder habe ich ein grundsätzliches Problem in den Einstellungen der Adapter usw.? Ich freue mich auf deine Rückmeldung, vielen Dank!

                                        15.11.2024, 13:43:09.525	[info ]: javascript.0 (800865) Start JavaScript script.js.Telegram_Meldungen.Fehlermeldungen (Javascript/js)
                                        15.11.2024, 13:43:09.630	[warn ]: javascript.0 (800865) script.js.Telegram_Meldungen.Fehlermeldungen: More than 100 subscriptions registered. Check your script!
                                        15.11.2024, 13:43:09.631	[warn ]: javascript.0 (800865) script.js.Telegram_Meldungen.Fehlermeldungen: More than 200 subscriptions registered. Check your script!
                                        15.11.2024, 13:43:09.631	[warn ]: javascript.0 (800865) script.js.Telegram_Meldungen.Fehlermeldungen: More than 300 subscriptions registered. Check your script!
                                        15.11.2024, 13:43:09.632	[warn ]: javascript.0 (800865) script.js.Telegram_Meldungen.Fehlermeldungen: More than 400 subscriptions registered. Check your script!
                                        15.11.2024, 13:43:09.634	[info ]: javascript.0 (800865) script.js.Telegram_Meldungen.Fehlermeldungen: registered 468 subscriptions, 1 schedule, 0 messages, 0 logs and 0 file subscriptions
                                        15.11.2024, 13:43:09.690	[error]: javascript.0 (800865) script.js.Telegram_Meldungen.Fehlermeldungen: Routine Create States - Fehler beim Erstellen der Zustaende: TypeError: Cannot read properties of undefined (reading 'TYPE')
                                        
                                        L 2 Replies Last reply Reply Quote 0
                                        • L
                                          looxer01 @flkontakt last edited by

                                          @flkontakt
                                          Hi,

                                          nicht so schwierig. Das kriegst du hin.

                                          Die ersten Meldungen sind Warnmeldungen. Es gibt unterschiedliche Möglichkeiten damit umzugehen.

                                          1. Du akzeptierst, dass du Warnmeldungen beim Aufrufen des Scripts hast
                                          2. Du machst eine Einstellung im Javascript Adapter
                                            • allgemeine Einstellungen unter "Maximale Auslöser/Trigger pro Skript (bis zur Warnung)
                                              stells du z.B. 500 ein. Damit sind die Warnmeldungen Geschichte
                                          3. Du verzichtest auf historische Servicemeldungen (nur aktuelle werden gespeichert) und stellst das script auf:
                                            const GeraeteIDTrigger = false (vorgegeben ist hier true). Dann gibt es nur 1 Subscription

                                          Die Fehlermeldung erscheint wahrscheinlich nur beim ersten Aufruf des Scripts. Da hakt es wohl beim Timing vom Erstellen der States und dem Versuch diese zu beschreiben. (eigentlich sollte das abgefangen sein aber , na ja)

                                          vG Looxer

                                          1 Reply Last reply Reply Quote 0
                                          • L
                                            looxer01 @flkontakt last edited by looxer01

                                            @flkontakt
                                            Hi,
                                            (falls noch interessant)
                                            ich habe nochmal geforscht. Das Coding ist im Prinzip ok. Es kann aber sein, dass ein wenig performantes System Probleme verursacht, wenn "asynchron" verarbeitet wird, was hier der Fall ist.
                                            -Übersetzt: ich erstelle die Datenpunkte und möchte warten bis die fertig erstellt sind. Dann werden diese auch schon beschrieben

                                            Was kann man in diesem Fall tun ?

                                            • Die nächste Version wird keinen harten "error" erzeugen sondern nur eine Warnmeldung. Dann werden auf jeden Fall alle notwendigen Datenpunkte erstellt, wenngleich verzögert

                                            Für dich würde ich empfehlen folgende Einstellung im Script vorzunehmen: const GeraeteIDTrigger = false

                                            Die neue Version kommt heute noch.

                                            vG Looxer

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            758
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            12
                                            219
                                            18983
                                            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