Consommation excessive avec interrupteurs ZigBee sur pile

Forum dédié au ZigBee : objets, interfaces ...
Plugins DeConz et ZigBee2MQTT
Pour les questions concernant le plugin ZigBeeForDomoticZ, merci d'utiliser le forum spécifique en dessous.
Fred_P
Messages : 22
Inscription : 06 juil. 2021, 18:08

Consommation excessive avec interrupteurs ZigBee sur pile

Message par Fred_P »

Bonjour,

Je rencontre des problèmes de consommation excessive avec des interrupteurs muraux sur pile.

Mon premier choix s'était porté sur la télécommande LoraTap 2 boutons (https://zigbee.blakadder.com/LoraTap_SS6200ZB.html). Après intégration à mon réseau Zigbee (Raspi4 / ConBee2 - deCONZ), la pile livrée avec s'est vidée en quelques jours seulement. Je l'ai remplacé par deux autres neuves, qui se sont également vidées en quelques jours. Pensant que le problème venait peut-être de la télécommande proprement dite, j'ai contacté le revendeur qui m'a dit que le problème était connu avec des passerelles autres que Tuya. Pas de chance pour moi, j'utilise une passerelle universelle ConBee2.

Comme j'ai déjà des capteurs sur piles Aqara (températures / détecteurs d'ouverture) avec lesquels je ne rencontre pas ce type de problème d'autonomie, je me suis procuré un interrupteur Aqara Opple 4 boutons (https://zigbee.blakadder.com/Xiaomi_WXCJKG12LM.html). Même résultats : les piles se vident complètement en quelques jours...

En cherchant sur le Web, j'ai vu que d'autres personnes rencontraient aussi ce types de problèmes avec des interrupteurs sur piles (Ikea). D'après ce que j'ai pu lire, l'origine du problème viendrait peut-être des firmwares des modules, qui sont difficiles (pour ne pas dire impossible) à mettre à jour.

Bref, j'ai besoin d'un interrupteur fiable 4 boutons sur pile pour contrôler d'autres équipements et je ne sais plus à quel saint me vouer...

