Rinnai Heating/Cooling Wifi Module

Thanks. There seems to be some details missing in the debug log. Have you turned it on for all three components?

logger:
default: warn
logs:
custom_components.rinnaitouch: debug
custom_components.rinnaitouch.pyrinnaitouch: debug
pyrinnaitouch: debug

I think this is what you need? Sorry if I stuffed something up.
also tried a delete /reinstall of my heater

2024-07-08 22:25:10.461 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration rinnaitouch 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
2024-07-08 22:25:10.461 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration hacs 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
2024-07-08 22:25:10.461 WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration momentary 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
2024-07-08 22:25:11.512 DEBUG (MainThread) [custom_components.rinnaitouch] Get controller with IP: 192.168.3.15
2024-07-08 22:25:11.512 DEBUG (SyncWorker_14) [pyrinnaitouch.connection] Creating new client...
2024-07-08 22:25:11.618 DEBUG (SyncWorker_14) [pyrinnaitouch.connection] Client connection created: ('192.168.3.15', 27847)
2024-07-08 22:25:11.619 DEBUG (SyncWorker_14) [pyrinnaitouch.connection] Connected to ('192.168.3.15', 27847)
2024-07-08 22:25:11.619 DEBUG (SyncWorker_14) [pyrinnaitouch.system] Client Connection: <socket.socket fd=28, family=2, type=1, proto=0, laddr=('192.168.3.230', 34922), raddr=('192.168.3.15', 27847)>/False
2024-07-08 22:25:11.757 ERROR (Thread-3 (receiver)) [pyrinnaitouch.receiver] Couldn't decode JSON (probably HELLO), skipping (AttributeError("'NoneType' object has no attribute 'group'"))
2024-07-08 22:25:11.928 WARNING (MainThread) [homeassistant.helpers.frame] Detected that custom integration 'hacs' calls hass.http.register_static_path which is deprecated because it does blocking I/O in the event loop, instead call `await hass.http.async_register_static_paths([StaticPathConfig("/hacsfiles/themes", "/config/themes", True)])`; This function will be removed in 2025.7 at custom_components/hacs/base.py, line 1182: self.hass.http.register_static_path(f"{URL_BASE}/themes", self.hass.config.path("themes")), please create a bug report at https://github.com/hacs/integration/issues
2024-07-08 22:25:11.929 WARNING (MainThread) [homeassistant.helpers.frame] Detected that custom integration 'hacs' calls hass.http.register_static_path which is deprecated because it does blocking I/O in the event loop, instead call `await hass.http.async_register_static_paths([StaticPathConfig("/hacsfiles/frontend", "/config/custom_components/hacs/hacs_frontend", False)])`; This function will be removed in 2025.7 at custom_components/hacs/frontend.py, line 54: hass.http.register_static_path(f"{URL_BASE}/frontend", locate_dir(), cache_headers=False), please create a bug report at https://github.com/hacs/integration/issues
2024-07-08 22:25:11.930 WARNING (MainThread) [homeassistant.helpers.frame] Detected that custom integration 'hacs' calls hass.http.register_static_path which is deprecated because it does blocking I/O in the event loop, instead call `await hass.http.async_register_static_paths([StaticPathConfig("/hacsfiles/iconset.js", "/config/custom_components/hacs/iconset.js", True)])`; This function will be removed in 2025.7 at custom_components/hacs/frontend.py, line 57: hass.http.register_static_path(, please create a bug report at https://github.com/hacs/integration/issues
2024-07-08 22:25:11.931 WARNING (MainThread) [homeassistant.helpers.frame] Detected that custom integration 'hacs' accesses hass.components.frontend. This is deprecated and will stop working in Home Assistant 2024.9, it should be updated to import functions used from frontend directly at custom_components/hacs/frontend.py, line 68: hass.components.frontend.async_register_built_in_panel(, please create a bug report at https://github.com/hacs/integration/issues
2024-07-08 22:25:12.006 INFO (MainThread) [custom_components.rinnaitouch.climate] Set up RinnaiTouch entity 192.168.3.15
2024-07-08 22:25:12.006 DEBUG (MainThread) [custom_components.rinnaitouch.climate] Ext. temp sensor entity name: None
2024-07-08 22:25:12.006 WARNING (MainThread) [homeassistant.components.climate] Entity None (<class 'custom_components.rinnaitouch.climate.RinnaiTouch'>) implements HVACMode(s): off, fan_only and therefore implicitly supports the turn_on/turn_off methods without setting the proper ClimateEntityFeature. Please create a bug report at https://github.com/funtastix/rinnaitouch/issues
2024-07-08 22:25:12.605 DEBUG (Thread-3 (receiver)) [pyrinnaitouch.receiver] Sequence: 0 Json: [{"SYST": {"CFG": {"MTSP": "N", "NC": "07", "DF": "N", "TU": "C", "CF": "1", "VR": "0183", "CV": "0010", "CC": "086", "ZA": "                ", "ZB": "                ", "ZC": "                ", "ZD": "                " }, "AVM": {"HG": "Y", "EC": "N", "CG": "N", "RA": "N", "RH": "N", "RC": "N" }, "OSS": {"DY": "MON", "TM": "10:26", "BP": "Y", "RG": "Y", "ST": "N", "MD": "H", "DE": "N", "DU": "N", "AT": "999", "LO": "N" }, "FLT": {"AV": "N", "C3": "061" } } },{"HGOM": {"CFG": {"ZUIS": "Y", "ZAIS": "N", "ZBIS": "N", "ZCIS": "N", "ZDIS": "N", "CF": "Y", "PS": "N", "DG": "A" }, "OOP": {"ST": "N", "CF": "N", "FL": "09", "SN": "N" }, "GSO": {"OP": "M", "SP": "21", "AO": "N" }, "GSS": {"HC": "Y", "FS": "Y", "GV": "Y", "PH": "N", "AT": "W", "AZ": "W" }, "APS": {"AV": "N" }, "ZUO": {"UE": "Y" }, "ZAO": {"UE": "N" }, "ZBO": {"UE": "N" }, "ZCO": {"UE": "N" }, "ZDO": {"UE": "N" }, "ZUS": {"AE": "Y", "MT": "200" }, "ZAS": {"AE": "N", "MT": "206" }, "ZBS": {"AE": "N", "MT": "206" }, "ZCS": {"AE": "N", "MT": "206" }, "ZDS": {"AE": "N", "MT": "206" } } }]
2024-07-08 22:25:12.606 DEBUG (Thread-2 (poll_loop)) [pyrinnaitouch.system_status] We are in HEAT mode
2024-07-08 22:25:12.606 DEBUG (Thread-2 (poll_loop)) [pyrinnaitouch.unit_status] Unit is ON
2024-07-08 22:25:12.606 DEBUG (Thread-2 (poll_loop)) [pyrinnaitouch.unit_status] Fan Speed is: 09
2024-07-08 22:25:12.607 DEBUG (Thread-2 (poll_loop)) [pyrinnaitouch.unit_status] Unit OpMode is: M
2024-07-08 22:25:12.607 DEBUG (Thread-2 (poll_loop)) [pyrinnaitouch.unit_status] Unit set temp is: 21
2024-07-08 22:25:12.607 DEBUG (Thread-2 (poll_loop)) [custom_components.rinnaitouch.climate] Ext. temp sensor entity name: None
2024-07-08 22:25:12.609 DEBUG (MainThread) [custom_components.rinnaitouch.climate] Internal temperature sensor reports: 999
2024-07-08 22:25:12.609 DEBUG (MainThread) [custom_components.rinnaitouch.climate] Internal temperature sensor reports: 999
2024-07-08 22:25:12.611 DEBUG (MainThread) [custom_components.rinnaitouch.climate] Removing entity: rinnaitouch switch.rinnai_touch_cooling_mode_switch
2024-07-08 22:25:12.612 DEBUG (MainThread) [custom_components.rinnaitouch.climate] Removing entity: rinnaitouch switch.rinnai_touch_evap_mode_switch
2024-07-08 22:25:12.612 DEBUG (MainThread) [custom_components.rinnaitouch.climate] Removing entity: rinnaitouch switch.rinnai_touch_water_pump_switch
2024-07-08 22:25:12.612 DEBUG (MainThread) [custom_components.rinnaitouch.climate] Removing entity: rinnaitouch switch.rinnai_touch_evap_fan_switch
2024-07-08 22:25:12.613 DEBUG (MainThread) [custom_components.rinnaitouch.climate] Removing entity: rinnaitouch binary_sensor.rinnai_touch_compressor_active_sensor
2024-07-08 22:25:12.613 DEBUG (MainThread) [custom_components.rinnaitouch.climate] Removing entity: rinnaitouch binary_sensor.rinnai_touch_calling_cool_sensor
2024-07-08 22:25:12.613 DEBUG (MainThread) [custom_components.rinnaitouch.climate] Removing entity: rinnaitouch binary_sensor.rinnai_touch_evap_prewetting_sensor
2024-07-08 22:25:12.613 DEBUG (MainThread) [custom_components.rinnaitouch.climate] Removing entity: rinnaitouch binary_sensor.rinnai_touch_pump_operating_sensor
2024-07-08 22:25:12.614 DEBUG (MainThread) [custom_components.rinnaitouch.climate] Removing entity: rinnaitouch binary_sensor.rinnai_touch_cooler_busy_sensor
2024-07-08 22:25:42.955 WARNING (MainThread) [homeassistant.helpers.frame] Detected that custom integration 'hacs' accesses hass.helpers.event. This is deprecated and will stop working in Home Assistant 2024.11, it should be updated to import functions used from event directly at custom_components/hacs/base.py, line 630: self.hass.helpers.event.async_track_time_interval(, please create a bug report at https://github.com/hacs/integration/issues
2024-07-08 22:25:47.455 WARNING (MainThread) [homeassistant.components.automation.bellhorn_fix] Bellhorn Fix: Already running
2024-07-08 22:26:12.599 DEBUG (Thread-3 (receiver)) [pyrinnaitouch.receiver] Sequence: 0 Json: [{"SYST": {"CFG": {"MTSP": "N", "NC": "07", "DF": "N", "TU": "C", "CF": "1", "VR": "0183", "CV": "0010", "CC": "086", "ZA": "                ", "ZB": "                ", "ZC": "                ", "ZD": "                " }, "AVM": {"HG": "Y", "EC": "N", "CG": "N", "RA": "N", "RH": "N", "RC": "N" }, "OSS": {"DY": "MON", "TM": "10:27", "BP": "Y", "RG": "Y", "ST": "N", "MD": "H", "DE": "N", "DU": "N", "AT": "999", "LO": "N" }, "FLT": {"AV": "N", "C3": "061" } } },{"HGOM": {"CFG": {"ZUIS": "Y", "ZAIS": "N", "ZBIS": "N", "ZCIS": "N", "ZDIS": "N", "CF": "Y", "PS": "N", "DG": "A" }, "OOP": {"ST": "N", "CF": "N", "FL": "09", "SN": "N" }, "GSO": {"OP": "M", "SP": "21", "AO": "N" }, "GSS": {"HC": "Y", "FS": "Y", "GV": "Y", "PH": "N", "AT": "W", "AZ": "W" }, "APS": {"AV": "N" }, "ZUO": {"UE": "Y" }, "ZAO": {"UE": "N" }, "ZBO": {"UE": "N" }, "ZCO": {"UE": "N" }, "ZDO": {"UE": "N" }, "ZUS": {"AE": "Y", "MT": "200" }, "ZAS": {"AE": "N", "MT": "206" }, "ZBS": {"AE": "N", "MT": "206" }, "ZCS": {"AE": "N", "MT": "206" }, "ZDS": {"AE": "N", "MT": "206" } } }]
2024-07-08 22:26:12.599 DEBUG (Thread-2 (poll_loop)) [pyrinnaitouch.system_status] We are in HEAT mode
2024-07-08 22:26:12.600 DEBUG (Thread-2 (poll_loop)) [pyrinnaitouch.unit_status] Unit is ON
2024-07-08 22:26:12.600 DEBUG (Thread-2 (poll_loop)) [pyrinnaitouch.unit_status] Fan Speed is: 09
2024-07-08 22:26:12.600 DEBUG (Thread-2 (poll_loop)) [pyrinnaitouch.unit_status] Unit OpMode is: M
2024-07-08 22:26:12.600 DEBUG (Thread-2 (poll_loop)) [pyrinnaitouch.unit_status] Unit set temp is: 21
2024-07-08 22:26:12.600 DEBUG (Thread-2 (poll_loop)) [custom_components.rinnaitouch.climate] Ext. temp sensor entity name: None
2024-07-08 22:26:12.601 DEBUG (MainThread) [custom_components.rinnaitouch.climate] Internal temperature sensor reports: 999
2024-07-08 22:26:23.532 WARNING (MainThread) [homeassistant.components.automation.link_shed_1r_switch] Link Shed 1R Switch: Already running
2024-07-08 22:26:23.533 WARNING (MainThread) [homeassistant.components.automation.link_z_shed_2r_switch] Link_Z_Shed 2R Switch: Already running
2024-07-08 22:26:23.535 WARNING (MainThread) [homeassistant.components.automation.link_shed_porch_switch] Link Shed Porch Switch: Already running
2024-07-08 22:27:12.590 DEBUG (Thread-3 (receiver)) [pyrinnaitouch.receiver] Sequence: 0 Json: [{"SYST": {"CFG": {"MTSP": "N", "NC": "07", "DF": "N", "TU": "C", "CF": "1", "VR": "0183", "CV": "0010", "CC": "086", "ZA": "                ", "ZB": "                ", "ZC": "                ", "ZD": "                " }, "AVM": {"HG": "Y", "EC": "N", "CG": "N", "RA": "N", "RH": "N", "RC": "N" }, "OSS": {"DY": "MON", "TM": "10:28", "BP": "Y", "RG": "Y", "ST": "N", "MD": "H", "DE": "N", "DU": "N", "AT": "999", "LO": "N" }, "FLT": {"AV": "N", "C3": "061" } } },{"HGOM": {"CFG": {"ZUIS": "Y", "ZAIS": "N", "ZBIS": "N", "ZCIS": "N", "ZDIS": "N", "CF": "Y", "PS": "N", "DG": "A" }, "OOP": {"ST": "N", "CF": "N", "FL": "09", "SN": "N" }, "GSO": {"OP": "M", "SP": "21", "AO": "N" }, "GSS": {"HC": "Y", "FS": "Y", "GV": "Y", "PH": "N", "AT": "W", "AZ": "W" }, "APS": {"AV": "N" }, "ZUO": {"UE": "Y" }, "ZAO": {"UE": "N" }, "ZBO": {"UE": "N" }, "ZCO": {"UE": "N" }, "ZDO": {"UE": "N" }, "ZUS": {"AE": "Y", "MT": "200" }, "ZAS": {"AE": "N", "MT": "206" }, "ZBS": {"AE": "N", "MT": "206" }, "ZCS": {"AE": "N", "MT": "206" }, "ZDS": {"AE": "N", "MT": "206" } } }]
2024-07-08 22:27:12.592 DEBUG (Thread-2 (poll_loop)) [pyrinnaitouch.system_status] We are in HEAT mode
2024-07-08 22:27:12.592 DEBUG (Thread-2 (poll_loop)) [pyrinnaitouch.unit_status] Unit is ON
2024-07-08 22:27:12.592 DEBUG (Thread-2 (poll_loop)) [pyrinnaitouch.unit_status] Fan Speed is: 09
2024-07-08 22:27:12.592 DEBUG (Thread-2 (poll_loop)) [pyrinnaitouch.unit_status] Unit OpMode is: M
2024-07-08 22:27:12.592 DEBUG (Thread-2 (poll_loop)) [pyrinnaitouch.unit_status] Unit set temp is: 21
2024-07-08 22:27:12.593 DEBUG (Thread-2 (poll_loop)) [custom_components.rinnaitouch.climate] Ext. temp sensor entity name: None
2024-07-08 22:27:12.594 DEBUG (MainThread) [custom_components.rinnaitouch.climate] Internal temperature sensor reports: 999

Any more thoughts after the latest logs?

Yes. My thoughts are confirmed. The temperature is reported on the common zone. I’ll try and address that in the next few weeks.

There is a sort of workaround you could use for the time being: You can set up the common zone and then use the name of the temperature sensor and use it for the main unit’s temperature. I think you’ll need to know the name of the sensor during setup, so you may have to set up, get the name, remove, restart, and set up again.

Haha yeah I tried that the first time I noticed it was coming through on the comon zone temp but it didn’t seem to work - I probably mistyped it though. I’ll give it another go tomorrow or the next day… :+1:
Thanks.

ok, so I set it up again, and said I had a common zone.
the temp sensor for common zone is called “sensor.rinnai_touch_common_zone_temperature_sensor”

I deleted the setup, re did it and put that as the name for the normal temp sensor, but it still shows as “unavailable” for the normal zone, even though the common zone temp sensor is giving a reading (and everything else in the common zone reads as unavailable )

UPDATE: after leaving it for 10 min, i think it might have updated and now shows the common zone temp in the normal zone… so a temporary fix!

1 Like

Hey everyone, Just thought i would share something that i just found as i know there are posts above about how crappy the wifi connectivity is for the Wifi Touch module (hot tip - try wifi channel 6 if you don’t want to read the rest of the post).

After about 4 months of really crappy connectivity to my wifi touch module and the last 3 of them where my Homebridge / HA setup has not been able to connect all / as well as brivis touch app not even being able to connect (I always delete the brivis touch app once Homebridge is working so it doesnt interfere) I was finally able to get my module working again today.

I had been looking at buying a new Wifi Touch unit for the past few weeks, been on the phone with Rinnai support multiple times, had my Brivis heater serviced yesterday and the guy doing it said “the error lights indicate replace the module”

After all that, it ended up just being…

The Bloody Wifi Channel on the Access Point.

I have a unifi setup with 2x AP’s, and the Brivis module is connected to a 2.4Ghz only network and locked in to a specific access point that’s about 2 meters away.

The connectivity has been crap - massive packet loss, when i do get a ping response - in the thousands of ms.

as a last resort i was doing some troubleshooting to isolate my wireless network as the issue - i tried to configure the module as new via the brivis app - but using my iphone as a hotspot.

the brivis app process errored at multiple points, but i found that if i reboot the wifi touch module, and press retry on the app - it would let me get a step further than the last time… until… it finally connected and was showing all zones / temps correctly.

The unit was flashing 7 orange lights which means no cloud connectivity available (don’t really care about that) - but it meant the brivis unit wasn’t totally cactus.

So now i knew i could connect eventually. I went through and tried getting the thing to connect to my home wifi, after using the reboot the unit process to allow me to get to the next steps in the brivis app. eventually i could see the Wifi Touch module show up in my unifi dashboard - but i had about 99% packet loss and the connection was lousy.

I started playing around with my wifi settings (making sure i locked the brivis unit to the closest access point) and then started playing around with the channels.

The AP was originally on channel 1 (my other AP was set to Channel 6), i changed it to channel 11 with a slight improvement.

I changed the channel on my other AP, and set the closest one to Channel 6 and Voila! i went from 99% packet lost to consistent sub 100ms ping responses!!

After that, i deleted the brivis wifi touch app, started the homebridge container, updated the config for the correct IP and everything started working again.

Sorry for the long winded post - but I thought this might help people who have been battling the flakiness of these units.

Cheers

Hi, thanks for your post… got me hopeful!!
I also run a unifi network with multiple APs.
The Ap my Brivis wifi is 1 meter away from was on Channel 3 for the 2.4G IOT network…
Now I have disabled the Funtastix addon, as I get an error flooding the logs with 1000’s of message per second, which rapidly fills the HDD and crashes Home Assistant. I have tried the HomeBridge plugin also, but randomly loses connection, at least once per day and I just got sick of all the rebooting of everything in attempt to get it back.
Now my history of poor connection goes way back to day 1 of this damn module, where Fantastix has tried hard to work around the issue, but seemed bottom line I had a dud module, So earlier this year I bit the bullet and forked out for a new module.
I have to say the Wifi on the new module was significantly better, showing 35db connection, considering the previous module would not do better than 85db no matter what I tried.
But the new module suffers the issue I mention above, which I am almost thinking another dud, but a different issue…
Curiously the new module works 100% fine with the Brivis app! Albeit a pain in the a.se app, but It connects every time!
Sooo… I with your post, I thought maybe…. And it could allow me to enable Funtastix addon again, so I set the closest AP to Channel 6, I. Checked the ping before and after and not much change, varies between 30ms to 300ish ms…
I enabled Funtastix addon and it connected to the module fine and got all its status etc straight away.
I the tailed the log on HA grepped for rinnai….

Aug 21 20:22:39 ha2 homeassistant[679]: #033[31m2024-08-21 20:22:39.821 ERROR (Thread-37826 (receiver)) [pyrinnaitouch.receiver] Couldn't send empty command (connection): (OSError(9, 'Bad file descriptor'))#033[0m
Aug 21 20:22:39 ha2 homeassistant[679]: #033[31m2024-08-21 20:22:39.822 ERROR (Thread-37826 (receiver)) [pyrinnaitouch.receiver] Socket timed out, renewing connection (OSError(9, 'Bad file descriptor'))#033[0m
Aug 21 20:22:39 ha2 homeassistant[679]: #033[31m2024-08-21 20:22:39.823 ERROR (Thread-37874 (receiver)) [pyrinnaitouch.receiver] Couldn't send empty command (connection): (OSError(9, 'Bad file descriptor'))#033[0m
Aug 21 20:22:39 ha2 homeassistant[679]: #033[31m2024-08-21 20:22:39.823 ERROR (Thread-37874 (receiver)) [pyrinnaitouch.receiver] Socket timed out, renewing connection (OSError(9, 'Bad file descriptor'))#033[0m
Aug 21 20:22:39 ha2 homeassistant[679]: #033[31m2024-08-21 20:22:39.824 ERROR (Thread-37826 (receiver)) [pyrinnaitouch.receiver] Couldn't send empty command (connection): (OSError(9, 'Bad file descriptor'))#033[0m
Aug 21 20:22:39 ha2 homeassistant[679]: #033[31m2024-08-21 20:22:39.824 ERROR (Thread-37826 (receiver)) [pyrinnaitouch.receiver] Socket timed out, renewing connection (OSError(9, 'Bad file descriptor'))#033[0m

So unfortunately Channel 6 has not solved my issue :frowning:

So one thing i had learnt from the past is that the brivis unit only seems to allow one connection at a time.

Even when it’s running in it’s Access Point mode as part of the setup process, it doesnt seem to allow 2 devices to connect to the Brivis Wifi Network.

Have you still got the brivis app installed on any devices?

I found a big connection stability increase for homebridge when i uninstalled the brivis touch app from all of my devices so the only thing that would talk to the brivis was homebridge.

Have you made sure there is only 1 device / service connecting to the Brivis unit, and uninstall the app to limit the risk of it hi-jacking your connection?

Hope this helps

Hi SJM,
Thanks again for the suggestion, yes been well aware of the single connection issue to these modules, although while I have ensured the app is not running anywhere, I had never gone as far as removing the app from devices.
So just tried that, I had the app on my ipad as well as phone, removed it from both.
Power cyled the module, rebooted the access point, then restarted the funtastix add on, sure enough, within a minute, the same issue flooding the log occurs.
Interestingly enough, when I use the rinnai app, it is always connecting via cloud / external connection, not local. I am thinking that would suggest something has hold of the local connection…
Beats me what it could be!
But restarting the funtastix addon briefly regains connection, until the log spamming re-occurs not long after,

Definitely open to more suggestions, I would love to have this working reliably, when it used to play up every few days, my automations to control the climate are litterally funtastic(x)… having to run with default brivis schedules is at least reliable, but not exactly smart.

well - after waking up this morning to a unit that wasn’t connected - it wasn’t channel 6 after all.

i did a quick scan and found that channel 6 was now heavily congested - so flicked over to channel 1 and that did the trick.

@grouts - have you tried the Homebridge plugin for the brivis to isolate if your issue is purely with the funtastix addon?

I just realised you can prevent the logs being flooded by changing the logging behaviour:

logger:
  default: warn
  logs:
    custom_components.rinnaitouch.pyrinnaitouch: critical

This will avoid errors being logged for the component.

You can go more specific if you like:

logger:
  default: warn
  logs:
    custom_components.rinnaitouch.pyrinnaitouch.receiver: critical

hey SJM, sorry to hear about your channel 6 not being the magical fix,
these modules are so incredibly annoying!
Yes, I have used the M@ntorok plugin on HB, and it is a LOT more reliable than using the HA addon, but still randomly loses connection.
As the weather here in Melb warms up slowly, I might go back to playing more, but there is nothing worse than waking up to a freezing cold house in the middle of winter, so I resorted to the non smart schedule built into the NC-6 and disabled both HA and HB addons.
As I said earlier, the string thing, while the Rinnai app works 100% of the time, it always connects from external (cloud icon in lower right), despite I am in the house,
although maybe that happens as my phone is not on the IOT network. although user and IOT networks are fully routed.
I have wasted so much time and Money on this thing, It wore me down thru winter…
Yet last summer to run my cooling it did great !?!?

Thanks Funtastix, I was hoping there might be a way to stop the logs being spammed,

So I have “logger: !include logger.yaml”
So updated my logger.yaml as follows:

default: warn
##   Rinnai Touch integration debug logging
#default: warning
logs:
##   Rinnai Touch integration debug logging
  custom_components.rinnaitouch.pyrinnaitouch.receiver: critical
#  custom_components.rinnaitouch: debug
#  custom_components.rinnaitouch.pyrinnaitouch: debug
#  pyrinnaitouch: debug

Saved, ran config check and restarted HA,
then I enabled the Addon:

Shortly after, the Log still gets flooded…

Aug 22 13:16:32 ha2 homeassistant[679]: #033[31m2024-08-22 13:16:32.920 ERROR (Thread-210 (receiver)) [pyrinnaitouch.receiver] Couldn't send empty command (connection): (OSError(9, 'Bad file descriptor'))#033[0m
Aug 22 13:16:32 ha2 homeassistant[679]: #033[31m2024-08-22 13:16:32.920 ERROR (Thread-210 (receiver)) [pyrinnaitouch.receiver] Socket timed out, renewing connection (OSError(9, 'Bad file descriptor'))#033[0m
Aug 22 13:16:32 ha2 homeassistant[679]: #033[31m2024-08-22 13:16:32.922 ERROR (Thread-210 (receiver)) [pyrinnaitouch.receiver] Couldn't send empty command (connection): (OSError(9, 'Bad file descriptor'))#033[0m
Aug 22 13:16:32 ha2 homeassistant[679]: #033[31m2024-08-22 13:16:32.923 ERROR (Thread-210 (receiver)) [pyrinnaitouch.receiver] Socket timed out, renewing connection (OSError(9, 'Bad file descriptor'))#033[0m
Aug 22 13:16:32 ha2 homeassistant[679]: #033[31m2024-08-22 13:16:32.923 ERROR (Thread-163 (receiver)) [pyrinnaitouch.receiver] Couldn't send empty command (connection): (OSError(9, 'Bad file descriptor'))#033[0m
Aug 22 13:16:32 ha2 homeassistant[679]: #033[31m2024-08-22 13:16:32.923 ERROR (Thread-163 (receiver)) [pyrinnaitouch.receiver] Socket timed out, renewing connection (OSError(9, 'Bad file descriptor'))#033[0m
Aug 22 13:16:32 ha2 homeassistant[679]: #033[31m2024-08-22 13:16:32.925 ERROR (Thread-210 (receiver)) [pyrinnaitouch.receiver] Couldn't send empty command (connection): (OSError(9, 'Bad file descriptor'))#033[0m
Aug 22 13:16:32 ha2 homeassistant[679]: #033[31m2024-08-22 13:16:32.925 ERROR (Thread-210 (receiver)) [pyrinnaitouch.receiver] Socket timed out, renewing connection (OSError(9, 'Bad file descriptor'))#033[0m
Aug 22 13:16:32 ha2 homeassistant[679]: #033[31m2024-08-22 13:16:32.926 ERROR (Thread-163 (receiver)) [pyrinnaitouch.receiver] Couldn't send empty command (connection): (OSError(9, 'Bad file descriptor'))#033[0m
Aug 22 13:16:32 ha2 homeassistant[679]: #033[31m2024-08-22 13:16:32.926 ERROR (Thread-163 (receiver)) [pyrinnaitouch.receiver] Socket timed out, renewing connection (OSError(9, 'Bad file descriptor'))#033[0m

Could be that you need to change from

custom_components.rinnaitouch.pyrinnaitouch.receiver

To

pyrinnaitouch.receiver

Yes, looks like that did the trick!!
Of course the problem is why does it happen and how to stop it,
The messages are of course saying the addon can no longer communicate to the module,
This started happening a few months back, yesterday I put the old module back on, as I never has this issue with it, only that it continually would drop off wifi. But alas, the same log spamming message occurred with the old module as well,
Looking at my unifi console, shows -85dbm for the old module wifi connection and -35 to -45 dbm on the new, big difference, definitely shows there is something wrong with the old module.
But why am i almost immediately after a successful connection from HA to the module burst into the communication error that spams the log ( until we finally successfully masked the error messages)?

@SJM what settings to you have for your IOT network / wifi?
I feel this has to be related to a wifi tuning on the unifi?

Question. Is this Hot Water Heater (see photo) compatible with the integration? This is a new home build and I just came across this forum post.

Also, if this is compatible, has anyone connected one of these up to HA before? What all can you do with it in HA?

Unfortunately not. The Rinnai / Brivis smart home ecosystem isn’t very mature. They were one of the last to market for Home automation and for a long time they stonewalled 3rd party integration, refusing to release details of the API. The bulk of the advances in understanding the protocol have been via reverse engineering.

The API this integration uses is based off the Rinnai Touch app, not the Rinnai central App, as this heater seems to use.

The Rinnai Central app, doesn’t seem to expose too much functionality (based on the screenshots), so the protocol should be easy to reverse engineer, unlike this integration that supports a plethora of configurations and setups.

oh bummer. okay thanks for the response.