L'idée est bonne, mais il ne sera pas possible de l'implémenter de cette façon, puisqu'il faut concaténer l'ensemble des (autres) bits qui sont à zéro dans ton exemple.
On doit donc faire cette opération à un endroit où on dispose de l'ensemble des inters/sélecteurs utiles à un index. Le plus simple, c'est de le faire dans Domoticz, avec un script en dzVents.
Pour commencer, on va créer des dispositifs cachés pour récupérer les 2 index qui nous intéressent :
Code : Tout sélectionner
{
"Clim config 4": {"topic": "/home/alsavo/config/4",
"type": "243", "subtype": "31", "switchtype": "0",
"options": {"Custom":"1;Bitmap"},
"visible": false,
"mapping":{"item":"value"},
"set": {"command":"plugins/MqttMapper/alsavoSet.sh 4 #"}
},
"Clim config 16": {"topic": "/home/alsavo/config/16",
"type": "243", "subtype": "31", "switchtype": "0",
"options": {"Custom":"1;Bitmap"},
"visible": false,
"mapping":{"item":"value"},
"set": {"command":"plugins/MqttMapper/alsavoSet.sh 16 #"}
}
}
Concernant la commande a exécuter, ce doit être la même que pour les dispositifs précédents, on va faire la concaténation dans Domoticz.
Note : un truc que je n'ai pas compris, c'est le contenu des topics MQTT. Est-ce qu'ils contiennent du JSON (genre "value": 12345), ou simplement la valeur (genre 12345) ? Dans le premier cas, il faut utiliser la syntaxe "Item":"value", dans le second "item":"".
On peut aller dans l'onglet "Configuration" > "Dispositifs" pour vérifier que les 2 nouveaux dispositifs sont bien nommés "Clim config 4" et "Clim config 16". Si ce n'est pas le cas, cliquer sur le crayon à papier en bout de ligne pour corriger (selon les cas, Domoticz ajoute (ou non) le nom du plugin devant le nom du dispositif).
Ensuite, on va créer les 2 inters et les 3 sélecteurs virtuels ("ventilo auto" ne sert à rien, il n'a qu'une valeur possible
Pour ça, vérifier qu'on a bine un hardware ("Configuration" > "Matériel") de type "Dummy (Does nothing, use for virtual switches only)". Si ce n'est pas le cas, le créer.
Cliquer ensuite sur le bouton "Créer un capteur virtuel", saisir "Pompe clim" et choisir le type "Interrupteur". Valider. Recommencer avec "Horloge clim" et toujours "Interrupteur".
Créer ensuite 3 sélecteurs nommés "Mode clim", "Ventilateur chaud", "Ventilateur froid" de type "Interrupteur sélecteur".
Aller dans l'onglet "Interrupteurs" et cliquer sur "Modifier" du widget "Mode clim".
Sélectionner "Menu de sélection".
Cocher "Cacher le niveau Off".
Dans la partie "Niveaux du sélecteur", localiser la ligne "10 - Niveau 1" et cliquer sur le crayon en fin de ligne. Saisir "Chauffage" et cliquer "Renommer". Faire de même sur la ligne 20 qui devient "Auto" et 30 "Rafraîchissement".
Cliquer sur "Sauvegarder".
On peut vérifier que "Mode clim" montre bien une liste déroulante avec "Chauffage/Auto/Rafraîchissement".
Faire pareil avec "Ventilateur froid" et "Ventilateur chaud" et les item 10 "Silencieux", 20 "Faible" et 30 "Fort".
Avec ça, on a déjà récupéré les 2 configurations MQTT, et crée les interrupteurs et sélecteurs virtuels.
Reste à écrire la lecture des configuration et leur écriture. Je tente ça ce soir ...
Comme j'ai un doute sur la façon de coder l'index 16, je veux bien récupérer quelques valeurs lues par MqttMapper et la signification externe des modes de ventilation. Pour ça, on peut aller dans l'onglet "Configuration" > "Dispositifs", repérer la ligne "Clim config 16" et relever la valeur de la colonne "Données" après avoir défini différentes vitesses de ventilateur de façon externe.