D'autres interrupteurs de ce type à me conseiller ou d'autres pistes à me suggérer ? Passer à une autre technologie (j'ai aussi une passerelle RFLink en 433,92 MHz). Tout ce que je recherche, c'est une autonomie longue au niveau des piles.

Je tiens à préciser que mon système est à jour (Domoticz, firmware ConBee2, deCONZ).

D'avance, merci pour vos suggestions ! :)
Keros
Messages : 6638
Inscription : 23 juil. 2019, 20:57

Re: Consommation excessive avec interrupteurs ZigBee sur pile

Message par Keros »

C'est, je crois, la première fois que je vois des piles se vidées en quelques jours en ZigBee. Généralement ça tient plusieurs mois, voir un an.

Tu as des infos dans les logs de l'objet ? Il n'envoie pas des infos toutes les secondes ?

Autre idée, ton objet s'est transformé en routeur et là oui, ça pourrait rapidement mettre les piles à plat. Mais normalement les objets sur batterie ne font pas routeur ...
Comment bien utiliser le forum : Poser une question, Mettre un script, un fichier, une image ou des logs
Mes petits guides : Débuter en programmation, Le débogage, Le choix de matériel, Les sauvegardes
Ma présentation - Mes Tutos
Fred_P
Messages : 22
Inscription : 06 juil. 2021, 18:08

Re: Consommation excessive avec interrupteurs ZigBee sur pile

Message par Fred_P »

Dans les logs, seuls les événements liés à l'appui sur les boutons physiques de l'interrupteur apparaissent :

Code : Tout sélectionner

2023-01-19 08:35:22.078 EventSystem: Event triggered: Interrupteur volet cuisine_2
2023-01-19 08:35:22.089 ConBee II: onCommand called for Unit 56: Parameter 'On', Level: 0, Hue:
2023-01-19 08:35:31.364 EventSystem: Event triggered: Interrupteur volet cuisine_1
2023-01-19 08:35:31.444 ConBee II: onCommand called for Unit 49: Parameter 'On', Level: 0, Hue:
L'interrupteur est reconnu comme interrupteur dans Domoticz :
switch.JPG
switch.JPG (20.99 Kio) Consulté 1544 fois
Et reconnu comme capteur dans deCONZ :
deconz.png
deconz.png (23.76 Kio) Consulté 1544 fois

Code : Tout sélectionner

{
  "config": {
    "battery": 100,
    "on": true,
    "pending": [],
    "reachable": true
  },
  "ep": 1,
  "etag": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "lastannounced": null,
  "lastseen": "2023-01-19T07:35Z",
  "manufacturername": "LUMI",
  "mode": 1,
  "modelid": "lumi.remote.b486opcn01",
  "name": "lumi.remote.b486opcn01 146",
  "state": {
    "buttonevent": 4002,
    "lastupdated": "2023-01-19T07:35:31.200"
  },
  "swversion": "20190730",
  "type": "ZHASwitch",
  "uniqueid": "XX:XX:XX:XX:XX:XX:XX:XX-XX-XXXX",
  "id": "146",
  "deviceclass": "sensors"
}
"battery": 100, car je viens une nouvelle fois de remplacer la batterie.
Thorgal
Messages : 913
Inscription : 16 août 2018, 20:02
Contact :

Re: Consommation excessive avec interrupteurs ZigBee sur pile

Message par Thorgal »

Oui, il y a ce probleme sur deconz, surtout depuis le passage avec les DDFs, mais par contre la pour le coup, tu as un vieux modele qui marche depuis longtemps "lumi.remote.b486opcn01" et qui est stable.

Tu as vu ou cette histoire de firmware ?

Ca peut peut etre se forcer en passant par DDF, tu connais les differences de fonctionnement avec ton modele et le "lumi.remote.b28ac1" (car celui ci a deja un DDF) ? Je regarderais demain si on peut adapter le DDF masi je trouve ca bizarre, ca peut arriver sur certain modele qui ne donnent pas le swbuild par exemple, et du coup deconz spamme la commande pour avoir une reponse qu'il n'aura jamais, mais la tu as l'air d'avoir toute les infos.

Il y a un setting aussi, pour changer un "mode de fonctionnement" ...

Tu as essayé de le re-inclure sans l'effacer ? peut etre certaines commandes sont passées a la trappe.

Au pire, si ca deconne encore, tu peux tester le plugin de pipiche, il supporte aussi la conbee, mais ne part pas sur un mauvais retour pour le zigbee, c'est une tres bonne technologie.

Au fait tu es sous quelle version de deconz ? Parfois de repartir sur une version plus vielle peut aider.
Fred_P
Messages : 22
Inscription : 06 juil. 2021, 18:08

Re: Consommation excessive avec interrupteurs ZigBee sur pile

Message par Fred_P »

Merci pour ton retour Thorgal.

Des problèmes de pertes d'autonomie ont été rencontrés avec des interrupteurs Ikea TRADFRI. Les firmwares y sont évoqués :
https://community.home-assistant.io/t/z ... kly/454204
https://www.reddit.com/r/ZigBee/comment ... i_battery/

J'avais opté pour le modèle "lumi.remote.b486opcn01", car il possède 4 boutons physiques, alors que le "lumi.remote.b28ac1" en possède deux.

J'ai essayé plusieurs fois de le re-inclure (en l’effaçant et sans l'effacer), mais sans succès.

Je suis très content de la technologie ZigBee :) Je possède diverses sondes de températures (Aqara), des détecteurs d'ouverture (Aqara), des vannes thermostatiques (Moes) sur piles, où je ne rencontre pas ces problèmes d'autonomie.

Ce qui est vraiment étrange, c'est que ce problème concerne deux interrupteurs sur piles de marques différentes (LoraTap et Aqara) ???

J'utilise la dernière version stable de deCONZ (2.19.03) / firmware 26780700.

