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
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
-
@charles pas de soucis je te fais ça ce soir.
Sinon avec la version de hier, j'ai eu ces erreurs ce matin. -
@sebh Ca veut dire que de temps en temps, Tasmota loupe des caractères.
Si ca n'arrive que de temps en temps ce n'est pas très grave puisque - sauf erreur de ma part - les données sont répétées et auto-incrémentées.
(c'est a dire que si tu perds une trame, tu perds un peu de temps réel mais tu retrouves tes données correctes le coup d'après).Le buffer en mode 9600 est de 512 octets et on vient le lire toutes les 250 ms
Je n'ai pas voulu changer cela mais on peut éventuellement accelerer la cadence en changeant dans le code pour venir traiter toutes les 50ms. -
@barbu-dor ouais carrément on peut essayer en passant à 100ms mais comme tu l'indiques, rater qq caractères c'est pas très grave, c'est repris la trame d'après.
-
@charles Ok c'est noté pour les erreurs. Oui effectivement il n'y a pas vraiment de soucis. Quand j'ai vu des erreurs checksum je pensais qu'il y avait un autre problème qui pouvait être problématique, donc je voulais juste vous le remonter.
Sinon je viens de flasher la dernière version et là, gros plantage.
Serveur web actif sur tasmota_D84B6D-2925 avec l'adresse IP 192.168.1.151
17:13:47.294 RSL: tele/tasmota_D84B6D/INFO1 = {"Module":"Generic","Version":"9.3.1.2(tasmota)","FallbackTopic":"cmnd/DVES_D84B6D_fb/","GroupTopic":"cmnd/tasmotas/"}
17:13:47.295 RSL: tele/tasmota_D84B6D/INFO2 = {"WebServerMode":"Admin","Hostname":"tasmota_D84B6D-2925","IPAddress":"192.168.1.151"}
17:13:47.298 RSL: tele/tasmota_D84B6D/INFO3 = {"RestartReason":{"Exception":3,"Reason":"Exception","EPC":["4025983c","00000000","00000000"],"EXCVADDR":"40294cfc","DEPC":"00000000","CallChain":["4021d2d8","402321cb","40254ea0","4024db72","402527f9","4025290e","40252904","4024dc6d","4021d71f","401010c0","402361cb","4021da1c","40220b0c","40218cf5","4023270b","40232760","40100a58","40250cd0","40101d05"]}}Dès que je bascule en 9600 baud, il me reset la config sur la pin d7... J'arrive plus rien à voir et à lire
-
@sebh arff voilà ce qui se passe quand on a rien pour valider/tester son code mais je crois que j'ai trouvé le bug, tu peux essayer la dernière version tasmota, Theo vient de merger ma PR
-
@Barbu-Dor j'ai changé pas mal de choses dans le soft notamment le fait de pouvoir configurer tout un tas de choses avec des nouvelles commandes en mode console.
Sauf que j'aurai besoin de ton expertise, j'ai bien créé tout ce qu'il faut, ca compile ça tourne j'appelle bien ma fonction de gestion des commandes lorsque je reçois
FUNC_COMMAND
dans le driver teleinfo, sauf que je ne reçois jamais ca, même qd je tape une commande dans la console, j'ai surement oublié un truc genre register ma callback pour les commandes, mais je ne trouves pas, tu sais ou on fait ça ?bool Xnrg15(uint8_t function) { bool result = false; switch (function) { case FUNC_EVERY_250_MSECOND: TInfoProcess(); break; case FUNC_COMMAND: AddLog(LOG_LEVEL_INFO, PSTR("TIC: FUNC_COMMAND")); result = TInfoCmd(); break; case FUNC_JSON_APPEND: TInfoShow(1); break; #ifdef USE_WEBSERVER case FUNC_WEB_SENSOR: TInfoShow(0); break; #endif // USE_WEBSERVER case FUNC_INIT: TInfoInit(); break; case FUNC_PRE_INIT: TInfoDrvInit(); break; } return result; }
Le code source si tu veux jeter un oeil sur la branche
teleinfo
https://github.com/hallard/Tasmota/blob/teleinfo/tasmota/xnrg_15_teleinfo.ino
-
@charles En effet ta gestion de commande est légèrement erronée
Ce qui te manque surtout pour que ton driver soit enregistré c'est de définir#define XDRV_15 15
au debut de ton code
A partir de là tu devrais voir arriver les FUNC_COMMANDEnsuite normalement les commandes sont faite d'un prefixe et d'une partie variable.
Par exemple pour le driver display les commandes sont : DisplayModel, DisplayType, DisplayWidth etc....
La chaine kDisplayCommands vaut (une fois remplacé les macros) "Display|Model|Type|Width..."
Et Tasmota te fourni une fonction de décodage que tu peux appeller dans FUNC_COMMAND:case FUNC_COMMAND: result = DecodeCommand(kTinfoCommands, TinfoCommand); break;
où TinfoCommand[] est un tableau de pointeurs vers les fonctions de chacune de test commandes.
Après, il est vrai que pas tous les drivers utilisent
DecodeCommand()
, certains font comme toi et decrypte la commande "à la main"
L'avantage d'utiliserDecodeCommand()
c'est d'éviter de recréer un code identique dans tous les drivers et donc d'optimiser l'occupation en flash. -
@barbu-dor My bad, tu as deja XNRG_15 15 au debut (tu es un driver NRG, pas un driver générique)
Et les drivers energy ne peuvent pas recevoir de commandes individuelles mais uniquement les commandes standards energy
Donc c'est pour cela que tu ne reçoit pas les commandes
-
@charles Je pensais tester ce soir. C'est bon je peux récupérer les sources sur le github ??
-
@Charles Tu es sur Discord ? Ca serait plus simple d'en chatter en live
Mais les driver xnrg_xx sont des ous drivers de xdrv_03_energy
xdrv_03_energy decode les commandes liées à l'energie (voir au debut du module) et passe au sous driver uniquement ces commandes làJe suis en train de discuter sur le discord de l'equipe pour voir les options possibles
-
@charles
Je viens de tester ce soir, et exactement même symptôme que la dernière fois.
Tu choisis la pin D7, il reboote, tu rentres dans la console pour passer en 9600 baud, il ne décode rien, et si tu rentres dans la config la pin D7 sélectionné a disparu..21:08:09.037 MQT: tele/tasmota_D84B6D/LWT = Online (persistant)
21:08:09.038 MQT: cmnd/tasmota_D84B6D/POWER =
21:08:09.042 MQT: tele/tasmota_D84B6D/INFO1 = {"Info1":{"Module":"Generic","Version":"9.3.1.2(tasmota)","FallbackTopic":"cmnd/DVES_D84B6D_fb/","GroupTopic":"cmnd/tasmotas/"}}
21:08:09.044 MQT: tele/tasmota_D84B6D/INFO2 = {"Info2":{"WebServerMode":"Admin","Hostname":"tasmota_D84B6D-2925","IPAddress":"192.168.1.151"}}
21:08:09.047 MQT: tele/tasmota_D84B6D/INFO3 = {"Info3":{"RestartReason":{"Exception":3,"Reason":"Exception","EPC":["402596f4","00000000","00000000"],"EXCVADDR":"40294bbc","DEPC":"00000000","CallChain":["4021d33c","40231b38","4024da2e","40218d4d","402527ca","402527c0","401010c0","4024db29","4021d77f","401010c0","402360ab","4021da7c","40220b7c","40218d4d","402325f3","40232648","40100a58","40250b8c","40101d05"]}}}
21:08:12.401 QPC: Reset -
Tu choisis la pin D7, il reboote,
Ca c'est normal. Quand tu appliques une config de GPIO et que tu cliques "SAVE", Tasmota reboote
Si tu vas vérifier la config juste après le reboot, est que D7 est toujours configurée en Teleinfo ?
Peux tu te mettre en WebLog 3 avant d'appliquer la config sur D7, puis après le reboot copier ici les premières lignes du log, jusqu'à la connexion WIFI, cela suffira
Quoi que là, ton log semble vouloir dire qu'il y a eu un crash
J'essayerais demain soir. Pour l'instant game-over
Bonne nuit -
@barbu-dor
Weblog 3 avant de sélectionner la pin d7
00:00:00.029 CFG: Chargé de la flash à F8, Compte 7
00:00:00.032 QPC: Count 1
00:00:00.033 CFG: CR 353/699, Busy 0
00:00:00.036 SRC: Restart
00:00:00.037 Projet tasmota Tasmota Version 9.3.1.2(tasmota)-2_7_4(2021-04-08T22:00:10)
00:00:00.189 WIF: Tentative de connexion...
00:00:00.524 WIF: Connexion à l'AP1 Sylvia&Seb Channel 1 BSSId xx:xx:xx:xx:xx:xx en mode 11n comme tasmota_D84B6D-2925...
00:00:01.754 WIF: ConnectéPuis une fois la pin d7 sélectionné, j'ai un message étranges NRG: Energy reset by invalid data
22:54:41.412 APP: Nombre de boot 3
22:54:41.434 HTP: Configuration
22:54:42.302 CFG: Enregistré en flash à FC, Compte 11, Octets 4096
22:54:42.933 HTP: Configuration du Module
22:54:47.380 HTP: Configuration
22:54:49.106 HTP: Menu principal
22:54:52.706 HTP: Console
22:54:53.413 NRG: Energy reset by invalid dataPuis une fois le setoption102 1 validé, voici le résultat
00:00:00.031 CFG: Chargé de la flash à FA, Compte 13
00:00:00.034 FRC: Some settings have been reset (2)
00:00:00.035 CFG: CR 353/699, Busy 0
00:00:00.037 SRC: Restart
00:00:00.038 Projet tasmota Tasmota Version 9.3.1.2(tasmota)-2_7_4(2021-04-08T22:00:10)
00:00:00.039 TIC: RX on GPIO13, baudrate 9600
00:00:00.039 TIC: always enabled
00:00:00.090 SNS: Hardware Serial
00:00:00.090 TIC: using hardware serial
00:00:00.090 TIC: Ready
00:00:00.169 WIF: Tentative de connexion...
00:00:00.504 WIF: Connexion à l'AP1 Sylvia&Seb Channel 1 BSSId xx:xx:xx:xx:xx:xx en mode 11n comme tasmota_D84B6D-2925...
00:00:01.500 WIF: Connecté
00:00:01.751 HTP: Serveur web actif sur tasmota_D84B6D-2925 avec l'adresse IP 192.168.1.151
00:00:02.459 RTC: UTC 2021-04-08T21:56:45, DST 2021-03-28T02:00:00, STD 2021-10-31T03:00:00
22:57:08.015 RSL: tele/tasmota_D84B6D/INFO1 = {"Info1":{"Module":"Generic","Version":"9.3.1.2(tasmota)","FallbackTopic":"cmnd/DVES_D84B6D_fb/","GroupTopic":"cmnd/tasmotas/"}}
22:57:08.016 RSL: tele/tasmota_D84B6D/INFO2 = {"Info2":{"WebServerMode":"Admin","Hostname":"tasmota_D84B6D-2925","IPAddress":"192.168.1.151"}}
22:57:08.019 RSL: tele/tasmota_D84B6D/INFO3 = {"Info3":{"RestartReason":{"Exception":3,"Reason":"Exception","EPC":["402596f4","00000000","00000000"],"EXCVADDR":"40294bbc","DEPC":"00000000","CallChain":["4021d33c","402360ab","40236070","4024da2e","4024e157","4024e157","402527ca","402527c0","4024db29","4021d77f","401010c0","402360ab","4021da7c","40220b7c","40218d4d","402325f3","40232648","40100a58","40250b8c","40101d05"]}}}
22:57:11.471 QPC: Reset
22:57:12.438 RSL: tele/tasmota_D84B6D/STATE = {"Time":"2021-04-08T22:57:12","Uptime":"0T00:00:09","UptimeSec":9,"Heap":25,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":0,"Wifi":{"AP":1,"SSId":"Sylvia&Seb","BSSId":"14:91:82:FC:0E:ED","Channel":1,"RSSI":66,"Signal":-67,"LinkCount":1,"Downtime":"0T00:00:03"}}
22:57:13.413 APP: Nombre de boot 4
22:57:13.564 CFG: Enregistré en flash à F8, Compte 15, Octets 4096