Govee H5054: Difference between revisions

From Leo's Notes
This page was last edited on 22 March 2025, at 05:12.
Created page with "Govee H5054 is a wireless water sensor to detect water leaks. It uses the 433MHz radio to broadcast events. == RTL 433 == See the source code here: https://github.com/merbanan/rtl_433/blob/master/src/devices/govee.c Here's a sample output from rtl_433 for this device: {{highlight|lang=text|code= _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ time : 2025-03-21 18:13:09 model : Govee-Water id : 14029 event..."
 
No edit summary
Line 1: Line 1:
Govee H5054 is a wireless water sensor to detect water leaks. It uses the 433MHz radio to broadcast events.
Govee H5054 is a wireless water sensor to detect water leaks. It uses the 433 MHz radio to transmit events.


== RTL 433 ==
== RTL 433 ==
Line 26: Line 26:


== Other notes ==
== Other notes ==
The device will begin chirping when the battery voltage drops below 2 volts (verified with a bench power supply).
The device will begin chirping when the battery voltage drops below 2 volts (verified with a bench power supply). Every time it chirps, it will broadcast its battery reading values.
 
== Home assistant integration ==
The rtl_433 utility is able to listen for and decode specific 433 MHz radio transmission messages using a RTL-SDR USB dongle. It supports sending decoded messages to various destinations including MQTT. As a result, we can use rtl_433 to effectively act as a gateway between 433 MHz radio transmissions and our Home Assistant MQTT broker.
 
For my personal setup, I have a Nooelec RTL-SDR USB dongle plugged into a OpenWRT router. The rtl_433 package is available on OpenWRT 24's package repos. Once installed, run the following to listen for the Govee messages:
{{Highlight
| code = # rtl_433 -C si -F mqtt://mqtt-broker-server:1883,devices=rtl_433/Govee-Water[/id]
| lang = terminal
}}
The MQTT topic specified here is <code>rtl_433/Govee-Water/<device-id></code>.
 
To get Home Assistant configured for these sensors, add the MQTT integration.
 
Next, use the auto-discovery script at: https://github.com/mekaneck/Govee-Water-Leak-Home-Assistant-Autodiscovery. The installation involves copying and pasting the script into the Home Assistant configuration file. The script contains a list of devices that should be added. You will need to determine the random 5 digit device ID that the sensors are set to from the factory, their serial number (optional but helpful for you to identify the sensors later on), and a friendly name. Save the configuration file, restart Home Assistant, and then run the script (under Settings -> Automation -> Scripts). After running the script, you should see the sensors appear under the MQTT integration.
 
If you need help determining the 5 digit device ID for each sensor, you can run rtl_433 without the <code>-F</code> flag (so that it outputs directly to standard out) and then press the sensor button.  You should be able to see the device id in the output. For example, 14029:
{{Highlight
| code = # rtl_433 -C si
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2025-03-21 21:49:08
model    : Govee-Water  id        : 14029
event    : Button Press detect_wet: 0            Raw Code  : 36cd30547e22  Integrity : CRC
| lang = terminal
}}

Revision as of 05:12, 22 March 2025

Govee H5054 is a wireless water sensor to detect water leaks. It uses the 433 MHz radio to transmit events.

RTL 433

See the source code here: https://github.com/merbanan/rtl_433/blob/master/src/devices/govee.c

Here's a sample output from rtl_433 for this device:

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
time      : 2025-03-21 18:13:09
model     : Govee-Water  id        : 14029
event     : Button Press detect_wet: 0             Raw Code  : 36cd30547e22  Integrity : CRC
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
time      : 2025-03-21 18:13:11
model     : Govee-Water  id        : 14029
Battery level: 0.050     Battery   : 1860 mV       event     : Battery Report Raw Code  : 36cd310507c7 Integrity : CRC
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
time      : 2025-03-21 18:13:12
model     : Govee-Water  id        : 14029
Battery level: 0.050     Battery   : 1860 mV       event     : Battery Report Raw Code  : 36cd310507c7 Integrity : CRC
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
time      : 2025-03-21 18:13:14
model     : Govee-Water  id        : 14029
event     : Button Press detect_wet: 0             Raw Code  : 36cd30547e22  Integrity : CRC

Other notes

The device will begin chirping when the battery voltage drops below 2 volts (verified with a bench power supply). Every time it chirps, it will broadcast its battery reading values.

Home assistant integration

The rtl_433 utility is able to listen for and decode specific 433 MHz radio transmission messages using a RTL-SDR USB dongle. It supports sending decoded messages to various destinations including MQTT. As a result, we can use rtl_433 to effectively act as a gateway between 433 MHz radio transmissions and our Home Assistant MQTT broker.

For my personal setup, I have a Nooelec RTL-SDR USB dongle plugged into a OpenWRT router. The rtl_433 package is available on OpenWRT 24's package repos. Once installed, run the following to listen for the Govee messages:

# rtl_433 -C si -F mqtt://mqtt-broker-server:1883,devices=rtl_433/Govee-Water[/id]

The MQTT topic specified here is rtl_433/Govee-Water/<device-id>.

To get Home Assistant configured for these sensors, add the MQTT integration.

Next, use the auto-discovery script at: https://github.com/mekaneck/Govee-Water-Leak-Home-Assistant-Autodiscovery. The installation involves copying and pasting the script into the Home Assistant configuration file. The script contains a list of devices that should be added. You will need to determine the random 5 digit device ID that the sensors are set to from the factory, their serial number (optional but helpful for you to identify the sensors later on), and a friendly name. Save the configuration file, restart Home Assistant, and then run the script (under Settings -> Automation -> Scripts). After running the script, you should see the sensors appear under the MQTT integration.

If you need help determining the 5 digit device ID for each sensor, you can run rtl_433 without the -F flag (so that it outputs directly to standard out) and then press the sensor button. You should be able to see the device id in the output. For example, 14029:

# rtl_433 -C si
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
time      : 2025-03-21 21:49:08
model     : Govee-Water  id        : 14029
event     : Button Press detect_wet: 0             Raw Code  : 36cd30547e22  Integrity : CRC