Intégration du RF Player dans HA et Domoticz

Bonjour,
N’ayant pour l’instant que des sondes Oregon, je n’utilise pas le plugin RFPlayer mais directement Domoticz. Je vais quand même essayer de vous aider. Tout d’abord, pour installer un plugin python dans Domoticz, il suffit effectivement de le copier dans le répertoire ainsi: domoticz/plugins/UnRepertoire/plugin.py. Après avoir redémarré Domoticz, vous devez le voir dans la liste des materiels ce qui est visiblement bien le cas chez vous.

Par contre, le langage python est un langage interprété, il n’a pas besoin d’être compilé. La ligne de commande que vous lancez tente d’exécuter le plugin « en dehors » de Domoticz. L’erreur que vous voyez est donc tout à fait normale.

Je vous suggère plutôt d’aller voir dans les logs de domoticz s’il n’y a pas d’erreur lié au plugin RFPlayer. Ensuite, encore une fois, je n’ai jamais utilisé le plugin mais je ne suis pas sûr que l’ajout manuel d’interrupteur se fasse par ce bouton (en fait, ça m’étonnerait beaucoup, j’ai développé plusieurs plugins et vois pas comment on pourrait faire ça). Je pense plutôt que l’ajout de dispositif d’envoi ce fait via la page de configuration du Materiel.

Cordialement et bon courage.

1 « J'aime »

Bonjour,

Merci pour votre aide.
Pour l’ajout manuel cela fonctionne bien avec le drivers « ZiBlue RFPlayer USB » et sur mon premier Raspberry PI équipé de Domoticz et du RFXtrx433E.
Je regarde le Log.

Il semblerait que le pb vient du plugin python. Les drivers natifs fonctionnent.

Bonjour,
Avec le code natif de Domoticz, effectivement, l’ajout d’un interrupteur se fait par le bouton Ajout Manuel mais il semblerait que cela fonctionne mal voir pas du tout d’après ce que j’ai pu lire sur les forums. Je n’ai pas de quoi tester mais j’ai regardé le code de Domoticz et effectivement, il me semble que le développement n’a pas été fini, notamment sur la configuration d’un interrupteur. Après, sur un mal entendu, ça peut marcher.
Pour le plugin, encore une fois, je ne l’ai pas testé mais la configuration d’un interrupteur ne peut pas se faire par ce bouton car un plugin python ne peut pas ajouter une interface de configuration comme ça. La seule interface de configuration dans un plugin est la page de configuration du plugin (Dans Configuration/Materiel et en sélectionnant le RFPlayer).
Si vous parvenez à faire fonctionner vos interrupteurs via le code natif de Domoticz, c’est parfait. Mais si il y a bien un problème, essayez de le configurer dans la page de configuration du plugin (en regardant le code, j’ai vu qu’il y avait un champ « Manual Create devices », ça se passe par là)
Cordialement

Bonjour Damien et merci.

Quels bugs sont corrigés ?
Il m’a tjrs manqué 2 choses sur mon gestionnaire de chauffage calybox320, sous domoticz :

  • pouvoir repasser sur la programmation horaire propre au gestionnaire ( et non les modes permanents , par exemple « chauffage », ou « mode eco/nuit » ou « absence »)

  • pouvoir contrôler les 2 zones de chauffage séparément

Aussi, Dès que je renommais le multi level switch, je perdais tout et devait le re-cree

Voir : Overlapping des zones pour commande Delta Dore - Calybox 320 - X2D · Issue #55 · sasu-drooz/Domoticz-Rfplayer · GitHub

Je suis dispo pour aider dans la mesure de mes possibilités !

Merci par avance.

RezzA

Salut Rezza,

Les info sont dans le readme : Edit: Daafunky, 2019. Fixed device edit/rename, X2D up/down shutter infortype 11, command builder now use ZIA IDs. Works well on Domoticz Version: 2021.1 (build 13240)

Voici en détail ce que j’avais résolu :

Intégrer l’utilisation des ID rfplayer (A1, B16) en parallèle des ID appareil (123, 119, ou 2128786043), ça posait problème pour les volets X2D dont j’avais fait l’apprentissage/association avec l’appli rfplayer java. Ca permet aussi d’utiliser la commande PARROT si besoin…

if str(Options['id'])[0].isdigit() : fulltextid = " ID "+ Options['id']
else : fulltextid = " " + Options['id']

Régler mon problème d’ajout d’appareil non reconnu (infotype0 et infotype1 pour prise chacon et télécommande DiO), je recevais le log « Error while decoding Infotype0 frame », à cause d’une valeur dans DOptions à LevelOffHidden:undefined. J’ai donc ajouté ceci pour vérifier que la valeur recherchée « protocol » soit bien présente dans le tableau « DOptions ».

if "protocol" in DOptions :

Merci.

j’ai essayé de remplacer mon plugin.py par le tien et j’ai eu l’erreur suivante :

(RFplayer) failed to load ‹ plugin.py ›, Python Path used was ‹ :/usr/lib/python37.zip:/usr/lib/python3.7:/usr/lib/python3.7/lib-dynload:/usr/local/lib/python3.7/dist-packages:/usr/lib/python3/dist-packages:/usr/lib/python3.7/dist-packages ›.

Rezza, as-tu passé Domoticz en mode béta ?
plus d’info sur le forum easydomoticz.com

