Releases: ebaauw/homebridge-rpi
Releases · ebaauw/homebridge-rpi
v1.1.11
Enhancements
- Expose additional Smoke Sensor for each Raspberry Pi (under the RPi accessory), to enable notifications when the Pi is throttling the CPU or experiencing under voltage. Use the Home Settings screen in Apple's Home app to disable the notifications.
Bump Dependencies
- homebridge-lib v4.7.13
v1.1.10
v1.1.9
v1.1.8
v1.1.7
Bug fixes:
- Fix unknow handle error when
localhost
specified in config.json, see #36; - Skip
host
section from config.json on invalidhost
value. - Handle old revision codes;
- Only enable heartbeat for
RpiAccessory
and forGpioAccessory
withservo
device. - Added debug messages for NOIB.
Bump dependencies:
- homebridge v1.1.0;
- node v 12.17.0 LTS;
- homebridge-lib v4.7.7.
v1.1.6
Breaking Change
The script to get the state of a remote Raspberry Pi has been changed, and renamed to getState
. If you upgrade from Homebridge RPi v1.0.x, please note the following:
- On each remote Raspberry Pis, you need to:
- On the local Raspberry Pi, you might want to:
- Configure the
pigpiod
daemon, not to accept remote connections, by unsetting Remote GPIO; - Remove the old script, by issuing:
sudo rm /opt/pigpio/cgi/vcgencmd
; - Remove the output files, by issuing:
sudo rm /opt/pigpio/vcgencmd.*
; - Remove the file access configuration, by issuing:
sudo rm /opt/pigpio/access
- Configure the
If you run Homebridge in a container, you need to setup the host as remote Raspberry Pi.
Bug fixes
- Better handling of
localhost
, incl. debug messages when reading file or executing command; - Improved polling of
servo
device, which should prevent "more than 10 listeners" warnings forerror
and for84
; - Improved closing of stale file handles, which should prevent stale file handles.
- Improved handling of
switch
devices, especially whenpulse
is set, see #32:- Don't update GPIO value when automated reset of GPIO value is still pending;
- Set reset timeout on GPIO pin value changed, instead of on HomeKit value changed;
- Set switch with
pulse
to off on (re-)connect. - Allow
pulse
up to 5000 ms.
- Unhandled promise rejection when subscription to GPIO notifications fails.
v1.1.4
Breaking Change
The script to get the state of a remote Raspberry Pi has been changed, and renamed to getState
. If you upgrade from Homebridge RPi v1.0.x, please note the following:
- On each remote Raspberry Pis, you need to:
- On the local Raspberry Pi, you might want to:
- Configure the
pigpiod
daemon, not to accept remote connections, by unsetting Remote GPIO; - Remove the old script, by issuing:
sudo rm /opt/pigpio/cgi/vcgencmd
; - Remove the output files, by issuing:
sudo rm /opt/pigpio/vcgencmd.*
; - Remove the file access configuration, by issuing:
sudo rm /opt/pigpio/access
- Configure the
If you run Homebridge in a container, you need to setup the host as remote Raspberry Pi.
Enhancements
- Improved error handling, see also #17:
- Homebridge RPi monitors the connection to the
pigpio
server, setting Status Fault when the connection is lost, and clearing it when the connection has been re-established. Remove the Restart characteristic in favour of Status Fault.; - Upon (re-)connect to the
pigpio
server, the GPIO pins are re-configured, the subscription for changed GPIO pins notifications is re-established, and Blinkt! LEDs are turned off (to re-synchronise the state between Homebridge Rpi and the LEDs); - After restarting Homebridge, stale accessories will only be removed after all Raspberry Pis have been connected to.
- Homebridge RPi monitors the connection to the
- Optimised support for the local Raspberry Pi (that Homebridge runs on), see #22, #27:
- Homebridge RPi and
rpi info
now read/proc/cpuinfo
on the local Raspberry Pi directly, instead of going through thepigpio
server; - Homebridge RPi and
rpi info
now executevcgencmd
locally, capturing the output without going through thepigpio
server, calling a script, or storing the output in a temporary file. Thepigpio
server on the local Raspberry Pi is needed only when you expose GPIO devices; - Note that the user running Homebridge needs to be a member of the
video
group to executevcgencmd
. The standard Homebridge installation takes care of this.
- Homebridge RPi and
- Support for only exposing GPIO devices, see #22, #27:
- The
hidden
config.json setting prevents Homebridge RPi from exposing the Temperature Sensor and corresponding History services, and prevents polling the Raspberry Pi state; - The Raspberry Pi accessory is still exposed, since it holds the administration of the GPIOs used, the connection to the
pigpio
server, and the links to the accessories for the GPIO devices; - Note that Apple's Home app will display a Not Supported tile for the Raspberry Pi accessory (unless you expose one or more
button
devices);
- The
- Optimised script execution, see #22:
- The parsing from the command output is now done by Homebridge RPi; the temporary json file contains the raw command output;
- The script creates the temporary json file through a single
cat -
command, instead of through multipleecho
commands; - The temporary json file is now
/tmp/getState.json
, as/tmp
would probably be the first directory to place on a RAM disk, to preserve the microSD card.
- Dynamic log level, see #20, #25:
- The level of logging can now be changed dynamically (at runtime) and per accessory, so debug logging can be enabled to troubleshoot a single accessory causing issues.
- The log levels takes four values:
0
: errors and warnings;1
: log messages for the interaction with HomeKit;2
: debug messages for the interaction with devices;3
: detailed debug messages for the raw communication with thepigpio
server.
- Note that Homebridge Debug Mode needs to be enabled for levels
2
and3
(set under Homebridge Settings in Homebridge Config UI X); - The log level is initialised at
2
for newly created accessories. It is persisted across Homebridge restarts; - To change the log level, use the Log Level characteristic in Eve (or another HomeKit app), see ebaauw/homebridge-lib#26;
- Loose the dependency on
debug
, as this is now handled by log level3
.
Bug Fixes
- When two responses from the
pigpio
server were received in onedata
event, the second response was ignored (which could cause a stale file handle) or added to extended response data for first response (which could cause an invalid json warning when processing the script output). - Improved reliability and performance of communication with
pigpio
server.
Bump dependencies
- homebridge v1.0.4 or greater;
- NodeJS v12.16.3 LTS;
- homebridge-lib v4.7.5;
- remove dependency on
debug
.
v1.0.4
v1.0.3
Enhancements:
- Changes to support Homebridge v1.0.0.
This version is currently in beta under v0.4.54-beta.54. Until the final version has been released, install Homebridge RPi through;sudo npm -g i homebridge-rpi@next
vcgencmd
script: also report system boot time (for detecting when the Pi has rebooted);- Pi accessory:
- Add
Heartrate
characteristic to change the polling rate of the Pi (through thevcgencmd
script); - Add (read-only)
LastBoot
characteristic to indicate the Pi's boot time; - Add (read-only)
Restart
characteristic to trigger HomeKit automations when Pi has rebooted, see #17;
- Add
- Add
pulse
boolean property toswitch
device, see #18; - Improve handling of Pi reboot. Should now re-initialise all GPIO pins and set
Restart
characteristic. - Add
Brightness Change
to Blinkt! accessory;
Bug fixes:
- Ignore device with invalid GPIO pin in config.json, see #24;
- Ignore device with duplicate GPIO pin in config.json.
Bump dependencies:
- homebridge v1.0.0 (or 0.4.54-beta.54);
- homebridge-lib v4.6.0.