Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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. Skripten / Logik
  4. JavaScript
  5. [gelöst] Javascript-Adapter: unterschiedliches Verhalten in unterschiedlichen Instanzen

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    779

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    586

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    1.1k

[gelöst] Javascript-Adapter: unterschiedliches Verhalten in unterschiedlichen Instanzen

Geplant Angeheftet Gesperrt Verschoben JavaScript
4 Beiträge 2 Kommentatoren 219 Aufrufe 1 Beobachtet
  • Ä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.
  • Lenny.CBL Offline
    Lenny.CBL Offline
    Lenny.CB
    Most Active
    schrieb am zuletzt editiert von Lenny.CB
    #1

    Moin zusammen,
    ich brauche mal wieder Hilfe. Bei einer "Fehlersuche" habe ich eine Unregelmäßigkeit entdeckt. Kann mir das nicht erklären.

    Bei mir ist schon lange ein Script am laufen, dass mir Zustände von Sensoren liefert. Hier mal auf das Wesentliche eingekürzt.:

    var logging = true; 
    
    addDeviceCounter("lowbat_ble",          $('channel[state.id=ble.*.battery]'),       function(state){return state<10});
    addDeviceCounter("lowbat_zigbee",       $('channel[state.id=zigbee.*.battery]'),    function(state){return state<=100});
    
    function addDeviceCounter(name, selector, val_to_count) {
    
        function countDevs(obj) {
            var d_count = 0;
            var d_list  = [];
            
            var g_count = 0;
    
            selector.each(function (id, i) {
                var status = getState(id).val;
                var obj    = getObject(id);
                if ((typeof val_to_count === 'function' && val_to_count(status)) ||
                    (typeof val_to_count === 'boolean'  && val_to_count == status)) {
                    //Get parent object
                    var parentChannelId = id.slice(id.lastIndexOf("."));
                        if (name === 'lowbat_zigbee') {
                            var parentDevicelId = id.split(".").slice(0,-1).join(".");
                            var deviceObject    = getObject(parentDevicelId);
                            d_list.push(deviceObject.common.name);
                        }
                        else{
                            var parentDevicelId = id.split(".", 3).join(".");
                            var deviceObject = getObject(parentDevicelId);
                            //remember device name
                            d_list.push(deviceObject.common.name);
                        }
                }                
                ++d_count;
            }); 
    
            if (logging) log(name + "(" + d_count + "): " + d_list);
            
        }
    
        selector.on(function(obj) {
            countDevs(obj);
        });
    
        schedule(" */1 * * * ", countDevs);
            countDevs();
    }
    

    Nun habe ich bemerkt, dass keine Zigbee-Sensoren gefunden werden. Mir ist dann ehr durch Zufall Folgendes aufgefallen:

    in der Javascript-Instanz 0 werden die Zigbee-Sensoren nicht gefunden

    08:49:00.071	info	javascript.0 script.js.Testscripte.test_Inst_0: lowbat_zigbee(0):
    08:49:00.071	info	javascript.0 script.js.Testscripte.test_Inst_0: lowbat_ble(7): TH EG Wohnzimmer
    

    in der Javascript-Instanz 3 werden die Zigbee-Sensoren gefunden

    08:47:00.030	info	javascript.3 script.js.Testscripte.test_Inst_3: lowbat_zigbee(3): taster_Pool_Licht,vibration_Test,cube_EG_WZ
    08:47:09.728	info	javascript.3 script.js.Testscripte.test_Inst_3: lowbat_ble(7): TH EG Wohnzimmer
    

    wie gesagt, ist das Selbe Script, läuft nur auf unterschiedlichen Instanzen und Systemen (Master/Slave).

    hier nochmal die Verteilung (fallst das relevant ist):
    Master --> javascript.0 + javascript.1 + zigbee.0
    Slave1 --> javascript.2
    Slave2 --> javascript 3 + ble.0

    HomoranH 1 Antwort Letzte Antwort
    0
    • Lenny.CBL Lenny.CB

      Moin zusammen,
      ich brauche mal wieder Hilfe. Bei einer "Fehlersuche" habe ich eine Unregelmäßigkeit entdeckt. Kann mir das nicht erklären.

      Bei mir ist schon lange ein Script am laufen, dass mir Zustände von Sensoren liefert. Hier mal auf das Wesentliche eingekürzt.:

      var logging = true; 
      
      addDeviceCounter("lowbat_ble",          $('channel[state.id=ble.*.battery]'),       function(state){return state<10});
      addDeviceCounter("lowbat_zigbee",       $('channel[state.id=zigbee.*.battery]'),    function(state){return state<=100});
      
      function addDeviceCounter(name, selector, val_to_count) {
      
          function countDevs(obj) {
              var d_count = 0;
              var d_list  = [];
              
              var g_count = 0;
      
              selector.each(function (id, i) {
                  var status = getState(id).val;
                  var obj    = getObject(id);
                  if ((typeof val_to_count === 'function' && val_to_count(status)) ||
                      (typeof val_to_count === 'boolean'  && val_to_count == status)) {
                      //Get parent object
                      var parentChannelId = id.slice(id.lastIndexOf("."));
                          if (name === 'lowbat_zigbee') {
                              var parentDevicelId = id.split(".").slice(0,-1).join(".");
                              var deviceObject    = getObject(parentDevicelId);
                              d_list.push(deviceObject.common.name);
                          }
                          else{
                              var parentDevicelId = id.split(".", 3).join(".");
                              var deviceObject = getObject(parentDevicelId);
                              //remember device name
                              d_list.push(deviceObject.common.name);
                          }
                  }                
                  ++d_count;
              }); 
      
              if (logging) log(name + "(" + d_count + "): " + d_list);
              
          }
      
          selector.on(function(obj) {
              countDevs(obj);
          });
      
          schedule(" */1 * * * ", countDevs);
              countDevs();
      }
      

      Nun habe ich bemerkt, dass keine Zigbee-Sensoren gefunden werden. Mir ist dann ehr durch Zufall Folgendes aufgefallen:

      in der Javascript-Instanz 0 werden die Zigbee-Sensoren nicht gefunden

      08:49:00.071	info	javascript.0 script.js.Testscripte.test_Inst_0: lowbat_zigbee(0):
      08:49:00.071	info	javascript.0 script.js.Testscripte.test_Inst_0: lowbat_ble(7): TH EG Wohnzimmer
      

      in der Javascript-Instanz 3 werden die Zigbee-Sensoren gefunden

      08:47:00.030	info	javascript.3 script.js.Testscripte.test_Inst_3: lowbat_zigbee(3): taster_Pool_Licht,vibration_Test,cube_EG_WZ
      08:47:09.728	info	javascript.3 script.js.Testscripte.test_Inst_3: lowbat_ble(7): TH EG Wohnzimmer
      

      wie gesagt, ist das Selbe Script, läuft nur auf unterschiedlichen Instanzen und Systemen (Master/Slave).

      hier nochmal die Verteilung (fallst das relevant ist):
      Master --> javascript.0 + javascript.1 + zigbee.0
      Slave1 --> javascript.2
      Slave2 --> javascript 3 + ble.0

      HomoranH Nicht stören
      HomoranH Nicht stören
      Homoran
      Global Moderator Administrators
      schrieb am zuletzt editiert von
      #2

      @Lenny-CB
      I
      Laufen beide instanzen auf dem host, an dem die Hardware hängt?

      kein Support per PN! - Fragen im Forum stellen -
      Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.
      Das Forum freut sich über eine Spende. Benutzt dazu den Spendenbutton oben rechts. Danke!
      der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

      Lenny.CBL 1 Antwort Letzte Antwort
      0
      • HomoranH Homoran

        @Lenny-CB
        I
        Laufen beide instanzen auf dem host, an dem die Hardware hängt?

        Lenny.CBL Offline
        Lenny.CBL Offline
        Lenny.CB
        Most Active
        schrieb am zuletzt editiert von
        #3

        @Homoran
        nein
        Master --> javascript.0 + javascript.1 + zigbee.0
        Slave1 --> javascript.2
        Slave2 --> javascript 3 + ble.0

        und es wird sogar noch schlimmer. Grad nochmal die Instanz auf 1 gewechselt, da geht es:

        09:07:27.607	info	javascript.1 script.js.Testscripte.test_Inst_1: lowbat_ble(7):
        09:07:27.607	info	javascript.1 script.js.Testscripte.test_Inst_1: lowbat_zigbee(3): taster_Pool_Licht,vibration_Test,cube_EG_WZ
        

        Zusammenfassung: das Script läuft also korrekt auf Instanz 1,2,3 (also auf dem Master und beiden Slaves)
        nur auf Instanz 0 auf dem Master läuft es nicht.

        Lenny.CBL 1 Antwort Letzte Antwort
        0
        • Lenny.CBL Lenny.CB

          @Homoran
          nein
          Master --> javascript.0 + javascript.1 + zigbee.0
          Slave1 --> javascript.2
          Slave2 --> javascript 3 + ble.0

          und es wird sogar noch schlimmer. Grad nochmal die Instanz auf 1 gewechselt, da geht es:

          09:07:27.607	info	javascript.1 script.js.Testscripte.test_Inst_1: lowbat_ble(7):
          09:07:27.607	info	javascript.1 script.js.Testscripte.test_Inst_1: lowbat_zigbee(3): taster_Pool_Licht,vibration_Test,cube_EG_WZ
          

          Zusammenfassung: das Script läuft also korrekt auf Instanz 1,2,3 (also auf dem Master und beiden Slaves)
          nur auf Instanz 0 auf dem Master läuft es nicht.

          Lenny.CBL Offline
          Lenny.CBL Offline
          Lenny.CB
          Most Active
          schrieb am zuletzt editiert von
          #4

          Update:
          Thema ist erst einmal vom Tisch.
          Ich hatte grad für Instanz.0 auf "debug" umgestellt, nach dem Neustart der Instanz wurden die Sensoren wieder gefunden.

          Wenn mir das Verhalten jemand erklären könnte?!

          1 Antwort Letzte Antwort
          0

          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

          Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

          Registrieren Anmelden
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          570

          Online

          32.8k

          Benutzer

          82.9k

          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