De mon coté j’ai une configuration qui tourne parfaitement depuis presque 2 ans, Domoticz sur raspberry pi4, avec un RF Player en usb. Je commande 21 équipements Chacon DiO X2D…

Bonjour Damien,
oui, en beta bien sur, avec la version docker dz officielle.
mon plug in RF-Player, en version précédente, fonctionne lui parfaitement.

Je vois dans ton message d’erreur python 3.7, je suis en Python 2.7.16… je fais une mise à jour pour tester.

Bonjour,

as-tu pu testé en changeant de version de python ?
Merci

Bonsoir j’ai pas mal de soucis avec le plugin que ce soit en stable ou en beta

Bonjour Damien,
Je teste votre code depuis hier suite à pas mal de soucis avec le code original.
Par contre je rencontre les mêmes problèmes pour l’intégration de détecteurs de mouvement VISONIC powercode 868.
Ils sont reconnus d’après les logs mais l’ajour ne se fait pas. Je situe les lignes ou se trouve le problème mais on dirait qu’une partie de code n’est pas exécutée (ligne 751, lorsque le device n’existe pas encore dans la base) pourtant les condition pour entrer dans le if sont réunies à priori

j’ai tout mis à jour sur mon raspberry (apt update et apt full-upgrade) mais c’est encore en python 2.7.16…

Difficile pour moi de tester je n’ai pas d’équipement en VISONIC

Rebonjour
J’ai décidément des fonctionnements tres aleatoires. Alors que jusqu’à hier soir je pouvais de nouveau ajouter des détecteurs Visonic (sans trop savoir pourquoi d’ailleurs), depuis un restart du plugin hier soir j’ai :

2021-07-06 09:53:23.211 Error: RFPlayer: (RFPlayer) 'onHeartbeat' failed 'NameError':'name 'SerialConn' is not defined'.
2021-07-06 09:53:23.211 Error: RFPlayer: (RFPlayer) ----> Line 336 in '/home/pi/domoticz/plugins/Domoticz-Rfplayer/plugin.py', function onHeartbeat
2021-07-06 09:53:23.211 Error: RFPlayer: (RFPlayer) ----> Line 306 in '/home/pi/domoticz/plugins/Domoticz-Rfplayer/plugin.py', function onHeartbeat 

J’en perd mon latin (ou mon python…)
PS : Je suis aussi en Python 3.7.3

Le problème a disparu, c’est tombé en marche. Mais je commence à comprendre. J4avais aussi un erreur dans la fonction onStart noyée au milieu du reste qui indiquait au démarrage du plugin qu’un ne pouvait pas s’ajouter car Domoticz ne l’acceptait pas. Une fois Domoticz acceptant les nouveaux dispositifs, tout rentre dans l’ordre.
Pourquoi Domoticz doit il etre dans ce mode pour se connecter au port USB du RFplayer ?

Bonjour Damien,

cela pourrait-il aider ?

Bonjour,
J’ai reçu mes volets roulants et j’ai pu sans souci les coupler avec mon RFPlayer. Les commandes ON et OFF permettent respectivement d’ouvrir et de fermer le volet mais je n’ai pas trouvé de commande « stop ». C’est pas trop grave mais si ce n’est pas possible, je trouve ça un peu dommage…
Je vais donc enfin pouvoir m’attaquer à l’intégration dans Domoticz. J’ai commencé à regarder et c’est une partie du code de Domoticz qui mériterait un refactoring conséquent. On sent l’héritage de la conception centrée sur le RFXCom… En gros, l’ajout manuel de switch (comme c’est appelé dans Domoticz) propose une longue liste de protocoles avec des paramètres potentiellement différents pour chaque protocole. Cette liste n’est pas filtrée en fonction du périphérique choisi (et est donc la même quelque soit le périphérique). Donc, si le périphérique choisi ne gère pas le protocole choisi, la commande est simplement ignorée sans erreur. De même, à un protocole correspond un jeu de paramètre quelque soit le périphérique choisi. Or, le RFXCom n’a pas besoin des mêmes paramètres que le RFPlayer pour un même protocole…
Tout ça pour dire qu’il va falloir un refactoring relativement important pour pouvoir géré proprement le RFPlayer nativement dans Domoticz et que cela est soumis à l’approbation du développeur principal. Après, c’est pas si compliqué que ça, je vais m’y coller dès que j’aurais un peu de temps libre.

Cordialement.

Bonjour,
J’ai fait le dev pour intégrer les switchs dans Domoticz. Ça fonctionne avec des volets RTS mais je n’ai pas le matériel pour tester le reste. Je suis pas super fier de mon code, c’est vraiment à minima mais ça fait le job et je n’ai pas beaucoup de temps libre en ce moment pour faire mieux. Ça devrait marcher pour envoyer des commandes dans tous les protocoles supportés par RFPlayer sauf Edisio (aux bugs près). J’ai fait un pull request mais je pense que le développeur principale de Domoticz est en vacances. Il me demandera peut-être des modifs du coup, je ne sais pas quand le dev sera dispo dans la version beta de Domoticz. Probablement pas avant le mois d’Août. Pour la version stable, j’imagine pas avant avril ou mai 2022.
Cordialement.

Hello au topic. Y’a t’il des progrès concernant le plugin HA ?