Tasmota
-
@barbu-dor et voila c'est fait un grand merci à toi
Maintenant toute la config téléinfo se fait en mode console et sans les SetOption, donc depuis la branche developpement de tasmota de ce matin, les 2 options
SetOption102
etSetOption108
n'ont plus d'incidence elles ne servent plus à rien et ont été marquée obsolètes dans le code.Description:
Comment ça se passe maintenant ? Très simple avec la commande
EnergyConfig
depuis la consoleEnergyConfig
affiche la configuration de la téléinfo14:03:38.161 MQT: emoncms/ch2i/factory/wifinfo_09AFD3/tele/RESULT = { "ADCO":"031428067147","OPTARIF":"HC..","ISOUSC":15,"HCHC":2478378,"HCHP":0,"PTEC":"HC..","IINST":0,"IMAX":2,"PAPP":100,"HHPHC":3,"MOTDETAT":0} 14:03:38.605 CMD: EnergyConfig 14:03:38.609 TIC: Settings Mode:historique, Raw:full, Skip:0, Limit:0 14:03:38.630 MQT: emoncms/ch2i/factory/wifinfo_09AFD3/stat/RESULT = {"EnergyConfig":"Done"} 14:03:39.664 MQT: emoncms/ch2i/factory/wifinfo_09AFD3/tele/RESULT = { "ADCO":"031428067147","OPTARIF":"HC..","ISOUSC":15,"HCHC":2478378,"HCHP":0,"PTEC":"HC..","IINST":0,"IMAX":2,"PAPP":100,"HHPHC":3,"MOTDETAT":0} 14:03:41.411 MQT: emoncms/ch2i/factory/wifinfo_09AFD3/tele/RESULT = { "ADCO":"031428067147","OPTARIF":"HC..","ISOUSC":15,"HCHC":2478378,"HCHP":0,"PTEC":"HC..","IINST":0,"IMAX":2,"PAPP":100,"HHPHC":3,"MOTDETAT":0} 14
EnergyConfig Standard
Configure la téléinfo en mode Linky Standard (9600bps)
EnergyConfig Historique
Configure la téléinfo en mode Linky Historique (1200bps)Au dela de la trame complète de télémetrie (topic
SENSOR
) envoyée régulièrement (menuconfiguration/configure logging
)14:00:01.561 MQT: emoncms/ch2i/factory/wifinfo_09AFD3/tele/SENSOR = {"Time":"2021-04-10T14:00:01","ENERGY":{"TotalStartTime":"2021-04-09T23:32:17","Total":0.602,"Yesterday":0.000,"Today":0.602,"Period":6,"Power":110,"Current":0.000,"Load":0,"ADCO":"031428067147","OPTARIF":"HC..","ISOUSC":15,"HCHC":2478373,"HCHP":0,"PTEC":"HC..","IINST":0,"IMAX":2,"PAPP":110,"HHPHC":3,"MOTDETAT":0}}
il est possible d'envoyer en plus les données complètes à chaque trame reçue
EnergyConfig full
active l'envoi complet à chaque trame reçue
EnergyConfig changed
active l'envoi uniquement des données modifiées (depuis la dernière trame donc) à chaque trame reçue14:05:18.411 MQT: emoncms/ch2i/factory/wifinfo_09AFD3/tele/RESULT = { "ADCO":"031428067147","OPTARIF":"HC..","ISOUSC":15,"HCHC":2478380,"HCHP":0,"PTEC":"HC..","IINST":0,"IMAX":2,"PAPP":110,"HHPHC":3,"MOTDETAT":0} 14:05:19.241 CMD: EnergyConfig Changed 14:05:19.245 TIC: Raw to 'changed' 14:05:19.267 MQT: emoncms/ch2i/factory/wifinfo_09AFD3/stat/RESULT = {"EnergyConfig":"Done"} 14:05:20.105 MQT: emoncms/ch2i/factory/wifinfo_09AFD3/tele/RESULT = { "PAPP":100} 14:05:23.209 MQT: emoncms/ch2i/factory/wifinfo_09AFD3/tele/RESULT = { "HCHC":2478381} 14:06:06.201 MQT: emoncms/ch2i/factory/wifinfo_09AFD3/tele/RESULT = { "PAPP":110} 14:06:09.160 MQT: emoncms/ch2i/factory/wifinfo_09AFD3/tele/RESULT = { "HCHC":2478382} 14:06:53.737 MQT: emoncms/ch2i/factory/wifinfo_09AFD3/tele/RESULT = { "HCHC":2478383} 14:07:12.914 MQT: emoncms/ch2i/factory/wifinfo_09AFD3/tele/RESULT = { "PAPP":100}
EnergyConfig noraw
désactive l'envoi (complet ou changed) de chaque trame reçue
EnergyConfig Skip 5
envoi seulement 1 trame sur x (ici 5) lors de l'envoi des données, permet de limiter un peu le trafic et surtout l'envoi en base systématique par exemple.
EnergyConfig Skip 0
désactive l'option précédente.Attention, a partir du moment ou vous avez activé le
skip
mode l'optionchanged
devient caduque car lechanged
sera appliqué sur la dernière trame reçue et pas celle envoyée, et en plus elle peut être "skippée".N'hésitez pas si vous avez des questions ou des remarques
-
@charles Super
Est-ce que les settings sont sauvegardés ?
Ou bien faut-il les remettre à chaque démarrage ?
C'est assez facile soit avec uneRule
typeon system#boot do backlog EnergyConfig xxxx; EnergyConfig xxx endon
De plus maintenant en activant le FileSystem en flash on peut aussi avoir un fichier `autexec.bat' qui enchaîne des commandes de configuration. Même sur un module minimum de 1MB on peut avoir 48kB de filesystem, largement suffisant pour un autoexec.bet conséquent. Avec un MiniD1/NodeMCU de 4MB on peut avoir 2MB de filesystem.
Sur ESP32, la place réservé au code est plus importante (2 * 1,9MB pour gérer l'OTA) et donc le filesystem minimum est de 48kB aussi.Ca serait bien de faire une page de doc dédiée mais par contre, il faudra la faire en anglais pour être cohérent avec le reste. Je peux regarder cela un peu plus tard.
-
Bonjour,
Merci pour votre travail pour intégrer la téléinfo dans Tasmota.
Sur la version tasmota 9.3.1.1, en mode téléinfo standard, les compteurs triphasés ne semblent pas correctement traités.
Sur la page d'accueil, il n'apparait qu'une seule tension et une seule intensité.
Est-ce que cela a été corrigé sur Tasmota 9.3.1.2?Je vous remercie.
Vincent
-
@barbu-dor said in Tasmota:
@Charles j'ai changé l'appel à MqttPublish() par MqttPublishRules() (ou du meme genre) ainsi le JSON est parsé par le moteur de règles
Chaque champ est alors un triggerBonjour,
Pourriez-vous m'indiquer à partir de quelle version de Tasmota cette fonction a été intégrée?
Est-ce bien la 9.3.1.1?
donc pas sur la 9.3.1?Merci
Vincent
-
@vincent835 Compte tenu que j'ai posté ce message le 11 février et que la 9.3.1 est sortie le 22 février, ma PR de février est donc dans le code de la release 9.3.1
MAIS n'oublie pas que Teleinfo n'est pas inclus par défaut dans aucun des binaires et qu'il faut compiler soit même.
Donc tant qu'a compiler, autant le faire sur la version de développement. -
@charles
J'ai tenté de charger ta dernière version logicielle, mais chez moi c'est toujours pareil sur un wemos D1 mini00:00:00.032 CFG: Chargé de la flash à F8, Compte 15
00:00:00.034 FRC: Some settings have been reset (5)
00:00:00.039 Projet tasmota Tasmota Version 9.3.1.2(tasmota)-2_7_4(2021-04-11T13:29:44)
00:00:00.507 WIF: Connexion à l'AP1 Sylvia&Seb Channel 1 BSSId xxxxxx en mode 11n comme tasmota_D84B6D-2925...
00:00:01.752 WIF: Connecté
00:00:02.004 HTP: Serveur web actif sur tasmota_D84B6D-2925 avec l'adresse IP 192.168.1.151
12:43:18.047 RSL: tele/tasmota_D84B6D/INFO1 = {"Info1":{"Module":"Generic","Version":"9.3.1.2(tasmota)","FallbackTopic":"cmnd/DVES_D84B6D_fb/","GroupTopic":"cmnd/tasmotas/"}}
12:43:18.048 RSL: tele/tasmota_D84B6D/INFO2 = {"Info2":{"WebServerMode":"Admin","Hostname":"tasmota_D84B6D-2925","IPAddress":"192.168.1.151"}}
12:43:18.051 RSL: tele/tasmota_D84B6D/INFO3 = {"Info3":{"RestartReason":{"Exception":3,"Reason":"Exception","EPC":["40259a0c","00000000","00000000"],"EXCVADDR":"402950d0","DEPC":"00000000","CallChain":["4021d35c","402323a7","40255070","4024dd42","401060f9","4000050c","40232918","402328f5","40252ade","40252ad4","4024de3d","4021dab4","401010c0","402363bb","4021dde0","40220efc","40218d55","402328e7","4023293c","40100a58","40250ea0","40101d05"]}}}
12:43:21.447 QPC: Reset
12:43:22.413 RSL: tele/tasmota_D84B6D/STATE = {"Time":"2021-04-11T12:43:22","Uptime":"0T00:00:09","UptimeSec":9,"Heap":25,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":0,"Wifi":{"AP":1,"SSId":"Sylvia&Seb","BSSId":"xxxxxxxx","Channel":1,"RSSI":64,"Signal":-68,"LinkCount":1,"Downtime":"0T00:00:03"}}Il me fait un reset du choix teleinfo sur la pin D7
-
@barbu-dor oui je pense que ca l'est automatiquement car c'est dans les settings globaux, mais faudra que je verifie qd même
yes j'ai vu ca maintenant j'active UFS par défaut aussi c'est top.
Oui pour la doc j'ai déjà fait 2/3 modifs, pour les vieux setoption mais aussi pour une carte ZigBee que j'ai ajouté dans la partie zigbee donc je devrais pouvoir m'en sortir
Pour la téléinfio oui le mieux est une page dédiée justement j'y pensais. Si tu peux "créer" cette page même vide (ou me dire comment faire) ca me permettrait de commencer à y mettre des choses.
-
@sebh oui tu as tjs le pb car en mode standard, c'est depuis que j'ai changé des choses pour afficher dans l'interface, j'ai du faire une boulette quelque part mais sans linky je ne peux pas débugguer cette partie.
Essaie de suppriler toute cette partie, c'est la dedans que j'ai fais des modifs
https://github.com/arendst/Tasmota/blob/development/tasmota/xnrg_15_teleinfo.ino#L873-L897Pour le reset en changement de pin rx comme l'a indiqué @Barbu-Dor c'est normal ca reset juste après pour recharger la nouvelle config serial. mais après le reset la config ne dois pas être perdue.
Tu peux aussi passer ta téléinfo en mode historique (ca fonctionnera pas nous sommes d'accord) mais ca ne devrait au moins pas planter.
-
@charles Page de doc créée
https://github.com/tasmota/docs/blob/development/docs/Teleinfo.mdPour la mise a jour, comme pour le code, soit tu fork, tu clones, tu PR
Ou alors directement en ligne dans GitHub (GitHUb fork et crée les branches et PR automatiquement)Attention MKDOCS demande une syntaxe de markdown un peu particulière et la preview de GitHub n'est pas forcément correcte.
Tagguer quand tu aurs fait la PR pour que je vérifie (j'ai les outils mkdocs pour vérifier)
La page est dans la branche développement car elle se rapporte a des modifications disponibles dans la branche développement de Tasmota. Donc elle n'est pas visible autrement que sur GitHb (la doc publiée est celle de la release).
Elle passera en master quand la 9.3 sortira (avant fin avril) -
@barbu-dor Oh nice, tu as même déjà documenté, merci à toi. Oui pour la doc je le fais les edit depuis github, c'est assez pratique. Mais j'ai aussi déjà payé le prix du preview correct mais une fois mergé ca ne l'était plus, donc je vais faire attention
Merci à toi en tout cas, je pense que j'aurais quelques questions aussi sur les triggers et berry un peu plus tard.
-
@barbu-dor Merci pour ton retour concernant les triggers sur les messages JSON.
Je précise mon problème.
Cela marche bien sur la version 9.3.1.1 que j'ai compilé.
Par contre sur la 9.3.1, de Nicolas Bernaerts, les triggers sur les messages JSON ne marchent pas.
Est-ce que cela pourrait venir de la forme des messages JSON qui ne sont pas formatés de la même façon que sur la version tasmota standard?19:49:06.821 MQT: tele/tasmota_DF20CB/SENSOR = {"Time":"2021-04-10T19:49:06","TIC":{"ADSC":"031776013513","VTIC":"02","DATE":"E210410194907","NGTF":"BASE","LTARF":"BASE","EAST":"027416815","EASF01":"015506752","EASF02":"009861893","EASF03":"000826037","EASF04":"000514699","EASF05":"000442412","EASF06":"000265022","EASF07":"000000000","EASF08":"000000000","EASF09":"000000000","EASF10":"000000000","EASD01":"009975618","EASD02":"008227431","EASD03":"002960408","EASD04":"006253358","IRMS1":"002","IRMS2":"002","IRMS3":"002","URMS1":"223","URMS2":"242","URMS3":"243","PREF":"12","PCOUP":"12","SINSTS":"01370","SINSTS1":"00462","SINSTS2":"00480","SINSTS3":"00428","SMAXSN":"06243","SMAXSN1":"03094","SMAXSN2": ...
La règle que j'utilise est
rule1 on URMS1 do var4 %value% endon
Je te remercie.
-
@vincent835
Par rapport au message SENSOR que tu postes il manque le niveauTIC
Donc le trigger estTIC#URMS1
et la règle correspondanterule1 on TIC#URMS1 do var4 %value%
Le message a t'il un format différent entre les 2 versions ?
-
@barbu-dor
Je viens d'essayer ta proposition de règle sans succés.
Voici le message JSON sur la version 9.3.1.119:53:50.015 MQT: tele/tasmota_DF20CB/RESULT = { "ADSC":"031776013513","VTIC":2,"NGTF":" BASE ","LTARF":" BASE ","EAST":27416857,"EASF01":15506794,"EASF02":9861893,"EASF03":826037,"EASF04":514699,"EASF05":442412,"EASF06":265022,"EASF07":0,"EASF08":0,"EASF09":0,"EASF10":0,"EASD01":9975618,"EASD02":8227473,"EASD03":2960408,"EASD04":6253358,"IRMS1":2,"IRMS2":2,"IRMS3":2,"URMS1":225,"URMS2":237,"URMS3":245,"PREF":12,"PCOUP":12,"SINSTS":1305,"SINSTS1":482,"SINSTS2":390,"SINSTS3":433,"SMAXSN":6243,"SMAXSN1":3094,"SMAXSN2":3214,"SMAXSN3":2158,"SMAXSN-1":5714,"SMAXSN1-1":3559,"SMAXSN2-1":1954,"SMAXSN3-1":2064,"CCASN":790,"CCASN-1":1550,"UMOY1":229,"UMOY2":240,"UMOY3":239,"STGE":"003A4001
-
@vincent835
SiMQT: tele/tasmota_DF20CB/SENSOR = {"Time":"2021-04-10T19:49:06","TIC":{"ADSC":"031776013513", ....
les champs sont sous l'object TIC alors =>
on TIC#URMS1 do ...
Si
tele/tasmota_DF20CB/RESULT = { "ADSC":"031776013513","VTIC":2,"NGTF":" BASE " ....
Les champs sont a la racinedu JSON alors =>
on URMS1 do ...
(ou bienon URMS1#data do ....
)
Je ne me rappelle jamais la règle exacte quand il faut ajouter#data
pour un champ à la racine. Je crois que c'est quand il est orphelin mais dans si le 1er ne marche pas essaye le 2ndSi ca ne marche pas il faudra que je remonte une manip de test
-
@barbu-dor
Lorsque les champs sont à la racine du JSON, il n'y a pas de problème:on URMS1 do...
marche même sans#data
.
C'est lorsque les champs sont sous un objet que je n'arrive pas à faire déclencher le trigger.
Même avec la formeon TIC#URMS1 do...
Si tu trouves une solution, je suis preneur.
Merci. -
@Seb-H as tu solutionné ton problème?
J'essaie d'investiguer sur les bugs du mode standard avant la prochaine release, et j'ai créé un outil pour enregistrer les trames (et donc pouvoir les rejouer pour les tests et corriger les bugs)
L'outil est ici https://github.com/hallard/tinfo_replay des informations de bases sont dispo dans le readme
Je suis donc preneur de tout enregistrement de trame en provenance du linky avec idéalement une sur un contrat base et l'autre un contrat heures creuses, ca m'aiderait vraiment a améliorer la fiabilité.
vous pouvez poster le fichier .txt directement sur un post de réponse ici (bouton upload file)
Surtout pas d'édition des fichiers dans un éditeur texte ça foutrait tout en l'air
Merci à tous
PS : il est aussi possible qu'en mode standard avec MQTT la trame soit trop longue ca fait beaucoup d'étiquettes et valeurs à mettre dans le payload, il faudrait peut être définir une liste des étiquettes à renvoyer pour limiter la taille du payload MQTT
ADSC J21976885617 I DATE E200811150447 ? NGTF BASE < LTARF BASE F EAST 002493204 ' EASF01 002493204 : EASF02 000000000 # EASF03 000000000 $ EASF04 000000000 % EASF05 000000000 & EASF06 000000000 ' EASF07 000000000 ( EASF08 000000000 ) EASF09 000000000 * EASF10 000000000 " EASD01 40 @ URMS2 240 A URMS3 238 I PREF 09 H PCOUP 09 " SINSTS 00897 ^ SINSTS1 00267 F SINSTS2 00591 G SINSTS3 00038 D SMAXSN E200811115306 03320 . SMAXSN1 E200811115306 03050 _ SMAXSN2 E200811131815 02350 % SMAXSN3 E200811095922 00130 ( SMAXSN-1 E200810192506 04240 T SMAXSN1-1 E200810192506 03970 N SMAXSN2-1 E200810103044 00340 8 SMAXSN3-1 E200810085137 00380 I CCASN E200811150000 00578 > CCASN-1 E200811143000 00558 \ UMOY1 E200811150000 239 UMOY2 E200811150000 240 $ UMOY3 E200811150000 238 , STGE 00 MSG1 PAS DE MESSAGE < PRM 19858176535209 F RELAIS 000 B NTARF 01 N NJOURF 00 & 1JOURF+100008001 NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE 9
-
@charles hello, effectivement, sur ma version j'ai été obligé d'augmenter la taille du buffer MQTT par défaut a 2200 octets du fait du nombre d'étiquettes. J'ai également limité la taille des données à 32 octets (pour éviter les NON UTILE à répétition). D'apres le standard, on peut avoir jusqu'a 74 donnees par message. Sur un compteur triphase en mode standard, j'ai eu jusqu'a 64 donnees.
-
Je suis donc preneur de tout enregistrement de trame en provenance du linky avec idéalement une sur un contrat base et l'autre un contrat heures creuses, ca m'aiderait vraiment a améliorer la fiabilité.
J'essayerai de faire un enregistrement ce soir.
J'ai un contrat base triphasé . -
@vincent835 Top ca le triphasé, merci
-
@charles Non, le problème est toujours d'actualité. Je crois que l'esp plante dès la sélection du 9600 baud. Comme fonctionne ton code de capture ?? Tu le charges dans l'ESP ??
De mon coté pour la capture, ca sera un contrat BASE en mode standard.
Je regarde pour la capture ce soir.