Après avoir compilé tant bien que mal NotifHeureXL j'ai pu l'intégrer sans problème dans Domoticz via Node-Red, et ça tourne plutôt bien !
Une fois la carte flashée et connectée au réseau wifi, on peut configurer directement par interface web les infos du broker, la matrice affiche alors les messages qui lui sont destinés via MQTT.
De base elle affiche l'heure en attendant de faire défiler le message reçu.
A savoir que l'on peut mettre plusieurs modules en série, régler l'intensité de l'éclairage, la vitesse de défilement et tout un tas d'autres choses (à voir sur le site de l'auteur).
L'idée c'est de remplacer "Hello World" par les infos que l'on veut de Domoticz.
Attente 60sec => Demande d'infos à Domoticz via http/json => Isolation des données => Mise en forme MQTT => Envoi
S'en suit une pause de 10 secondes entre chaque valeur envoyée de telle sorte que la matrice ait le temps de faire défiler le précédent message et le programme se relance en boucle.
Je suis complètement débutant dans Node-Red (je ne connaissais pas avant).
Je ne sais pas si c'est optimisé ou si ma manière de procéder est la bonne mais ça fonctionne au poil, sans plantage ni message d'erreur.
Code : Tout sélectionner
[
{
"id": "a9cc2ddb.efc4a",
"type": "tab",
"label": "Matrice LED Max7219",
"disabled": false,
"info": ""
},
{
"id": "d1e2c0c1.f8ac1",
"type": "mqtt out",
"z": "a9cc2ddb.efc4a",
"name": "Max7219",
"topic": "byfeel/NotifheureXL/6e5bbf/max7219/message",
"qos": "2",
"retain": "",
"broker": "b8bfeb9b.474018",
"x": 1220,
"y": 220,
"wires": []
},
{
"id": "5e44d1bb.94822",
"type": "function",
"z": "a9cc2ddb.efc4a",
"name": "CPU (Data export)",
"func": "msg.payload = msg.payload.result[0].Data\nreturn msg;\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"x": 650,
"y": 60,
"wires": [
[
"54c83385.f56ecc"
]
]
},
{
"id": "54c83385.f56ecc",
"type": "template",
"z": "a9cc2ddb.efc4a",
"name": "Template CPU",
"field": "payload",
"fieldType": "msg",
"format": "handlebars",
"syntax": "mustache",
"template": "{\"msg\":\"CPU: {{payload}}\"}",
"output": "str",
"x": 880,
"y": 60,
"wires": [
[
"d1e2c0c1.f8ac1",
"ca17c34a.15fb8"
]
]
},
{
"id": "b3ed6cd0.24dfe",
"type": "function",
"z": "a9cc2ddb.efc4a",
"name": "Memory (Data export)",
"func": "msg.payload = msg.payload.result[0].Data\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"x": 660,
"y": 220,
"wires": [
[
"42933e34.dd33e"
]
]
},
{
"id": "42933e34.dd33e",
"type": "template",
"z": "a9cc2ddb.efc4a",
"name": "Template Memory",
"field": "payload",
"fieldType": "msg",
"format": "handlebars",
"syntax": "mustache",
"template": "{\"msg\":\"Memory: {{payload}}\"}",
"output": "str",
"x": 890,
"y": 220,
"wires": [
[
"d1e2c0c1.f8ac1",
"7a35d732.8cdf6"
]
]
},
{
"id": "b108c682.e28c88",
"type": "function",
"z": "a9cc2ddb.efc4a",
"name": "HDD (Data export)",
"func": "msg.payload = msg.payload.result[0].Data\nreturn msg;",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"x": 650,
"y": 360,
"wires": [
[
"68d3dc6a.00c29c"
]
]
},
{
"id": "68d3dc6a.00c29c",
"type": "template",
"z": "a9cc2ddb.efc4a",
"name": "Template HDD",
"field": "payload",
"fieldType": "msg",
"format": "handlebars",
"syntax": "mustache",
"template": "{\"msg\":\"HDD: {{payload}}\"}",
"output": "str",
"x": 880,
"y": 360,
"wires": [
[
"d1e2c0c1.f8ac1"
]
]
},
{
"id": "69d1e9d6.02cd8",
"type": "http request",
"z": "a9cc2ddb.efc4a",
"name": "HTTP Request (IDX1 CPU)",
"method": "GET",
"ret": "obj",
"paytoqs": "ignore",
"url": "http://10.100.1.3:8080/json.htm?type=devices&rid=1",
"tls": "",
"persist": false,
"proxy": "",
"authType": "basic",
"x": 380,
"y": 60,
"wires": [
[
"5e44d1bb.94822"
]
]
},
{
"id": "d0e5a3b.4d0f4e",
"type": "http request",
"z": "a9cc2ddb.efc4a",
"name": "HTTP Request (IDX2 Memory)",
"method": "GET",
"ret": "obj",
"paytoqs": "ignore",
"url": "http://10.100.1.3:8080/json.htm?type=devices&rid=2",
"tls": "",
"persist": false,
"proxy": "",
"authType": "basic",
"x": 390,
"y": 220,
"wires": [
[
"b3ed6cd0.24dfe"
]
]
},
{
"id": "260cb415.8464a4",
"type": "http request",
"z": "a9cc2ddb.efc4a",
"name": "HTTP Request (IDX4 HDD)",
"method": "GET",
"ret": "obj",
"paytoqs": "ignore",
"url": "http://10.100.1.3:8080/json.htm?type=devices&rid=4",
"tls": "",
"persist": false,
"proxy": "",
"authType": "basic",
"x": 380,
"y": 360,
"wires": [
[
"b108c682.e28c88"
]
]
},
{
"id": "7cab907d.fdd518",
"type": "inject",
"z": "a9cc2ddb.efc4a",
"name": "Waiting 1min",
"props": [
{
"p": "payload"
}
],
"repeat": "60",
"crontab": "",
"once": true,
"onceDelay": "10",
"topic": "",
"payload": "payload",
"payloadType": "msg",
"x": 120,
"y": 60,
"wires": [
[
"69d1e9d6.02cd8"
]
]
},
{
"id": "ca17c34a.15fb8",
"type": "delay",
"z": "a9cc2ddb.efc4a",
"name": "",
"pauseType": "delay",
"timeout": "10",
"timeoutUnits": "seconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"x": 140,
"y": 220,
"wires": [
[
"d0e5a3b.4d0f4e"
]
]
},
{
"id": "7a35d732.8cdf6",
"type": "delay",
"z": "a9cc2ddb.efc4a",
"name": "",
"pauseType": "delay",
"timeout": "10",
"timeoutUnits": "seconds",
"rate": "1",
"nbRateUnits": "1",
"rateUnits": "second",
"randomFirst": "1",
"randomLast": "5",
"randomUnits": "seconds",
"drop": false,
"x": 140,
"y": 360,
"wires": [
[
"260cb415.8464a4"
]
]
},
{
"id": "b8bfeb9b.474018",
"type": "mqtt-broker",
"name": "Mosquitto MQTT",
"broker": "172.17.0.1",
"port": "1883",
"clientid": "",
"usetls": false,
"compatmode": false,
"keepalive": "15",
"cleansession": true,
"birthTopic": "",
"birthQos": "0",
"birthPayload": "",
"closeTopic": "",
"closePayload": "",
"willTopic": "",
"willQos": "0",
"willPayload": ""
}
]