Darell Tan 54aa0795c3 Fix for unacknowledged numeric Z2M state updates
So far Z2M state updates were only boolean (the device `state` on/off),
but after introducing `brightness` values, Z2M state updates may not be
recognized/acknowledged. Unmarshalled Z2M numeric values are always
float64, but updates sent out via MQTT might not be. As a result, the
values may not directly equal and may never match.

To solve this, cast the outgoing expected value into a float64 to
compare against the received Z2M value, which is already a float64.
2023-06-25 02:34:34 +08:00

hap-z2m Bridge

A HomeKit <-> Zigbee2MQTT bridge written in Go, so I don't have to install more NodeJS rubbish. It is essentially a Homebridge + homebride-z2m replacement. It compiles down to a <10 MB static binary instead of another 200++ MB Docker container. It uses the hap library for interfacing with HomeKit.

It is quite barebones, so there is no configuration for the bridge, apart from the MQTT server & credentials. The bridge configures and exposes devices based on z2m's MQTT messages.

Currently only supports the types of Zigbee devices I have:

  • Climate sensors (temp, humidity)
  • Contact sensors
  • Motion sensors
  • Wall switch
  • Dimmer, or dimmable light bulbs

If you do use this software, note that it's in development and may contains bugs, or may even burn your house down. I offer no warranty, but you are welcome to file bugs.

Building

To compile hap-z2m, use:

go build -v -trimpath -ldflags="-s -w" ./cmd/...

License

hap-z2m is licensed under the GNU General Public License v3.

Copyright (C) 2023 Darell Tan

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Description
No description provided
Readme 149 KiB
Languages
Go 100%