Je suis entrain de migrer de Jeedom vers Home Assistant, mais je bute sur un sujet.
J’utilise AirSend pour mes volets roulants et stores. Pas de problème pour l’intégration
AirSend avec HAS. Petit soucis avec le retour d’état si j’ai bien compris ça n’est pas possible avec AirSend.
Par contre sous Jeedom il y a un plugin Jeeconnect, qui me permettais de fermer un ou plusieurs Volets et qui me donnais un pseudo retour d’état.
Si volet Ouvert et que j’appuyait sur le bouton fermé il me retournait 100 si complètement fermé ou 50 si j’avais presser le bouton stop avant clôture totale.
C’était super pratique car je savais si mes volets étaient ouverts ou fermés.
je ne cherche pas a savoir le % d’ouverture ou fermeture, juste si ouvert ( complet ou moitié).
Y a t’il une telle intégration disponible ou un moyen de mettre ce type d’information disponible avec les icônes qui vont bien
Tu pourrais avoir des solutions, en utilisant sur une carte le on click qui viendrait lors d’un click passer changer le pourcentage dans un sensor. Et si tu clique sur un bouton stop ça le met à 50%.
Mais fleet pas fiable. Car pour définir que si tu clique sur le bouton c’est que tu veux fermer, alors comment tu sais au départ qu’il est ouvert ?
Et si tu fait un changement avec un bouton physique, comment HA le détecte.
Simuler du retour d’état, même sur Jeedom a toujours était un truc pas fiable.
Pass sur de tout comprendre mais je vais tenter d’approfondir
par contre AirSend et Jeedom Connect / JeeConnect sur smartphone c’est super fiable.
on sait exactement si les volets sont ouverts ou fermées a 100 ou 50 %.
Je n’ai jamais eu de surprise avec…
C’est pour cela que je cherche le même type de mécanisme a mettre en place sur Home Assistant.
En fait j’ai l’impression que c’est avec le mode ecoute permanente que Jeedom peut avoir l’info pour tes interrupteurs physiques non ? je ne comprenait pas comment tu pouvais avoir l’info physique sans retour d’état
Jeeconnect c’est plus ni moins qu’une application mobile comme peut l’être Companion chez HA.
Donc ca veut dire que l’intelligence était coté plugin Airsend. L’integration Airsend venant directement du fabricant, je suppose qu’il a intégré les mêmes fonctionnalité coté HA et coté Jeedom non ?
Deja si ton volet est fermé, que HA le voit fermé et que tu l’ouvre avec HA ca met bien a jour l’état pour indiquer ouvert ?
Argh bonne question je n’ai malheureusement pas d’attributs pour mes volets, donc en actionnant les boutons mes volets montent ou descendent sans plus. j’utilise l’intégration AirSend.
Bon ça y est j’ai compris le principe pas simple quand même, j’ai maintenant le statut ouvert ou fermé qui s’affiche en fonction de la position du volet
Par contre, tu as juste le state open ou close sur l’entité ?
Je ne vois pas dans ton volet un attribut qui indique la position (même si ce serait que 0 ou 100).
Si je regarde le code de l’integration Airsend, le fait de stopper le volet qui positionne à 50% l’attribut current_cover_position semble bien exister dans l’intégration comme pour Jeedom
Mais par contre cet attribut n’est disponible que pour certains volets qui sont considéré comme avec position :
Les rtype 4098 et 4099 sont considéré comme volet. Si ton device est de type cover.xxxx alors il est bien considéré comme un volet.
Par contre, seul le rtype 4099 supporte le current_cover_position qui passe à 50% quand tu stoppe.
J’ai regardé le code du plugin Jeedom et ils semblent pas faire cette différence entre 4098 et 4099 sur la position, donc ca pourrait expliqué une différence de comportement si le rtype de ton volet est 4098.
Tu peux ouvrir une issue sur le github de l’integration pour voir ce qui est possible d’être fait dans ton cas, sinon peut etre que tu peux t’en sortir avec un template cover
Hello, merci pour ces informations et recherche, je n’aurais pas le temps ce week-end pour avancer. je m’y remet la semaine prochaine. je posterais mon avancement.
Je viens quand même de jeter un oeil dans mon fichier AirSend exporte du cloud, mes Volets et Stores sont tous type: 4098
Le temps étant pas terrible je me suis remis a mes Volets
Mais la je galère grave, a ne plus rien comprendre. J’ai monter un système de test
j’ai installé AirSend pas de soucis, j’ai récupéré le fichier .yaml
Les volets sont bien visible.
Je peux actionner Up/Stop/Down et ça fonctionne, mais le status du volet reste toujours Fermé
Par contre j’ai modifié type 4098 par 4099, et la je vois bien l’icône du volet être mis a jour en fonction de up/stop/down.
Avec AirSend impossible de trouver la solution pour un retour d’état. Que le volet soit ouvert ou fermé j’ai toujours le status Fermé. Aussi bien avec type 4098 ou 4099.
J’ai alors installé Shutter Card et Row pour tester.
avec type 4098, ça fonctionne mais le status reste Fermé.
avec type 4099, ça fonctionne également et le status est mis a jour, Ouvert / 50% / Fermé
et l’icône Shutter Row est aussi mise a jour.
Pour le changement de type j’édite le fichier AirSend.yaml et je change le type 4098 par 4099 te je redémarre HACS.
voila si ça peut aider, pas sur que mon hack soit très secure ou fiable. mais pour le moment ça a l’air de fonctionner.
avez vous une autre idée ou une autre configuration ?
bon j’ai modifier le code du fichier ‹ cover.py › je me suis focaliser sur 0 " Fermé" ou 100 « Ouvert »
et la ça marche, j’arrive a avoir mes statuts correct
bon il faut que je fasse des tests mais ça m’a l’air assé concluant.
si ça intéresse voici le bout de code, il me reste a fixer si je Stop a 50% pour le moment le message c’est « Open - 50% » mais l’icône reste Open…
@property
def is_closed(self):
"""Return if the cover is closed."""
# If the cover supports position reporting
if self._device.is_cover_with_position:
# If position is 0, it's closed
if self._attr_current_cover_position == 0:
self._closed = True
# If position is 100, it's fully open
elif self._attr_current_cover_position == 100:
self._closed = False
else:
# Partially open, assume it's open
self._closed = False
else:
# Fallback to existing logic if no position is available
if self._closed is None:
self._closed = True # Default to closed if no information is available
if self._device.is_async and self._hass:
component = self._hass.states.get(self.entity_id)
if component is not None:
if component.state in ['open', 'on', 'up']:
self._closed = False # Cover is open
else:
self._closed = True # Cover is closed
else:
_LOGGER.warning(f"State for {self.entity_id} could not be fetched, maintaining previous state.")
return self._closed
Bon j’ai retravailler tout ça maintenant c’est fonctionnel.
mais je ne comprends pas vraiment pourquoi je suis le seul a avoir ce problème.
c’est peut être que mon module AirSend n’est pas tout jeune, il a 2 ou 3 ans.
bon voila ce que j’ai t modifier dans mon environment:
def set_cover_position(self, **kwargs):
"""Move the cover to a specific position."""
position = int(kwargs["position"]) # Target position from Home Assistant
note = {"method": 1, "type": 9, "value": position} # Send command to move to that position
if self._device.transfer(note, self.entity_id) == True:
# Update internal position to reflect the current state
self._attr_current_cover_position = position
# Set state based on position
if position == 100:
self._closed = False # Fully open
elif position == 0:
self._closed = True # Fully closed
else:
self._closed = False # Partially open (anything between 1 and 99%)
# Notify Home Assistant of the new state
self.schedule_update_ha_state()
def stop_cover(self, **kwargs):
"""Stop the cover at its current position."""
note = {"method": 1, "type": 0, "value": "STOP"}
if self._device.transfer(note, self.entity_id) == True:
# Assume the position is halfway if stop is pressed
self._attr_current_cover_position = 50
# Set state to partially open
self._closed = False
# Notify Home Assistant of the new state
self.schedule_update_ha_state()
@property
def is_closed(self):
"""Return True if the cover is fully closed."""
# Cover is closed only if position is exactly 0%
if self._attr_current_cover_position is not None:
return self._attr_current_cover_position == 0
return self._closed # Fallback if no position is available
ce qui donne:
Complètement Ouvert : quand le cover est a 100% - Statut: Open - icône HACS ouvert
Complètement Fermé: quand le cover est a 0% - Statut: Close - icône HACS fermé
Partiellement Ouvert: quand on appui sur Stop - Status 50% - icône HACS mi-ouvert
Je l’ai rajouté mais j’ai un message d’erreur dans HA « Échec de l’exécution de l’action button/press. Expecting value: line 1 column 1 (char 0) » l’avez-vous également ?