Je met en place mqtt avec node red et je ne sais pas trop comment récupérer une partie d’un topic qui arrive au format string du genre : STATE = {« Time »:« 2023-01-04T13:27:55 »,« Uptime »:« 0T00:00:09 »,« UptimeSec »:9,« Heap »:28,« SleepMode »:« Dynamic »,« Sleep »:50,« LoadAvg »:19,« MqttCount »:1,« Wifi »:{« AP »:1,« SSId »:« freecheznous »,« BSSId »:« 14:0C:76:9E:0B:40 »,« Channel »:1,« Mode »:« 11n »,« RSSI »:82,« Signal »:-59,« LinkCount »:1,« Downtime »:« 0T00:00:03 »}}
nodemcu-v3-2 … etc
outre ma « brique » « mqtt in » quelle brique je rajoute derrière pour pouvoir séparer mes champs pour par exemple ne récupérer que la valeur « Uptime » ?
Salut, Attention les maçons parlent de briques. Dans NodeRed on parle de Node.
Plusieurs briques constituent un mur (toujours en maçonnerie)
Dans NR, plusieurs Nodes constituent un Flow.
Donc pour ta problématique, il faudrat commencer par découper (split) ton message puis isoler la partie qui tu souhaites (switch)
Pour connaitre le message réel en sortie du Node Mqtt IN, possitionne directement à sa sortie un Node Débug et postes le résultat pour valider sa composition. Pas sûr qu’il corresponde à ce que tu as posté.
Techniquement moi je me pose la question de savoir c’est ce n’est pas plus utile de traiter le MQTT à travers les templates de HA qu’avec Nodered et pourtant j’ai Nodered comme automatisme principal.
Si en plus derrière, il faut remettre le uptime dans une entité quelconque, c’est beaucoup de boulot en plus et ça n’apprends pas à manipuler les base HA
On peut en discuter mais pas tout à fait d’accord avec toi.
J’ai des choses stocker en MQTT sans passer par HA et tous mes automatismes sont en NR et rien sur HA.
Oui, c’est bien pour ça que je me pose la question aussi, le contexte d’utilisation permettrai de trancher.
Là, j’ai juste un doute sur l’objectif d’extraire un uptime qui est déjà stocké…
Bonsoir à tous,
Donc j’explique le contexte, j’ai un rf 433 bridge sonoff sous tasmota, j’ai des détecteurs d’ouverture de porte qui me renvois des résultats sous cette forme : ele/tasmota_bridge_blanc/RESULT : msg.payload : string[111] "{"Time":"2023-01-04T18:16:09","RfReceived":{"Sync":19164,"Low":734,"High":1882,"Data":"154557","RfKey":"None"}}"
Je souhaite donc pouvoir différencier mes détecteurs grâce au « Data »:« 154557 » qui bien évidemment est différent sur chaque détecteur, ceci afin de connaitre la porte restée ouverte et aussi de pouvoirs « construire » (pourtant je ne suis pas maçon ) mon Alarme.
j’ai regardé un petit peu ce soir en rentrant du boulot et j’ai effectivement repéré ce node « split » reste a comprendre comment s’en servir
Merci @golfvert c’est le « msg.payload.RfReceived.Data » qu’il me manquais et que je n’avais pas encore eu l’occasion d’utiliser .C’est cool !!! ca marche je reçois bien mes SMS.
Bonjour,
Je relance le sujet car cela fonctionnait très bien jusqu’à le mise à jour de l’image docker de nodered.
En effet depuis la mise à jour de nodered 3.0.2 , le node « in mqtt » ne reçois plus infos de la même façon dirait-on .
avant hier en mettant un node « debug » derrière mon node « in mqtt » je recevais ça:
Aujourd’hui mon node « debug » me renvois çà :
Je ne comprend pas pourquoi, mon mqttexplorer lui, affiche toujours les bonnes infos: