Thanks, I did know the limitations of going down the hybrid route but that’s acceptable for me for now.
Just starting to dig into the mqtt messages and have got some nice mushroom template cards updating based on the current state, next step is to send something to it but I’m sure my day job will get in the way for much more experimentation today.
These are, maybe, your most useful commands:
# switch off thermostat (temp is set to frost protection as set on thermostat
- service: mqtt.publish
data:
topic: zigbee2mqtt/Hive/heat/set
payload: |-
{
"system_mode":"off",
"temperature_setpoint_hold":"0"
}
# switch on and/or set temp
- service: mqtt.publish
data:
topic: zigbee2mqtt/Hive/heat/set
payload: |-
{
"system_mode":"heat",
"temperature_setpoint_hold":"1",
"occupied_heating_setpoint":"{{ states('sensor.hive_heating_target_temp') }}"
}
Notes:
- My hive is called ‘Hive’. Not so imaginative, but there you go. I have an SLR2C (2 channels). The differences in commands are:
- SLR1c: zigbee2mqtt/Hive/set
- SLR2c: zigbee2mqtt/Hive/heat/set &: zigbee2mqtt/Hive/water/set
- in my example, I am using
sensor.hive_heating_target_temp
for my temp setting
I found the MQTT Climate control really limiting so spent some time in my more familiar python and created an integration that presents accurate controls by listening/sending to the MQTT topic which seems to work much better, especially when you want to use the local schedule and controls on the thermostat.
This is very early beta and I’d suggest you keep your current method along side this but if anyone wants to try it out it’s here
I’ll take a look!
Looks interesting anyway
EDIT: Works brilliantly.
Has anyone managed to get this working with SLR1c and SLT6?
Everything looks ok in HA but the thermostat is stuck in searching and the light is still flashing on the receiver so although it looks ok it doesn’t actually do anything
yes for the SLR1c.
I’m sure the SLT6 is fine, but I don’t have one to confirm.
Hi all, new here and trying to get my Hive SLR1 receiver and SLT3b thermostat connected to HA using Zigbee2MQTT (I could live without the thermostat but I believe it’s needed). I had it working with HA via the official Hive integration previously, but since I have set up a zigbee network (Sonoff Zigbee 3.0 USB Dongle Plus) I would like to control it directly. Eventually I want to set up some automations but for now I’d be satisfied with just having a thermostat control (manual temp change) and heating history (actual temp) on my lovelace dashboard.
I first tried following this guide from @Burgess101 that involved adding yaml files to my configuration. That paired both devices with Zigbee2MQTT, but I couldn’t interact with the heating in any way from HA and the thermostat stayed in pairing mode.
I also tried installing @codechimp 's extension, as it sounds like the info from MQTT is garbled somehow and this helps it? but also didn’t seem to solve the problem.
So then I found this topic which has a similar problem to me (though it’s an SLR1b rather than my SLR1). In that, @andyb2000 suggests that I need to pair the SLR3b ‘via’ the SLT1. I’m not really sure what that means! He says
On ZHA (or similar), select the boiler device you added earlier, now click “ADD DEVICES VIA THIS DEVICE” - the Thermostat must be connected to the ZigBee network via the boiler receiver we added earlier
I don’t use ZHA but I gather that Zigbee2MQTT which I am using is similar? Because @rahulpuk said…
Thanks, this process also worked for me on Zigbee2Mqtt.
But, but but…
I have connected up the receiver to Zigbee2MQTT, and in the device (under MQTT) it says:
Heating thermostat (SLR1)
by Hive
Connected via Zigbee2MQTT Bridge
However, I don’t see any possible way to connect a device to another Zigbee device?
After connecting to Zigbee2MQTT, the receiver went into long single orange flash. Where I am now is, I have put my SLR1 receiver back into pairing mode (double orange flashing), and my SLT3b thermostat is saying “Searching… 23mins” and my wife is cold and grumpy and her exact words are “why can’t we just have a normal house”.
Please help before I am removed from the home assistant community!!!
Add the SLC first to Z2M.
There’s a dropdown just to the right of “Permit Join (all)”. Use that to select the SLC and then press “select join (SLC). The SLT will then be paired to Z2M via the SLT.
Hope that makes sense.
Thanks for your reply @jchh , but I don’t know what SLC is. Is that within the Zigbee2MQTT bridge “device”? That’s where I have been turning Permit Join on and off.
I’ll try to upload an image of what I see. I have searched around the menus on Zigbee2MQTT and MQTT itself and I don’t see a dropdown or anything called SLC.
Hi, pairing is tricky, took me ages to get it right.
You will need to do this in the Zigbee2MQTT web UI, the HA device screen you are showing doesn’t have all the functionality exposed.
First force remove any hive device you have paired within Z2M Web UI (Delete button on the right of the device then tick force remove, don’t tick the block from joining again!)
Remove the batteries from the controller.
First pair the receiver as per these instructions.
Once that is paired within the Zigbee2MQTT web ui where there is the button Permit Join (All), use the arrow to select the receiver you have just paired.
Put the batteries in the controller and follow these instructions,
You should then have them show up in Z2M and HA and then it’s your choice to use either @burgess101 or my control methods.
Sorry, I replied away from my PC - I meant SLR1.
I’m running HA Container (in docker) so I use Z2M’s own interface ( http://<your_ip>:8080) and was giving you instructions for that. It looks like this:
Thank you very much @jchh and @codechimp , it was the part about needing to do it within the Zigbee2MQTT web interface that I was missing (I’d not used that before). Once I was in that, it was no problem to join the thermostat via the receiver as per the instructions, it worked first time.
I set up a default dashboard card like this, and it worked out of the box to control the heating. So I’m not sure why Andrew’s integration is necessary? Works both ways as well, so I can set the thermostat from the device and it updates in HA. I’m not sure what functionality I’m missing by doing it this way?
- type: vertical-stack
cards:
- type: thermostat
entity: climate.0x001e5ff7a6e22012
features:
- type: climate-hvac-modes
hvac_modes: auto heat off
name: Hive
show_current_as_primary: true
- type: history-graph
min_y_axis: 0
hours_to_show: 168
entities:
- entity: climate.0x001e5ff7a6e22012
name: Hive
For my next trick I’m going to see if I can set up an automation to change the temperature based on time of day (cooler at night) and to turn it off (or set the temperature to say 5 degrees) if there’s no one home. But I should be able to figure it out from here - if you know of any got ya’s that I should keep watch for please let me know!!!
Thanks again
Glad you got it working.
Although the basics seem to work you’ll find some weirdness with certain operations via HA with just the Z2M climate control, for example setting the heat needs 2 messages to be sent, the default Z2m climate control does not send the two messages, in certain conditions this will cause it not to do what’s intended.
It’s an extremely fussy zigbee device!
Thanks - I’ll see how it goes raw, and reconsider using your integration if I find weirdness! My setup is about as basic as it gets (one boiler, one receiver, one thermostat) and I have no intention of using any more Hive products after this experience!! So maybe this will be fine. I would eventually like to add zigbee TRVs and a temperature sensor per room but I think that’s a way away for me!
I don’t use it so not can’t comment on what it does. To get you a little excited, this is my Hive control view on HA. …you can do all of this as well
It’s 100% local, uses presence, door/windows, time of day, awake/asleep etc etc to decide what to do with the temp. …anything is possible!
This is what I ended up doing, it wasn’t too difficult. I used the Better Thermostat integration btw to control aqara TRVs and temp sensors but that was when I was on ZHA and couldn’t directly configure the TRVs to use external temp sensors.
I’ve had another go at this and everything now seems to be paired but it’s not working as expected.
For some reason, it says I have 2 thermostats attached to my boiler. The first 1 has the correct temperature, the 2nd doesn’t.
If I try to turn the heating on from HA nothing happens
HVAC is unknown on the thermostat
If I manually turn on the heating the controls update
I suspect one might be left over from a failed previous pairing attempt. I’d suggest force removing both the receiver and controller from Z2M web ui and starting again, give it a slightly different name as well to make sure there’s nothing in MQTT hanging around.
Turning on the heating via the native Z2M climate control doesn’t send all the appropriate messages, which is why people are either creating YAML based thermostats to send MQTT commands or my custom integration which does similar.
Here you’ll see the commands needed, you also need to look at multiple values returned to properly determine state.
Can you go into more detail on the 2024 update please? I’ve got my SLR1c connected and giving me an IEEE of 00:1e:5e:09:02:90:49:be, but running the following automation doesn’t seem to do anything:
action: zha_toolkit.execute
metadata: {}
data:
command: handle_join
ieee: 00:1e:5e:09:02:90:49:be
How do I get the SLT6 to pair up after that?
I spent a few hours trying to get my SLR1C and SLT6 to pair with home assistant successfully last night. I too ended up with both showing in HA, but the thermostat still showed “Searching…” with the time counting up.
I tried to follow these instructions and they didn’t work, but the ZHA toolkit put me on the right path.
I first tried the handle_join for both the IEEE of the receiver and the thermostat. Both gave a successful message, but neither seemed to make any difference.
I then looked throught the docs of ZHA Toolkit and thought I’d try binding the stat to the receiver.
In HA, I did the following, go to developer tools and then the “Actions” tab. On there look for “ZHA Toolkit: Bind Cluster”, which is the bind_ieee command, and then put in the thermostat IEEE into the “Device Reference” and the receiver IEEE into the “Bind To Device Reference”. After clicking “perform action” I got a successful message.
After this, I still had the “Searching…” message showing on the stat, so I ran a command to check the bindings… “ZHA Toolkit: Get Binding Table”, which is the binds_get
command, and put the thermostat IEEE in the device reference. Pressing “Perform action” returned a list of the bindings, and the Thermostat was binded to the receiver now, but above it was another device which I assume is the device it binded to when first adding the device in HA (event tho I did it via the receiver in the first place). I noted the other devices IEEE number for the next step.
I then ran the “ZHA Toolkit: Remove All Bindings from Device” action, which is the binds_remove_all
command. For this one, I put the thermostat IEEE in the device reference field, and the other devices IEEE I noted from the previous step in the “Remove Bindings with This Device” field, with all others blank, and click “perform action”. This worked, confirmed by another check with the “ZHA Toolkit: Get Binding Table”.
I think at this point I noticed that the light on the receiver had changed from flashing yellow to solid green, but I can’t remember if I ran the handle_join again or not.
From that point on, the thermostat showed the temp controls and everything in HA worked perfectly. The stat can turn the heating on and off, and I can change the settings in HA and have them turn the heating on/off and be reflected instantly on the stat.
I hope that’s helpful.