Ce matin la batterie affiche 93% (soit une baisse de 7% en 24h). J'ignore si ça peut changer quelque chose, mais je viens de remplacer le paramètre ON de "true" à "false"... (les autres paramètres ne sont pas modifiables).
remote.JPG
remote.JPG (21.47 Kio) Consulté 1492 fois
Thorgal
Messages : 913
Inscription : 16 août 2018, 20:02
Contact :

Re: Consommation excessive avec interrupteurs ZigBee sur pile

Message par Thorgal »

Ce matin la batterie affiche 93% (soit une baisse de 7% en 24h)
Trop
'ignore si ça peut changer quelque chose, mais je viens de remplacer le paramètre ON de "true" à "false"
Nope ce setting ne sert que pour phoscon.

Essayes ce DDF

Code : Tout sélectionner

{
  "schema": "devcap1.schema.json",
  "manufacturername": "$MF_LUMI",
  "modelid": "lumi.remote.b486opcn01",
  "vendor": "Xiaomi",
  "product": "xxxxxxxxxxxx",
  "sleeper": true,
  "status": "Gold",
  "subdevices": [
    {
      "type": "$TYPE_SWITCH",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x0006"
      ],
      "fingerprint": {
        "profile": "0x0104",
        "device": "0x0103",
        "endpoint": "0x01",
        "in": [
          "0x0000",
          "0x0001",
          "0x0012",
          "0xFCC0"
        ],
        "out": [
          "0x0006"
        ]
      },
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername",
          "awake": true
        },
        {
          "name": "attr/modelid",
          "awake": true
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion",
          "awake": true,
          "parse": {
            "at": "0x00f7",
            "ep": 1,
            "fn": "xiaomi:special",
            "idx": "0x08",
            "script": "xiaomi_swversion.js"
          },
          "read": {
            "fn": "none"
          }
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "config/battery",
          "awake": true,
          "refresh.interval": 84000,
          "parse": {
            "at": "0x0020",
            "cl": "0x0001",
            "ep": 1,
            "eval": "const vmin = 25; const vmax = 30; let bat = Attr.val; if (bat > vmax) { bat = vmax; } else if (bat < vmin) { bat = vmin; } bat = ((bat - vmin) / (vmax - vmin)) * 100; if (bat > 100) { bat = 100; } else if (bat <= 0)  { bat = 1; } Item.val = bat;",
            "fn": "zcl"
          },
          "read": {
            "fn": "None"
          }
        },
        {
          "name": "config/devicemode",
          "awake": true,
          "parse": {
            "at": "0x0009",
            "cl": "0xfcc0",
            "ep": 1,
            "eval": "if (Attr.val == 1) { Item.val = 'compatibility' } else if (Attr.val == 2) { Item.val = 'zigbee' } else { Item.val = 'unknown' }",
            "fn": "zcl",
            "mf": "0x115f"
          },
          "read": {
            "at": "0x0009",
            "cl": "0xfcc0",
            "ep": 1,
            "fn": "zcl",
            "mf": "0x115f"
          },
          "write": {
            "at": "0x0009",
            "cl": "0xfcc0",
            "dt": "0x20",
            "ep": 1,
            "eval": "if (Item.val == 'compatibility') { 1 } else if (Item.val == 'zigbee') { 2 }",
            "fn": "zcl",
            "mf": "0x115f",
            "state.timeout": 2
          },
          "values": [
            [
              "\"compatibility\"",
              "Default mode for Xiaomi devices"
            ],
            [
              "\"zigbee\"",
              "Closer to zigbee standard"
            ]
          ],
          "default": "compatibility"
        },
        {
          "name": "config/group"
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "state/buttonevent"
        },
        {
          "name": "state/lastupdated"
        }
      ]
    }
  ],
  "bindings": [
    {
      "bind": "unicast",
      "src.ep": 1,
      "dst.ep": 1,
      "cl": "0x0001",
      "report": [
        {
          "at": "0x0020",
          "dt": "0x20",
          "min": 60,
          "max": 3600,
          "change": "0x00000001"
        }
      ]
    },
    {
      "bind": "unicast",
      "src.ep": 1,
      "cl": "0x0006"
    },
    {
      "bind": "unicast",
      "src.ep": 1,
      "cl": "0x0008"
    },
    {
      "bind": "unicast",
      "src.ep": 1,
      "cl": "0x0300"
    }
  ]
}
Je l'ai fais a partir de celui a 2 bouttons :
- Tu vas avoir un setting de plus config/devicemode, ou tu pourras mettre "compatibility" ou "zigbee", me demande pas ce que ca change, mais par defaut c'est "compatibility" .... (je viens de penser que suis pas sur que le front end de domoticz le permette, au moins tu pouras le lire)
- J'ai copié les infos que j'ai vu sur z2M donc tu as 3 binds de plus

