HAMqtt improvements (#224)

* added setBufferSize method to the HAMqtt class

* added getState method to the HAMqtt class

* update docs

* update changelog

* changelog

* update mocks

* change data type in the PubSubClientMock

* update docs and changelog

* add more callbacks to the HAMqtt class

* improve handling of the disconnected state

* minor fixes in state handling
This commit is contained in:
Dawid Chyrzyński
2024-02-09 19:27:10 +01:00
committed by GitHub
parent 9e17dda50b
commit 77a356bb37
19 changed files with 402 additions and 63 deletions
+133 -1
View File
@@ -156,6 +156,75 @@
<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="_CPPv4N6HAMqtt15ConnectionState19StateNotInitializedE">
<span id="_CPPv3N6HAMqtt15ConnectionState19StateNotInitializedE"></span><span id="_CPPv2N6HAMqtt15ConnectionState19StateNotInitializedE"></span><span class="target" id="class_h_a_mqtt_1a46bf495384c36afc3d85edbaa3d495b7a70f12f4588040a1a33004df4f6b7e75c"></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">StateNotInitialized</span></span></span><a class="headerlink" href="#_CPPv4N6HAMqtt15ConnectionState19StateNotInitializedE" title="Permalink to this definition"></a><br /></dt>
<dd></dd></dl>
<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">
@@ -240,6 +309,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>
@@ -331,6 +428,17 @@
</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>
@@ -491,6 +599,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>
@@ -518,6 +632,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>
@@ -590,12 +716,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>
@@ -245,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>
@@ -372,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>
+1 -4
View File
@@ -178,10 +178,7 @@ Solid understanding of foundations will allow you to utilize full potential of t
<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>
+5 -7
View File
@@ -149,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">&lt;Ethernet.h&gt;</span><span class="cp"></span>
+12
View File
@@ -169,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">&quot;192.168.1.50&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;username&quot;</span><span class="p">,</span><span class="w"> </span><span class="s">&quot;password&quot;</span><span class="p">);</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
+6 -11
View File
@@ -149,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">&lt;Ethernet.h&gt;</span><span class="cp"></span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;ArduinoHA.h&gt;</span><span class="cp"></span>
@@ -178,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>
+50 -2
View File
@@ -152,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>
@@ -172,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>
@@ -204,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>
@@ -879,8 +885,6 @@
</li>
<li><a href="documents/api/device-types/ha-light.html#_CPPv4N7HALight19_brightnessCallbackE">HALight::_brightnessCallback (C++ member)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="documents/api/device-types/ha-light.html#_CPPv4N7HALight16_brightnessScaleE">HALight::_brightnessScale (C++ member)</a>
</li>
<li><a href="documents/api/device-types/ha-light.html#_CPPv4N7HALight25_colorTemperatureCallbackE">HALight::_colorTemperatureCallback (C++ member)</a>
@@ -899,6 +903,8 @@
</li>
<li><a href="documents/api/device-types/ha-light.html#_CPPv4N7HALight10_maxMiredsE">HALight::_maxMireds (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_minMiredsE">HALight::_minMireds (C++ member)</a>
</li>
<li><a href="documents/api/device-types/ha-light.html#_CPPv4N7HALight11_optimisticE">HALight::_optimistic (C++ member)</a>
@@ -1070,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>
@@ -1078,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>
@@ -1100,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>
@@ -1108,6 +1120,32 @@
<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#_CPPv4N6HAMqtt15ConnectionState19StateNotInitializedE">HAMqtt::ConnectionState::StateNotInitialized (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>
@@ -1120,6 +1158,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>
@@ -1132,14 +1172,20 @@
<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>
@@ -1148,6 +1194,8 @@
<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>
+1 -4
View File
@@ -200,10 +200,7 @@ but I successfully use it on ESP8266/ESP8255 boards in my projects.</p>
<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>
BIN
View File
Binary file not shown.
+1 -1
View File
File diff suppressed because one or more lines are too long