Tasmota
-
@barbu-dor
Voici les première lignes suivant l'activation Weblog 3 + restart (pas de trace de TIC !) c'est bien ce qui me tracasse ! Je soupçonne le truc trivial. Une activation non faite... je ne sais pas.
J'ai refais tt le process de compilation/setup et mis ça sur un nouveau Wemos.
Avec exactement le même résultat ! Tasmota / MQTT ok. Téléinfo KO.00:00:00.049 CFG: Chargé de la flash à FA, Compte 13 00:00:00.055 QPC: Count 1 00:00:00.056 CFG: CR 388/699, Busy 0 00:00:00.060 SRC: Restart 00:00:00.061 Projet tasmota Tasmota Version 9.3.1(tasmota)-2_7_4_9(2021-02-24T17:09:00) 00:00:00.215 WIF: Tentative de connexion... 00:00:00.551 WIF: Connexion à l'AP1 SteamPunk Channel 6 BSSId 60:35:C0:16:33:D6 en mode 11n comme wemos_teleinfo-2962... 00:00:01.754 WIF: Tentative de connexion... 00:00:02.752 WIF: Tentative de connexion... 00:00:03.754 WIF: Tentative de connexion... 00:00:04.758 WIF: Connecté 00:00:05.012 HTP: Serveur web actif sur wemos_teleinfo-2962 avec l'adresse IP 192.168.1.65 00:00:05.698 RTC: UTC 2021-02-24T18:32:22, DST 2021-03-28T02:00:00, STD 2021-10-31T03:00:00 19:32:23.051 MQT: Tentative de connexion... 19:32:24.029 MQT: Connecté 19:32:24.032 MQT: maison/tasmota/wemos_teleinfo/tele/LWT = Online (persistant) 19:32:24.035 MQT: maison/tasmota/wemos_teleinfo/cmnd/POWER = 19:32:24.036 MQT: S'abonner à maison/tasmota/wemos_teleinfo/cmnd/# 19:32:24.038 MQT: S'abonner à maison/tasmota/tasmotas/cmnd/# 19:32:24.040 MQT: S'abonner à cmnd/DVES_756B92_fb/# 19:32:24.043 MQT: maison/tasmota/wemos_teleinfo/tele/INFO1 = {"Module":"TeleInfo Pat","Version":"9.3.1(tasmota)","FallbackTopic":"cmnd/DVES_756B92_fb/","GroupTopic":"maison/tasmota/tasmotas/cmnd/"} 19:32:24.055 MQT: maison/tasmota/wemos_teleinfo/tele/INFO2 = {"WebServerMode":"Admin","Hostname":"wemos_teleinfo-2962","IPAddress":"192.168.1.65"} 19:32:24.067 MQT: maison/tasmota/wemos_teleinfo/tele/INFO3 = {"RestartReason":"Software/System restart"} 19:32:24.101 QPC: Reset 19:32:25.058 SRC: MQTT 19:32:25.060 CMD: Groupe 0, Index 1, Commande "STATUS", Donnée "None" 19:32:25.065 MQT: maison/tasmota/wemos_teleinfo/stat/STATUS = {"Status":{"Module":0,"DeviceName":"Tasmota","FriendlyName":["Tasmota"],"Topic":"wemos_teleinfo","ButtonTopic":"0","Power":0,"PowerOnState":3,"LedState":1,"LedMask":"FFFF","SaveData":1,"SaveState":1,"SwitchTopic":"0","SwitchMode":[0,0,0,0,0,0,0,0],"ButtonRetain":0,"SwitchRetain":0,"SensorRetain":0,"PowerRetain":0,"InfoRetain":0,"StateRetain":0}} 19:32:25.407 APP: Nombre de boot 6 19:32:26.401 CFG: Enregistré en flash à F9, Compte 14, Octets 4096 19:32:27.413 MQT: maison/tasmota/wemos_teleinfo/tele/STATE = {"Time":"2021-02-24T19:32:27","Uptime":"0T00:00:12","UptimeSec":12,"Heap":29,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Wifi":{"AP":1,"SSId":"SteamPunk","BSSId":"60:35:C0:16:33:D6","Channel":6,"RSSI":48,"Signal":-76,"LinkCount":1,"Downtime":"0T00:00:06"}} 19:32:34.520 HTP: Console 19:37:27.414 MQT: maison/tasmota/wemos_teleinfo/tele/STATE = {"Time":"2021-02-24T19:37:27","Uptime":"0T00:05:12","UptimeSec":312,"Heap":27,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Wifi":{"AP":1,"SSId":"SteamPunk","BSSId":"60:35:C0:16:33:D6","Channel":6,"RSSI":50,"Signal":-75,"LinkCount":1,"Downtime":"0T00:00:06"}} 19:40:37.255 HTP: Console
J'ai bien gardé le fichier user_config_override.h. Comment le partager ? Un copié collé serait un peu long (env 500 lignes). Je ne vois pas de PJ ?
A tt hazard, un lien direct vers le fichier sur mon site.
(J'ai mis t'extension en txt pour faciliter l'interprétation par le navigateur).A minima, j'y vois bien en fin de fichier :
#ifndef USE_TELEINFO #define USE_TELEINFO #endif
MERCI encore
-
@patrice-becquet Je pense qu'il y a un problème dans l'activation de "TInfo RX"
Voici les lignes importantes concernant Teleinfo dans le log de demarrage:00:00:00.062 TIC: RX on GPIO13, baudrate 1200 00:00:00.063 TIC: always enabled 00:00:00.077 SNS: Hardware Serial 00:00:00.077 TIC: using hardware serial 00:00:00.078 TIC: Ready
Confirmant l'init du module Teleinfo avec la GPION 13 en reception à 1200 baud et l'utulisation de l'UART hardware.
Dans "Configure" => "Configure autres" , est-ce que la case "activer" est bien cochée ?
Dans quel écran as tu configuré "TInfo RX" ?
Généralement quand j'utilise un mini-D1 ou un NoceMCU (par opposition à un équipement type Sonoff, interrupteur mural, etc), Dans "Configure Modèle" je suis sur "Generic 18" et toutes les broches sont sur "User" sauf les 2 broches 9 et 10 sur "None".
Ensuite c'est dans "Configure Module" que j'assigne mes broches <=> fonctionsDans Tasmota, un modèle (template) correspond à un modèle d'équipment de référence connu dont les pins et le comportement est en dur dans le code. Sur un Sonoff Dual, telle pin est le Relay1, telle autre le Relay2 etc....) et seules certaines pins sont accessibles à l'utilisateur (User). Seules les pins User peuvent ensuite est customisées dans "Configure Module".
Par exemple sur un Sonoff TH, la pin GPIO14 accessible a l'extérieur sur un jack. Quand tu choisit "Sonoff TH (4)", les pins correspondant au boutons, à la led et au relay sont automatiquement assignée. La pin GPIO14 est en User et les pins non accessibles, sont en None (GPIO1..4 sont accessibles mais en interne uniquement). Avec cela, tu obtiens le comportement standard d'un Sonoff TH.
Après tu peux décider ce que tu veux faire de la pin GPIO14 : mettre un capteur de temperature DS18B20, un Temp+Hum DHT22 ou un interrupteur extérieur et tu définis ton usage dans "Configure Module".Mais avec le nombre d'équipement supporté qui augmentait, ils ont introduit la notion de Template JSON que tu peux saisir dans "Configure autres". Dans ce cas, le template peut se référer à un des templates originaux pré-codé pour le comportement mais avec des pins associées différentes...
Je comprend que cela soit bizarre mais Tasmota a un lourd historique et des fois certains concepts sont compliqués du fait de l'évolution dans le temps avec de plus en plus d'équipements supportés.
Généralement je n'ai pas de soucis si la cache "Activate" est cochée. Si ce n'est pas le cas, certaines config ne sont pas prises en compte.
-
Un truc pour vérifier quelles pins sont effectivement prise en compte : la commande
gpio
te retourne un JSON avec les pins :23:09:38.248 CMD: gpio 23:09:38.261 MQT: stat/nodemcu/GPIO = {"GPIO0":{"608":"I2C SCL"},"GPIO1":{"0":"None"},"GPIO2":{"640":"I2C SDA"},"GPIO3":{"0":"None"},"GPIO4":{"0":"None"},"GPIO5":{"0":"None"},"GPIO12":{"0":"None"},"GPIO13":{"5152":"TInfo Rx"},"GPIO14":{"0":"None"},"GPIO15":{"0":"None"},"GPIO16":{"0":"None"},"GPIO17":{"0":"None"}}
Ou l'on voit bien le "TInfoRX" sur la GPIO13
-
@barbu-dor à raison, si t'as pas de TIC dans les log c'est curieux surtout que t'as bien compilé avec l'OPTION téléinfo sinon la pin
TInfo rx
n'apparaitrait pas. C'est l'indicateur ultime.J'arrive pas à comprendre pourquoi t'as aucun log concernant la téléinfo (les fameux
TIC
)Tu peux mettre ce template ci (basic) avec Téléinfo sur GPIO13
{"NAME":"TIinfo_IO13","GPIO":[1,1,1,1,640,608,1,1,1,5152,1,1,1,1],"FLAG":0,"BASE":18}
Et surtout n'oublies pas de cocher
activate
cette case à la con m'a value de nombreuses prise de têtes -
@barbu-dor
VICTOIRE !!!La case activée était bien là. Mais en reprenant les vérifications, et grace a tes explication et un éclair de lucidité (en fin de journée après avoir tourné en rond, on est plus bon a grand chose !). J'ai noté que j'avais bien affecté la pin Rx a GPIO13. Oui, mais la pin "Série RX", au lieu de TéléInfoRX ! (Sur la précédente capture d'écran de l'autre Wemos, on constate que c'était OK à ce niveau). Je subodorais un détail trivial, mais radical dans le genre.
Mais bon, le dernier problème était là. J'ai bien la Télé Info sur la page d'accueil de Tasmota, dans les messages MQTT, jusqu'au Broker. Nickel.
Un énorme merci pour ton aide. Je te dois une bière comme on dit dans le milieu ! Si tu passe en Essonne, quand les bars seront ouverts !!!...
-
Ca y ai , après de nombreux essais , j'ai basculé mes 3 compteurs existants de wifinfo sur tasmota.
La première problématique est que visiblement tasmota n'arrive pas à gérer 2 compteurs HP/HC indépendamment et de ce fait renvoit uniquement un seul compteur sur Domoticz.
Mais de mon coté je suis passé récement en tarification de BASE unique, donc je ne suis plus concerné par ce soucis. Néanmoins, la solution proposé est de récupérer les trames MQTT via NODE RED, de récupérer l'état des 2 compteur et de le renvoyer à domoticz via JSON, mais faut il encore connaitre un minimum NODE RED.
Ayant maintenant 3 compteurs (dont 2 en 1200 baud et 1 en 9600 baud), j'ai donc exploité tasmota pour essayer de se rapprocher au même fonctionnement de Winfo, mais je tombe sur des bugs.
La 1ère des chose est de caler le compteur total de tasmota sur l'index du compteur réel , suivant l’exemple ci dessous par la commande EnergyReset3 4014698
Le soucis principal dans ce cas, c'est qu'à la moindre perte secteur, on va désynchroniser les deux compteurs...
En fouillant dans la doc des commandes tasmota, j'ai trouvé la Setoption72 qui permettrait pour certain compteur (comme le DDS238) de copier l'état du compteur hardware dans le compteur total de tasmota. J'ai tester avec notre module téléinfo, et ça ne fonctionne pas. Ca serait possible de l'inclure, vous en pensez quoi ?? Du coup, le compteur total de tasmota = index du compteur téléinfo, avec ou sans coupure secteur !
Autre chose, que je constate en utilisant l’envoi de données sur domoticz géré par tasmota. Tasmota envoi dans une trame jusqu’à 4 index de compteurs, mais avec la particularité d'utiliser un chiffre derrière la virgule, par exemple dans le cas ci dessous, il envoit à domoticz 2069838.1 alors que le compteur total est a 2069.838 Kwh. Cette gestion de virgule dans le temps vient rendre incohérent l'état de l'index et le compteur total car un décalage se fait au fur et à mesure. Maintenant, si on arrive en activant l'option 72 , à dire compteur hardware = compteur total cela corrigerait certainement aussi ce problème?
-
@sebh
Voici une capture au bout de 2 jours après avoir calé le compteur total sur le compteur teleinfo BASE. Je confirme bien un décalage entre les 2 compteurs... Naturellement on parle pas de Kwh, on parle de quelques Wh entre 2 jours. C'est normal docteur ?? -
@sebh je ne suis pas surpris que tu trouves un décalage, en fait le module Energy de tasmota calcul tout seul ta consommation (avec la puissance, et tout ce qu'il peut mesurer) or effectivement ça peut shifter en fonction des échantillonnages et reception des valeurs.
Je maitrise pas les entrailles de tasmota mais ca mériterait une petite investigation. Clairement la synchro sur le compteur réel est la solution sauf que pour ça je pense que la téléinfo doit être de type module "smart meter" comme les autres (SDM, PZEM, ..) or la teleinfo est tellement spécifique (et encore plus avec le linky) que ca deviendrait ingérable de les intégrer (j'avais commencer à regarder à l'époque)
Tu as 2 solutions:- soit via un node red script ou autre tu récupères les données via MQTT et tu les renvois au bon format dans domoticz
- normalement dans la trame de télémétrie ENERGY envoyée par tasmota tu as les etiquettes des compteurs, et c'est celles-ci que domoticz doit prendre (mais ça nécessite un ajustement dans domoticz)
La encore je n'utilise pas domoticz donc je ne te serais pas d'une grande aide sur le sujet mais ça de devrait pas être trop compliqué.
-
@charles Merci pour ton retour.
Clairement, je pense couper l'emission de la trame domoticz/in de tasmota , et je pense que NodeRed est la solution mais les script JS je ne connais pas du tout. J'ai fait un peu de VB dans le temps avec des fonctions de recherche de chaine de caractère mais c'est vieux LOL !
Je viens de publier sur le forum domoticz en espérant que quelqu'un puisse me conseiller afin de pouvoir écrire un script JS . Je suis sur le coup, mais si jamais quelqu'un veut me filer un coup de patte , voici le lien de mon post https://www.easydomoticz.com/forum/viewtopic.php?f=10&t=11224
Sinon, je viens de voir ça à l'instant sur le tasmota qui tourne sur mon linky en mode standard.
Par moment j'ai une erreur checkline err checksum 0x51 != 0x43
En fait, je m'aperçoit qu'il me fait un paquet d'erreur en fait (j'avais pas fait attention)
C'est quoi le soucis avec cette erreur ??
-
@sebh bonsoir, aucun problème pour intégrer cette version dans la branche officielle tasmota. Mais j'avoue ne pas savoir quelle démarche suivre.
-
@nicolas-bernaerts Bonjour Nicolas, je viens de vous mettre un mail car on a déjà échangé il y a quelques temps...
Alors pour l'intégration officielle , je ne sais pas comment s'y prendre, c'est plutôt @Charles Charles qui pourra répondre
Sinon j'ai demandé de l'aide pour essayer d'écrire un script sous Nodered mais pas eu un seul coup de main... -
ci joint une petite copie écran d'un de mes tasmota, après une semaine en fonctionnement
Donc actuellement on transmet à Domoticz 2097547.8 Wh , alors que le compteur total de tasmota est a 2097548 Wh et que l'index transmis par le linky est a 2097569 Wh . On a pratiquement un décalage de 20 Wh en une semaine ... -
@sebh je suis en train de regarder comment fonctionne tasmota avec domoticz
Le truc c'est qu'il y a une tonne de contrats différents avec la téléinfo et domoticz gère 2 tarifs, je vais essayer d'implémenter ca pour heures creuse heures pleines du mode historique (car j'ai pas de linky)
-
@sebh j'ai trouvé 2/3 trucs dans le code que je vais fixer, peux tu me confirmer ton mode fonctionnement STP
- mode historique ou std ?
- rawdata ou pas (setOption108) ?
le mieux peux tu me coller une trame de ton compteur ?
Pour les erreur de checksum peut être la série peine un peu t'es en ESP32 ou 8266, soft ou hard serial ?
-
@charles J'ai plusieurs compteurs.
- J'ai un linky en mode standard , avec maintenant une tarification de BASE (donc je pourrais plus tester la tarification HP/HC en mode standard).
- J'ai un autre compteur ancienne génération en mode historique et tarification BASE.
- Non je n'utilise pas le mode rawdata actuellement
Quand tu dis que tu veux une trame du compteur, tu parles des trames qui passe dans la console tasmota, ou bien tu parles d'une capture du port série en sortie de téléinfo ??
Concernant le hard, je suis en esp8266 sur le port D7 (c'était le hard que j'utilisais déjà pour wifinfo)
Je crois que je l'ai déjà posté mais voici la trame qui part de tasmota pour domoticz. J'ai notifier dans la trame la position de chaque index. En sachant qu'actuellement en tarif BASE, la position relevé est bien la bonne , en HP/HC je crois que la position indiqué actuellement est HP (donc il restera juste a renseigné HC)
Tu penses pouvoir inclure ma demande initiale en remontant a tasmota un copier/coller de l'index du compteur ENEDIS sur le compteur total de tasmota ??
-
@sebh j'ai bien recu ton mail.
J'ai la forte impression que les erreurs de checksum apparaissent plus souvent en mode standard du fait de la vitesse de 9600 bauds et du buffer série des Esp. J'ai modifié la boucle de réception à 100ms avec un buffer de 256 octets et les erreurs apparaissent beaucoup moins.
Pour ce qui est des divergences de totaux entre tasmota et la teleinfo, j'ai modifié ma version teleinfo pour forcer la mise a jour de tasmota sur la référence teleinfo toutes les heures. Les deux sont donc totalement synchro régulièrement.
https://github.com/NicolasBernaerts/tasmota/tree/master/teleinfo -
@nicolas-bernaerts outch j'ai dejà fait un PR pour ça qui a été intégré dans la branche developpement de tasmota.
Tu pourrais indiquer tes modifs que je regarde si j'ai fait correctement?
Idéalement faut faire des pull request pour les améliorations, ca permet à tout le monde d'en profiter et de pas bosser à plusieurs sur les mêmes problématiques
-
@charles Le probleme est que j'avais fait une version totalement differente de la tienne sous tasmota avant que la tienne ne soit officiellement portée. Du coup, il y a trop de divergences car presque tout est différent... Un PR me semble donc très difficile. La version dont je parle est publiée sur le lien github de ma réponse prédente.
-
@nicolas-bernaerts oui c'est ce que je viens de voir c'est top ta version
avant je faisais ca aussi mais j'ai arrêté car dès que tu veux maintenir les fork en synchro avec les master c'est compliqué (surtout qd t'as 15 forks différents à gérer)normalement @Barbu-Dor a fixé le pb du mode standard 9600 donc ce qui m'intéresse c'est ce point la
forcer la mise a jour de tasmota sur la référence teleinfo
tu as fais comment ?
-
@charles Merci
La synchro est faite ligne 955 de xnrg_15_teleinfo.ino
Je récupère les différents compteurs utilisés suivant le contrat dans la boucle 100ms et je les additionne à chaque message complet. Je synchronise ensuite toutes les heures pour éviter une écriture en ram statique trop souvent.