07-06-2024, 12:24 PM
(07-06-2024, 10:38 AM)Nalexdouze a écrit :(06-06-2024, 01:12 PM)Francky a écrit : Hello a tous
Je récupere bien les infos du routeur dans mon jeedom sous mqttmanager
J'ai ça en info
Mais j'ai beau chercher et faire des tests, pour le moment echec meme via mqtt explorer
Si quelqu'un y arrive , je suis preneur d'information
Dans ton Jeedom tu n'as que des infos, il te faut aussi des actions
(06-06-2024, 03:50 PM)Francky a écrit : C'est bien un forçage que je veux faire a partir de jeedom
J'ai bien vu ceci
tOnOff:30 force à On durant 30 minutes
tOnOff:-40 force à Off durant 40 minutes
tOnOff: 0 libère le forçage, le routeur retrouve son comportement normalement programmé
qui faut envoyer en mqtt au routeur mais j'ai plusieurs essais mais je n'y arrive pas pour le moment
Dans le code de André il y a :
Code ://Callback après souscription à un topic et réaliser une action
void callback(char *topic, byte *payload, unsigned int length) {
char Message[length + 1];
for (int i = 0; i < length; i++) {
Message[i] = payload[i];
}
Message[length] = '\0';
String message = String(Message) + ",";
if (String(topic) == TopicT && Source_Temp == "tempMqtt") { //Temperature attendue
temperature = ValJson("temperature", message);
}
if (String(topic) == TopicP && Source == "Pmqtt") { //Mesure de puissance
PwMQTT = ValJson("Pw", message);
PvaMQTT = ValJson("Pva", message);
PfMQTT = ValJson("Pf", message);
P_MQTT_Brute = String(Message);
if (message.indexOf("Pw") > 0) LastPwMQTTMillis = millis();
}
if (subMQTT == 1) {
for (int i = 0; i < NbActions; i++) {
if (LesActions[i].Actif > 0 && LesActions[i].Titre == String(topic)) {
LesActions[i].tOnOff=ValJson("tOnOff", message);
LesActions[i].Prioritaire();
}
}
}
Serial.print(topic);
Serial.println(Message);
La void callback permet d'écouter un topic sur le Broker MQTT, la première condition récupère une information température, la seconde des puissances et la dernière traite des actions. Je pense que c'est avec ceci que tu dois creuser.
N'ayant pas encore fait cette MàJ, je n'ai pas testé
Bonjour,
Je suis en train de regarder ça avec Francky sur les forums de Jeedom, et je suis confronté à la même situation.
Pour résumer :
- l'objectif : piloter le relais SSR (ou le triac) pour le forcer en mode ON/OFF via une commande MQTT transmis via Jeedom (avec le plugin MQTT Manager pour moi).
- le problème : le json {"OnOff":-30} (avec la valeur -30 pour exemple) doit être publié sur le topic racine <nom défini pour le relais dans la page Action>, soit "SSR1" en ce qui me concerne, pour désactiver le relais pendant 30 minutes en l'occurence. Le message MQTT complet est donc : SSR1={"OnOff":-30}
Cette procédure fonctionne très bien avec MQTT Explorer :
Mais à partir de Jeedom, j'ai un souci.
Je crée un équipement sous MQTT Manager, puis dans le topic racine, je déclare donc SSR1.
Dans les commandes, je crée une action où je défini la commande dans un champ de type message : json::{"OnOff":-30}
Mais tel quel, cela ne fonctionne pas car le paramètre "topic" ne peut être vide.
En l’occurrence, le message réellement envoyé est SSR1/<topic vide>= {"OnOff":-30}, ce qui n'est pas ce qu'attends Solar_Router (v9.01).
J'ai essayé en utilisant des caractères génériques pour le topic (/, *, #, ~,...), mais évidemment cela ne fonctionne pas.
Je vais regarder dans le code source du coup, mais y'a t-il un moyen pour que le logiciel Solar_Router interprète une commande MQTT sous la forme <topic racine>/<topic>/commande ?
Merci d'avance !