comment avoir un retour de l'état d'un dash button sous domoticz

Photographie ultra-rapide, pilotage d'imprimante 3D ou de CNC, fabrication de bière.... Enfin tout ce que le Raspberry peut gérer trouvera sa place dans cette rubrique

Modérateur : Francois

dou_dou_69
Messages : 30
Enregistré le : sam. 23 juil. 2022 11:36

comment avoir un retour de l'état d'un dash button sous domoticz

Message par dou_dou_69 » jeu. 28 juil. 2022 19:21

bonjour,

J'aimerais savoir comment avoir un retour vers domoticz de l'état de la batterie d'un dash button portatif? exemple un bouton de commande d'une fonction télérupteur sous domoticz.

domi
Administrateur
Messages : 3176
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: comment avoir un retour de l'état d'un dash button sous domoticz

Message par domi » jeu. 28 juil. 2022 20:55

Bonjour,

La question n'est pas coté Domoticz, c'est le Dash Button qui doit être prévu pour retourner l'état de sa batterie.
Tous mes "devices" qui prennent en charge l'envoi de l'état de la batterie sont automatiquement mis à jour dans Domoticz sans configuration particulière de ma part, juste à ajouter le device.
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.

dou_dou_69
Messages : 30
Enregistré le : sam. 23 juil. 2022 11:36

Re: comment avoir un retour de l'état d'un dash button sous domoticz

Message par dou_dou_69 » ven. 29 juil. 2022 10:35

d'accord

ils sont DIY ces devices ou ils sont achetés?

car moi ce qui m’intéresserait c'est des équipements DIY avec un esp8266 si possible.

domi
Administrateur
Messages : 3176
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: comment avoir un retour de l'état d'un dash button sous domoticz

Message par domi » ven. 29 juil. 2022 13:20

Mes devices qui retournent l'état de la batterie sont des devices achetés (Device sous protocole Zigbee). Pour ceux DIY, il faut le prévoir (matériel et logiciel), mais pour ma part, je ne le fait pas, car aucun de ceux que j'ai fait ont une fonction sensible.
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.

dou_dou_69
Messages : 30
Enregistré le : sam. 23 juil. 2022 11:36

Re: comment avoir un retour de l'état d'un dash button sous domoticz

Message par dou_dou_69 » dim. 7 août 2022 18:39

Bonjour,

J'ai réussi a ce que le programme dans l'arduino me calcul le pourcentage de batterie testant via l'entrée analogique A0.

Maintenant de doit trouver le moyen de l'envoyer à domoticz ( ça devrait être jouable en trouvant comment lui envoyer un message par MQTT avec le pourcentage et l'index du matériel), mais il faudrait après lui faire afficher et prendre en compte pour qu'il puisse m'envoyer un email quand le pourcentage passe sous une limlite.

domi
Administrateur
Messages : 3176
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: comment avoir un retour de l'état d'un dash button sous domoticz

Message par domi » dim. 7 août 2022 22:09

Bonjour,
il suffit simplement d'envoyer la valeur de "Battery" dans la chaine MQTT, en plus de la commande "0" (éteint) ou 1 (Allumer).

exemple :

Code : Tout sélectionner

mosquitto_pub -h localhost -u USER-P PASSWD-t "domoticz/in" -m '{ "idx" : 380, "nvalue" : 1, "Battery" : 125}'
Pour cela, dans le code il faut ajouter sous :

Code : Tout sélectionner

doc["idx"]      = idxDevice;
  doc["value"]    = value;
la ligne contenant la valeur de la batterie :

Code : Tout sélectionner

doc["Battery"]      = VALEUR_BATTERIES;
Les valeurs de Batteries vont de "0" (vide), à la valeur 255 (pleine)
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.

dou_dou_69
Messages : 30
Enregistré le : sam. 23 juil. 2022 11:36

Re: comment avoir un retour de l'état d'un dash button sous domoticz

Message par dou_dou_69 » lun. 8 août 2022 17:33

bonjour,

Dans ma fonction de calcul de batterie

