Plusieurs erreurs/manques pour Tasmota POW-R2

Bonjour @AlexTrovato,

Petite question, avais-tu codé à l’aveugle pour toute la partie Energie de Tasmota ?
J’ai plusieurs chose qui ne vont pas :

  • Le voltage est /1000 :

      // Gladys vs Tasmota transformers
      readValue: (value) => {
        return value / 1000;
      },
    

    alors que la donnée envoyée est bien en volts :

    07:03:37 MQT: tele/Tasmota_POWR2-1/SENSOR = {"Time":"2022-05-18T07:03:37","ENERGY":{"TotalStartTime":"2020-05-13T13:35:10","Total":0.403,"Yesterday":0.329,"Today":0.003,"Period":0,"Power":740,"ApparentPower":802,"ReactivePower":310,"Factor":0.92,"Voltage":230,"Current":3.487}}
    

    image

  • Le courant dans le fichier energy.current.js est en type DEVICE_FEATURE_TYPES.SWITCH.ENERGY au lieu DEVICE_FEATURE_TYPES.SWITCH.CURRENT et idem voltage, /1000 alors que ne devrait pas (dans l’exemple ci-dessus la pompe consomme 740W soit 3,5A),
    image

  • Il manque les valeurs d’énergie.

Je suis en train de proposer une PR, mais je veux être sûr de rien casser pour la partie tension et intensité notamment. Si tu peux me confirmer que tu n’as pas pu contrôler les résultats ou si ça a été fait avec un autre matériel qui lui envoyait dans cette ordre. Car dans le 2ème cas il faut qu’on puisse mettre le choix de la mise à l’échelle…

Merci par avance.

Après modification, on se retrouverai avec les bonnes valeurs :
image

Pour autant qu’on soit sûr que seul le POW-R2 renvoi les valeurs d’énergie d’origine. Je n’en ai pas trouvé d’autres chez Sonoff. Mais via Tasmota avec le format "ENERGY":{}, je pense que c’est le seul.

La PR est prête à sortir si c’est bon.

Pour le POWR2 Sonoff Pow R2 - Tasmota

Message        | Unit | Description
---------------|------|-----------------------------------------------------
TotalStartTime | Date | DateTime of calculation for Total
Total          | kWh  | Total Energy usage including Today
Yesterday      | kWh  | Total Energy usage between 00:00 and 24:00 yesterday
Today          | kWh  | Total Energy usage today from 00:00 until now
Period         | Wh   | Energy usage between previous message and now
Power          | W    | Current effective power load
ApparentPower  | W    | Power load on the cable = sqrt(Power^2 + 
               |      | ReactivePower^2)
ReactivePower  | W    | Reactive load
Factor         |      | The ratio of the real power flowing to the load to
               |      | the apparent power in the circuit 
Voltage        | V    | Current line voltage
Current        | A    | Current line current

D’ailleurs ça renvoi des W pour la puissance apparente et réactive mais si je dis pas de bêtises c’est des VA normalement. ( ok je chipote )

Il y’a un type energy sensor avec toutes les unités qui vont bien.

[DEVICE_FEATURE_CATEGORIES.ENERGY_SENSOR]: [
    DEVICE_FEATURE_UNITS.MILLI_AMPERE,
    DEVICE_FEATURE_UNITS.AMPERE,
    DEVICE_FEATURE_UNITS.MILLI_VOLT,
    DEVICE_FEATURE_UNITS.VOLT,
    DEVICE_FEATURE_UNITS.WATT,
    DEVICE_FEATURE_UNITS.KILOWATT,
    DEVICE_FEATURE_UNITS.WATT_HOUR,
    DEVICE_FEATURE_UNITS.KILOWATT_HOUR,
    DEVICE_FEATURE_UNITS.MEGAWATT_HOUR,
    DEVICE_FEATURE_UNITS.VOLT_AMPERE,
    DEVICE_FEATURE_UNITS.VOLT_AMPERE_REACTIVE,
  ],

Merci @VonOx,

