Retour d'état interrupteurs volets roulants Tuya + Positionnement

Mon problème

Je cherche à obtenir le retour d’état de mes volets roulants actionnés avec des interrupteurs Tuya et idéalement pouvoir paramétrer un positionnement des volets avec retour d’état

Ma configuration


System Health

version core-2021.9.6
installation_type Home Assistant Supervised
dev false
hassio true
docker true
user root
virtualenv false
python_version 3.9.6
os_name Linux
os_version 5.10.60-v7l+
arch armv7l
timezone Europe/Paris
Home Assistant Community Store
GitHub API ok
Github API Calls Remaining 4925
Installed Version 1.15.2
Stage running
Available Repositories 880
Installed Repositories 4
Home Assistant Cloud
logged_in false
can_reach_cert_server ok
can_reach_cloud_auth ok
can_reach_cloud ok
Home Assistant Supervisor
host_os Raspbian GNU/Linux 10 (buster)
update_channel stable
supervisor_version supervisor-2021.09.0
docker_version 20.10.8
disk_total 469.0 GB
disk_used 11.2 GB
healthy true
supported failed to load: Unsupported
supervisor_api ok
version_api ok
installed_addons Terminal & SSH (9.1.3), File editor (5.3.3), Log Viewer (0.11.1), Grafana (7.2.0), Samba share (9.5.1), InfluxDB (4.2.1)
Lovelace
dashboards 1
resources 7
views 8
mode storage
___

Au départ je passais par l’application Tuya des intégrations d’HA.
J’ai voulu passer par une intégration disponible sous HACS : Local Tuya. Histoire de ne plus être dépendant d’internet et que tout soit sur mon réseau local.
J’ai pu récupéré les infos nécessaires et ça fonctionne.

Cependant, lorsque j’ouvre mon volet, je vois bien le statut « opening » dans MQTT Explorer et au bout de 90 secondes, mon VR passe en mode stop avec un statut « unknown » dans MQTT

Du coup je ne connais pas le statut de mon VR.

Ce que je voudrai connaitre le statut du VR pour être sur qu’il soit ouvert…

Et par la suite voir comment paramétrer un positionnement (qui n’est pas natif dans ces interrupteurs)

Et pour finir mettre le tout sur un joli dashboard…

Avez-vous des idées ?

Merciiiiii

Salut

Avant avec l’application tuya tu avais un retour d’état ? Réel ou calculé ?

Passe directement par

ça donne l’ouverture en 0% (sans infos de position issue du volet, donc retour virtuel) et les cartes sont dispos aussi

Hello Pulpy,

Des fois j’avais un retour d’état mais des fois non… Je ne connais pas la différence entre le retour d’état réel ou calculé…
Tu peux m’en dire plus ?
Si je ferme le vr directement avec l’interrupteur physique, l’état du cloud tuya ne change pas
Pour le retour d’état pour virer le statut unknown j’ai essayé de tricher avec nodered et mqtt de cette manière :

image

