TUTO Instalation NODE RED

Bonjour ,
Voici un tuto pour installer Node RED et le MQTT

Via les commandes en ssh:

bash <(curl -sL https://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)

(A adapter en fonction du hardware, le code ci dessus et pour un PC)
Puis

sudo systemctl enable nodered.service

Pour activer le lancement au démarrage
Et pour finir :

sudo node-red-start

Pour lancer le service

Ensuite on se connecte via le port 1880 serveur.(ex 192.168.1.10:1880)
Une fois dans node red:
Menu/Import et coller le code suivant:

`[{"id":"e391464.49785b8","type":"tab","label":"Surveillance Node RED","disabled":false,"info":""},{"id":"a60f330.dceeed","type":"mqtt in","z":"e391464.49785b8","name":"","topic":"Node Red","qos":"2","datatype":"auto","broker":"c6b88f19.cc3fb","x":180,"y":120,"wires":[[]]},{"id":"189a6703.8912c9","type":"mqtt out","z":"e391464.49785b8","name":"","topic":"","qos":"","retain":"","broker":"c6b88f19.cc3fb","x":450,"y":120,"wires":[]},{"id":"6e0e48dc.b29da8","type":"mqtt out","z":"e391464.49785b8","name":"Last Communication","topic":"Last Communication","qos":"","retain":"","broker":"c6b88f19.cc3fb","x":1020,"y":420,"wires":[]},{"id":"25616d4e.6f9a42","type":"inject","z":"e391464.49785b8","name":"","props":[{"p":"payload"}],"repeat":"60","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":240,"y":420,"wires":[["24b55d93.591972","5e82980e.0a4458"]]},{"id":"dc58fc2a.c0c75","type":"debug","z":"e391464.49785b8","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":870,"y":520,"wires":[]},{"id":"24b55d93.591972","type":"simpletime","z":"e391464.49785b8","name":"","mydate":false,"myymd":true,"myyear":false,"mymonth":false,"mymonthn":false,"mydom":false,"mydoy":false,"myday":false,"myhourpm":false,"myhour":false,"mytime":false,"mytimes":true,"myminute":false,"myminutes":false,"mysecond":false,"mymillis":false,"myepoch":false,"myrawdate":false,"mypm":false,"x":570,"y":300,"wires":[[]]},{"id":"5e82980e.0a4458","type":"function","z":"e391464.49785b8","name":"","func":"var d = new Date();\nvar options = { timeZone: 'UTC', timeZoneName: 'long', year: 'numeric', month: '2-digit', day: '2-digit', hour: `2-digit`, minute: `2-digit`, second: `2-digit`};\nvar _resultDate = d.toLocaleDateString('fr-FR', options);\nmsg.payload = _resultDate;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":620,"y":420,"wires":[["dc58fc2a.c0c75","6e0e48dc.b29da8"]]},{"id":"c6b88f19.cc3fb","type":"mqtt-broker","name":"Mostiquitto","broker":"localhost","port":"1883","clientid":"16","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"Node-red-router","birthQos":"2","birthRetain":"false","birthPayload":"1","closeTopic":"Node-red-router","closeQos":"2","closeRetain":"false","closePayload":"0","willTopic":"Node-red-router","willQos":"2","willPayload":"0"}]`

Pour la partie en MQTT il suffit de double cliquer sur un bloc violet
Puis de cliquer sur le stylo pour éditer la configuration de serveur MQTT
image
Plus qu’à renseigner les informations du serveur MQTT de Jeedom

Pour la mise en place du serveur MQTT sur Jeedom voir le lien du plugin:
https://lunarok.github.io/jeedom_docs/plugins/mqtt/

Bonjour @regi54,

Merci pour ce tuto expliquant simplement l’installation de NodeRed.
Attention, la commande Sudo node-red-start ne passe pas, il faut que sudo soit en minuscules.

Pour ce qui est de la communication en MQTT avec Jeedom, il existe aussi le plugin jMQTT qui permet notamment l’utilisation de plusieurs Brokers, la spécification fine des commandes de type info et l’équipe de développeurs (dont je fais partie) apporte souvent des nouveautés. La documentation détaille le fonctionnement du plugin, mais aussi de MQTT en général.

3 « J'aime »

Un peut contradictoire une commande bash faite pour un PC ???

Capture d’écran du 2021-09-09 13-36-06

1 « J'aime »

ton nuc sur lequel tu as installé proxmox, c’est un pc :wink:

ton raspberry aussi notes, si on veut être strict

mais par extension, on parle en fait de « pc compatible », qui sont tout pc avec archi x86

Pas faux PC pour moi évoque plus un OS windows et pour 99% des mortels :wink:

Salut, Je viens d’essayer le plugin Jmqtt, et j’arrive a communiquer avec le Dyson.
Le problème c’est que le Dyson envois deux messages à la suite et dans le plugin il ne prend en compte que le deuxieme.


[2021-09-09 14:43:16][DEBUG] : broker msg: Client jeedom received PUBLISH (d0, q0, r0, m0, '469/NB2-EU-JDA0881A/command', ... (60 bytes))
[2021-09-09 14:43:16][DEBUG] : Payload {"msg":"REQUEST-CURRENT-STATE","now":"2016-08-11T14:57:17Z"} for topic 469/NB2-EU-JDA0881A/command
[2021-09-09 14:43:16][INFO] : Create equipment 469, topic=469/#, type=eqpt
[2021-09-09 14:43:16][INFO] : Création commande info 469|NB2-EU-JDA0881A:command
[2021-09-09 14:43:16][INFO] : -> 469|NB2-EU-JDA0881A:command {"msg":"REQUEST-CURRENT-STATE","now":"2016-08-11T14:57:17Z"}
[2021-09-09 14:43:16][DEBUG] : broker msg: Client jeedom received PUBLISH (d0, q0, r0, m0, '469/NB2-EU-JDA0881A/status/current', ... (333 bytes))
[2021-09-09 14:43:16][DEBUG] : Payload {"msg":"CURRENT-STATE","time":"2021-09-09T12:43:16.000Z","mode-reason":"LAPP","state-reason":"ENV","dial":"OFF","rssi":"-54","product-state":{"fmod":"AUTO","fnst":"OFF","fnsp":"AUTO","qtar":"0001","oson":"ON","rhtm":"ON","filf":"4282","ercd":"02C9","nmod":"OFF","wacd":"NONE"},"scheduler":{"srsc":"c726","dstv":"0001","tzid":"0001"}} for topic 469/NB2-EU-JDA0881A/status/current
[2021-09-09 14:43:16][INFO] : Création commande info 469|NB2-EU-JDA0881A:status:current
[2021-09-09 14:43:17][INFO] : -> 469|NB2-EU-JDA0881A:status:current {"msg":"CURRENT-STATE","time":"2021-09-09T12:43:16.000Z","mode-reason":"LAPP","state-reason":"ENV","dial":"OFF","rssi":"-54","product-state":{"fmod":"AUTO","fnst":"OFF","fnsp":"AUTO","qtar":"0001","oson":"ON","rhtm":"ON","filf":"4282","ercd":"02C9","nmod":"OFF","wacd":"NONE"},"scheduler":{"srsc":"c726","dstv":"0001","tzid":"0001"}}
[2021-09-09 14:43:17][DEBUG] : broker msg: Client jeedom received PUBLISH (d0, q0, r0, m0, '469/NB2-EU-JDA0881A/status/current', ... (155 bytes))
[2021-09-09 14:43:17][DEBUG] : Payload {"msg":"ENVIRONMENTAL-CURRENT-SENSOR-DATA","time":"2021-09-09T12:43:17.000Z","data":{"tact":"2998","hact":"0056","pact":"0000","vact":"0000","sltm":"OFF"}} for topic 469/NB2-EU-JDA0881A/status/current
[2021-09-09 14:43:17][INFO] : -> 469|NB2-EU-JDA0881A:status:current {"msg":"ENVIRONMENTAL-CURRENT-SENSOR-DATA","time":"2021-09-09T12:43:17.000Z","data":{"tact":"2998","hact":"0056","pact":"0000","vact":"0000","sltm":"OFF"}}
[2021-09-09 14:43:28][DEBUG] : broker msg: Client jeedom sending PINGREQ
[2021-09-09 14:43:28][DEBUG] : broker msg: Client jeedom received PINGRESP

Mais c’est vraiment cool comme plugin je connaissais pas.

Hello et merci d’avoir installé le plugin :slight_smile:

Dans tes logs je vois en effet 3 messages, et les 2 derniers sont sur le même topic :

[2021-09-09 14:43:16][INFO] : -> 469|NB2-EU-JDA0881A:command
{
	"msg": "REQUEST-CURRENT-STATE",
	"now": "2016-08-11T14:57:17Z"
}

[2021-09-09 14:43:17][INFO] : -> 469|NB2-EU-JDA0881A:status:current 
{
	"msg": "CURRENT-STATE",
	"time": "2021-09-09T12:43:16.000Z",
	"mode-reason": "LAPP",
	"state-reason": "ENV",
	"dial": "OFF",
	"rssi": "-54",
	"product-state": {
		"fmod": "AUTO",
		"fnst": "OFF",
		"fnsp": "AUTO",
		"qtar": "0001",
		"oson": "ON",
		"rhtm": "ON",
		"filf": "4282",
		"ercd": "02C9",
		"nmod": "OFF",
		"wacd": "NONE"
	},
	"scheduler": {
		"srsc": "c726",
		"dstv": "0001",
		"tzid": "0001"
	}
}

[2021-09-09 14:43:17][INFO] : -> 469|NB2-EU-JDA0881A:status:current 
{
	"msg": "ENVIRONMENTAL-CURRENT-SENSOR-DATA",
	"time": "2021-09-09T12:43:17.000Z",
	"data": {
		"tact": "2998",
		"hact": "0056",
		"pact": "0000",
		"vact": "0000",
		"sltm": "OFF"
	}
}

Mais en soit ce n’est pas bien grave, car jMQTT sait décoder le json et ces messages sont complémentaires.
En effet, ils ne remontent pas les mêmes informations, l’un envoie des informations générales :
mode-reason, state-reason, dial, rssi et surtout product-state et scheduler,
alors que l’autre remonte principalement data.

En passant l’équipement en mode JSON tu vas pouvoir identifier facilement et créer dans le même équipement des commandes info pour ces différents « sous-topic », par exemple :

  • info numérique rssi sur le topic 469/NB2-EU-JDA0881A/status/current{rssi}
  • info binaire oson sur le topic 469/NB2-EU-JDA0881A/status/current{product-state}{oson}
  • info binaire sltm sur le topic 469/NB2-EU-JDA0881A/status/current{data}{sltm}
  • etc…

J’espère avoir été clair :wink:

Merci pour l’explication,
Oui j’avais vue le mode json

bonsoir,
le mode Json c’est la cerise sur le gâteau :smile:

1 « J'aime »