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. Tester
  4. Tester gesucht: Zigbee 3.2.x

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.1k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    2.9k

Tester gesucht: Zigbee 3.2.x

Geplant Angeheftet Gesperrt Verschoben Tester
3.2alphazigbee
50 Beiträge 10 Kommentatoren 1.6k Aufrufe 18 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.
  • AsgothianA Asgothian

    @fabio sagte in Tester gesucht: Zigbee 3.2.x:

    @Asgothian so Test beendet. Ich bestätige das dieser Fehler durch deinen Workaround behoben ist. Hab jetzt alle Geräte wo das war umgestellt, blöd nur das ich sie dann auch erst löschen musste im Matter Adapter.
    Sollte man apollon77 das evtl. mitteilen? Ist das überhaupt ein Bug? Erst mal herzlichen Dank melde dich wenn du Zeit hast.👌
    Grüße Fabio

    • das der Type detektor den available state als 'SET_ACTUAL` deklariert ist unglücklich. Das der Matter Adapter den einfach so übernimmt auch.
    • Das der Matter Adapter nicht von sich aus auf geänderte Rollen reagiert ist meiner Meinung nach ein Bug - allerdings kann es sein das @apollon77 das absichtlich so umgesetzt hat.

    Nen Issue ist das auf aber jeden Fall wert - dann kann geschaut werden ob das absicht, versehen oder bug ist.

    Zum Thema Type Detektor (das ist denk ich nicht apollons direkte Baustelle) - das was da gemacht wird ist denkbar unschön:

    Lt. der Rollen definition soll ein Datenpunkt dessen Role nicht zu den vordefinierten passt die Role state bekommen:

    • state - very common purpose. If you don't know which role the state has, use this one.

    Die Doku zum Type-Detector für lights sagt in der Tabelle das der Wert für ON_ACTUAL ein Boolean mit der Role sensor.light sein soll. Leider sagt das Match-Muster das daneben auch Boolean states mit der Role state oder switch als ON_ACTUAL genommen werden.

    In der Kombination muss das eigentlich schief gehen. Ob das ein Fehler im Matter Adapter, im Type Detektor oder in der Role Definition ist weiss ich nicht.
    Ich kenne verschiedene Zigbee Devices die als Light erkannt werden sollen, die aber weitere boolean States beinhalten - nicht nur available. Bei einigen davon gibt es sogar mehrere read only boolean states.

    In der 3.2.6 wird jedenfalls zumindest der state available eine andere Role bekommen: indicator.reachable

    Trotzdem ist die Kombination von Role definition, Device-Detektor und Matter Adapter in der Form mindestens mal unglücklich.

    A.

    FabioF Offline
    FabioF Offline
    Fabio
    schrieb am zuletzt editiert von
    #32

    @asgothian
    Type detektor available wird als state als 'SET_ACTUAL` deklariert
    https://github.com/ioBroker/ioBroker.matter/issues/618

    Iobroker:

    • Für mich persöhnlich, gibt es nichts besseres, ich liebe es.

    • Das hat unser Smarthome erst zu Smarthome gemacht.

    • Du wächst mit ioBroker und ioBroker wächst mit dir.

    • Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    1 Antwort Letzte Antwort
    0
    • apollon77A Offline
      apollon77A Offline
      apollon77
      schrieb am zuletzt editiert von apollon77
      #33

      Hey. Ja das an einigen stellen im type detector auch generische „state“ rollen genutzt werden sind der vergangenheit geschuldet. Kann ich leider so einfach nicht ändern. Alternative sind aliase oder Rollen korrigieren. Aber ja man kann gern type detector issue mit Beispiel Objekt Export anlegen dann kann man das diskutieren.

      Das der matter Adapter (oder auch iot) nicht auf sich ändernde Rollen reagiert ohne restart bzw neustarten der Bridge liegt einfach daran das sich Rollen im Normalfall nicht einfach so ändern. Also für so einen Sonderfall Logik zu bauen empfinde ich daher als eher unnötig um ehrlich zu sein.

      Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

      • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
      • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
      FabioF AsgothianA 2 Antworten Letzte Antwort
      0
      • apollon77A apollon77

        Hey. Ja das an einigen stellen im type detector auch generische „state“ rollen genutzt werden sind der vergangenheit geschuldet. Kann ich leider so einfach nicht ändern. Alternative sind aliase oder Rollen korrigieren. Aber ja man kann gern type detector issue mit Beispiel Objekt Export anlegen dann kann man das diskutieren.

        Das der matter Adapter (oder auch iot) nicht auf sich ändernde Rollen reagiert ohne restart bzw neustarten der Bridge liegt einfach daran das sich Rollen im Normalfall nicht einfach so ändern. Also für so einen Sonderfall Logik zu bauen empfinde ich daher als eher unnötig um ehrlich zu sein.

        FabioF Offline
        FabioF Offline
        Fabio
        schrieb am zuletzt editiert von Fabio
        #34

        @apollon77 ich bin nur ein einfacher Nutzer und kein Developer und verstehe auch nicht immer die Zusammenhänge.
        Aber, ich persöhnlich finde das sehr merkwürdig, das An sich ändert wenn der State dafür aber nicht geschaltet wurde, sondern nur weil value generated 'true' from device a4c1389893367f90 for 'Available' geändert sprich abgefragt wurde, so weiß man letztendlich nicht wie in der Apple Home App, ist das Gerät nun wirklich An oder Aus. Und das finde ich ist ne Dikussion oder Änderung alle mal wert. ;-)

        Herzliche Grüße
        Fabio

        Iobroker:

        • Für mich persöhnlich, gibt es nichts besseres, ich liebe es.

        • Das hat unser Smarthome erst zu Smarthome gemacht.

        • Du wächst mit ioBroker und ioBroker wächst mit dir.

        • Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

        1 Antwort Letzte Antwort
        0
        • apollon77A apollon77

          Hey. Ja das an einigen stellen im type detector auch generische „state“ rollen genutzt werden sind der vergangenheit geschuldet. Kann ich leider so einfach nicht ändern. Alternative sind aliase oder Rollen korrigieren. Aber ja man kann gern type detector issue mit Beispiel Objekt Export anlegen dann kann man das diskutieren.

          Das der matter Adapter (oder auch iot) nicht auf sich ändernde Rollen reagiert ohne restart bzw neustarten der Bridge liegt einfach daran das sich Rollen im Normalfall nicht einfach so ändern. Also für so einen Sonderfall Logik zu bauen empfinde ich daher als eher unnötig um ehrlich zu sein.

          AsgothianA Offline
          AsgothianA Offline
          Asgothian
          Developer
          schrieb am zuletzt editiert von
          #35

          @apollon77

          Das der matter Adapter (oder auch iot) nicht auf sich ändernde Rollen reagiert ohne restart bzw >neustarten der Bridge liegt einfach daran das sich Rollen im Normalfall nicht einfach so ändern. Also für so einen Sonderfall Logik zu bauen empfinde ich daher als eher unnötig um ehrlich zu sein

          Nur als Klarstellung - beim Neustart des matter Adapters werden die Änderungen der Role erkannt ?

          A.

          ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
          "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

          apollon77A 1 Antwort Letzte Antwort
          1
          • AsgothianA Asgothian

            @apollon77

            Das der matter Adapter (oder auch iot) nicht auf sich ändernde Rollen reagiert ohne restart bzw >neustarten der Bridge liegt einfach daran das sich Rollen im Normalfall nicht einfach so ändern. Also für so einen Sonderfall Logik zu bauen empfinde ich daher als eher unnötig um ehrlich zu sein

            Nur als Klarstellung - beim Neustart des matter Adapters werden die Änderungen der Role erkannt ?

            A.

            apollon77A Offline
            apollon77A Offline
            apollon77
            schrieb am zuletzt editiert von
            #36

            @asgothian Sogar beim "Nur neustarten (einmal aus und an) der Bridge" weil dann wird alles eingelesen und gemappt. Ja

            Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

            • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
            • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
            1 Antwort Letzte Antwort
            2
            • apollon77A Offline
              apollon77A Offline
              apollon77
              schrieb am zuletzt editiert von
              #37

              Ich hab mal https://github.com/ioBroker/ioBroker.type-detector/issues/155 angelegt. Gern dort Meinungen rein hauen

              Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

              • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
              • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
              1 Antwort Letzte Antwort
              2
              • F Offline
                F Offline
                Flaterick
                schrieb am zuletzt editiert von Flaterick
                #38

                Hab da ein Problem weis aber nicht Obs hier rein Passt.
                Zumindest ist es die Testversion die ansonsten zuverlässig geht.
                Hab angefangen zu Basteln, dazu wollte ich einen Externen Converter einbinden. Denke er wird auch gefunden nur der zugriff wird verweigert.Screenshot 2025-11-24 173105.png

                Das ganze läuft auf aktuellem Ubuntu unter Docker, ioBroker ist auch aktuell.

                Screenshot 2025-11-24 174305.png

                1 Antwort Letzte Antwort
                0
                • AsgothianA Offline
                  AsgothianA Offline
                  Asgothian
                  Developer
                  schrieb am zuletzt editiert von
                  #39

                  Bitte posten:

                  • den externen konverter den du nutzt
                  • die Einträge zum externen Konverter beim Start des Adapters. Da muss so etwas (o.a.) stehen
                  2025-11-23 20:12:40.755 - info: zigbee.0 (983320) Adding code from './../zigbee-herdsman-converters/dist/lib/modernExtend' as 'm' to sandbox -- success
                  2025-11-23 20:12:40.756 - info: zigbee.0 (983320) Adding code from './../zigbee-herdsman-converters/dist/lib/types' as 'type {DefinitionWithExtend}' to sandbox -- success
                  2025-11-23 20:12:40.757 - warn: zigbee.0 (983320) Trying to run sandbox for /opt/iobroker/iobroker-data/zigbee_0/shelly.js
                  2025-11-23 20:12:40.759 - info: zigbee.0 (983320) Model S4SW-001X8EU defined in external converter /opt/iobroker/iobroker-data/zigbee_0/shelly.js
                  2025-11-23 20:12:40.759 - info: zigbee.0 (983320) added external converter using addExternalDefinition (0 ms)
                  2025-11-23 20:12:40.760 - warn: zigbee.0 (983320) Trying to run sandbox for /opt/iobroker/iobroker-data/zigbee_0/esp.js
                  2025-11-23 20:12:40.763 - info: zigbee.0 (983320) Model ZBColorLightBulb defined in external converter /opt/iobroker/iobroker-data/zigbee_0/esp.js
                  2025-11-23 20:12:40.763 - info: zigbee.0 (983320) added external converter using addExternalDefinition (0 ms)
                  

                  A.

                  ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                  "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                  1 Antwort Letzte Antwort
                  0
                  • F Offline
                    F Offline
                    Flaterick
                    schrieb am zuletzt editiert von
                    #40

                    Das ist schon mal der Konverter wurde von PTVO erzeugt.

                    const zigbeeHerdsmanConverters = require('zigbee-herdsman-converters');
                    const zigbeeHerdsmanUtils = require('zigbee-herdsman-converters/lib/utils');
                    
                    
                    const exposes = zigbeeHerdsmanConverters['exposes'] || require("zigbee-herdsman-converters/lib/exposes");
                    const ea = exposes.access;
                    const e = exposes.presets;
                    const modernExposes = (e.hasOwnProperty('illuminance_lux'))? false: true;
                    
                    const fz = zigbeeHerdsmanConverters.fromZigbeeConverters || zigbeeHerdsmanConverters.fromZigbee;
                    const tz = zigbeeHerdsmanConverters.toZigbeeConverters || zigbeeHerdsmanConverters.toZigbee;
                    
                    const ptvo_switch = (zigbeeHerdsmanConverters.findByModel)?zigbeeHerdsmanConverters.findByModel('ptvo.switch'):zigbeeHerdsmanConverters.findByDevice({modelID: 'ptvo.switch'});
                    fz.ptvo_on_off = {
                      cluster: 'genOnOff',
                      type: ['attributeReport', 'readResponse'],
                      convert: (model, msg, publish, options, meta) => {
                          if (msg.data.hasOwnProperty('onOff')) {
                              const channel = msg.endpoint.ID;
                              const endpointName = `l${channel}`;
                              const binaryEndpoint = model.meta && model.meta.binaryEndpoints && model.meta.binaryEndpoints[endpointName];
                              const prefix = (binaryEndpoint) ? model.meta.binaryEndpoints[endpointName] : 'state';
                              const property = `${prefix}_${endpointName}`;
                    	  if (binaryEndpoint) {
                                return {[property]: msg.data['onOff'] === 1};
                              }
                              return {[property]: msg.data['onOff'] === 1 ? 'ON' : 'OFF'};
                          }
                      },
                    };
                    
                    
                    const switchTypesList = {
                        'switch': 0x00,
                        'single click': 0x01,
                        'multi-click': 0x02,
                        'reset to defaults': 0xff,
                    };
                    
                    const switchActionsList = {
                        on: 0x00,
                        off: 0x01,
                        toggle: 0x02,
                    };
                    
                    const inputLinkList = {
                        no: 0x00,
                        yes: 0x01,
                    };
                    
                    const bindCommandList = {
                        'on/off': 0x00,
                        'toggle': 0x01,
                        'change level up': 0x02,
                        'change level down': 0x03,
                        'change level up with off': 0x04,
                        'change level down with off': 0x05,
                        'recall scene 0': 0x06,
                        'recall scene 1': 0x07,
                        'recall scene 2': 0x08,
                        'recall scene 3': 0x09,
                        'recall scene 4': 0x0A,
                        'recall scene 5': 0x0B,
                        'dimmer': 0x0C,
                        'dimmer (hue)': 0x0D,
                        'dimmer (saturation)': 0x0E,
                        'dimmer (color temperature)': 0x0F,
                        'intruder alarm systems (ias)': 0x20,
                    };
                    
                    function getSortedList(source) {
                        const keysSorted = [];
                        for (const key in source) {
                            keysSorted.push([key, source[key]]);
                        }
                    
                        keysSorted.sort(function(a, b) {
                            return a[1] - b[1];
                        });
                    
                        const result = [];
                        keysSorted.forEach((item) => {
                            result.push(item[0]);
                        });
                        return result;
                    }
                    
                    function getListValueByKey(source, value) {
                        const intVal = parseInt(value, 10);
                        return source.hasOwnProperty(value) ? source[value] : intVal;
                    }
                    
                    const getKey = (object, value) => {
                        for (const key in object) {
                            if (object[key] == value) return key;
                        }
                    };
                    
                    tz.ptvo_on_off_config = {
                        key: ['switch_type', 'switch_actions', 'link_to_output', 'bind_command'],
                        convertGet: async (entity, key, meta) => {
                            await entity.read('genOnOffSwitchCfg', ['switchType', 'switchActions', 0x4001, 0x4002]);
                        },
                        convertSet: async (entity, key, value, meta) => {
                            let payload;
                            let data;
                            switch (key) {
                            case 'switch_type':
                                data = getListValueByKey(switchTypesList, value);
                                payload = {switchType: data};
                                break;
                            case 'switch_actions':
                                data = getListValueByKey(switchActionsList, value);
                                payload = {switchActions: data};
                                break;
                            case 'link_to_output':
                                data = getListValueByKey(inputLinkList, value);
                                payload = {0x4001: {value: data, type: 32 /* uint8 */}};
                                break;
                            case 'bind_command':
                                data = getListValueByKey(bindCommandList, value);
                                payload = {0x4002: {value: data, type: 32 /* uint8 */}};
                                break;
                            }
                            await entity.write('genOnOffSwitchCfg', payload);
                        },
                    };
                    
                    fz.ptvo_on_off_config = {
                        cluster: 'genOnOffSwitchCfg',
                        type: ['readResponse', 'attributeReport'],
                        convert: (model, msg, publish, options, meta) => {
                            const channel = getKey(model.endpoint(msg.device), msg.endpoint.ID);
                            const {switchActions, switchType} = msg.data;
                            const inputLink = msg.data[0x4001];
                            const bindCommand = msg.data[0x4002];
                            return {
                                [`switch_type_${channel}`]: getKey(switchTypesList, switchType),
                                [`switch_actions_${channel}`]: getKey(switchActionsList, switchActions),
                                [`link_to_output_${channel}`]: getKey(inputLinkList, inputLink),
                                [`bind_command_${channel}`]: getKey(bindCommandList, bindCommand),
                            };
                        },
                    };
                    
                    function ptvo_on_off_config_exposes(epName) {
                        const features = [];
                        features.push(exposes.enum('switch_type', exposes.access.ALL,
                            getSortedList(switchTypesList)).withEndpoint(epName));
                        features.push(exposes.enum('switch_actions', exposes.access.ALL,
                            getSortedList(switchActionsList)).withEndpoint(epName));
                        features.push(exposes.enum('link_to_output', exposes.access.ALL,
                            getSortedList(inputLinkList)).withEndpoint(epName));
                        features.push(exposes.enum('bind_command', exposes.access.ALL,
                            getSortedList(bindCommandList)).withEndpoint(epName));
                        return features;
                    }
                    
                    
                    
                    
                    const device = {
                        zigbeeModel: ['Mat-LED'],
                        model: 'Mat-LED',
                        vendor: 'Mat',
                        description: '[Configurable firmware](https://ptvo.info/zigbee-configurable-firmware-features/)',
                        fromZigbee: [fz.ignore_basic_report, fz.ptvo_on_off, fz.ptvo_multistate_action, fz.ptvo_on_off_config, fz.electrical_measurement,],
                        toZigbee: [tz.ptvo_switch_trigger, tz.on_off, tz.ptvo_on_off_config,],
                        exposes: [e.switch().withDescription('Impulsschalter').withEndpoint('l1'),
                          e.action(['single', 'double', 'triple', 'hold', 'release']),
                          ...ptvo_on_off_config_exposes('l1'),
                          e.voltage().withAccess(ea.STATE).withEndpoint('l3'),
                    ],
                        meta: {
                            multiEndpoint: true,
                            
                        },
                        endpoint: (device) => {
                            return {
                                l1: 1, l3: 3,
                            };
                        },
                        configure: async (device, coordinatorEndpoint, logger) => {
                          const endpoint = device.getEndpoint(1);
                          await endpoint.read('genBasic', ['modelId', 'swBuildId', 'powerSource']);
                        for (const endpoint of device.endpoints) {
                            if (endpoint.supportsInputCluster('haElectricalMeasurement')) {
                                endpoint.saveClusterAttributeKeyValue('haElectricalMeasurement', {dcCurrentDivisor: 1000, dcCurrentMultiplier: 1,
                                    dcPowerDivisor: 10, dcPowerMultiplier: 1, dcVoltageDivisor: 100, dcVoltageMultiplier: 1,
                                    acVoltageDivisor: 100, acVoltageMultiplier: 1, acCurrentDivisor: 1000, acCurrentMultiplier: 1,
                                    acPowerDivisor: 1, acPowerMultiplier: 1});
                            }
                            if (endpoint.supportsInputCluster('seMetering')) {
                                endpoint.saveClusterAttributeKeyValue('seMetering', {divisor: 1000, multiplier: 1});
                            }
                        }
                        },
                    
                    };
                    
                    module.exports = device;
                    
                    
                    1 Antwort Letzte Antwort
                    0
                    • F Offline
                      F Offline
                      Flaterick
                      schrieb am zuletzt editiert von
                      #41

                      Hat leider etwas gedauert.
                      Ich Finde keine Entsprechenden Einträge.
                      Unter zigbee2mqtt funktioniert es.

                      1 Antwort Letzte Antwort
                      0
                      • F Offline
                        F Offline
                        Flaterick
                        schrieb am zuletzt editiert von Flaterick
                        #42

                        Habs Hinbekommen, Hatte in der Konfiguration in der Zigbeeinstanz einen Schreibfehler.
                        Danke

                        1 Antwort Letzte Antwort
                        0
                        • AsgothianA Offline
                          AsgothianA Offline
                          Asgothian
                          Developer
                          schrieb am zuletzt editiert von
                          #43

                          Ok.. jetzt bin ich verwirrt. Das Problem lag nicht am externen Konverter, sondern ?

                          A.

                          ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                          "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                          1 Antwort Letzte Antwort
                          0
                          • F Offline
                            F Offline
                            Flaterick
                            schrieb am zuletzt editiert von Flaterick
                            #44

                            Ich war hier zu doof den richtigen Namen einzutragen (Schreibfehler).
                            Und ja es sind nur ein Paar Buchstaben.

                            Screenshot 2025-11-25 213448.png

                            Wieso allerdings die Fehlermeldung Illegal operation on a directory read,
                            gekommen ist weiß ich auch nicht.

                            1 Antwort Letzte Antwort
                            0
                            • AsgothianA Offline
                              AsgothianA Offline
                              Asgothian
                              Developer
                              schrieb am zuletzt editiert von
                              #45

                              ok.. Dann bin ich ja beruhigt :)

                              Ich hatte am Konverter nix auffälliges gefunden, und die Fehlermeldung sah seltsam aus.

                              A.

                              ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                              "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                              1 Antwort Letzte Antwort
                              0
                              • F Offline
                                F Offline
                                Flaterick
                                schrieb am zuletzt editiert von
                                #46

                                Trotzdem Danke fürs Drüber schauen.

                                1 Antwort Letzte Antwort
                                0
                                • AsgothianA Offline
                                  AsgothianA Offline
                                  Asgothian
                                  Developer
                                  schrieb am zuletzt editiert von
                                  #47

                                  Dafür nicht.

                                  Noch ein Tip:

                                  Wenn du den device = Teil des Konverters so anpasst wie unten gepostet, und du parallel zum Konverter auch noch ein Icon (PNG Format, max 512x512 px, am besten mit transparentem Hintergrund) hinterlegst (z.Bsp. als Mat-LED.png), dann sollte der Adapter das Icon automatisch auch einbinden.

                                  const device = {
                                      zigbeeModel: ['Mat-LED'],
                                      model: 'Mat-LED',
                                      vendor: 'Mat',
                                      description: '[Configurable firmware](https://ptvo.info/zigbee-configurable-firmware-features/)',
                                      fromZigbee: [fz.ignore_basic_report, fz.ptvo_on_off, fz.ptvo_multistate_action, fz.ptvo_on_off_config, fz.electrical_measurement,],
                                      toZigbee: [tz.ptvo_switch_trigger, tz.on_off, tz.ptvo_on_off_config,],
                                      exposes: [e.switch().withDescription('Impulsschalter').withEndpoint('l1'),
                                        e.action(['single', 'double', 'triple', 'hold', 'release']),
                                        ...ptvo_on_off_config_exposes('l1'),
                                        e.voltage().withAccess(ea.STATE).withEndpoint('l3'),
                                       ],
                                      meta: {
                                          multiEndpoint: true,
                                      },
                                      endpoint: (device) => { return { l1: 1, l3: 3,}; },
                                      configure: async (device, coordinatorEndpoint, logger) => {
                                        const endpoint = device.getEndpoint(1);
                                        await endpoint.read('genBasic', ['modelId', 'swBuildId', 'powerSource']);
                                        for (const endpoint of device.endpoints) {
                                          if (endpoint.supportsInputCluster('haElectricalMeasurement')) {
                                              endpoint.saveClusterAttributeKeyValue('haElectricalMeasurement', {dcCurrentDivisor: 1000, dcCurrentMultiplier: 1,
                                                  dcPowerDivisor: 10, dcPowerMultiplier: 1, dcVoltageDivisor: 100, dcVoltageMultiplier: 1,
                                                  acVoltageDivisor: 100, acVoltageMultiplier: 1, acCurrentDivisor: 1000, acCurrentMultiplier: 1,
                                                  acPowerDivisor: 1, acPowerMultiplier: 1});
                                          }
                                          if (endpoint.supportsInputCluster('seMetering')) {
                                              endpoint.saveClusterAttributeKeyValue('seMetering', {divisor: 1000, multiplier: 1});
                                          }
                                      }
                                    },
                                    icon: "./Mat-LED.png",
                                  };
                                  

                                  ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                                  "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                                  1 Antwort Letzte Antwort
                                  0
                                  • JLegJ Offline
                                    JLegJ Offline
                                    JLeg
                                    schrieb am zuletzt editiert von
                                    #48

                                    @Asgothian - vielleicht hast du einen Tipp, wie ich dieses akute "Phänomen" untersuchen/beheben könnte: Seit ~3 Jahren laufen ~12 gleichartige Zigbee-Thermostate (Moes/Tuya) recht problemlos. Temperaturen und "Betriebsmodus" lassen sich setzen und lesen, beim Setzen der Absenktemperatur hörte man quasi sofort die Ventile schliessen.
                                    Wenn die Batterie "alle" ist, geht "available" auf "false", das Gerät wird gemeldet, Batterie getauscht, und weiter gehts. So bis vor ein paar Tagen - kann das leider nicht mehr genau eingrenzen, da der Effekt nicth gleich erkannt wurde.

                                    Aus dem nichts heraus (glaube ich - habe eigentlich nirgends gross geschraubt - letzte Aktivitäten waren tatsächlich Zigbee-Adapter-Updates, aktuell auf 3.2.5) kann bei keinem dieser Thermostate irgendein schreibbarer Parameter mehr gesetzt werden (Zieltemperatur etc.). Während alle Read-only-Parameter nach wie vor mit aktuellem Timestamp reinkommen, sind die schreibbaren irgendwann in der Vergangenheit "stehen geblieben".
                                    Allerdings - verstelle ich die Temperatur am Thermostat selbst, wird das zugehörge Objekt aktualisiert - genau einmal, auch danach erfolgt kein Update des Timestamps mehr.
                                    Andere Zigbee-Greräte (~50) scheinen bislang nicht betroffen.
                                    Habe einen Thermostat mal exemplarisch in den "Debug"-Modus eingetragen, Log u. Gerätekachel s.u.
                                    Natürlich ist auch in der Vergangenheit mal das eine oder andere Zigbeegerät aus dem Netz gefallen, oder nach einem Batteriewechsel nicht mehr "online" gegangen - aber dann war immer auch "available" auf "false", und nach einem "Re-Pair" war das Gerät wieder da.

                                    Dass aber alle Geräte eines Typs auf einmal "partiell verschwinden", ist neu für mich - irgendwelche Tipps, wie ich da weiter vorgehen sollte? (werde mal einen versuchen, neu zu pairen - ist bei diesen Dingern leider relativ umständlich)

                                    946d886e-82dd-463e-876e-6f50736ebb79-grafik.png

                                    Ich vermute mal, das Log entspricht genau dem zu Beobachtenden - Gerät nicht erreichbar:

                                    2025-11-26 13:41:40.260  - ESC[33mwarnESC[39m: zigbee.0 (3734244) ELEVATED:O01 (0ca4) User state change of state zigbee.0.040d84fffe5f5fcc.min_temperature with value 12 (ack: false) from system.adapter.admin.0
                                    2025-11-26 13:41:40.263  - ESC[33mwarnESC[39m: zigbee.0 (3734244) ELEVATED:O02 (0ca4) Change state 'min_temperature' at device 0x040d84fffe5f5fcc type 'BRT-100-TRV'
                                    2025-11-26 13:41:40.263  - ESC[33mwarnESC[39m: zigbee.0 (3734244) ELEVATED:O03 (0ca4) Publishing to 0x040d84fffe5f5fcc of model BRT-100-TRV with min_temperature
                                    2025-11-26 13:41:40.266  - ESC[33mwarnESC[39m: zigbee.0 (3734244) ELEVATED:O04 (0ca4) convert min_temperature with value 12 and options {} for device 0x040d84fffe5f5fcc with Endpoint min_temperature
                                    2025-11-26 13:41:50.272  - ESC[33mwarnESC[39m: zigbee.0 (3734244) ELEVATED:EXSET (0ca4) caught error ZCL command 0x040d84fffe5f5fcc/1 manuSpecificTuya.dataRequest({"seq":389,"dpValues":[{"dp":109,"datatype":2,"data":{"type":"Buffer","data":[0,0,0,12]}}]}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"reservedBits":0,"writeUndiv":false}) failed (Data request failed with error: 'Timeout' (9999)) when setting value for device 0x040d84fffe5f5fcc.
                                    2025-11-26 13:41:50.272  - ESC[32minfoESC[39m: zigbee.0 (3734244) Send command to 0x040d84fffe5f5fcc failed with: Code 9999 (No response)
                                    
                                    
                                    1 Antwort Letzte Antwort
                                    0
                                    • AsgothianA Offline
                                      AsgothianA Offline
                                      Asgothian
                                      Developer
                                      schrieb am zuletzt editiert von
                                      #49

                                      Zeig mal bitte wie das Device im Objektbaum aussieht.

                                      Auch: Wann hast du as Update von 1.10.x auf 2.x und/oder 3.x gemacht ?

                                      ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
                                      "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

                                      JLegJ 1 Antwort Letzte Antwort
                                      0
                                      • AsgothianA Asgothian

                                        Zeig mal bitte wie das Device im Objektbaum aussieht.

                                        Auch: Wann hast du as Update von 1.10.x auf 2.x und/oder 3.x gemacht ?

                                        JLegJ Offline
                                        JLegJ Offline
                                        JLeg
                                        schrieb zuletzt editiert von JLeg
                                        #50

                                        @Asgothian sagte in Tester gesucht: Zigbee 3.2.x:

                                        Zeig mal bitte wie das Device im Objektbaum aussieht.

                                        um Protesten wegen kalter Bude entgegen zu wirken, habe ich gestern sämtliche Thermostate neu gepaired - danach sah und sieht es erstmal wieder "normal" aus. 2 musste ich zweimal pairen, da nach dem ersten Mal die Hälfte der DPs auf der roten "null" stand.
                                        Im zigbee-Adapter gibt es ja eine "Struktur", die Geräte gleichen Typs summiert. Womöglich gibt's sowas auch im Koordinator selbst, und dieser hat inzwischen ein "Laufzeitproblem" oder so? Ist ein Selbstbau-Stick auf Basis eines CC2538...
                                        Der Objektbaum sieht so aus - im Fehlerfall waren die Soll-Temperatur-DPs halt "rot", da per Script gesetzt, und nicht bestätigt:
                                        8023a864-8888-4df4-b34d-d76be413bb80-grafik.png

                                        Noch eine Beobachtung am Rande: Sobald ich ein Gerät in den "Pairing-Modus" versetzt hatte, ist dessen kompletter Objektbaum verschwunden.
                                        Nach dem Pairing waren dann aber sowohl Bezeichner, als auch Einstellungen im "Schraubenschlüssel" bei den DPs (wie heissen die eigentlich?) wieder die alten. "Früher" war das afair anders, kann mich an Influxdb-Verluste erinnern nach Neu-Pairing.

                                        Auch: Wann hast du as Update von 1.10.x auf 2.x und/oder 3.x gemacht ?

                                        wenn ich das noch wüsste; im Nov. 24 war ich jedenfalls auf 1.10.13, und hatte dann recht lange gezögert mit dem Update; ich meine, ich wäre dann direkt auf 3.1 gegangen, auf jeden Fall hatte ich am 19. September auf 3.1.2 aktualisiert. Im Oktober dann auf 3.2.x.
                                        Beim Sprung auf 3.1.2 hatte ich einiges getestet, und keinerlei Probleme festgestellt - im Gegenteil eigentlich nur Verbesserungen (ich hatte vorher Devices - einen Typ Rauchmelder - die max. 3 Tage nach Pairing grundsätzlich wieder "unerreichbar" waren; ausserdem bin ich nun die nervigen warn-Einträge im Log los, die durch semi-defekte Aqaras mit Werten ausserhalb der Limits erzeugt worden waren).

                                        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

                                        360

                                        Online

                                        32.4k

                                        Benutzer

                                        81.5k

                                        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