String svaluebatt = String (P);
SendData ("udevice", idxpourcentagebatt, 0, svaluebatt); //pour m'afficher le pourcentage de batterie calculé dans un capteur virtuel de pourcentage. Ca ca marche mais m'oblige a créer un capteur en plus.

// J'aimerai visualiser la batterie dans la colonne prevu pour à coté de celle de RSSI (pas sur du nom de celle-ci).
// rajout de ces lignes pour l'inclure dans les données du device dans la colonne suivant celle rssi

int batterie = map(P, 0, 100, 0, 255);
String battery = String (batterie);
SendData ("udevice", idxdevicebatt, 0, battery);

dans la création json de ma librairie traitant du message MQTT
DynamicJsonDocument doc(256);
doc["command"] = command;
doc["idx"] = idxDevice;
doc["nvalue"] = nvalue;
doc["svalue"] = svalue;
doc["battery"] = battery; // ligne rajouter - à la compilation il me dit "battery was not declared in this scope

le fait de rajouter un doc, ne devrai-je pas changer le 256 prévu surement pour 4 docs en autres prevu pour 5, et ce 5eme doc est-ce un int ou string car j'ai lu quelque part que le senddata est SendData (string, int, int, string)

domi
Administrateur
Messages : 3176
Enregistré le : mer. 17 sept. 2014 18:12
Localisation : Seine et Marne

Re: comment avoir un retour de l'état d'un dash button sous domoticz

Message par domi » lun. 8 août 2022 21:09

La valeur "Battery" doit être un entier entre 0 et 255, il faut respecter ce qu'attend domoticz.
j'ai lu quelque part que le senddata est SendData (string, int, int, string)
SendData est une fonction utilisateur, c'est donc à vous de la définir dans votre code. Elle est adapté en fonction du besoin, vous pouvez également lui changer son nom, rien n'est défini ailleurs que dans votre code.
Voir dans le code la fonction comment elle est déclarée, et la modifier en conséquence.
Passionné de Raspberry, Arduino, ESP8266, ESP32, et objets connectés :
Spécial débutant, concevez vous-même votre domotique DIY : https://www.youtube.com/c/DomoticDIY
Conception d'une station météo DIY, et envoi des infos à votre Domotique.

dou_dou_69
Messages : 30
Enregistré le : sam. 23 juil. 2022 11:36

Re: comment avoir un retour de l'état d'un dash button sous domoticz

Message par dou_dou_69 » mar. 9 août 2022 13:46

voici ma fonction

void SendDatabatt (String command, int idxDevice, int nvalue, String svalue, int battery) {
// On vérifie la connexion MQTT
verif_connexion_mqtt();

// Création de la chaine JSON6
DynamicJsonDocument doc(256);
// On renseigne les variables.
doc["command"] = command;
doc["idx"] = idxDevice;
doc["nvalue"] = nvalue;
doc["svalue"] = svalue;

doc["battery"] = battery;

// On sérialise la variable JSON
String messageOut;
serializeJson(doc, messageOut);
char* topicOut = "domoticz/in";
// Convertion du message en Char pour envoi dans les Log Domoticz.
char messageChar[messageOut.length()+1];
messageOut.toCharArray(messageChar,messageOut.length()+1);
client.publish(topicOut, messageChar);
// Pause de 1 secondes
delay(1000);
Serial.println("\t -> Message envoyé à Domoticz");

mon programme

int batterie = map(P, 0, 100, 0, 255);

SendDatabatt ("udevice", idxdevicebatt, 0, 0, battery);

Serial.print ("\t batterie "); Serial.print(P); Serial.println("%");

comment intégrer la valeur de batterie calculée dans la message pour que domoticz le prenne en compte dans la ligne du device?

dou_dou_69
Messages : 30
Enregistré le : sam. 23 juil. 2022 11:36

Re: comment avoir un retour de l'état d'un dash button sous domoticz

Message par dou_dou_69 » mar. 9 août 2022 17:29

j'ai envoyé l'idx du device dont je veut afficher le niveau de batterie et son niveau de batterie (que j'ai mappé de 0-100 à 0-255 comme tu me l'a dit) via json mais rien ne s'affiche dans domoticz

Répondre

Retourner vers « Les applications spécialisées du Raspberry Pi »