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. Praktische Anwendungen (Showcase)
  4. [Javascript] Adapter-Instanzen überwachen

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    324

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

[Javascript] Adapter-Instanzen überwachen

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
34 Beiträge 12 Kommentatoren 5.1k Aufrufe 17 Watching
  • Ä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.
  • AcguaA Offline
    AcguaA Offline
    Acgua
    schrieb am zuletzt editiert von Acgua
    #1

    Update 14.07.2022:

    Hier der Link zum Projekt und Quellcode:
    Acgua/ioBroker-Script-Adapter-Instances-Watcher



    Ursprüngliche Nachricht vom 26. Juni 2022:

    Hi,

    ich habe ein Script geschrieben, das ich gedenke, zu veröffentlichen.
    Vom Aufbau her gleich in Klassen etc., damit im Fall leicht überführbar in einen Adapter, diesen würde ich aber dann erweitern und auch andere Dinge mit überwachen etc.

    Frage an euch: Besteht überhaupt Interesse daran? Habt ihr auch diesen Use Case? Denn nur dann mache ich mir die weitere Mühe, das Script "schön" und sicher zu machen, und zu veröffentlichen.
    Unten die Erklärung, die ich auch schon mal auf Github angefangen habe, hier noch mit paar Screenshots.


    Warum dieses Script? Use Case?

    Der Auslöser für mich für dieses Script war, dass ich zuverlässig Datenpunkte brauchte, die mir anzeigen, ob eine Adapter-Instanz "läuft".

    Nur so einfach ist das ganze nicht:
    Es gibt hauptsächlich Daemon-Adapter und Schedule-Adapter (Link, aber auch weitere, die ich hier aber nicht näher betrachte.

    Daemon-Adapter sind etwa alexa2, cloud, hue. Schedule-Adapter sind z.B. daswetter, feiertage, ical.

    Ob ein Daemon-Adapter läuft, sieht man in den Datenpunkten (Beispiel: cloud, Instanz 0) system.adapter.cloud.0.alive und system.adapter.cloud.0.connected. Außerdem noch über die Objekteigenschaften von system.adapter.cloud.0, dort zeigt common:enabled an, ob die Instanz überhaupt ein- oder ausgeschaltet ist. Zudem bauen noch manche Adapter eine Verbindung zu einem Gerät oder Service auf, hier gibt es dann etwa noch den Datenpunkt cloud.0.info.connection. Dies machen aber nicht alle Daemon-Adapter.

    Schedule-Adapter verhalten sich ganz anders. Diese werden gemäß Zeitplan ("Schedule") regelmäßig neu gestartet und rufen dann z.B. Wetterdaten ab, also etwa im Fall vom Adapter daswetter. Um hier zu wissen, ob der Adapter "aktiv und zuverlässig läuft", ist es wichtig, dass der Adapter angeschaltet ist (sichtbar über Objekteigenschaften von system.adapter.daswetter.0, common:enabled auf true), und dass der letzte Zeitplan auch gelaufen ist. Wir wollen schließlich keine alten Wetterdaten am Tablet sehen.

    Was macht nun dieses Script?

    Kurz zusammengefasst:

    • Für jede Adapter-Instanz gibt es u.a. einen Datenpunkt wie etwa 0_userdata.0.System.Adapter-Instanzen.cloud_0.isFunctioning, der auf true gesetzt ist, sobald Instanz eingeschaltet und verbunden ist, und auch – falls Verbindung mit Gerät/Service – auch diese Verbindung steht. Dies bei Daemon-Adapter, bei Schedule-Adapter wird geprüft, ob die Instanz eingeschaltet ist und der letzte Zeitplan (Cron, also Schedule) gelaufen ist.
      Beispiel für Daemon-Adapter cloud:
      4b13ba94-1907-4895-895e-1022cabfafe1-image.png
      Beispiel für Schedule-Adapter daswetter:
      fc794e45-d73d-48fb-875c-f540617f6411-image.png

    • Des weiteren gibt es noch eine Zusammenfassung in Datenpunkten, also Liste aller Instanzen, die zwar eingeschaltet sind, aber nicht "laufen", als auch einen Datenpunkt für die Anzahl dieser eingeschalteten, aber nicht laufenden Instanzen.
      42163e48-f99e-46ca-9484-a72a59897e29-image.png

    • Weiteres wird nach und nach eingebaut, wie einfaches ein- und ausschalten, etc. (was sich bei Schedule-Adapter wieder anders verhält, als bei Daemon-Adapter).

    GlasfaserG K 2 Antworten Letzte Antwort
    0
    • AcguaA Acgua

      Update 14.07.2022:

      Hier der Link zum Projekt und Quellcode:
      Acgua/ioBroker-Script-Adapter-Instances-Watcher



      Ursprüngliche Nachricht vom 26. Juni 2022:

      Hi,

      ich habe ein Script geschrieben, das ich gedenke, zu veröffentlichen.
      Vom Aufbau her gleich in Klassen etc., damit im Fall leicht überführbar in einen Adapter, diesen würde ich aber dann erweitern und auch andere Dinge mit überwachen etc.

      Frage an euch: Besteht überhaupt Interesse daran? Habt ihr auch diesen Use Case? Denn nur dann mache ich mir die weitere Mühe, das Script "schön" und sicher zu machen, und zu veröffentlichen.
      Unten die Erklärung, die ich auch schon mal auf Github angefangen habe, hier noch mit paar Screenshots.


      Warum dieses Script? Use Case?

      Der Auslöser für mich für dieses Script war, dass ich zuverlässig Datenpunkte brauchte, die mir anzeigen, ob eine Adapter-Instanz "läuft".

      Nur so einfach ist das ganze nicht:
      Es gibt hauptsächlich Daemon-Adapter und Schedule-Adapter (Link, aber auch weitere, die ich hier aber nicht näher betrachte.

      Daemon-Adapter sind etwa alexa2, cloud, hue. Schedule-Adapter sind z.B. daswetter, feiertage, ical.

      Ob ein Daemon-Adapter läuft, sieht man in den Datenpunkten (Beispiel: cloud, Instanz 0) system.adapter.cloud.0.alive und system.adapter.cloud.0.connected. Außerdem noch über die Objekteigenschaften von system.adapter.cloud.0, dort zeigt common:enabled an, ob die Instanz überhaupt ein- oder ausgeschaltet ist. Zudem bauen noch manche Adapter eine Verbindung zu einem Gerät oder Service auf, hier gibt es dann etwa noch den Datenpunkt cloud.0.info.connection. Dies machen aber nicht alle Daemon-Adapter.

      Schedule-Adapter verhalten sich ganz anders. Diese werden gemäß Zeitplan ("Schedule") regelmäßig neu gestartet und rufen dann z.B. Wetterdaten ab, also etwa im Fall vom Adapter daswetter. Um hier zu wissen, ob der Adapter "aktiv und zuverlässig läuft", ist es wichtig, dass der Adapter angeschaltet ist (sichtbar über Objekteigenschaften von system.adapter.daswetter.0, common:enabled auf true), und dass der letzte Zeitplan auch gelaufen ist. Wir wollen schließlich keine alten Wetterdaten am Tablet sehen.

      Was macht nun dieses Script?

      Kurz zusammengefasst:

      • Für jede Adapter-Instanz gibt es u.a. einen Datenpunkt wie etwa 0_userdata.0.System.Adapter-Instanzen.cloud_0.isFunctioning, der auf true gesetzt ist, sobald Instanz eingeschaltet und verbunden ist, und auch – falls Verbindung mit Gerät/Service – auch diese Verbindung steht. Dies bei Daemon-Adapter, bei Schedule-Adapter wird geprüft, ob die Instanz eingeschaltet ist und der letzte Zeitplan (Cron, also Schedule) gelaufen ist.
        Beispiel für Daemon-Adapter cloud:
        4b13ba94-1907-4895-895e-1022cabfafe1-image.png
        Beispiel für Schedule-Adapter daswetter:
        fc794e45-d73d-48fb-875c-f540617f6411-image.png

      • Des weiteren gibt es noch eine Zusammenfassung in Datenpunkten, also Liste aller Instanzen, die zwar eingeschaltet sind, aber nicht "laufen", als auch einen Datenpunkt für die Anzahl dieser eingeschalteten, aber nicht laufenden Instanzen.
        42163e48-f99e-46ca-9484-a72a59897e29-image.png

      • Weiteres wird nach und nach eingebaut, wie einfaches ein- und ausschalten, etc. (was sich bei Schedule-Adapter wieder anders verhält, als bei Daemon-Adapter).

      GlasfaserG Offline
      GlasfaserG Offline
      Glasfaser
      schrieb am zuletzt editiert von
      #2

      @acgua sagte in [Javascript] Adapter-Instanzen überwachen:

      Link: https://github.com/Acgua/ioBroker-Script-Adapter-Instances-Watcher

      3aa565e4-6fc3-406b-ba41-0a0964708b2d-grafik.png

      Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

      AcguaA 1 Antwort Letzte Antwort
      0
      • GlasfaserG Glasfaser

        @acgua sagte in [Javascript] Adapter-Instanzen überwachen:

        Link: https://github.com/Acgua/ioBroker-Script-Adapter-Instances-Watcher

        3aa565e4-6fc3-406b-ba41-0a0964708b2d-grafik.png

        AcguaA Offline
        AcguaA Offline
        Acgua
        schrieb am zuletzt editiert von
        #3

        @glasfaser
        Danke, korrigiert, bzw. entfernt, da alles hier auch schon steht.

        1 Antwort Letzte Antwort
        0
        • W Offline
          W Offline
          wilbur
          schrieb am zuletzt editiert von wilbur
          #4

          @acgua said in [Javascript] Adapter-Instanzen überwachen:

          Der Auslöser für mich für dieses Script war, dass ich zuverlässig Datenpunkte brauchte, die mir anzeigen, ob eine Adapter-Instanz "läuft".

          Ich hab dafür ein kleines Blockly nach diesem Muster: machs-smart.de
          Und das funktioniert bisher sehr zuverlässig.
          Das meldet, wenn eine Instanz nicht mehr läuft.

          T AcguaA 2 Antworten Letzte Antwort
          1
          • david83D Offline
            david83D Offline
            david83
            schrieb am zuletzt editiert von
            #5

            Hört sich interessant an, ich bin interessiert;-)

            AcguaA 1 Antwort Letzte Antwort
            0
            • david83D david83

              Hört sich interessant an, ich bin interessiert;-)

              AcguaA Offline
              AcguaA Offline
              Acgua
              schrieb am zuletzt editiert von Acgua
              #6

              @david83

              Hier das Script:

              Github-Projekt, Anleitung: Acgua/ioBroker-Script-Adapter-Instances-Watcher

              JS in "Raw": https://raw.githubusercontent.com/Acgua/ioBroker-Script-Adapter-Instances-Watcher/main/adapter-instance-watcher.js

              1 Antwort Letzte Antwort
              0
              • frana120500F Offline
                frana120500F Offline
                frana120500
                schrieb am zuletzt editiert von
                #7

                Vielen Dank für das Script.Das schaut wirklich klasse aus.

                Dann baue ich mir mal meine Telegram Benachrichtigung zusammen (mit Blockly) für den Fall, dass eine Instanz ausgfällt.

                Danke für deine Arbeit.

                AcguaA 1 Antwort Letzte Antwort
                0
                • ? Offline
                  ? Offline
                  Ein ehemaliger Benutzer
                  schrieb am zuletzt editiert von Ein ehemaliger Benutzer
                  #8

                  Danke für das Skript! Sehr ausführlich und sieht nach viel Arbeit aus. :)

                  Bei zwei Instanzen hat er ein Fehler ausgespuckt da er für den Datenpunkt connected_with_device_service einen String bekommt. Habe diese dann händisch von Boolean auf String geändert. Dann meckert er nicht mehr. Der Rest lief/läuft ohne Probleme.

                     2022-07-15 08:32:44.280	info	State value to set for "0_userdata.0.System.Adapter-Instanzen.mqtt_0.info.connected_with_device_service" has to be type "boolean" but received type "string"
                  
                  javascript.0
                  2022-07-15 08:32:44.213	warn	at AdapterInstance._initAdapterInstanceAsync (script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher:230:9)
                  
                  javascript.0
                  2022-07-15 08:32:44.213	warn	at processImmediate (node:internal/timers:437:9)
                  
                  javascript.0
                  2022-07-15 08:32:44.213	warn	at runNextTicks (node:internal/process/task_queues:61:5)
                  
                  javascript.0
                  2022-07-15 08:32:44.213	warn	at runMicrotasks (<anonymous>)
                  
                  javascript.0
                  2022-07-15 08:32:44.213	warn	at AdapterInstance.asyncUpdateStates (script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher:396:21)
                  
                  javascript.0
                  2022-07-15 08:32:44.213	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1532:20)
                  
                  javascript.0
                  2022-07-15 08:32:44.212	warn	You are assigning a string to the state "0_userdata.0.System.Adapter-Instanzen.mqtt_0.info.connected_with_device_service" which expects a boolean. Please fix your code to use a boolean or change the state type to string. This warning might become an error in future versions.
                  
                  javascript.0
                  2022-07-15 08:32:44.074	info	State value to set for "0_userdata.0.System.Adapter-Instanzen.admin_0.info.connected_with_device_service" has to be type "boolean" but received type "string"
                  
                  javascript.0
                  2022-07-15 08:32:44.053	warn	at AdapterInstance._initAdapterInstanceAsync (script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher:230:9)
                  
                  javascript.0
                  2022-07-15 08:32:44.053	warn	at processImmediate (node:internal/timers:437:9)
                  
                  javascript.0
                  2022-07-15 08:32:44.053	warn	at runNextTicks (node:internal/process/task_queues:61:5)
                  
                  javascript.0
                  2022-07-15 08:32:44.053	warn	at runMicrotasks (<anonymous>)
                  
                  javascript.0
                  2022-07-15 08:32:44.053	warn	at AdapterInstance.asyncUpdateStates (script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher:396:21)
                  
                  javascript.0
                  2022-07-15 08:32:44.053	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1532:20)
                  
                  javascript.0
                  2022-07-15 08:32:44.052	warn	You are assigning a string to the state "0_userdata.0.System.Adapter-Instanzen.admin_0.info.connected_with_device_service" which expects a boolean. Please fix your code to use a boolean or change the state type to string. This warning might become an error in future versions.
                  

                  AcguaA 1 Antwort Letzte Antwort
                  0
                  • ? Ein ehemaliger Benutzer

                    Danke für das Skript! Sehr ausführlich und sieht nach viel Arbeit aus. :)

                    Bei zwei Instanzen hat er ein Fehler ausgespuckt da er für den Datenpunkt connected_with_device_service einen String bekommt. Habe diese dann händisch von Boolean auf String geändert. Dann meckert er nicht mehr. Der Rest lief/läuft ohne Probleme.

                       2022-07-15 08:32:44.280	info	State value to set for "0_userdata.0.System.Adapter-Instanzen.mqtt_0.info.connected_with_device_service" has to be type "boolean" but received type "string"
                    
                    javascript.0
                    2022-07-15 08:32:44.213	warn	at AdapterInstance._initAdapterInstanceAsync (script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher:230:9)
                    
                    javascript.0
                    2022-07-15 08:32:44.213	warn	at processImmediate (node:internal/timers:437:9)
                    
                    javascript.0
                    2022-07-15 08:32:44.213	warn	at runNextTicks (node:internal/process/task_queues:61:5)
                    
                    javascript.0
                    2022-07-15 08:32:44.213	warn	at runMicrotasks (<anonymous>)
                    
                    javascript.0
                    2022-07-15 08:32:44.213	warn	at AdapterInstance.asyncUpdateStates (script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher:396:21)
                    
                    javascript.0
                    2022-07-15 08:32:44.213	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1532:20)
                    
                    javascript.0
                    2022-07-15 08:32:44.212	warn	You are assigning a string to the state "0_userdata.0.System.Adapter-Instanzen.mqtt_0.info.connected_with_device_service" which expects a boolean. Please fix your code to use a boolean or change the state type to string. This warning might become an error in future versions.
                    
                    javascript.0
                    2022-07-15 08:32:44.074	info	State value to set for "0_userdata.0.System.Adapter-Instanzen.admin_0.info.connected_with_device_service" has to be type "boolean" but received type "string"
                    
                    javascript.0
                    2022-07-15 08:32:44.053	warn	at AdapterInstance._initAdapterInstanceAsync (script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher:230:9)
                    
                    javascript.0
                    2022-07-15 08:32:44.053	warn	at processImmediate (node:internal/timers:437:9)
                    
                    javascript.0
                    2022-07-15 08:32:44.053	warn	at runNextTicks (node:internal/process/task_queues:61:5)
                    
                    javascript.0
                    2022-07-15 08:32:44.053	warn	at runMicrotasks (<anonymous>)
                    
                    javascript.0
                    2022-07-15 08:32:44.053	warn	at AdapterInstance.asyncUpdateStates (script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher:396:21)
                    
                    javascript.0
                    2022-07-15 08:32:44.053	warn	at setState (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1532:20)
                    
                    javascript.0
                    2022-07-15 08:32:44.052	warn	You are assigning a string to the state "0_userdata.0.System.Adapter-Instanzen.admin_0.info.connected_with_device_service" which expects a boolean. Please fix your code to use a boolean or change the state type to string. This warning might become an error in future versions.
                    

                    AcguaA Offline
                    AcguaA Offline
                    Acgua
                    schrieb am zuletzt editiert von Acgua
                    #9

                    Vielen Dank für euer Feedback @frana120500 und @ciddi89 !

                    @ciddi89
                    Danke für den Logauszug, Problem also bei den Instanzen "admin.0" und "mqtt.0" bezüglich String statt Boolean.
                    mqtt habe ich derzeit nicht im Einsatz, aber den admin zwangsläufig :grin:

                    Leider kann ich den Fehler bei admin.0 und allen anderen Instanzen nicht reproduzieren.
                    Für sämtliche Instanzen bekomme ich mit einem log(), eine Zeile vor dem setState(), auf Prüfung der Variable immer ein Boolean, hier als Auszug für admin.0:

                    16:28:03.008	warn	javascript.0 (1047) script.js.System.Adapter-Instance-Watcher: [admin.0] Type=[boolean], Value stringified=[true]
                    

                    Könntest du mir bitte einen Gefallen tun und Zeile 396, also

                    setState(this.path + '.info.connected_with_device_service', {val:this.connected_with_device_service, ack:true});
                    

                    löschen und ersetzen mit:

                                        ///// - TEST 1 - 15.07.2022 - https://forum.iobroker.net/post/827939
                                        if (typeof this.connected_with_device_service !== 'boolean') {
                                            log(`[${this.id}] connected_with_device_service type error, boolean expected – Type=[${typeof this.connected_with_device_service}], Value stringified=[${JSON.stringify(this.connected_with_device_service)}]`, 'warn');
                                        } else {
                                            setState(this.path + '.info.connected_with_device_service', {val:this.connected_with_device_service, ack:true});
                                        }
                                        /////////////////////////////////////////////////////////////////
                    

                    Welche Log-Ausgabe bekommst du da? Da sollte jetzt für "admin.0" und "mqtt.0" jeweils eine warn-Logzeile kommen mit Datentyp und Wert.

                    Welche JavaScript-Adapter-Version setzt du denn ein? Ich aktuell 5.8.10, und bis vor kurzem 5.8.3 / 5.8.5.

                    Danke!

                    ? 1 Antwort Letzte Antwort
                    0
                    • AcguaA Acgua

                      Vielen Dank für euer Feedback @frana120500 und @ciddi89 !

                      @ciddi89
                      Danke für den Logauszug, Problem also bei den Instanzen "admin.0" und "mqtt.0" bezüglich String statt Boolean.
                      mqtt habe ich derzeit nicht im Einsatz, aber den admin zwangsläufig :grin:

                      Leider kann ich den Fehler bei admin.0 und allen anderen Instanzen nicht reproduzieren.
                      Für sämtliche Instanzen bekomme ich mit einem log(), eine Zeile vor dem setState(), auf Prüfung der Variable immer ein Boolean, hier als Auszug für admin.0:

                      16:28:03.008	warn	javascript.0 (1047) script.js.System.Adapter-Instance-Watcher: [admin.0] Type=[boolean], Value stringified=[true]
                      

                      Könntest du mir bitte einen Gefallen tun und Zeile 396, also

                      setState(this.path + '.info.connected_with_device_service', {val:this.connected_with_device_service, ack:true});
                      

                      löschen und ersetzen mit:

                                          ///// - TEST 1 - 15.07.2022 - https://forum.iobroker.net/post/827939
                                          if (typeof this.connected_with_device_service !== 'boolean') {
                                              log(`[${this.id}] connected_with_device_service type error, boolean expected – Type=[${typeof this.connected_with_device_service}], Value stringified=[${JSON.stringify(this.connected_with_device_service)}]`, 'warn');
                                          } else {
                                              setState(this.path + '.info.connected_with_device_service', {val:this.connected_with_device_service, ack:true});
                                          }
                                          /////////////////////////////////////////////////////////////////
                      

                      Welche Log-Ausgabe bekommst du da? Da sollte jetzt für "admin.0" und "mqtt.0" jeweils eine warn-Logzeile kommen mit Datentyp und Wert.

                      Welche JavaScript-Adapter-Version setzt du denn ein? Ich aktuell 5.8.10, und bis vor kurzem 5.8.3 / 5.8.5.

                      Danke!

                      ? Offline
                      ? Offline
                      Ein ehemaliger Benutzer
                      schrieb am zuletzt editiert von
                      #10

                      @acgua ja bei allen anderen Instanzen ist es auch der Typ Boolean. Komischerweise hier aber nicht, dort steht auch ein String drin. Javascript Adapter Version ist die 5.7.0. Sollte also die stable sein. Hier die Ausgabe vom Log aus deinem Test:

                         2022-07-15 17:13:15.307	warn	script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher: [admin.0] connected_with_device_service type error, boolean expected – Type=[string], Value stringified=["[1]admin"]
                      
                      javascript.0
                      2022-07-15 17:13:06.405	warn	script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher: [mqtt.0] connected_with_device_service type error, boolean expected – Type=[string], Value stringified=["remeha logger,Klimastation_0"]
                      
                      javascript.0
                      2022-07-15 17:13:06.380	warn	script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher: [admin.0] connected_with_device_service type error, boolean expected – Type=[string], Value stringified=["[2]admin, javascript"]
                      
                      javascript.0
                      2022-07-15 17:13:06.118	info	script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher: ...Initialisierung erfolgreich abgeschlossen.
                      
                      javascript.0
                      2022-07-15 17:13:06.118	info	script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher: ...33 Adapter-Instanzen instanziiert: admin.0, alexa2.0, backitup.0, ble.0, chromecast.0, denon.0, device-reminder.0, device-watcher.0, discovery.0, fakeroku.0, harmony.0, hm-rega.0, hm-rpc.0, hm-rpc.1, influxdb.0, iot.0, javascript.0, logparser.0, lovelace.0, mihome-vacuum.0, mihome-vacuum.1, mqtt.0, net-tools.0, netatmo-crawler.0, pi-hole.0, pushover.0, sonos.0, switchbot-ble.0, tankerkoenig.0, unifi.0, web.0, yahka.0, zigbee.0
                      
                      javascript.0
                      2022-07-15 17:13:06.057	info	script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher: registered 0 subscriptions and 0 schedules
                      
                      javascript.0
                      2022-07-15 17:13:06.057	info	script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher: Initialisiere Adapter-Instanzen-Script...
                      
                      javascript.0
                      2022-07-15 17:13:06.046	info	Start javascript script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher
                      

                      AcguaA 1 Antwort Letzte Antwort
                      0
                      • frana120500F frana120500

                        Vielen Dank für das Script.Das schaut wirklich klasse aus.

                        Dann baue ich mir mal meine Telegram Benachrichtigung zusammen (mit Blockly) für den Fall, dass eine Instanz ausgfällt.

                        Danke für deine Arbeit.

                        AcguaA Offline
                        AcguaA Offline
                        Acgua
                        schrieb am zuletzt editiert von
                        #11

                        @frana120500 said in [Javascript] Adapter-Instanzen überwachen:

                        Dann baue ich mir mal meine Telegram Benachrichtigung zusammen (mit Blockly) für den Fall, dass eine Instanz ausgfällt.

                        Sag gerne Bescheid, falls du noch zusätzliche Datenpunkte brauchst.
                        Ich überlege mir da auch noch was sinnvolles.
                        Gibt ja Adapter, die mal für paar Minuten keine Verbindung mit einem Service haben, aber da möchte man dann nicht ständig Telegram-Messages bekommen.
                        Außerdem wäre wohl eine Historie sinnvoll, um nachzuvollziehen, wann und wie lange pro Tag eine Instanz nicht "functioning" war.

                        frana120500F 1 Antwort Letzte Antwort
                        0
                        • ? Ein ehemaliger Benutzer

                          @acgua ja bei allen anderen Instanzen ist es auch der Typ Boolean. Komischerweise hier aber nicht, dort steht auch ein String drin. Javascript Adapter Version ist die 5.7.0. Sollte also die stable sein. Hier die Ausgabe vom Log aus deinem Test:

                             2022-07-15 17:13:15.307	warn	script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher: [admin.0] connected_with_device_service type error, boolean expected – Type=[string], Value stringified=["[1]admin"]
                          
                          javascript.0
                          2022-07-15 17:13:06.405	warn	script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher: [mqtt.0] connected_with_device_service type error, boolean expected – Type=[string], Value stringified=["remeha logger,Klimastation_0"]
                          
                          javascript.0
                          2022-07-15 17:13:06.380	warn	script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher: [admin.0] connected_with_device_service type error, boolean expected – Type=[string], Value stringified=["[2]admin, javascript"]
                          
                          javascript.0
                          2022-07-15 17:13:06.118	info	script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher: ...Initialisierung erfolgreich abgeschlossen.
                          
                          javascript.0
                          2022-07-15 17:13:06.118	info	script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher: ...33 Adapter-Instanzen instanziiert: admin.0, alexa2.0, backitup.0, ble.0, chromecast.0, denon.0, device-reminder.0, device-watcher.0, discovery.0, fakeroku.0, harmony.0, hm-rega.0, hm-rpc.0, hm-rpc.1, influxdb.0, iot.0, javascript.0, logparser.0, lovelace.0, mihome-vacuum.0, mihome-vacuum.1, mqtt.0, net-tools.0, netatmo-crawler.0, pi-hole.0, pushover.0, sonos.0, switchbot-ble.0, tankerkoenig.0, unifi.0, web.0, yahka.0, zigbee.0
                          
                          javascript.0
                          2022-07-15 17:13:06.057	info	script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher: registered 0 subscriptions and 0 schedules
                          
                          javascript.0
                          2022-07-15 17:13:06.057	info	script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher: Initialisiere Adapter-Instanzen-Script...
                          
                          javascript.0
                          2022-07-15 17:13:06.046	info	Start javascript script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher
                          

                          AcguaA Offline
                          AcguaA Offline
                          Acgua
                          schrieb am zuletzt editiert von
                          #12

                          @ciddi89
                          Danke. Ich wollte auf JS-Adapter 5.7.0 downgraden zum testen, aber bekomme diverse npm errors und klappt nicht... Ich bin immer im Latest unterwegs, mit derzeit Node.js v16.15.1, NPM: 8.11.0, JS-Controller 4.0.23

                          Seltsam jedenfalls, aber das könnte auch ein Bug der 5.7.0 sein, der in nachfolgenden Versionen behoben ist.

                          Die String-Ausgaben sind jedenfalls interessant, weil diese eigentlich nur boolean sein können:

                          [admin.0] Type=[string], Value stringified=["[1]admin"]
                          [mqtt.0] Type=[string], Value stringified=["remeha logger,Klimastation_0"]
                          [admin.0] Type=[string], Value stringified=["[2]admin, javascript"]
                          


                          Der Wert wird abgefragt von z.B. admin.0.info.connection, über

                                          if (await existsStateAsync(`${this.id}.info.connection`)) {
                                              const infConnObj = await getStateAsync(`${this.id}.info.connection`);
                                              this.connected_with_device_service = infConnObj.val;                    
                                          }
                          


                          Und admin.0.info.connection ist boolean.

                          ab568aef-d767-4933-8ef6-7d8e82d6a4ef-image.png

                          Muss mir mal was überlegen. Eigentlich nur eine Kleinigkeit, aber nervt jetzt grad :joy:

                          ? 1 Antwort Letzte Antwort
                          0
                          • AcguaA Acgua

                            @frana120500 said in [Javascript] Adapter-Instanzen überwachen:

                            Dann baue ich mir mal meine Telegram Benachrichtigung zusammen (mit Blockly) für den Fall, dass eine Instanz ausgfällt.

                            Sag gerne Bescheid, falls du noch zusätzliche Datenpunkte brauchst.
                            Ich überlege mir da auch noch was sinnvolles.
                            Gibt ja Adapter, die mal für paar Minuten keine Verbindung mit einem Service haben, aber da möchte man dann nicht ständig Telegram-Messages bekommen.
                            Außerdem wäre wohl eine Historie sinnvoll, um nachzuvollziehen, wann und wie lange pro Tag eine Instanz nicht "functioning" war.

                            frana120500F Offline
                            frana120500F Offline
                            frana120500
                            schrieb am zuletzt editiert von
                            #13

                            @acgua Historie wäre geil, dann könnte man eventuelle Fehlerquellen zeitlich eingrenzen

                            AcguaA 1 Antwort Letzte Antwort
                            0
                            • frana120500F frana120500

                              @acgua Historie wäre geil, dann könnte man eventuelle Fehlerquellen zeitlich eingrenzen

                              AcguaA Offline
                              AcguaA Offline
                              Acgua
                              schrieb am zuletzt editiert von
                              #14

                              @frana120500
                              cool, dachte ich mir auch, dann baue ich das noch ein.

                              Welche JS-Adapter-Version setzt du denn ein? Bekommst du evtl. auch Warnungen wie You are assigning a string to the state (...) which expects a boolean. im Log?

                              frana120500F 1 Antwort Letzte Antwort
                              0
                              • AcguaA Acgua

                                @ciddi89
                                Danke. Ich wollte auf JS-Adapter 5.7.0 downgraden zum testen, aber bekomme diverse npm errors und klappt nicht... Ich bin immer im Latest unterwegs, mit derzeit Node.js v16.15.1, NPM: 8.11.0, JS-Controller 4.0.23

                                Seltsam jedenfalls, aber das könnte auch ein Bug der 5.7.0 sein, der in nachfolgenden Versionen behoben ist.

                                Die String-Ausgaben sind jedenfalls interessant, weil diese eigentlich nur boolean sein können:

                                [admin.0] Type=[string], Value stringified=["[1]admin"]
                                [mqtt.0] Type=[string], Value stringified=["remeha logger,Klimastation_0"]
                                [admin.0] Type=[string], Value stringified=["[2]admin, javascript"]
                                


                                Der Wert wird abgefragt von z.B. admin.0.info.connection, über

                                                if (await existsStateAsync(`${this.id}.info.connection`)) {
                                                    const infConnObj = await getStateAsync(`${this.id}.info.connection`);
                                                    this.connected_with_device_service = infConnObj.val;                    
                                                }
                                


                                Und admin.0.info.connection ist boolean.

                                ab568aef-d767-4933-8ef6-7d8e82d6a4ef-image.png

                                Muss mir mal was überlegen. Eigentlich nur eine Kleinigkeit, aber nervt jetzt grad :joy:

                                ? Offline
                                ? Offline
                                Ein ehemaliger Benutzer
                                schrieb am zuletzt editiert von
                                #15

                                @acgua ja deswegen hat es mich gewundert und darum habe ich den Fehler hier rein gestellt. Für mich persönlich nicht schlimm, wie gesagt hab die zwei Datenpunkte auf String umgeändert. Aber ich weiß wie es ist das so eine Kleinigkeit einen stören kann und man wissen will wieso weshalb warum. Wenn ich später mal Zeit habe schaue ich mir das Skript auch mal in Ruhe an, vielleicht finde ich auch selbst heraus woher es kommen könnte. :)

                                1 Antwort Letzte Antwort
                                1
                                • AcguaA Acgua

                                  @frana120500
                                  cool, dachte ich mir auch, dann baue ich das noch ein.

                                  Welche JS-Adapter-Version setzt du denn ein? Bekommst du evtl. auch Warnungen wie You are assigning a string to the state (...) which expects a boolean. im Log?

                                  frana120500F Offline
                                  frana120500F Offline
                                  frana120500
                                  schrieb am zuletzt editiert von
                                  #16

                                  @acgua Hi, ich nutze den Script Adapter in Version 5.8.10... also die letzte Beta

                                  Ich bekomme aufgrund des Sonoff und des MQTT Adapters die folgenden Fehlermeldungen:

                                  You are assigning a string to the state "0_userdata.0.System.Adapter-Instanzen.sonoff_0.info.connected_with_device_service" which expects a boolean. Please fix your code to use a boolean or change the state type to string. This warning might become an error in future versions.

                                  You are assigning a string to the state "0_userdata.0.System.Adapter-Instanzen.mqtt_0.info.connected_with_device_service" which expects a boolean. Please fix your code to use a boolean or change the state type to string. This warning might become an error in future versions.
                                  
                                  AcguaA 1 Antwort Letzte Antwort
                                  0
                                  • frana120500F frana120500

                                    @acgua Hi, ich nutze den Script Adapter in Version 5.8.10... also die letzte Beta

                                    Ich bekomme aufgrund des Sonoff und des MQTT Adapters die folgenden Fehlermeldungen:

                                    You are assigning a string to the state "0_userdata.0.System.Adapter-Instanzen.sonoff_0.info.connected_with_device_service" which expects a boolean. Please fix your code to use a boolean or change the state type to string. This warning might become an error in future versions.

                                    You are assigning a string to the state "0_userdata.0.System.Adapter-Instanzen.mqtt_0.info.connected_with_device_service" which expects a boolean. Please fix your code to use a boolean or change the state type to string. This warning might become an error in future versions.
                                    
                                    AcguaA Offline
                                    AcguaA Offline
                                    Acgua
                                    schrieb am zuletzt editiert von Acgua
                                    #17

                                    @frana120500
                                    Danke. Auch noch mal an @ciddi89 für deine Rückinfo.

                                    Dann muss ich mir das die Tage mal näher ansehen, gerade weil es auch im Latest (5.8.10) vorkommt, das ist sehr wichtig zu wissen.
                                    Ich habe nur beschränkt Zeit, daher brauche ich ggf. ein paar Tage, also bitte nicht wundern, aber ich kümmere mich darum.
                                    Ist nur eine Kleinigkeit und eher ein "Schönheitsfehler", weil sonst ja alles läuft, aber nervt mich :grin: und werde ich lösen, also die Ursache.

                                    ? 1 Antwort Letzte Antwort
                                    0
                                    • AcguaA Acgua

                                      @frana120500
                                      Danke. Auch noch mal an @ciddi89 für deine Rückinfo.

                                      Dann muss ich mir das die Tage mal näher ansehen, gerade weil es auch im Latest (5.8.10) vorkommt, das ist sehr wichtig zu wissen.
                                      Ich habe nur beschränkt Zeit, daher brauche ich ggf. ein paar Tage, also bitte nicht wundern, aber ich kümmere mich darum.
                                      Ist nur eine Kleinigkeit und eher ein "Schönheitsfehler", weil sonst ja alles läuft, aber nervt mich :grin: und werde ich lösen, also die Ursache.

                                      ? Offline
                                      ? Offline
                                      Ein ehemaliger Benutzer
                                      schrieb am zuletzt editiert von
                                      #18

                                      @acgua hehe ja gerne doch. Mach dir kein Stress, wie du schon sagst: es ist nur ein Schönheitsfehler. Und ich kenne das nur zu gut mit der Zeit. Das Problem habe ich und viele andere auch hier.😬 Falls ich vorher schon was finde, gebe ich dir natürlich Bescheid. :)

                                      AcguaA 1 Antwort Letzte Antwort
                                      1
                                      • ? Ein ehemaliger Benutzer

                                        @acgua hehe ja gerne doch. Mach dir kein Stress, wie du schon sagst: es ist nur ein Schönheitsfehler. Und ich kenne das nur zu gut mit der Zeit. Das Problem habe ich und viele andere auch hier.😬 Falls ich vorher schon was finde, gebe ich dir natürlich Bescheid. :)

                                        AcguaA Offline
                                        AcguaA Offline
                                        Acgua
                                        schrieb am zuletzt editiert von
                                        #19

                                        @ciddi89 und @frana120500
                                        Ich habe nun Version 0.0.2 veröffentlicht, Änderung:

                                        • Acgua – Workaround aufgrund Issue #1 eingebaut. In manchen ioBroker-Umgebungen scheint die Abfrage von admin.0.info.connection (sowie bisher identifizierte Adapter mqtt und sonoff) kein Boolean zurückzugeben, sondern ein String wie etwa [2]admin, javascript. Ich kann es nicht reproduzieren aber habe ein Workaround eingebaut. Bei Ausgabe eines Strings (Länge > 1) wird angenommen, dass eine Verbindung besteht.

                                        Hier übrigens die Änderungen im Script:
                                        https://github.com/Acgua/ioBroker-Script-Adapter-Instances-Watcher/commit/08b171e5a93995eab65d9400bc049cc25760e382

                                        Link zum Projekt: https://github.com/Acgua/ioBroker-Script-Adapter-Instances-Watcher

                                        ? JLegJ 2 Antworten Letzte Antwort
                                        0
                                        • AcguaA Acgua

                                          @ciddi89 und @frana120500
                                          Ich habe nun Version 0.0.2 veröffentlicht, Änderung:

                                          • Acgua – Workaround aufgrund Issue #1 eingebaut. In manchen ioBroker-Umgebungen scheint die Abfrage von admin.0.info.connection (sowie bisher identifizierte Adapter mqtt und sonoff) kein Boolean zurückzugeben, sondern ein String wie etwa [2]admin, javascript. Ich kann es nicht reproduzieren aber habe ein Workaround eingebaut. Bei Ausgabe eines Strings (Länge > 1) wird angenommen, dass eine Verbindung besteht.

                                          Hier übrigens die Änderungen im Script:
                                          https://github.com/Acgua/ioBroker-Script-Adapter-Instances-Watcher/commit/08b171e5a93995eab65d9400bc049cc25760e382

                                          Link zum Projekt: https://github.com/Acgua/ioBroker-Script-Adapter-Instances-Watcher

                                          ? Offline
                                          ? Offline
                                          Ein ehemaliger Benutzer
                                          schrieb am zuletzt editiert von
                                          #20

                                          @acgua danke, hab die neue Version gleich ausprobiert. :) Vielen dank für die Arbeit. Das log sieht nun so aus:

                                             2022-07-18 20:16:51.686	warn	script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher: admin.0.info.connection returns String "[1]admin", but boolean expected. We assume connection is true and continue.
                                          
                                          javascript.0
                                          2022-07-18 20:16:07.087	warn	script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher: mqtt.0.info.connection returns String "remeha logger,Klimastation_0", but boolean expected. We assume connection is true and continue.
                                          
                                          javascript.0
                                          2022-07-18 20:16:07.051	warn	script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher: admin.0.info.connection returns String "[2]admin, javascript", but boolean expected. We assume connection is true and continue.
                                          
                                          javascript.0
                                          2022-07-18 20:16:06.973	info	script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher: ...Initialisierung erfolgreich abgeschlossen.
                                          
                                          javascript.0
                                          2022-07-18 20:16:06.973	info	script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher: ...33 Adapter-Instanzen instanziiert: admin.0, alexa2.0, backitup.0, ble.0, chromecast.0, denon.0, device-reminder.0, device-watcher.0, discovery.0, fakeroku.0, harmony.0, hm-rega.0, hm-rpc.0, hm-rpc.1, influxdb.0, iot.0, javascript.0, logparser.0, lovelace.0, mihome-vacuum.0, mihome-vacuum.1, mqtt.0, net-tools.0, netatmo-crawler.0, pi-hole.0, pushover.0, sonos.0, switchbot-ble.0, tankerkoenig.0, unifi.0, web.0, yahka.0, zigbee.0
                                          
                                          javascript.0
                                          2022-07-18 20:16:06.906	info	State value to set for "0_userdata.0.System.Adapter-Instanzen._all.notFunctioningList" has to be stringified but received type "object"
                                          
                                          javascript.0
                                          2022-07-18 20:16:06.895	warn	This object will not be created in future versions. Please report this to the developer.
                                          
                                          javascript.0
                                          2022-07-18 20:16:06.895	warn	Object 0_userdata.0.System.Adapter-Instanzen._all.notFunctioningList is invalid: Default value has to be stringified but received type "object"
                                          
                                          javascript.0
                                          2022-07-18 20:16:06.869	info	script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher: registered 0 subscriptions and 0 schedules
                                          
                                          javascript.0
                                          2022-07-18 20:16:06.868	info	script.js.Datenpunkte.ioBroker.Adapter-Instance-Watcher: Initialisiere Adapter-Instanzen-Script...
                                          

                                          AcguaA 1 Antwort Letzte Antwort
                                          1
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          559

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          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