Tasmota
-
@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. -
@nicolas-bernaerts ok merci c'est exactement ce qui est fait dans le fix de ma PR d'hier
https://github.com/arendst/Tasmota/pull/11563
D'ailleurs je viens de voir que l'option 72 doit être activée pour que ca fonctionne. ça sauvegarde seulement si il y a une difference de 0.01 (kWh j'espère) donc je ne sais pas si nécessaire de temporiser en amont l'écriture. A suivre
void EnergyUpdateTotal(float value, bool kwh) { // AddLog(LOG_LEVEL_DEBUG, PSTR("NRG: Energy Total %4_f %sWh"), &value, (kwh) ? "k" : ""); uint32_t multiplier = (kwh) ? 100000 : 100; // kWh or Wh to deca milli Wh if (0 == Energy.start_energy || (value < Energy.start_energy)) { Energy.start_energy = value; // Init after restart and handle roll-over if any } else if (value != Energy.start_energy) { Energy.kWhtoday = (unsigned long)((value - Energy.start_energy) * multiplier); } if ((Energy.total < (value - 0.01)) && // We subtract a little offset to avoid continuous updates Settings.flag3.hardware_energy_total) { // SetOption72 - Enable hardware energy total counter as reference (#6561) RtcSettings.energy_kWhtotal = (unsigned long)((value * multiplier) - Energy.kWhtoday_offset - Energy.kWhtoday); Settings.energy_kWhtotal = RtcSettings.energy_kWhtotal; Energy.total = (float)(RtcSettings.energy_kWhtotal + Energy.kWhtoday_offset + Energy.kWhtoday) / 100000; Settings.energy_kWhtotal_time = (!Energy.kWhtoday_offset) ? LocalTime() : Midnight(); // AddLog(LOG_LEVEL_DEBUG, PSTR("NRG: Energy Total updated with hardware value")); } EnergyUpdateToday(); }
-
Bonjour
Je n'avais pas vu que le fil s'était reveillé, je n'ai pas reçu de mail...Normalement dans mes patchs tasmota, j'ai fait des modifications sur la taille du buffer série.
Est-ce que les erreurs reportées ci dessus par @SebH sont sur la release officielle ?@Charles si tu as besoin d'un coup de main n'hésite pas
-
@barbu-dor yes, merci de ta confirmation
Ouais suite à l'incendie d'OVH j'ai eu quelques effets de bord, en plus pour ces PB de mail j'ai du changé le network mode du container nodebb pour plus être emmerdé, normalement tout est bon et remarche. -
@barbu-dor La version que j'ai testé est du 23/03/21 v9.3.1 Je vais récupérer la dernière version pour tester. Je vous tiens informé et encore merci
-
@charles
Ok je viens de tester et je trouve la même anomalie chez nicolas.
Voilà le soucis.
Il y a 6 mois j'étais en tarification HP/HC en mode standard et je viens de basculer en tarification unique.Voilà l'état de mon compteur actuel
Actuellement, vous prenez l'index EAST comme étant le compteur total de tasmota, alors qu'en fait, c'est l'EASF01 qu'il faudrait prendre en référence.
En HP/HC, EASF02=Index HP EASF01=Index HC, sauf que moi j'ai demandé un passage récement en tarif unique, du coup EASF02 reste dans l'état ou il était au basculement....Sinon effectivement dès que tu actives l'option 72, on écrit bien l'EASF dans le compteur total de tasmota.
-
@sebh oui EAST est le compteur d'énergie totale du compteur physique (quels que soient les anciennes manip et tarifications du compteur) Pour moi en changement de contrat EdF aurait du faire un reset des compteurs ce qui semblerait plus logique
En mode historique on n'a pas cet index et il est calculé en ajoutant les HC et les HP.
Donc en toute logique EAST est correct (au vu du compteur) et dans ton cas tu ne dois prendre en compte que EAST01 maintenant et tu peux faire un EnergyReset dans la console pour remettre les compteurs tasmota en ordre.
Il me parait délicat d'avoir des compteurs dans Tasmota qui ont une méthode de calcul et d'affichage différente de ce qui est relevé par la téléinfo, c'est un coup a s'y perdre.
tu peux montrer une capture d'écran de ton tasmota avec les valeurs ? peut être ajouter les valeurs EAST01 / EAST02 comme c'est le cas en mode historique avec HC/HP aiderait à la lecture.
Dans tous les cas, toutes les valeurs sont remontées, donc tu peux choisir uniquement celles qui sont pertinentes pour toi non ?
-
@sebh oui EAST est le compteur d'énergie totale du compteur physique (quels que soient les anciennes manip et tarifications du compteur) Pour moi en changement de contrat EdF aurait du faire un reset des compteurs ce qui semblerait plus logique
Il me semble que tout les compteurs que j'ai vu à ce jour, la remise à zéro est faite que lorsque celui a fait le tour de tout les incréments (remise à zéro hard , même principe sur les voitures on ne doit pas pouvoir faire de reset soft du compteur en temps normal). De plus, le jour du changement de contrat , cela s'est passé un matin à 10h ( a 9h55 c'est le compteur Heure Pleine (donc EASF02) qui s'incrémentait, puis a 10h, j'ai basculer en mode BASE et c'est l'EASF01 qui s'incrémentait ... De plus, si tu remets à zéro, il n'y a plus aucune trace de ton ancien incrément..
Donc EAST est un genre de checksum de tout les compteurs EASF0x
Ci dessous une capture de mon tasmota actuel,
Mon soucis, est toujours le même , le message de tasmota vers domoticz renvoit le compteur total. J'ai du justement désactiver l'option72 car c'est EAST qu'on envoyai ( 2111,196 Kwh) alors qu'en fait mon domoticz attend actuellement une suite a l'EASF01 (998.461 Kwh), sinon je prend 1000 Kwh dans la figure, lol...
Sinon depuis la bascule en tarification unique, EASF02 est figé à cet incrément de (1112,735 Kwh)12:15:05.811 MQT: domoticz/in ="idx":26,"nvalue":0,"svalue":"0.0;998461.1;0.0;0.0;164;0","Battery":100,"RSSI":4}
12:15:05.814 MQT: tele/tasmota_D84B6D/SENSOR = {"Time":"2021-04-05T12:15:05","ENERGY":{"TotalStartTime":"2021-04-05T09:20:45","Total":998.461,"Yesterday":0.000,"Today":0.613,"Period":0,"Power":464,"ApparentPower":464,"ReactivePower":0,"Factor":1.00,"Voltage":232,"Current":2.000,"Load":33,"ADSC":"061961361253","VTIC":2,"NGTF":" BASE ","LTARF":" BASE ","EAST":2111196,"EASF01":998461,"EASF02":1112735,"EASF03":0,"EASF04":0,"EASF05":0,"EASF06":0,"EASF07":0,"EASF08":0,"EASF09":0,"EASF10":0,"EASD01":998461,"EASD02":1112735,"Donc voila ce que je propose, avec l'option 72 active, dans le cas d'une tarification en linky en mode standard:
- tarif unique de BASE on remonte EASF01 dans le compteur total de tasmota
- tarif HP/HC , EASF01 dans le compteur HC de tasmota, EASF02 dans le compteur HP de tasmota.
En espérant que ce soit un standard de programmation de chez ENEDIS et qu'il ne font pas ce qu'ils ont envie et décider demain d'affecter EASF08 pour une tarification de base.
Sinon comme je l'expliquais, je ne pourrais plus tester ce qui se passe avec tasmota en tarification HP/HC que ce soit en standard ou historique..
-
@sebh il faut que je regarde ça plus en détail, car en plus tasmota est capable de gérer les index double tarif (il me semble) donc tant qu'a faire une modif pour tasmota peut être renvoyer tous les compteurs serait top (y compris heures creuse et pleines du mode historique)
les EASFxx sont au bon vouloir des différents fournisseurs d'énergie. Engie utilise 01/02 mais rien n'empêche un autre d'utiliser 04/05
-
@sebh c'est super tordu en mode standard pour connaitre le tarif du contrat en cours, sais tu quelles valeurs tu avais avant pour
NGTF
etLTARF
? -
@sebh J'ai publié une nouvelle version ce soir qui prend en compte le nombre d'index à utiliser en fonction des périodes du contrat en cours. Si la période de contrat est d'un type inconnu, les 10 périodes possibles sont additionnées. Cela devrait régler ton problème de passage en BASE après du HPHC. Tiens moi au courant.
-
@charles cela devait etre HEURES PLEINES et HEURES CREUSES sur LTARF
-
@charles J'ai repris un post un peu plus haut ou j'avais fait une capture à ce temps là.
20:42:30.850 MQT: tele/tasmota_DB567A/SENSOR = {"Time":"2021-02-17T20:42:30","ENERGY":{"TotalStartTime":"2021-02-11T18:24:47","Total":0.720,"Yesterday":0.000,"Today":0.720,"Period":1,"Power":366,"ApparentPower":452,"ReactivePower":265,"Factor":0.81,"Voltage":226,"Current":2.000,"Load":22,"ADSC":"061961361253","VTIC":2,"NGTF":"H PLEINE/CREUSE ","LTARF":" HEURE PLEINE ","EAST":1893378,"EASF01":876569,"EASF02":1016809,
-
@sebh peux tu essayer la denière version de la branche
developement
ma modif a été mergée cette nuithttps://github.com/arendst/Tasmota/
Et me poster une copie d'écran de Tasmota une fois en route stp