[{"id":"5db3ebc373164b68","type":"mqtt in","z":"c0e31a39.825d08","name":"Bureau","topic":"homeassistant/cover/bureau/state","qos":"2","datatype":"auto","broker":"fad177fdeed57a80","nl":false,"rap":true,"rh":0,"x":70,"y":780,"wires":[["ff90c6b258643303"]]},{"id":"472b7676abeeed80","type":"function","z":"c0e31a39.825d08","name":"","func":"msg.payload=\"open\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":440,"y":780,"wires":[["d433d5b4b7f34a89"]]},{"id":"ff90c6b258643303","type":"delay","z":"c0e31a39.825d08","name":"delay 95s","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"x":270,"y":780,"wires":[["472b7676abeeed80"]]},{"id":"d433d5b4b7f34a89","type":"mqtt out","z":"c0e31a39.825d08","name":"Bureau","topic":"homeassistant/cover/bureau/state","qos":"1","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"fad177fdeed57a80","x":610,"y":780,"wires":[]},{"id":"fad177fdeed57a80","type":"mqtt-broker","name":"MQTT broker","broker":"192.168.1.223","port":"1883","clientid":"","usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"sessionExpiry":""}]

Ca modifie bien la valeur state dans mqtt à open mais pas dans ha…

Merci pour le cover time based. Tu peux lui dire le temps qu’il met pour descendre et pour remonter pour avoir des positionnements ? Ca serait cool !

Il y a 2 principes :

  • soit le volet ou la commandes dispose d’un mécanisme (capteur de position, compteur de tours etc ) et quelque soit le méthode pilotage la position réelle est toujours celle connue dans la/les applis
  • soit c’est calculé logiciellement : quand tu ouvres avec l’appli, la position est déduite comme ouverte… mais du coup si tu ouvres le volet par autre moyen (manuellement) la position dans l’appli n’est plus celle dans la réalité.

a lire que ça marchait pas tout le temps, à mon avis tu es dans le deuxième cas. Et la suggestion de cover time based est pertinente

Oui en gros : si passer de 0% à 100% prends 20 secondes et que tu donnes cette valeur de la config, alors tu pourra demander 25% et au bout de 5 secondes, ça s’arrêtera
ça marche presque parfaitement : se placer à 5% à partir de 0 et à 5% à partir de 100 ne donne pas les 2 même positions.

Ok je vais tester et je te tiens au courant.
On a voir si le cover time based m’aide tant dans les pourcentages que dans le retour d’état ! merciiii

1 « J'aime »

@Pulpy je viens d’essayer.
Je ne comprends pas comment lier l’entité créée à mon entité existente ?

Voici mon configuraion.yaml sur la partie cover time based :

cover:
  - platform: cover_time_based
    devices:
      bureau:
       name: Bureau
       travelling_time_down: 24
       travelling_time_up: 25
       open_switch_entity_id: switch.cover_bureau_up
       close_switch_entity_id: switch.cover_bureau_down
       aliases:
        - bureau

Parce que du coup ça me créé une autre entité cover.bureau_2 qui n’a rien à voir avec la première…

ça me semble pas anormal:

  • tu la nommes toi même cover.bureau…
  • elle se renomme _2 car il y a déjà probablement cover.bureau tout court

Du coup, il faut voir ce que contient cover.bureau pour se faire une véritable idée

Oui le comportement est cohérent.
Maintenant comment voir ce que contient cover.bureau ?

image

image

Je ne sais pas quoi t’envoyer d’autre…

Et là, la position est stupide… Le store est ouvert à 100%…

Mais toujours dans cet état :

image

Donc cover.bureau c’est ton intégration tuya …

C’est bureau ou bureau_2 ?
Attention, utiliser time base cover ne va pas corriger les défauts de tuya… c’est indépendant, d’où la création d’un 2ème volet.
Avec l’intégration complété et la carte associée, tu auras un retour plus clair comme ça
shutter-card

cover.bureau c’est bureau → intégration tuya local
cover.bureau_2 c’est bureau_2 → intégration cover time based

Si je créé un deuxième volet (bureau_2), comment faut-il faire pour qu’il commande le premier (bureau_1) ?

C’est ce point qui m’échappe…

La bonne méthode c’est pas de garder les 2… mais de remplacer l’un par l’autre.
Quand tu auras un volet_2 fonctionnel, supprime le 1 et renomme le _2 …
Puisque ce sont 2 volets tous les 2, alors le remplacement dans les autres endroits sera transparent

Oui j’entends bien mais dans ce volet2 que je renommerai en 1 par la suite, comment faire pour qu’il commande mon VR qui n’est pilotable que par tuya via l’interrupteur wifi

En fait je ne sais pas comment le configurer dans ha autrement que par tuya ou local tuya pour le commander

cover.xxxx c’est pas pareil que switch.xxxx
Le cover de tuya est à enlever (ou à ne pas utiliser) mais il faut garder le switch
Tu l’as d’ailleurs fait correctement dans ta config de _2, ça appelle les swichs directement

Oui mais ces switchs n’apparaissent pas dans les entités de ha.
Je comprends plus rien là…

Comment ces switchs peuvent être reliés à l’interrupteur physique en wifi de tuya ?

Du coup peut-être c’est pour ça que ça marche pas… Si c’est le résultat d’un copié / collé ça explique le souci…
Donc il faut revenir à ce que présente l’intégration tuya, des volets ? des switchs ? les 2 ?..
Dans le pire des cas, le open de 2 devra appeler le open de 1 etc

Ce sont bien des volets.
Et comment on fait pour que le open du 2 appelle l’ouverture de l’open du 1 ?
Et dans cover based time il faut que je change
open_switch_entity_id: En open_cover_entity_id;

?

Tu peux faire la liste des entités tuya pour voir ce que ça propose ?

Ca te suffit ?