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. Hilfe bei Javaskript Device Counter

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    15
    1
    560

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    622

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    1.9k

Hilfe bei Javaskript Device Counter

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
24 Beiträge 4 Kommentatoren 2.7k 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 Adnim

    Hi!
    der Cache Selektor zeile 11 "Error" funktioniert nicht mehr mit folgender Fehlermeldung. Das klappte aber immer so, jemand ne Idee was ich tun kann ?

    //Add device rules
    addDeviceCounter("lowbat",         $('channel[state.id=*LOWBAT]'),                     true);
    addDeviceCounter("lowbat",         $('channel[state.id=*lowbat]'),                      true);
    addDeviceCounter("sticky_unreach", $('channel[state.id=*.STICKY_UNREACH]'),              true);
    addDeviceCounter("unreach",        $('channel[state.id=*.UNREACH]'),                     true);
    addDeviceCounter("config_pending", $('channel[state.id=*.CONFIG_PENDING]'),              true);
    addDeviceCounter("Motion",  $('channel[state.id=*.MOTION]'),               true);
    addDeviceCounter("DutyCycle",  $('channel[state.id=*.DUTYCYCLE]'),               true);
    addDeviceCounter("Spannungsüberwachung",  $('channel[state.id=*.VOLTAGE]'),           function(state){return state<200;});
    addDeviceCounter("Auskühlschutz",  $('channel[state.id=*.ACTUAL_TEMPERATURE]'),           function(state){return state<14;});
    addDeviceCounter("ERROR",  $('channel[state.id=*.ERROR*]'),               function(state){return state>0;});
    addDeviceCounter("Heizbedarf",  $('channel[state.id=*.VALVE_STATE]'),           function(state){return state>15;});
    addDeviceCounter("Alive",         $('channel[state.id=*alive]'),                     false);
    addDeviceCounter("CONNECTED",         $('channel[state.id=*.connected]'),                     false);
    addDeviceCounter("open_shutters",  $('channel{TYPE=BLIND}[state.id=*.LEVEL]'),           function(state){return state>0;});
    addDeviceCounter("open_windows",   $('channel{TYPE=SHUTTER_CONTACT}[state.id=*.STATE]'), true);
    
    
    
    /******************************************
     * Code - do not change anything bellow this line *
     ******************************************/
    
    function addDeviceCounter(name, selector, val_to_count) {
    
        //Total amount of devices found by selector
        var state_total = 'deviceCounter.' + name + '.total';
        createState(state_total, 0);
        //List of devices that match condition
        var state_list = 'deviceCounter.' + name + '.list';
        createState(state_list, "");
        //Number of devices that match condition
        var state_counter = 'deviceCounter.' + name + '.counter';
    
        createState(state_counter, 0);
        function countDevs(obj) {
            var d_count = 0;
            var d_list  = [];
    
            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("."));
                    var parentDevicelId = id.split(".").slice(0,-2).join(".");
                    var deviceObject = getObject(parentDevicelId);
                    //remember device name
                    d_list.push(deviceObject.common.name);
                }                
                ++d_count;                                                 // Zählt die Anzahl der vorhandenen Geräte unabhängig vom Status
            }); 
    
    //if ("state_counter" > 0) {event(name + "(" + d_count + "): " + d_list);
    //}
    
            setState(state_list,     d_list.join('<br>'));
            setState(state_counter,  d_list.length);
            setState(state_total,    d_count);
        }
    
        //Re-evaluate when a device status changes
        selector.on(function(obj) {    // bei Zustandänderung *. LOWBAT in allen Gewerken
            countDevs(obj);
        });
    
        //Re-evaluate each hour
        schedule("*/60 * * * *", countDevs);
        
        //Evaluate for the first time
        countDevs();
    }
    
    javascript.0	2019-10-12 16:02:30.844	info	(13143) Stop script script.js.common.DeviceCounter
    javascript.0	2019-10-12 16:02:19.889	error	(13143) at Script.runInContext (vm.js:133:20)
    javascript.0	2019-10-12 16:02:19.889	error	(13143) at script.js.common.DeviceCounter:11:1
    javascript.0	2019-10-12 16:02:19.889	error	(13143) at addDeviceCounter (script.js.common.DeviceCounter:72:5)
    javascript.0	2019-10-12 16:02:19.889	error	(13143) at countDevs (script.js.common.DeviceCounter:40:18)
    javascript.0	2019-10-12 16:02:19.889	error	(13143) at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:808:29)
    javascript.0	2019-10-12 16:02:19.889	error	(13143) at script.js.common.DeviceCounter:50:42
    javascript.0	2019-10-12 16:02:19.889	error	(13143) TypeError: Cannot read property 'common' of null
    javascript.0	2019-10-12 16:02:19.889	error	(13143) ^
    javascript.0	2019-10-12 16:02:19.889	error	(13143) d_list.push(deviceObject.common.name);
    javascript.0	2019-10-12 16:02:19.889	error	(13143) script.js.common.DeviceCounter: script.js.common.DeviceCounter:50
    javascript.0	2019-10-12 16:02:19.888	warn	(13143) Object "javascript.0.deviceCounter" does not exist
    
    paul53P Offline
    paul53P Offline
    paul53
    schrieb am zuletzt editiert von
    #12

    @Adnim sagte:

    $('channel[state.id=.ERROR]')

    Was liefert ?

    $('channel[state.id=*.ERROR*]').each(function(id, i) {
       log(id);
    });
    

    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
    • A Offline
      A Offline
      Adnim
      schrieb am zuletzt editiert von
      #13

      @paul53 sagte in Hilfe bei Javaskript Device Counter:

      @Adnim sagte:

      $('channel[state.id=.ERROR]')

      Was liefert ?

      Da bekomm ich nen error, irgendwo fehlt eine klammer?

      Screenshot_1.png

      @Glasfaser
      habe die objekte gelöscht sie werden angelegt ,dann stürzt das skript aber mit der Fehlermeldung ab, neustart hilft dann auch nicht
      Screenshot_2.png

      Screenshot_3.png

      Danke euch!

      GlasfaserG 1 Antwort Letzte Antwort
      0
      • A Adnim

        @paul53 sagte in Hilfe bei Javaskript Device Counter:

        @Adnim sagte:

        $('channel[state.id=.ERROR]')

        Was liefert ?

        Da bekomm ich nen error, irgendwo fehlt eine klammer?

        Screenshot_1.png

        @Glasfaser
        habe die objekte gelöscht sie werden angelegt ,dann stürzt das skript aber mit der Fehlermeldung ab, neustart hilft dann auch nicht
        Screenshot_2.png

        Screenshot_3.png

        Danke euch!

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

        @Adnim

        … das Skript von paul53 in ein neues Skript starten !!!

        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 ..

        A 1 Antwort Letzte Antwort
        0
        • GlasfaserG Glasfaser

          @Adnim

          … das Skript von paul53 in ein neues Skript starten !!!

          A Offline
          A Offline
          Adnim
          schrieb am zuletzt editiert von
          #15

          @Glasfaser
          oh ok, habe ich versucht. Da kommt nix nur Start Skript im Log

          Screenshot_4.png

          GlasfaserG 1 Antwort Letzte Antwort
          0
          • A Adnim

            @Glasfaser
            oh ok, habe ich versucht. Da kommt nix nur Start Skript im Log

            Screenshot_4.png

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

            @Adnim

            so muss es aussehen :

            1.JPG

            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 ..

            1 Antwort Letzte Antwort
            0
            • A Offline
              A Offline
              Adnim
              schrieb am zuletzt editiert von
              #17

              sieht bei mir aber so aus

              Screenshot_5.png

              GlasfaserG 1 Antwort Letzte Antwort
              0
              • A Adnim

                sieht bei mir aber so aus

                Screenshot_5.png

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

                @Adnim

                Datenpunkte mit ERROR ,die bei mir z.B aufgelistet werden :

                1.JPG

                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 ..

                1 Antwort Letzte Antwort
                0
                • A Offline
                  A Offline
                  Adnim
                  schrieb am zuletzt editiert von
                  #19

                  ja habe ich auch ne ganze menge von den Errors States ,148 laut dem Skript er zählt sie ja beim ersten start

                  aber irgendwie findet er sie nicht mit Pauls Skript, habe Neustart und den Fixer aber gleiches Ergebnis

                  GlasfaserG 1 Antwort Letzte Antwort
                  0
                  • A Adnim

                    ja habe ich auch ne ganze menge von den Errors States ,148 laut dem Skript er zählt sie ja beim ersten start

                    aber irgendwie findet er sie nicht mit Pauls Skript, habe Neustart und den Fixer aber gleiches Ergebnis

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

                    @Adnim

                    Gib mal anstatt " ERROR" im Skript von paul53 ,"UNREACH" ein

                    Zeig mal bitte die ausgabe von

                    iobroker list adapters
                    

                    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 ..

                    A 1 Antwort Letzte Antwort
                    1
                    • GlasfaserG Glasfaser

                      @Adnim

                      Gib mal anstatt " ERROR" im Skript von paul53 ,"UNREACH" ein

                      Zeig mal bitte die ausgabe von

                      iobroker list adapters
                      
                      A Offline
                      A Offline
                      Adnim
                      schrieb am zuletzt editiert von
                      #21

                      @Glasfaser sagte in Hilfe bei Javaskript Device Counter:

                      @Adnim
                      Gib mal anstatt " ERROR" im Skript von paul53 ,"UNREACH" ein
                      Zeig mal bitte die ausgabe von

                      Ok habe UNREACH , ALIVE, CONNECTED nix führt zu einer ausgabe im LOG sieht immer so aus

                      Screenshot_6.png

                      iobroker list adapters
                      Screenshot_7.png
                      Screenshot_8.png
                      Screenshot_9.png

                      Lenny.CBL 1 Antwort Letzte Antwort
                      0
                      • A Adnim

                        @Glasfaser sagte in Hilfe bei Javaskript Device Counter:

                        @Adnim
                        Gib mal anstatt " ERROR" im Skript von paul53 ,"UNREACH" ein
                        Zeig mal bitte die ausgabe von

                        Ok habe UNREACH , ALIVE, CONNECTED nix führt zu einer ausgabe im LOG sieht immer so aus

                        Screenshot_6.png

                        iobroker list adapters
                        Screenshot_7.png
                        Screenshot_8.png
                        Screenshot_9.png

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

                        @Adnim du hast javascript 4.3.0, da klappts ja momentan nicht so mit den Logeinträgen.
                        Funktionieren soll (ungetestet)
                        log(id, 'info');
                        oder
                        Console.log(id);

                        Vielleicht läuft der Selector-codeschnipsel von paul, nur zeigt er nichts wegen des Logfehlers.

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

                          @Adnim du hast javascript 4.3.0, da klappts ja momentan nicht so mit den Logeinträgen.
                          Funktionieren soll (ungetestet)
                          log(id, 'info');
                          oder
                          Console.log(id);

                          Vielleicht läuft der Selector-codeschnipsel von paul, nur zeigt er nichts wegen des Logfehlers.

                          A Offline
                          A Offline
                          Adnim
                          schrieb am zuletzt editiert von Adnim
                          #23

                          @Lenny-CB sagte in Hilfe bei Javaskript Device Counter:

                          log(id, 'info');

                          das funzt korrekt, Danke dir Lenny

                          läuft deswegen auch das Haupt Skript nicht richtig?bzw das sind zwei Probleme glaube ich?

                          Lenny.CBL 1 Antwort Letzte Antwort
                          0
                          • A Adnim

                            @Lenny-CB sagte in Hilfe bei Javaskript Device Counter:

                            log(id, 'info');

                            das funzt korrekt, Danke dir Lenny

                            läuft deswegen auch das Haupt Skript nicht richtig?bzw das sind zwei Probleme glaube ich?

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

                            @Adnim, ich denke das wird noch eine andere Baustelle sein.

                            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

                            624

                            Online

                            32.6k

                            Benutzer

                            81.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