Rinnai Heating/Cooling Wifi Module

Looking good. The custom button card is pretty powerful. Do your zone cards include the switch? i.e. click it to turn the zones on and off?

Re the state, I had the exact same problem, but after looking at it for a bit, it was as simple as removing the retain line. My code is below if it helps.

climate:
  - platform: mqtt
    name: Brivis Thermostat (MQTT)
    modes:
      - "off"
      - "heat"
      - "cool"
      - "fan_only"
    fan_modes:
      - "high"
      - "medium"
      - "low"
    temperature_command_topic: "rinnai/hvac/temperature/set"
    temperature_state_topic: "rinnai/hvac/temperature/get"
    fan_mode_command_topic: "rinnai/hvac/fan_mode/set"
    fan_mode_state_topic: "rinnai/hvac/fan_mode/get"
    mode_command_topic: "rinnai/hvac/mode/set"
    mode_state_topic: "rinnai/hvac/mode/get"
    precision: 1
    #retain: true

@David_M, I decided to link the thermostat (& those switches) to Zone U for Single Temp Set Point setups like ours even though not everyone (including myself) has a common zone. The only impact is that the current temp is now sourced from Zone U instead of Zone A. For Multi Temp Set Point setups there is one thermostat per enabled zone (A to D) but not for Zone U.

As for showing the zone status in the Home app I don’t have a lot of options. Here’s a list of all the available service types in Homebridge: https://developers.homebridge.io/ (and as I found out the hard way not all of those are supported by the Home app in iOS).

The only ones that relate to temperature are:

  • Thermostat
  • Heater Cooler
  • Temperature sensor

I’m thinking the best solution is to use the “Heater Cooler” service (which is very similar to the thermostat) for zones A - D. There would still be a separate thermostat for zone U.

The “heater cooler” could be used as an alternative to the zone on/off switches as it has a similar characteristic (ie. you can switch a zone on and off). It can show the temp in each zone and the status (idle/heating/cooling) is indicated by the colour of the dot (green/orange/blue). I think I can remove the ability to set the target temp and just show off and auto options in the “heater cooler” config too. That way only the Zone U thermostat will set the target temp.

This is probably not too difficult to implement and I could provide a config.json option if people don’t like it.

So I finally was able to get my Brivis Ducted Heating and Brivis Evap Cooling connected to one single Rinnai Touch controller.

Reading up and down this forum, it doesn’t look like we’ve pushed to have this officially integrated yet? Would like to list the steps to ensure that I am doing it correctly (and allowing others to follow along easier that stumble upon this).

Running: Home Assistant on a Raspberr Pi with Portainer installed.

Yep - they don’t show any feedback it is happening (might be a way to do that …) but once the new mqtt status comes they update to current state.

You champ - turns out it wasn’t actually the retain flag - i had a template:

mode_state_template: “{{ value_json }}”

… not sure why it didn’t work, but i deleted it and it now works :slight_smile:

Cheers

Hey @FrontBottom, I’m curious how you’re getting the temperatures for your zones in your controller UI. It’s not from the Rinnai Touch module, so wondering if I can do something similar in the plugin

Reading up and down this forum, it doesn’t look like we’ve pushed to have this officially integrated yet? Would like to list the steps to ensure that I am doing it correctly (and allowing others to follow along easier that stumble upon this).

Hey @Hass10… I don’t think there will be an official integration in to HA any time soon as someone would have to take all the great work @Mantorok has done done developing a HomeBridge Node.js plugin and convert it in to a HA integration. Also, there’s the possibility the manufacturer may change the firmware and code base in the future to support Google Assistant. In the meantime, the best way to get up and running would be to:

Hope that helps.

2 Likes

You are such a lifesaver! This is a really great guide that helped me out 1000%, can’t thank you enough! I was stuck on getting the Portainer image working until you linked it.

Have installed the plugin in Homebridge, but as soon as I added Homebridge into HA through Integration the Homebridge logs are now looping the following:


[6/23/2020, 12:12:57 AM] [RinnaiTouchPlatform] [ERROR] Unable to connect

