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. Skripten / Logik
  4. JavaScript
  5. Frage zu DeviceCounter script [object Object]

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    10
    1
    309

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

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

Frage zu DeviceCounter script [object Object]

Geplant Angeheftet Gesperrt Verschoben JavaScript
15 Beiträge 2 Kommentatoren 892 Aufrufe 1 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.
  • A Archimedeus

    @paul53 said in Frage zu DeviceCounter script [object Object]:

    var room = getObject(id,'rooms').enumNames[0];

    Leider keine Verbesserung:
    438fdf89-781c-49df-892c-87da6f249093-grafik.png

    Leider ist total jetzt auch 0, sollte 2 sein.

    Wenn ich nur wüsste, was mir JS mit [object Object] sagen will. Ich vermute, dass ist ein komplexeres Objekt, auf das man nur richtig zugreifen muss.

    Ich probiere es mal so:

    mylist = getState("javascript.0.deviceCounter.lamps_on.list").val;
    log(mylist); 
    for(var property in mylist) {
        log(property + "=" + mylist[property]);
    }
    

    Laut Google: The default conversion from an object to string is "[object Object]".

    Das Ergebnis ist kurios:

    21.12.2020, 22:13:51.887	[info ]: javascript.0 (1891) Stop script script.js.common.Experimental.ListTest
    21.12.2020, 22:13:52.041	[info ]: javascript.0 (1891) Start javascript script.js.common.Experimental.ListTest
    21.12.2020, 22:13:52.065	[info ]: javascript.0 (1891) script.js.common.Experimental.ListTest: [object Object]
    21.12.2020, 22:13:52.065	[info ]: javascript.0 (1891) script.js.common.Experimental.ListTest: 0=[
    21.12.2020, 22:13:52.066	[info ]: javascript.0 (1891) script.js.common.Experimental.ListTest: 1=o
    21.12.2020, 22:13:52.066	[info ]: javascript.0 (1891) script.js.common.Experimental.ListTest: 2=b
    21.12.2020, 22:13:52.066	[info ]: javascript.0 (1891) script.js.common.Experimental.ListTest: 3=j
    21.12.2020, 22:13:52.066	[info ]: javascript.0 (1891) script.js.common.Experimental.ListTest: 4=e
    21.12.2020, 22:13:52.066	[info ]: javascript.0 (1891) script.js.common.Experimental.ListTest: 5=c
    21.12.2020, 22:13:52.067	[info ]: javascript.0 (1891) script.js.common.Experimental.ListTest: 6=t
    21.12.2020, 22:13:52.067	[info ]: javascript.0 (1891) script.js.common.Experimental.ListTest: 7= 
    21.12.2020, 22:13:52.067	[info ]: javascript.0 (1891) script.js.common.Experimental.ListTest: 8=O
    21.12.2020, 22:13:52.067	[info ]: javascript.0 (1891) script.js.common.Experimental.ListTest: 9=b
    21.12.2020, 22:13:52.067	[info ]: javascript.0 (1891) script.js.common.Experimental.ListTest: 10=j
    21.12.2020, 22:13:52.068	[info ]: javascript.0 (1891) script.js.common.Experimental.ListTest: 11=e
    21.12.2020, 22:13:52.068	[info ]: javascript.0 (1891) script.js.common.Experimental.ListTest: 12=c
    21.12.2020, 22:13:52.068	[info ]: javascript.0 (1891) script.js.common.Experimental.ListTest: 13=t
    21.12.2020, 22:13:52.068	[info ]: javascript.0 (1891) script.js.common.Experimental.ListTest: 14=]
    21.12.2020, 22:13:52.069	[info ]: javascript.0 (1891) script.js.common.Experimental.ListTest: registered 0 subscriptions and 0 schedules
    
    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von paul53
    #6

    @Archimedeus
    Was sagt das Log (anstelle Zeile 41)?

            log(d_list);
    

    @Archimedeus sagte in Frage zu DeviceCounter script [object Object]:

    Leider ist total jetzt auch 0, sollte 2 sein.

    An der Zählung (Zeile 39) hat sich nichts geändert ?

    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

    A 1 Antwort Letzte Antwort
    0
    • paul53P paul53

      @Archimedeus
      Was sagt das Log (anstelle Zeile 41)?

              log(d_list);
      

      @Archimedeus sagte in Frage zu DeviceCounter script [object Object]:

      Leider ist total jetzt auch 0, sollte 2 sein.

      An der Zählung (Zeile 39) hat sich nichts geändert ?

      A Offline
      A Offline
      Archimedeus
      schrieb am zuletzt editiert von
      #7

      @paul53

      Ich bin etwas weiter.

      var roomsX = getObject(id,'rooms');
      

      Die Zeile gibt schon das object Obct. Grund ist, dass in der Aufzählung direkt die Endpunkte -POWER stehen. ID ist dann also sonoff.0.sonoff1.POWER Da drin ist natürlich kein .rooms drin. Ich muss den Aufruf anders machen. Habe jetzt in der Auzählung sonoff.0.sonoff1 und versuche es so:

      addDeviceCounter("lamps_on",$('channel[id=state.*.POWER](functions=sonoff)'),                            true);
      

      Tut aber nicht, findet keine Devices. Ich glaube ioch muss mal drüber schlafen. Hast mir geholfen. Man kämpft sich bit für bit voran.

      paul53P 1 Antwort Letzte Antwort
      0
      • A Archimedeus

        @paul53

        Ich bin etwas weiter.

        var roomsX = getObject(id,'rooms');
        

        Die Zeile gibt schon das object Obct. Grund ist, dass in der Aufzählung direkt die Endpunkte -POWER stehen. ID ist dann also sonoff.0.sonoff1.POWER Da drin ist natürlich kein .rooms drin. Ich muss den Aufruf anders machen. Habe jetzt in der Auzählung sonoff.0.sonoff1 und versuche es so:

        addDeviceCounter("lamps_on",$('channel[id=state.*.POWER](functions=sonoff)'),                            true);
        

        Tut aber nicht, findet keine Devices. Ich glaube ioch muss mal drüber schlafen. Hast mir geholfen. Man kämpft sich bit für bit voran.

        paul53P Offline
        paul53P Offline
        paul53
        schrieb am zuletzt editiert von paul53
        #8

        @Archimedeus sagte in Frage zu DeviceCounter script [object Object]:

        Tut aber nicht, findet keine Devices.

        Versuche es mal so:

        addDeviceCounter("lamps_on",$('sonoff.0.*.POWER'), true);
        

        @Archimedeus sagte in Frage zu DeviceCounter script [object Object]:

        Das Problem mit LOWBATT und LOW_BATT bei HM und HMIP hat der * gelöst

        Das sind unterschiedliche Instanzen.

        Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
        Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

        A 1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @Archimedeus sagte in Frage zu DeviceCounter script [object Object]:

          Tut aber nicht, findet keine Devices.

          Versuche es mal so:

          addDeviceCounter("lamps_on",$('sonoff.0.*.POWER'), true);
          

          @Archimedeus sagte in Frage zu DeviceCounter script [object Object]:

          Das Problem mit LOWBATT und LOW_BATT bei HM und HMIP hat der * gelöst

          Das sind unterschiedliche Instanzen.

          A Offline
          A Offline
          Archimedeus
          schrieb am zuletzt editiert von
          #9

          @paul53 said in Frage zu DeviceCounter script [object Object]:

          addDeviceCounter("lamps_on",$('sonoff.0.*.POWER'), true);

          Das findet alle devices in sonoff (auch die bridge) aber roomsX bleibt object Object.

          Das andere

          addDeviceCounter("battery_homematic",$('channel[state.id=hm-rpc.*.*.0.LOW*]'),     true);
          

          funktioniert wirklich. Er findet die LOW* aus beiden instanzen.

          paul53P 1 Antwort Letzte Antwort
          0
          • A Archimedeus

            @paul53 said in Frage zu DeviceCounter script [object Object]:

            addDeviceCounter("lamps_on",$('sonoff.0.*.POWER'), true);

            Das findet alle devices in sonoff (auch die bridge) aber roomsX bleibt object Object.

            Das andere

            addDeviceCounter("battery_homematic",$('channel[state.id=hm-rpc.*.*.0.LOW*]'),     true);
            

            funktioniert wirklich. Er findet die LOW* aus beiden instanzen.

            paul53P Offline
            paul53P Offline
            paul53
            schrieb am zuletzt editiert von paul53
            #10

            @Archimedeus sagte:

            funktioniert wirklich. Er findet die LOW* aus beiden instanzen.

            Jetzt ist auch keine Instanz angegeben. Der Selektor kann kürzer sein:

            addDeviceCounter("battery_homematic",$('hm-rpc.*.0.LOW*'), true);
            

            @Archimedeus sagte in Frage zu DeviceCounter script [object Object]:

            aber roomsX bleibt object Object.

            Welche Version des Javascript-Adapters ? Sind Räume zugeordnet ?

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            A 1 Antwort Letzte Antwort
            0
            • paul53P paul53

              @Archimedeus sagte:

              funktioniert wirklich. Er findet die LOW* aus beiden instanzen.

              Jetzt ist auch keine Instanz angegeben. Der Selektor kann kürzer sein:

              addDeviceCounter("battery_homematic",$('hm-rpc.*.0.LOW*'), true);
              

              @Archimedeus sagte in Frage zu DeviceCounter script [object Object]:

              aber roomsX bleibt object Object.

              Welche Version des Javascript-Adapters ? Sind Räume zugeordnet ?

              A Offline
              A Offline
              Archimedeus
              schrieb am zuletzt editiert von
              #11

              @paul53
              4.8.4 und ja es sind Räume zugewiesen. Morgen klappts. bestimmt :-)

              paul53P 1 Antwort Letzte Antwort
              0
              • A Archimedeus

                @paul53
                4.8.4 und ja es sind Räume zugewiesen. Morgen klappts. bestimmt :-)

                paul53P Offline
                paul53P Offline
                paul53
                schrieb am zuletzt editiert von
                #12

                @Archimedeus
                Habe nicht mehr daran gedacht: Raumname kann mehrsprachig sein. Deshalb

                                var room = getObject(id,'rooms').enumNames[0];
                                if(typeof room == 'object') room = room.de;
                                if(!d_list.includes(room)) d_list.push(room);
                

                Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                A 1 Antwort Letzte Antwort
                0
                • paul53P paul53

                  @Archimedeus
                  Habe nicht mehr daran gedacht: Raumname kann mehrsprachig sein. Deshalb

                                  var room = getObject(id,'rooms').enumNames[0];
                                  if(typeof room == 'object') room = room.de;
                                  if(!d_list.includes(room)) d_list.push(room);
                  
                  A Offline
                  A Offline
                  Archimedeus
                  schrieb am zuletzt editiert von
                  #13

                  @paul53 said in Frage zu DeviceCounter script [object Object]:

                  var room = getObject(id,'rooms').enumNames[0];

                  Schon besser. Problem: enumNames nimmt nur den ersten Raum. Deshalb stand im Original auch
                  d_list.push(rooms.enumNames)
                  und
                  setState(state_list, d_list.join('-'));

                  Naja, eigentlich sollte ein Gerät auch nur in einem Raum sein...

                  A 1 Antwort Letzte Antwort
                  0
                  • A Archimedeus

                    @paul53 said in Frage zu DeviceCounter script [object Object]:

                    var room = getObject(id,'rooms').enumNames[0];

                    Schon besser. Problem: enumNames nimmt nur den ersten Raum. Deshalb stand im Original auch
                    d_list.push(rooms.enumNames)
                    und
                    setState(state_list, d_list.join('-'));

                    Naja, eigentlich sollte ein Gerät auch nur in einem Raum sein...

                    A Offline
                    A Offline
                    Archimedeus
                    schrieb am zuletzt editiert von
                    #14

                    @Archimedeus
                    Aber es tut, was es soll! Danke vielmals!

                    paul53P 1 Antwort Letzte Antwort
                    0
                    • A Archimedeus

                      @Archimedeus
                      Aber es tut, was es soll! Danke vielmals!

                      paul53P Offline
                      paul53P Offline
                      paul53
                      schrieb am zuletzt editiert von
                      #15

                      @Archimedeus sagte:

                      es tut, was es soll!

                      Sollen die Batterie-Infos tatsächlich pro Raum erfolgen ?

                      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

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


                      Support us

                      ioBroker
                      Community Adapters
                      Donate

                      403

                      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