Par contre, je n'ai pas augmenté les timeout car je ne vois pas la commande que peut spammer deconz, il faudrait le GUI pour la voir, mais ce DDF est testé et fonctionnel pour l'autre appareil, pas de raisons qu'il ne marche pas pour toi.

Pour l'installer :
- effaces ton interrupteur de deconz
- copies le fichier dans le dossier "devices\xiaomi", il te faut juste creer un fichier texte appellé "cequetuveux.ddf" avec ce contenu
- relances deconz
- re-inclus ton appareil.
All DDF provided directly with deCONZ typically reside in /usr/share/deCONZ/devices/ on a Linux system and are loaded first. However, files residing in the home directory of the user running deCONZ (e.g. /home/<DECONZUSER>/.local/share/dresden-elektronik/deCONZ/devices) will override the pre-packaged files to allow users to amend and keep their own files if desired
Il vaut mieux utiliser le dossier /usr/share/deCONZ/devices/xiaomi car il y a dedans des fichiers necessaires au DDF

Code : Tout sélectionner

            "script": "xiaomi_swversion.js"
J'utilise la dernière version stable de deCONZ (2.19.03)
C'est la première que tu testes (et pas de bol c'est la branche maudite) ? Si tu peux essayes plutot la branches 2.18.
Fred_P
Messages : 22
Inscription : 06 juil. 2021, 18:08

Re: Consommation excessive avec interrupteurs ZigBee sur pile

Message par Fred_P »

Essayes ce DDF
Grand merci pour le DDF généré! :)
Je dois avouer que je suis novice en la matière, mais j'ai essayé de suivre au mieux tes instructions.
J'ai donc créé un fichier xiaomi.ddf dans le dossier /usr/share/deCONZ/devices/xiaomi/, en y incluant ton code.
J'ai relancé deCONZ et réinclus l'interrupteur.

Voici ce que cela affiche à présent :

Code : Tout sélectionner

{
  "config": {
    "battery": 94,
    "on": true,
    "pending": [],
    "reachable": true
  },
  "ep": 1,
  "etag": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "lastannounced": null,
  "lastseen": "2023-01-20T15:58Z",
  "manufacturername": "LUMI",
  "mode": 1,
  "modelid": "lumi.remote.b486opcn01",
  "name": "OPPLE switch 2-gang",
  "state": {
    "buttonevent": 4002,
    "lastupdated": "2023-01-20T15:58:59.315"
  },
  "swversion": "20190730",
  "type": "ZHASwitch",
  "uniqueid": "XX:XX:XX:XX:XX:XX:XX:XX-XX-XXXX",
  "id": "145",
  "deviceclass": "sensors"
}
Seul changement que j'observe, c'est au niveau de "name" (OPPLE switch 2-gang au lieu de lumi.remote.b486opcn01 146).
interrupteur.JPG
interrupteur.JPG (20.73 Kio) Consulté 1465 fois
L'interrupteur est fonctionnel.
C'est la première que tu testes (et pas de bol c'est la branche maudite) ? Si tu peux essayes plutot la branches 2.18.
Je ne sais pas trop ce que j'ai fait, mais cela à installé la toute dernière version de deCONZ : 2.20.01
Thorgal
Messages : 913
Inscription : 16 août 2018, 20:02
Contact :

