Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

manage garage as a cover instead of switch (without koleos docs) (#197) #199

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

fmartinou
Copy link
Owner

  • Addition of a new sensor class to manage garage to manage garage as a cover
  • Evolution to manage garage as cover and add garage_door_horizontal that was not managed before.
  • Update MessageHandler.py
  • Managemnent two sensors sun and thermoPack Tysense Outdoor
  • Add management of automatic doors
  • Sensor name used in MQTT instead of Mosquito

* Addition of a new sensor class to manage garage to manage garage as a cover
* Evolution to manage garage as cover and add garage_door_horizontal that was not managed before.
* Update MessageHandler.py
* Managemnent two sensors sun and thermoPack Tysense Outdoor
* Add management of automatic doors
* Sensor name used in MQTT instead of Mosquito

---------

Co-authored-by: koleos6 <41859744+koleos6@users.noreply.github.com>
@fmartinou fmartinou linked an issue Jun 12, 2024 that may be closed by this pull request
@romainboucher
Copy link

@fmartinou testé sur mon instance de home assistant ✅

@aure-olivier
Copy link

Bonjour à tous,

Pour ma part je viens de tester l'image docker fmartinou/tydom2mqtt:feature__183 et c'est pour moi un grand succès 🙏, mes portes de garages Novoferm Novomatic E.S. 423 (équipées de ce module X3D https://www.aidegar.fr/centrale-de-commande-carte-electronique-porte-de-garage-novoferm/684-carte-electronique-delta-dore.html) sont enfin reconnues comme il faut (c'est à dire avec les instructions ON/OFF/STOP) et non plus avec l'instruction TOGGLE qui ne marchait pas du tout auparavant dans mon cas.

@fmartinou, cette PR pourra-t-elle être mergée prochainement et releasée dans la version officielle 😇 ?

@BlacKTM1190
Copy link
Contributor

Hello
@aure-olivier et @romainboucher, avez-vous d'autres equipements DD ? et n'avez-vous pas rencontré d'effets de bord ?
J'ai testé cette feature environ 2 semaines fin juin/début juillet et elle me mettait le brin sur mes volets...

@aure-olivier
Copy link

@BlacKTM1190 ,

Sur l'instance que j'utilise avec cette version custom de tydom2mqtt, je n'ai que mes 2 portes de garage - car c'est uniquement cela que je voulais tester et c'était voulu.

Pour info, je suis tout nouveau dans le monde HomeAssistant, et je tourne actuellement sous Homebridge avec https://github.com/mgcrea/homebridge-tydom, qui fonctionne très bien mais qui souffre du même soucis que l'objet de cette PR à savoir la non disponibilité de mes portes de garage.

Pour la petite histoire, il se trouve que j'ai 2 box Tydom:

  • 1 Tydom 2.0, pour lequel j'ai homebridge-tydom qui contient environ 70 accessoires X3D (17 volets, 29 éclairages, 22 détecteurs de contact, 1 alarme)
  • 1 Tydom Home, pour lequel j'ai fraichement configuré HASS-OS avec tydom2mqtt en version custom (fmartinou/tydom2mqtt:feature__183)

Vu le nombre de scénarios et réglages que j'ai fais dans Apple Homekit, je n'ai pas trop envie de risquer de tout casser en passant tydom2mqtt sur ma Tydom 2.0.

Je ne suis pas certains que 2 clients vers la Tydom 2.0 peuvent fonctionner en parallèle (homebridge-tydom + tydom2mqtt pointant sur la même IP).

Bref, je réfléchis comment je peux vous aider sans tout péter 😋

@BlacKTM1190
Copy link
Contributor

Thanks @aure-olivier pour la clarification et le soutien.

je suis tout nouveau dans le monde HomeAssistant

Je ne suis même pas nouveau, je n'utilise que Jeedom 😁

Je ne suis pas certains que 2 clients vers la Tydom 2.0 peuvent fonctionner en parallèle

Quasi sur que non et j'ai même lu, à une autre époque, d'un expert DD sur le community Jeedom, qu'il vaut mieux ne pas trop sollicité les Tydom 2 qui gardent (priorise ?) l'exclusivité de la connexion pour l'application.

Mais j'ai la même tendance à n'avoir que des devices sur l'app Tydom et tout scénariser sur Jeedom.

Une petite fenêtre se profile ce we (depuis des mois, entre refonte de mon infra, travaux, vacances,...).
Je remonte un lab tout propre (broker mqtt et tydom2mqtt), surveille les side effects et fait un retour dimanche 🤞

@aure-olivier
Copy link

Hello,

J'ai quand même pensé à un truc que j'ai testé, c'est à dire associé l'un de mes volets à 2 box Tydom en même temps, et ça fonctionne bien. Je ne vois pas de soucis sur la remontée d'état ou la commande de volet depuis Apple Home que ce soit en passant par l'accessoire Tydom2MQTT ou Homebridge-Tydom.

Voici ce que j'ai:

                     +-----------+                        
                     | Volet X3D |                        
                     +---+-----+-+                        
                         |     |                          
                         |     |                          
     +------------+------+     +-----+------------+       
     |            |                  |            |       
     | Tydom Home |                  | Tydom 2.0  |       
     +------+-----+                  +------+-----+       
            |                               |             
            |                               |             
+-----------+---------+         +-----------+------------+
|   Home Assistant    |         |      Homebridge        |
|                     |         |                        |
|     Tydom2MQTT      |         |    homebridge-tydom    |
+----------+----------+         +------------+-----------+
           |                                 |            
           |                                 |            
           |      +------------------+       |            
           +------+  Apple Homekit   +-------+            
                  +------------------+                          

@BlacKTM1190
Copy link
Contributor

BlacKTM1190 commented Sep 3, 2024

Hello
Très beau schema 😉
Je viens de finaliser mes tests.
Effectivement la porte de garage fonctionne correctement (pub et sub).
Pas de side effect sur les volets, comme je me suis fourvoyé plus haut, mais sur les lumières.
Je n'ai cependant que des switch pas de dimmable.
Les sub fonctionnent correctement (la remonté d'état est cohérente sur MQTT lorsqu'on actionne depuis les boutons physique ou l'app Tydom) mais les pub ne répondent plus (light/tydom/deviceid_endpointid/set_levelCmd on ou off ou 0 ou 1 ou 100).
@aure-olivier Pourrais-tu confirmer en associant une lumière sur le même schéma ?

Copy link
Contributor

@BlacKTM1190 BlacKTM1190 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello
I think you might not call light class functions with cover_id and this is why pub on lights stuk.

@@ -162,7 +187,7 @@ async def on_message(self, client, topic, payload, qos, properties):
get_id = (topic.split("/"))[2]
device_id = (get_id.split("_"))[0]
endpoint_id = (get_id.split("_"))[1]
await Light.put_level_cmd(tydom_client=self.tydom, device_id=device_id, light_id=endpoint_id,
await Light.put_level_cmd(tydom_client=self.tydom, device_id=device_id, cover_id=endpoint_id,
Copy link
Contributor

@BlacKTM1190 BlacKTM1190 Sep 4, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this part is causing side effect for lights and should not be change.

@@ -174,8 +199,18 @@ async def on_message(self, client, topic, payload, qos, properties):
get_id = (topic.split("/"))[2]
device_id = (get_id.split("_"))[0]
endpoint_id = (get_id.split("_"))[1]
await Light.put_level(tydom_client=self.tydom, device_id=device_id, light_id=endpoint_id,
await Light.put_level(tydom_client=self.tydom, device_id=device_id, cover_id=endpoint_id,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one too

@aure-olivier
Copy link

Hello,

@BlacKTM1190, je confirme totalement ce que tu disais plus haut.
J'ai associé 2 lumières (classique et dimmable) et la publication ne fonctionne pas mais provoque une erreur dans les logs:


TypeError: Light.put_level_cmd() got an unexpected keyword argument 'cover_id'
2024-09-04 21:16:46,937 - mqtt.MqttClient      - INFO    - set_level message received (topic=light/tydom/1725476410_1725476410/set_level, message=80)
2024-09-04 21:16:46,937 - asyncio              - ERROR   - Task exception was never retrieved
future: <Task finished name='Task-205' coro=<MqttClient.on_message() done, defined at /app/mqtt/MqttClient.py:79> exception=TypeError("Light.put_level() got an unexpected keyword argument 'cover_id'")>
Traceback (most recent call last):
  File "/app/mqtt/MqttClient.py", line 202, in on_message
    await Light.put_level(tydom_client=self.tydom, device_id=device_id, cover_id=endpoint_id,

En effet "cover_id" est utilisé à tords j'ai l'impression.

Par contre la remontée du status (on/off/level) est OK dans HomeKit, suite à une commande depuis l'application Tydom.

@BlacKTM1190
Copy link
Contributor

BlacKTM1190 commented Sep 8, 2024

Hello
Après avoir bien galéré (j'ai du trop forcer hier soir...), je vous confirme qu'en apportant le fix sur les 2 lignes suggéré plus haut, tout est fonctionnel.

Je ne sais pas comment on fait pour publier une image sur le hub docker, j'ai donc procédé comme ceci :
Monté un container mosquitto de test.
Monté un container tydom2mqtt:feature__183 en bindant le dossier app.
Apporté le fix dans le fichier MqttClient.py du dossier bindé et démarré le container précédent.

Sans Jeedom ou HA cablé sur ce broker de test, j'ai passé tous les pub par MQTT Explorer (sensible à la casse 🫤) :
Fermer : set_garageLevelCmd OFF ou set_garageLevel 0
Ouvrir : set_garageLevelCmd ON ou set_garageLevel 100

Ce qui n'est pas très "propre", et là ou j'ai galéré, c'est qu'il y a un L majuscule à Level et que le sub n'est pas current_garageLevel mais current_position.
Je ne sais pas s'il est possible de faire un PR sur un PR, je te laisse donc compiler tout ca @fmartinou 😉

Au passage, il y a du y avoir une coquille sur la dernière release de la master car il n'y a plus de readme...
Pas certains qu'en mergeant cette feature sur la master permettrait de le remettre, mais je veux bien aider le cas échéant.

@Dulcow
Copy link

Dulcow commented Sep 10, 2024

Hello,

Je viens de connecter mon Novoferm 423 via Tydom et je tombe sur le problème de la porte de garage pas reconnue (just un light switch). Quelqu'un sait comment je peux installer l'addon dans une version spécifique sur Home Assistant ? Ou si je peux aller modifier des fichiers quelque part a la mano ?

Thanks,

D.

@BlacKTM1190
Copy link
Contributor

Hello
Je n'utilise pas l'addon (ni même HA d'ailleurs mais j'ai quand meme une instance sous docker), je ne pourrais donc te dire pour celui-ci.
Mais tous les équipements light, cover et garage sont opérationnels sur mon instance HA, en utilisant la feature#183 et remontés nativement par la découverte du broker.
Il faut cependant corriger les 2 lignes en faisant comme je l'ai décrit plus haut : en ajoutant à ton yaml du container tydom2mqtt une variable pour binder le dossier, du style :

volumes:
    - '/volume1/docker/tydom2mqtt/app:/app'

@romainboucher
Copy link

#213

@BlacKTM1190 j'ai commit tes retours sur cette branche.
En attente de merge par @fmartinou :)

@romainboucher
Copy link

Si vous souhaitez tester la correction, une image docker est dispo ici avec tous les fix :
https://github.com/romainboucher/tydom2mqtt/pkgs/container/tydom2mqtt

Pour ceux qui utilisent hassio :
https://github.com/romainboucher/hassio-addons

@BlacKTM1190 @aure-olivier

@BlacKTM1190
Copy link
Contributor

Merci @romainboucher 👏 ✌️
Un peu taquet cette semaine mais je teste ton image asap.

@Dulcow
Copy link

Dulcow commented Oct 9, 2024

J'ai testé et ca fonctionne sur HASSIO pour la commande la porte ✔️

La commande de la lumière ne fonctionne pas par contre.

D.

Apply BlacKTM1190 suggest and fix light command
@BlacKTM1190
Copy link
Contributor

BlacKTM1190 commented Oct 12, 2024

Hello
Après l'echec sur la 3.5.3, je viens de switcher de image: 'fmartinou/tydom2mqtt:3.5.3' à la tienne @romainboucher, image: 'ghcr.io/romainboucher/tydom2mqtt:master', et tout fonctionne parfaitement ✔️
Dommage que le principal n'est pas été mergé...
D'autant que j'en ai encore fait la pub/sub sur la Community Jeedom et que la frontend manque...
@fmartinou on manque tous de temps mais ce projet, que tu portes seul, ne doit pas t'incomber, comme un fardeau.
N'hesites pas à me solliciter en privé, ou n'importe, même si je suis une quille en docker, travis ou autre ghcr (que Synology Container (mes instances) ne cautionne pas), je m'autoformerai volontier pour te délester et co-gérer/soutenir/fairemonmieux.
Cheers 🍻

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Manage garage as a cover instead of switch
5 participants