Ré-écriture de Wifinfo pour traiter le mode standard du Linky
-
@Seb-H tasmota peut te renvoyer sur MQTT chaque trame reçue en mode raw (soit environ toutes les secondes) avec toutes les étiquettes Après tu peux traiter comme tu veux, je ne sais pas quel format domoticz attends, mais il doit aussi renvoyer le bon format domoticz en télémetrie classique.
-
Effectivement un coup de reset et c'est reparti.
Chapeau bas messieurs !
Ca fait plusieurs mois que ça fonctionnait sans aucun problème, je n'ai pas pensé une seconde à faire un reset.
J'ai bien essayé avec tasmota et c'est vrai que ça fonctionne pas mal mais je suis passé en HP/HC en octobre dernier et j'avais fait les mêmes constats que Seb H, je vais à nouveau y rejeter un coup d’œil avec les précisions de ton dernier message... mais c'est vrai que l'interface de Wifinfo est bien pensée...Maurice.
-
@Charles Voila mon problème.
Ci dessous une capture avec le setoption 108 0
20:42:30.845 MQT: domoticz/in = {"idx":84,"nvalue":0,"svalue":"0.0;719.0;0.0;0.0;366;0","Battery":100,"RSSI":6}
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,Dans la 1ère trame qui est envoyé à Domoticz, voici ce qu'attends domoticz dans le cas d'un capteur P1 SmartMeter
On peut voir, qu'il n'y l'index du Compteur A HC qui est renseigné et dans la 2ème trame, on peut voir que c'est l'image de "Today":0.720
Le problème c'est que le compteur Today est remis à 0 toutes les 24h par tasmota, et que l'on perd la notion de l'état de l'index réel de son compteur.
Si on reste sur le même fonctionnement que Wifinfo, on devrait retrouver dans la trame domoticz, pour l'index Cpt (A) HP (actuellement reste à 0), le contenue de EASF02 soit "1016809" et pour l'index Cpt (A) HC (actuellement l'image de today) , le contenue de EASF01 soit "876569"
Avec le setoption108 1(mode RAW), la problématique est exactement la même, ça ne change rien à la trame envoyé à domoticz
Alors comment peut on faire facilement ??
-
Ok je vois,
Oui domoticz est couplé au mode "Energy" de tasmota alors mettre en raw ne changera rien sauf a mettre une interface entre les 2.
Comment WiFinfo envoi à domoticz? peut être prendre le problème à l'envers
-
@papymo said in Ré-écriture de Wifinfo pour traiter le mode standard du Linky:
Effectivement un coup de reset et c'est reparti.
Personnellement, j'utilise toujours LibTéléinfo.h , mais je traite les erreurs et je fais un reset de la télé-info dès que j'ai une erreur de réception ( Linky en mode historique et ESP8266):
String Nom = me->name; //Lecture etiquette Téléinfo // traitement des erreurs de réception // me->value ne doit pas contenir de texte, si c'est le cas, il y a un pb de synchro dans la réception des trames // Linky. On va donc tester la longueur de la valeur reçue, qui normalement ne doit pas être 7,8,10, ou > 12. String val = me->value; if (val.length() == 7 or val.length() == 8 or val.length() == 10 or val.length() == 11 or val.length() > 12 ) { if (client.connect("clientId")) client.publish(TopicControl, me->value); tinfo.init(); // si erreur, re-init de la TeleInfo Nom = " "; // efface l'étiquette donc pas traitée par la suite }
j'ai quelques reset de la téléinfo par jour, mais c'est transparent pour le programme.
-
@charles
Mon wifinfo envoit une commande json sur mon domoticz, dans le format ci dessous.
Je renvoi simplement l'état de mes compteurs EASF02 et EASF01. Peut on le faire simplement en modifiant le code dans le module energie ?? (quitte à modifier la source dans mon cas)
-
@seb-h Ok je me souviens j'avais écrit ça a l'arrache de mémoire. Normalement tasmota gère domoticz mais via MQTT, t'as un serveur MQTT ?
-
D'un manière plus générale, je pense que la méthode la plus souple (et c'est valable pour TOUS les devices) c'est le couple suivant :
- MQTT
- Node Red
Dans donc cas par exemple Tasmota envoi la téléinfo dans MQTT, Node Red récupère celle qui t'intéresse puis fait un post HTTP (comme le faisait WiFInfo) sur Domoticz
Mais c'est pas limitatif, avec ce couple tu peux vraiment TOUT faire et l'interface graphique de node red est un bonheur
-
@charles En fait, j'ai un NAS Synology ou j'ai domoticz qui est installé dessus. J'ai du installer une appli nommé "Mosquitto" qui doit être le serveur MQTT. Le soucis étant c'est que je n'ai aucune interface graphique (ou une appli) ou je peux me connecter dessus, ne serait ce que pour définir un mot de passe ou un login d'accès à ce serveur. Je comprends ta logique maintenant , le but étant d'intercepter les trames et de les modifier. En revanche, je suis pas sur que je sache installer Node Red sur mon NAS qui est un entrée de gamme DS213j
-
@seb-h ouais j'ai un syno aussi de 10 ans un DS1010 je fait tout tout tourner en docker dessus y compris le broker mosquitto (et c'est le principe, pas d'interface graphique de config c'est un service)
Pour mettre un password sur ton broker MQTT c'est ligne de commande et la config est dans
mosquitto.conf
(faudra générer un fichier avec les password d'accès du coup) je vais pas décrire ici mais tu trouveras bon nombre de tuto pour ça.Pour node red idem, docker, si t'as un syno tu installes docker via DSM (l'interface graphique de synology) et du coup t'as une interface WEB de config docker sur le syno, tu vois je peut être compatissant La encore des tutos partout.
-
@charles Merci pour ton retour . J'ai vu ton message un peu tard et j'ai fait des recherches pendant ce temps. Donc j'ai effectivement trouvé pas mal de tuto donc celui d'installer Docker en 1er. Donc chez moi, je ne trouve pas l'appli Docker et normal car Docker n'est dispo qu'à partir d'une certaine gamme de Syno. Mais chance pour moi, j'ai trouver ce tuto https://www.rs-online.com/designspark/installing-node-red-on-a-synology-nas . En activant le SSH et avec des ligne de commande unix (j'ai quelques connaissance sur cet OS) , je suis arrivé à activer le login et mot de passe pour Mosquitto impec , et je suis arrivé a installer Node Red C'est donc un service que tu appelles via le navigateur avec un port spécifique ! On peut dire qu'il arrive à "sniffer" tout ce que mosquitto fait transité et peut aussi réemettre des trames comme il le désire ? . Je ne suis pas encore arrivé à activer la connexion sécurisé sur NodeRed avec login et mot de passe, pourtant j'ai suivi le tuto comprend pas (avec génération du mot de passe), faudra que je revois....
Dans l'idée , je désactive la trame DOMOTICZ/IN que tasmota envoit, je réceptionne uniquement la trame standard que tasmota envoit, j'extrait les 2 compteurs qui m’intéresse et je renvoi dans une trame DOMOTICZ/IN . Tu as pas un tuto qui irait super bien pour expliquer les différentes macro que utilise node red ? -
@seb-h ouais c'est l'idée, et le but de node red.
Non j'ai pas de tuto, mais du mets un node MQTT listener (pour subscribe sur le topic ou tasmota envoi la téléinfo) puis ensuite une fonction JS pour traiter et faire ce que tu veux puis un post http sur domoticz
Regarde tu dois pouvoir trouver des exemples nodered domoticz déja ca va t'aider à comprendre le principe.