Re: Consommation excessive avec interrupteurs ZigBee sur pile

Message par Thorgal »

Ca a loupé mais par contre je viens de voir le reglage sur l'ancien json du coup, tu as un champs "mode":1.

Si ca avait marché tu aurais du avoir un nouveau champs "config/devicemode"

C'est surement ma faute, je t'ai raconté de la merde, le fichier doit avoir l'extension .json pas .ddf, désolé.
Seul changement que j'observe, c'est au niveau de "name" (OPPLE switch 2-gang au lieu de lumi.remote.b486opcn01 146).
Alors ça c'est magique, suis en train de chercher dans le code, je vois pas d"ou ca vient, peut etre de deconz lui meme. Attend un peu de voir si la battery tient plus longtemps avec cet essais. De 93 a 94% depuis ce matin, ca a l'air de s'etre calmé
Je ne sais pas trop ce que j'ai fait, mais cela à installé la toute dernière version de deCONZ : 2.20.01
Tu as du mettre a jour ton OS et ca a mit a jour deconz, la branche 2.20 est plus stable mais c'est pas un réussite non plus.
Fred_P
Messages : 22
Inscription : 06 juil. 2021, 18:08

Re: Consommation excessive avec interrupteurs ZigBee sur pile

Message par Fred_P »

C'est surement ma faute, je t'ai raconté de la merde, le fichier doit avoir l'extension .json pas .ddf, désolé.
Pas de souci ;)

J'ai modifié l'extension en .json et refait les manipulations.
À présent, deux dispositifs apparaissent...
deconz.JPG
deconz.JPG (17.23 Kio) Consulté 1447 fois
Données du premier (OPPLE switch 2-gang):

Code : Tout sélectionner

{
  "config": {
    "battery": 91,
    "on": true,
    "pending": [],
    "reachable": true
  },
  "ep": 1,
  "etag": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "lastannounced": null,
  "lastseen": "2023-01-20T16:34Z",
  "manufacturername": "LUMI",
  "mode": 1,
  "modelid": "lumi.remote.b486opcn01",
  "name": "OPPLE switch 2-gang",
  "state": {
    "buttonevent": 4002,
    "lastupdated": "2023-01-20T16:34:38.781"
  },
  "swversion": "2019",
  "type": "ZHASwitch",
  "uniqueid": "XX:XX:XX:XX:XX:XX:XX:XX-XX-XXXX",
  "id": "145",
  "deviceclass": "sensors"
}
Données du second (Switch 146) :

Code : Tout sélectionner

{
  "config": {
    "battery": 80,
    "devicemode": "compatibility",
    "group": null,
    "on": true,
    "reachable": true
  },
  "ep": 1,
  "etag": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "lastannounced": null,
  "lastseen": "2023-01-20T16:34Z",
  "manufacturername": "LUMI",
  "mode": 1,
  "modelid": "lumi.remote.b486opcn01",
  "name": "Switch 146",
  "state": {
    "buttonevent": null,
    "lastupdated": "none"
  },
  "swversion": "0.0.0_0017",
  "type": "ZHASwitch",
  "uniqueid": "XX:XX:XX:XX:XX:XX:XX:XX-XX-XXXX",
  "id": "146",
  "deviceclass": "sensors"
}
"devicemode": "compatibility" apparaît à présent ;)

En les ajoutant dans Domoticz, seul le premier est fonctionnel et affiche 91% de batterie. Le second ne fonctionne pas et affiche 80% de batterie ???
Thorgal
Messages : 913
Inscription : 16 août 2018, 20:02
Contact :

Re: Consommation excessive avec interrupteurs ZigBee sur pile

Message par Thorgal »

Bon ben deja passer a 91% c'est pas bon signe.

Sinon, tu as bien supprimé l'ancien appareil de deconz ? Je vois pas les unique ID (tu peux masquer que le debut ça suffit)
Mais c'est comme si tu avais celui du legacy code et celui du DDF.
Répondre