Commit Graph
46 Commits
Author SHA1 Message Date
Dawid ChyrzyńskiandDawid Chyrzynski 0fc32a5bad ArduinoHA 2.0.0 🔥 (#81)
* added tests for HADeviceTracker

* added support for progmem property value in the HASerializer

* codebase update

* add support for source type in HADeviceTracker

* added support for HACamera

* added support for HALock

* rename HABinarySensor::getState to getCurrentState

* standardize sender name in all callback headers

* remove duplicate serializer field protection (reduce flash usage)

* optimize HAUtils

* minor improvements

* optimize writing progmem payload

* optimize HAUtils:numberToStr

* remove relloc from HASerializer

* optimize HASerializerArray

* remove includeNullTerminator arg from the topics size generators

* optimize HASerializer

* replace dtostrf with custom implementation

* optimize BaseDeviceType

* removed relloc from the HAMqtt

* removed support for floats

* removed vtable for HADevice, HAMqtt, HASerializer and HASerializerArray

* implemented HASwitch with tests

* implemented basic HADeviceTrigger

* added support for built-in triggers

* finished HADeviceTrigger

* update changelog

* implemented base HASensor

* implemented HASensorInteger

* finished HASensorFloat

* override onMqttConnected in HASensorInteger and HASensorFloat

* add more tests for HASensorInteger and HASensorFloat

* optimize HASensorFloat

* update changelog

* standardize constructor of the HABinarySensor

* update readme

* readme

* readme

* standardize HADeviceTracker API

* standardize HASwitch API

* update docs README

* move Sphinx files to docsrc directory

* type in HASwitch

* test docs

* add .nojekyll to the docs directory

* update makefile of the docs

* wip: docs

* docs: fix html title

* docs: update styling and sidebar

* docs: add "Basics" section

* docs: device configuration

* docs: availability

* docs: MQTT discovery

* docs: MQTT security

* docs: MQTT advanced features

* rename BaseDeviceType to HABaseDeviceType

* update gitignore

* add API reference

* update gitignore

* HADevice doxygen

* doxygen css

* HADevice doxygen typos

* docs: update links

* docs: HAUtils doxygen

* HAMqtt and HADevice doxygen

* docs: device types

* docs: HABaseDeviceType

* reduced flash usage by 190 bytes

* fix tests

* move HAUtils class to the utils directory

* make HADevice const in HAMqtt

* HABinarySensor docs

* doxygen

* HADeviceTrigger doxygen

* HALock doxygen

* HASensor doxygen

* HASensor doxygen

* HASwitch doxygen

* HATagScanner doxygen

* HASerializer doxygen

* fix SAMD compile error

* add HAMqtt::publish method

* update examples

* add HAButton example

* update changelog

* added support for the optimistic property in the HACover

* do not set optimistic property in the HASwitch if it's set to default value

* update examples list

* update HASensor example

* update MQTT docs

* fix device trigger example link

* fix search form style on the search result page

* added support for the optimistic property in the HALock

* update readme

* change readme icon

* added HALock example

* MDNS example

* added HASensorFloat and HASensorInteger examples

* update readme

* update examples

* fix crash in the HABaseDeviceType

* add support for storing RAM elements in the HASerializerArray

* update tests cases in the CoverTest

* finished tests for HASelect

* added support for HASelect

* update README, CHANGELOG and examples list

* DeviceTest typos

* add more tests to SelectTest

* optimize HASelect command's handler

* improve CoverTest

* optimize HACover command's handler

* optimize HALock command's handler

* update SerializerTest

* remove HAMqtt::writePayload_P method

* remove FlagInternalType from the HASerializer

* added support for __FlashStringHelper in the topics related functions

* migrated serializer to use __FlashStringHelper

* add __FlashStringHelper to the HABaseDeviceType::publishOnDataTopic method

* move component name to flash memory

* update docs

* fix debug logs

* fix memory leaks

* monitor memory leaks in all test cases

* optimize tests (RAM)

* fix HALock states

* fix bug in the HASensor (invalid serialization of the value template property)

* fix memory leak in the HASelect

* fix crash in HASelect

* fix memory leak in the HADeviceTrigger

* fix memory leak in the HADevice

* tests: add support for ESP8266 and ESP32 envs

* update docs

* add multi-switch example

* update docs structure

* update MQTT advanced example in the docs

* HADevice: fix _uniqueId memory release

* wip: HANumber

* add HANumber to defines

* refactor HASensor implementation for numbers (again)

* update docs

* wip: HANumber

* wip: add support for number's precision in the HASerializer

* add support for float numbers in the HASerializer

* optimize vtables in the HASensor

* wip: HANumber

* fix crash in the float serialization

* handle another edge case in the float serialization

* replace int32_t with HAUtils::Number type

* HANumber fixes

* tests for HANumber

* change HAUtils::Number type to int64_t

* implemented HAUtils::strToNumber

* finished HANumber command handler

* finished HANumber

* update docs

* add number example

* added support for HAScene

* add scene example, update docs

* update doxygen

* remove memset from the codebase

* micro optimizations

* fix commands handlers

* update HACover code

* codebase cleanup

* finished HAFan implementation

* update docs, added fan example

* make json readable in all tests

* make position configurable in the HACover

* docs

* added support for HALight

* implement default values as static HAFan members

* update docs, added light example

* added support for color temperature in the HALight

* update light example

* update docs

* wip: HVAC

* improve all tests with callbacks

* update logs

* add HVAC to the docs

* optimize HANumber

* add current temperature to the HVAC

* started work on HVAC tests

* added action feature to the HVAC

* add temperature unit to the HVAC

* add more tests to UtilsTest

* fix fake MQTT messages mock - message shouldn't include null terminator

* fix HAUtils::strToNumber

* optimize HAFan, HACover and HALight

* add min/max temp to the HVAC

* added temp step property to the HVAC

* rename HASensorNumber::getCurrentValueAsFloat to getCurrentValueFloat

* update docs

* added support for aux heating in the HVAC

* added power command to the HVAC

* add subscriptions to the HVAC

* added fan mode to the HVAC

* update examples

* update command handlers in all device types

* added swing mode to the HVAC

* finished HVAC

* update docs

* fix memory leak in the HVAC

* added support for the target temperature in the HVAC

* add HVAC example

* update docs

* remove unnecessary checks from some device types

* added support for RGB in the HALight

* update docs

* standardize HAHVAC code

* rename HAButton::onPress method to onCommand

* rename HAScene::onActivate method to onCommand

* fix seg fault in the HAUtils

* HASensorNumber: do not publish default value on connect

* add return uint16_t to the HAUtils::numberToStr method

* simplify logic in the HALight::publishRGBColor

* optimize numbers serialization in the HASerializer

* update README, added LICENSE.md

* rename license file

* added tag-scanner example

* update publishOnDataTopic methods

* added esp32-cam example

* update docs

* add examples to the README.md

* update examples

* update HAMqtt.h for latest SAMD core, update aunier

* update README, fix auniter settings for esp32

* update README

* added documentation link to the README

* final tweaks in the HACover

* fix logic of the speed feature in the HAFan

* fix mdns example

* fix bug in the DeviceTrigger (invalid serialization of the progmem type/subtype)

* implemented HANumeric

* update HASensorNumber

* update HANumber

* update HALight

* update HAHVAC

* update HAFan

* update HACover

* update examples

* update tests

* update docs

* fix HANumeric constructor bug

* update HANumeric for SAMD

* update readme and docs

* add payload_on to the scene config (HA throws an exception if this property is missing)

* update sensor-analog example

* update sensor-integer example

* HVAC fixes

* update docs

Co-authored-by: Dawid Chyrzynski <dawid.chyrzynski@gmail.com>
2.0.0
2022-10-14 19:10:38 +02:00
Dawid Chyrzyński a4e50b7d04 Release 1.3.0 (#36)
* Add support for HVAC (#15)

* remove HASwitch::triggerCallback method

* fix typo in docs

* HASwitch: simplify callback #define

* work in progress: HVAC

* replace local mqtt instances with singleton

* device types optimization

* cleanup

* finished aux heating and away mode

* wip: HVAC

* finished HVAC implementation

* HVAC implementation

* add ifdefs for all HA components

* wip: optimization

* update readme

* update examples

* remove unused constructor from HAMqtt

* update HAUtils

* remove mqtt from constructors, fix compilation warnings

* finished HVAC

* add HVAC example, add changelog

* update changelog, add documentation

* Add support for icons in HASwitch and HASensor (#16)

* add support for icon in HASwitch

* add support for icon in HASensor

* update changelog

* add support for setting retain flag in HASwitch

* Add support for text payload in HASensor (#17)

* refactored HASensor

* update changelog

* fix sensor example

* Add support for fans (HAFan) (#18)

* finished basic implementation of the HAFan

* add retain method to DeviceTypeSerializer

* finished HAFan implementation

* update HAHVAC

* device types cleanup

* add HAFan example

* update changelog

* update readme

* update fan example

* optimization, add support for ActionFeature in HVAC

* Add support for MQTT LWT (#19)

* add support for hostname in HAMqtt

* add support for LWT and shared availability

* minor fixes

* added advanced availability example

* update examples

* update changelog

* cleanup & bug fix

* bump up version

* minor improvements and fixes

* update readme

* add HAMqtt::onMessage method

* Add support for covers (#28)

* add HACovers

* add cover example, update implementation

* disable debug

* update mqtt-events example

* Add support for setting different prefix for non-discovery topics (#29)

* add support for data prefix

* cleanup

* update comments and logs

* update multi-state-button example

* rename rexample from mqtt-events to mqtt-advanced

* update changelog

* update links in changelog

* Home Assistant 2021.4.5 - MQTT upgrade (#33)

* updae HAFan implementation

* change lib version

* update changelog

* fix setSpeed method

* update HAFan example

* Separate uniqueId from name (#34)

* rename name to uniqueId

* remove legacy labels

* update examples

* rename isMyTopic to compareTopics

* update changelog, rename name to uniqueId

* Implement onBeforeStateChanged callback in HASwitch (#35)

* add low latency mode to HASwitch

* add onBeforeStateChanged callback to HASwitch

* update readme

* rename DEPRECATED macro

* update advanced MQTT example
1.3.0
2021-04-17 20:03:32 +02:00
Dawid Chyrzyński 15562fa74c Release 1.2.0 (#21) 1.2.0 2021-03-23 13:23:56 +01:00
Dawid Chyrzyński 70ccd26c75 Add support for Arduino Nano 33 IoT (SAMD) (#5)
* fix compilation errors

* add support for Nano 33 IoT

* bump up version, update link in README.md
1.1.1
2021-02-07 10:13:22 +01:00
Dawid Chyrzyński 4135d0991f Add support for "availability" for sensors and switch (#4)
* hide onMqttConnected and onMqttMessage methods in BaseDeviceType class

* bump up version

* replace HAComponentName with initialization inside constructor

* add missing documentation to begin() method

* add support for availability in BaseDeviceType

* add support for availability in HABinarySensor, HASensor and HASwitch

* move serialization to separate class

* wip: DeviceTypeSerializer

* update device types

* refactored all devices types to use common serializer

* update examples

* update availability example README.md

* bugs fixes

* fix build for NodeMCU

* cleanup
1.1.0
2021-02-06 20:41:10 +01:00
Dawid Chyrzynski 35a7ea39be rename library 1.0.1 2021-01-08 19:23:03 +01:00
Dawid Chyrzynski d01c2f2903 add NodeMCU example 1.0.0 2021-01-07 23:28:00 +01:00
Dawid Chyrzynski 6983a6d643 update HAMqtt class API 2021-01-07 22:28:33 +01:00
Dawid Chyrzynski 7ddc2055d1 add multi state button example 2021-01-07 22:28:23 +01:00
Dawid Chyrzynski 5606b2c079 add license to readme 2021-01-07 22:06:47 +01:00
Dawid Chyrzynski a3954e71be update examples 2021-01-07 21:55:35 +01:00
Dawid Chyrzynski e1b5206c46 update readme 2021-01-07 21:35:17 +01:00
Dawid Chyrzynski c6b6d18025 fix compilation errors 2020-12-20 12:46:04 +01:00
Dawid Chyrzynski 2c8749ae33 rename ifdefs 2020-12-20 11:33:57 +01:00
Dawid Chyrzynski fcb5f4d089 fix compilation error in HADevice.h 2020-12-06 21:56:12 +01:00
Dawid Chyrzynski e766801362 add binary sensor example 2020-12-06 13:20:19 +01:00
Dawid Chyrzynski 38961d722d add support for units of measurement in the HASensor 2020-12-06 12:55:36 +01:00
Dawid Chyrzynski 1bec6f94a9 prevent from including ArduinoHA.h twice 2020-12-06 12:53:53 +01:00
Dawid Chyrzynski 958b76abe8 add sensor example 2020-12-06 12:53:41 +01:00
Dawid Chyrzynski 06b53a7a87 codebase cleanup 2020-12-06 12:36:53 +01:00
Dawid Chyrzynski 051d58a8b8 add support for sensor 2020-12-05 16:16:44 +01:00
Dawid Chyrzynski 3e6076f4da add mqtt-with-credentials example 2020-12-05 09:47:56 +01:00
Dawid Chyrzynski bc4b7faef0 add led-switch example 2020-12-05 00:23:16 +01:00
Dawid Chyrzynski b4697ca641 improve library API 2020-12-05 00:23:07 +01:00
Dawid Chyrzynski 3c9cf1005e added support for binary sensor 2020-12-04 22:44:29 +01:00
Dawid Chyrzynski 44cad44512 HASwitch improvements 2020-12-04 22:32:25 +01:00
Dawid Chyrzynski f4b35666ce update HATagScanner 2020-12-04 22:17:28 +01:00
Dawid Chyrzynski 97aaa25dab publish HASwitch state with "retain" flag 2020-12-04 21:31:46 +01:00
Dawid Chyrzynski eeb1aa64fb add null checks everywhere 2020-12-04 21:15:32 +01:00
Dawid Chyrzynski 0315aacc56 add support for tag scanner 2020-12-04 21:04:22 +01:00
Dawid Chyrzynski 5681c549d5 update readme.md 2020-12-04 19:58:59 +01:00
Dawid Chyrzynski 5ca3cd1fcf minor changes 2020-12-04 19:48:20 +01:00
Dawid Chyrzynski a311ab047b handle HASwitch subscription messages 2020-12-03 21:40:15 +01:00
Dawid Chyrzynski 81935bd898 HASwitch: subscribe to command topic 2020-12-03 19:26:41 +01:00
Dawid Chyrzynski c09c2ab25f finished HASwitch 2020-12-03 19:16:02 +01:00
Dawid Chyrzynski f142eb41e8 update HATriggers and BaseDeviceType 2020-12-03 18:02:44 +01:00
Dawid Chyrzynski c794f0d0db store HATriggers serialization string in PROGMEM 2020-12-03 17:01:21 +01:00
Dawid Chyrzynski 4328aca396 update example 2020-12-02 21:55:57 +01:00
Dawid Chyrzynski eb5667512c finished HATriggers 2020-12-02 21:55:49 +01:00
Dawid Chyrzynski 070a437284 migrate to PubSubClient 2020-12-02 21:55:32 +01:00
Dawid Chyrzynski 0e16d16eab update BaseDeviceType 2020-12-02 21:55:17 +01:00
Dawid Chyrzynski 2e1386a232 add comments 2020-11-28 22:18:33 +01:00
Dawid Chyrzynski adf798363b finished MQTT connection 2020-11-28 22:10:34 +01:00
Dawid Chyrzynski 154b816444 finished HADevice implementation 2020-11-28 22:10:21 +01:00
Dawid Chyrzynski a827087833 add library.properties 2020-11-28 22:10:07 +01:00
Dawid Chyrzyński 7d26a1fb27 Initial commit 2020-11-24 21:20:34 +01:00