I think your alternative suggestion would work fine. Having multiple thermostats would be a pain, unless you had a Multi-Temperature Set Point configuration.
I’m relying on David here … can’t get my head around it enough at th emoment to add any value - but happily sitting on the sidelines seeing good progress.
Hi @Mantorok, looks like you have a created a real nice plugin for the Brivis heater which is long awaited. Mate for a NOOB like me I’m struggling to understand how to install the plugin. You mention that you need to install Homebridge first of which I set up the native Homebridge in HA. I can telnet to the HA box which is the standard HA RPi install but does not have the ability to install npm to install your plugin. Am I going about this the right way and and assistance would be greatly appreciated. Thanks!
Hi @aquavass, I actually don’t use HA. I have Homebridge installed in a Docker container running on a NAS. If you haven’t installed Homebridge itself then I would suggest you start here: https://github.com/homebridge/homebridge/wiki There are instructions for installing it on an RPi.
I would strongly recommend installing the “Homebridge Config UI X” with it which gives you a nice Web User Interface from which you can search for, install & configure plugins (including mine).
Hope that helps.
I thought it was integrated into home assistant as I’m looking for a central view on all smart devices… trying not to add more components. Thanks for the update.
Hey @aquavass - If you’re running hass.io on a RPi, which is essentially a custom OS that runs docker to present Home Asssistant and plugins, you should be right to following this guide using the Portainer plugin: Tutorial: add Homebridge to Hass.io using Portainer
Once you have the HomeBridge container up and running, you can open its portal and install the RinnaiTouch plugin, and hopefully it will automatically find your module and automatically create all the thermostat accessories. After that, some of your options of controlling it are:
- Home Assistant HomeKit Controller integration (will create new entities)
- MQTT
- Node-Red HomeBridge plugin
Hope that helps.
Version 2.3.1 of the plugin has been released. It replaces the “Simple” MQTT format with a “Home Assistant HVAC” specific format.
@David_M, please let me know if this new format is what you are after. I have not yet implemented the ability to publish when states change as I think there may be a bit of work involved. I want to ensure you are happy with the topics & payloads first before I start work on that.
Hi David… you have me thinking about my options…what is the overhead on the RPI if I have HomeBridge running on it or I could go down Mantoroks path and install it on my NAS which is a Synology. What would your recommendation be?
Thanks in advance
Hi John.
Its really hard to say what option is right for you. it depends on so much.
Is it an RPI4? What else are you running on it? how many smart home devices do you have.
Based on your comments, I suspect your relatively new at all of this. So if that’s the case, i’d install the portainer addon, install homebridge as David suggested. Worse case is your RPI runs like a dog and you uninstall it. No big deal, you learnt something.
Hi guys.
Long time. Good to see you have a much better solution since I last dropped by.
Remotely (from Singapore) I installed Homebridge in a Docker container on my NUC. Added the Plugin and boom… kit just works. Good Job Mantorok
I’ve just upgraded to the 2.3.1 version with the MQTT HVAC integration. However I don’t feel the topic naming will correctly support the Home Assistant MQTT HVAC correctly.
For me I get the following messages every few seconds:
- [INFO] Publish: ha/action/get, Payload: {“A”:“idle”,“B”:“idle”}
- [INFO] Publish: ha/fan_mode/get, Payload: “low”
- [INFO] Publish: ha/mode/get, Payload: “heat”
- [INFO] Publish: ha/temperature/get, Payload: “18”
All of which will work except for the JSON format ha/action/get
If i’m not mistaken, I think the only way this can work with the MQTT HVAC, is to have two topics for
ha/action/get as suggested above…
rinnai/action/{zone}/get)
I don’t believe I can use a HA template to correct this. I could be wrong.
I also need a way to pass in an external temperature sensor value as my unit is configured so the current temperature is alway 999. If i’m not mistaken, this results in and ha/current_temperature/get to always be NULL. (similar to David_M above)
Hi thankyou for writing this!
I now have this working with home assistant 0.110.4 via MQTT
the only issue i have found is that the temperature command does not like decimal points i.e
mosquitto_pub -t “homeassistant/brivis/ha/temperature/set” -m “19” works
mosquitto_pub -t “homeassistant/brivis/ha/temperature/set” -m “19.0” fails
i’m currently looking for a way to define the payload that the mqtt hvac intergration sends as a workaround.
below is my configuration if it helps anyone.
climate:
- platform: mqtt
name: Ducted Heating
modes:
- "off"
- "heat"
- "fan_only"
fan_modes:
- "high"
- "medium"
- "low"
temperature_command_topic: "homeassistant/brivis/ha/temperature/set"
temperature_state_topic: "homeassistant/brivis/ha/temperature/get"
temperature_state_template: "{{ value_json }}"
fan_mode_command_topic: "homeassistant/brivis/ha/fan_mode/set"
fan_mode_state_topic: "homeassistant/brivis/ha/fan_mode/get"
fan_mode_state_template: "{{ value_json }}"
mode_command_topic: "homeassistant/brivis/ha/mode/set"
mode_state_topic: "homeassistant/brivis/ha/mode/get"
mode_state_template: "{{ value_json }}"
precision: 1
Whats your setup Darren? Does it have Zones?
Thanks for the feedback @jsn.forsyth. Are you able to use the “action_template” to extract one of the zones’ values? Maybe something like {{ value_json.A }}. I’ve never used them so not sure if it would work. With respect to the current_temperate, if the module supplies 999 then the “/ha/current_temperate/get” topic won’t be published.
@drmcinnes, I can make a change to the plugin to remove the decimal points if you like. Should be pretty easy.
No zones on mine, just a simple 12 year old brivis ducted unit with nc-6 controller.
The only down side is the nc-6 doesn’t report actual temperature so I’ll move a zigbee environmental sensor near the controller
You would be my eternal hero if you could!
I don’t have debugging enabled in homebridge but if you need some logs I can enable that tomorrow night and run the same commands.
Thanks @Mantorok - I’ve done some brief testing and concur with @jsn.forsyth. There may be a way to template it, but someone else more knowledgeable would need to comment on this. Fantastic I can see the zone states now!
Thanks for supplying the code @drmcinnes - I can see what you mean about the set temperature values not be accepted. I used to have an Ecobee and ZWave thermostat connected to the heater, and it worked fine with 0.5 increments. Must be a limitation of the wifi module, not the heater controller board.
Debug error:
[WARNING] Command failed. Expected state “.0” at HGOM.GSO.SP
Version 2.3.2 has been released which fixes the bug when setting the temperature via HA HVAC MQTT
Works beautifully!, no issues at all.
Thank you again.
Thanks for the feedback @jsn.forsyth. Are you able to use the “action_template” to extract one of the zones’ values? Maybe something like {{ value_json.A }}. I’ve never used them so not sure if it would work. With respect to the current_temperate, if the module supplies 999 then the “/ha/current_temperate/get” topic won’t be published.
Thanks for that. Templates in HA are amazing. I really need to learn them better.
Anyway, all working now. I haven’t tested it exhaustively but i’m very happy with the result. I have two thermostats. 1 for each zone.
I use Xiaomi MiJia temperature sensors to report the current temperature of each zone. So I created an automation that runs the script below every minute reporting the current temp.
script:
publish_temp:
sequence:
- service: mqtt.publish
data_template:
topic: 'ha/current_temperature/a'
payload: '{{ states("sensor.upstairs_temperature") | int }}'
- service: mqtt.publish
data_template:
topic: 'ha/current_temperature/b'
payload: '{{ states("sensor.living_room_temperature") | int }}'
Thanks again
That’s an interesting way of populating the thermostat current temperature. I’ll have to try that. I’m using a Xiaomi Aqara sensor also for reporting zone temperatures.
Are you still seeing a delay with state updates when you send an MQTT command, or have you increased the publishFrequency? I’ve left it at default (60sec), however I’ve noticed when you do send a command, the unit instantly publishes the status update. However, because of the command delay, the instant status update doesn’t include the new configuration.
e.g. Change of temperature below via MQTT
[6/2/2020, 11:56:42 PM] [Rinnai Touch] [INFO] Received: homeassistant/brivis/ha/temperature/set, Payload: 20
[6/2/2020, 11:56:43 PM] [Rinnai Touch] [INFO] Sending command: N000001{“HGOM”:{“GSO”:{“SP”:“20”}}}
[6/2/2020, 11:56:43 PM] [Rinnai Touch] [INFO] Publish: homeassistant/brivis/ha/action/get, Payload: {“A”:“heating”,“B”:“idle”,“C”:“idle”}
[6/2/2020, 11:56:43 PM] [Rinnai Touch] [INFO] Publish: homeassistant/brivis/ha/fan_mode/get, Payload: “medium”
[6/2/2020, 11:56:43 PM] [Rinnai Touch] [INFO] Publish: homeassistant/brivis/ha/mode/get, Payload: “heat”
[6/2/2020, 11:56:43 PM] [Rinnai Touch] [INFO] Publish: homeassistant/brivis/ha/temperature/get, Payload: “22”
[6/2/2020, 11:56:45 PM] [Rinnai Touch] [INFO] Command succeeded. Took 2000 ms
@Mantorok - Is the instant status publish built in to the plugin, or maybe it is the MQTT broker command response behavior. Maybe it needs a 1-2sec delay?