mirror of
https://github.com/1technophile/OpenMQTTGateway.git
synced 2026-03-07 07:47:13 +01:00
151 lines
32 KiB
HTML
151 lines
32 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en-US">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<title>Actuators | Theengs OpenMQTTGateway DEVELOPMENT SHA:36682c TEST ONLY</title>
|
|
<meta name="generator" content="VuePress 1.9.10">
|
|
<link rel="apple-touch-icon" sizes="180x180" href=".apple-touch-icon.png">
|
|
<link rel="icon" type="image/png" sizes="32x32" href="/dev/favicon-32x32.png">
|
|
<link rel="icon" type="image/png" sizes="16x16" href="/dev/favicon-16x16.png">
|
|
<link rel="manifest" href="/dev/manifest.json">
|
|
<link rel="mask-icon" href="/dev/icons/safari-pinned-tab.svg" color="#3eaf7c">
|
|
<script type="module" src="https://unpkg.com/esp-web-tools@9.4.3/dist/web/install-button.js?module"></script>
|
|
<meta name="description" content="One gateway, many technologies: MQTT gateway for ESP8266 or ESP32 with bidirectional 433mhz/315mhz/868mhz, Infrared communications, BLE, LoRa, beacons detection, mi flora / mi jia / LYWSD02/ Mi Scale compatibility, SMS & LORA.">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta name="theme-color" content="#3eaf7c">
|
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
|
<meta name="msapplication-TileImage" content="/favicon-144x144.png">
|
|
<meta name="msapplication-TileColor" content="#000000">
|
|
|
|
<link rel="preload" href="/dev/assets/css/0.styles.0f5b7756.css" as="style"><link rel="preload" href="/dev/assets/js/app.33921e4a.js" as="script"><link rel="preload" href="/dev/assets/js/2.f90febc1.js" as="script"><link rel="preload" href="/dev/assets/js/1.848070c7.js" as="script"><link rel="preload" href="/dev/assets/js/62.d32662df.js" as="script"><link rel="prefetch" href="/dev/assets/js/10.54a69cb0.js"><link rel="prefetch" href="/dev/assets/js/11.6556d787.js"><link rel="prefetch" href="/dev/assets/js/12.e41769b6.js"><link rel="prefetch" href="/dev/assets/js/13.f2f65af0.js"><link rel="prefetch" href="/dev/assets/js/14.286ec29b.js"><link rel="prefetch" href="/dev/assets/js/15.91304de5.js"><link rel="prefetch" href="/dev/assets/js/16.7c2b5a08.js"><link rel="prefetch" href="/dev/assets/js/17.e1333746.js"><link rel="prefetch" href="/dev/assets/js/18.42cba936.js"><link rel="prefetch" href="/dev/assets/js/19.71e6901b.js"><link rel="prefetch" href="/dev/assets/js/20.fbef6fa1.js"><link rel="prefetch" href="/dev/assets/js/21.0e500e6c.js"><link rel="prefetch" href="/dev/assets/js/22.1fa11360.js"><link rel="prefetch" href="/dev/assets/js/23.d5ff69ee.js"><link rel="prefetch" href="/dev/assets/js/24.7abe1c27.js"><link rel="prefetch" href="/dev/assets/js/25.3cdd6711.js"><link rel="prefetch" href="/dev/assets/js/26.60581abf.js"><link rel="prefetch" href="/dev/assets/js/27.f4bc0108.js"><link rel="prefetch" href="/dev/assets/js/28.23e9a1c4.js"><link rel="prefetch" href="/dev/assets/js/29.aac2a444.js"><link rel="prefetch" href="/dev/assets/js/3.2fb8cc22.js"><link rel="prefetch" href="/dev/assets/js/30.a35bbc54.js"><link rel="prefetch" href="/dev/assets/js/31.7ec0b927.js"><link rel="prefetch" href="/dev/assets/js/32.bf6ed2d3.js"><link rel="prefetch" href="/dev/assets/js/33.66867073.js"><link rel="prefetch" href="/dev/assets/js/34.1144d4cf.js"><link rel="prefetch" href="/dev/assets/js/35.de5ccc4f.js"><link rel="prefetch" href="/dev/assets/js/36.adfdf2f5.js"><link rel="prefetch" href="/dev/assets/js/37.8a3f6ff9.js"><link rel="prefetch" href="/dev/assets/js/38.55a68009.js"><link rel="prefetch" href="/dev/assets/js/39.089b560c.js"><link rel="prefetch" href="/dev/assets/js/4.ee469e2f.js"><link rel="prefetch" href="/dev/assets/js/40.54f66a91.js"><link rel="prefetch" href="/dev/assets/js/41.c56bed06.js"><link rel="prefetch" href="/dev/assets/js/42.a8267a4e.js"><link rel="prefetch" href="/dev/assets/js/43.73d8f4d8.js"><link rel="prefetch" href="/dev/assets/js/44.790d8d70.js"><link rel="prefetch" href="/dev/assets/js/45.aa140053.js"><link rel="prefetch" href="/dev/assets/js/46.a3d8b6f4.js"><link rel="prefetch" href="/dev/assets/js/47.7a8191ba.js"><link rel="prefetch" href="/dev/assets/js/48.f2c8695b.js"><link rel="prefetch" href="/dev/assets/js/49.d705f84d.js"><link rel="prefetch" href="/dev/assets/js/5.45a12acb.js"><link rel="prefetch" href="/dev/assets/js/50.df420363.js"><link rel="prefetch" href="/dev/assets/js/51.4d19c6ad.js"><link rel="prefetch" href="/dev/assets/js/52.d3d8653e.js"><link rel="prefetch" href="/dev/assets/js/53.6344416c.js"><link rel="prefetch" href="/dev/assets/js/54.7361c051.js"><link rel="prefetch" href="/dev/assets/js/55.a83c3bcc.js"><link rel="prefetch" href="/dev/assets/js/56.64c3f900.js"><link rel="prefetch" href="/dev/assets/js/57.bbcbc292.js"><link rel="prefetch" href="/dev/assets/js/58.4d098c0a.js"><link rel="prefetch" href="/dev/assets/js/59.fc715049.js"><link rel="prefetch" href="/dev/assets/js/6.88e76e8e.js"><link rel="prefetch" href="/dev/assets/js/60.7e3979c2.js"><link rel="prefetch" href="/dev/assets/js/61.096d97a1.js"><link rel="prefetch" href="/dev/assets/js/63.118c24b3.js"><link rel="prefetch" href="/dev/assets/js/64.25208722.js"><link rel="prefetch" href="/dev/assets/js/65.bd30a68b.js"><link rel="prefetch" href="/dev/assets/js/66.6b3e6794.js"><link rel="prefetch" href="/dev/assets/js/67.0d566ba2.js"><link rel="prefetch" href="/dev/assets/js/7.747393f7.js"><link rel="prefetch" href="/dev/assets/js/vendors~docsearch.9de5652f.js">
|
|
<link rel="stylesheet" href="/dev/assets/css/0.styles.0f5b7756.css">
|
|
</head>
|
|
<body>
|
|
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/dev/" class="home-link router-link-active"><!----> <span class="site-name">Theengs OpenMQTTGateway DEVELOPMENT SHA:36682c TEST ONLY</span></a> <div class="links"><!----> <nav class="nav-links can-hide"><div class="nav-item"><a href="https://www.theengs.io" target="_self" class="nav-link external">
|
|
Home
|
|
<!----></a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Use cases" class="dropdown-title"><span class="title">Use cases</span> <span class="arrow down"></span></button> <button type="button" aria-label="Use cases" class="mobile-dropdown-title"><span class="title">Use cases</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://www.theengs.io/usecases/smarthome.html" target="_self" class="nav-link external">
|
|
Smart Home
|
|
<!----></a></li><li class="dropdown-item"><!----> <a href="https://www.theengs.io/usecases/iot.html" target="_self" class="nav-link external">
|
|
IoT
|
|
<!----></a></li><li class="dropdown-item"><!----> <a href="https://www.theengs.io/usecases/research.html" target="_self" class="nav-link external">
|
|
Research
|
|
<!----></a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Solutions" class="dropdown-title"><span class="title">Solutions</span> <span class="arrow down"></span></button> <button type="button" aria-label="Solutions" class="mobile-dropdown-title"><span class="title">Solutions</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>
|
|
Hardware
|
|
</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://shop.theengs.io/products/theengs-plug-smart-plug-ble-gateway-and-energy-consumption" target="_self" class="nav-link external">
|
|
Theengs Plug
|
|
<!----></a></li><li class="dropdown-subitem"><a href="https://shop.theengs.io/products/theengs-bridge-esp32-ble-mqtt-gateway-with-ethernet-and-external-antenna" target="_self" class="nav-link external">
|
|
Theengs Bridge
|
|
<!----></a></li></ul></li><li class="dropdown-item"><h4>
|
|
Software
|
|
</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://app.theengs.io" target="_self" class="nav-link external">
|
|
Mobile App
|
|
<!----></a></li><li class="dropdown-subitem"><a href="https://docs.openmqttgateway.com" target="_self" class="nav-link external">
|
|
OpenMQTTGateway
|
|
<!----></a></li><li class="dropdown-subitem"><a href="https://gateway.theengs.io" target="_self" class="nav-link external">
|
|
Gateway
|
|
<!----></a></li></ul></li><li class="dropdown-item"><h4>
|
|
Core
|
|
</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://decoder.theengs.io" target="_self" class="nav-link external">
|
|
Decoder
|
|
<!----></a></li><li class="dropdown-subitem"><a href="https://parser.theengs.io" target="_self" class="nav-link external">
|
|
Web Parser
|
|
<!----></a></li></ul></li></ul></div></div><div class="nav-item"><a href="https://decoder.theengs.io/devices/devices.html" target="_self" class="nav-link external">
|
|
Compatible devices
|
|
<!----></a></div><div class="nav-item"><a href="https://community.openmqttgateway.com" target="_self" class="nav-link external">
|
|
Community
|
|
<!----></a></div><div class="nav-item"><a href="https://shop.theengs.io/" target="_self" class="nav-link external">
|
|
Shop
|
|
<!----></a></div><div class="nav-item"><a href="https://github.com/sponsors/theengs" target="_self" class="nav-link external">
|
|
Sponsor 🤍
|
|
<!----></a></div> <a href="https://github.com/1technophile/OpenMQTTGateway" target="_blank" rel="noopener noreferrer" class="repo-link">
|
|
GitHub
|
|
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="https://www.theengs.io" target="_self" class="nav-link external">
|
|
Home
|
|
<!----></a></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Use cases" class="dropdown-title"><span class="title">Use cases</span> <span class="arrow down"></span></button> <button type="button" aria-label="Use cases" class="mobile-dropdown-title"><span class="title">Use cases</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><!----> <a href="https://www.theengs.io/usecases/smarthome.html" target="_self" class="nav-link external">
|
|
Smart Home
|
|
<!----></a></li><li class="dropdown-item"><!----> <a href="https://www.theengs.io/usecases/iot.html" target="_self" class="nav-link external">
|
|
IoT
|
|
<!----></a></li><li class="dropdown-item"><!----> <a href="https://www.theengs.io/usecases/research.html" target="_self" class="nav-link external">
|
|
Research
|
|
<!----></a></li></ul></div></div><div class="nav-item"><div class="dropdown-wrapper"><button type="button" aria-label="Solutions" class="dropdown-title"><span class="title">Solutions</span> <span class="arrow down"></span></button> <button type="button" aria-label="Solutions" class="mobile-dropdown-title"><span class="title">Solutions</span> <span class="arrow right"></span></button> <ul class="nav-dropdown" style="display:none;"><li class="dropdown-item"><h4>
|
|
Hardware
|
|
</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://shop.theengs.io/products/theengs-plug-smart-plug-ble-gateway-and-energy-consumption" target="_self" class="nav-link external">
|
|
Theengs Plug
|
|
<!----></a></li><li class="dropdown-subitem"><a href="https://shop.theengs.io/products/theengs-bridge-esp32-ble-mqtt-gateway-with-ethernet-and-external-antenna" target="_self" class="nav-link external">
|
|
Theengs Bridge
|
|
<!----></a></li></ul></li><li class="dropdown-item"><h4>
|
|
Software
|
|
</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://app.theengs.io" target="_self" class="nav-link external">
|
|
Mobile App
|
|
<!----></a></li><li class="dropdown-subitem"><a href="https://docs.openmqttgateway.com" target="_self" class="nav-link external">
|
|
OpenMQTTGateway
|
|
<!----></a></li><li class="dropdown-subitem"><a href="https://gateway.theengs.io" target="_self" class="nav-link external">
|
|
Gateway
|
|
<!----></a></li></ul></li><li class="dropdown-item"><h4>
|
|
Core
|
|
</h4> <ul class="dropdown-subitem-wrapper"><li class="dropdown-subitem"><a href="https://decoder.theengs.io" target="_self" class="nav-link external">
|
|
Decoder
|
|
<!----></a></li><li class="dropdown-subitem"><a href="https://parser.theengs.io" target="_self" class="nav-link external">
|
|
Web Parser
|
|
<!----></a></li></ul></li></ul></div></div><div class="nav-item"><a href="https://decoder.theengs.io/devices/devices.html" target="_self" class="nav-link external">
|
|
Compatible devices
|
|
<!----></a></div><div class="nav-item"><a href="https://community.openmqttgateway.com" target="_self" class="nav-link external">
|
|
Community
|
|
<!----></a></div><div class="nav-item"><a href="https://shop.theengs.io/" target="_self" class="nav-link external">
|
|
Shop
|
|
<!----></a></div><div class="nav-item"><a href="https://github.com/sponsors/theengs" target="_self" class="nav-link external">
|
|
Sponsor 🤍
|
|
<!----></a></div> <a href="https://github.com/1technophile/OpenMQTTGateway" target="_blank" rel="noopener noreferrer" class="repo-link">
|
|
GitHub
|
|
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav> <ul class="sidebar-links"><li><a href="/dev/" aria-current="page" class="sidebar-link">0 - What is it for 🏠</a></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>1 - Prerequisites🧭</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>2 - Set it up 🔨</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>3 - Upload ➡️</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading open"><span>4 - Use ✈️</span> <span class="arrow down"></span></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/dev/use/rf.html" class="sidebar-link">RF gateways (RTL_433/RCSwitch/RF/RF2)</a></li><li><a href="/dev/use/ble.html" class="sidebar-link">Bluetooth ESP32 gateway</a></li><li><a href="/dev/use/ir.html" class="sidebar-link">Infrared gateway</a></li><li><a href="/dev/use/lora.html" class="sidebar-link">LoRa gateway</a></li><li><a href="/dev/use/gsm.html" class="sidebar-link">GSM 2G gateway</a></li><li><a href="/dev/use/serial.html" class="sidebar-link">RS232/Serial gateway</a></li><li><a href="/dev/use/rfm69.html" class="sidebar-link">RFM69 gateway</a></li><li><a href="/dev/use/sensors.html" class="sidebar-link">Sensors</a></li><li><a href="/dev/use/actuators.html" aria-current="page" class="active sidebar-link">Actuators</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/dev/use/actuators.html#on-off-functionality" class="sidebar-link">ON/OFF Functionality</a></li><li class="sidebar-sub-header"><a href="/dev/use/actuators.html#fastled" class="sidebar-link">FASTLED</a></li><li class="sidebar-sub-header"><a href="/dev/use/actuators.html#pwm" class="sidebar-link">PWM</a></li><li class="sidebar-sub-header"><a href="/dev/use/actuators.html#somfy-rts" class="sidebar-link">Somfy RTS</a></li></ul></li><li><a href="/dev/use/boards.html" class="sidebar-link">Boards</a></li><li><a href="/dev/use/displays.html" class="sidebar-link">Displays</a></li><li><a href="/dev/use/gateway.html" class="sidebar-link">System commands (ESP only)</a></li><li><a href="/dev/use/webui.html" class="sidebar-link">WebUI</a></li></ul></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>5 - Integrate 🎉</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>6 - Participate 💻</span> <span class="arrow right"></span></p> <!----></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="actuators"><a href="#actuators" class="header-anchor">#</a> Actuators</h1> <h2 id="on-off-functionality"><a href="#on-off-functionality" class="header-anchor">#</a> ON/OFF Functionality</h2> <p>The ON/OFF module of the OpenMQTTGateway provides you with the capability to control actuators, such as relays or LEDs, by assigning a HIGH or LOW value to a specific PIN through MQTT topics. For instance, you might connect a transistor to power a relay or an LED to the PIN.</p> <p>To operate the default GPIO, identified as ACTUATOR_ONOFF_GPIO, you'll need to issue certain commands which comply with the JSON receiving format.</p> <h3 id="standard-on-off-control"><a href="#standard-on-off-control" class="header-anchor">#</a> Standard ON/OFF control</h3> <p>The OFF command can be executed as follows:
|
|
<code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoONOFF -m '{"cmd":0}'</code></p> <p>For the ON command, use:
|
|
<code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoONOFF -m '{"cmd":1}'</code></p> <p>You can also specify the GPIO number that you wish to control:
|
|
<code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoONOFF -m '{"gpio":15,"cmd":1}'</code></p> <p>The status of the actuator will be published to the topic below every 2 minutes or upon state change.
|
|
<code>home/OpenMQTTGateway/ONOFFtoMQTT '{"cmd":0}'</code></p> <p>In the case of the simple receiving format, the commands can be executed as follows:
|
|
OFF command: <code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoONOFF/setOFF -m 15</code>
|
|
ON command: <code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoONOFF/setON -m 15</code></p> <h3 id="pulse-control-for-short-activations"><a href="#pulse-control-for-short-activations" class="header-anchor">#</a> Pulse control for short activations</h3> <p>Additionally, the module also supports short activations, during which the PIN changes state for just half a second. This can be particularly useful when operating a relay board to trigger a step relay, thus allowing your home automation system to function as an auxiliary switch, without interfering with the existing switches in your house.</p> <p>This functionality is available only through the JSON receiving format.</p> <p>To switch ON for half a second before reverting to OFF:
|
|
<code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoONOFF -m '{"gpio":15,"cmd":"high_pulse"}'</code></p> <p>To switch OFF for half a second before reverting to ON:
|
|
<code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoONOFF -m '{"gpio":15,"cmd":"low_pulse}'</code></p> <p>If you need to specify an activation duration other than half a second, include the pulse_length parameter along with the duration in milliseconds (ms).</p> <p>To switch ON for 25 ms before reverting to OFF:
|
|
<code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoONOFF -m '{"gpio":15,"cmd":"high_pulse","pulse_length":25}'</code></p> <p>To switch OFF for 25 ms before reverting to ON:
|
|
<code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoONOFF -m '{"gpio":15,"cmd":"low_pulse","pulse_length":25}'</code></p> <p>Recovery Functionality (ESP32 only)
|
|
In the event of power loss, by default, the module will record the last known state of the actuator and attempt to revert to this state upon restarting. For example, if a relay was ON at the time of a power outage, the firmware will attempt to switch the relay ON again once power is restored.</p> <p>If you prefer to disable this functionality, you can set the macro USE_LAST_STATE_ON_RESTART to false during the build time. Alternatively, you can issue the following command at runtime:
|
|
<code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoONOFF/config -m '{"uselaststate":false,"save":true}'</code></p> <h2 id="fastled"><a href="#fastled" class="header-anchor">#</a> FASTLED</h2> <h3 id="the-fastled-module-support-2-different-operation-modes"><a href="#the-fastled-module-support-2-different-operation-modes" class="header-anchor">#</a> The FASTLED module support 2 different operation modes</h3> <ol><li>control one specific RGB LED</li></ol> <ul><li>Set color</li> <li>Set blink</li></ul> <ol start="2"><li>Start fire animation (Fire2012)</li></ol> <h3 id="hardware-wiring"><a href="#hardware-wiring" class="header-anchor">#</a> Hardware wiring</h3> <p>Theoretically it should be possible to use every free IO pin. But after some tests only pin D2 works at WEMOS D1. Other platforms can work.
|
|
The default setting use NEOPIXEL (WS2812B). The simplest wiring is direct connect D2 to data pin of LED stripe and connect VCC/GND to power source. You should also add a capacitor.</p> <h2 id="pwm"><a href="#pwm" class="header-anchor">#</a> PWM</h2> <p>This module allows control over PWM outputs.
|
|
It's primary use is for controlling LEDs, but it should be equally at home controlling anything that's controlled using PWM.
|
|
E.g. LEDs, servos, PC fans.
|
|
You would typically connect a PWM output to a transistor or MOSFET to allow control over higher power devices.</p> <ul><li>JSON message format allows you to set any or all channels in a single message.</li> <li>Each channel can be set to smoothly transition from its current setting to the new setting over a specified number of seconds.</li> <li>Each channel can be calibrated with min and max settings, as well as a gamma curve.</li></ul> <h3 id="configuration"><a href="#configuration" class="header-anchor">#</a> Configuration</h3> <p>In order to use the PWM actuator, you need to configure which pins the PWM output channels will be connected to.
|
|
There are a couple of <code>#defines that achieve this. They can be defined in the</code>build_flags<code>section of the env, or by directly editing</code>config_PWM.h`.</p> <div class="language-c line-numbers-mode"><pre class="language-c"><code><span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">define</span> <span class="token macro-name">PWM_CHANNEL_NAMES</span> <span class="token expression"><span class="token punctuation">{</span></span><span class="token string">"r"</span><span class="token expression"><span class="token punctuation">,</span> </span><span class="token string">"g"</span><span class="token expression"><span class="token punctuation">,</span> </span><span class="token string">"b"</span><span class="token expression"><span class="token punctuation">,</span> </span><span class="token string">"w0"</span><span class="token expression"><span class="token punctuation">,</span> </span><span class="token string">"w1"</span><span class="token expression"><span class="token punctuation">}</span></span></span>
|
|
<span class="token macro property"><span class="token directive-hash">#</span><span class="token directive keyword">define</span> <span class="token macro-name">PWM_CHANNEL_PINS</span> <span class="token expression"><span class="token punctuation">{</span> <span class="token number">25</span><span class="token punctuation">,</span> <span class="token number">33</span><span class="token punctuation">,</span> <span class="token number">32</span><span class="token punctuation">,</span> <span class="token number">23</span><span class="token punctuation">,</span> <span class="token number">22</span><span class="token punctuation">}</span></span></span>
|
|
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br></div></div><p><code>PWM_CHANNEL_NAMES</code> lists the names that you would like to assign to each channel, and determines the number of channels.
|
|
<code>PWM_CHANNEL_PINS</code> lists the corresponding output pins that the channels will be connected to.
|
|
The number of entries in <code>PWM_CHANNEL_PINS</code> must exactly match the number of entries in <code>PWM_CHANNEL_NAMES</code>.</p> <h3 id="usage"><a href="#usage" class="header-anchor">#</a> Usage</h3> <h4 id="set"><a href="#set" class="header-anchor">#</a> Set</h4> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoPWM/set -m '{"r":0.5,"g":0.2,"b":1,"fade":10.0}'</code></p> <p>This example sets new values for the channels named <code>r</code>, <code>g</code>, and <code>b</code>.
|
|
These channels will transition from their current values to the new values over 10s.</p> <h4 id="calibrate"><a href="#calibrate" class="header-anchor">#</a> Calibrate</h4> <p>Calibration allows that min and max levels to be configured for each channel, so that the full 0-1 range of values
|
|
that can be specified with the <code>set</code> command actually do things.</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway/commands/MQTTtoPWM/calibrate -m '{"min-r":0.01,"max-r":1.0,"gamma-r":2.5}'</code></p> <p>This example calibrates the channel named <code>r</code>.
|
|
After this calibration, if you set the <code>r</code> channel to 0.0, it will be remapped to 0.01 internally.
|
|
Also, the gamma curve for this channel will be set to 2.5.
|
|
This means that input values are raised to the power 2.5 internally.
|
|
This can be used to improve the linearity of inputs.</p> <h2 id="somfy-rts"><a href="#somfy-rts" class="header-anchor">#</a> Somfy RTS</h2> <p>This actuator allows to control Somfy RTS devices.</p> <h3 id="setup"><a href="#setup" class="header-anchor">#</a> Setup</h3> <p>Before the module can be used, virtual Somfy RTS remotes must be created.
|
|
This is done in <code>config_Somfy.h</code>.</p> <p><code>SOMFY_REMOTE_NUM</code> must be set to the number of virtual Somfy RTS remotes you want to have.
|
|
Then create for each of the virtual Somfy RTS remotes a unique 3-byte code and add them to <code>somfyRemotes</code>.
|
|
After a remote is setup, the order and codes should not be changed, else the setup process for all remotes have to be repeated.
|
|
Adding new codes at the end of the list is no problem.
|
|
Example of three virtual Somfy RTS remote codes:</p> <div class="language-C line-numbers-mode"><pre class="language-c"><code><span class="token keyword">const</span> <span class="token class-name">uint32_t</span> somfyRemotes<span class="token punctuation">[</span>SOMFY_REMOTE_NUM<span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token punctuation">{</span><span class="token number">0x5184c8</span><span class="token punctuation">,</span> <span class="token number">0xba24d0</span><span class="token punctuation">,</span> <span class="token number">0xb77753</span><span class="token punctuation">}</span><span class="token punctuation">;</span>
|
|
</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><p>Next the virtual Somfy RTS remotes must be paired with the Somfy RTS devices you want to control.
|
|
The next section describes how the PROG command/button of the virtual remote can be used.
|
|
Use the manual of the device you want to control for instructions on how to pair the virtual remote with the device.</p> <h3 id="commands"><a href="#commands" class="header-anchor">#</a> Commands</h3> <p>Commands must be send to the <code>commands/MQTTtoSomfy</code> subtopic.
|
|
Only json messages are supported.
|
|
The json message must contain two properties:</p> <ul><li>remote: the index of the remote which is used to send the command (index start at zero)</li> <li>command: the command which should be send with the remote as string, see <a href="https://github.com/Legion2/Somfy_Remote_Lib#available-commands" target="_blank" rel="noopener noreferrer">table of command names<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>.</li></ul> <p>Optionally it can contain the following property:</p> <ul><li>repeat: the number how often the command is repeated, default 4. Should be used to simulate long button presses, by increasing the repeat number, e.g. 20.</li></ul> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>The middle button on physical Somfy RTS Remote controls is called "My".</p></div> <p>The frequency key is optional, if not set the gateway will use the default frequency defined by MQTTtoRF command at runtime or <code>RF_FREQUENCY</code> at buildtime.</p> <p>Send PROG command with remote 0:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway_Somfy/commands/MQTTtoSomfy -m '{"remote":0,"command":"Prog","frequency":433.42}'</code></p> <p>Send Up command with remote 1:</p> <p><code>mosquitto_pub -t home/OpenMQTTGateway_Somfy/commands/MQTTtoSomfy -m '{"remote":1,"command":"Up","frequency":433.42}'</code></p></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/1technophile/OpenMQTTGateway/edit/development/docs/use/actuators.md" target="_blank" rel="noopener noreferrer">Edit this page</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">12/7/2025, 4:27:01 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
|
|
←
|
|
<a href="/dev/use/sensors.html" class="prev">
|
|
Sensors
|
|
</a></span> <span class="next"><a href="/dev/use/boards.html">
|
|
Boards
|
|
</a>
|
|
→
|
|
</span></p></div> </main></div><div class="global-ui"></div></div>
|
|
<script src="/dev/assets/js/app.33921e4a.js" defer></script><script src="/dev/assets/js/2.f90febc1.js" defer></script><script src="/dev/assets/js/1.848070c7.js" defer></script><script src="/dev/assets/js/62.d32662df.js" defer></script>
|
|
</body>
|
|
</html>
|