Giter VIP home page Giter VIP logo

ipx800's Introduction

ipx800's People

Contributors

aohzan avatar guigeek38 avatar pixelpoivre avatar scop avatar sebastienwarin avatar ydubreuil avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ipx800's Issues

Timeout API

2022-09-28 21:13:04.248 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration ipx800v4 which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-09-28 21:13:04.249 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration browser_mod which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-09-28 21:13:04.266 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration ui_lovelace_minimalist which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2022-09-28 21:13:18.439 ERROR (MainThread) [custom_components.ipx800v4] Error fetching ipx800v4 data: Failed to communicating with API: Timeout occurred while connecting to IPX800.
2022-09-28 21:13:57.002 ERROR (MainThread) [custom_components.ipx800v4] Error fetching ipx800v4 data: Failed to communicating with API: Timeout occurred while connecting to IPX800.
2022-09-28 21:14:37.002 ERROR (MainThread) [custom_components.ipx800v4] Error fetching ipx800v4 data: Failed to communicating with API: Timeout occurred while connecting to IPX800.
2022-09-28 21:15:55.002 ERROR (MainThread) [custom_components.ipx800v4] Error fetching ipx800v4 data: Failed to communicating with API: Timeout occurred while connecting to IPX800.
2022-09-28 21:19:23.001 ERROR (MainThread) [custom_components.ipx800v4] Error fetching ipx800v4 data: Failed to communicating with API: Timeout occurred while connecting to IPX800.
2022-09-28 21:20:16.529 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140243427084464] Timeout occurred while connecting to IPX800.
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/pypx800/ipx800.py", line 61, in request_api
    response = await self._session.get(
  File "/usr/local/lib/python3.10/site-packages/aiohttp/client.py", line 535, in _request
    conn = await self._connector.connect(
  File "/usr/local/lib/python3.10/site-packages/aiohttp/connector.py", line 542, in connect
    proto = await self._create_connection(req, traces, timeout)
  File "/usr/local/lib/python3.10/site-packages/aiohttp/connector.py", line 907, in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
  File "/usr/local/lib/python3.10/site-packages/aiohttp/connector.py", line 1175, in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
  File "/usr/local/lib/python3.10/site-packages/aiohttp/connector.py", line 986, in _wrap_create_connection
    return await self._loop.create_connection(*args, **kwargs)  # type: ignore[return-value]  # noqa
  File "/usr/local/lib/python3.10/asyncio/base_events.py", line 1049, in create_connection
    sock = await self._connect_sock(
  File "/usr/local/lib/python3.10/asyncio/base_events.py", line 960, in _connect_sock
    await self.sock_connect(sock, address)
  File "/usr/local/lib/python3.10/asyncio/selector_events.py", line 500, in sock_connect
    return await fut
asyncio.exceptions.CancelledError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/pypx800/ipx800.py", line 60, in request_api
    with async_timeout.timeout(self._request_timeout):
  File "/usr/local/lib/python3.10/site-packages/async_timeout/__init__.py", line 116, in __exit__
    self._do_exit(exc_type)
  File "/usr/local/lib/python3.10/site-packages/async_timeout/__init__.py", line 212, in _do_exit
    raise asyncio.TimeoutError
asyncio.exceptions.TimeoutError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 200, in handle_call_service
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1738, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1775, in _execute_service
    await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 204, in handle_service
    await service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 676, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 931, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 713, in _handle_entity_call
    await result
  File "/usr/src/homeassistant/homeassistant/components/light/__init__.py", line 535, in async_handle_light_on_service
    await light.async_turn_on(**filter_turn_on_params(light, params))
  File "/config/custom_components/ipx800v4/light.py", line 106, in async_turn_on
    await self.control.on()
  File "/usr/local/lib/python3.10/site-packages/pypx800/relay.py", line 28, in on
    await self._ipx.request_api(params)
  File "/usr/local/lib/python3.10/site-packages/pypx800/ipx800.py", line 81, in request_api
    raise Ipx800CannotConnectError(
pypx800.exceptions.Ipx800CannotConnectError: Timeout occurred while connecting to IPX800.
2022-09-28 21:20:21.529 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [140243427084464] Timeout occurred while connecting to IPX800.
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/pypx800/ipx800.py", line 61, in request_api
    response = await self._session.get(
  File "/usr/local/lib/python3.10/site-packages/aiohttp/client.py", line 535, in _request
    conn = await self._connector.connect(
  File "/usr/local/lib/python3.10/site-packages/aiohttp/connector.py", line 542, in connect
    proto = await self._create_connection(req, traces, timeout)
  File "/usr/local/lib/python3.10/site-packages/aiohttp/connector.py", line 907, in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
  File "/usr/local/lib/python3.10/site-packages/aiohttp/connector.py", line 1175, in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
  File "/usr/local/lib/python3.10/site-packages/aiohttp/connector.py", line 986, in _wrap_create_connection
    return await self._loop.create_connection(*args, **kwargs)  # type: ignore[return-value]  # noqa
  File "/usr/local/lib/python3.10/asyncio/base_events.py", line 1049, in create_connection
    sock = await self._connect_sock(
  File "/usr/local/lib/python3.10/asyncio/base_events.py", line 960, in _connect_sock
    await self.sock_connect(sock, address)
  File "/usr/local/lib/python3.10/asyncio/selector_events.py", line 500, in sock_connect
    return await fut
asyncio.exceptions.CancelledError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/pypx800/ipx800.py", line 60, in request_api
    with async_timeout.timeout(self._request_timeout):
  File "/usr/local/lib/python3.10/site-packages/async_timeout/__init__.py", line 116, in __exit__
    self._do_exit(exc_type)
  File "/usr/local/lib/python3.10/site-packages/async_timeout/__init__.py", line 212, in _do_exit
    raise asyncio.TimeoutError
asyncio.exceptions.TimeoutError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 200, in handle_call_service
    await hass.services.async_call(
  File "/usr/src/homeassistant/homeassistant/core.py", line 1738, in async_call
    task.result()
  File "/usr/src/homeassistant/homeassistant/core.py", line 1775, in _execute_service
    await cast(Callable[[ServiceCall], Awaitable[None]], handler.job.target)(
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 204, in handle_service
    await service.entity_service_call(
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 676, in entity_service_call
    future.result()  # pop exception if have
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 931, in async_request_call
    await coro
  File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 713, in _handle_entity_call
    await result
  File "/usr/src/homeassistant/homeassistant/components/light/__init__.py", line 535, in async_handle_light_on_service
    await light.async_turn_on(**filter_turn_on_params(light, params))
  File "/config/custom_components/ipx800v4/light.py", line 106, in async_turn_on
    await self.control.on()
  File "/usr/local/lib/python3.10/site-packages/pypx800/relay.py", line 28, in on
    await self._ipx.request_api(params)
  File "/usr/local/lib/python3.10/site-packages/pypx800/ipx800.py", line 81, in request_api
    raise Ipx800CannotConnectError(
pypx800.exceptions.Ipx800CannotConnectError: Timeout occurred while connecting to IPX800.
2022-09-28 21:20:23.003 ERROR (MainThread) [custom_components.ipx800v4] Error fetching ipx800v4 data: Failed to communicating with API: Timeout occurred while connecting to IPX800.
2022-09-28 21:21:26.001 ERROR (MainThread) [custom_components.ipx800v4] Error fetching ipx800v4 data: Failed to communicating with API: Timeout occurred while connecting to IPX800.
2022-09-28 21:22:51.002 ERROR (MainThread) [custom_components.ipx800v4] Error fetching ipx800v4 data: Failed to communicating with API: Timeout occurred while connecting to IPX800.
2022-09-28 21:23:31.002 ERROR (MainThread) [custom_components.ipx800v4] Error fetching ipx800v4 data: Failed to communicating with API: Timeout occurred while connecting to IPX800.
2022-09-28 21:24:44.002 ERROR (MainThread) [custom_components.ipx800v4] Error fetching ipx800v4 data: Failed to communicating with API: Timeout occurred while connecting to IPX800.
2022-09-28 21:25:36.002 ERROR (MainThread) [custom_components.ipx800v4] Error fetching ipx800v4 data: Failed to communicating with API: Timeout occurred while connecting to IPX800.

Mise à jour home assistant

Bonjour,
J’ai ce message d’erreur depuis la mise à jour:

Pour l’instant j’ai Rollback et tout est en ordre.

2023-05-30 23:13:32.333 WARNING (SyncWorker_2) [homeassistant.loader] We found a custom integration ipx800v4 which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
2023-05-30 23:14:24.849 ERROR (MainThread) [custom_components.ipx800v4] Cannot connect to the IPX800 named IPX800, check host, port or api_key
2023-05-30 23:14:24.870 WARNING (MainThread) [homeassistant.config_entries] Config entry 'IPX800' for ipx800v4 integration not ready yet; Retrying in background
2023-05-30 23:14:40.876 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry IPX800 for ipx800v4
File "/config/custom_components/ipx800v4/init.py", line 207, in async_setup_entry

TC100 Sensor

Hello,
J'essaie de passer sur cette intégration & je n'arrive pas à faire passer mon entrée analogique qui est branchée sur un TC100 :

      - name: IPX800 Température Piscine
        unit_of_measurement: '°C'
        device_class:  "temperature"
        type: "analogin"
        component: "sensor"
        id: 1

image

Je suis toujours en unavailable sur Home Assistant. :-/

async_forward_entry_setup will be deprecated

For your information, this message is logged in HA log system

Detected code that calls async_forward_entry_setup for integration ipx800v4 with title: IPX800 and entry_id: 6a8c8b5c1841842bc777b376e5147d9b, during setup without awaiting async_forward_entry_setup, which can cause the setup lock to be released before the setup is done. This will stop working in Home Assistant 2025.1. Please report this issue.

I'm running HA 2024.7.2 and ipx800 3.8.1

Add value_template option

I need to use "analogin" or "virtualanalogin" type but I also need to add some calculations, could you add value_template option please or do you have another solution to map IPX800 sensor formulas to Home Assistant ?

Compteur IPX

Hello

est il possible de récupérer les compteurs de l'IPX?
je n'ai pas trouvé le type adéquat

merci

Probleme avec l'api (refresh all) en docker

Bonjour,
J'ai un petit, j'utilise home assistant en docker avec un ipx800v4 et j'aimerais bien mettre en place le push global (ipx800v4_refresh/on), le soucis c'est que je suis en docker et donc l'ip avec laquelle arrive les demandes de l'ipx sont en 172.X.X.X et non avec l'ip réel de l'ipx. J'ai donc logs des erreurs comme quoi l'ip n'est pas celle d'un ipx...

Comment faire dans ce cas ?

Merci d'avance pour ta réponse.

Push from 2 differents IPX

Having 2 IPX v4 in the network, in the same subnet as the home assistant.
IPX Pushes are not working since addition of API auth controls.
I don't know why but the script init always take the 2nd IP of the IPX so request.remote is alway different of host and raise "API call not coming from IPX800 IP".
Push works when commenting this control.
It would be nice if this can be fixed cause I cannont fixe it from my side.
Regards*
C.

Installation

J'ai installé ipx800 sur HA.
J'ai inclu dans le fichier configuration :

ipx800v4:
  - name: IPX800_V4  
    host: "192.168.0.43"
    api_key: "motdepasse"
    devices:
      - name: spotpiscine
        icon: mdi:water-boiler
        type: "relay"
        component: "switch"
        id: 3
```

Mais j'ai échec de la configuration après redémarrage...
Pouvez-vous m'aider ?

Merci

icon_template:

Hello,

An idea to integrate icon_template on switch...

For example:

icon_template: "mdi:window-shutter{{ '-open' if is_state('switch.velux_escalier','on') else '' }}"

Optimisation retour API

Bonjour,
Je viens de mettre en place ton extension sur HA, merci pour ce travail, cela fonctionne très bien.
Cependant, je pense qu'il y aurait une optimisation à faire côté API.
J'ai vu dans les logs que tu utilisais un Get=all.
Dans mon cas, j'ai beaucoup de modules GCE et donc beaucoup d'entrées, de sorties, de relay... bref, ça ramène beaucoup de choses par rapport à ce que j'utilise réellement.

Dans Jeedom que j'utilisais jusqu'à présent, on cochait ce qu'on voulait rapporter :
[All] Tous
[A] Entrée analogique
[C] Compteurs
[R] Sortie digital (relai)
[D] Entrès digital
[VI] Entrée virtuel
[VO] Sortie virtuel
[VA] Entrée analogique virtuelle
[PW] Watchdog
[XTHL] Sonde THL
[VR] Volet roulant
[XENO] EnOcean
[FP] Fil pilote
[G] X-Dimmer
[T] Thermostat
[XPWM] PWM
[X010V] 010V

Si c'est possible, dans les paramètres de l'extension de sélectionner uniquement ce qu'on utilise... ça pourrait être top !
Merci.

PS : je voulais modifier le readme pour compléter quelques infos que j'aurais bien eu besoin quand j'ai fait mon install mais ça a créé un fork. Je ne sais pas comment faire pour être "contributeur" de ton projet. Merci.

error in my log

Hello,

I have the last version:
Describe the bug
it seems to work but for some reasons I have plenty of error in my log.
In option I have :
Enable newly added entities. : DISABLE
Enable polling for updates : ENABLE

Configuration

ipx800v4:
  - name: IPX800
    host: 192.168.0.39
    api_key: xxx
    devices:
      - name: Portail_State
        type: "digitalin"
        component: "binary_sensor"
        id: 4
      - name: Portail_Action
        type: relay
        component: switch
        id: 3

Debug logs

2024-02-03 19:19:41.628 ERROR (MainThread) [custom_components.ipx800v4] Unexpected error fetching ipx800v4 data: IPX800 API request error
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 300, in _async_refresh
    self.data = await self._async_update_data()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 256, in _async_update_data
    return await self.update_method()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/ipx800v4/__init__.py", line 166, in async_update_data
    return await ipx.global_get()
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pypx800/ipx800.py", line 139, in global_get
    values = await self.request_api({"Get": "all"})
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pypx800/ipx800.py", line 78, in request_api
    raise Ipx800RequestError("IPX800 API request error")
pypx800.exceptions.Ipx800RequestError: IPX800 API request error
2024-02-03 19:21:41.257 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 243, in _handle_refresh_interval
    await self._async_refresh(log_failures=True, scheduled=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 399, in _async_refresh
    self.async_update_listeners()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 182, in async_update_listeners
    update_callback()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 479, in _handle_coordinator_update
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 945, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1066, in _async_write_ha_state
    state, attr, capabilities, shadowed_attr = self.__async_calculate_state()
                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1003, in __async_calculate_state
    state = self._stringify_state(available)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 951, in _stringify_state
    if (state := self.state) is None:
                 ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/binary_sensor/__init__.py", line 300, in state
    if (is_on := self.is_on) is None:
                 ^^^^^^^^^^
  File "/config/custom_components/ipx800v4/binary_sensor.py", line 61, in is_on
    return self.coordinator.data[f"D{self._id}"] == 1
           ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
KeyError: 'D4'

Nouvelle version sans erreur

Bonjour,
La nouvelle version qui ne génère plus d'erreur sera-t-elle bientôt disponible.
J'ai tous les jours des groupes de volets ou de lampes qui ne fonctionnent pas correctement...
Merci :)

Mettre à jour tous les binary sensor via push

Bonjour,
J'ai défini une fréquence d'actualisation du 1 sec. Je sais que c'est très court mais j'en ai besoin car beaucoup de capteurs (ouverture de portes, mouvements,...) qui me servent de déclencheurs. Je ne me vois pas créer un scénario dans l'IPX pour chaque relai concerné.
Y a t il une autre solution ?
Merci !

Install version de dév et toujours des erreurs

Bonjour,
Je viens de passer la version de dev sur mon serveur HA et je rencontre toujours des bugs :

`
Logger: homeassistant.components.websocket_api.http.connection
Source: custom_components/ipx800v4/light.py:77
Integration: Home Assistant WebSocket API (documentation, issues)
First occurred: 22:47:16 (2 occurrences)
Last logged: 22:48:18

[139693602581328] ('IPX800 api request error, url: %sr%s', 'http://10.0.4.200:80/api/xdevices.json?key=removed&SetR=26', {'product': 'IPX800_V4', 'status': 'Error'}) [139693602581328] ('IPX800 api request error, url: %sr%s', 'http://10.0.4.200:80/api/xdevices.json?key=removed&SetR=4', {'product': 'IPX800_V4', 'status': 'Error'})
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 143, in handle_call_service
await hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1480, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1515, in _execute_service
await handler.job.target(service_call)
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 206, in handle_service
await self.hass.helpers.service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 649, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 692, in async_request_call
await coro
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 686, in _handle_entity_call
await result
File "/usr/src/homeassistant/homeassistant/components/light/init.py", line 308, in async_handle_light_on_service
await light.async_turn_on(**params)
File "/usr/src/homeassistant/homeassistant/components/group/light.py", line 239, in async_turn_on
await self.hass.services.async_call(
File "/usr/src/homeassistant/homeassistant/core.py", line 1480, in async_call
task.result()
File "/usr/src/homeassistant/homeassistant/core.py", line 1515, in _execute_service
await handler.job.target(service_call)
File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 206, in handle_service
await self.hass.helpers.service.entity_service_call(
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 649, in entity_service_call
future.result() # pop exception if have
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 692, in async_request_call
await coro
File "/usr/src/homeassistant/homeassistant/helpers/service.py", line 686, in _handle_entity_call
await result
File "/usr/src/homeassistant/homeassistant/components/light/init.py", line 308, in async_handle_light_on_service
await light.async_turn_on(**params)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 717, in async_turn_on
await self.hass.async_add_executor_job(ft.partial(self.turn_on, **kwargs))
File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/ipx800v4/light.py", line 77, in turn_on
self.control.on()
File "/usr/local/lib/python3.8/site-packages/pypx800/init.py", line 95, in on
self._request_api(params)
File "/usr/local/lib/python3.8/site-packages/pypx800/init.py", line 37, in _request_api
raise Exception(
Exception: ('IPX800 api request error, url: %sr%s', 'http://10.0.4.200:80/api/xdevices.json?key=removed&SetR=26', {'product': 'IPX800_V4', 'status': 'Error'})

Que puis-je faire pour t'aider à les résoudre ?

Bug appel API

Bonjour,
Je m'apprête à basculer de Jeedom à Home Assistant et je suis en train de refaire mes scénarios avec Node-Red.

Quand je lancer un cover_open ou cover_close, j'obtiens cette erreur :
"Call-service API error. Error Message: ('IPX800 api request error, url: %s`r%s', 'http://10.0.4.200:80/api/xdevices.json?key=removed&SetVR05=100', {'product': 'IPX800_V4', 'status': 'Error'})"

Pour autant l'action se réalise bien, d'où ce message...
Quand j'essaie de passer cette même commande (en remplaçant l'apikey), ça passe sans erreur.
Je ne sais pas si ça peut avoir une relation, j'ai fixé le scan_interval à 2.

Merci

Remove entity/device on the integration

Hello,

The problem come when I remove the entity in my configuration.yaml file, the entity/device stay in my home assistant integration.

I want to remove old entity in my integration. You think it's possible to add that ?

It's mandatory for me to disable the entity but it's not properly...

image

Using a switch on virtualout --> The state is not get from HomeAssistant

I have create a switch based on virtualout (id: 4).

The switch state is not updated in home assistant (always off).
If I activate the switch in home assistant, the http request is done on IPX and the virtual out is set on IPX.

But the state come back to off in home assistant....

If I do a binary_sensor, the state is get form IPX to home assistant but I cannot toggle it in homeassistant (for sure it's a sensor).

I think there is a thing with Switch and Virtualout.

Mauvaise vérification de l'authentification

Bonjour,
Il me semble qu'il y a une petite erreur sur l'authentification :

if username != PUSH_USERNAME and password != self.password:

Avec cette ligne si le username est bon, le mot de passe ne sera pas vérifié puisque la 1ère partie de la condition and est fausse. Je pense qu'il faudrait alors mettre un or pour que la condition soit vraiment vérifiée.

Et encore merci pour votre travail sur cette nouvelle version !

Water - Energy support

Hi,

First, i am not sure used to HA yet so i might be wrong, if that's the case, sorry :)

I am using IPX800V4 to count the water consumption. Using the GCE Pulse counter, 1 Pulse = 1 Liter
Thanks to your integration, i have in HA the entities (sensor.compteur_eau, type : counter, unit_of_measurement: "L")

I am trying to add Water to the energy tab of HA but it is not possible to use it ;

"No matching statistics found"

Open an issue with the author of the integration and link them to (https://developers.home-assistant.io/docs/core/entity/sensor#long-term-statistics).

is it something that is possible ?

Thank you.

Gerenic API URL to force HA updating channels states

Target is to be able through a single PUSH request (IPX side) to force Home Assistant (your custom component) to update all states of its channels & arguments from IPX800.

It will allow us to keep the default "scan_interval" value and have a better user experience :

  • Faster refresh of HA channels arguments values
  • Use the same PUSH for all IPX channels

Release 2021-12 : cannot import name 'HTTP_OK'

Hello,
There's a new problem experienced right after the upgrade to release 2021.12 of Home Assistant.
Any feedback on this topic ? Am alone to have this problem ?

Logger: homeassistant.setup
Source: setup.py:153
First occurred: 08:43:13 (1 occurrences)
Last logged: 08:43:13

Setup failed for ipx800v4: Unable to import component: cannot import name 'HTTP_OK' from 'homeassistant.const' (/usr/src/homeassistant/homeassistant/const.py)

Thank you for your help

Simon

Erreur à l'installation relative à 'configuration_url'

Bonsoir, j'ai installé ce jour la derniere version 3.1.0 de votre integration IPX800 et j'ai ce joli message d'erreur dans les logs :
image

J'imagine que c'est lié à votre tout dernier commit sur l'ajout de cette variable. Je vais downgrader l'install du plugin de mon côté et retenter une installation, n'hésitez pas à me faire savoir si vous avez besoin que je reteste cette version 3.1.0

Merci beaucoup pour votre plugin !

Push vers HA

Bonjour,

Après avoir cherché dans la doc et dans le code source, je n'arrive pas à trouver comment faire un toggle sur un groupe de lumières.

J'ai tenté d'appeler cette URL mais cela ne fonctionne pas comme attendu : /api/ipx800v4/light.chambre_parents/toggle

Le principe est de pouvoir changer l'état toggle des lumières plutôt que du ON/OFF car l'IPX ne connait pas l'état des lumières à l'avance, et je voudrais éviter les envois de type ON alors que la lumière est déjà sur ON sur HA.

Merci bien !

Mathieu

Interprétation retour push

Bonjour,
C'est encore moi :) J'a commencé à configurer le push pour éviter d'appeler toutes les secondes l'état de toutes les entrées/sorties de l'IPX... je progresse ;).
Le problème du moment c'est la gestion des XDIMMER et des X4VR.
Je pense que l'API retourne une valeur qui correspond soit au 0% d'éclairage ou au % d'ouverture du volet. Dans ton code, pour ce que j'en ai compris, tu alimentes le state avec on ou off. Et du coup, le push ne fonctionne pas...
Est-ce que tu penses que tu pourrais tenir compte des vraies valeurs renvoyées (comme c'est le cas avec le polling) ?
Merci

Utilisation de l'API dépréciée async_get_registry

Bonjour,

Depuis la mise à jour vers HA 2022.6, j'obtiens le message de warning suivant, au démarrage de HA :

WARNING (MainThread) [homeassistant.helpers.frame] Detected integration that uses deprecated `async_get_registry` to access device registry, use async_get instead. Please report issue to the custom component author for ipx800v4 using this method at custom_components/ipx800v4/__init__.py, line 208: device_registry = await dr.async_get_registry(hass)

Merci beaucoup pour votre plugin !

Name vs Friendly Name

Hello,

Do you think possible to make a distinction between name and friendly name ?

For example:

name: rdc_spots
friendly_name: Spots couloir RDC

Regards

problemi avvio ipx800 su homeassistant

Buonasera, non riesco ad avviare l'integreazione in home assistant.
l'errore è questo:
Questo errore ha avuto origine da un'integrazione personalizzata.

Logger: custom_components.ipx800v4
Source: custom_components/ipx800v4/init.py:156
Integration: GCE IPX800 V4 (documentation, issues)
First occurred: 23:05:56 (4 occurrences)
Last logged: 23:06:19

Cannot connect to the IPX800 named IPX800, check host, port or api_key
Cannot connect to the IPX800 named alessandro, check host, port or api_key

Sicuramente non riesco a compilare correttamente il file configuration.yaml
potete aiutarmi nella compilazione?
i dati sono:
ipx800v4 in rete ip.192.168.1.225 porta 9800
password api: apikey pota:9870

Grazie per l'aiuto

Fréquence actualisation

Bonjour,

J'ai un petit problème d'actualisation dans home assistant sur mes entrées digital qui sont pilotées par des interrupteurs monostable.

En effet, j'ai correctement configuré les push message et lors d'un appui bref je vois bien dans les logs passer les push message, mais rien n'apparaît dans mon historique et je n'arrive pas à lancer d'automatisation. Il est nécessaire de faire un appui légèrement plus long sur l'interrupteur pour que cela apparaisse dans la base.

Avez vous également ce problème ? Avez vous fait un réglage particulier ?

J'ai l'impression que le fetching ne se fait pas lors d'un changement trop rapide.

Merci par avance

Log lors d'un appui bref :
2022-10-09 11:26:01.677 DEBUG (MainThread) [custom_components.ipx800v4] Update asked from IPX PUSH
2022-10-09 11:26:01.680 DEBUG (MainThread) [custom_components.ipx800v4] Update asked from IPX PUSH
2022-10-09 11:26:02.263 DEBUG (MainThread) [custom_components.ipx800v4] Finished fetching ipx800v4 data in 0.085 seconds (success: True)

Log lors d'un appui un peu plus long pris en compte par la base :
2022-10-09 11:21:45.874 DEBUG (MainThread) [custom_components.ipx800v4] Finished fetching ipx800v4 data in 0.085 seconds (success: True)
2022-10-09 11:21:46.270 DEBUG (MainThread) [custom_components.ipx800v4] Update asked from IPX PUSH
2022-10-09 11:21:46.464 DEBUG (MainThread) [custom_components.ipx800v4] Finished fetching ipx800v4 data in 0.085 seconds (success: True)
2022-10-09 11:21:49.159 DEBUG (MainThread) [custom_components.ipx800v4] Update asked from IPX PUSH

Error DataUpdateCoordinator.async_refresh

Describe the bug
Hey Aohzan

Sometimes when I try to turn on/off my switch in my HA, My IPX800v4 dosen't return states to my HA.

The consequences of that is that my switches states on my IPX800v4 look "ON" and the switches on my HA look "OFF"

After that I have this error logs :

Error logs

Enregistreur: custom_components.ipx800v4
Source: helpers/debounce.py:137
intégration: GCE IPX800 V4 ([documentation](https://github.com/Aohzan/ipx800), [problèmes](https://github.com/Aohzan/ipx800/issues))
S'est produit pour la première fois: 21:53:19 (16 occurrences)
Dernier enregistrement: 21:55:15
Unexpected exception from <bound method DataUpdateCoordinator.async_refresh of <homeassistant.helpers.update_coordinator.DataUpdateCoordinator object at 0x7f1332bf8590>>

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/debounce.py", line 137, in _handle_timer_finish
    await task
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 288, in async_refresh
    await self._async_refresh(log_failures=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 411, in _async_refresh
    self.async_update_listeners()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 165, in async_update_listeners
    update_callback()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 491, in _handle_coordinator_update
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1007, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1133, in _async_write_ha_state
    state, attr, capabilities, shadowed_attr = self.__async_calculate_state()
                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1068, in __async_calculate_state
    state = self._stringify_state(available)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1013, in _stringify_state
    if (state := self.state) is None:
                 ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 533, in state
    value = self.native_value
            ^^^^^^^^^^^^^^^^^
  File "/config/custom_components/ipx800v4/sensor.py", line 124, in native_value
    return self.coordinator.data[f"VA{self._id}"]
           ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
KeyError: 'VA29'

Thank you in advance

Change for api push

Hello !

thanks for the work on HA and IPX800, very useful.

just a quick info, the way you push the API from HA, can be better to avoid multiple declaration in PUSH on the IPX.

they support some variables mentioned here gce wiki push

Do you think I can start a PR with some change around this ?

Push dimmer value to HA

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

Home.Assistant.-.Petite.maison.Home.Assistant.2024-02-16.16-22-03.mp4

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

Support for X-4FP extension

First of all, thank you for this ha component which works wonderfully!
Would it be possible to add compatibility with the pilot wire extension of the ipx800: X-4FP ?
I can do the tests if you don't have the required equipment and give you feedback if needed.
Thank you!

Error in HA

Dear,

i have this error every 30 second.

Where is the problem?

Thanks

2022-09-19 19:32:07.127 ERROR (MainThread) [homeassistant] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 151, in _handle_refresh_interval
    await self._async_refresh(log_failures=True, scheduled=True)
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 283, in _async_refresh
    self.async_update_listeners()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 110, in async_update_listeners
    update_callback()
  File "/usr/src/homeassistant/homeassistant/helpers/update_coordinator.py", line 348, in _handle_coordinator_update
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 533, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 571, in _async_write_ha_state
    state = self._stringify_state(available)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 539, in _stringify_state
    if (state := self.state) is None:
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 970, in state
    if (is_on := self.is_on) is None:
  File "/config/custom_components/ipx800v4/switch.py", line 68, in is_on
    return self.coordinator.data[f"R{self._id}"] == 1
KeyError: 'R1'

Problème push message

Bonjour,
Depuis quelques jours les push message ne marchent plus.
J'ai l'erreur suivante :

Cette erreur provient d'une intégration personnalisée

Logger: py.warnings
Source: custom_components/ipx800v4/__init__.py:485
Integration: GCE IPX800 V4 (documentation, issues)
First occurred: 19:16:47 (1 occurrences)
Last logged: 19:16:47

/config/custom_components/ipx800v4/__init__.py:485: RuntimeWarning: coroutine 'DataUpdateCoordinator.async_request_refresh' was never awaited self.coordinator.async_request_refresh()

Difficile de dire si c'est depuis la dernière mise à jour...

Merci

Volets BSO

Bonjour,

Déjà merci pour votre plugin sur Home Assistant 😊

J’ai des volets BSO et la fonction n’est pas disponible dans le plugin (sauf erreur de ma part 😊)

J’ai donc sortie les 2 commande api qui permet de fermer et ouvrir les lames :

Le X-4VR dois etre en mode 4 pour que la commande fonctionne !

/api.cgi?Set4VR=3&VrNum=2&PulseDown=1

/api.cgi?Set4VR=3&VrNum=2&PulseUp=1

Set4VR = Modules X-4VR value = 1 to 10

VrNum = Numéro du volet value = 1 to 4

PulseDown = BSO fermer value = 1

PulseUp= BSO ouvert value = 1

Pouvez-vous rajouter l’option dans le plugin ?

Bien cordialement

Alain Fuchs

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.