Récupérer des informations Domoticz via MQTT pour affichage sur Tasmota

Forum dédié aux bricolages d'objets connectés IOT et leurs communications avec DomoticZ :
- Remplacement de firmware des prises, modules relais ...
- Fabrication à base d'ESP8266, de NodeMCU, de Weemos et consorts ...
kekemar
Messages : 8
Inscription : 06 nov. 2017, 09:28

Récupérer des informations Domoticz via MQTT pour affichage sur Tasmota

Message par kekemar »

Bonjour,

J'ai actuellement un Wemos avec Tasmota qui me sert à récupérer les informations de mon compteur Linky, ces données sont envoyées à Domoticz via MQTT et sont affichées sur un écran OLED.

J'aimerai afficher les informations de production solaire de mon onduleur (je précise je suis en autoconsommation, donc les infos n'apparaisse pas sur le Linky), ces informations sont présentes dans Domoticz et envoyé sur le serveur MQTT.

Voici les données qui se trouve sur le serveur Mosquito :

Code : Tout sélectionner

Topic: domoticz/out
{
	"Battery" : 255,
	"EnergyMeterMode" : "1",
	"LastUpdate" : "2022-03-23 08:26:16",
	"RSSI" : 12,
	"description" : "",
	"dtype" : "General",
	"hwid" : "3",
	"id" : "00084308",
	"idx" : 2308,
	"name" : "Panneaux Solaires",
	"nvalue" : 0,
	"stype" : "kWh",
	"svalue1" : "327.2",
	"svalue2" : "2342434.8",
	"unit" : 1
}
L'idée serait de créer une règle qui récupère la valeur "svalue1" sur le serveur MQTT et l'affiche sur l'écran OLED mais je trouve peu d'information sur internet pour réaliser cela et je ne sais pas comment faire.

Merci de votre aide
neo
Messages : 89
Inscription : 15 janv. 2020, 15:57

Re: Récupérer des informations Domoticz via MQTT pour affichage sur Tasmota

Message par neo »

Hello,
Tu dois pouvoir faire ça avec Node-Red, comme j'ai fait ici sur un ESP8266/MAX7219 : viewtopic.php?p=90562#p90562
J'utilise aussi cette technique pour piloter un écran tactile AZ-Touch sous ESP32.

Ensuite il faudrait savoir sous quel topic envoyer sur tasmota et sous quelle forme, d'après la documentation je pense que ce serait un truc du style : {"DisplayText":"valeur"}

Tu peux déjà faire des tests avec mosquitto_pub (voir 1er lien) pour voir si tu arrives à communiquer avec le module.
Raspberry Pi 2 - Docker: Domoticz, NodeRed, Mosquitto, Homebridge - RFLink USB 433mhz, sondes Oregon, pluviomètre - Prises électriques et autres cartes à base d'ESP8266/ESP32 sous ESPEasy et Tasmota
Mes designs 3D sur Thingiverse
dokho
Messages : 685
Inscription : 28 déc. 2014, 19:32

Re: Récupérer des informations Domoticz via MQTT pour affichage sur Tasmota

Message par dokho »

Salut,

Je ne sais pas si ça répond à ta question mais essayes déjà avec ce flow voir si tu as bien la valeur qui s'affiche en debug

Code : Tout sélectionner

[
    {
        "id": "4e7f849a.84bfec",
        "type": "mqtt in",
        "z": "724369be.35981",
        "name": "",
        "topic": "domoticz/out",
        "qos": "2",
        "datatype": "auto",
        "broker": "a53b9be.1ee3668",
        "x": 2350,
        "y": 1380,
        "wires": [
            [
                "c2c76ade.7ed4b"
            ]
        ]
    },
    {
        "id": "c2c76ade.7ed4b",
        "type": "json",
        "z": "724369be.35981",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 2530,
        "y": 1380,
        "wires": [
            [
                "a4484b60.31ace"
            ]
        ]
    },
    {
        "id": "a4484b60.31ace",
        "type": "switch",
        "z": "724369be.35981",
        "name": "",
        "property": "payload.name",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "Panneaux Solaires",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 2690,
        "y": 1380,
        "wires": [
            [
                "80dbf400.2f7388"
            ]
        ]
    },
    {
        "id": "80dbf400.2f7388",
        "type": "function",
        "z": "724369be.35981",
        "name": "",
        "func": "msg.payload = msg.payload.svalue1\nreturn msg;\n\n\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "x": 2860,
        "y": 1380,
        "wires": [
            [
                "89f77d59.86dd28"
            ]
        ]
    },
    {
        "id": "89f77d59.86dd28",
        "type": "debug",
        "z": "724369be.35981",
        "name": "",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "false",
        "statusVal": "",
        "statusType": "auto",
        "x": 3060,
        "y": 1400,
        "wires": []
    },
    {
        "id": "a53b9be.1ee3668",
        "type": "mqtt-broker",
        "broker": "192.168.0.232",
        "port": "1883",
        "clientid": "",
        "usetls": false,
        "compatmode": true,
        "keepalive": "60",
        "cleansession": true,
        "birthTopic": "",
        "birthQos": "0",
        "birthPayload": "",
        "willTopic": "",
        "willQos": "0",
        "willPayload": ""
    }
]
(il y a moyen de faire plus court en filtrant directement dans le node function plutôt qu'avec le switch, mais j'ai pas le courage)

Ensuite il faudra trouver comment envoyer vers tasmota: voir ICI
Répondre