Bon, je suis arrivé à faire ce que je voulais, mais j'ai dû modifier le code.
Il y a peut-être un autre moyen, je serais curieux de le connaitre.
Je vais donner ci-dessous la combine et mes modifs de code (c'est sale, je sais, c'est juste pour donner un point de départ.)
Je commence par le code, j'ai modifié les fichiers Rtl433.* et DomoticzHardware.* qui se trouve dans le dossier hardware du projet :
Je le répète, le code est laid, mais il fait le job, il y a surement des problèmes si vous avez des
switchs de type
selector ou autre déjà dans votre config.
Compiler
Arrêter le service domoticz : sudo service domoticz stop
Tuer la tâche rtl_433 avec, par exemple, : sudo pkill -f rtl_433
Vérifier avec htop que domoticz et rtl_433 ne tourne plus
copier le nouveau binaire
Relancer le service
Ajout du nouveau device:
Après avoir paramétré rtl_433 (comme vu dans l'épisode précédent) et détecter la télécommande, modifier le type en
selector et ajouter 5 niveaux NA A B C D correspondant aux lignes de boutons de la télécommande et ayant respectivement les valeurs 0 10 20 30 40

- selector settings.png (46.61 Kio) Consulté 4308 fois
On doit obtenir un switch comme ça : (peut-être au départ avec la valeur NA affiché (?))

- apparenceselector.png (11.25 Kio) Consulté 4308 fois
Ajouter un script dzvents pour gérer les changements de status du nouveau device;
par exemple (12 est l'identifant du device chez moi, il faut mettre celui du nouveau device)
Code : Tout sélectionner
return {
on = {
devices = { 12 }
},
logging = {
level = domoticz.LOG_DEBUG,
marker = 'REMOTE',
},
execute = function(domoticz, device)
if device.nValue > 0 then
if (device.state == 'Off') or (device.state == '') then
device.state = 'On'
domoticz.log('------ BOUTON ' .. device.level .. ' Ordre ' .. device.state, domoticz.LOG_INFO)
end
else
device.state = 'Off'
domoticz.log('------ BOUTON ' .. device.level .. ' Ordre ' .. device.state, domoticz.LOG_INFO)
end
end
}
Je n'indique pas le thread en RESOLU car c'est un contournement