Page 1 sur 1

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

Publié : 23 mars 2022, 08:32
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

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

Publié : 25 mars 2022, 17:57
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.

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

Publié : 28 mars 2022, 19:01
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