En effet c’est exactement ce que j’ai repris. Mais ma question est surtout pour les autres appareils pouvant renvoyer ces infos d’energie. Je n’en connais pas d’autre qui d’origine fournissent ces infos. Pour le POW-R2 (contrairement au DHT11 ou autres), ne renvoi pas son modèle dans le message mqtt. Du coup , si d’autres appareils renvois ces données, comment être sûr de ne pas casser ces fichiers qui ne peuvent pas être autre que globaux. Dans les tests, je vois que @AlexTrovato a mis des valeurs divisées par 1000 (0.120 pour le voltage par exemple), mais du coup 2 raisons à cela :

  • Il avait un autre model de device qui renvoyait ça ?
  • Fait à l’aveugle ?

Les deux :grin: ?

Surement un device qui renvoyait des millivolts

Le truc un peu idiot c’est que le payload ne renvoi pas l’unité

Non non tu chippotes pas ^^ C’est bien ça et c’est « important » de distinguer pour un électricien ^^, mais je pense que la doc n’est pas bonne car sur l’interface on retrouve bien des VA et des VAr :
image

Du coup, on est d’accord que la division par 1000 n’a pas lieu d’être, dans ce cas il faudra juste que l’utilisateur modifie l’unité pour la passée en millivolts qui est disponible dans l’édition ?

Totalement, le mieux aurait été de renvoyer le model de module comme fait avec les DHT11 par exemple pour dissocier au besoin dans ce genre de cas.

A ton avis je peux lancer la PR comme ça ?

Je vois aucune raison de le faire

Oui

Oui :slight_smile:

1 « J'aime »

Merci pour tes réponses @VonOx ^^
Une dernière question toutefois avant de trop en faire :

  • Côté front il y a une modif à faire pour l’affichage de l’unité de la puissance réactive, celle-ci étant en minuscule au lieu de majuscule.
  • Egalement dans l’édition des features, les unités de l’énergie en Wh et des puissances VA et VAr n’apparaissent pas.

Puis-je les faire dans la même PR ou il vaut mieux en séparé ?

Car tu es sur la catégorie switch et non energy sensor.

Je sais pas trop si faut rajouter toutes les unités sur les switchs ou les virer, j’ai peur que ça fasse doublon

En effet !! On peut plutôt passer ces features de Tasmota en énergie effectivement. Elles sont bien spécifique et catégorisée en « Energy » sur tasmota. Le switch lui est en effet bien à part !!^^

Bonjour à tous,

J’aurais besoin de testeurs pour un correctif apporté sur l’intégration Tasmota lié à la PR #1526 sur notamment les Sonoff POW R2. Peu importe que vous ayez du Sonoff POW R2 ou non, le but est de tester que ça ne casse rien au fonctionnement actuel. Mieux encore si vous avez d’autres appareils Tasmota utilisant les fonctionnalité précisées ci-dessous (même si je ne vois aucune raison que quoique ce soit ne casse avec cette modif).
Pour rappel les modification sont les suivantes :

  • Correction d’une erreur sur la fonctionnalité d’intensité qui était traduite en énergie.
  • Correction de la tension qui était divisé par 1000 qui donne des mV pour le POW R2 (avec unité en Volt). Si sur d’autres appareils la tension est retransmise en milliVolt alors l’utilisateur devra sélectionner la bonne unité dans le menu d’édition de l’appareil
  • Correction de la catégorie et du type de la fonctionnalité d’énergie ENERGY_SENSOR plutôt que SWITCH afin d’obtenir les unités correctes dans le menu d’édition des appareils/fonctions
  • Ajout des données énergétiques suivantes (notamment pour le modèle Sonoff POW-Rx) :
    • Consommation électrique apparente,
    • Consommation de puissance réactive,
    • Énergie totale,
    • Energie consommée du jour.
  • Correction de l’unité Volt Ampère réactive sur la face avant qui dans les fichiers i18n était en minuscules (var au lieu de VAr)
  • Correction des unités Watt et kiloWatt côté front qui n’étaient pas mentionnées dans le fichier fr.json (« Watt » au lieu de « Watt (W) » et « KiloWatt » au lieu de « KiloWatt (kW) ») mais qui étaient bonnes dans le fichier en.json.

Vous pouvez tester soit via la PR, soit via l’image docker en cours de construction : docker pull terdious/gladys:tasmota-POW-R2-features-fixes

Merci par avance

J’ai un RPi 2 qui traîne dans une armoire, je peux tester là-dessus?
Mais je n’ai pas encore de R2…

1 « J'aime »

