mirror of
https://github.com/alexhopeoconnor/arduino-home-assistant.git
synced 2026-10-04 02:48:13 +10:00
Compare commits
23
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1d333ab229 | ||
|
|
2a00dcd65f | ||
|
|
105e96197b | ||
|
|
a838dac9c0 | ||
|
|
77a356bb37 | ||
|
|
9e17dda50b | ||
|
|
5c7acd7e39 | ||
|
|
87b7e03fe6 | ||
|
|
ae059aecc1 | ||
|
|
6cf4f11580 | ||
|
|
fdc60b57c3 | ||
|
|
80ae7ae592 | ||
|
|
ab46939903 | ||
|
|
e054e53eea | ||
|
|
9ec42d667d | ||
|
|
b1eeec0856 | ||
|
|
cd706969de | ||
|
|
8e3aad90c4 | ||
|
|
b0bc9b4ea7 | ||
|
|
8d76532e41 | ||
|
|
252f0ab6b1 | ||
|
|
b86495f492 | ||
|
|
884d8254bf |
@@ -0,0 +1 @@
|
||||
github: dawidchyrzynski
|
||||
+28
-3
@@ -1,5 +1,30 @@
|
||||
# Changelog
|
||||
|
||||
## 2.1.0
|
||||
|
||||
**New features:**
|
||||
* Added support for setting MQTT's keep alive [#153](https://github.com/dawidchyrzynski/arduino-home-assistant/issues/153) by [@allenb2800](https://github.com/allenb2800)
|
||||
* Added support for the `state_class` property in the `HASensor` [#179](https://github.com/dawidchyrzynski/arduino-home-assistant/pull/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](https://github.com/dawidchyrzynski/arduino-home-assistant/issues/212)
|
||||
* Added support for the `configuration_url` property in the `HADevice` [#182](https://github.com/dawidchyrzynski/arduino-home-assistant/issues/182)
|
||||
* Added `getCurrentOption` method to the `HASelect` device type [#163](https://github.com/dawidchyrzynski/arduino-home-assistant/issues/163)
|
||||
* Added support for publishing the `None` state in the `HASelect` device type [#146](https://github.com/dawidchyrzynski/arduino-home-assistant/issues/146)
|
||||
* Added support for publishing the `None` state in the `HASensor` device type [#175](https://github.com/dawidchyrzynski/arduino-home-assistant/issues/175)
|
||||
* Added support for the `expire_after` property in the `HASensor` [#171](https://github.com/dawidchyrzynski/arduino-home-assistant/issues/171)
|
||||
* Added support for the `expire_after` property in the `HABinarySensor` [#159](https://github.com/dawidchyrzynski/arduino-home-assistant/issues/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 the `HAMqtt` class [#202](https://github.com/dawidchyrzynski/arduino-home-assistant/issues/202)
|
||||
* Added `getState` method to the `HAMqtt` class
|
||||
* Added `onDisconnected` callback method to the `HAMqtt` class
|
||||
* Added `onStateChanged` callback method to the `HAMqtt` class
|
||||
* Added support for Arduino Due [#137](https://github.com/dawidchyrzynski/arduino-home-assistant/issues/137)
|
||||
|
||||
**Fixes:**
|
||||
* Fixed a bug with the maximum number of device types [#190](https://github.com/dawidchyrzynski/arduino-home-assistant/issues/190) by [@martaisty](https://github.com/martaisty)
|
||||
* Fixed compiler warning: `class 'HANumeric' is implicitly friends with itself` [#197](https://github.com/dawidchyrzynski/arduino-home-assistant/pull/197) by [@shedokan](https://github.com/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.
|
||||
|
||||
## 2.0.0
|
||||
|
||||
**New features:**
|
||||
@@ -24,12 +49,12 @@
|
||||
* Added support for the `HAScene` device type
|
||||
* Added support for the `HALight` device type
|
||||
|
||||
**Bugs fixes:**
|
||||
**Fixes:**
|
||||
* Last Will Message is now retained (#70)
|
||||
* Compilation error on SAMD family (#82)
|
||||
|
||||
**New examples:**
|
||||
* [Button](examples/button/button.ino) - adding simple buttons to the Home Assistant panel.
|
||||
**New examples:**
|
||||
* [Button](examples/button/button.ino) - adding simple buttons to the Home Assistant panel.
|
||||
|
||||
**Breaking changes:**
|
||||
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
# Arduino Home Assistant integration 🏠
|
||||
|
||||
[](https://github.com/dawidchyrzynski/arduino-home-assistant/releases)
|
||||
[](https://dawidchyrzynski.github.io/arduino-home-assistant/)
|
||||
[](https://github.com/sponsors/dawidchyrzynski)
|
||||
|
||||
ArduinoHA allows to integrate an Arduino/ESP based device with Home Assistant using MQTT.
|
||||
The library is designed to use as low resources (RAM/flash) as possible.
|
||||
Initially, it was optimized to work on Arduino Uno with Ethernet Shield,
|
||||
but I successfully use it on ESP8266/ESP8255 boards in my projects.
|
||||
|
||||
[📘 Documentation](https://dawidchyrzynski.github.io/arduino-home-assistant/)
|
||||
|
||||
## Features
|
||||
|
||||
* Two-way communication (state reporting and command execution)
|
||||
@@ -22,24 +24,33 @@ but I successfully use it on ESP8266/ESP8255 boards in my projects.
|
||||
|
||||
| Home Assistant type | Supported |
|
||||
| ------------------- | :--------: |
|
||||
| Alarm control panel | ❌ |
|
||||
| Binary sensor | ✅ |
|
||||
| Button | ✅ |
|
||||
| Camera | ✅ |
|
||||
| Cover | ✅ |
|
||||
| Device tracker | ✅ |
|
||||
| Device trigger | ✅ |
|
||||
| Event | ❌ |
|
||||
| Fan | ✅ |
|
||||
| Humidifier | ❌ |
|
||||
| Image | ❌ |
|
||||
| HVAC | ✅ |
|
||||
| Lawn mower | ❌ |
|
||||
| Light | ✅ |
|
||||
| Lock | ✅ |
|
||||
| Number | ✅ |
|
||||
| Scene | ✅ |
|
||||
| Select | ✅ |
|
||||
| Sensor | ✅ |
|
||||
| Siren | ❌ |
|
||||
| Switch | ✅ |
|
||||
| Update | ❌ |
|
||||
| Tag scanner | ✅ |
|
||||
| Text | ❌ |
|
||||
| Vacuum | ❌ |
|
||||
| Valve | ❌ |
|
||||
| Water heater | ❌ |
|
||||
|
||||
## Examples
|
||||
|
||||
@@ -83,6 +94,7 @@ Here is the list of devices on which the library was tested:
|
||||
* Arduino Nano
|
||||
* Arduino Pro Mini
|
||||
* Arduino Nano 33 IoT
|
||||
* Arduino Due
|
||||
* NodeMCU
|
||||
* Controllino Mega (Pure)
|
||||
* Controllino Maxi (Pure)
|
||||
|
||||
Vendored
+4
@@ -41,6 +41,10 @@ table.examples-table tbody td + td {
|
||||
.searchbox .caption-text {
|
||||
display: none
|
||||
}
|
||||
.code-block-caption {
|
||||
margin-top: 30px;
|
||||
font-weight: bold;
|
||||
}
|
||||
form {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
var DOCUMENTATION_OPTIONS = {
|
||||
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
|
||||
VERSION: '2.0.0',
|
||||
VERSION: '2.1.0',
|
||||
LANGUAGE: 'None',
|
||||
COLLAPSE_INDEX: false,
|
||||
BUILDER: 'html',
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -215,6 +216,12 @@
|
||||
<dd><p>Returns true if the shared availability is enabled for the device. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4NK8HADevice26isExtendedUniqueIdsEnabledEv">
|
||||
<span id="_CPPv3NK8HADevice26isExtendedUniqueIdsEnabledEv"></span><span id="_CPPv2NK8HADevice26isExtendedUniqueIdsEnabledEv"></span><span id="HADevice::isExtendedUniqueIdsEnabledC"></span><span class="target" id="class_h_a_device_1ad7e1673506833aa7072b4b604b20ecda"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">isExtendedUniqueIdsEnabled</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK8HADevice26isExtendedUniqueIdsEnabledEv" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>Returns true if the extended unique IDs feature is enabled for the device. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4NK8HADevice20getAvailabilityTopicEv">
|
||||
<span id="_CPPv3NK8HADevice20getAvailabilityTopicEv"></span><span id="_CPPv2NK8HADevice20getAvailabilityTopicEv"></span><span id="HADevice::getAvailabilityTopicC"></span><span class="target" id="class_h_a_device_1ab508af42eb1fc0573a89afa3b92645fe"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">getAvailabilityTopic</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK8HADevice20getAvailabilityTopicEv" title="Permalink to this definition">¶</a><br /></dt>
|
||||
@@ -227,6 +234,12 @@
|
||||
<dd><p>Returns online/offline state of the device. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N8HADevice23enableExtendedUniqueIdsEv">
|
||||
<span id="_CPPv3N8HADevice23enableExtendedUniqueIdsEv"></span><span id="_CPPv2N8HADevice23enableExtendedUniqueIdsEv"></span><span id="HADevice::enableExtendedUniqueIds"></span><span class="target" id="class_h_a_device_1ad5634185083f02113ea68a357c16d228"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">enableExtendedUniqueIds</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N8HADevice23enableExtendedUniqueIdsEv" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>Enables the use of extended unique IDs for all registered device types. The unique ID of each device type will be prefixed with the device’s ID once enabled. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N8HADevice11setUniqueIdEPK4byteK8uint16_t">
|
||||
<span id="_CPPv3N8HADevice11setUniqueIdEPK4byteK8uint16_t"></span><span id="_CPPv2N8HADevice11setUniqueIdEPK4byteK8uint16_t"></span><span id="HADevice::setUniqueId__byteCP.uint16_tC"></span><span class="target" id="class_h_a_device_1a8d10a57aa14007643ccdecd7c1a372a5"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">setUniqueId</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">byte</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">uniqueId</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">length</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N8HADevice11setUniqueIdEPK4byteK8uint16_t" title="Permalink to this definition">¶</a><br /></dt>
|
||||
@@ -289,6 +302,17 @@
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N8HADevice19setConfigurationUrlEPKc">
|
||||
<span id="_CPPv3N8HADevice19setConfigurationUrlEPKc"></span><span id="_CPPv2N8HADevice19setConfigurationUrlEPKc"></span><span id="HADevice::setConfigurationUrl__cCP"></span><span class="target" id="class_h_a_device_1a70cd536783b2b994e9d903d6daa30f44"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">setConfigurationUrl</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">url</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N8HADevice19setConfigurationUrlEPKc" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>Sets the “configuration URL” property that’s going to be used by the Home Assistant.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><p><strong>url</strong> – Configuration URL to publish. </p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N8HADevice15setAvailabilityEb">
|
||||
<span id="_CPPv3N8HADevice15setAvailabilityEb"></span><span id="_CPPv2N8HADevice15setAvailabilityEb"></span><span id="HADevice::setAvailability__b"></span><span class="target" id="class_h_a_device_1a3eac570f51a76789f0564714166c674a"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">setAvailability</span></span></span><span class="sig-paren">(</span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">online</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N8HADevice15setAvailabilityEb" title="Permalink to this definition">¶</a><br /></dt>
|
||||
@@ -357,6 +381,12 @@
|
||||
<dd><p>Specifies whether the device is available (online / offline). </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp var">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N8HADevice18_extendedUniqueIdsE">
|
||||
<span id="_CPPv3N8HADevice18_extendedUniqueIdsE"></span><span id="_CPPv2N8HADevice18_extendedUniqueIdsE"></span><span id="HADevice::_extendedUniqueIds__b"></span><span class="target" id="class_h_a_device_1ad330d3098dd3741669b09c6e98fa8a2c"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">_extendedUniqueIds</span></span></span><a class="headerlink" href="#_CPPv4N8HADevice18_extendedUniqueIdsE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>Specifies whether extended unique IDs feature is enabled. </p>
|
||||
</dd></dl>
|
||||
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -155,10 +156,74 @@
|
||||
<span id="_CPPv36HAMqtt"></span><span id="_CPPv26HAMqtt"></span><span id="HAMqtt"></span><span class="target" id="class_h_a_mqtt"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">HAMqtt</span></span></span><a class="headerlink" href="#_CPPv46HAMqtt" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>This class is a wrapper for the PubSub API. It’s a central point of the library where instances of all device types are stored. </p>
|
||||
<div class="breathe-sectiondef docutils container">
|
||||
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-types">Public Types</p>
|
||||
<dl class="cpp enum">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt15ConnectionStateE">
|
||||
<span id="_CPPv3N6HAMqtt15ConnectionStateE"></span><span id="_CPPv2N6HAMqtt15ConnectionStateE"></span><span class="target" id="class_h_a_mqtt_1a46bf495384c36afc3d85edbaa3d495b7"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ConnectionState</span></span></span><a class="headerlink" href="#_CPPv4N6HAMqtt15ConnectionStateE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p><em>Values:</em></p>
|
||||
<dl class="cpp enumerator">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt15ConnectionState15StateConnectingE">
|
||||
<span id="_CPPv3N6HAMqtt15ConnectionState15StateConnectingE"></span><span id="_CPPv2N6HAMqtt15ConnectionState15StateConnectingE"></span><span class="target" id="class_h_a_mqtt_1a46bf495384c36afc3d85edbaa3d495b7a26e4b442b7686873d5d46a112fae55bd"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">StateConnecting</span></span></span><a class="headerlink" href="#_CPPv4N6HAMqtt15ConnectionState15StateConnectingE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="cpp enumerator">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt15ConnectionState22StateConnectionTimeoutE">
|
||||
<span id="_CPPv3N6HAMqtt15ConnectionState22StateConnectionTimeoutE"></span><span id="_CPPv2N6HAMqtt15ConnectionState22StateConnectionTimeoutE"></span><span class="target" id="class_h_a_mqtt_1a46bf495384c36afc3d85edbaa3d495b7a0f7e0cd68753b9fd49aea3533bbd7a04"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">StateConnectionTimeout</span></span></span><a class="headerlink" href="#_CPPv4N6HAMqtt15ConnectionState22StateConnectionTimeoutE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="cpp enumerator">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt15ConnectionState19StateConnectionLostE">
|
||||
<span id="_CPPv3N6HAMqtt15ConnectionState19StateConnectionLostE"></span><span id="_CPPv2N6HAMqtt15ConnectionState19StateConnectionLostE"></span><span class="target" id="class_h_a_mqtt_1a46bf495384c36afc3d85edbaa3d495b7a2a491377061c733fb54b1cd0adcc0a0c"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">StateConnectionLost</span></span></span><a class="headerlink" href="#_CPPv4N6HAMqtt15ConnectionState19StateConnectionLostE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="cpp enumerator">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt15ConnectionState21StateConnectionFailedE">
|
||||
<span id="_CPPv3N6HAMqtt15ConnectionState21StateConnectionFailedE"></span><span id="_CPPv2N6HAMqtt15ConnectionState21StateConnectionFailedE"></span><span class="target" id="class_h_a_mqtt_1a46bf495384c36afc3d85edbaa3d495b7a84ec7511e2dca0785ca364b75c465019"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">StateConnectionFailed</span></span></span><a class="headerlink" href="#_CPPv4N6HAMqtt15ConnectionState21StateConnectionFailedE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="cpp enumerator">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt15ConnectionState17StateDisconnectedE">
|
||||
<span id="_CPPv3N6HAMqtt15ConnectionState17StateDisconnectedE"></span><span id="_CPPv2N6HAMqtt15ConnectionState17StateDisconnectedE"></span><span class="target" id="class_h_a_mqtt_1a46bf495384c36afc3d85edbaa3d495b7ab8f4310771f23cc05ecb141666c85292"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">StateDisconnected</span></span></span><a class="headerlink" href="#_CPPv4N6HAMqtt15ConnectionState17StateDisconnectedE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="cpp enumerator">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt15ConnectionState14StateConnectedE">
|
||||
<span id="_CPPv3N6HAMqtt15ConnectionState14StateConnectedE"></span><span id="_CPPv2N6HAMqtt15ConnectionState14StateConnectedE"></span><span class="target" id="class_h_a_mqtt_1a46bf495384c36afc3d85edbaa3d495b7a0c33a2492617d852c461645e04d7b641"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">StateConnected</span></span></span><a class="headerlink" href="#_CPPv4N6HAMqtt15ConnectionState14StateConnectedE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="cpp enumerator">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt15ConnectionState16StateBadProtocolE">
|
||||
<span id="_CPPv3N6HAMqtt15ConnectionState16StateBadProtocolE"></span><span id="_CPPv2N6HAMqtt15ConnectionState16StateBadProtocolE"></span><span class="target" id="class_h_a_mqtt_1a46bf495384c36afc3d85edbaa3d495b7a9b88f4b93c76c0270863b2f94d4882d7"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">StateBadProtocol</span></span></span><a class="headerlink" href="#_CPPv4N6HAMqtt15ConnectionState16StateBadProtocolE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="cpp enumerator">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt15ConnectionState16StateBadClientIdE">
|
||||
<span id="_CPPv3N6HAMqtt15ConnectionState16StateBadClientIdE"></span><span id="_CPPv2N6HAMqtt15ConnectionState16StateBadClientIdE"></span><span class="target" id="class_h_a_mqtt_1a46bf495384c36afc3d85edbaa3d495b7ab7da41970dcf4c6c946c54bd76905c33"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">StateBadClientId</span></span></span><a class="headerlink" href="#_CPPv4N6HAMqtt15ConnectionState16StateBadClientIdE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="cpp enumerator">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt15ConnectionState16StateUnavailableE">
|
||||
<span id="_CPPv3N6HAMqtt15ConnectionState16StateUnavailableE"></span><span id="_CPPv2N6HAMqtt15ConnectionState16StateUnavailableE"></span><span class="target" id="class_h_a_mqtt_1a46bf495384c36afc3d85edbaa3d495b7ac7f60402355ec36b51a8ca5d965b90b8"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">StateUnavailable</span></span></span><a class="headerlink" href="#_CPPv4N6HAMqtt15ConnectionState16StateUnavailableE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="cpp enumerator">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt15ConnectionState19StateBadCredentialsE">
|
||||
<span id="_CPPv3N6HAMqtt15ConnectionState19StateBadCredentialsE"></span><span id="_CPPv2N6HAMqtt15ConnectionState19StateBadCredentialsE"></span><span class="target" id="class_h_a_mqtt_1a46bf495384c36afc3d85edbaa3d495b7a00437050c29a348c97743889f378e4f7"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">StateBadCredentials</span></span></span><a class="headerlink" href="#_CPPv4N6HAMqtt15ConnectionState19StateBadCredentialsE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="cpp enumerator">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt15ConnectionState17StateUnauthorizedE">
|
||||
<span id="_CPPv3N6HAMqtt15ConnectionState17StateUnauthorizedE"></span><span id="_CPPv2N6HAMqtt15ConnectionState17StateUnauthorizedE"></span><span class="target" id="class_h_a_mqtt_1a46bf495384c36afc3d85edbaa3d495b7a39d4eda1c9ac8023f84e63c1023e0c54"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">StateUnauthorized</span></span></span><a class="headerlink" href="#_CPPv4N6HAMqtt15ConnectionState17StateUnauthorizedE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
</div>
|
||||
<div class="breathe-sectiondef docutils container">
|
||||
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt6HAMqttER6ClientR8HADeviceK7uint8_t">
|
||||
<span id="_CPPv3N6HAMqtt6HAMqttER6ClientR8HADeviceK7uint8_t"></span><span id="_CPPv2N6HAMqtt6HAMqttER6ClientR8HADeviceK7uint8_t"></span><span id="HAMqtt::HAMqtt__ClientR.HADeviceR.uint8_tC"></span><span class="target" id="class_h_a_mqtt_1a336b9511591544e2642451aae3c174fd"></span><span class="k"><span class="pre">explicit</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">HAMqtt</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Client</span></span><span class="w"> </span><span class="p"><span class="pre">&</span></span><span class="n sig-param"><span class="pre">netClient</span></span>, <a class="reference internal" href="ha-device.html#_CPPv48HADevice" title="HADevice"><span class="n"><span class="pre">HADevice</span></span></a><span class="w"> </span><span class="p"><span class="pre">&</span></span><span class="n sig-param"><span class="pre">device</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">maxDevicesTypesNb</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">6</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N6HAMqtt6HAMqttER6ClientR8HADeviceK7uint8_t" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<span id="_CPPv3N6HAMqtt6HAMqttER6ClientR8HADeviceK7uint8_t"></span><span id="_CPPv2N6HAMqtt6HAMqttER6ClientR8HADeviceK7uint8_t"></span><span id="HAMqtt::HAMqtt__ClientR.HADeviceR.uint8_tC"></span><span class="target" id="class_h_a_mqtt_1a404d7041521e1f10bf250b439abc9048"></span><span class="k"><span class="pre">explicit</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">HAMqtt</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">Client</span></span><span class="w"> </span><span class="p"><span class="pre">&</span></span><span class="n sig-param"><span class="pre">netClient</span></span>, <a class="reference internal" href="ha-device.html#_CPPv48HADevice" title="HADevice"><span class="n"><span class="pre">HADevice</span></span></a><span class="w"> </span><span class="p"><span class="pre">&</span></span><span class="n sig-param"><span class="pre">device</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">maxDevicesTypesNb</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">24</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N6HAMqtt6HAMqttER6ClientR8HADeviceK7uint8_t" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>Creates a new instance of the <a class="reference internal" href="#class_h_a_mqtt"><span class="std std-ref">HAMqtt</span></a> class. Please note that only one instance of the class can be initialized at the same time.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
@@ -239,6 +304,34 @@
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt14onDisconnectedEPFvvE">
|
||||
<span id="_CPPv3N6HAMqtt14onDisconnectedEPFvvE"></span><span id="_CPPv2N6HAMqtt14onDisconnectedEPFvvE"></span><span class="target" id="class_h_a_mqtt_1a42dc8114d38dde6e58ead88f9b5181e3"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">onDisconnected</span></span></span><span class="sig-paren">(</span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">callback</span></span><span class="p"><span class="pre">)</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N6HAMqtt14onDisconnectedEPFvvE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>Registers a new callback method that will be called each time the connection to the MQTT broker is lost.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><p><strong>callback</strong> – Callback method. </p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt14onStateChangedEPFv15ConnectionStateE">
|
||||
<span id="_CPPv3N6HAMqtt14onStateChangedEPFv15ConnectionStateE"></span><span id="_CPPv2N6HAMqtt14onStateChangedEPFv15ConnectionStateE"></span><span class="target" id="class_h_a_mqtt_1acbb91743a51c390e6d2a608f58c5cd3e"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">onStateChanged</span></span></span><span class="sig-paren">(</span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">callback</span></span><span class="p"><span class="pre">)</span></span><span class="p"><span class="pre">(</span></span><a class="reference internal" href="#_CPPv4N6HAMqtt15ConnectionStateE" title="HAMqtt::ConnectionState"><span class="n"><span class="pre">ConnectionState</span></span></a><span class="w"> </span><span class="n"><span class="pre">state</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N6HAMqtt14onStateChangedEPFv15ConnectionStateE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>Registers a new callback method that will be called each time the connection state changes.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><p><strong>callback</strong> – Callback method. </p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4NK6HAMqtt8getStateEv">
|
||||
<span id="_CPPv3NK6HAMqtt8getStateEv"></span><span id="_CPPv2NK6HAMqtt8getStateEv"></span><span id="HAMqtt::getStateC"></span><span class="target" id="class_h_a_mqtt_1a356b1b1ee9ed9b46abca060616cca56e"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N6HAMqtt15ConnectionStateE" title="HAMqtt::ConnectionState"><span class="n"><span class="pre">ConnectionState</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">getState</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK6HAMqtt8getStateEv" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>Returns the current state of the MQTT connection. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt5beginEK9IPAddressK8uint16_tPKcPKc">
|
||||
<span id="_CPPv3N6HAMqtt5beginEK9IPAddressK8uint16_tPKcPKc"></span><span id="_CPPv2N6HAMqtt5beginEK9IPAddressK8uint16_tPKcPKc"></span><span id="HAMqtt::begin__IPAddressC.uint16_tC.cCP.cCP"></span><span class="target" id="class_h_a_mqtt_1ae4e2ebb17afaeef26d98c69d6a9e5cbb"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">begin</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">IPAddress</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">serverIp</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">serverPort</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">1883</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">username</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">nullptr</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">password</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">nullptr</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N6HAMqtt5beginEK9IPAddressK8uint16_tPKcPKc" title="Permalink to this definition">¶</a><br /></dt>
|
||||
@@ -319,6 +412,28 @@
|
||||
<dd><p>Returns true if connection to the MQTT broker is established. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt12setKeepAliveE8uint16_t">
|
||||
<span id="_CPPv3N6HAMqtt12setKeepAliveE8uint16_t"></span><span id="_CPPv2N6HAMqtt12setKeepAliveE8uint16_t"></span><span id="HAMqtt::setKeepAlive__uint16_t"></span><span class="target" id="class_h_a_mqtt_1a014a655f288e0e02e441b5bb33d1094e"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">setKeepAlive</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">keepAlive</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N6HAMqtt12setKeepAliveE8uint16_t" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>Sets keep alive for the MQTT connection. By default it’s 15 seconds.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><p><strong>keepAlive</strong> – Number of seconds to keep connection alive. </p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt13setBufferSizeE8uint16_t">
|
||||
<span id="_CPPv3N6HAMqtt13setBufferSizeE8uint16_t"></span><span id="_CPPv2N6HAMqtt13setBufferSizeE8uint16_t"></span><span id="HAMqtt::setBufferSize__uint16_t"></span><span class="target" id="class_h_a_mqtt_1a90c9d43346a86471ffcc6e5e98fbba6a"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">setBufferSize</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">size</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N6HAMqtt13setBufferSizeE8uint16_t" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>Sets the buffer size for the MQTT connection. By default it’s 256 bytes.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><p><strong>size</strong> – Size of the buffer. </p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt13addDeviceTypeEP16HABaseDeviceType">
|
||||
<span id="_CPPv3N6HAMqtt13addDeviceTypeEP16HABaseDeviceType"></span><span id="_CPPv2N6HAMqtt13addDeviceTypeEP16HABaseDeviceType"></span><span id="HAMqtt::addDeviceType__HABaseDeviceTypeP"></span><span class="target" id="class_h_a_mqtt_1a4f732ac5fd2f5cfc0e6256853adc08f9"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">addDeviceType</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="../device-types/ha-base-device-type.html#_CPPv416HABaseDeviceType" title="HABaseDeviceType"><span class="n"><span class="pre">HABaseDeviceType</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">deviceType</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N6HAMqtt13addDeviceTypeEP16HABaseDeviceType" title="Permalink to this definition">¶</a><br /></dt>
|
||||
@@ -479,6 +594,12 @@
|
||||
<dd><p>This method is called each time the connection with MQTT broker is acquired. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt8setStateE15ConnectionState">
|
||||
<span id="_CPPv3N6HAMqtt8setStateE15ConnectionState"></span><span id="_CPPv2N6HAMqtt8setStateE15ConnectionState"></span><span id="HAMqtt::setState__ConnectionState"></span><span class="target" id="class_h_a_mqtt_1aa2b7c63842cf47c618dd7c36d4feec85"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">setState</span></span></span><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4N6HAMqtt15ConnectionStateE" title="HAMqtt::ConnectionState"><span class="n"><span class="pre">ConnectionState</span></span></a><span class="w"> </span><span class="n sig-param"><span class="pre">state</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N6HAMqtt8setStateE15ConnectionState" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>Sets the state of the MQTT connection. </p>
|
||||
</dd></dl>
|
||||
|
||||
</div>
|
||||
<div class="breathe-sectiondef docutils container">
|
||||
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-private-members">Private Members</p>
|
||||
@@ -506,6 +627,18 @@
|
||||
<dd><p>The callback method that will be called when the MQTT connection is acquired. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp var">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt21_disconnectedCallbackE">
|
||||
<span id="_CPPv3N6HAMqtt21_disconnectedCallbackE"></span><span id="_CPPv2N6HAMqtt21_disconnectedCallbackE"></span><span class="target" id="class_h_a_mqtt_1ab81e921289d90e0d30f86fdc0bc73518"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">_disconnectedCallback</span></span></span><span class="p"><span class="pre">)</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><a class="headerlink" href="#_CPPv4N6HAMqtt21_disconnectedCallbackE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>The callback method that will be called when the MQTT connection is lost. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp var">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt21_stateChangedCallbackE">
|
||||
<span id="_CPPv3N6HAMqtt21_stateChangedCallbackE"></span><span id="_CPPv2N6HAMqtt21_stateChangedCallbackE"></span><span class="target" id="class_h_a_mqtt_1a7d3886e24ddba3f56012c27e5d8959d3"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">_stateChangedCallback</span></span></span><span class="p"><span class="pre">)</span></span><span class="p"><span class="pre">(</span></span><a class="reference internal" href="#_CPPv4N6HAMqtt15ConnectionStateE" title="HAMqtt::ConnectionState"><span class="n"><span class="pre">ConnectionState</span></span></a><span class="w"> </span><span class="n"><span class="pre">state</span></span><span class="p"><span class="pre">)</span></span><a class="headerlink" href="#_CPPv4N6HAMqtt21_stateChangedCallbackE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>The callback method that will be called when the MQTT connection state changes. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp var">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt12_initializedE">
|
||||
<span id="_CPPv3N6HAMqtt12_initializedE"></span><span id="_CPPv2N6HAMqtt12_initializedE"></span><span id="HAMqtt::_initialized__b"></span><span class="target" id="class_h_a_mqtt_1ab5342ef2fc66956a2de96f1b8ad9453b"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">_initialized</span></span></span><a class="headerlink" href="#_CPPv4N6HAMqtt12_initializedE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
@@ -578,12 +711,18 @@
|
||||
<dd><p>The last will retain set by <a class="reference internal" href="#class_h_a_mqtt_1a87c9c08db323a22e065bfa6762a94732"><span class="std std-ref">HAMqtt::setLastWill</span></a>. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp var">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt13_currentStateE">
|
||||
<span id="_CPPv3N6HAMqtt13_currentStateE"></span><span id="_CPPv2N6HAMqtt13_currentStateE"></span><span id="HAMqtt::_currentState__ConnectionState"></span><span class="target" id="class_h_a_mqtt_1a8899aa292155d8c51499142cd0ae950c"></span><a class="reference internal" href="#_CPPv4N6HAMqtt15ConnectionStateE" title="HAMqtt::ConnectionState"><span class="n"><span class="pre">ConnectionState</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">_currentState</span></span></span><a class="headerlink" href="#_CPPv4N6HAMqtt13_currentStateE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>The last known state of the MQTT connection. </p>
|
||||
</dd></dl>
|
||||
|
||||
</div>
|
||||
<div class="breathe-sectiondef docutils container">
|
||||
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-private-static-attributes">Private Static Attributes</p>
|
||||
<dl class="cpp var">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N6HAMqtt17ReconnectIntervalE">
|
||||
<span id="_CPPv3N6HAMqtt17ReconnectIntervalE"></span><span id="_CPPv2N6HAMqtt17ReconnectIntervalE"></span><span id="HAMqtt::ReconnectInterval__uint16_tC"></span><span class="target" id="class_h_a_mqtt_1a68a6a0d104024dcee5cf2534b419a035"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ReconnectInterval</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">5000</span></span><a class="headerlink" href="#_CPPv4N6HAMqtt17ReconnectIntervalE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<span id="_CPPv3N6HAMqtt17ReconnectIntervalE"></span><span id="_CPPv2N6HAMqtt17ReconnectIntervalE"></span><span id="HAMqtt::ReconnectInterval__uint16_tC"></span><span class="target" id="class_h_a_mqtt_1a68a6a0d104024dcee5cf2534b419a035"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ReconnectInterval</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">10000</span></span><a class="headerlink" href="#_CPPv4N6HAMqtt17ReconnectIntervalE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>Interval between MQTT reconnects (milliseconds). </p>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -244,6 +245,23 @@
|
||||
<dd><p>Returns name of the deviced type that was assigned via setName method. It can be nullptr if there is no name assigned. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N16HABaseDeviceType11setObjectIdEPKc">
|
||||
<span id="_CPPv3N16HABaseDeviceType11setObjectIdEPKc"></span><span id="_CPPv2N16HABaseDeviceType11setObjectIdEPKc"></span><span id="HABaseDeviceType::setObjectId__cCP"></span><span class="target" id="class_h_a_base_device_type_1a4c22e772ee15bf7108cba852ed2faa3b"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">setObjectId</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">objectId</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N16HABaseDeviceType11setObjectIdEPKc" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>Sets object ID that will be used by HA to generate entity ID. Keep the ID short to save the resources.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><p><strong>objectId</strong> – The object ID. </p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4NK16HABaseDeviceType11getObjectIdEv">
|
||||
<span id="_CPPv3NK16HABaseDeviceType11getObjectIdEv"></span><span id="_CPPv2NK16HABaseDeviceType11getObjectIdEv"></span><span id="HABaseDeviceType::getObjectIdC"></span><span class="target" id="class_h_a_base_device_type_1aa7df8603a35f638fb9a7c80707347b28"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">getObjectId</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK16HABaseDeviceType11getObjectIdEv" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>Returns the object ID that was set by setObjectId method. It can be nullptr if there is no ID assigned. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N16HABaseDeviceType15setAvailabilityEb">
|
||||
<span id="_CPPv3N16HABaseDeviceType15setAvailabilityEb"></span><span id="_CPPv2N16HABaseDeviceType15setAvailabilityEb"></span><span id="HABaseDeviceType::setAvailability__b"></span><span class="target" id="class_h_a_base_device_type_1a7552355c7806c24cb839b068a2b8694e"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">setAvailability</span></span></span><span class="sig-paren">(</span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">online</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N16HABaseDeviceType15setAvailabilityEb" title="Permalink to this definition">¶</a><br /></dt>
|
||||
@@ -371,6 +389,12 @@
|
||||
<dd><p>The name that was set using setName method. It can be nullptr. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp var">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N16HABaseDeviceType9_objectIdE">
|
||||
<span id="_CPPv3N16HABaseDeviceType9_objectIdE"></span><span id="_CPPv2N16HABaseDeviceType9_objectIdE"></span><span id="HABaseDeviceType::_objectId__cCP"></span><span class="target" id="class_h_a_base_device_type_1af81965b24794e2cba173006ed0a29b00"></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">_objectId</span></span></span><a class="headerlink" href="#_CPPv4N16HABaseDeviceType9_objectIdE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>The object ID that was set using setObjectId method. It can be nullptr. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp var">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N16HABaseDeviceType11_serializerE">
|
||||
<span id="_CPPv3N16HABaseDeviceType11_serializerE"></span><span id="_CPPv2N16HABaseDeviceType11_serializerE"></span><span id="HABaseDeviceType::_serializer__HASerializerP"></span><span class="target" id="class_h_a_base_device_type_1a2183f616ed3662b9d954ee65df896079"></span><a class="reference internal" href="../utils/ha-serializer.html#_CPPv412HASerializer" title="HASerializer"><span class="n"><span class="pre">HASerializer</span></span></a><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">_serializer</span></span></span><a class="headerlink" href="#_CPPv4N16HABaseDeviceType11_serializerE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -187,6 +188,17 @@
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N14HABinarySensor14setExpireAfterE8uint16_t">
|
||||
<span id="_CPPv3N14HABinarySensor14setExpireAfterE8uint16_t"></span><span id="_CPPv2N14HABinarySensor14setExpireAfterE8uint16_t"></span><span id="HABinarySensor::setExpireAfter__uint16_t"></span><span class="target" id="class_h_a_binary_sensor_1a684beba9239222e44e998f8baea41da4"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">setExpireAfter</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">expireAfter</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N14HABinarySensor14setExpireAfterE8uint16_t" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>Sets the number of seconds after the sensor’s state expires, if it’s not updated. By default the sensors state never expires.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><p><strong>expireAfter</strong> – The number of seconds. </p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N14HABinarySensor15setCurrentStateEKb">
|
||||
<span id="_CPPv3N14HABinarySensor15setCurrentStateEKb"></span><span id="_CPPv2N14HABinarySensor15setCurrentStateEKb"></span><span id="HABinarySensor::setCurrentState__bC"></span><span class="target" id="class_h_a_binary_sensor_1a04aa233b543a5d08559de0b772331ced"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">setCurrentState</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">state</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N14HABinarySensor15setCurrentStateEKb" title="Permalink to this definition">¶</a><br /></dt>
|
||||
@@ -271,6 +283,12 @@
|
||||
<dd><p>The icon of the sensor. It can be nullptr. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp var">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N14HABinarySensor12_expireAfterE">
|
||||
<span id="_CPPv3N14HABinarySensor12_expireAfterE"></span><span id="_CPPv2N14HABinarySensor12_expireAfterE"></span><span id="HABinarySensor::_expireAfter__HANumeric"></span><span class="target" id="class_h_a_binary_sensor_1a644e21f52a160a702c3124070722315a"></span><a class="reference internal" href="../utils/ha-numeric.html#_CPPv49HANumeric" title="HANumeric"><span class="n"><span class="pre">HANumeric</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">_expireAfter</span></span></span><a class="headerlink" href="#_CPPv4N14HABinarySensor12_expireAfterE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>It defines the number of seconds after the sensor’s state expires, if it’s not updated. By default the sensors state never expires. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp var">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N14HABinarySensor13_currentStateE">
|
||||
<span id="_CPPv3N14HABinarySensor13_currentStateE"></span><span id="_CPPv2N14HABinarySensor13_currentStateE"></span><span id="HABinarySensor::_currentState__b"></span><span class="target" id="class_h_a_binary_sensor_1a107a5872cf1d9788fe35895278dad79e"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">_currentState</span></span></span><a class="headerlink" href="#_CPPv4N14HABinarySensor13_currentStateE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -197,7 +198,7 @@
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><ul class="simple">
|
||||
<li><p><strong>state</strong> – New state of the select. </p></li>
|
||||
<li><p><strong>state</strong> – New state of the select. You can set <code class="docutils literal notranslate"><span class="pre">-1</span></code> to reset the select. </p></li>
|
||||
<li><p><strong>force</strong> – Forces to update state without comparing it to previous known state. </p></li>
|
||||
</ul>
|
||||
</dd>
|
||||
@@ -207,6 +208,12 @@
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4NK8HASelect16getCurrentOptionEv">
|
||||
<span id="_CPPv3NK8HASelect16getCurrentOptionEv"></span><span id="_CPPv2NK8HASelect16getCurrentOptionEv"></span><span id="HASelect::getCurrentOptionC"></span><span class="target" id="class_h_a_select_1adadff59b86c066136d88188618fbf485"></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">getCurrentOption</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK8HASelect16getCurrentOptionEv" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>Returns the selected option based on the most recent state of the select. You can utilize this method to get the string representation of the option (e.g. for printing). If no option is selected, null is returned. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N8HASelect15setCurrentStateEK6int8_t">
|
||||
<span id="_CPPv3N8HASelect15setCurrentStateEK6int8_t"></span><span id="_CPPv2N8HASelect15setCurrentStateEK6int8_t"></span><span id="HASelect::setCurrentState__int8_tC"></span><span class="target" id="class_h_a_select_1a3ce2a5372c12323e5bd1a29aada88aee"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">setCurrentState</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">int8_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">state</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N8HASelect15setCurrentStateEK6int8_t" title="Permalink to this definition">¶</a><br /></dt>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -161,13 +162,14 @@
|
||||
<div class="breathe-sectiondef docutils container">
|
||||
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N14HASensorNumber14HASensorNumberEPKcK15NumberPrecision">
|
||||
<span id="_CPPv3N14HASensorNumber14HASensorNumberEPKcK15NumberPrecision"></span><span id="_CPPv2N14HASensorNumber14HASensorNumberEPKcK15NumberPrecision"></span><span id="HASensorNumber::HASensorNumber__cCP.NumberPrecisionC"></span><span class="target" id="class_h_a_sensor_number_1ad25fdeb579c1459fd3f57218825b13c1"></span><span class="sig-name descname"><span class="n"><span class="pre">HASensorNumber</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">uniqueId</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">NumberPrecision</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">precision</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">PrecisionP0</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N14HASensorNumber14HASensorNumberEPKcK15NumberPrecision" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N14HASensorNumber14HASensorNumberEPKcK15NumberPrecisionK8uint16_t">
|
||||
<span id="_CPPv3N14HASensorNumber14HASensorNumberEPKcK15NumberPrecisionK8uint16_t"></span><span id="_CPPv2N14HASensorNumber14HASensorNumberEPKcK15NumberPrecisionK8uint16_t"></span><span id="HASensorNumber::HASensorNumber__cCP.NumberPrecisionC.uint16_tC"></span><span class="target" id="class_h_a_sensor_number_1aee8b279589d82b660fb41c223a80053e"></span><span class="sig-name descname"><span class="n"><span class="pre">HASensorNumber</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">uniqueId</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">NumberPrecision</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">precision</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">PrecisionP0</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">features</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">DefaultFeatures</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N14HASensorNumber14HASensorNumberEPKcK15NumberPrecisionK8uint16_t" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><ul class="simple">
|
||||
<li><p><strong>uniqueId</strong> – The unique ID of the sensor. It needs to be unique in a scope of your device. </p></li>
|
||||
<li><p><strong>precision</strong> – Precision of the floating point number that will be displayed in the HA panel. </p></li>
|
||||
<li><p><strong>features</strong> – Features that should be enabled for the sensor. </p></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -164,13 +165,35 @@
|
||||
</div>
|
||||
<p>Subclassed by <a class="reference internal" href="ha-sensor-number.html#class_h_a_sensor_number"><span class="std std-ref">HASensorNumber</span></a></p>
|
||||
<div class="breathe-sectiondef docutils container">
|
||||
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-types">Public Types</p>
|
||||
<dl class="cpp enum">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N8HASensor8FeaturesE">
|
||||
<span id="_CPPv3N8HASensor8FeaturesE"></span><span id="_CPPv2N8HASensor8FeaturesE"></span><span class="target" id="class_h_a_sensor_1a4ecda1d1c6f4aff1ed7e152e38cf3805"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Features</span></span></span><a class="headerlink" href="#_CPPv4N8HASensor8FeaturesE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p><em>Values:</em></p>
|
||||
<dl class="cpp enumerator">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N8HASensor8Features15DefaultFeaturesE">
|
||||
<span id="_CPPv3N8HASensor8Features15DefaultFeaturesE"></span><span id="_CPPv2N8HASensor8Features15DefaultFeaturesE"></span><span class="target" id="class_h_a_sensor_1a4ecda1d1c6f4aff1ed7e152e38cf3805acd369f5847d0304db292abba0235f58d"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DefaultFeatures</span></span></span><a class="headerlink" href="#_CPPv4N8HASensor8Features15DefaultFeaturesE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="cpp enumerator">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N8HASensor8Features21JsonAttributesFeatureE">
|
||||
<span id="_CPPv3N8HASensor8Features21JsonAttributesFeatureE"></span><span id="_CPPv2N8HASensor8Features21JsonAttributesFeatureE"></span><span class="target" id="class_h_a_sensor_1a4ecda1d1c6f4aff1ed7e152e38cf3805a6581398db98868d5a764cce46b9b46ae"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">JsonAttributesFeature</span></span></span><a class="headerlink" href="#_CPPv4N8HASensor8Features21JsonAttributesFeatureE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
</div>
|
||||
<div class="breathe-sectiondef docutils container">
|
||||
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N8HASensor8HASensorEPKc">
|
||||
<span id="_CPPv3N8HASensor8HASensorEPKc"></span><span id="_CPPv2N8HASensor8HASensorEPKc"></span><span id="HASensor::HASensor__cCP"></span><span class="target" id="class_h_a_sensor_1ae03b7288c4b75fdd65d2714c3f57ab99"></span><span class="sig-name descname"><span class="n"><span class="pre">HASensor</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">uniqueId</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N8HASensor8HASensorEPKc" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N8HASensor8HASensorEPKcK8uint16_t">
|
||||
<span id="_CPPv3N8HASensor8HASensorEPKcK8uint16_t"></span><span id="_CPPv2N8HASensor8HASensorEPKcK8uint16_t"></span><span id="HASensor::HASensor__cCP.uint16_tC"></span><span class="target" id="class_h_a_sensor_1a96c8105258c10db536fdbd8e4c8004d4"></span><span class="sig-name descname"><span class="n"><span class="pre">HASensor</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">uniqueId</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">features</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N8HASensor8Features15DefaultFeaturesE" title="HASensor::DefaultFeatures"><span class="n"><span class="pre">DefaultFeatures</span></span></a><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N8HASensor8HASensorEPKcK8uint16_t" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><p><strong>uniqueId</strong> – The unique ID of the sensor. It needs to be unique in a scope of your device. </p>
|
||||
<dd class="field-odd"><ul class="simple">
|
||||
<li><p><strong>uniqueId</strong> – The unique ID of the sensor. It needs to be unique in a scope of your device. </p></li>
|
||||
<li><p><strong>features</strong> – Features that should be enabled for the sensor. </p></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
@@ -189,6 +212,28 @@
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N8HASensor17setJsonAttributesEPKc">
|
||||
<span id="_CPPv3N8HASensor17setJsonAttributesEPKc"></span><span id="_CPPv2N8HASensor17setJsonAttributesEPKc"></span><span id="HASensor::setJsonAttributes__cCP"></span><span class="target" id="class_h_a_sensor_1a04e4a413bfae54813f42fb97b6473193"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">setJsonAttributes</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">json</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N8HASensor17setJsonAttributesEPKc" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>Publishes the given JSON data on the JSON attributes topic. The <code class="docutils literal notranslate"><span class="pre">JsonAttributesFeature</span></code> has to be enabled prior to setting the value.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><p><strong>json</strong> – JSON attributes. </p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N8HASensor14setExpireAfterE8uint16_t">
|
||||
<span id="_CPPv3N8HASensor14setExpireAfterE8uint16_t"></span><span id="_CPPv2N8HASensor14setExpireAfterE8uint16_t"></span><span id="HASensor::setExpireAfter__uint16_t"></span><span class="target" id="class_h_a_sensor_1a11af92c3452c511596c63dbc00baed6e"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">setExpireAfter</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">expireAfter</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N8HASensor14setExpireAfterE8uint16_t" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>Sets the number of seconds after the sensor’s state expires, if it’s not updated. By default the sensors state never expires.</p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><p><strong>expireAfter</strong> – The number of seconds. </p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N8HASensor14setDeviceClassEPKc">
|
||||
<span id="_CPPv3N8HASensor14setDeviceClassEPKc"></span><span id="_CPPv2N8HASensor14setDeviceClassEPKc"></span><span id="HASensor::setDeviceClass__cCP"></span><span class="target" id="class_h_a_sensor_1a8e2ffcb1ae1bb7411464a34d27df8817"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">setDeviceClass</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">deviceClass</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N8HASensor14setDeviceClassEPKc" title="Permalink to this definition">¶</a><br /></dt>
|
||||
@@ -200,6 +245,17 @@
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N8HASensor13setStateClassEPKc">
|
||||
<span id="_CPPv3N8HASensor13setStateClassEPKc"></span><span id="_CPPv2N8HASensor13setStateClassEPKc"></span><span id="HASensor::setStateClass__cCP"></span><span class="target" id="class_h_a_sensor_1a1e246b6728645eeb0b1d190b52221780"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">setStateClass</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">stateClass</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N8HASensor13setStateClassEPKc" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>Sets class of the state for the long term stats. See: <a class="reference external" href="https://developers.home-assistant.io/docs/core/entity/sensor/#long-term-statistics">https://developers.home-assistant.io/docs/core/entity/sensor/#long-term-statistics</a></p>
|
||||
<dl class="field-list simple">
|
||||
<dt class="field-odd">Parameters</dt>
|
||||
<dd class="field-odd"><p><strong>stateClass</strong> – The class name. </p>
|
||||
</dd>
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N8HASensor14setForceUpdateEb">
|
||||
<span id="_CPPv3N8HASensor14setForceUpdateEb"></span><span id="_CPPv2N8HASensor14setForceUpdateEb"></span><span id="HASensor::setForceUpdate__b"></span><span class="target" id="class_h_a_sensor_1adb8db20cf6c35033c6653ab10de319cb"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">setForceUpdate</span></span></span><span class="sig-paren">(</span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">forceUpdate</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N8HASensor14setForceUpdateEb" title="Permalink to this definition">¶</a><br /></dt>
|
||||
@@ -249,12 +305,24 @@
|
||||
</div>
|
||||
<div class="breathe-sectiondef docutils container">
|
||||
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-private-members">Private Members</p>
|
||||
<dl class="cpp var">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N8HASensor9_featuresE">
|
||||
<span id="_CPPv3N8HASensor9_featuresE"></span><span id="_CPPv2N8HASensor9_featuresE"></span><span id="HASensor::_features__uint16_tC"></span><span class="target" id="class_h_a_sensor_1ac3e98af19f840be7cd9aec9d5854c051"></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">_features</span></span></span><a class="headerlink" href="#_CPPv4N8HASensor9_featuresE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>Features enabled for the sensor. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp var">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N8HASensor12_deviceClassE">
|
||||
<span id="_CPPv3N8HASensor12_deviceClassE"></span><span id="_CPPv2N8HASensor12_deviceClassE"></span><span id="HASensor::_deviceClass__cCP"></span><span class="target" id="class_h_a_sensor_1a42ff8d2271f7728acf2fb349595862f0"></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">_deviceClass</span></span></span><a class="headerlink" href="#_CPPv4N8HASensor12_deviceClassE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>The device class. It can be nullptr. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp var">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N8HASensor11_stateClassE">
|
||||
<span id="_CPPv3N8HASensor11_stateClassE"></span><span id="_CPPv2N8HASensor11_stateClassE"></span><span id="HASensor::_stateClass__cCP"></span><span class="target" id="class_h_a_sensor_1ac096f47f39b39e3d91cd94355a62fa35"></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">_stateClass</span></span></span><a class="headerlink" href="#_CPPv4N8HASensor11_stateClassE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>The state class for the long term stats. It can be nullptr. See: <a class="reference external" href="https://developers.home-assistant.io/docs/core/entity/sensor/#long-term-statistics">https://developers.home-assistant.io/docs/core/entity/sensor/#long-term-statistics</a>. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp var">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N8HASensor12_forceUpdateE">
|
||||
<span id="_CPPv3N8HASensor12_forceUpdateE"></span><span id="_CPPv2N8HASensor12_forceUpdateE"></span><span id="HASensor::_forceUpdate__b"></span><span class="target" id="class_h_a_sensor_1a8239a2f39b6cae94871dd852f2526825"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">_forceUpdate</span></span></span><a class="headerlink" href="#_CPPv4N8HASensor12_forceUpdateE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
@@ -273,6 +341,12 @@
|
||||
<dd><p>The unit of measurement for the sensor. It can be nullptr. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp var">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N8HASensor12_expireAfterE">
|
||||
<span id="_CPPv3N8HASensor12_expireAfterE"></span><span id="_CPPv2N8HASensor12_expireAfterE"></span><span id="HASensor::_expireAfter__HANumeric"></span><span class="target" id="class_h_a_sensor_1a695e13ee19b2ca57a2f61f8d1021612c"></span><a class="reference internal" href="../utils/ha-numeric.html#_CPPv49HANumeric" title="HANumeric"><span class="n"><span class="pre">HANumeric</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">_expireAfter</span></span></span><a class="headerlink" href="#_CPPv4N8HASensor12_expireAfterE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>It defines the number of seconds after the sensor’s state expires, if it’s not updated. By default the sensors state never expires. </p>
|
||||
</dd></dl>
|
||||
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2 current"><a class="reference internal" href="index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -463,14 +464,6 @@
|
||||
<span id="_CPPv3N9HANumeric10_precisionE"></span><span id="_CPPv2N9HANumeric10_precisionE"></span><span id="HANumeric::_precision__uint8_t"></span><span class="target" id="class_h_a_numeric_1ab36b34e101f3de1373979f44d1ea67eb"></span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">_precision</span></span></span><a class="headerlink" href="#_CPPv4N9HANumeric10_precisionE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</div>
|
||||
<div class="breathe-sectiondef docutils container">
|
||||
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-friends">Friends</p>
|
||||
<dl>
|
||||
<dt class="sig sig-object cpp">
|
||||
<em class="property"><span class="pre">friend</span> <span class="pre">class</span></em> <span class="pre">HANumeric</span></dt>
|
||||
</dl>
|
||||
|
||||
</div>
|
||||
</dd></dl>
|
||||
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2 current"><a class="reference internal" href="index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -209,6 +210,12 @@
|
||||
</dl>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4NK17HASerializerArray7getItemEK7uint8_t">
|
||||
<span id="_CPPv3NK17HASerializerArray7getItemEK7uint8_t"></span><span id="_CPPv2NK17HASerializerArray7getItemEK7uint8_t"></span><span id="HASerializerArray::getItem__uint8_tCC"></span><span class="target" id="class_h_a_serializer_array_1ad5f99f2ffc0ee2e08ada23e1487f89c4"></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">getItem</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">index</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK17HASerializerArray7getItemEK7uint8_t" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd><p>Returns a pointer to the item at the given index. If the element doesn’t exist, null is returned. </p>
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp function">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4NK17HASerializerArray13calculateSizeEv">
|
||||
<span id="_CPPv3NK17HASerializerArray13calculateSizeEv"></span><span id="_CPPv2NK17HASerializerArray13calculateSizeEv"></span><span id="HASerializerArray::calculateSizeC"></span><span class="target" id="class_h_a_serializer_array_1acd7c86423ae198910ae141002771c847"></span><span class="n"><span class="pre">uint16_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">calculateSize</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK17HASerializerArray13calculateSizeEv" title="Permalink to this definition">¶</a><br /></dt>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2 current"><a class="reference internal" href="index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -198,6 +199,11 @@
|
||||
<span id="_CPPv3N12HASerializer8FlagType16WithAvailabilityE"></span><span id="_CPPv2N12HASerializer8FlagType16WithAvailabilityE"></span><span class="target" id="class_h_a_serializer_1af48ac87d6107bdf5682c2f847fcc1c20ab6eb2bc6b231c4a431cd7124c4f3d9d8"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">WithAvailability</span></span></span><a class="headerlink" href="#_CPPv4N12HASerializer8FlagType16WithAvailabilityE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
<dl class="cpp enumerator">
|
||||
<dt class="sig sig-object cpp" id="_CPPv4N12HASerializer8FlagType12WithUniqueIdE">
|
||||
<span id="_CPPv3N12HASerializer8FlagType12WithUniqueIdE"></span><span id="_CPPv2N12HASerializer8FlagType12WithUniqueIdE"></span><span class="target" id="class_h_a_serializer_1af48ac87d6107bdf5682c2f847fcc1c20a811d30832022e782d1d5a39fd48bd851"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">WithUniqueId</span></span></span><a class="headerlink" href="#_CPPv4N12HASerializer8FlagType12WithUniqueIdE" title="Permalink to this definition">¶</a><br /></dt>
|
||||
<dd></dd></dl>
|
||||
|
||||
</dd></dl>
|
||||
|
||||
<dl class="cpp enum">
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -113,6 +113,7 @@
|
||||
<li class="toctree-l2 current"><a class="reference internal" href="index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../api/utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -157,6 +158,7 @@ It should work fine as long as the <cite>Client</cite> class is available.</p>
|
||||
<li><p>Arduino Nano</p></li>
|
||||
<li><p>Arduino Pro Mini</p></li>
|
||||
<li><p>Arduino Nano 33 IoT</p></li>
|
||||
<li><p>Arduino Due</p></li>
|
||||
<li><p>NodeMCU</p></li>
|
||||
<li><p>Controllino Mega (Pure)</p></li>
|
||||
<li><p>Controllino Maxi (Pure)</p></li>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../api/utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../api/utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../api/utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="../library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../api/utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../api/utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../api/utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../api/utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../api/utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -148,11 +149,11 @@
|
||||
|
||||
<section id="device-configuration">
|
||||
<h1>Device configuration<a class="headerlink" href="#device-configuration" title="Permalink to this headline">¶</a></h1>
|
||||
<p><a class="reference internal" href="../api/core/ha-device.html"><span class="doc">HADevice</span></a> represents the physical device where the library is installed.
|
||||
Logically it’s a group of types like sensors, switches, lights and so on.
|
||||
In the Home Assistant, it’s listed with properties that may be configured using the library’s API.</p>
|
||||
<p>Each property except the unique ID is optional.
|
||||
Setting optional properties increases flash and RAM usage so it’s not recommended to set them on lower-spec MCUs.</p>
|
||||
<p><a class="reference internal" href="../api/core/ha-device.html"><span class="doc">HADevice</span></a> represents the physical device on which the library is used.
|
||||
Essentially, it’s a group of types such as sensors, switches, lights, and more.
|
||||
Within Home Assistant, it appears with properties that can be configured using the library’s API.</p>
|
||||
<p>Every property, except for the unique ID, is optional.
|
||||
Enabling optional properties can lead to increased flash and RAM usage, therefore it is not advisable to set them on lower-spec MCUs.</p>
|
||||
<p>The supported properties are:</p>
|
||||
<ul class="simple">
|
||||
<li><p>unique ID*</p></li>
|
||||
@@ -160,13 +161,15 @@ Setting optional properties increases flash and RAM usage so it’s not recommen
|
||||
<li><p>software version</p></li>
|
||||
<li><p>manufacturer</p></li>
|
||||
<li><p>model</p></li>
|
||||
<li><p>configuration url</p></li>
|
||||
</ul>
|
||||
<section id="unique-id">
|
||||
<h2>Unique ID<a class="headerlink" href="#unique-id" title="Permalink to this headline">¶</a></h2>
|
||||
<p>The ID of a device needs to be unique in a scope of a Home Assistant instance.
|
||||
The safest solution is to use the MAC address of an Ethernet or Wi-Fi chip but you can also implement your own solution.</p>
|
||||
<p>There are three different ways to set the ID of the device.
|
||||
You can pick one depending on your needs.</p>
|
||||
<p>The unique ID serves as an internal identifier for devices within Home Assistant.
|
||||
With this ID, Home Assistant can monitor the device’s parameters and the entities it exposes.
|
||||
The unique ID must be distinct within the scope of the Home Assistant instance.
|
||||
The recommended approach is to use the MAC address of an Ethernet or Wi-Fi chip.</p>
|
||||
<p>There are three distinct methods for setting the device ID, allowing you to choose the one that best suits your requirements.</p>
|
||||
<section id="providing-string-const-char-to-the-hadevice-constructor">
|
||||
<h3>1) Providing string (const char*) to the <a class="reference internal" href="../api/core/ha-device.html"><span class="doc">HADevice</span></a> constructor<a class="headerlink" href="#providing-string-const-char-to-the-hadevice-constructor" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Try to keep the ID simple (alphanumeric characters) and short.</p>
|
||||
@@ -226,7 +229,7 @@ You can pick one depending on your needs.</p>
|
||||
<section id="device-properties">
|
||||
<h2>Device properties<a class="headerlink" href="#device-properties" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Each property has its corresponding setter method in the <a class="reference internal" href="../api/core/ha-device.html"><span class="doc">HADevice</span></a> class.
|
||||
Please note that all these methods accept const char pointer whose <strong>content is not copied</strong>.</p>
|
||||
Please note that all of these methods accept a const char pointer whose <strong>content is not copied</strong>.</p>
|
||||
<div class="highlight-cpp notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><ArduinoHA.h></span><span class="cp"></span>
|
||||
|
||||
<span class="n">HADevice</span><span class="w"> </span><span class="nf">device</span><span class="p">(</span><span class="s">"myUniqueId"</span><span class="p">);</span><span class="w"></span>
|
||||
@@ -236,6 +239,7 @@ Please note that all these methods accept const char pointer whose <strong>conte
|
||||
<span class="w"> </span><span class="n">device</span><span class="p">.</span><span class="n">setSoftwareVersion</span><span class="p">(</span><span class="s">"1.0.0"</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">device</span><span class="p">.</span><span class="n">setManufacturer</span><span class="p">(</span><span class="s">"Developer Corp."</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">device</span><span class="p">.</span><span class="n">setModel</span><span class="p">(</span><span class="s">"ABC-123"</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">device</span><span class="p">.</span><span class="n">setConfigurationUrl</span><span class="p">(</span><span class="s">"http://192.168.1.55:1234"</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="w"> </span><span class="c1">// ...</span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1"><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
|
||||
|
||||
<title>Device types - ArduinoHA</title>
|
||||
<title>Device types (entities) - ArduinoHA</title>
|
||||
|
||||
<link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
|
||||
<link rel="stylesheet" href="../../_static/theme.css " type="text/css" />
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">Device types</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../api/utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -127,7 +128,7 @@
|
||||
|
||||
<li><a href="index.html">Library</a> »</li>
|
||||
|
||||
<li>Device types</li>
|
||||
<li>Device types (entities)</li>
|
||||
</ul>
|
||||
|
||||
|
||||
@@ -146,18 +147,113 @@
|
||||
<hr>
|
||||
<div class="content" role="main" v-pre>
|
||||
|
||||
<section id="device-types">
|
||||
<h1>Device types<a class="headerlink" href="#device-types" title="Permalink to this headline">¶</a></h1>
|
||||
<p>Device type represents a single entity in the Home Assistant panel.
|
||||
It can be a sensor, lock, camera or anything that’s listed in the table below.</p>
|
||||
<p>Your physical device (for example ESP-01 board) can have multiple device types assigned.
|
||||
They will be displayed as child entities in the HA panel.</p>
|
||||
<section id="device-types-entities">
|
||||
<h1>Device types (entities)<a class="headerlink" href="#device-types-entities" title="Permalink to this headline">¶</a></h1>
|
||||
<p>Device type represents a single entity within the Home Assistant panel, which could be a sensor, lock, camera, or any other item listed in the table below.</p>
|
||||
<p>Your physical device, such as an ESP-01 board, can have multiple device types assigned to it.
|
||||
These types will then appear as child entities in the Home Assistant panel.</p>
|
||||
<section id="identifiers">
|
||||
<h2>Identifiers<a class="headerlink" href="#identifiers" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Home Assistant utilizes three distinct identifiers, which might initially appear confusing.
|
||||
Grasping the purpose of each is crucial for a clear understanding of the library’s API.</p>
|
||||
<section id="entity-id">
|
||||
<h3>Entity ID<a class="headerlink" href="#entity-id" title="Permalink to this headline">¶</a></h3>
|
||||
<p>Home Assistant automatically generates an entity ID for each device type registered by your device.
|
||||
This ID is primarily utilized by dashboards and automations within Home Assistant.</p>
|
||||
<p>When the entity is discovered by Home Assistant for the first time, the name field is automatically employed to generate the entity ID.
|
||||
Once registered, you can modify it to any desired value using the Home Assistant User Interface.</p>
|
||||
<p>Home Assistant internally relies on the unique ID, so changing the entity ID or name in the Home Assistant UI does not break the integration between your device and Home Assistant.</p>
|
||||
</section>
|
||||
<section id="object-id">
|
||||
<h3>Object ID<a class="headerlink" href="#object-id" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The object ID is an optional identifier that you can assign to the device type.
|
||||
Its sole purpose is for generating the entity ID described above.</p>
|
||||
<p>By default, Home Assistant generates the entity ID based on the entity’s name.
|
||||
However, when the object ID is provided, Home Assistant uses it to generate the entity ID.</p>
|
||||
<p>Consequently, you can use the entity’s name as a user-friendly label and the object ID as an internal identifier.</p>
|
||||
</section>
|
||||
<section id="unique-id">
|
||||
<h3>Unique ID<a class="headerlink" href="#unique-id" title="Permalink to this headline">¶</a></h3>
|
||||
<p>The unique ID serves as an internal identifier for the entity within the Home Assistant instance.
|
||||
Once the entity with a specific unique ID is created, it cannot be altered, as this identifier is not accessible through the user interface.</p>
|
||||
<p>Home Assistant utilizes this identifier internally to store the parameters of the entity in the database.
|
||||
Given that the unique ID must be unique across the entire Home Assistant instance.
|
||||
Multiple devices cannot expose entities with the same unique ID.</p>
|
||||
<p>By default, the library uses the unique ID provided in the device type’s constructor.
|
||||
However, when you reuse the same codebase on multiple devices, conflicts may arise.
|
||||
To address this issue, you can enable the extended unique ID feature in the HADevice instance.
|
||||
This feature incorporates the device’s unique ID as a prefix for the device type’s ID.</p>
|
||||
<div class="literal-block-wrapper docutils container" id="id1">
|
||||
<div class="code-block-caption"><span class="caption-text">Default behavior</span><a class="headerlink" href="#id1" title="Permalink to this code">¶</a></div>
|
||||
<div class="highlight-cpp notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><Ethernet.h></span><span class="cp"></span>
|
||||
<span class="cp">#include</span><span class="w"> </span><span class="cpf"><ArduinoHA.h></span><span class="cp"></span>
|
||||
|
||||
<span class="n">byte</span><span class="w"> </span><span class="n">mac</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="mh">0x00</span><span class="p">,</span><span class="w"> </span><span class="mh">0x10</span><span class="p">,</span><span class="w"> </span><span class="mh">0xFA</span><span class="p">,</span><span class="w"> </span><span class="mh">0x6E</span><span class="p">,</span><span class="w"> </span><span class="mh">0x38</span><span class="p">,</span><span class="w"> </span><span class="mh">0x4A</span><span class="p">};</span><span class="w"></span>
|
||||
|
||||
<span class="n">EthernetClient</span><span class="w"> </span><span class="n">client</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="n">HADevice</span><span class="w"> </span><span class="nf">device</span><span class="p">(</span><span class="n">mac</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">mac</span><span class="p">));</span><span class="w"> </span><span class="c1">// the unique ID of the device will be 0010fa6e384a</span>
|
||||
<span class="n">HAMqtt</span><span class="w"> </span><span class="nf">mqtt</span><span class="p">(</span><span class="n">client</span><span class="p">,</span><span class="w"> </span><span class="n">device</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="c1">// "myValve" is unique ID of the sensor. You should define your own ID.</span>
|
||||
<span class="n">HASensor</span><span class="w"> </span><span class="nf">valve</span><span class="p">(</span><span class="s">"myValve"</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="kt">void</span><span class="w"> </span><span class="nf">setup</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="c1">// ...</span>
|
||||
|
||||
<span class="w"> </span><span class="n">valve</span><span class="p">.</span><span class="n">setIcon</span><span class="p">(</span><span class="s">"mdi:home"</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">valve</span><span class="p">.</span><span class="n">setName</span><span class="p">(</span><span class="s">"Water valve"</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="w"> </span><span class="c1">// the unique ID of the valve in HA will be "myValve"</span>
|
||||
|
||||
<span class="w"> </span><span class="c1">// ...</span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
|
||||
<span class="kt">void</span><span class="w"> </span><span class="nf">loop</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="c1">// ...</span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="literal-block-wrapper docutils container" id="id2">
|
||||
<div class="code-block-caption"><span class="caption-text">Extended unique IDs</span><a class="headerlink" href="#id2" title="Permalink to this code">¶</a></div>
|
||||
<div class="highlight-cpp notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><Ethernet.h></span><span class="cp"></span>
|
||||
<span class="cp">#include</span><span class="w"> </span><span class="cpf"><ArduinoHA.h></span><span class="cp"></span>
|
||||
|
||||
<span class="n">byte</span><span class="w"> </span><span class="n">mac</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="mh">0x00</span><span class="p">,</span><span class="w"> </span><span class="mh">0x10</span><span class="p">,</span><span class="w"> </span><span class="mh">0xFA</span><span class="p">,</span><span class="w"> </span><span class="mh">0x6E</span><span class="p">,</span><span class="w"> </span><span class="mh">0x38</span><span class="p">,</span><span class="w"> </span><span class="mh">0x4A</span><span class="p">};</span><span class="w"></span>
|
||||
|
||||
<span class="n">EthernetClient</span><span class="w"> </span><span class="n">client</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="n">HADevice</span><span class="w"> </span><span class="nf">device</span><span class="p">(</span><span class="n">mac</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">mac</span><span class="p">));</span><span class="w"> </span><span class="c1">// the unique ID of the device will be 0010fa6e384a</span>
|
||||
<span class="n">HAMqtt</span><span class="w"> </span><span class="nf">mqtt</span><span class="p">(</span><span class="n">client</span><span class="p">,</span><span class="w"> </span><span class="n">device</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="c1">// "myValve" is unique ID of the sensor. You should define your own ID.</span>
|
||||
<span class="n">HASensor</span><span class="w"> </span><span class="nf">valve</span><span class="p">(</span><span class="s">"myValve"</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="kt">void</span><span class="w"> </span><span class="nf">setup</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="c1">// ...</span>
|
||||
|
||||
<span class="w"> </span><span class="n">device</span><span class="p">.</span><span class="n">enableExtendedUniqueIds</span><span class="p">();</span><span class="w"> </span><span class="c1">// <------------ enables extended unique IDs</span>
|
||||
<span class="w"> </span><span class="n">valve</span><span class="p">.</span><span class="n">setIcon</span><span class="p">(</span><span class="s">"mdi:home"</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">valve</span><span class="p">.</span><span class="n">setName</span><span class="p">(</span><span class="s">"Water valve"</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="w"> </span><span class="c1">// the unique ID of the valve in HA will be "0010fa6e384a_myValve"</span>
|
||||
|
||||
<span class="w"> </span><span class="c1">// ...</span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
|
||||
<span class="kt">void</span><span class="w"> </span><span class="nf">loop</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="c1">// ...</span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
<section id="limitations">
|
||||
<h2>Limitations<a class="headerlink" href="#limitations" title="Permalink to this headline">¶</a></h2>
|
||||
<p>Registering a new device type requires some flash and RAM memory to be utilized.
|
||||
On less powerful units like Arduino Uno, you may quickly hit the limit of resources, so keeping the device simple is recommended.
|
||||
Hitting the resource limit will result in random reboots of the device.</p>
|
||||
<p>By default, the maximum number of device types is 6.
|
||||
<p>Registering a new device type involves utilizing a certain amount of flash and RAM memory.
|
||||
On less powerful units, such as the Arduino Uno, you may rapidly reach the resource limit.
|
||||
Therefore, it is advisable to keep the device simple to avoid hitting the resource limit, which could lead to random reboots of the device.</p>
|
||||
<p>By default, devices utilizing ATmega328P or ATmega168 processors are limited to a maximum of 6 device types, while other platforms can support up to 24 device types.
|
||||
You can increase the limit using the <a class="reference internal" href="../api/core/ha-mqtt.html"><span class="doc">HAMqtt</span></a> class constructor as follows:</p>
|
||||
<div class="highlight-cpp notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><Ethernet.h></span><span class="cp"></span>
|
||||
<span class="cp">#include</span><span class="w"> </span><span class="cpf"><ArduinoHA.h></span><span class="cp"></span>
|
||||
@@ -165,7 +261,7 @@ You can increase the limit using the <a class="reference internal" href="../api/
|
||||
<span class="n">byte</span><span class="w"> </span><span class="n">mac</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="mh">0x00</span><span class="p">,</span><span class="w"> </span><span class="mh">0x10</span><span class="p">,</span><span class="w"> </span><span class="mh">0xFA</span><span class="p">,</span><span class="w"> </span><span class="mh">0x6E</span><span class="p">,</span><span class="w"> </span><span class="mh">0x38</span><span class="p">,</span><span class="w"> </span><span class="mh">0x4A</span><span class="p">};</span><span class="w"></span>
|
||||
<span class="n">EthernetClient</span><span class="w"> </span><span class="n">client</span><span class="p">;</span><span class="w"></span>
|
||||
<span class="n">HADevice</span><span class="w"> </span><span class="nf">device</span><span class="p">(</span><span class="n">mac</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">mac</span><span class="p">));</span><span class="w"></span>
|
||||
<span class="n">HAMqtt</span><span class="w"> </span><span class="nf">mqtt</span><span class="p">(</span><span class="n">client</span><span class="p">,</span><span class="w"> </span><span class="n">device</span><span class="p">,</span><span class="w"> </span><span class="mi">12</span><span class="p">);</span><span class="w"> </span><span class="c1">// <------------ 12 is a new limit of device types</span>
|
||||
<span class="n">HAMqtt</span><span class="w"> </span><span class="nf">mqtt</span><span class="p">(</span><span class="n">client</span><span class="p">,</span><span class="w"> </span><span class="n">device</span><span class="p">,</span><span class="w"> </span><span class="mi">40</span><span class="p">);</span><span class="w"> </span><span class="c1">// <------------ 40 is a new limit of device types</span>
|
||||
|
||||
<span class="kt">void</span><span class="w"> </span><span class="nf">setup</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">Ethernet</span><span class="p">.</span><span class="n">begin</span><span class="p">(</span><span class="n">mac</span><span class="p">);</span><span class="w"></span>
|
||||
@@ -198,30 +294,38 @@ You can increase the limit using the <a class="reference internal" href="../api/
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="row-even"><td><p>Binary sensor</p></td>
|
||||
<tr class="row-even"><td><p>Alarm control panel</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>–</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>Binary sensor</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p><a class="reference internal" href="../api/device-types/ha-binary-sensor.html"><span class="doc">HABinarySensor</span></a></p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>Button</p></td>
|
||||
<tr class="row-even"><td><p>Button</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p><a class="reference internal" href="../api/device-types/ha-button.html"><span class="doc">HAButton</span></a></p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>Camera</p></td>
|
||||
<tr class="row-odd"><td><p>Camera</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p><a class="reference internal" href="../api/device-types/ha-camera.html"><span class="doc">HACamera</span></a></p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>Cover</p></td>
|
||||
<tr class="row-even"><td><p>Cover</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p><a class="reference internal" href="../api/device-types/ha-cover.html"><span class="doc">HACover</span></a></p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>Device tracker</p></td>
|
||||
<tr class="row-odd"><td><p>Device tracker</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p><a class="reference internal" href="../api/device-types/ha-device-tracker.html"><span class="doc">HADeviceTracker</span></a></p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>Device trigger</p></td>
|
||||
<tr class="row-even"><td><p>Device trigger</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p><a class="reference internal" href="../api/device-types/ha-device-trigger.html"><span class="doc">HADeviceTrigger</span></a></p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>Event</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>–</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>Fan</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p><a class="reference internal" href="../api/device-types/ha-fan.html"><span class="doc">HAFan</span></a></p></td>
|
||||
@@ -234,52 +338,76 @@ You can increase the limit using the <a class="reference internal" href="../api/
|
||||
<td><p>✅</p></td>
|
||||
<td><p><a class="reference internal" href="../api/device-types/ha-hvac.html"><span class="doc">HAHVAC</span></a></p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>Light</p></td>
|
||||
<tr class="row-odd"><td><p>Lawn mower</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>–</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>Light</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p><a class="reference internal" href="../api/device-types/ha-light.html"><span class="doc">HALight</span></a></p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>Lock</p></td>
|
||||
<tr class="row-odd"><td><p>Lock</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p><a class="reference internal" href="../api/device-types/ha-lock.html"><span class="doc">HALock</span></a></p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>Number</p></td>
|
||||
<tr class="row-even"><td><p>Number</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p><a class="reference internal" href="../api/device-types/ha-number.html"><span class="doc">HANumber</span></a></p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>Scene</p></td>
|
||||
<tr class="row-odd"><td><p>Scene</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p><a class="reference internal" href="../api/device-types/ha-scene.html"><span class="doc">HAScene</span></a></p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>Select</p></td>
|
||||
<tr class="row-even"><td><p>Select</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p><a class="reference internal" href="../api/device-types/ha-select.html"><span class="doc">HASelect</span></a></p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><div class="line-block">
|
||||
<tr class="row-odd"><td><div class="line-block">
|
||||
<div class="line">Sensor (text)</div>
|
||||
</div>
|
||||
</td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p><a class="reference internal" href="../api/device-types/ha-sensor.html"><span class="doc">HASensor</span></a></p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><div class="line-block">
|
||||
<tr class="row-even"><td><div class="line-block">
|
||||
<div class="line">Sensor (number)</div>
|
||||
</div>
|
||||
</td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p><a class="reference internal" href="../api/device-types/ha-sensor-number.html"><span class="doc">HASensorNumber</span></a></p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>Siren</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>–</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>Switch</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p><a class="reference internal" href="../api/device-types/ha-switch.html"><span class="doc">HASwitch</span></a></p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>Tag scanner</p></td>
|
||||
<tr class="row-odd"><td><p>Update</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>–</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>Tag scanner</p></td>
|
||||
<td><p>✅</p></td>
|
||||
<td><p><a class="reference internal" href="../api/device-types/ha-tag-scanner.html"><span class="doc">HATagScanner</span></a></p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>Text</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>–</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>Vacuum</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>–</p></td>
|
||||
</tr>
|
||||
<tr class="row-odd"><td><p>Valve</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>–</p></td>
|
||||
</tr>
|
||||
<tr class="row-even"><td><p>Water heater</p></td>
|
||||
<td><p>❌</p></td>
|
||||
<td><p>–</p></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="Device types" href="device-types.html" />
|
||||
<link rel="next" title="Device types (entities)" href="device-types.html" />
|
||||
<link rel="prev" title="Connection parameters" href="connection-params.html" />
|
||||
</head>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../api/utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -138,7 +139,7 @@
|
||||
</li>
|
||||
<li class="next">
|
||||
<a href="device-types.html"
|
||||
title="next chapter">Device types →</a>
|
||||
title="next chapter">Device types (entities) →</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -198,7 +199,7 @@ The data topic’s prefix can be changed using <code class="docutils literal not
|
||||
</li>
|
||||
<li class="next">
|
||||
<a href="device-types.html"
|
||||
title="next chapter">Device types →</a>
|
||||
title="next chapter">Device types (entities) →</a>
|
||||
</li>
|
||||
</ul><div class="footer" role="contentinfo">
|
||||
© Copyright 2022, Dawid Chyrzynski.
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../api/utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -171,15 +172,13 @@ Solid understanding of foundations will allow you to utilize full potential of t
|
||||
<li class="toctree-l2"><a class="reference internal" href="discovery.html#topics-prefix">Topics prefix</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="device-types.html">Device types</a><ul>
|
||||
<li class="toctree-l1"><a class="reference internal" href="device-types.html">Device types (entities)</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="device-types.html#identifiers">Identifiers</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="device-types.html#limitations">Limitations</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="device-types.html#supported-device-types">Supported device types</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="mqtt-security.html">MQTT security</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="mqtt-security.html#ssl-connection">SSL connection</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l1"><a class="reference internal" href="mqtt-advanced.html">MQTT advanced features</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="mqtt-advanced.html#callbacks">Callbacks</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="mqtt-advanced.html#subscriptions">Subscriptions</a></li>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../api/utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -148,18 +149,16 @@
|
||||
|
||||
<section id="introduction">
|
||||
<h1>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline">¶</a></h1>
|
||||
<p>Before implementing the business logic of your application you will need to
|
||||
add a few necessary pieces of code to your project.
|
||||
Basically, everything comes up to a few basic rules:</p>
|
||||
<p>Prior to implementing the business logic of your application, you’ll need to incorporate several essential pieces of code into your project.
|
||||
Essentially, everything boils down to a few fundamental rules:</p>
|
||||
<ol class="arabic simple">
|
||||
<li><p><a class="reference internal" href="../api/core/ha-device.html"><span class="doc">HADevice</span></a> and <a class="reference internal" href="../api/core/ha-mqtt.html"><span class="doc">HAMqtt</span></a> instances need to be initialized once globally or as a part of another global object.</p></li>
|
||||
<li><p><a class="reference internal" href="../api/core/ha-mqtt.html"><span class="doc">HAMqtt::begin</span></a> needs to be called at the end of setup logic. It provides MQTT broker credentials that will be used for a connection.</p></li>
|
||||
<li><p><a class="reference internal" href="../api/core/ha-mqtt.html"><span class="doc">HAMqtt::begin</span></a> needs to be called at the end of Arduino’s setup logic. It lets you provide the MQTT broker’s IP address and credentials.</p></li>
|
||||
<li><p><a class="reference internal" href="../api/core/ha-mqtt.html"><span class="doc">HAMqtt::loop</span></a> method needs to be called periodically (it doesn’t need to be called on each tick).</p></li>
|
||||
<li><p>Device types need to be initialized after <a class="reference internal" href="../api/core/ha-mqtt.html"><span class="doc">HAMqtt</span></a> class (it will be described later in the documentation).</p></li>
|
||||
</ol>
|
||||
<p>Here are the minimal boilerplates that you can start with.
|
||||
Don’t worry if you have no idea what’s going on here.
|
||||
Everything will be covered in the following chapters.</p>
|
||||
<p>Here are the minimal boilerplate examples to get you started.
|
||||
Don’t worry if you have no idea what’s happening here; everything will be explained in detail in the following chapters.</p>
|
||||
<section id="arduino-boilerplate">
|
||||
<h2>Arduino Boilerplate<a class="headerlink" href="#arduino-boilerplate" title="Permalink to this headline">¶</a></h2>
|
||||
<div class="highlight-cpp notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><Ethernet.h></span><span class="cp"></span>
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../api/utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -168,11 +169,23 @@ Please take a look at the example below.</p>
|
||||
<span class="w"> </span><span class="c1">// this method will be called when connection to MQTT broker is established</span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
|
||||
<span class="kt">void</span><span class="w"> </span><span class="nf">onDisconnected</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="c1">// this method will be called when connection to MQTT broker is lost</span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
|
||||
<span class="kt">void</span><span class="w"> </span><span class="nf">onStateChanged</span><span class="p">(</span><span class="n">HAMqtt</span><span class="o">::</span><span class="n">ConnectionState</span><span class="w"> </span><span class="n">state</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="c1">// this method will be called each time the state of the MQTT connection changes</span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
|
||||
<span class="kt">void</span><span class="w"> </span><span class="nf">setup</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">Ethernet</span><span class="p">.</span><span class="n">begin</span><span class="p">(</span><span class="n">mac</span><span class="p">);</span><span class="w"></span>
|
||||
|
||||
<span class="w"> </span><span class="n">mqtt</span><span class="p">.</span><span class="n">onMessage</span><span class="p">(</span><span class="n">onMessage</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">mqtt</span><span class="p">.</span><span class="n">onConnected</span><span class="p">(</span><span class="n">onConnected</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">mqtt</span><span class="p">.</span><span class="n">onDisconnected</span><span class="p">(</span><span class="n">onDisconnected</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">mqtt</span><span class="p">.</span><span class="n">onStateChanged</span><span class="p">(</span><span class="n">onStateChanged</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="w"> </span><span class="n">mqtt</span><span class="p">.</span><span class="n">setBufferSize</span><span class="p">(</span><span class="mi">512</span><span class="p">);</span><span class="w"> </span><span class="c1">// set the buffer size to 512 bytes, default is 256 bytes</span>
|
||||
<span class="w"> </span><span class="n">mqtt</span><span class="p">.</span><span class="n">setKeepAlive</span><span class="p">(</span><span class="mi">60</span><span class="p">);</span><span class="w"> </span><span class="c1">// set the keep alive interval to 60 seconds, default is 15 seconds</span>
|
||||
<span class="w"> </span><span class="n">mqtt</span><span class="p">.</span><span class="n">begin</span><span class="p">(</span><span class="s">"192.168.1.50"</span><span class="p">,</span><span class="w"> </span><span class="s">"username"</span><span class="p">,</span><span class="w"> </span><span class="s">"password"</span><span class="p">);</span><span class="w"></span>
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<link rel="index" title="Index" href="../../genindex.html" />
|
||||
<link rel="search" title="Search" href="../../search.html" />
|
||||
<link rel="next" title="MQTT advanced features" href="mqtt-advanced.html" />
|
||||
<link rel="prev" title="Device types" href="device-types.html" />
|
||||
<link rel="prev" title="Device types (entities)" href="device-types.html" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
@@ -102,7 +102,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2 current"><a class="current reference internal" href="#">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -114,6 +114,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="../api/utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -134,7 +135,7 @@
|
||||
<ul class="page-nav">
|
||||
<li class="prev">
|
||||
<a href="device-types.html"
|
||||
title="previous chapter">← Device types</a>
|
||||
title="previous chapter">← Device types (entities)</a>
|
||||
</li>
|
||||
<li class="next">
|
||||
<a href="mqtt-advanced.html"
|
||||
@@ -148,14 +149,14 @@
|
||||
|
||||
<section id="mqtt-security">
|
||||
<h1>MQTT security<a class="headerlink" href="#mqtt-security" title="Permalink to this headline">¶</a></h1>
|
||||
<p>The library allows you to use credentials for acquiring a TCP connection with the MQTT broker.
|
||||
By default you can use the same credentials you use for login in the Home Assistant panel but you can also configure custom credentials in the Mosquitto broker.</p>
|
||||
<p>The library enables you to utilize credentials to establish a TCP connection with the MQTT broker.
|
||||
By default, you can employ the same credentials utilized for logging into the Home Assistant panel.
|
||||
However, it’s also possible to configure custom credentials within the Mosquitto broker.</p>
|
||||
<div class="admonition danger">
|
||||
<p class="admonition-title">Danger</p>
|
||||
<p>This solution is not 100% secure because communication between Arduino and Home Assistant is not encrypted.
|
||||
Username and password can be easily discovered by analyzing your local network traffic.
|
||||
However, that’s fine as long as your local network is secured against unattended access.
|
||||
On more powerful devices (like ESP), you should consider using TLS/SSL connection.</p>
|
||||
<p>This solution may not provide comprehensive security as the communication between Arduino and Home Assistant lacks encryption.
|
||||
Consequently, username and password could be vulnerable to discovery through analysis of local network traffic.
|
||||
However, this may not pose a significant risk if your local network is properly secured against unauthorized access.</p>
|
||||
</div>
|
||||
<div class="highlight-cpp notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><Ethernet.h></span><span class="cp"></span>
|
||||
<span class="cp">#include</span><span class="w"> </span><span class="cpf"><ArduinoHA.h></span><span class="cp"></span>
|
||||
@@ -177,11 +178,6 @@ On more powerful devices (like ESP), you should consider using TLS/SSL connectio
|
||||
<span class="p">}</span><span class="w"></span>
|
||||
</pre></div>
|
||||
</div>
|
||||
<section id="ssl-connection">
|
||||
<h2>SSL connection<a class="headerlink" href="#ssl-connection" title="Permalink to this headline">¶</a></h2>
|
||||
<p>On ESP32/ESP8266 you can use <code class="docutils literal notranslate"><span class="pre">WiFiClientSecure</span></code> client to establish encrypted connection between your device and Home Assistant.
|
||||
Please take a look at <a class="reference external" href="https://github.com/dawidchyrzynski/arduino-home-assistant/tree/main/examples/mqtt-with-ssl/mqtt-with-ssl.ino">this example</a>.</p>
|
||||
</section>
|
||||
</section>
|
||||
|
||||
|
||||
@@ -190,7 +186,7 @@ Please take a look at <a class="reference external" href="https://github.com/daw
|
||||
<div class="inner"><ul class="page-nav">
|
||||
<li class="prev">
|
||||
<a href="device-types.html"
|
||||
title="previous chapter">← Device types</a>
|
||||
title="previous chapter">← Device types (entities)</a>
|
||||
</li>
|
||||
<li class="next">
|
||||
<a href="mqtt-advanced.html"
|
||||
|
||||
+90
-5
@@ -100,7 +100,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -112,6 +112,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/api/utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -151,6 +152,8 @@
|
||||
<li><a href="documents/api/device-types/ha-base-device-type.html#_CPPv4N16HABaseDeviceType14_componentNameE">HABaseDeviceType::_componentName (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-base-device-type.html#_CPPv4N16HABaseDeviceType5_nameE">HABaseDeviceType::_name (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-base-device-type.html#_CPPv4N16HABaseDeviceType9_objectIdE">HABaseDeviceType::_objectId (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-base-device-type.html#_CPPv4N16HABaseDeviceType11_serializerE">HABaseDeviceType::_serializer (C++ member)</a>
|
||||
</li>
|
||||
@@ -171,6 +174,8 @@
|
||||
<li><a href="documents/api/device-types/ha-base-device-type.html#_CPPv4N16HABaseDeviceType17destroySerializerEv">HABaseDeviceType::destroySerializer (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-base-device-type.html#_CPPv4NK16HABaseDeviceType7getNameEv">HABaseDeviceType::getName (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-base-device-type.html#_CPPv4NK16HABaseDeviceType11getObjectIdEv">HABaseDeviceType::getObjectId (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-base-device-type.html#_CPPv4N16HABaseDeviceType16HABaseDeviceTypeEPK19__FlashStringHelperPKc">HABaseDeviceType::HABaseDeviceType (C++ function)</a>
|
||||
</li>
|
||||
@@ -203,6 +208,8 @@
|
||||
<li><a href="documents/api/device-types/ha-base-device-type.html#_CPPv4N16HABaseDeviceType15setAvailabilityEb">HABaseDeviceType::setAvailability (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-base-device-type.html#_CPPv4N16HABaseDeviceType7setNameEPKc">HABaseDeviceType::setName (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-base-device-type.html#_CPPv4N16HABaseDeviceType11setObjectIdEPKc">HABaseDeviceType::setObjectId (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-base-device-type.html#_CPPv4N16HABaseDeviceType14subscribeTopicEPKcPK19__FlashStringHelper">HABaseDeviceType::subscribeTopic (C++ function)</a>
|
||||
</li>
|
||||
@@ -213,6 +220,8 @@
|
||||
<li><a href="documents/api/device-types/ha-binary-sensor.html#_CPPv4N14HABinarySensor6_classE">HABinarySensor::_class (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-binary-sensor.html#_CPPv4N14HABinarySensor13_currentStateE">HABinarySensor::_currentState (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-binary-sensor.html#_CPPv4N14HABinarySensor12_expireAfterE">HABinarySensor::_expireAfter (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-binary-sensor.html#_CPPv4N14HABinarySensor5_iconE">HABinarySensor::_icon (C++ member)</a>
|
||||
</li>
|
||||
@@ -229,6 +238,8 @@
|
||||
<li><a href="documents/api/device-types/ha-binary-sensor.html#_CPPv4N14HABinarySensor15setCurrentStateEKb">HABinarySensor::setCurrentState (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-binary-sensor.html#_CPPv4N14HABinarySensor14setDeviceClassEPKc">HABinarySensor::setDeviceClass (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-binary-sensor.html#_CPPv4N14HABinarySensor14setExpireAfterE8uint16_t">HABinarySensor::setExpireAfter (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-binary-sensor.html#_CPPv4N14HABinarySensor7setIconEPKc">HABinarySensor::setIcon (C++ function)</a>
|
||||
</li>
|
||||
@@ -375,6 +386,8 @@
|
||||
<li><a href="documents/api/core/ha-device.html#_CPPv4N8HADevice18_availabilityTopicE">HADevice::_availabilityTopic (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-device.html#_CPPv4N8HADevice10_availableE">HADevice::_available (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-device.html#_CPPv4N8HADevice18_extendedUniqueIdsE">HADevice::_extendedUniqueIds (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-device.html#_CPPv4N8HADevice13_ownsUniqueIdE">HADevice::_ownsUniqueId (C++ member)</a>
|
||||
</li>
|
||||
@@ -383,6 +396,8 @@
|
||||
<li><a href="documents/api/core/ha-device.html#_CPPv4N8HADevice19_sharedAvailabilityE">HADevice::_sharedAvailability (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-device.html#_CPPv4N8HADevice9_uniqueIdE">HADevice::_uniqueId (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-device.html#_CPPv4N8HADevice23enableExtendedUniqueIdsEv">HADevice::enableExtendedUniqueIds (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-device.html#_CPPv4N8HADevice14enableLastWillEv">HADevice::enableLastWill (C++ function)</a>
|
||||
</li>
|
||||
@@ -397,12 +412,16 @@
|
||||
<li><a href="documents/api/core/ha-device.html#_CPPv4N8HADevice8HADeviceEPK4byteK8uint16_t">HADevice::HADevice (C++ function)</a>, <a href="documents/api/core/ha-device.html#_CPPv4N8HADevice8HADeviceEPKc">[1]</a>, <a href="documents/api/core/ha-device.html#_CPPv4N8HADevice8HADeviceEv">[2]</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-device.html#_CPPv4NK8HADevice11isAvailableEv">HADevice::isAvailable (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-device.html#_CPPv4NK8HADevice26isExtendedUniqueIdsEnabledEv">HADevice::isExtendedUniqueIdsEnabled (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-device.html#_CPPv4NK8HADevice27isSharedAvailabilityEnabledEv">HADevice::isSharedAvailabilityEnabled (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-device.html#_CPPv4NK8HADevice19publishAvailabilityEv">HADevice::publishAvailability (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-device.html#_CPPv4N8HADevice15setAvailabilityEb">HADevice::setAvailability (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-device.html#_CPPv4N8HADevice19setConfigurationUrlEPKc">HADevice::setConfigurationUrl (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-device.html#_CPPv4N8HADevice15setManufacturerEPKc">HADevice::setManufacturer (C++ function)</a>
|
||||
</li>
|
||||
@@ -858,8 +877,6 @@
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-hvac.html#_CPPv4N6HAHVAC15TemperatureUnit11DefaultUnitE">HAHVAC::TemperatureUnit::DefaultUnit (C++ enumerator)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="documents/api/device-types/ha-hvac.html#_CPPv4N6HAHVAC15TemperatureUnit14FahrenheitUnitE">HAHVAC::TemperatureUnit::FahrenheitUnit (C++ enumerator)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-hvac.html#_CPPv4N6HAHVACD0Ev">HAHVAC::~HAHVAC (C++ function)</a>
|
||||
@@ -884,6 +901,8 @@
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-light.html#_CPPv4N7HALight5_iconE">HALight::_icon (C++ member)</a>
|
||||
</li>
|
||||
</ul></td>
|
||||
<td style="width: 33%; vertical-align: top;"><ul>
|
||||
<li><a href="documents/api/device-types/ha-light.html#_CPPv4N7HALight10_maxMiredsE">HALight::_maxMireds (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-light.html#_CPPv4N7HALight10_minMiredsE">HALight::_minMireds (C++ member)</a>
|
||||
@@ -1057,6 +1076,8 @@
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv46HAMqtt">HAMqtt (C++ class)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt18_connectedCallbackE">HAMqtt::_connectedCallback (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt13_currentStateE">HAMqtt::_currentState (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt11_dataPrefixE">HAMqtt::_dataPrefix (C++ member)</a>
|
||||
</li>
|
||||
@@ -1065,6 +1086,8 @@
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt13_devicesTypesE">HAMqtt::_devicesTypes (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt15_devicesTypesNbE">HAMqtt::_devicesTypesNb (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt21_disconnectedCallbackE">HAMqtt::_disconnectedCallback (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt16_discoveryPrefixE">HAMqtt::_discoveryPrefix (C++ member)</a>
|
||||
</li>
|
||||
@@ -1087,6 +1110,8 @@
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt5_mqttE">HAMqtt::_mqtt (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt9_passwordE">HAMqtt::_password (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt21_stateChangedCallbackE">HAMqtt::_stateChangedCallback (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt9_usernameE">HAMqtt::_username (C++ member)</a>
|
||||
</li>
|
||||
@@ -1095,6 +1120,30 @@
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt5beginEK9IPAddressK8uint16_tPKcPKc">HAMqtt::begin (C++ function)</a>, <a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt5beginEK9IPAddressPKcPKc">[1]</a>, <a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt5beginEPKcK8uint16_tPKcPKc">[2]</a>, <a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt5beginEPKcPKcPKc">[3]</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt12beginPublishEPKc8uint16_tb">HAMqtt::beginPublish (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt15ConnectionStateE">HAMqtt::ConnectionState (C++ enum)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt15ConnectionState16StateBadClientIdE">HAMqtt::ConnectionState::StateBadClientId (C++ enumerator)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt15ConnectionState19StateBadCredentialsE">HAMqtt::ConnectionState::StateBadCredentials (C++ enumerator)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt15ConnectionState16StateBadProtocolE">HAMqtt::ConnectionState::StateBadProtocol (C++ enumerator)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt15ConnectionState14StateConnectedE">HAMqtt::ConnectionState::StateConnected (C++ enumerator)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt15ConnectionState15StateConnectingE">HAMqtt::ConnectionState::StateConnecting (C++ enumerator)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt15ConnectionState21StateConnectionFailedE">HAMqtt::ConnectionState::StateConnectionFailed (C++ enumerator)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt15ConnectionState19StateConnectionLostE">HAMqtt::ConnectionState::StateConnectionLost (C++ enumerator)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt15ConnectionState22StateConnectionTimeoutE">HAMqtt::ConnectionState::StateConnectionTimeout (C++ enumerator)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt15ConnectionState17StateDisconnectedE">HAMqtt::ConnectionState::StateDisconnected (C++ enumerator)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt15ConnectionState17StateUnauthorizedE">HAMqtt::ConnectionState::StateUnauthorized (C++ enumerator)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt15ConnectionState16StateUnavailableE">HAMqtt::ConnectionState::StateUnavailable (C++ enumerator)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt15connectToServerEv">HAMqtt::connectToServer (C++ function)</a>
|
||||
</li>
|
||||
@@ -1107,6 +1156,8 @@
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4NK6HAMqtt9getDeviceEv">HAMqtt::getDevice (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4NK6HAMqtt18getDiscoveryPrefixEv">HAMqtt::getDiscoveryPrefix (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4NK6HAMqtt8getStateEv">HAMqtt::getState (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt6HAMqttER6ClientR8HADeviceK7uint8_t">HAMqtt::HAMqtt (C++ function)</a>
|
||||
</li>
|
||||
@@ -1119,20 +1170,30 @@
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt11onConnectedEPFvvE">HAMqtt::onConnected (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt16onConnectedLogicEv">HAMqtt::onConnectedLogic (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt14onDisconnectedEPFvvE">HAMqtt::onDisconnected (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt9onMessageEPFvPKcPK7uint8_t8uint16_tE">HAMqtt::onMessage (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt14onStateChangedEPFv15ConnectionStateE">HAMqtt::onStateChanged (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt14processMessageEPKcPK7uint8_t8uint16_t">HAMqtt::processMessage (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt7publishEPKcPKcb">HAMqtt::publish (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt17ReconnectIntervalE">HAMqtt::ReconnectInterval (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt13setBufferSizeE8uint16_t">HAMqtt::setBufferSize (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt13setDataPrefixEPKc">HAMqtt::setDataPrefix (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt18setDiscoveryPrefixEPKc">HAMqtt::setDiscoveryPrefix (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt12setKeepAliveE8uint16_t">HAMqtt::setKeepAlive (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt11setLastWillEPKcPKcb">HAMqtt::setLastWill (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt8setStateE15ConnectionState">HAMqtt::setState (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/core/ha-mqtt.html#_CPPv4N6HAMqtt9subscribeEPKc">HAMqtt::subscribe (C++ function)</a>
|
||||
</li>
|
||||
@@ -1319,6 +1380,8 @@
|
||||
<li><a href="documents/api/device-types/ha-select.html#_CPPv4N8HASelect15buildSerializerEv">HASelect::buildSerializer (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-select.html#_CPPv4NK8HASelect20countOptionsInStringEPKc">HASelect::countOptionsInString (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-select.html#_CPPv4NK8HASelect16getCurrentOptionEv">HASelect::getCurrentOption (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-select.html#_CPPv4NK8HASelect15getCurrentStateEv">HASelect::getCurrentState (C++ function)</a>
|
||||
</li>
|
||||
@@ -1349,24 +1412,42 @@
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv48HASensor">HASensor (C++ class)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv4N8HASensor12_deviceClassE">HASensor::_deviceClass (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv4N8HASensor12_expireAfterE">HASensor::_expireAfter (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv4N8HASensor9_featuresE">HASensor::_features (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv4N8HASensor12_forceUpdateE">HASensor::_forceUpdate (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv4N8HASensor5_iconE">HASensor::_icon (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv4N8HASensor11_stateClassE">HASensor::_stateClass (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv4N8HASensor18_unitOfMeasurementE">HASensor::_unitOfMeasurement (C++ member)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv4N8HASensor15buildSerializerEv">HASensor::buildSerializer (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv4N8HASensor8HASensorEPKc">HASensor::HASensor (C++ function)</a>
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv4N8HASensor8FeaturesE">HASensor::Features (C++ enum)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv4N8HASensor8Features15DefaultFeaturesE">HASensor::Features::DefaultFeatures (C++ enumerator)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv4N8HASensor8Features21JsonAttributesFeatureE">HASensor::Features::JsonAttributesFeature (C++ enumerator)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv4N8HASensor8HASensorEPKcK8uint16_t">HASensor::HASensor (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv4N8HASensor15onMqttConnectedEv">HASensor::onMqttConnected (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv4N8HASensor14setDeviceClassEPKc">HASensor::setDeviceClass (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv4N8HASensor14setExpireAfterE8uint16_t">HASensor::setExpireAfter (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv4N8HASensor14setForceUpdateEb">HASensor::setForceUpdate (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv4N8HASensor7setIconEPKc">HASensor::setIcon (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv4N8HASensor17setJsonAttributesEPKc">HASensor::setJsonAttributes (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv4N8HASensor13setStateClassEPKc">HASensor::setStateClass (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor.html#_CPPv4N8HASensor20setUnitOfMeasurementEPKc">HASensor::setUnitOfMeasurement (C++ function)</a>
|
||||
</li>
|
||||
@@ -1380,7 +1461,7 @@
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor-number.html#_CPPv4NK14HASensorNumber15getCurrentValueEv">HASensorNumber::getCurrentValue (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor-number.html#_CPPv4N14HASensorNumber14HASensorNumberEPKcK15NumberPrecision">HASensorNumber::HASensorNumber (C++ function)</a>
|
||||
<li><a href="documents/api/device-types/ha-sensor-number.html#_CPPv4N14HASensorNumber14HASensorNumberEPKcK15NumberPrecisionK8uint16_t">HASensorNumber::HASensorNumber (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/device-types/ha-sensor-number.html#_CPPv4N14HASensorNumber15onMqttConnectedEv">HASensorNumber::onMqttConnected (C++ function)</a>
|
||||
</li>
|
||||
@@ -1435,6 +1516,8 @@
|
||||
<li><a href="documents/api/utils/ha-serializer.html#_CPPv4N12HASerializer8FlagType16WithAvailabilityE">HASerializer::FlagType::WithAvailability (C++ enumerator)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/utils/ha-serializer.html#_CPPv4N12HASerializer8FlagType10WithDeviceE">HASerializer::FlagType::WithDevice (C++ enumerator)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/utils/ha-serializer.html#_CPPv4N12HASerializer8FlagType12WithUniqueIdE">HASerializer::FlagType::WithUniqueId (C++ enumerator)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/utils/ha-serializer.html#_CPPv4NK12HASerializer5flushEv">HASerializer::flush (C++ function)</a>
|
||||
</li>
|
||||
@@ -1503,6 +1586,8 @@
|
||||
<li><a href="documents/api/utils/ha-serializer-array.html#_CPPv4NK17HASerializerArray13calculateSizeEv">HASerializerArray::calculateSize (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/utils/ha-serializer-array.html#_CPPv4N17HASerializerArray5clearEv">HASerializerArray::clear (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/utils/ha-serializer-array.html#_CPPv4NK17HASerializerArray7getItemEK7uint8_t">HASerializerArray::getItem (C++ function)</a>
|
||||
</li>
|
||||
<li><a href="documents/api/utils/ha-serializer-array.html#_CPPv4NK17HASerializerArray8getItemsEv">HASerializerArray::getItems (C++ function)</a>
|
||||
</li>
|
||||
|
||||
+6
-6
@@ -101,7 +101,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -113,6 +113,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/api/utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
@@ -193,15 +194,13 @@ but I successfully use it on ESP8266/ESP8255 boards in my projects.</p>
|
||||
<li class="toctree-l3"><a class="reference internal" href="documents/library/discovery.html#topics-prefix">Topics prefix</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/device-types.html">Device types</a><ul>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/device-types.html">Device types (entities)</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="documents/library/device-types.html#identifiers">Identifiers</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="documents/library/device-types.html#limitations">Limitations</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="documents/library/device-types.html#supported-device-types">Supported device types</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/mqtt-security.html">MQTT security</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="documents/library/mqtt-security.html#ssl-connection">SSL connection</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/mqtt-advanced.html">MQTT advanced features</a><ul>
|
||||
<li class="toctree-l3"><a class="reference internal" href="documents/library/mqtt-advanced.html#callbacks">Callbacks</a></li>
|
||||
<li class="toctree-l3"><a class="reference internal" href="documents/library/mqtt-advanced.html#subscriptions">Subscriptions</a></li>
|
||||
@@ -251,6 +250,7 @@ but I successfully use it on ESP8266/ESP8255 boards in my projects.</p>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
Binary file not shown.
+2
-1
@@ -107,7 +107,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/availability-reporting.html">Availability reporting</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/connection-params.html">Connection parameters</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/discovery.html">Discovery</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/device-types.html">Device types</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/device-types.html">Device types (entities)</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/mqtt-security.html">MQTT security</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/mqtt-advanced.html">MQTT advanced features</a></li>
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/library/compiler-macros.html">Compiler macros</a></li>
|
||||
@@ -119,6 +119,7 @@
|
||||
<li class="toctree-l2"><a class="reference internal" href="documents/api/utils/index.html">Utils API</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="toctree-l1"><a class="reference external" href="https://github.com/sponsors/dawidchyrzynski">Sponsor</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+2
-5
@@ -29,11 +29,8 @@ This solution forces `lxml` to be built from the sources.
|
||||
## Generating the documentation
|
||||
|
||||
1. Open terminal in the `docsrc` directory
|
||||
2. Run the Doxygen command `doxygen`
|
||||
3. Open the Pipenv shell `pipenv shell`
|
||||
4. Run the build `make html`
|
||||
|
||||
The generated documentation will be available in the `docsrc/build/html` directory.
|
||||
2. Open the Pipenv shell `pipenv shell`
|
||||
3. Run the build `make github`
|
||||
|
||||
## Github pages
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ copyright = '2022, Dawid Chyrzynski'
|
||||
author = 'Dawid Chyrzynski'
|
||||
|
||||
# The full version, including alpha/beta/rc tags
|
||||
release = '2.0.0'
|
||||
release = '2.1.0'
|
||||
|
||||
# -- General configuration ---------------------------------------------------
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ Here is the list of devices on which the library was tested:
|
||||
- Arduino Nano
|
||||
- Arduino Pro Mini
|
||||
- Arduino Nano 33 IoT
|
||||
- Arduino Due
|
||||
- NodeMCU
|
||||
- Controllino Mega (Pure)
|
||||
- Controllino Maxi (Pure)
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
Device configuration
|
||||
====================
|
||||
|
||||
:doc:`HADevice </documents/api/core/ha-device>` represents the physical device where the library is installed.
|
||||
Logically it's a group of types like sensors, switches, lights and so on.
|
||||
In the Home Assistant, it's listed with properties that may be configured using the library's API.
|
||||
:doc:`HADevice </documents/api/core/ha-device>` represents the physical device on which the library is used.
|
||||
Essentially, it's a group of types such as sensors, switches, lights, and more.
|
||||
Within Home Assistant, it appears with properties that can be configured using the library's API.
|
||||
|
||||
Each property except the unique ID is optional.
|
||||
Setting optional properties increases flash and RAM usage so it's not recommended to set them on lower-spec MCUs.
|
||||
Every property, except for the unique ID, is optional.
|
||||
Enabling optional properties can lead to increased flash and RAM usage, therefore it is not advisable to set them on lower-spec MCUs.
|
||||
|
||||
The supported properties are:
|
||||
|
||||
@@ -15,15 +15,17 @@ The supported properties are:
|
||||
* software version
|
||||
* manufacturer
|
||||
* model
|
||||
* configuration url
|
||||
|
||||
Unique ID
|
||||
---------
|
||||
|
||||
The ID of a device needs to be unique in a scope of a Home Assistant instance.
|
||||
The safest solution is to use the MAC address of an Ethernet or Wi-Fi chip but you can also implement your own solution.
|
||||
The unique ID serves as an internal identifier for devices within Home Assistant.
|
||||
With this ID, Home Assistant can monitor the device's parameters and the entities it exposes.
|
||||
The unique ID must be distinct within the scope of the Home Assistant instance.
|
||||
The recommended approach is to use the MAC address of an Ethernet or Wi-Fi chip.
|
||||
|
||||
There are three different ways to set the ID of the device.
|
||||
You can pick one depending on your needs.
|
||||
There are three distinct methods for setting the device ID, allowing you to choose the one that best suits your requirements.
|
||||
|
||||
1) Providing string (const char*) to the :doc:`HADevice </documents/api/core/ha-device>` constructor
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
@@ -88,7 +90,7 @@ Device properties
|
||||
-----------------
|
||||
|
||||
Each property has its corresponding setter method in the :doc:`HADevice </documents/api/core/ha-device>` class.
|
||||
Please note that all these methods accept const char pointer whose **content is not copied**.
|
||||
Please note that all of these methods accept a const char pointer whose **content is not copied**.
|
||||
|
||||
::
|
||||
|
||||
@@ -101,6 +103,7 @@ Please note that all these methods accept const char pointer whose **content is
|
||||
device.setSoftwareVersion("1.0.0");
|
||||
device.setManufacturer("Developer Corp.");
|
||||
device.setModel("ABC-123");
|
||||
device.setConfigurationUrl("http://192.168.1.55:1234");
|
||||
|
||||
// ...
|
||||
}
|
||||
|
||||
@@ -1,21 +1,124 @@
|
||||
|
||||
Device types
|
||||
============
|
||||
Device types (entities)
|
||||
=======================
|
||||
|
||||
Device type represents a single entity in the Home Assistant panel.
|
||||
It can be a sensor, lock, camera or anything that's listed in the table below.
|
||||
Device type represents a single entity within the Home Assistant panel, which could be a sensor, lock, camera, or any other item listed in the table below.
|
||||
|
||||
Your physical device (for example ESP-01 board) can have multiple device types assigned.
|
||||
They will be displayed as child entities in the HA panel.
|
||||
Your physical device, such as an ESP-01 board, can have multiple device types assigned to it.
|
||||
These types will then appear as child entities in the Home Assistant panel.
|
||||
|
||||
Identifiers
|
||||
-----------
|
||||
|
||||
Home Assistant utilizes three distinct identifiers, which might initially appear confusing.
|
||||
Grasping the purpose of each is crucial for a clear understanding of the library's API.
|
||||
|
||||
Entity ID
|
||||
^^^^^^^^^
|
||||
|
||||
Home Assistant automatically generates an entity ID for each device type registered by your device.
|
||||
This ID is primarily utilized by dashboards and automations within Home Assistant.
|
||||
|
||||
When the entity is discovered by Home Assistant for the first time, the name field is automatically employed to generate the entity ID.
|
||||
Once registered, you can modify it to any desired value using the Home Assistant User Interface.
|
||||
|
||||
Home Assistant internally relies on the unique ID, so changing the entity ID or name in the Home Assistant UI does not break the integration between your device and Home Assistant.
|
||||
|
||||
Object ID
|
||||
^^^^^^^^^
|
||||
|
||||
The object ID is an optional identifier that you can assign to the device type.
|
||||
Its sole purpose is for generating the entity ID described above.
|
||||
|
||||
By default, Home Assistant generates the entity ID based on the entity's name.
|
||||
However, when the object ID is provided, Home Assistant uses it to generate the entity ID.
|
||||
|
||||
Consequently, you can use the entity's name as a user-friendly label and the object ID as an internal identifier.
|
||||
|
||||
Unique ID
|
||||
^^^^^^^^^
|
||||
|
||||
The unique ID serves as an internal identifier for the entity within the Home Assistant instance.
|
||||
Once the entity with a specific unique ID is created, it cannot be altered, as this identifier is not accessible through the user interface.
|
||||
|
||||
Home Assistant utilizes this identifier internally to store the parameters of the entity in the database.
|
||||
Given that the unique ID must be unique across the entire Home Assistant instance.
|
||||
Multiple devices cannot expose entities with the same unique ID.
|
||||
|
||||
By default, the library uses the unique ID provided in the device type's constructor.
|
||||
However, when you reuse the same codebase on multiple devices, conflicts may arise.
|
||||
To address this issue, you can enable the extended unique ID feature in the HADevice instance.
|
||||
This feature incorporates the device's unique ID as a prefix for the device type's ID.
|
||||
|
||||
.. code-block:: cpp
|
||||
:caption: Default behavior
|
||||
|
||||
#include <Ethernet.h>
|
||||
#include <ArduinoHA.h>
|
||||
|
||||
byte mac[] = {0x00, 0x10, 0xFA, 0x6E, 0x38, 0x4A};
|
||||
|
||||
EthernetClient client;
|
||||
HADevice device(mac, sizeof(mac)); // the unique ID of the device will be 0010fa6e384a
|
||||
HAMqtt mqtt(client, device);
|
||||
|
||||
// "myValve" is unique ID of the sensor. You should define your own ID.
|
||||
HASensor valve("myValve");
|
||||
|
||||
void setup() {
|
||||
// ...
|
||||
|
||||
valve.setIcon("mdi:home");
|
||||
valve.setName("Water valve");
|
||||
|
||||
// the unique ID of the valve in HA will be "myValve"
|
||||
|
||||
// ...
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// ...
|
||||
}
|
||||
|
||||
.. code-block:: cpp
|
||||
:caption: Extended unique IDs
|
||||
|
||||
#include <Ethernet.h>
|
||||
#include <ArduinoHA.h>
|
||||
|
||||
byte mac[] = {0x00, 0x10, 0xFA, 0x6E, 0x38, 0x4A};
|
||||
|
||||
EthernetClient client;
|
||||
HADevice device(mac, sizeof(mac)); // the unique ID of the device will be 0010fa6e384a
|
||||
HAMqtt mqtt(client, device);
|
||||
|
||||
// "myValve" is unique ID of the sensor. You should define your own ID.
|
||||
HASensor valve("myValve");
|
||||
|
||||
void setup() {
|
||||
// ...
|
||||
|
||||
device.enableExtendedUniqueIds(); // <------------ enables extended unique IDs
|
||||
valve.setIcon("mdi:home");
|
||||
valve.setName("Water valve");
|
||||
|
||||
// the unique ID of the valve in HA will be "0010fa6e384a_myValve"
|
||||
|
||||
// ...
|
||||
}
|
||||
|
||||
void loop() {
|
||||
// ...
|
||||
}
|
||||
|
||||
Limitations
|
||||
-----------
|
||||
|
||||
Registering a new device type requires some flash and RAM memory to be utilized.
|
||||
On less powerful units like Arduino Uno, you may quickly hit the limit of resources, so keeping the device simple is recommended.
|
||||
Hitting the resource limit will result in random reboots of the device.
|
||||
Registering a new device type involves utilizing a certain amount of flash and RAM memory.
|
||||
On less powerful units, such as the Arduino Uno, you may rapidly reach the resource limit.
|
||||
Therefore, it is advisable to keep the device simple to avoid hitting the resource limit, which could lead to random reboots of the device.
|
||||
|
||||
By default, the maximum number of device types is 6.
|
||||
By default, devices utilizing ATmega328P or ATmega168 processors are limited to a maximum of 6 device types, while other platforms can support up to 24 device types.
|
||||
You can increase the limit using the :doc:`HAMqtt </documents/api/core/ha-mqtt>` class constructor as follows:
|
||||
|
||||
::
|
||||
@@ -26,7 +129,7 @@ You can increase the limit using the :doc:`HAMqtt </documents/api/core/ha-mqtt>`
|
||||
byte mac[] = {0x00, 0x10, 0xFA, 0x6E, 0x38, 0x4A};
|
||||
EthernetClient client;
|
||||
HADevice device(mac, sizeof(mac));
|
||||
HAMqtt mqtt(client, device, 12); // <------------ 12 is a new limit of device types
|
||||
HAMqtt mqtt(client, device, 40); // <------------ 40 is a new limit of device types
|
||||
|
||||
void setup() {
|
||||
Ethernet.begin(mac);
|
||||
@@ -54,6 +157,9 @@ Supported device types
|
||||
* - Device type
|
||||
- Supported
|
||||
- Documentation
|
||||
* - Alarm control panel
|
||||
- ❌
|
||||
- --
|
||||
* - Binary sensor
|
||||
- ✅
|
||||
- :doc:`HABinarySensor </documents/api/device-types/ha-binary-sensor>`
|
||||
@@ -72,6 +178,9 @@ Supported device types
|
||||
* - Device trigger
|
||||
- ✅
|
||||
- :doc:`HADeviceTrigger </documents/api/device-types/ha-device-trigger>`
|
||||
* - Event
|
||||
- ❌
|
||||
- --
|
||||
* - Fan
|
||||
- ✅
|
||||
- :doc:`HAFan </documents/api/device-types/ha-fan>`
|
||||
@@ -81,6 +190,9 @@ Supported device types
|
||||
* - HVAC
|
||||
- ✅
|
||||
- :doc:`HAHVAC </documents/api/device-types/ha-hvac>`
|
||||
* - Lawn mower
|
||||
- ❌
|
||||
- --
|
||||
* - Light
|
||||
- ✅
|
||||
- :doc:`HALight </documents/api/device-types/ha-light>`
|
||||
@@ -102,12 +214,27 @@ Supported device types
|
||||
* - | Sensor (number)
|
||||
- ✅
|
||||
- :doc:`HASensorNumber </documents/api/device-types/ha-sensor-number>`
|
||||
* - Siren
|
||||
- ❌
|
||||
- --
|
||||
* - Switch
|
||||
- ✅
|
||||
- :doc:`HASwitch </documents/api/device-types/ha-switch>`
|
||||
* - Update
|
||||
- ❌
|
||||
- --
|
||||
* - Tag scanner
|
||||
- ✅
|
||||
- :doc:`HATagScanner </documents/api/device-types/ha-tag-scanner>`
|
||||
* - Text
|
||||
- ❌
|
||||
- --
|
||||
* - Vacuum
|
||||
- ❌
|
||||
- --
|
||||
* - Valve
|
||||
- ❌
|
||||
- --
|
||||
* - Water heater
|
||||
- ❌
|
||||
- --
|
||||
|
||||
@@ -1,18 +1,16 @@
|
||||
Introduction
|
||||
============
|
||||
|
||||
Before implementing the business logic of your application you will need to
|
||||
add a few necessary pieces of code to your project.
|
||||
Basically, everything comes up to a few basic rules:
|
||||
Prior to implementing the business logic of your application, you'll need to incorporate several essential pieces of code into your project.
|
||||
Essentially, everything boils down to a few fundamental rules:
|
||||
|
||||
1) :doc:`HADevice </documents/api/core/ha-device>` and :doc:`HAMqtt </documents/api/core/ha-mqtt>` instances need to be initialized once globally or as a part of another global object.
|
||||
2) :doc:`HAMqtt::begin </documents/api/core/ha-mqtt>` needs to be called at the end of setup logic. It provides MQTT broker credentials that will be used for a connection.
|
||||
2) :doc:`HAMqtt::begin </documents/api/core/ha-mqtt>` needs to be called at the end of Arduino's setup logic. It lets you provide the MQTT broker's IP address and credentials.
|
||||
3) :doc:`HAMqtt::loop </documents/api/core/ha-mqtt>` method needs to be called periodically (it doesn't need to be called on each tick).
|
||||
4) Device types need to be initialized after :doc:`HAMqtt </documents/api/core/ha-mqtt>` class (it will be described later in the documentation).
|
||||
|
||||
Here are the minimal boilerplates that you can start with.
|
||||
Don't worry if you have no idea what's going on here.
|
||||
Everything will be covered in the following chapters.
|
||||
Here are the minimal boilerplate examples to get you started.
|
||||
Don't worry if you have no idea what's happening here; everything will be explained in detail in the following chapters.
|
||||
|
||||
Arduino Boilerplate
|
||||
-------------------
|
||||
|
||||
@@ -25,11 +25,23 @@ Please take a look at the example below.
|
||||
// this method will be called when connection to MQTT broker is established
|
||||
}
|
||||
|
||||
void onDisconnected() {
|
||||
// this method will be called when connection to MQTT broker is lost
|
||||
}
|
||||
|
||||
void onStateChanged(HAMqtt::ConnectionState state) {
|
||||
// this method will be called each time the state of the MQTT connection changes
|
||||
}
|
||||
|
||||
void setup() {
|
||||
Ethernet.begin(mac);
|
||||
|
||||
mqtt.onMessage(onMessage);
|
||||
mqtt.onConnected(onConnected);
|
||||
mqtt.onDisconnected(onDisconnected);
|
||||
mqtt.onStateChanged(onStateChanged);
|
||||
mqtt.setBufferSize(512); // set the buffer size to 512 bytes, default is 256 bytes
|
||||
mqtt.setKeepAlive(60); // set the keep alive interval to 60 seconds, default is 15 seconds
|
||||
mqtt.begin("192.168.1.50", "username", "password");
|
||||
}
|
||||
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
MQTT security
|
||||
=============
|
||||
|
||||
The library allows you to use credentials for acquiring a TCP connection with the MQTT broker.
|
||||
By default you can use the same credentials you use for login in the Home Assistant panel but you can also configure custom credentials in the Mosquitto broker.
|
||||
The library enables you to utilize credentials to establish a TCP connection with the MQTT broker.
|
||||
By default, you can employ the same credentials utilized for logging into the Home Assistant panel.
|
||||
However, it's also possible to configure custom credentials within the Mosquitto broker.
|
||||
|
||||
.. DANGER::
|
||||
|
||||
This solution is not 100% secure because communication between Arduino and Home Assistant is not encrypted.
|
||||
Username and password can be easily discovered by analyzing your local network traffic.
|
||||
However, that's fine as long as your local network is secured against unattended access.
|
||||
On more powerful devices (like ESP), you should consider using TLS/SSL connection.
|
||||
This solution may not provide comprehensive security as the communication between Arduino and Home Assistant lacks encryption.
|
||||
Consequently, username and password could be vulnerable to discovery through analysis of local network traffic.
|
||||
However, this may not pose a significant risk if your local network is properly secured against unauthorized access.
|
||||
|
||||
::
|
||||
|
||||
@@ -31,10 +31,3 @@ By default you can use the same credentials you use for login in the Home Assist
|
||||
void loop() {
|
||||
// ...
|
||||
}
|
||||
|
||||
|
||||
SSL connection
|
||||
--------------
|
||||
|
||||
On ESP32/ESP8266 you can use ``WiFiClientSecure`` client to establish encrypted connection between your device and Home Assistant.
|
||||
Please take a look at :example:`this example <mqtt-with-ssl/mqtt-with-ssl.ino>`.
|
||||
|
||||
@@ -24,4 +24,5 @@ Features
|
||||
|
||||
documents/getting-started/index
|
||||
documents/library/index
|
||||
documents/api/index
|
||||
documents/api/index
|
||||
Sponsor <https://github.com/sponsors/dawidchyrzynski>
|
||||
@@ -41,6 +41,10 @@ table.examples-table tbody td + td {
|
||||
.searchbox .caption-text {
|
||||
display: none
|
||||
}
|
||||
.code-block-caption {
|
||||
margin-top: 30px;
|
||||
font-weight: bold;
|
||||
}
|
||||
form {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
||||
@@ -12,8 +12,10 @@ HAMqtt mqtt(client, device);
|
||||
// "myCover" is unique ID of the cover. You should define your own ID.
|
||||
HACover cover("myCover", HACover::PositionFeature);
|
||||
|
||||
// Cover with the position feature:
|
||||
// HACover cover("myCover", HACover::PositionFeature);
|
||||
// PositionFeature is optional, however required to be in a "stopped" state other than open or closed.
|
||||
// If ommitted, a CommandStop will result in HA treating the cover as either Open or Closed immediately after the command.
|
||||
// See https://www.home-assistant.io/integrations/cover.mqtt/
|
||||
// Added in https://github.com/dawidchyrzynski/arduino-home-assistant/pull/111
|
||||
|
||||
void onCoverCommand(HACover::CoverCommand cmd, HACover* sender) {
|
||||
if (cmd == HACover::CommandOpen) {
|
||||
|
||||
@@ -29,12 +29,23 @@ void onMqttConnected() {
|
||||
mqtt.subscribe("myCustomTopic");
|
||||
}
|
||||
|
||||
void onMqttDisconnected() {
|
||||
Serial.println("Disconnected from the broker!");
|
||||
}
|
||||
|
||||
void onMqttStateChanged(HAMqtt::ConnectionState state) {
|
||||
Serial.print("MQTT state changed to: ");
|
||||
Serial.println(static_cast<int8_t>(state));
|
||||
}
|
||||
|
||||
void setup() {
|
||||
Serial.begin(9600);
|
||||
Ethernet.begin(mac);
|
||||
|
||||
mqtt.onMessage(onMqttMessage);
|
||||
mqtt.onConnected(onMqttConnected);
|
||||
mqtt.onDisconnected(onMqttDisconnected);
|
||||
mqtt.onStateChanged(onMqttStateChanged);
|
||||
|
||||
// If you use custom discovery prefix you can change it as following:
|
||||
// mqtt.setDiscoveryPrefix("customPrefix");
|
||||
@@ -42,6 +53,9 @@ void setup() {
|
||||
// If you want to change prefix only for non-discovery prefix:
|
||||
// mqtt.setDataPrefix("data");
|
||||
|
||||
// Obtaining state of the MQTT connection:
|
||||
// mqtt.getState();
|
||||
|
||||
mqtt.begin(BROKER_ADDR);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ byte mac[] = {0x00, 0x10, 0xFA, 0x6E, 0x38, 0x4A};
|
||||
EthernetClient client;
|
||||
HADevice device(mac, sizeof(mac));
|
||||
HAMqtt mqtt(client, device);
|
||||
HASelect select("mySelect");
|
||||
HASelect mySelect("mySelect");
|
||||
|
||||
void onSelectCommand(int8_t index, HASelect* sender)
|
||||
{
|
||||
@@ -31,6 +31,12 @@ void onSelectCommand(int8_t index, HASelect* sender)
|
||||
}
|
||||
|
||||
sender->setState(index); // report the selected option back to the HA panel
|
||||
|
||||
// it may return null
|
||||
if (sender->getCurrentOption()) {
|
||||
Serial.print("Current option: ");
|
||||
Serial.println(sender->getCurrentOption());
|
||||
}
|
||||
}
|
||||
|
||||
void setup() {
|
||||
@@ -42,18 +48,18 @@ void setup() {
|
||||
device.setSoftwareVersion("1.0.0");
|
||||
|
||||
// set available options
|
||||
select.setOptions("Low;Medium;High"); // use semicolons as separator of options
|
||||
select.onCommand(onSelectCommand);
|
||||
mySelect.setOptions("Low;Medium;High"); // use semicolons as separator of options
|
||||
mySelect.onCommand(onSelectCommand);
|
||||
|
||||
select.setIcon("mdi:home"); // optional
|
||||
select.setName("My dropdown"); // optional
|
||||
mySelect.setIcon("mdi:home"); // optional
|
||||
mySelect.setName("My dropdown"); // optional
|
||||
|
||||
// Optionally you can set retain flag for the HA commands
|
||||
// select.setRetain(true);
|
||||
// mySelect.setRetain(true);
|
||||
|
||||
// Optionally you can enable optimistic mode for the HASelect.
|
||||
// In this mode you won't need to report state back to the HA when commands are executed.
|
||||
// select.setOptimistic(true);
|
||||
// mySelect.setOptimistic(true);
|
||||
|
||||
mqtt.begin(BROKER_ADDR);
|
||||
}
|
||||
@@ -64,5 +70,8 @@ void loop() {
|
||||
|
||||
// You can also report the state to the HA panel at runtime as shown below.
|
||||
// The integer corresponds to the option's index.
|
||||
// select.setState(1);
|
||||
// mySelect.setState(1);
|
||||
|
||||
// You can also reset the select as follows:
|
||||
// mySelect.setState(-1);
|
||||
}
|
||||
@@ -44,5 +44,8 @@ void loop() {
|
||||
|
||||
analogSensor.setValue(voltage);
|
||||
lastUpdateAt = millis();
|
||||
|
||||
// you can reset the sensor as follows:
|
||||
// analogSensor.setValue(nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,5 +37,8 @@ void loop() {
|
||||
unsigned long uptimeValue = millis() / 1000;
|
||||
uptimeSensor.setValue(uptimeValue);
|
||||
lastUpdateAt = millis();
|
||||
|
||||
// you can reset the sensor as follows:
|
||||
// analogSensor.setValue(nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
name=home-assistant-integration
|
||||
version=2.0.0
|
||||
version=2.1.0
|
||||
author=Dawid Chyrzynski <dev@chyrzynski.pl>
|
||||
maintainer=Dawid Chyrzynski <dev@chyrzynski.pl>
|
||||
sentence=Home Assistant MQTT integration for Arduino
|
||||
|
||||
@@ -33,5 +33,10 @@
|
||||
#define ARDUINOHA_DEBUG_PRINT(x)
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(__SAMD21G18A__) or defined(__SAM3X8E__)
|
||||
#define ARDUINOHA_INT_OVERLOAD
|
||||
#endif
|
||||
|
||||
#define AHATOFSTR(x) reinterpret_cast<const __FlashStringHelper*>(x)
|
||||
#define AHAFROMFSTR(x) reinterpret_cast<const char*>(x)
|
||||
|
||||
+11
-2
@@ -6,10 +6,11 @@
|
||||
|
||||
#define HADEVICE_INIT \
|
||||
_ownsUniqueId(false), \
|
||||
_serializer(new HASerializer(nullptr, 5)), \
|
||||
_serializer(new HASerializer(nullptr, 6)), \
|
||||
_availabilityTopic(nullptr), \
|
||||
_sharedAvailability(false), \
|
||||
_available(true) // device will be available by default
|
||||
_available(true), \
|
||||
_extendedUniqueIds(false)
|
||||
|
||||
HADevice::HADevice() :
|
||||
_uniqueId(nullptr),
|
||||
@@ -81,6 +82,14 @@ void HADevice::setSoftwareVersion(const char* softwareVersion)
|
||||
);
|
||||
}
|
||||
|
||||
void HADevice::setConfigurationUrl(const char* url)
|
||||
{
|
||||
_serializer->set(
|
||||
AHATOFSTR(HADeviceConfigurationUrlProperty),
|
||||
url
|
||||
);
|
||||
}
|
||||
|
||||
void HADevice::setAvailability(bool online)
|
||||
{
|
||||
_available = online;
|
||||
|
||||
@@ -60,6 +60,12 @@ public:
|
||||
inline bool isSharedAvailabilityEnabled() const
|
||||
{ return _sharedAvailability; }
|
||||
|
||||
/**
|
||||
* Returns true if the extended unique IDs feature is enabled for the device.
|
||||
*/
|
||||
inline bool isExtendedUniqueIdsEnabled() const
|
||||
{ return _extendedUniqueIds; }
|
||||
|
||||
/**
|
||||
* Returns availability topic generated by the HADevice::enableSharedAvailability method.
|
||||
* It can be nullptr if the shared availability is not enabled.
|
||||
@@ -73,6 +79,13 @@ public:
|
||||
inline bool isAvailable() const
|
||||
{ return _available; }
|
||||
|
||||
/**
|
||||
* Enables the use of extended unique IDs for all registered device types.
|
||||
* The unique ID of each device type will be prefixed with the device's ID once enabled.
|
||||
*/
|
||||
inline void enableExtendedUniqueIds()
|
||||
{ _extendedUniqueIds = true; }
|
||||
|
||||
/**
|
||||
* Sets unique ID of the device based on the given byte array.
|
||||
* Each byte is converted into a hex string representation, so the final length of the unique ID will be twice as given.
|
||||
@@ -111,6 +124,13 @@ public:
|
||||
*/
|
||||
void setSoftwareVersion(const char* softwareVersion);
|
||||
|
||||
/**
|
||||
* Sets the "configuration URL" property that's going to be used by the Home Assistant.
|
||||
*
|
||||
* @param url Configuration URL to publish.
|
||||
*/
|
||||
void setConfigurationUrl(const char* url);
|
||||
|
||||
/**
|
||||
* Sets device's availability and publishes MQTT message on the availability topic.
|
||||
* If the device is not connected to an MQTT broker or the shared availability is not enabled then nothing happens.
|
||||
@@ -155,6 +175,9 @@ private:
|
||||
|
||||
/// Specifies whether the device is available (online / offline).
|
||||
bool _available;
|
||||
|
||||
/// Specifies whether extended unique IDs feature is enabled.
|
||||
bool _extendedUniqueIds;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
+54
-6
@@ -12,6 +12,8 @@
|
||||
_device(device), \
|
||||
_messageCallback(nullptr), \
|
||||
_connectedCallback(nullptr), \
|
||||
_disconnectedCallback(nullptr), \
|
||||
_stateChangedCallback(nullptr), \
|
||||
_initialized(false), \
|
||||
_discoveryPrefix(DefaultDiscoveryPrefix), \
|
||||
_dataPrefix(DefaultDataPrefix), \
|
||||
@@ -23,7 +25,8 @@
|
||||
_devicesTypes(new HABaseDeviceType*[maxDevicesTypesNb]), \
|
||||
_lastWillTopic(nullptr), \
|
||||
_lastWillMessage(nullptr), \
|
||||
_lastWillRetain(false)
|
||||
_lastWillRetain(false), \
|
||||
_currentState(StateDisconnected)
|
||||
|
||||
static const char* DefaultDiscoveryPrefix = "homeassistant";
|
||||
static const char* DefaultDataPrefix = "aha";
|
||||
@@ -173,7 +176,16 @@ bool HAMqtt::disconnect()
|
||||
|
||||
void HAMqtt::loop()
|
||||
{
|
||||
if (_initialized && !_mqtt->loop()) {
|
||||
if (!_initialized) {
|
||||
return;
|
||||
}
|
||||
|
||||
bool result = _mqtt->loop();
|
||||
if (_currentState != _mqtt->state()) {
|
||||
setState(static_cast<ConnectionState>(_mqtt->state()));
|
||||
}
|
||||
|
||||
if (!result) {
|
||||
connectToServer();
|
||||
}
|
||||
}
|
||||
@@ -183,9 +195,19 @@ bool HAMqtt::isConnected() const
|
||||
return _mqtt->connected();
|
||||
}
|
||||
|
||||
void HAMqtt::setKeepAlive(uint16_t keepAlive)
|
||||
{
|
||||
_mqtt->setKeepAlive(keepAlive);
|
||||
}
|
||||
|
||||
bool HAMqtt::setBufferSize(uint16_t size)
|
||||
{
|
||||
return _mqtt->setBufferSize(size);
|
||||
}
|
||||
|
||||
void HAMqtt::addDeviceType(HABaseDeviceType* deviceType)
|
||||
{
|
||||
if (_devicesTypesNb + 1 >= _maxDevicesTypesNb) {
|
||||
if (_devicesTypesNb + 1 > _maxDevicesTypesNb) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -274,8 +296,9 @@ void HAMqtt::connectToServer()
|
||||
}
|
||||
|
||||
_lastConnectionAttemptAt = millis();
|
||||
setState(StateConnecting);
|
||||
|
||||
ARDUINOHA_DEBUG_PRINT(F("AHA: connecting, client ID: "))
|
||||
ARDUINOHA_DEBUG_PRINT(F("AHA: MQTT connecting, client ID: "))
|
||||
ARDUINOHA_DEBUG_PRINTLN(_device.getUniqueId())
|
||||
|
||||
_mqtt->connect(
|
||||
@@ -290,8 +313,7 @@ void HAMqtt::connectToServer()
|
||||
);
|
||||
|
||||
if (isConnected()) {
|
||||
ARDUINOHA_DEBUG_PRINTLN(F("AHA: connected"))
|
||||
onConnectedLogic();
|
||||
setState(StateConnected);
|
||||
} else {
|
||||
ARDUINOHA_DEBUG_PRINTLN(F("AHA: failed to connect"))
|
||||
}
|
||||
@@ -309,3 +331,29 @@ void HAMqtt::onConnectedLogic()
|
||||
_devicesTypes[i]->onMqttConnected();
|
||||
}
|
||||
}
|
||||
|
||||
void HAMqtt::setState(ConnectionState state)
|
||||
{
|
||||
ConnectionState previousState = _currentState;
|
||||
_currentState = state;
|
||||
|
||||
ARDUINOHA_DEBUG_PRINT(F("AHA: MQTT state changed to "))
|
||||
ARDUINOHA_DEBUG_PRINT(_currentState)
|
||||
ARDUINOHA_DEBUG_PRINT(F(", previous state: "))
|
||||
ARDUINOHA_DEBUG_PRINTLN(previousState)
|
||||
|
||||
if (_currentState == StateConnected) {
|
||||
ARDUINOHA_DEBUG_PRINTLN(F("AHA: MQTT connected"))
|
||||
onConnectedLogic();
|
||||
} else if (previousState == StateConnected && _currentState != StateConnected) {
|
||||
ARDUINOHA_DEBUG_PRINTLN(F("AHA: MQTT disconnected"))
|
||||
|
||||
if (_disconnectedCallback) {
|
||||
_disconnectedCallback();
|
||||
}
|
||||
}
|
||||
|
||||
if (_stateChangedCallback) {
|
||||
_stateChangedCallback(_currentState);
|
||||
}
|
||||
}
|
||||
+77
-4
@@ -7,6 +7,7 @@
|
||||
#include "ArduinoHADefines.h"
|
||||
|
||||
#define HAMQTT_CALLBACK(name) void (*name)()
|
||||
#define HAMQTT_STATE_CALLBACK(name) void (*name)(ConnectionState state)
|
||||
#define HAMQTT_MESSAGE_CALLBACK(name) void (*name)(const char* topic, const uint8_t* payload, uint16_t length)
|
||||
#define HAMQTT_DEFAULT_PORT 1883
|
||||
|
||||
@@ -16,6 +17,12 @@ class PubSubClientMock;
|
||||
class PubSubClient;
|
||||
#endif
|
||||
|
||||
#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega168__)
|
||||
#define HAMQTT_DEFAULT_DEVICES_LIMIT 6
|
||||
#else
|
||||
#define HAMQTT_DEFAULT_DEVICES_LIMIT 24
|
||||
#endif
|
||||
|
||||
class HADevice;
|
||||
class HABaseDeviceType;
|
||||
|
||||
@@ -30,6 +37,20 @@ using namespace arduino;
|
||||
class HAMqtt
|
||||
{
|
||||
public:
|
||||
enum ConnectionState {
|
||||
StateConnecting = -5,
|
||||
StateConnectionTimeout = -4,
|
||||
StateConnectionLost = -3,
|
||||
StateConnectionFailed = -2,
|
||||
StateDisconnected = -1,
|
||||
StateConnected = 0,
|
||||
StateBadProtocol = 1,
|
||||
StateBadClientId = 2,
|
||||
StateUnavailable = 3,
|
||||
StateBadCredentials = 4,
|
||||
StateUnauthorized = 5
|
||||
};
|
||||
|
||||
/**
|
||||
* Returns existing instance (singleton) of the HAMqtt class.
|
||||
* It may be a null pointer if the HAMqtt object was never constructed or it was destroyed.
|
||||
@@ -41,7 +62,7 @@ public:
|
||||
explicit HAMqtt(
|
||||
PubSubClientMock* pubSub,
|
||||
HADevice& device,
|
||||
const uint8_t maxDevicesTypesNb = 6
|
||||
const uint8_t maxDevicesTypesNb = HAMQTT_DEFAULT_DEVICES_LIMIT
|
||||
);
|
||||
#else
|
||||
/**
|
||||
@@ -55,7 +76,7 @@ public:
|
||||
explicit HAMqtt(
|
||||
Client& netClient,
|
||||
HADevice& device,
|
||||
const uint8_t maxDevicesTypesNb = 6
|
||||
const uint8_t maxDevicesTypesNb = HAMQTT_DEFAULT_DEVICES_LIMIT
|
||||
);
|
||||
#endif
|
||||
|
||||
@@ -123,6 +144,28 @@ public:
|
||||
inline void onConnected(HAMQTT_CALLBACK(callback))
|
||||
{ _connectedCallback = callback; }
|
||||
|
||||
/**
|
||||
* Registers a new callback method that will be called each time the connection to the MQTT broker is lost.
|
||||
*
|
||||
* @param callback Callback method.
|
||||
*/
|
||||
inline void onDisconnected(HAMQTT_CALLBACK(callback))
|
||||
{ _disconnectedCallback = callback; }
|
||||
|
||||
/**
|
||||
* Registers a new callback method that will be called each time the connection state changes.
|
||||
*
|
||||
* @param callback Callback method.
|
||||
*/
|
||||
inline void onStateChanged(HAMQTT_STATE_CALLBACK(callback))
|
||||
{ _stateChangedCallback = callback; }
|
||||
|
||||
/**
|
||||
* Returns the current state of the MQTT connection.
|
||||
*/
|
||||
inline ConnectionState getState() const
|
||||
{ return _currentState; }
|
||||
|
||||
/**
|
||||
* Sets parameters of the MQTT connection using the IP address and port.
|
||||
* The library will try to connect to the broker in first loop cycle.
|
||||
@@ -203,6 +246,22 @@ public:
|
||||
*/
|
||||
bool isConnected() const;
|
||||
|
||||
/**
|
||||
* Sets keep alive for the MQTT connection.
|
||||
* By default it's 15 seconds.
|
||||
*
|
||||
* @param keepAlive Number of seconds to keep connection alive.
|
||||
*/
|
||||
void setKeepAlive(uint16_t keepAlive);
|
||||
|
||||
/**
|
||||
* Sets the buffer size for the MQTT connection.
|
||||
* By default it's 256 bytes.
|
||||
*
|
||||
* @param size Size of the buffer.
|
||||
*/
|
||||
bool setBufferSize(uint16_t size);
|
||||
|
||||
/**
|
||||
* Adds a new device's type to the MQTT.
|
||||
* Each time the connection with MQTT broker is acquired, the HAMqtt class
|
||||
@@ -320,7 +379,7 @@ public:
|
||||
|
||||
private:
|
||||
/// Interval between MQTT reconnects (milliseconds).
|
||||
static const uint16_t ReconnectInterval = 5000;
|
||||
static const uint16_t ReconnectInterval = 10000;
|
||||
|
||||
/// Living instance of the HAMqtt class. It can be nullptr.
|
||||
static HAMqtt* _instance;
|
||||
@@ -336,6 +395,11 @@ private:
|
||||
*/
|
||||
void onConnectedLogic();
|
||||
|
||||
/**
|
||||
* Sets the state of the MQTT connection.
|
||||
*/
|
||||
void setState(ConnectionState state);
|
||||
|
||||
#ifdef ARDUINOHA_TEST
|
||||
PubSubClientMock* _mqtt;
|
||||
#else
|
||||
@@ -352,6 +416,12 @@ private:
|
||||
/// The callback method that will be called when the MQTT connection is acquired.
|
||||
HAMQTT_CALLBACK(_connectedCallback);
|
||||
|
||||
/// The callback method that will be called when the MQTT connection is lost.
|
||||
HAMQTT_CALLBACK(_disconnectedCallback);
|
||||
|
||||
/// The callback method that will be called when the MQTT connection state changes.
|
||||
HAMQTT_STATE_CALLBACK(_stateChangedCallback);
|
||||
|
||||
/// Specifies whether the HAMqtt::begin method was ever called.
|
||||
bool _initialized;
|
||||
|
||||
@@ -387,6 +457,9 @@ private:
|
||||
|
||||
/// The last will retain set by HAMqtt::setLastWill
|
||||
bool _lastWillRetain;
|
||||
|
||||
/// The last known state of the MQTT connection.
|
||||
ConnectionState _currentState;
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -11,6 +11,7 @@ HABaseDeviceType::HABaseDeviceType(
|
||||
_componentName(componentName),
|
||||
_uniqueId(uniqueId),
|
||||
_name(nullptr),
|
||||
_objectId(nullptr),
|
||||
_serializer(nullptr),
|
||||
_availability(AvailabilityDefault)
|
||||
{
|
||||
|
||||
@@ -78,6 +78,22 @@ public:
|
||||
inline const char* getName() const
|
||||
{ return _name; }
|
||||
|
||||
/**
|
||||
* Sets object ID that will be used by HA to generate entity ID.
|
||||
* Keep the ID short to save the resources.
|
||||
*
|
||||
* @param objectId The object ID.
|
||||
*/
|
||||
inline void setObjectId(const char* objectId)
|
||||
{ _objectId = objectId; }
|
||||
|
||||
/**
|
||||
* Returns the object ID that was set by setObjectId method.
|
||||
* It can be nullptr if there is no ID assigned.
|
||||
*/
|
||||
inline const char* getObjectId() const
|
||||
{ return _objectId; }
|
||||
|
||||
/**
|
||||
* Sets availability of the device type.
|
||||
* Setting the initial availability enables availability reporting for this device type.
|
||||
@@ -209,6 +225,9 @@ protected:
|
||||
/// The name that was set using setName method. It can be nullptr.
|
||||
const char* _name;
|
||||
|
||||
/// The object ID that was set using setObjectId method. It can be nullptr.
|
||||
const char* _objectId;
|
||||
|
||||
/// HASerializer that belongs to this device type. It can be nullptr.
|
||||
HASerializer* _serializer;
|
||||
|
||||
|
||||
@@ -27,17 +27,36 @@ bool HABinarySensor::setState(const bool state, const bool force)
|
||||
return false;
|
||||
}
|
||||
|
||||
void HABinarySensor::setExpireAfter(uint16_t expireAfter)
|
||||
{
|
||||
if (expireAfter > 0) {
|
||||
_expireAfter.setBaseValue(expireAfter);
|
||||
} else {
|
||||
_expireAfter.reset();
|
||||
}
|
||||
}
|
||||
|
||||
void HABinarySensor::buildSerializer()
|
||||
{
|
||||
if (_serializer || !uniqueId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 7); // 7 - max properties nb
|
||||
_serializer = new HASerializer(this, 9); // 9 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAUniqueIdProperty), _uniqueId);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HADeviceClassProperty), _class);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
|
||||
if (_expireAfter.isSet()) {
|
||||
_serializer->set(
|
||||
AHATOFSTR(HAExpireAfterProperty),
|
||||
&_expireAfter,
|
||||
HASerializer::NumberPropertyType
|
||||
);
|
||||
}
|
||||
|
||||
_serializer->set(HASerializer::WithDevice);
|
||||
_serializer->set(HASerializer::WithAvailability);
|
||||
_serializer->topic(AHATOFSTR(HAStateTopic));
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define AHA_HABINARYSENSOR_H
|
||||
|
||||
#include "HABaseDeviceType.h"
|
||||
#include "../utils/HANumeric.h"
|
||||
|
||||
#ifndef EX_ARDUINOHA_BINARY_SENSOR
|
||||
|
||||
@@ -30,6 +31,14 @@ public:
|
||||
*/
|
||||
bool setState(const bool state, const bool force = false);
|
||||
|
||||
/**
|
||||
* Sets the number of seconds after the sensor’s state expires, if it’s not updated.
|
||||
* By default the sensors state never expires.
|
||||
*
|
||||
* @param expireAfter The number of seconds.
|
||||
*/
|
||||
void setExpireAfter(uint16_t expireAfter);
|
||||
|
||||
/**
|
||||
* Sets the current state of the sensor without publishing it to Home Assistant.
|
||||
* This method may be useful if you want to change the state before the connection with the MQTT broker is acquired.
|
||||
@@ -82,8 +91,12 @@ private:
|
||||
/// The icon of the sensor. It can be nullptr.
|
||||
const char* _icon;
|
||||
|
||||
/// It defines the number of seconds after the sensor’s state expires, if it’s not updated. By default the sensors state never expires.
|
||||
HANumeric _expireAfter;
|
||||
|
||||
/// Current state of the sensor. By default it's false.
|
||||
bool _currentState;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -20,9 +20,10 @@ void HAButton::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 8); // 8 - max properties nb
|
||||
_serializer = new HASerializer(this, 9); // 9 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAUniqueIdProperty), _uniqueId);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HADeviceClassProperty), _class);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
|
||||
|
||||
@@ -27,9 +27,10 @@ void HACamera::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 7); // 7 - max properties nb
|
||||
_serializer = new HASerializer(this, 8); // 8 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAUniqueIdProperty), _uniqueId);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
_serializer->set(
|
||||
AHATOFSTR(HAEncodingProperty),
|
||||
|
||||
@@ -54,9 +54,10 @@ void HACover::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 11); // 11 - max properties nb
|
||||
_serializer = new HASerializer(this, 12); // 12 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAUniqueIdProperty), _uniqueId);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HADeviceClassProperty), _class);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
|
||||
|
||||
@@ -33,9 +33,10 @@ void HADeviceTracker::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 7); // 7 - max properties nb
|
||||
_serializer = new HASerializer(this, 8); // 8 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAUniqueIdProperty), _uniqueId);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
_serializer->set(
|
||||
AHATOFSTR(HASourceTypeProperty),
|
||||
|
||||
@@ -55,9 +55,10 @@ void HAFan::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 13); // 13 - max properties nb
|
||||
_serializer = new HASerializer(this, 14); // 14 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAUniqueIdProperty), _uniqueId);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
|
||||
if (_retain) {
|
||||
|
||||
@@ -183,9 +183,10 @@ void HAHVAC::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 27); // 27 - max properties nb
|
||||
_serializer = new HASerializer(this, 28); // 28 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAUniqueIdProperty), _uniqueId);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
|
||||
if (_retain) {
|
||||
|
||||
@@ -140,7 +140,7 @@ public:
|
||||
_SET_CURRENT_TEMPERATURE_OVERLOAD(uint32_t)
|
||||
_SET_CURRENT_TEMPERATURE_OVERLOAD(float)
|
||||
|
||||
#ifdef __SAMD21G18A__
|
||||
#ifdef ARDUINOHA_INT_OVERLOAD
|
||||
_SET_CURRENT_TEMPERATURE_OVERLOAD(int)
|
||||
#endif
|
||||
|
||||
@@ -218,7 +218,7 @@ public:
|
||||
_SET_TARGET_TEMPERATURE_OVERLOAD(uint32_t)
|
||||
_SET_TARGET_TEMPERATURE_OVERLOAD(float)
|
||||
|
||||
#ifdef __SAMD21G18A__
|
||||
#ifdef ARDUINOHA_INT_OVERLOAD
|
||||
_SET_TARGET_TEMPERATURE_OVERLOAD(int)
|
||||
#endif
|
||||
|
||||
@@ -240,7 +240,7 @@ public:
|
||||
_SET_CURRENT_CURRENT_TEMPERATURE_OVERLOAD(uint32_t)
|
||||
_SET_CURRENT_CURRENT_TEMPERATURE_OVERLOAD(float)
|
||||
|
||||
#ifdef __SAMD21G18A__
|
||||
#ifdef ARDUINOHA_INT_OVERLOAD
|
||||
_SET_CURRENT_CURRENT_TEMPERATURE_OVERLOAD(int)
|
||||
#endif
|
||||
|
||||
@@ -378,7 +378,7 @@ public:
|
||||
_SET_CURRENT_TARGET_TEMPERATURE_OVERLOAD(uint32_t)
|
||||
_SET_CURRENT_TARGET_TEMPERATURE_OVERLOAD(float)
|
||||
|
||||
#ifdef __SAMD21G18A__
|
||||
#ifdef ARDUINOHA_INT_OVERLOAD
|
||||
_SET_CURRENT_TARGET_TEMPERATURE_OVERLOAD(int)
|
||||
#endif
|
||||
|
||||
|
||||
@@ -128,9 +128,10 @@ void HALight::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 18); // 18 - max properties nb
|
||||
_serializer = new HASerializer(this, 19); // 19 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAUniqueIdProperty), _uniqueId);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
|
||||
if (_retain) {
|
||||
|
||||
@@ -35,9 +35,10 @@ void HALock::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 9); // 9 - max properties nb
|
||||
_serializer = new HASerializer(this, 10); // 10 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAUniqueIdProperty), _uniqueId);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
|
||||
if (_retain) {
|
||||
|
||||
@@ -42,10 +42,10 @@ void HANumber::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 15); // 15 - max properties nb
|
||||
|
||||
_serializer = new HASerializer(this, 16); // 16 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAUniqueIdProperty), _uniqueId);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HADeviceClassProperty), _class);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
_serializer->set(AHATOFSTR(HAUnitOfMeasurementProperty), _unitOfMeasurement);
|
||||
|
||||
@@ -64,7 +64,7 @@ public:
|
||||
_SET_STATE_OVERLOAD(uint32_t)
|
||||
_SET_STATE_OVERLOAD(float)
|
||||
|
||||
#ifdef __SAMD21G18A__
|
||||
#ifdef ARDUINOHA_INT_OVERLOAD
|
||||
_SET_STATE_OVERLOAD(int)
|
||||
#endif
|
||||
|
||||
@@ -86,7 +86,7 @@ public:
|
||||
_SET_CURRENT_STATE_OVERLOAD(uint32_t)
|
||||
_SET_CURRENT_STATE_OVERLOAD(float)
|
||||
|
||||
#ifdef __SAMD21G18A__
|
||||
#ifdef ARDUINOHA_INT_OVERLOAD
|
||||
_SET_CURRENT_STATE_OVERLOAD(int)
|
||||
#endif
|
||||
|
||||
|
||||
@@ -19,9 +19,10 @@ void HAScene::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 7); // 7 - max properties nb
|
||||
_serializer = new HASerializer(this, 8); // 8 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAUniqueIdProperty), _uniqueId);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
|
||||
// optional property
|
||||
|
||||
@@ -85,15 +85,21 @@ bool HASelect::setState(const int8_t state, const bool force)
|
||||
return false;
|
||||
}
|
||||
|
||||
const char* HASelect::getCurrentOption() const
|
||||
{
|
||||
return _options->getItem(getCurrentState());
|
||||
}
|
||||
|
||||
void HASelect::buildSerializer()
|
||||
{
|
||||
if (_serializer || !uniqueId() || !_options) {
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 10); // 10 - max properties nb
|
||||
_serializer = new HASerializer(this, 11); // 11 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAUniqueIdProperty), _uniqueId);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
_serializer->set(
|
||||
AHATOFSTR(HAOptionsProperty),
|
||||
@@ -164,10 +170,14 @@ void HASelect::onMqttMessage(
|
||||
|
||||
bool HASelect::publishState(const int8_t state)
|
||||
{
|
||||
if (state == -1 || !_options || state >= _options->getItemsNb()) {
|
||||
if (!_options || state >= _options->getItemsNb()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (state < 0) {
|
||||
return publishOnDataTopic(AHATOFSTR(HAStateTopic), AHATOFSTR(HAStateNone), true);
|
||||
}
|
||||
|
||||
const char* item = _options->getItems()[state];
|
||||
if (!item) {
|
||||
return false;
|
||||
|
||||
@@ -41,12 +41,19 @@ public:
|
||||
* Please note that if a new value is the same as previous one,
|
||||
* the MQTT message won't be published.
|
||||
*
|
||||
* @param state New state of the select.
|
||||
* @param state New state of the select. You can set `-1` to reset the select.
|
||||
* @param force Forces to update state without comparing it to previous known state.
|
||||
* @returns Returns true if MQTT message has been published successfully.
|
||||
*/
|
||||
bool setState(const int8_t state, const bool force = false);
|
||||
|
||||
/**
|
||||
* Returns the selected option based on the most recent state of the select.
|
||||
* You can utilize this method to get the string representation of the option (e.g. for printing).
|
||||
* If no option is selected, null is returned.
|
||||
*/
|
||||
const char* getCurrentOption() const;
|
||||
|
||||
/**
|
||||
* Sets the current state of the select without publishing it to Home Assistant.
|
||||
* State represents the index of the option that was set using the setOptions method.
|
||||
|
||||
@@ -4,35 +4,57 @@
|
||||
#include "../HAMqtt.h"
|
||||
#include "../utils/HASerializer.h"
|
||||
|
||||
HASensor::HASensor(const char* uniqueId) :
|
||||
HASensor::HASensor(const char* uniqueId, const uint16_t features) :
|
||||
HABaseDeviceType(AHATOFSTR(HAComponentSensor), uniqueId),
|
||||
_features(features),
|
||||
_deviceClass(nullptr),
|
||||
_stateClass(nullptr),
|
||||
_forceUpdate(false),
|
||||
_icon(nullptr),
|
||||
_unitOfMeasurement(nullptr)
|
||||
_unitOfMeasurement(nullptr),
|
||||
_expireAfter()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
bool HASensor::setValue(const char* value)
|
||||
{
|
||||
if (!value) {
|
||||
return publishOnDataTopic(AHATOFSTR(HAStateTopic), AHATOFSTR(HAStateNone), true);
|
||||
}
|
||||
|
||||
return publishOnDataTopic(AHATOFSTR(HAStateTopic), value, true);
|
||||
}
|
||||
|
||||
bool HASensor::setJsonAttributes(const char* json)
|
||||
{
|
||||
return publishOnDataTopic(AHATOFSTR(HAJsonAttributesTopic), json, true);
|
||||
}
|
||||
|
||||
void HASensor::setExpireAfter(uint16_t expireAfter)
|
||||
{
|
||||
if (expireAfter > 0) {
|
||||
_expireAfter.setBaseValue(expireAfter);
|
||||
} else {
|
||||
_expireAfter.reset();
|
||||
}
|
||||
}
|
||||
|
||||
void HASensor::buildSerializer()
|
||||
{
|
||||
if (_serializer || !uniqueId()) {
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 9); // 9 - max properties nb
|
||||
_serializer = new HASerializer(this, 13); // 13 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAUniqueIdProperty), _uniqueId);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HADeviceClassProperty), _deviceClass);
|
||||
_serializer->set(AHATOFSTR(HAStateClassProperty), _stateClass);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
_serializer->set(AHATOFSTR(HAUnitOfMeasurementProperty), _unitOfMeasurement);
|
||||
|
||||
// optional property
|
||||
if (_forceUpdate) {
|
||||
_serializer->set(
|
||||
AHATOFSTR(HAForceUpdateProperty),
|
||||
@@ -41,6 +63,18 @@ void HASensor::buildSerializer()
|
||||
);
|
||||
}
|
||||
|
||||
if (_expireAfter.isSet()) {
|
||||
_serializer->set(
|
||||
AHATOFSTR(HAExpireAfterProperty),
|
||||
&_expireAfter,
|
||||
HASerializer::NumberPropertyType
|
||||
);
|
||||
}
|
||||
|
||||
if (_features & JsonAttributesFeature) {
|
||||
_serializer->topic(AHATOFSTR(HAJsonAttributesTopic));
|
||||
}
|
||||
|
||||
_serializer->set(HASerializer::WithDevice);
|
||||
_serializer->set(HASerializer::WithAvailability);
|
||||
_serializer->topic(AHATOFSTR(HAStateTopic));
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define AHA_HASENSOR_H
|
||||
|
||||
#include "HABaseDeviceType.h"
|
||||
#include "../utils/HANumeric.h"
|
||||
|
||||
#ifndef EX_ARDUINOHA_SENSOR
|
||||
|
||||
@@ -17,10 +18,16 @@
|
||||
class HASensor : public HABaseDeviceType
|
||||
{
|
||||
public:
|
||||
enum Features {
|
||||
DefaultFeatures = 0,
|
||||
JsonAttributesFeature = 1
|
||||
};
|
||||
|
||||
/**
|
||||
* @param uniqueId The unique ID of the sensor. It needs to be unique in a scope of your device.
|
||||
* @param features Features that should be enabled for the sensor.
|
||||
*/
|
||||
HASensor(const char* uniqueId);
|
||||
HASensor(const char* uniqueId, const uint16_t features = DefaultFeatures);
|
||||
|
||||
/**
|
||||
* Publishes the MQTT message with the given value.
|
||||
@@ -32,6 +39,22 @@ public:
|
||||
*/
|
||||
bool setValue(const char* value);
|
||||
|
||||
/**
|
||||
* Publishes the given JSON data on the JSON attributes topic.
|
||||
* The `JsonAttributesFeature` has to be enabled prior to setting the value.
|
||||
*
|
||||
* @param json JSON attributes.
|
||||
*/
|
||||
bool setJsonAttributes(const char* json);
|
||||
|
||||
/**
|
||||
* Sets the number of seconds after the sensor’s state expires, if it’s not updated.
|
||||
* By default the sensors state never expires.
|
||||
*
|
||||
* @param expireAfter The number of seconds.
|
||||
*/
|
||||
void setExpireAfter(uint16_t expireAfter);
|
||||
|
||||
/**
|
||||
* Sets class of the device.
|
||||
* You can find list of available values here: https://www.home-assistant.io/integrations/sensor/#device-class
|
||||
@@ -41,6 +64,15 @@ public:
|
||||
inline void setDeviceClass(const char* deviceClass)
|
||||
{ _deviceClass = deviceClass; }
|
||||
|
||||
/**
|
||||
* Sets class of the state for the long term stats.
|
||||
* See: https://developers.home-assistant.io/docs/core/entity/sensor/#long-term-statistics
|
||||
*
|
||||
* @param stateClass The class name.
|
||||
*/
|
||||
inline void setStateClass(const char* stateClass)
|
||||
{ _stateClass = stateClass; }
|
||||
|
||||
/**
|
||||
* Forces HA panel to process each incoming value (MQTT message).
|
||||
* It's useful if you want to have meaningful value graphs in history.
|
||||
@@ -72,9 +104,15 @@ protected:
|
||||
virtual void onMqttConnected() override;
|
||||
|
||||
private:
|
||||
/// Features enabled for the sensor.
|
||||
const uint16_t _features;
|
||||
|
||||
/// The device class. It can be nullptr.
|
||||
const char* _deviceClass;
|
||||
|
||||
/// The state class for the long term stats. It can be nullptr. See: https://developers.home-assistant.io/docs/core/entity/sensor/#long-term-statistics
|
||||
const char* _stateClass;
|
||||
|
||||
/// The force update flag for the HA panel.
|
||||
bool _forceUpdate;
|
||||
|
||||
@@ -83,6 +121,9 @@ private:
|
||||
|
||||
/// The unit of measurement for the sensor. It can be nullptr.
|
||||
const char* _unitOfMeasurement;
|
||||
|
||||
/// It defines the number of seconds after the sensor’s state expires, if it’s not updated. By default the sensors state never expires.
|
||||
HANumeric _expireAfter;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -5,9 +5,10 @@
|
||||
|
||||
HASensorNumber::HASensorNumber(
|
||||
const char* uniqueId,
|
||||
const NumberPrecision precision
|
||||
const NumberPrecision precision,
|
||||
const uint16_t features
|
||||
) :
|
||||
HASensor(uniqueId),
|
||||
HASensor(uniqueId, features),
|
||||
_precision(precision),
|
||||
_currentValue()
|
||||
{
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
#define AHA_HASENSORNUMBER_H
|
||||
|
||||
#include "HASensor.h"
|
||||
#include "../utils/HANumeric.h"
|
||||
|
||||
#ifndef EX_ARDUINOHA_SENSOR
|
||||
|
||||
@@ -27,10 +26,12 @@ public:
|
||||
/**
|
||||
* @param uniqueId The unique ID of the sensor. It needs to be unique in a scope of your device.
|
||||
* @param precision Precision of the floating point number that will be displayed in the HA panel.
|
||||
* @param features Features that should be enabled for the sensor.
|
||||
*/
|
||||
HASensorNumber(
|
||||
const char* uniqueId,
|
||||
const NumberPrecision precision = PrecisionP0
|
||||
const NumberPrecision precision = PrecisionP0,
|
||||
const uint16_t features = DefaultFeatures
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -51,7 +52,7 @@ public:
|
||||
_SET_VALUE_OVERLOAD(uint32_t)
|
||||
_SET_VALUE_OVERLOAD(float)
|
||||
|
||||
#ifdef __SAMD21G18A__
|
||||
#ifdef ARDUINOHA_INT_OVERLOAD
|
||||
_SET_VALUE_OVERLOAD(int)
|
||||
#endif
|
||||
|
||||
@@ -72,7 +73,7 @@ public:
|
||||
_SET_CURRENT_VALUE_OVERLOAD(uint32_t)
|
||||
_SET_CURRENT_VALUE_OVERLOAD(float)
|
||||
|
||||
#ifdef __SAMD21G18A__
|
||||
#ifdef ARDUINOHA_INT_OVERLOAD
|
||||
_SET_CURRENT_VALUE_OVERLOAD(int)
|
||||
#endif
|
||||
|
||||
|
||||
@@ -36,9 +36,10 @@ void HASwitch::buildSerializer()
|
||||
return;
|
||||
}
|
||||
|
||||
_serializer = new HASerializer(this, 10); // 10 - max properties nb
|
||||
_serializer = new HASerializer(this, 11); // 11 - max properties nb
|
||||
_serializer->set(AHATOFSTR(HANameProperty), _name);
|
||||
_serializer->set(AHATOFSTR(HAUniqueIdProperty), _uniqueId);
|
||||
_serializer->set(AHATOFSTR(HAObjectIdProperty), _objectId);
|
||||
_serializer->set(HASerializer::WithUniqueId);
|
||||
_serializer->set(AHATOFSTR(HADeviceClassProperty), _class);
|
||||
_serializer->set(AHATOFSTR(HAIconProperty), _icon);
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
assertEqual(eTopic, publishedMessage->topic); \
|
||||
assertEqual(messageP, publishedMessage->buffer); \
|
||||
assertEqual(messageLen, publishedMessage->bufferSize - 1); \
|
||||
assertEqual(eRetained, publishedMessage->retained); \
|
||||
assertEqual(static_cast<bool>(eRetained), publishedMessage->retained); \
|
||||
}
|
||||
|
||||
#define assertSingleMqttMessage(eTopic, eMessage, eRetained) { \
|
||||
|
||||
@@ -6,6 +6,9 @@
|
||||
PubSubClientMock::PubSubClientMock() :
|
||||
_pendingMessage(nullptr),
|
||||
_flushedMessages(nullptr),
|
||||
_keepAlive(15),
|
||||
_bufferSize(256),
|
||||
_state(-1),
|
||||
_flushedMessagesNb(0),
|
||||
_subscriptions(nullptr),
|
||||
_subscriptionsNb(0),
|
||||
@@ -119,7 +122,7 @@ bool PubSubClientMock::beginPublish(
|
||||
}
|
||||
|
||||
_pendingMessage = new MqttMessage();
|
||||
_pendingMessage->retained = retained;
|
||||
_pendingMessage->retained = retained;
|
||||
|
||||
{
|
||||
size_t size = strlen(topic) + 1;
|
||||
|
||||
@@ -127,6 +127,24 @@ public:
|
||||
int endPublish();
|
||||
bool subscribe(const char* topic);
|
||||
|
||||
inline void setKeepAlive(uint16_t keepAlive)
|
||||
{ _keepAlive = keepAlive; }
|
||||
|
||||
inline uint16_t getKeepAlive() const
|
||||
{ return _keepAlive; }
|
||||
|
||||
inline bool setBufferSize(uint16_t bufferSize)
|
||||
{ _bufferSize = bufferSize; return true; }
|
||||
|
||||
inline uint16_t getBufferSize() const
|
||||
{ return _bufferSize; }
|
||||
|
||||
inline void setState(int16_t state)
|
||||
{ _state = state; }
|
||||
|
||||
inline int16_t state() const
|
||||
{ return _state; }
|
||||
|
||||
inline uint8_t getFlushedMessagesNb() const
|
||||
{ return _flushedMessagesNb; }
|
||||
|
||||
@@ -137,7 +155,7 @@ public:
|
||||
{ return _subscriptionsNb; }
|
||||
|
||||
inline MqttSubscription** getSubscriptions() const
|
||||
{ return _subscriptions; }
|
||||
{ return _subscriptions; }
|
||||
|
||||
inline const MqttConnection& getConnection() const
|
||||
{ return _connection; }
|
||||
@@ -154,6 +172,9 @@ public:
|
||||
private:
|
||||
MqttMessage* _pendingMessage;
|
||||
MqttMessage** _flushedMessages;
|
||||
uint16_t _keepAlive;
|
||||
uint16_t _bufferSize;
|
||||
int16_t _state;
|
||||
uint8_t _flushedMessagesNb;
|
||||
MqttSubscription** _subscriptions;
|
||||
uint8_t _subscriptionsNb;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user