Gecko in.touch2 integration (Spa wireless remote control module)

I previously had action “toggle” which used to work perfectly. This has stopped working, copied your code which works fine… thanks!!.

BTW. My controller does not have HI, LO, OFF functions. It’s either ON or OFF.

Edit: I have just read the above post about a temporary fix which seems to imply an update with the Gecko might have broken this function??

Hello, I have a spa with a Gecko in.Touch 2 and unfortunately I can’t connect to my spa, everything works perfectly with the cell phone, where can I start to find the error?
The log shows the following:
Logger: custom_components.gecko.config_flow
Source: custom_components/gecko/config_flow.py:126
Integration: Gecko (documentation, problems)
First occurrence: 11:27:30 (2 occurrences)
Last logged: 11:28:08

No spas found on the local network

Hello,
with the ICO SPA sensor and then the HA module

Jumping in here, there is no need for any internet access, it communicates via UDP directly with the in.Touch unit on your LAN.

One thing I’ve noticed is the integration doesn’t reconnect when power is restored to the outdoor unit (my outdoor system cuts power between filter cycles to save power and be quiet). The indoor unit is always on, but I think there integration tries to reconnect a bunch times then gives up.

It’s done to ensure the log file doesn’t fill up with warnings and errors. The integration can’t know what your power on/off pattern is, but you might have a better idea.

You can put an automation in to press the reconnect button which ought to do the trick

Actually, I just went back to check this, and it will retry 50 times on the RFERR which is what happens when the inside unit is on but the outside unit is off.

Then it decides that you’ve probably turned the device off, so it should put the integration into a long ping cycle to keep watching for when the unit might get turned back on again, but it didn’t ought to ignore the state change when it does eventually get turned back on. It might take a while for it to notice since the ping frequency is quite low.

This is working well now with 0.1.30. It doesn’t have a long delay at all reconnecting (within a minute).

I still see the 0C temperature on start-up though. Maybe the startup condition is different when power is cut?

Hi All. Anyone else having issues since the most recent HA Core update? Connection is dropping every day. Sometimes calling a reconnect service fixes it, other times I have to restart HA.

Logger: geckolib.async_spa
Source: runner.py:154
First occurred: 17:13:12 (123 occurrences)
Last logged: 17:46:06

Cannot get file, protocol retry time exceeded

Logger: homeassistant.core
Source: core.py:1576
First occurred: 17:13:15 (2 occurrences)
Last logged: 17:13:15

Error running job: <Job onetime listen homeassistant_start <function _async_at_core_state.<locals>._matched_event at 0x7f68dbdd00> HassJobType.Callback <_OneTimeListener homeassistant.helpers.start:<function _async_at_core_state.<locals>._matched_event at 0x7f68dbdd00>>>
Error running job: <Job onetime listen homeassistant_start <function _async_at_core_state.<locals>._matched_event at 0x7f68dbdee0> HassJobType.Callback <_OneTimeListener homeassistant.helpers.start:<function _async_at_core_state.<locals>._matched_event at 0x7f68dbdee0>>>
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 636, in state
    numerical_value = int(value)
ValueError: invalid literal for int() with base 10: ''

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 639, in state
    numerical_value = float(value)
ValueError: could not convert string to float: ''

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

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/core.py", line 1576, in async_fire_internal
    self._hass.async_run_hass_job(job, event)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 938, in async_run_hass_job
    hassjob.target(*args)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 1437, in __call__
    self.hass.async_run_hass_job(self.listener_job, event)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 938, in async_run_hass_job
    hassjob.target(*args)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/start.py", line 44, in _matched_event
    hass.async_run_hass_job(at_start_job, hass)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 938, in async_run_hass_job
    hassjob.target(*args)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/template/template_entity.py", line 519, in _async_template_startup
    result_info.async_refresh()
    ~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/src/homeassistant/homeassistant/helpers/event.py", line 1132, in async_refresh
    self._refresh(None)
    ~~~~~~~~~~~~~^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/event.py", line 1318, in _refresh
    self.hass.async_run_hass_job(self._job, event, updates)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 938, in async_run_hass_job
    hassjob.target(*args)
    ~~~~~~~~~~~~~~^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/template/template_entity.py", line 465, in _handle_results
    self.async_write_ha_state()
    ~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1019, in async_write_ha_state
    self._async_write_ha_state()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1141, in _async_write_ha_state
    self.__async_calculate_state()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1081, in __async_calculate_state
    state = self._stringify_state(available)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 1025, in _stringify_state
    if (state := self.state) is None:
                 ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/sensor/__init__.py", line 643, in state
    raise ValueError(
    ...<5 lines>...
    ) from err
ValueError: Sensor sensor.spa_temperature has device class 'None', state class 'None' unit '°C' and suggested precision 'None' thus indicating it has a numeric value; however, it has the non-numeric value: '' (<class 'str'>)

Logger: homeassistant.helpers.template
Source: helpers/template.py:2947
First occurred: 17:13:15 (4 occurrences)
Last logged: 17:13:15

Template variable warning: 'homeassistant.util.read_only_dict.ReadOnlyDict object' has no attribute 'current_temperature' when rendering '{{ states.climate.ducky_tub_heater.attributes.current_temperature }}'
Template variable warning: 'homeassistant.util.read_only_dict.ReadOnlyDict object' has no attribute 'temperature' when rendering '{{ states.climate.ducky_tub_heater.attributes.temperature }}'

“Most recent” is not a version.

The snark (first in four years of contributing to this topic) would make sense if it was days after my query. Don’t bother.