Tasmota
-
@Seb-H
Le mode RAW envoi l'intégralité des données en MQTT sous la forme d'un gros JSON. Donc tous les champs qui sont dans la trame sont envoyées. Tu peux vérifier cela sur ton système.Ton back-end peux probablement faire le traitement mais il faut peut être du dev. Par exemple moi je pourrais le faire avec Node-Red (Je n'ai pas Domoticz, HA ou OpenHAB)
Après, il est aussi possible avec les règles de Tasmota (Rules) d'intercepter le JSON du mode RAW et de préparer un JSON "custom" et de l'envoyer sur un topic particuler.
Par exemple la règle suivante devrait fonctionner:
Rule1 ON EASTF01#Data DO var1 %value% ENDON ON EASTF02#Data DO var2 %value% ENDON ON var2#state DO publish mon/topic/domoticz/linky {"compteur1":%var1%,"compteur2:"%var2%} ENDON
EDIT : Dans la version actuelle la trame RAW ne passe pas dans le moteur de règles. Je suis en train de l'ajouter
-
Ca marche
Rule1 on EASF01 do var1 %value% endon on EASF02 do var2 %value% endon on var2#state do publish debug/energy { \"compteur1\":%var1%,\"compteur2\":%var2%} endon
20:46:56.001 MQT: tele/nodemcu/RESULT = { "ADSC":"811775179984","VTIC":2,"NGTF":" BASE ","LTARF":" BASE ","EAST":3232240,"EASF01":3232240,"EASF02":0,"EASF03":0,"EASF04":0,"EASF05":0,"EASF06":0,"EASF07":0,"EASF08":0,"EASF09":0,"EASF10":0,"EASD01":3232240,"EASD02":0,"EASD03":0,"EASD04":0,"IRMS1":2,"URMS1":237,"PREF":9,"PCOUP":9,"SINSTS":539,"SMAXSN":2360,"SMAXSN-1":600,"CCASN":288,"CCASN-1":306,"UMOY1":237,"STGE":"003A0001","MSG1":" PAS DE MESSAGE ","PRM":2147483647,"RELAIS":0,"NTARF":1,"NJOURF":0,"NJOURF+1":0,"PJOURF+1":"00008001 NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE NONUTILE"} 20:46:56.014 RUL: EASF01 performs "var1 3232240" 20:46:56.020 MQT: stat/nodemcu/RESULT = {"Var1":"3232240"} 20:46:56.028 RUL: EASF02 performs "var2 0" 20:46:56.035 MQT: stat/nodemcu/RESULT = {"Var2":"0"} 20:46:56.064 RUL: VAR2#STATE performs "publish debug/energy { \"compteur1\":3232240,\"compteur2\":0}" 20:46:56.071 MQT: debug/energy = { \"compteur1\":3232240,\"compteur2\":0}
Bon je ne vais pas régénérer de binaire pour cela mais ca sera dans la version dev d'ici 48H
-
This post is deleted! -
@Seb-H la PR a été incluse ce matin à 9h00
C'est donc maintenant dans le tronc 'development' du github arendst/Tasmota
Par conte il faut toujours compiler soi même car ce n'est pas inclus par défaut dans le build -
@Barbu-Dor Ta version que j'ai récupéré sur ton lien initial est aussi à jour. Je l'ai récupérer il y a 5 minutes.. Je peux partir la dessus pour l'instant ??
-
@Barbu-Dor oui j'utilise pas la même notion de tarif car EdF gére trop de tarif (EJP et la totale) je ne sais pas si c'est supporté par tasmota. En plus j'ai codé a l'arrache (ça change) sans connaitre tasmota, alors j'ai certainement pas "bien fait" les choses mais si on améliore c'est top.
-
Top les règles sur des valeurs, faudra que je regarde comment tu as fait ça
l'ADPS sera utile.
-
@Seb-H oui c'est bon aussi
-
@Charles j'ai changé l'appel à MqttPublish() par MqttPublishRules() (ou du meme genre) ainsi le JSON est parsé par le moteur de règles
Chaque champ est alors un trigger
Pour composer un nouveau message il faut récupérer chaque champ dans une variable par son propre trigger puis sur la mise à jour de la dernière variable on peut publier.
Un peu lourd et intensif surtout avec un json à chaque seconde.
Il faudrait peut être considérer des évolutions pour réduire la fréquence du raw -
@Barbu-Dor ah ah ok j'ai regardé tes changements vite fait j'ai pas vu de code pour les règles, je comprends mieux la subtilité, sur le publish. Tasmota est quand même super bien pensé, j'adore.
Ouais dans le loop téléinfo, peut être coller un compteur et envoyer le raw uniquement tous les X du compteurs (géré par un setoption ou autre) pour envoyer un raw uniquement tt les 10 secondes (environ) par exemple
Super boulot en tout cas, merci à toi d'avoir pris le temps. pour ta contribution ça te dirait que je t'envoi une carte WiFiInfo32 ? j'ai qq proto (et un cruel manque de temps)
De mémoire j'en ai envoyé un à @Seb-H, à moins que ce ne soit pas le meme seb, celui qui fait le zigbee de tasmota c'est pas toi @Seb-H ?
-
@Charles Salut Charles, non tu dois te tromper, c'est pas moi . J'ai pas la prétention de toucher du code comme vous le faites, moi je reste un petit rigolo , mouahhh !! Néanmoins, si tu veux que je teste avec un de tes protos, je suis partant, je te le retourne après test pas de soucis...
-
Petite question . Au niveau du hard, le signal téléinfo arrivait sur la pin D7 sur Esp8266 wemos D1. Actuellement, j'ai du faire une modif hard , que le signal arrive sur la pin RX. J'ai fait mes test uniquement en sélectionnant la pin RX sur tasmota. Est ce que ca pourrait fonctionner aussi avec la pin D7 ?
-
@Barbu-Dor Je crois que je viens de trouver un petit bug? Donc mon wemos vient d'être flashé et encore alimenté par le 5V de l'ordi. Je n'ai pas de signal téléinfo qui arrive dessus et pourtant il m'envoit une donnée sur le MQTT .. Il aurait gardé une mémoire d'avant ?? A moins que ce soit normal ??
![0_1613038627432_fe54f319-dab7-4d7f-8352-1d676b5ba278-image.png](Uploading 100%)
-
arff quelle idée, deux s-h bossant sur tasmota
Pour info RX/GPIO3 et TX/GPIO1 sont les 2 pins officielles serial mais il y a un swap possible dans l'ESP8266 qui permet de passer ces 2 pins sur
D7/GPIO13/RX et D8/GPIO15/TX
C'est un swap hardware (positionné en software parSerial.swap()
et c'est automatique dans tasmota si tu positionnes dans l'interface de config tasmotaTInfo Rx (210)
sur GPIO7
donc la réponse est oui -
Pour info avec la téléinfo j'utilise que des ESP32 c'est trop chiant avec le 8266 pour débugguer car la sérial est prise par la téléinfo (bien qu'on puisse prendre TDX1 pour debug)
avec l'ESP32 je laisse la Serial par défaut pour le debug et je prends une 2eme pour la téléinfo, bien plus souple. -
@Barbu-Dor Alors je viens de tester. Je pense que j'ai louper une étape. J'obtiens les mêmes résultats que toi, mais ca ne modifie pas la trame MQTT qui part sur domoticz.
11:42:44.308 RUL: VAR2#STATE performs "publish debug/energy { "compteur1":856867,"compteur2":991027}"
11:42:44.313 MQT: debug/energy = { "compteur1":856867,"compteur2":991027}
11:42:45.265 RUL: EASF01 performs "var1 856867"
11:42:45.270 MQT: stat/tasmota_DB567A/RESULT = {"Var1":"856867"}
11:42:45.276 RUL: EASF02 performs "var2 991027"
11:42:45.282 MQT: stat/tasmota_DB567A/RESULT = {"Var2":"991027"}
11:42:45.309 RUL: VAR2#STATE performs "publish debug/energy { "compteur1":856867,"compteur2":991027}"
11:42:45.313 MQT: debug/energy = { "compteur1":856867,"compteur2":991027}
11:42:45.414 MQT: tele/tasmota_DB567A/STATE = {"Time":"2021-02-11T11:42:45","Uptime":"0T00:20:59","UptimeSec":1259,"Heap":25,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":1,"Wifi":{"AP":1,"SSId":"Sylvia&Seb","BSSId":"14:91:82:FC:0E:ED","Channel":1,"RSSI":62,"Signal":-69,"LinkCount":1,"Downtime":"0T00:00:03"}}
11:42:45.421 MQT: domoticz/in = {"idx":84,"nvalue":0,"svalue":"0.0;7.9;0.0;0.0;417;0","Battery":100,"RSSI":6} -
Je n'ai pas testé sur les ports alternatifs D7/D8 car comme je n'ai pas de vrai connexion, je n'ai testé qu'avec des trames pré-enregistrées poussées par mon PC via l'adaptateur USB intégré du nodemcu
Mais effectivement Tasmota fait automatiquement le swap si tu choisit D7/D8
Et si tu choisit d'autres pins, il prend un Uart soft qui risque de poser des problèmes de perfs, surtout en Standard vu le flux tenduSur ESP32, Tasmota laisse l'UART0 pour le debug console et n'autorise les drivers a n'utiliser que UART1 et 2 mais comme on peut remapper les pins n'importe comment ou presque ce n'est pas un problème.
-
@Seb-H Les règles ne permettent pas de modifier la trame qui est envoyée par le mode RAW mais d'en extraire info et d'en recomposer une autre
il faut que tu adapte le publish a ton besoin -
@Barbu-Dor Donc ça veut déjà dire, qu'il faut couper l'envoie de la trame MQTT actuel et en générer une nouvelle.... Moi et comme beaucoup de novice vont à avoir du mal à comprendre.. Tu saurais me donner un exemple concret dans mon cas du comment je peux faire ?? Je ne suis qu'un malheureux utilisateur final
-
@Barbu-Dor Visiblement ca à l'air de fonctionner en sélectionnant le D7 et en mode standard !