Tasmota
-
@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 -
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: ReadyPourtant le module Teleinfo (TIC) est bien démarré et sur la GPIO13 (D7)
Donc a ce moment là il devrait être en mesure de recevoir
Par contre le dernier redémarrage est quand même du à un crashIl faudra que j'essaye ce soir
-
@barbu-dor J’Ai fait des modifs pour afficher plus de chose en mode standard je dois avoir un bug dans un des sends pour afficher ou envoyer des donnés mais sans linky chaud à trouver
-
@barbu-dor yes j’y suis.
Oui j’ai vu que ça dépendait du module energy après coup depuis le début je le dit que c’était pas forcément la meilleure des idées de pas passer par un driver standard
-
@charles Theo vient de merger ma PR
Il y a maintenant une commande EnergyConfig qui est poussée jusqu'au driver energie actif
A partir de là tu peux traite la commande comme tu veux (la chaine est dans XDrvMailbox.data)
Regarde le petit exemple ajouté dans xnrg_20_dummy