Tasmota
-
@barbu-dor
Donc voici les précisions pour le terme v9. J'ai 3 module qui tourne en simultané pour remonter le comptage de 3 compteurs, dont 1 en en standard et 2 en historique.
Donc avec cette version je bascule en historique et standard et c'est fonctionnel à 100%.
Avec la dernière version en cours, ca ne fonctionne qu'en historique
Je te remonterais dans la soirée le résultat du weblog 3 avec la nouvelle version -
@barbu-dor fausse alerte, aucun problème de code mais plutot un problème avec mon Wemos qui est défectueux (pourtant il est tout neuf). J'ai repris la dernière version , j'ai reflashé, j'ai retesté en historique et ca ne fonctionnait plus. Du coup, j'ai flashé la v9 et idem.
J'ai retesté avec un nouveau wemos, et ca fonctionne bien soit en standard soit historique, donc toutes mes excuses c'était mon wemos qui fichait le cirque. Par contre l'envoit de données vers domoticz ne fonctionne plus avec cette version, et ca fonctionnait bien en 9.4. A savoir j'ai la setoption72 qui est actif
En fait dans la trame de domoticz on doit retrouver l'état de l'index du compteur total et c'est pas le cas, on est un petit peu différent...
Autre chose que je relève, la commande energyreset ne fonctionne plus
-
@seb-h Pour la remontée vers Domoticz je ne sais pas, je n'utilise pas Domoticz.
Est-ce que tu pourais me donner plus de détails
Qu'avais-tu avant ? quelles données ?
Qu'as tu maintenant ?EnergyReset a été remplacé par 3 commandes disctinctes pour Total, Today et Yesterday.
Voir la doc https://tasmota.github.io/docs/Commands/#energytoday -
@barbu-dor
Voici une copie de mon tasmota fonctionnel en v 9.4
Donc dans cet exemple energytotal est a 2717233 , donc sur la ligne juste au dessus, tu retrouves la trame qui part vers domoticz et tu trouve la copie conforme du compteur total de tasmota.Avec la nouvelle version, tu as un décalage entre le compteur total de tasmota et le compteur qui est envoyé a domoticz. Sur mon précédent exemple, dans les 2 dernières lignes le compteur total est a 3829905 et il est envoyé a domoticz 3791606, j'arrive pas a expliquer cette différence de comptage
Et l'autre chose, c'est dans le cas d'une tarification HP/HC, en v9.4, l'envoit vers domoticz ne fonctionnait pas non plus alors qu'il me semble que le code est prévu pour . Mais bon chez moi je suis passé en tarif unique . J'irais testé chez un pote avec les rules que tu m'as écris
Sinon ok pour la commande energyreset , mais pourtant cette commande apparait toujours sur la doc du site..
-
@seb-h C'est bien marqué qu'à partir de la version 10 elle est remplacée. Elle est là pour ceux qui continue a utiliser une version 9.X
Je regarderais demain pour ton pb
-
@barbu-dor
Ok ca marche, pour activer l'envoie d'une trame domoticz (même si tu l'utilises pas), il suffit d'aller dans la config , tu choisis domoticz, et dans l'onglet P1 SmartMeter , tu renseignes un numéro idx (normalement fournit par domoticz quand tu créer ton compteur)
Je t'ai fait un petit recap des informations qui peuvent être renseigner dans la trame domoticz
Tu as aussi ce lien qui explique le contenue de la trame
https://www.domoticz.com/wiki/Domoticz_API/JSON_URL's#Electricity_P1_smart_meter
Merci d'avance -
@seb-h Est-ce que tu as bien
setoption72 1
? -
@barbu-dor Oui bien sur , setoption72 à 1, te permet de dupliquer l'index de ton compteur dans le compteur total de tasmota.
Question : Toujours dans le cadre de la tarification HP/HC, comment cela doit se passer avec cette option active ??
Car aujourd'hui dans la trame domoticz, c'est le compteur total tasmota qui est envoyé (du moins en v 9.4) -
@seb-h
Je me suis un peu plongé dans le code de Tasmota hier et je ne suis arrivé à pas grand chose.
Je n'ai pas trouvé le lien entre ce qui est envoyé dans la trame Domoticz et dans la trame SENSOR. Ce ne sont pas les mêmes variables...Concernant les 2 tarifs, Tasmota ne gère qu'une comptabilisation basée sur des tranches horaires. Il n'est pas possible, malgré l'option SetOption72 que Tasmota prenne en compte les compteurs HC et HP du Linky.
Sincèrement je pense qu'à court terme tu t'en sortira mieux et plus vite en récupérant les données et contruisant ton message Domoticz par Rules. -
@barbu-dor
Merci de t'être plongé dans le code. Il y a donc bien un soucis avec l'envoit automatique de la trame domoticz et teleinfo.. En tout cas, ça fonctionnait en v9.4, sauf qu'il fallait bien réinitialiser les compteurs à la première mise sous tension, sinon il y avait aussi un décalage...
Bah je vais tester par les rules , je vous dirais. Donc pour la puissance ENERGY#Power, pour les index TIC#EASF01 ou EASF02 etc... par contre tu récupères comment la valeur du RSSID de ton wifi(afin de le mettre dans une VAR comme pour le reste ) pour le mettre à jour en auto dans la trame domoticz ?? -
@seb-h Même chose
Le RSSI est dans le message STATE :
{ .., Wifi: { ..., RSSI: nnn, ... } }
Donc le trigger
ON Wifi#RSSI DO Var3 %value% ENDON
-
@barbu-dor
Super simple, faut connaitre le groupe et le non de la variable que tu veux stocker dans une VAR. Tu as une doc qui regroupe toutes ces infos ??En tout cas merci beaucoup , je vais pouvoir tester ça.
-
@seb-h tout Tasmota est documenté
Après ce n'est pas toujours facile de trouver son chemin dans la doc
Pour les rules c'est là
https://tasmota.github.io/docs/Rules/ -
@barbu-dor
Je viens de tester le rule que tu m'as écrit. Ca fonctionne impeccable. Par contre j'aimerais faire une petite modif ou je ne m'en sort pas seul. La valeur que me renvoit Wifi#RSSI doit être divisé par 10 et doit être arrondi. En gros je dois avoir une valeur entre 1 et 10. J'ai tenté " tele-Wifi#RSSI do var2 %value%/10" mais en fait il ne fait pas le calcul et me rajoute "/10" tout simplement. Comment pourrais je faire stp ?? -
@seb-h Par défaut Tasmota ne comprend pas les expressions mathématiques
Tu as 2 choix- Il y a des commandes pour opérer des operations sur des variables:
Add<x> n : ajoute n à var<x> (equivalent à Var<x> = Var<x> + n)
Sub<x> n
Div<x> n
Mult<x> n
Donc ce que tu as besoin de Div2 10
EssayeON tele-Wifi#RSSI do backlog var2 %value%; div2 10 ENDON
- L'autre choix est de compiler Tasmota avec l'option USE_EXPRESSION (+USE_TELEINFO of course) car il n'y a pas de binaire standard avec ces 2 options
Dans ce cas tu pourrais écriteON tele-WIfi#RSSI do var2 = %value% / 10 ENDON
Note l'usage du=
dans ce cas pour que Tasmota utilise l'évaluation d'expression
- Il y a des commandes pour opérer des operations sur des variables:
-
@barbu-dor
ON tele-Wifi#RSSI do backlog var2 %value%; div2 10 ENDON
Il n'aime pas l'insertion de "backlog" et du coup il me rajoute textuellement dans l'envoie de la commande ; div2 10 -
@seb-h C'est pas le backlog
En fait je me suis planté, j'étais persuadé que Div existait
Seul les 3 autres existent.
Donc il fautON tele-Wifi#RSSI do backlog var2 %value%; Mul2 0.1 ENDON
19:53:41.719 MQT: tele/esp32dev3/STATE = {"Time":"2022-02-10T19:53:41+01:00","Uptime":"3T21:30:06","UptimeSec":336606,"Heap":85,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Berry":{"HeapUsed":3,"Objects":34},"Wifi":{"AP":1,"SSId":"BNETWLAN","BSSId":"88:C3:97:F2:25:EC","Channel":1,"Mode":"11n","RSSI":98,"Signal":-51,"LinkCount":1,"Downtime":"0T00:00:09"}} 19:53:41.774 RUL: TELE-WIFI#RSSI performs "backlog var9 98 ; Mult9 0.1" 19:53:41.887 MQT: stat/esp32dev3/VAR = {"Var9":"98"} 19:53:42.142 MQT: stat/esp32dev3/MULT = {"Mult9":"9.800"} 19:55:00.723 RUL: TIME#MINUTE|5 performs "seriallog 2" 19:55:00.742 MQT: stat/esp32dev3/SERIALLOG = {"SerialLog":{"2":{"Active":"2"}}}
-
@barbu-dor
etrange chez moi ca ne fonctionne toujours pas..
-
@seb-h tu peux faire un
Rule0
(tout attaché) et copier le résultat ici en texte (pas en image) ? -
@barbu-dor
Aucun soucis désolé
20:43:46.216 CMD: rule0
20:43:46.221 MQT: stat/tasmota_A1AE2F/RESULT = {"Rule1":{"State":"ON","Once":"OFF","StopOnError":"OFF","Length":236,"Free":275,"Rules":"on tele-ENERGY#Power do var1 %value% endon on tele-Wifi#RSSI do backlog Var3 %value%; Mul3 0.1 endon on tele-TIC#EASF01 do publish domoticz/in {"idx":26,"nvalue":0,"svalue":"0;%value%;0.0;0.0;%var1%;0","Battery":100,"RSSI":%var3%} endon"}}
20:43:46.230 MQT: stat/tasmota_A1AE2F/RESULT = {"Rule2":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":0,"Free":511,"Rules":""}}
20:43:46.237 MQT: stat/tasmota_A1AE2F/RESULT = {"Rule3":{"State":"OFF","Once":"OFF","StopOnError":"OFF","Length":0,"Free":511,"Rules":""}}
20:43:46.416 MQT: tele/tasmota_A1AE2F/STATE = {"Time":"2022-02-10T20:43:46","Uptime":"0T02:44:14","UptimeSec":9854,"Heap":22,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":2,"Wifi":{"AP":1,"SSId":"Sylvia&Seb","BSSId":"14:91:82:FC:0E:ED","Channel":1,"Mode":"11n","RSSI":64,"Signal":-68,"LinkCount":1,"Downtime":"0T00:00:03"}}
20:43:46.426 RUL: TELE-WIFI#RSSI performs "backlog Var3 64; Mul3 0.1"
20:43:46.441 MQT: tele/tasmota_A1AE2F/SENSOR = {"Time":"2022-02-10T20:43:46","ENERGY":{"TotalStartTime":"2022-02-10T17:59:38","Total":3860.279,"Yesterday":0.000,"Today":1.335,"Period": 1,"Power":394,"ApparentPower":444,"ReactivePower":205,"Factor":0.89,"Voltage":222,"Current":2.000,"Load":33},"TIC":{"ADSC":"061961361253","VTIC":2,"NGTF":" BASE ","LTARF":" BASE ","EAST":3860279,"EASF01":2747544,"EASF02":1112735,"EASF03":0,"EASF04":0,"EASF05":0,"EASF06":0,"EASF07":0,"EASF08":0,"EASF09":0,"EASF10":0,"EASD01":2747544,"EASD02":1112735,"EASD03":0,"EASD04":0,"IRMS1":2,"URMS1":222,"PREF":6,"PCOUP":6,"SINSTS":394,"SMAXSN":2608,"SMAXSN-1":2180,"CCASN":810,"CCASN-1":268,"UMOY1":221,"STGE":"003A0001","PRM":2147483647,"RELAIS":0,"NTARF":1,"NJOURF":0,"NJOURF+1":0}}
20:43:46.448 RUL: TELE-ENERGY#POWER performs "var1 394"
20:43:46.453 MQT: stat/tasmota_A1AE2F/RESULT = {"Var1":"394"}
20:43:46.464 RUL: TELE-TIC#EASF01 performs "publish domoticz/in {"idx":26,"nvalue":0,"svalue":"0;2747544;0.0;0.0;394;0","Battery":100,"RSSI":70}"
20:43:46.469 MQT: domoticz/in = {"idx":26,"nvalue":0,"svalue":"0;2747544;0.0;0.0;394;0","Battery":100,"RSSI":70}
20:43:46.671 MQT: stat/tasmota_A1AE2F/RESULT = {"Var3":"64"}
20:43:46.872 MQT: stat/tasmota_A1AE2F/RESULT = {"Command":"Unknown"}