Aohzan / ipx800

IPX800 V4 integration for Home-Assistant
Apache License 2.0
20 stars 12 forks source link

Push dimmer value to HA #51

Open Kolia56 opened 4 months ago

Kolia56 commented 4 months ago

Describe the bug Thank you for this integration. It is working very well and speeds up the development process. I'm not too sure whether it is a bug or something missing in ipx800v4 labels. It seems not possible to push dimmer value to HA, however it possible to send dimmer state (on/off). There is some side effect when the user switches on and off as this short video shows it. When it is switched on there is a short time when light is set to minimal value then it is set to the last knwon value, when it is switched off, the dimmer value is greyed out and after some time the bar goes to 0

https://github.com/Aohzan/ipx800/assets/20872098/2ff29aca-3fd0-4dd6-8e49-200cd8fbc2dd

Configuration

ipx800v4:
  - name: IPX800
    host: "xxx.xxx.xxx.xxx"
    api_key: "api_key"
    push_password: aaaaa
    devices:
      # Relays
      - name: Chauffe-eau
        icon: mdi:water-boiler
        type: "relay"
        component: "switch"
        id: 1
      - name: Couloir grenier
        icon: mdi:lightbulb
        type: "relay"
        component: "switch"
        id: 2
      - name: Porte d'entrée
        icon: mdi:outdoor-lamp
        type: "relay"
        component: "switch"
        id: 3
      - name: Lampes buffet
        icon: mdi:lamp
        type: "relay"
        component: "switch"
        id: 4
      - name: Grenier
        icon: mdi:lightbulb
        type: "relay"
        component: "switch"
        id: 5
      # Dimmers
      - name: Suspension entrée
        icon: mdi:ceiling-light
        type: xdimmer
        component: light
        id: 3
      - name: Suspension centrale
        icon: mdi:ceiling-light
        type: xdimmer
        component: light
        id: 4
      - name: Couloir
        icon: mdi:ceiling-light
        type: xdimmer
        component: light
        id: 1
      - name: Portail
        icon: mdi:coach-lamp
        type: xdimmer
        component: light
        id: 2
      # Fils pilote
      - name: Radiateur fenêtre Braii
        icon: mdi:radiator
        type: x4fp
        component: climate
        ext_id: 1
        id: 1
      # Entrées numériques
      # - name: Fond du puisard
      #   icon: mdi:water-minus
      #   component: digitalin
      #   type: binary_sensor
      #   id : 7
      # - name: Seuil haut du puisard
      #   icon: mdi:water-alert-outline
      #   component: digitalin
      #   type: binary_sensor
      #   id: 8
      # Capteur THL
      - name: Cuisine Braii
        icon: mdi:thermometer
        type: xthl
        component: sensor
        id: 1
      - name: Cave
        icon: mdi:thermometer
        type: xthl
        component: sensor
        id: 2

Expected behavior Is there a way to push the dimmer value at the same time state is pushed? As a matter of fact, this is not a big deal since I'm not using ipx800v4 interface. Bar should not be set to 0 after sometime, and dimmer should be set right away to its last value.

Edit: more of a problem. When physical switch is used to switch on or off light, the bar stays at the minimum value, whereas the light is set at the expected value.

Screenshots If applicable, add screenshots to help explain your problem.

Debug logs

not applicable
Aohzan commented 4 months ago

Hello,

Plusieurs moyens de répondre au soucis

  1. forcer un refresh de tous les état après chaque push, pour que l'état de la luminosité soit refresh plus rapidement, en cas de x push très rapidement, ça pourrait solliciter pas mal l'IPX
  2. ajouter dans le code lorsqu'un PUSH est reçu: si un off est envoyé on met l'état de la luminosité à 0, si c'est un on on la met à 100%

pour moi c'est plus un soucis d'esthétique quand on a les yeux collé sur le dashboard au moment où une lumière change d'état via l'IPX directement

Kolia56 commented 4 months ago

Merci pour la réponse rapide. Je fais un push contextuel, c'est à dire pour chaque dimmer, et non pas global pour ne pas surcharger l'IPX et le réseau. Ce n'est pas souhaitable de mettre à 100, car ce que l'on veut c'est mettre à la dernière valeur utilisée qui est le comportement de tout dimmer.

A ce propos dans ma version précédente c'est Domoticz qui est en relation directe avec l'IPX, DZ et HA étant en relation directe par MQTT. Dans cette configuration cela fonctionne parfaitement. Je souhaite toutefois m'affranchir le plus possible de cet intermédiaire.

J'ai ajouté un edit à mon post, cela s'est peut-être croisé. Lorsque l'on utilise le bouton physique, le réglage dans HA reste à sa valeur minimum bien que la lumière soit réglée à la dernière valeur utilisée. Je suis d'accord pour dire que le problème précédent est plus une question d'esthétique, mais ce second problème est plus ennuyeux.

Aohzan commented 4 months ago

De mémoire l'IPX80 V4 ne peut pas pousser la valeur de luminosité en push du coup on ne peut pas savoir sa dernière valeur, et Home-Assistant ne le gère pas non plus, la solution 2 c'est juste de l'esthétisme en attendant que la vraie valeur arrive

Kolia56 commented 4 months ago

De mémoire l'IPX80 V4 ne peut pas pousser la valeur de luminosité en push

je confirme car il y a fort longtemps je leur avait demandé d'ajouter cette étiquette mais ils se sont assis sur la demande il y a t'il un moyen de forcer un refresh global?

Aohzan commented 4 months ago

ajouter un refresh global après chaque push je suis pas trop pour dans l'état, pour quelqu'un qui a des push sur x lumières, avec un interrupteur qui éteint tout, les x push vont déclencher x refresh :thinking:

Aohzan commented 4 months ago

ou en optin dans la conf Mais du coup pourquoi ne pas appeler le push de refresh directement?

Kolia56 commented 4 months ago

ou en optin dans la conf Marie du coup pourquoi ne pas appeler le push de refresh directement?

Je ne comprends pas, pouvez vous m’éclairer ?

Aohzan commented 4 months ago

en opt-in: par défaut pas de refresh global lors d'un push, en activant une option ça le fait sinon, je parlais d'appeler l'url api/ipx800v4_refresh/on lors des push pour demander à HA de rafraîchir toutes les entités de l'IPX