[6/23/2020, 12:12:57 AM] [RinnaiTouchPlatform] [ERROR] Unable to connect

[6/23/2020, 12:12:57 AM] [RinnaiTouchPlatform] [INFO] Found Rinnai Touch module at 192[IP.Address]:27847

[6/23/2020, 12:12:57 AM] [RinnaiTouchPlatform] [WARNING] TCP Connection failed. connect ECONNREFUSED 192[IP.Address]:27847. Attempt 1 of 3

[6/23/2020, 12:12:58 AM] [RinnaiTouchPlatform] [INFO] Found Rinnai Touch module at 192[IP.Address]:27847

[6/23/2020, 12:12:58 AM] [RinnaiTouchPlatform] [WARNING] TCP Connection failed. connect ECONNREFUSED 192[IP.Address]:27847. Attempt 2 of 3

[6/23/2020, 12:12:59 AM] [RinnaiTouchPlatform] [INFO] Found Rinnai Touch module at 192[IP.Address]:27847

[6/23/2020, 12:12:59 AM] [RinnaiTouchPlatform] [WARNING] TCP Connection failed. connect ECONNREFUSED 192[IP.Address]:27847. Attempt 3 of 3

[6/23/2020, 12:13:00 AM] [RinnaiTouchPlatform] [ERROR] Unable to connect

[6/23/2020, 12:13:00 AM] [RinnaiTouchPlatform] [ERROR] Unable to connect

[6/23/2020, 12:13:00 AM] [RinnaiTouchPlatform] [ERROR] Unable to connect

[6/23/2020, 12:13:00 AM] [RinnaiTouchPlatform] [INFO] Found Rinnai Touch module at 192[IP.Address]:27847

Hi @Hass10, try restarting your module and ensure the TouchApp is closed on your phone (not even running in the background).

If that doesn’t fix it can you post your config.json file

Thanks for your help, definitely learning a lot on the job here.

Here is my Homebridge JSON, the app is closed but still getting connection error:

{
    "bridge": {
        "name": "Homebridge 49BA",
        "username": "[MAC ADDRESS]",
        "port": 52038,
        "pin": "xxx-xx-xxx"
    },
    "accessories": [],
    "platforms": [
        {
            "platform": "RinnaiTouchPlatform",
            "name": "Rinnai Touch",
            "useHeaterCooler": false,
            "showZoneSwitches": true,
            "showFan": true,
            "showAuto": true,
            "showAdvanceSwitches": true,
            "showManualSwitches": true,
            "clearCache": false,
            "debug": false
        }
    ]
}

Config looks fine.

When you use the TouchApp on your phone does it show the WiFi or cloud icon (on the bottom right of the screen, just above the On/Off button)?

It has a greyed out lock, greyed out spanner, and a lit up cloud icon.

Enabled Debug mode so maybe this will help?

[6/23/2020, 12:43:28 AM] [Rinnai Touch] [INFO] Found Rinnai Touch module at 192[IP.Address]:27847
[6/23/2020, 12:43:28 AM] [Rinnai Touch] [WARNING] TCP Connection failed. connect ECONNREFUSED 192[IP.Address]:27847. Attempt 1 of 3
[6/23/2020, 12:43:28 AM] [Rinnai Touch] [DEBUG] RinnaiTouchTcp.connect()
[6/23/2020, 12:43:28 AM] [Rinnai Touch] [DEBUG] RinnaiTouchUdp.getAddress()
[6/23/2020, 12:43:29 AM] [Rinnai Touch] [INFO] Found Rinnai Touch module at 192[IP.Address]:27847
[6/23/2020, 12:43:29 AM] [Rinnai Touch] [WARNING] TCP Connection failed. connect ECONNREFUSED 192[IP.Address]:27847. Attempt 2 of 3
[6/23/2020, 12:43:29 AM] [Rinnai Touch] [DEBUG] RinnaiTouchTcp.connect()
[6/23/2020, 12:43:29 AM] [Rinnai Touch] [DEBUG] RinnaiTouchUdp.getAddress()
[6/23/2020, 12:43:30 AM] [Rinnai Touch] [INFO] Found Rinnai Touch module at 192[IP.Address]:27847
[6/23/2020, 12:43:30 AM] [Rinnai Touch] [WARNING] TCP Connection failed. connect ECONNREFUSED 192[IP.Address]:27847. Attempt 3 of 3
[6/23/2020, 12:43:30 AM] [Rinnai Touch] [ERROR] Error: Unable to connect
    at RinnaiTouchRepository.connect (/homebridge/node_modules/homebridge-rinnai-touch-plugin/repositories/RinnaiTouchRepository.js:139:15)
    at RinnaiTouchRepository.process (/homebridge/node_modules/homebridge-rinnai-touch-plugin/repositories/RinnaiTouchRepository.js:92:17)
