Tuya : Intégration chauffage et climatiseur

Qu’est ce que la fonctionnalité « Index export » ? :slight_smile:

Salut @pierre-gilles,

Il s’agit de l’index d’énergie réinjectée sur le réseau, soit le surplus de production solaire qui est renvoyé. Côté Tuya ça correspond au reverse energy total.

« Export » pour export vers le réseau.

Ok, j’ai mis un commentaire du coup :slight_smile:

C’est fait @pierre-gilles, merci à toi !!

Salut @GBoulvin :waving_hand:

J’ai avancé sur plusieurs devices Tuya (jusqu’à la PR10) et j’aimerais qu’on refasse une passe de validation complète, en local ET en cloud, avant merge. J’ai poussé une image Docker de test en réutilisant la précédente pour que tu puisse directement chain comme si tu passais à la nouvelle version depuis ta db de test actuelle (hésite pas à la relancer un coup avant de mettre à jour l’image pour refresh les états et comparer) :

:spouting_whale: Image de test : terdious/gladys:tuya-smart-meter

Peux-tu vérifier les points suivants (coche local + cloud à chaque fois) ? J’indique à côté ce qui fonctionne de mon côté.

# Device à tester Local Cloud Chez moi (Terdious)
Base Ce qui marchait déjà (PR1/PR4) — cf. ton rapport précédent :white_check_mark: ma prise fonctionne toujours parfaitement (protocole v3.3)
PR5 (#2470) Smart Meter :warning: je n’en ai pas
PR7 (#2476) LSC Power Plug :warning: je n’en ai pas
PR8 (#2478) Thermostat pilote :white_check_mark: mes 2 thermostats fonctionnent bien (v3.5)
PR9 (#2591) Climatiseur :white_check_mark: mes clims Airton OK (2 en v3.3, 1 en v3.5)
PR10 (#2594) Sonnette vidéo (réglages) :warning: je n’en ai pas

Précisions PR10 (sonnette) : pour l’instant seulement les 5 réglages on/off (détection mouvement, enregistrement, retournement image, LED, OSD). Point à surveiller : le poll local de ces sonnettes P2P a tendance à timeout — si c’est ton cas, dis-le moi, ça confirmera qu’on reste en cloud pour ce type de device. La sonnerie et la caméra viendront en PR10-Bis.

Merci beaucoup pour les tests :folded_hands:

Pour le coup @pierre-gilles, côté Tuya, si tu peux, ce serait review ces 3 PR.

La PR6-Bis est apparue pendant que je codais le device sonnette pour GBoulvin, il s’est avéré qu’on a trouvé comment conserver une connexion permanente pour avoir les infos live en local.

Je suis donc prêt sur :

Toutes les suivantes jusque PR10 sont prêtes également, il ne manque plus que les Tests pour les PR7 et PR10. PR8 et PR9 sont testées de mon côtés avec au moins 2 types de device correspondants chacun.

PR5 ok et mergé, tu peux mettre à jour la PR6 avec master?

PR6 mise à jour :wink:

@GBoulvin (On va en arriver à croire que c’est du harcélement … je suis désolé ^^ tu me dis surtout si c’est trop :face_with_peeking_eye:),

Après les essais demandés dans le post Tuya : Intégration chauffage et climatiseur - #85 par Terdious, pourrais-tu poursuivre avec la sonnette sur des essais complémentaires ?
Je t’ai concocté (avec ma Glaude bien sûr ^^) une petite vue de diagnostic pour tenter de récupérer tout ce qu’il faut en One Shot ^^ sur ta sonnette (et voir d’autres au passage comme tes camera si tu y arrives)
Pour cette seconde passe, cette fois ce sera une nouvelle image Docker que je te fournis (tu peux tout à fait repartir de la même base de données, pas besoin de repartir de zéro) : docker pull terdious/gladys:tuya-diag-video-doorbell-support.

Ce qu’il y a de nouveau : une page « Diagnostic » dans l’intégration Tuya

Cette image embarque une page temporaire de diagnostic, uniquement destinée au debug (elle sera retirée avant la PR finale — ne t’étonne pas de son côté « outil de labo »). Tu la trouveras directement dans Intégrations → Tuya → Diagnostic (menu de gauche), ou via le bouton « Diagnostic » sur la carte d’un appareil.

Ce que tu y verras (voir mes captures) :

  • Un sélecteur d’appareil en haut : « Tous les appareils » pour le flux global, ou un appareil précis. Quand un appareil est sélectionné, une ligne d’état s’affiche (protocole, IP, connexion persistante, état dégradé).
  • « Valeurs des fonctionnalités (en direct) » : 3 sections — Prises en charge, Non prises en charge et Ignorées — avec pour chaque fonctionnalité son code Tuya, son DP local, son chemin cloud, la valeur brute reçue de l’appareil (avec sa provenance : push local / cloud, et l’heure), et la valeur Gladys transformée. Chaque valeur brute a son petit bouton copier, et le bouton « Copier le contenu » copie toute la carte en Markdown.
  • « Événements en direct » : le journal du service en temps réel (connexions, DPS poussés par l’appareil avec leur payload brut, lectures, commandes, erreurs), filtrable par niveau et par texte, avec pause et « Copier le contenu » également.

Ce qu’on attend de toi avec ta sonnette :bellhop_bell:

Le but : capturer les payloads bruts que ta sonnette envoie quand elle sonne ou détecte un mouvement — c’est ce qui nous manque pour implémenter l’affichage des snapshots photo dans Gladys.

  1. Ouvre la page Diagnostic et sélectionne ta sonnette dans la liste.
  2. Appuie sur le bouton de la sonnette (vraie sonnerie), et si possible déclenche aussi une détection de mouvement en passant devant.
  3. Laisse la page ouverte quelques instants, puis :
  • « Copier le contenu » de la carte Événements en direct → colle le résultat ici (on cherche notamment les événements push_dps avec les DP 136 (doorbell_active), 154 (doorbell_pic) et 115 (movement_detect_pic)) ;
  • « Copier le contenu » de la carte Valeurs des fonctionnalités → colle-le aussi (les sections Non prises en charge / Ignorées devraient montrer les valeurs brutes des DP photo).
  1. Vérifie au passage que la sonnerie remonte dans Gladys : cette image ajoute une fonctionnalité « Doorbell » (bouton) sur ta sonnette — après une vraie sonnerie, tu devrais voir un événement dans son historique, et pouvoir l’utiliser comme déclencheur de scène. Dis-nous si ça sonne « fantôme » (déclenchement sans appui) ou si un appui ne remonte pas.

:warning: Ta sonnette étant sur batterie, elle dort la plupart du temps : c’est normal si elle apparaît déconnectée entre deux événements. L’important est de sonner/passer devant pendant que la page est ouverte.

Si tu as un doute sur quoi copier : dans le doute, copie tout :grinning_face_with_smiling_eyes: Les payloads photo ressemblent à de longues chaînes en base64 — c’est exactement ce qu’on cherche (elles ne contiennent pas ta clé locale, uniquement des références temporaires chiffrées).

Et bien sûr, la page marche pour tous tes appareils Tuya — si tu vois un comportement bizarre sur les prises/autres devices des PRs précédentes, un coup de « Copier le contenu » et on aura tout ce qu’il faut pour investiguer.
N’hésite pas à essayer avec tes caméras également et limite tu peux coller les contenus dans les issues correspondantes :wink:

Merci beaucoup par avance, je reste dispo au besoin, je scruterais le forum régulièrement ! :folded_hands:

Quelques images :





Sur la page d’accueil, la première fois, il faudrait un prompt disant que le service n’est pas configuré et qu’on doit se rendre sur la page « configuration » comme dans les autres intégrations.

Pour la PR5, Smart Meter, tout OK (local et cloud). Par contre, une fois sélectionné en local, le message « proposer de nouvelles fonctions » apparaît(d’ailleurs, je trouverais plus juste « fonctionnalités » :wink:

PR7, LSC Power Plug en 3.5, tout ok (local et cloud). Le ‹ child Lock › est arrivé !

La PR10, la sonnette est bien détectée en cloud mais ne poll pas en local. Je teste l’image dédiée de suite.

Capture d’écran du dispositif Tuya — Visiophone Wifi

  • sélecteur : tuya-bf0e59548489fcb4ea62of — identifiant_externe : tuya:bf0e59548489fcb4ea62of
  • type_de_dispositif : sonnette_vidéo — identifiant_produit : i5e3a4qxcsthszin
  • protocole : - — ip : - — substitution_locale : 0
  • persistant : aucun — dégradé : non

Fonctionnalités prises en charge

Fonctionnalité Code DP local Chemin cloud Entrée brute (origine) Brute à Valeur Gladys Dernier changement
LED d’état indicateur_basique 101 Indicateur (dp 101) [spec.fn, spec.st, model, shadow] true (cloud) 2026-07-05T21:12:48.132Z 1 2026-07-05T21:12:17.898Z
Image retournée basique_retournement 103 Vision Retourner (dp 103) [spec.fn, spec.st, model, shadow] false (cloud) 2026-07-05T21:12:48.132Z 0 2026-07-05T21:12:17.898Z
Affichage à l’écran basique_osd 104 Filigrane OSD (dp 104) [spec.fn, spec.st, model, shadow] true (cloud) 2026-07-05T21:12:48.132Z 1 2026-07-05T21:12:17.898Z
Détection de mouvement interrupteur_mouvement 134 Alerte de Mouvement (dp 134) [spec.fn, spec.st, model, shadow] true (cloud) 2026-07-05T21:12:48.132Z 1 2026-07-05T21:12:17.898Z
Sonnette sonnette_active 136 Sonnette Active (dp 136) [spec.st, model, shadow] (cloud) 2026-07-05T21:12:48.132Z null -
Enregistrement interrupteur_enregistrement 150 Interrupteur d’Enregistrement (dp 150) [spec.fn, spec.st, model, shadow] true (cloud) 2026-07-05T21:12:48.132Z 1 2026-07-05T21:12:17.898Z

Non pris en charge (brut uniquement)

Fonctionnalité Code DP local Chemin cloud Entrée brute (origine) Brute à Valeur Gladys Dernier changement

Ignoré

Fonctionnalité Code DP local Chemin cloud Entrée brute (origine) Brute à Valeur Gladys Dernier changement
état_formatage_sd état_formatage_sd - État Formaté (dp 117) [spec.st, model, shadow] -20000 (cloud) 2026-07-05T21:12:48.132Z - -
statut_sd statut_sd - Statut de la Carte Mémoire (dp 110) [spec.st, model, shadow] 5 (cloud) 2026-07-05T21:12:48.132Z - -
sensibilité_mouvement sensibilité_mouvement - Sensibilité de Mouvement (dp 106) [spec.fn, spec.st, model, shadow] 1 (cloud) 2026-07-05T21:12:48.132Z - -
mode_enregistrement mode_enregistrement - Mode d’Enregistrement (dp 151) [spec.fn, spec.st, model, shadow] 2 (cloud) 2026-07-05T21:12:48.132Z - -
vision_nocturne_basique vision_nocturne_basique - Vision Nocturne (dp 108) [spec.fn, spec.st, model, shadow] 0 (cloud) 2026-07-05T21:12:48.132Z - -
volume_dispositif_basique volume_dispositif_basique - Contrôle du Volume du Dispositif (dp 160) [spec.fn, spec.st, model, shadow] 10 (cloud) 2026-07-05T21:12:48.132Z - -
stockage_sd stockage_sd - Obtenir la Capacité de la Carte Mémoire (dp 109) [spec.st, model, shadow] 100 0 100 (cloud) 2026-07-05T21:12:48.132Z
formatage_sd formatage_sd - Formater la Carte Mémoire (dp 111) [spec.fn, spec.st, model, shadow] false (cloud) 2026-07-05T21:12:48.132Z - -
image_sonnette image_sonnette - Quelqu’un sonne à la sonnette (dp 154) [spec.st, model, shadow] (cloud) 2026-07-05T21:12:48.132Z - -
image_détection_mouvement image_détection_mouvement - Mouvement Détecté (dp 115) [spec.st, model, shadow] eyJidWNrZXQiOiJ0eS1ldS1zdG9yYWdlMzAtcGljIiwiZmlsZXMiOltbIi8xNzYwNzMtMTYxODY5NDE2LXBwMDFiZjAwZWI2YTFhOTZjZDUwL2RldGVjdC8xNzgzMjg1ODQzLmpwZWc/cGFyYW09YUJyTFFoc1RvZVBqMzdWMHVCOWo5MHpoNVZzOEx2UGhSTHpZTklERGtjQT0iLCIiXV0sInYiOiIzLjAifQ== (cloud) 2026-07-05T21:12:48.132Z - -
2026-07-05T21:12:48.133Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll terminé {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:12:17.897Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll terminé {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:11:47.907Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll terminé {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:11:17.901Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll terminé {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:10:47.852Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll terminé {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:10:17.896Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll terminé {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:09:47.927Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll terminé {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:09:17.892Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll terminé {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:08:51.632Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll terminé {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":1,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:08:50.566Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[set_sent\] Commande envoyée via cloud (motion_switch)
2026-07-05T21:08:50.324Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[set_command\] Commande interrupteur_mouvement -> true {"command":"motion_switch","value":1,"transformed":true}
2026-07-05T21:08:47.924Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll terminé {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:08:22.928Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll terminé {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:07:47.891Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll terminé {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:07:17.935Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll terminé {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:06:47.920Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll terminé {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:06:17.900Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll terminé {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:05:47.847Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll terminé {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:05:32.328Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll terminé {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":5,"cloud_missing":0,"fallback":"none"}

Ci-dessus donc le copier-coller :wink:

J’ai activé via Gladys la détection de mouvement. C’est bien activé dans l’app et sur l’appareil.

Par contre, le tableau de bord dit :

Après détection et appui sur le bouton…

Le mode local ne veut pas fonctionner (en 3.1 : Échec de la lecture locale : Invalid local poll response: parse data error, en 3.3 : Échec de la lecture locale : Local poll timeout)

La sonnette n’est pas sur batterie (c’est un ancien modèle, alimenté en 5V)

J’ai refais un test. Appui et detection de mouvement à 23h30 et le retour dans Gladys s’est fait plus d’une minute plus tard :

2026-07-05T21:33:17.949Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:32:47.924Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:32:17.922Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:31:47.914Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:31:17.919Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:30:47.923Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:30:17.943Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:29:47.917Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:29:17.919Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:28:47.922Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:28:17.951Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:27:47.924Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:27:17.918Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:26:47.924Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:26:17.918Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:25:47.926Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:25:17.929Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:24:47.947Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:24:17.916Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:23:47.913Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:23:17.935Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:22:47.915Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:22:17.915Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:21:47.916Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:21:17.906Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:20:47.922Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:20:17.940Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:19:47.996Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:19:17.910Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:18:47.909Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:18:17.902Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:17:47.913Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:17:17.938Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:16:47.906Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:16:18.078Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:15:47.934Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:15:17.906Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:14:47.922Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:14:17.930Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:13:47.906Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:13:18.067Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:12:48.133Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:12:17.897Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:11:47.907Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:11:17.901Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:10:47.852Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:10:17.896Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:09:47.927Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:09:17.892Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:08:51.632Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":1,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:08:50.566Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[set_sent\] Command sent via cloud (motion_switch)
2026-07-05T21:08:50.324Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[set_command\] Command motion_switch -> true {"command":"motion_switch","value":1,"transformed":true}
2026-07-05T21:08:47.924Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:08:22.928Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:07:47.891Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:07:17.935Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:06:47.920Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:06:17.900Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:05:47.847Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":0,"cloud_missing":0,"fallback":"none"}
2026-07-05T21:05:32.328Z \[debug\] \[Visiophone Wifi (bf0e59548489fcb4ea62of)\] \[poll_summary\] Poll completed {"mode":"cloud","local_handled":0,"local_changed":0,"cloud_handled":6,"cloud_changed":5,"cloud_missing":0,"fallback":"none"}

Tuya device snapshot — Visiophone Wifi

  • selector: tuya-bf0e59548489fcb4ea62of — external_id: tuya:bf0e59548489fcb4ea62of
  • device_type: video-doorbell — product_id: i5e3a4qxcsthszin
  • protocol: - — ip: - — local_override: 0
  • persistent: none — degraded: no

Supported features

Feature Code Local DP Cloud path Raw input (origin) Raw at Gladys value Last change
Status LED basic_indicator 101 Indicator (dp 101) [spec.fn, spec.st, model, shadow] true (cloud) 2026-07-05T21:33:47.927Z 1 2026-07-05T21:31:47.915Z
Image flip basic_flip 103 Vision Flip (dp 103) [spec.fn, spec.st, model, shadow] false (cloud) 2026-07-05T21:33:47.927Z 0 2026-07-05T21:31:47.916Z
On-screen display basic_osd 104 OSD Watermark (dp 104) [spec.fn, spec.st, model, shadow] true (cloud) 2026-07-05T21:33:47.927Z 1 2026-07-05T21:31:47.916Z
Motion detection motion_switch 134 Motion Alert (dp 134) [spec.fn, spec.st, model, shadow] true (cloud) 2026-07-05T21:33:47.927Z 1 2026-07-05T21:31:47.917Z
Doorbell doorbell_active 136 Doorbell Active (dp 136) [spec.st, model, shadow] (cloud) 2026-07-05T21:33:47.927Z null -
Recording record_switch 150 Record Switch (dp 150) [spec.fn, spec.st, model, shadow] true (cloud) 2026-07-05T21:33:47.927Z 1 2026-07-05T21:31:47.917Z

Unsupported (raw only)

Feature Code Local DP Cloud path Raw input (origin) Raw at Gladys value Last change

Ignored

Feature Code Local DP Cloud path Raw input (origin) Raw at Gladys value Last change
sd_format_state sd_format_state - Formatted State (dp 117) [spec.st, model, shadow] -20000 (cloud) 2026-07-05T21:33:47.927Z - -
sd_status sd_status - Memory Card Status (dp 110) [spec.st, model, shadow] 5 (cloud) 2026-07-05T21:33:47.927Z - -
motion_sensitivity motion_sensitivity - Motion Sensitivity (dp 106) [spec.fn, spec.st, model, shadow] 1 (cloud) 2026-07-05T21:33:47.927Z - -
record_mode record_mode - Recording Mode (dp 151) [spec.fn, spec.st, model, shadow] 2 (cloud) 2026-07-05T21:33:47.927Z - -
basic_nightvision basic_nightvision - Night Vision (dp 108) [spec.fn, spec.st, model, shadow] 0 (cloud) 2026-07-05T21:33:47.927Z - -
basic_device_volume basic_device_volume - Device Volume Control (dp 160) [spec.fn, spec.st, model, shadow] 10 (cloud) 2026-07-05T21:33:47.927Z - -
sd_storge sd_storge - Get Memory Card Capacity (dp 109) [spec.st, model, shadow] 100 0 100 (cloud) 2026-07-05T21:33:47.927Z
sd_format sd_format - Format Memory Card (dp 111) [spec.fn, spec.st, model, shadow] false (cloud) 2026-07-05T21:33:47.927Z - -
doorbell_pic doorbell_pic - Someone ring doorbell (dp 154) [spec.st, model, shadow] (cloud) 2026-07-05T21:33:47.927Z - -
movement_detect_pic movement_detect_pic - Motion Detected (dp 115) [spec.st, model, shadow] eyJidWNrZXQiOiJ0eS1ldS1zdG9yYWdlMzAtcGljIiwiZmlsZXMiOltbIi8xNzYwNzMtMTYxODY5NDE2LXBwMDFiZjAwZWI2YTFhOTZjZDUwL2RldGVjdC8xNzgzMjg3MDA5LmpwZWc/cGFyYW09U3dnelJjQXYzMVhOelpvV2Z0ald5aHM1ckJVN09EcXhTbWpmQld5MlpUdz0iLCIiXV0sInYiOiIzLjAifQ== (cloud) 2026-07-05T21:33:47.927Z - -

Voilà, en espérant que cela a pu aider…

Dans tous le cas, Merci @Terdious pour ton investissement dans le projet !

Salut @GBoulvin,

Un énorme merci pour cette passe de tests​:folded_hands:.

Voici le traitement de chacun de tes points :

1. Message « service non configuré » sur la page d’accueil :white_check_mark: corrigé Tu avais l’œil : le message n’existait que sur la page Configuration, la page Appareils (celle d’atterrissage) ne donnait aucune piste. C’est corrigé dans la PR6 : elle affiche maintenant le même type d’avertissement que la page Découverte, avec un lien direct vers la page de configuration Tuya. Tu le verras dans la prochaine image.

2. Smart Meter : « proposer de nouvelles fonctions » qui apparaît en local :magnifying_glass_tilted_left: besoin de toi pour trancher Deux choses distinctes ici :

  • Le libellé : corrigé, le bouton dit maintenant « Proposer des fonctionnalités » — le but était de raccourcir ce texte pour un affichage plus sympa sur des formats d’écran plus petit. Mais en effet, au besoin ça fera partie d’une revue UI/UX. Restons cohérent :wink:
  • Le fond : en mode local, ce bouton apparaît quand la lecture des DP remonte des DPS ni gérés ni volontairement ignorés — donc soit ton compteur expose des DPS que le cloud n’a pas (et le bouton fait alors exactement son travail : nous inviter à les ajouter !), soit on a un souci de correspondance. Pour trancher, peux-tu simplement cliquer sur le bouton et créer l’issue ? Elle liste précisément les DPS inconnus. Encore mieux si tu es sur l’image diagnostic : sélectionne le Smart Meter sur la page Diagnostic et « Copier le contenu » de la carte Valeurs des fonctionnalités — la section Non prises en charge nous montrera ces DPS avec leurs valeurs. Selon le résultat, on complètera le mapping du compteur. Tu peux également faire les 2, ouvrir l’issue et coller les diagnostic en suite dans un message complémentaire.

3. PR7 (LSC Power Plug 3.5) :tada: Rien à ajouter : local + cloud + child lock validés — grâce à toi, la PR7 est maintenant fonctionnellement validée de bout en bout. Merci !