J’ai un sonoff toujours sur ewelink ( d’ailleurs faudrai que je le démonte pour le flash)

Si @GBoulvin ne test pas j’essaie de trouver un peu de temps.

1 « J'aime »

De mon côté, tout ce que j’ai pu tester fonctionne niveau Tasmota.
Découverte MQTT ok
Découverte HTTP ok
Switches, températures, humidités ok
Le reste de l’instance a l’air de fonctionner sans problème.
Testé sur RPi2 Bullseye 32bit lite officielle avec la commande d’installation suivante :

docker run -d \
--log-driver json-file \
--log-opt max-size=10m \
--cgroupns=host \
--restart=always \
--privileged \
--network=host \
--name gladys \
-e NODE_ENV=production \
-e SERVER_PORT=80 \
-e TZ=Europe/Paris \
-e SQLITE_FILE_PATH=/var/lib/gladysassistant/gladys-production.db \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/gladysassistant:/var/lib/gladysassistant \
-v /dev:/dev \
-v /run/udev:/run/udev:ro \
terdious/gladys:tasmota-POW-R2-features-fixes

PS: Tant que tu as les mains dans le cambouis, tu penses que tu pourrais faire quelque chose pour que l’intégration prenne en charge le RF, le IR voire le RFID (RC522) ?
Je sais qu’il y avait un souci car les codes sont renvoyés en hexadécimal mais je vois qu’on peut faire en sorte qu’ils le soient en décimal en tapant deux commandes dans la console des appareils : Voir ici

1 « J'aime »

Merci beaucoup pour ton retour @GBoulvin !!

Pour etre sûr que ca ne casse rien sur une install existante, penses-tu que tu pourrais couper l instance, y copier/coller ta db de prod et relancer ? Et verifier que tout fonctionne correctement sur tes devices tasmota qui etait existant ?
Merci par avance si tu peux ^^

Alors pour cette partie, je peux toujours regarder, mais pas sûr que je sois suffisamment caler pour trouver.
De mon côté j’ai 4 modules Sonoff RF 433 pour mes detecteurs de mouvement. Actuellement je fonctionne par un publish mqtt prog dans les tasmota. Mais en effet ca m’interesserais d’avoir les fonctionnalité directement, je regarderai mais ce ne sera pas sur la meme PR.
As-tu des exemples de ref de matos pour les 2 autres (IR et RFID) ?

Si tu as un POW Rx, ca m’interesse d’autant plus pour etre sur que ca fonctionne sur une autre instance ^^ Bon apres j’ai testé avec mes 3 DB donc normalement il n’y a pas de raison ^^

D’ailleurs ca me fait penser, @GBoulvin et @VonOx , vous n’avez pas un tasmota qui utilise ces fonctionnalités là par hasard (tension, puissance, energie).

Merci en tout cas

Négatif pour moi

1 « J'aime »

Alors, au risque de te décevoir, en dehors des prises, je n’ai que des modules custom à base de Wemos D1 mini flashés avec Tasmota et connectés à différents petits périphériques (une simple LED IR pour envoyer et/ou un émetteur ou récepteur RF etc.)
Pas de compteur de consommation dans les sonoff chez moi…

J’y regarde demain dans la matinée et te tiens au jus!

Voilà, c’est testé : substitution de la db de prod dans la version test de Gladys.
Aucune anomalie remarquée dans l’intégration Tasmota, MQTT, caméras, openweather ou sur le dashboard.
Je n’ai pas testé la discussion (oubli)…
Bon dimanche !

Edit : j’ai testé la conversation (demande température de la pièce) : OK
Et pour info, la demande d’allumage de lumière ne fonctionne pas mais on sait que ce n’est pas de ta faute :wink:

1 « J'aime »

Aucun soucis ^^ esperons trouver quelqu’un ^^

Oki, bon du coup je vois un peu la problématique qui va etre du meme acabit que la conversation sur la distinction des devices / features plus général (le device est physiquement le Wemos et à plusieurs fonctionnalité - peu importe le RF/IR dans ce cas - mais finalement chaque fonctionnalité de ce device sont aussi des devices). Il faut donc pouvoir ségréger tout ca. Ca fait partie d’un développement plus large qui peut toucher Tasmota mais aussi d’autres intégrations comme Zigbee2mqtt (les prises multiples par exemple)

1 « J'aime »