[6/23/2020, 12:43:30 AM] [Rinnai Touch] [ERROR] Error: Unable to connect
    at RinnaiTouchRepository.connect (/homebridge/node_modules/homebridge-rinnai-touch-plugin/repositories/RinnaiTouchRepository.js:139:15)
    at RinnaiTouchRepository.process (/homebridge/node_modules/homebridge-rinnai-touch-plugin/repositories/RinnaiTouchRepository.js:92:17)
[6/23/2020, 12:43:30 AM] [Rinnai Touch] [ERROR] Error: Unable to connect
    at RinnaiTouchRepository.connect (/homebridge/node_modules/homebridge-rinnai-touch-plugin/repositories/RinnaiTouchRepository.js:139:15)
    at RinnaiTouchRepository.process (/homebridge/node_modules/homebridge-rinnai-touch-plugin/repositories/RinnaiTouchRepository.js:92:17)
[6/23/2020, 12:43:30 AM] [Rinnai Touch] [DEBUG] RinnaiTouchAdvanceSwitch.getAdvanceSwitchOn()
[6/23/2020, 12:43:30 AM] [Rinnai Touch] [DEBUG] RinnaiTouchService.getScheduleOverride(U)
[6/23/2020, 12:43:30 AM] [Rinnai Touch] [ERROR] TypeError: Cannot read property 'U' of undefined
    at RinnaiTouchService.getScheduleOverride (/homebridge/node_modules/homebridge-rinnai-touch-plugin/services/RinnaiTouchService.js:184:45)
    at RinnaiTouchAdvanceSwitch.getAdvanceSwitchOn (/homebridge/node_modules/homebridge-rinnai-touch-plugin/accessories/RinnaiTouchAdvanceSwitch.js:31:34)
    at RinnaiTouchAdvanceSwitch.getCharacteristicValue (/homebridge/node_modules/homebridge-rinnai-touch-plugin/accessories/RinnaiTouchAccessory.js:66:25)
    at runNextTicks (internal/process/task_queues.js:62:5)
    at processImmediate (internal/timers.js:429:9)
[6/23/2020, 12:43:30 AM] [Rinnai Touch] [DEBUG] RinnaiTouchRepository.process({"type":"get"})
[6/23/2020, 12:43:30 AM] [Rinnai Touch] [DEBUG] RinnaiTouchRepository.connect()
[6/23/2020, 12:43:30 AM] [Rinnai Touch] [DEBUG] RinnaiTouchTcp.connect()
[6/23/2020, 12:43:30 AM] [Rinnai Touch] [DEBUG] RinnaiTouchUdp.getAddress()


I take it you are connected to your home WiFi?

If so it sounds like the TCP connection is not working. Perhaps try rebooting your router/access point. Beyond that all I can suggest is contacting Brivis support to ask why the WiFi (ie. TCP) connection is not working on the TouchApp (which is the same one the plugin uses).

1 Like

Hey @Mantorok… You’ve mentioned before you can see the module do an auto reboot in some scenarios. Can you see how this is triggered, or do you think we could trace it somehow. It would be great if we can run a REST command of something to force a reboot. Seems a bit crazy the ‘mysimplelink’ frontend doesn’t have a button for this. This would save a lot of us from having to crawl under the house or up in a manhole to physically power cycle the module. Could even automate a restart whenever the ECONNREFUSED error is logged continuously… Just a thought.

