J'utilise la carte Wemos et le programme vendu par PaTiTan sur mon Domoticz.
Cela fonctionne dans les 2 sens j'envoie et je reçois les ordres et données par Domoticz.
J'ai repris les scripts de TroisSix que j'ai adapté pour correspondre aux commandes du programme de PaTiTan.
Ci joints les 2 scripts modifiés qui fonctionnent chez moi pour mon Intex SPA SB-H20 .
En partant de mon Domoticz chez moi, j'ai suivi la procédure suivante :
de mémoire, il peut y avoir des oublis désolé:
En pré-requis il faut:
Avoir créé dans le Wemos les bons paramètres de votre ip Raspberry, réseau wifi ...
Il faut avoir installé Python sur le raspberry.
Ensuite: suivre la vidéo Jelle Peters :
https://youtu.be/w7QhsFqBr30
en résumé :
Ouverture d'une session puis depuis la console:
Mise à jour du raspberry pi:
sudo apt-get update && sudo apt-get upgrade
Installation de mosquitto:
sudo apt-get install mosquitto mosquitto-clients
Création de l'utilisateur (ici "mqtt") et du mot de passe.
sudo mosquitto_passwd -c /etc/mosquitto/pwfile mqtt
Mosquitto demande alors le mot de passe choisi et sa confirmation.
Ouverture de la configuration de mosquitto
sudo nano /etc/mosquitto/mosquitto.conf
Ajout des lignes suivante dans la configuration de Mosquitto:
Passage du user mosquitto sans authentification:
allow_anonymous true
Fichier du mot de passe chiffré
password_file /etc/mosquitto/pwfile
Dans nano enregistrer et sortir:
combinaison des touches
control+O puis control+X
Edition du fichier rc.local:
sudo nano /etc/rc.local
Ajout de la ligne de lancement de Mosquitto avant ligne de sortie du script (exit 0)
/usr/sbin/mosquitto -d
Redémarrage du rapsberry
sudo reboot
Installation de paho-mqtt:
sudo install paho-mqtt:
pip3 install paho-mqtt python-etcd
Copier les fichiers dans les répertoires du raspberry:
control.sh (chez moi dans: /home/pi/domoticz/scripts)
Jacuzzi_publish.py (chez moi dans: /home/pi/domoticz/scripts/python)
Jacuzzi_subscribe.py (chez moi dans:/home/pi/domoticz/scripts/python)
Puis dans les fichiers Jacuzzi_subscribe.py et Jacuzzi_publish.py modifié les adresses et utilisateur/mot de passe de l'utilisateur mqtt créé précedement.
Mettre les droits d'exécution sur les scripts:
sudo chmod 744 /home/pi/domoticz/scripts/control.sh
sudo chmod 744 /home/pi/domoticz/scripts/Jacuzzi_publish.py
sudo chmod 744 /home/pi/domoticz/scripts/Jacuzzi_subscribe.py
Aller dans domoticz ajouter le matériel avec les infos suivantes:
nom: mqtt
type: MQTT Client Gateway with LAN interface
Adresse distante: adresse Ip du domotcz
Port: 1883
identifiant: XXX
Mot de passe : XXX
Préfixe du Topic In: domoticz/in
Préfixe du Topic Out: domoticz/out
Il faut ensuite faire comme le post de @TroisSix, ajouter des dispositifs de type Dummy dans Domoticz: boutons (marche/arrêt spa, filtre, bulle, chauffage....) , une sonde de température (température spa), des libellés de texte (wifi, modèle spa...). Puis noter les identifiants idx des boutons, sonde, libellés et les mettre dans le fichier Jacuzzi_subscribe.py pour faire correspondre l'identifiant du dispositif et le message renvoyé via mqtt.
Toujours la commande en édition ...
sudo nano /home/pi/domoticz/scripts/Jacuzzi_subscribe.py
...
Pour les dispositifs dans Domoticz il faut ajouter comme le précise @TroisSix, les commandes dans les boutons
exemple:
bouton filtre/ action on :
script:///home/pi/domoticz/scripts/Jacuzzi_control.sh "FILTER" "ON"
relancer la framboise
sudo reboot
Depuis une console la commande:
sudo python //home/pi/domoticz/scripts/python/Jacuzzi_subscribe.py DEBUG
doit afficher en retour les messages récurrents sur l'état du Wifi du Spa (Wemos) toutes les 2-3 secondes :
exemple chez moi:
pi@raspberrypiDomoA1:~ $ sudo python //home/pi/domoticz/scripts/python/Jacuzzi_subscribe.py DEBUG
(mode DEBUG)
20220907-171029: Connected with result code 0
20220907-171029: - [wifi/state]=offline -upOk
20220907-171038: - [wifi/state]=online -upOk
20220907-171047: - [wifi/rssi]=-77 -upOk
20220907-171048: - [wifi/state]=online -upOk
20220907-171058: - [wifi/state]=online -upOk
....
....
J'espère n'avoir rien oublié c'est un mixte de TroisSix et d'autres posts surement encore des améliorations et choses inutiles mais je fais cela de mémoire, j'ai avancé en fonction des erreurs et des logs.
Je n'ai pas mis en place la programmation de température degré par degré mais juste le mode chauffage marche/arrêt car cela me suffit.
Pour déployer/ copier/ modifier, il vaut mieux utiliser une console Raspberry avec solarWinds (ou Putty) et copier les fichiers avec Filezilla pour gagner du temps (perso. je travaille pas assez sur Linux et je perds du temps avec vi, nano...).
J'ai mis une authentification de lecture en anonyme "allow_anonymous true" par rapport a ce que précise Jelle dans sa vidéo "allow_anonymous false" car chez moi l'authentification ne fonctionnait pas (sans doute un chiffrement TLS incompatible avec ma version mais je m'en fiche).
A la fin c'est vraiment cool de piloter le Spa à distance et de programmer la filtration la nuit ou le jour comme on veut.
Merci à @TroisSix, @PaTiTan, Jelle@YT