New features:
- Added support for setting MQTT's keep alive #153 by @allenb2800
- Added support for the
state_class
property in theHASensor
#179 - Implemented extended unique ID support for all device types. This allows you to prefix each device type's unique ID with the device ID, ensuring smooth deployment of identical code on multiple devices without encountering unique ID conflicts #212
- Added support for the
configuration_url
property in theHADevice
#182 - Added
getCurrentOption
method to theHASelect
device type #163 - Added support for publishing the
None
state in theHASelect
device type #146 - Added support for publishing the
None
state in theHASensor
device type #175 - Added support for the
expire_after
property in theHASensor
#171 - Added support for the
expire_after
property in theHABinarySensor
#159 - Added support for the JSON attributes in the
HASensor
- Added support for the
object_id
property in all device types - Added
setBufferSize
method to theHAMqtt
class #202 - Added
getState
method to theHAMqtt
class - Added
onDisconnected
callback method to theHAMqtt
class - Added
onStateChanged
callback method to theHAMqtt
class - Added support for Arduino Due #137
Fixes:
- Fixed a bug with the maximum number of device types #190 by @martaisty
- Fixed compiler warning:
class 'HANumeric' is implicitly friends with itself
#197 by @shedokan - The default limit for device types has been raised to 24 on processors other than ATMega328/ATMega168. The previous default limit of 6 led to confusion for many users.
New features:
- Added support for the
icon
property in theHABinarySensor
(you can set the icon usingHABinarySensor::setIcon("iconName")
) - Added support for changing the current state of the
HABinarySensor
usingHABinarySensor::setCurrentState
method - Added support for forcing
setState
inHABinarySensor
using a second argument as followsHABinarySensor::setState(true, true)
- Added support for the
device_class
property in theHACover
(you can set the class usingHACover::setDeviceClass("className")
- Added support for the
icon
property in theHACover
(you can set the icon usingHACover::setIcon("iconName")
) - Added pointer of the sender to the
HACover
callback function - Added support for
optimistic
property in theHACover
(you can change the mode usingHACover::setOptimistic(true)
) - Added support for forcing
setPosition
inHACover
using a second argument as followsHACover::setPosition(100, true)
- Added support for the
device_class
property in theHASwitch
(you can set the class usingHASwitch::setDeviceClass("className")
- Added support for the
optimistic
property in theHASwitch
(you can change the mode usingHASwitch::setOptimistic(true)
) - Added support for the
force_update
property in theHASensor
(you can set the mode usingHASensor::setForceUpdate(true)
) - Added support for the
HAButton
device type - Added support for the
HADeviceTracker
device type - Added support for the
HACamera
device type - Added support for the
HALock
device type - Added support for the
HASelect
device type - Added support for the
HANumber
device type - Added support for the
HAScene
device type - Added support for the
HALight
device type
Fixes:
- Last Will Message is now retained (#70)
- Compilation error on SAMD family (#82)
New examples:
- Button - adding simple buttons to the Home Assistant panel.
Breaking changes:
- Changed structure of all MQTT topics used in the library.
- Changed constructor of the
HABinarySensor
class (removeddeviceClass
andinitialState
arguments) - Renamed
HABinarySensor::getState()
method toHABinarySensor::getCurrentState()
- Replaced
HATriggers
withHADeviceTrigger
- the new implementation is not backward compatible. Please check the updated example of themulti-state-button
. - Renamed
HADevice::isOnline()
method toHADevice::isAvailable()
- Renamed
HASwitch::onStateChanged
method toHASwitch::onCommand
. - Renamed
HAFan::onStateChanged
method toHAFan::onStateCommand
. - Renamed
HAFan::onSpeedChanged
method toHAFan::onSpeedCommand
. - Changed logic of the
HASwitch
callback. Please check theled-switch
example. - Refactored
HASensor
logic. It's now divided into two different classes:HASensor
andHASensorNumber
. - Removed all legacy constructors with
HAMqtt
argument - Removed
onConnectionFailed
callback from theHAMqtt
class - The position in the
HACover
is now available as configurable feature. It's disabled by default. - Refactored
HAHVAC
class to support more features of the MQTT discovery. Please check the update example.
New features:
- Added
onMessage()
method to HAMqtt class - Added support for HA Covers
- Added support for setting different prefix for non-discovery topics (see Advanced MQTT example)
- Added
setName
method to HASensor - Added
setName
method to HASwitch - Added
onBeforeStateChanged
callback to HASwitch
Improvements:
- Removed legacy properties from HAFan (Home Assistant 2021.4.4). Deprecated methods will be removed after a quarter (2021.7)
- Separated
uniqueID
field fromname
in all devices types
Breaking changes:
- Refactored HASensor implementation. Please take a look at updated example
New features:
- Added support for HVAC
- Added support for excluding devices types from the compilation using defines (see src/ArduinoHADefines.h)
- Added support for setting icon in HASwitch and HASensor
- Added support for setting retain flag in HASwitch
- Added support for text (const char*) payload in HASensor
- Added support for fans (HAFan)
- Added support for connecting to the MQTT broker using hostname
- Added
onConnected()
method in the HAMqtt - Added
onConnectionFailed()
method in the HAMqtt - Added support for MQTT LWT (see Advanced Availability example)
Improvements:
- Optimized codebase and logic in all devices types
- Updated all examples
- Fixed compilation warnings in all classes