FACEPALM I’m SO SORRY for wasting your time, of course I tried everything except a reboot of my router.

Seems to be working with no issues now!!

[6/23/2020, 1:08:40 AM] [Rinnai Touch] [DEBUG] RinnaiTouchRepository.dataHandler(N000017[{"SYST": {"CFG": {"MTSP": "N", "NC": "00", "DF": "N", "TU": "C", "CF": "1", "VR": "0183", "CV": "0010", "CC": "043", "ZA": "                ", "ZB": "                ", "ZC": "                ", "ZD": "                " }, "AVM": {"HG": "Y", "EC": "Y", "CG": "N", "RA": "N", "RH": "N", "RC": "N" }, "OSS": {"DY": "TUE", "TM": "10:31", "BP": "Y", "RG": "Y", "ST": "N", "MD": "H", "DE": "N", "DU": "N", "AT": "999", "LO": "N" }, "FLT": {"AV": "N", "C3": "046" } } },{"HGOM": {"CFG": {"ZUIS": "Y", "ZAIS": "N", "ZBIS": "N", "ZCIS": "N", "ZDIS": "N", "CF": "N", "PS": "Y", "DG": "W" }, "OOP": {"ST": "F", "CF": "N", "FL": "16", "SN": "N" }, "GSS": {"HC": "N", "FS": "N", "GV": "N", "PH": "N" }, "APS": {"AV": "N" }, "ZUS": {"AE": "N", "MT": "999" }, "ZAS": {"AE": "N", "MT": "999" }, "ZBS": {"AE": "N", "MT": "999" }, "ZCS": {"AE": "N", "MT": "999" }, "ZDS": {"AE": "N", "MT": "999" } } }])

Now I just need to figure out how to get it all working in HA correctly, so will be scouring this thread for ideas and suggestions.

Again, thank you so much for your prompt responses and for helping me out, apologies that it was not really relevant!

Any reason that my TCP connection seems to cycle open/closed? Is this normal or should I buy a new router lol

[6/23/2020, 1:14:39 AM] [Rinnai Touch] [INFO] TCP Connection: Open
[6/23/2020, 1:14:45 AM] [Rinnai Touch] [INFO] TCP Connection: Closed
[6/23/2020, 1:15:40 AM] [Rinnai Touch] [INFO] TCP Connection: Open
[6/23/2020, 1:15:47 AM] [Rinnai Touch] [INFO] TCP Connection: Closed

No worries @Hass10, glad its working for you now.

@David_M, yes if the TCP connection is left open for 5 min it will disconnect but the plugin should detect that and attempt to reconnect. The API doc says it reboots the module when this happens but I haven’t confirmed that.

The API doc does mention a way to force a reboot in section 3.4 but I’m not sure how to issue these types of commands. If its via TCP then it wouldn’t help anyway.

Another option I explored some time ago was to use a linux command called tcpkill which may force a TCP connection to close. I never got around to actually trying it out.

1 Like

@Hass10, the TCP open/close would happen when a request is made by HomeKit. eg. opening the Home app. It probably just requested an update to its current state.

Yeh sorry - didn’t explain that. I’ve got Xiaomi temp sensors all around the house, so I just have those values pulled into the custom button.

I ended up putting the module on a “Smart Switch” so I can power it on/off remotely (granted there are some risks in doing that). I’ve also found that forcing it to reconnect to my WiFi seems fix most connection issues I’ve had. (Noting that none of these are a nice “integrated” solution!)

How do you pull the temps? It is a REST API?

(Sorry - i thought I was replying to a “Home Assistant-er”, not you!)

Nah - within home asisstant, there are lots of ways to pull various sensors/devicves/entities into the UI. in the one I showed, it is as simple as telling it where to get the displayed value from - it doesn’t even know it is a temperature value (if that makes sense?)

There is an easy way to feed these value back into Homebridge (via Homekit integration module) - but not sure how you can get access to them from the plugin?