{"id":180,"date":"2019-11-16T21:51:32","date_gmt":"2019-11-16T21:51:32","guid":{"rendered":"https:\/\/dieter.dimo4u.de\/?page_id=180"},"modified":"2022-05-19T10:39:16","modified_gmt":"2022-05-19T09:39:16","slug":"180-2","status":"publish","type":"page","link":"https:\/\/dieter.dimo4u.de\/?page_id=180","title":{"rendered":"Umbau Funksteckdose auf WLAN"},"content":{"rendered":"<p>Die vorhandenen Funksteckdosen (433Mhz) haben nicht an allen Standorten sicher funktioniert. Deshalb habe ich einen Umbau der Steckdosen auf WLAN vorgenommen. <a href=\"https:\/\/dieter.dimo4u.de\/wp-content\/uploads\/2019\/11\/SLP_Umbau_Funksteckdose.pdf\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-127\" src=\"https:\/\/dieter.dimo4u.de\/wp-content\/uploads\/2019\/11\/slp_fudo_to_wlan-300x207.png\" alt=\"\" width=\"289\" height=\"200\" srcset=\"https:\/\/dieter.dimo4u.de\/wp-content\/uploads\/2019\/11\/slp_fudo_to_wlan-300x207.png 300w, https:\/\/dieter.dimo4u.de\/wp-content\/uploads\/2019\/11\/slp_fudo_to_wlan-1024x708.png 1024w, https:\/\/dieter.dimo4u.de\/wp-content\/uploads\/2019\/11\/slp_fudo_to_wlan-768x531.png 768w, https:\/\/dieter.dimo4u.de\/wp-content\/uploads\/2019\/11\/slp_fudo_to_wlan-540x373.png 540w, https:\/\/dieter.dimo4u.de\/wp-content\/uploads\/2019\/11\/slp_fudo_to_wlan.png 1043w\" sizes=\"auto, (max-width: 289px) 100vw, 289px\" \/><\/a>Als WLAN-Modul wird der ESP8266-01 eingesetzt. Die urspr\u00fcngliche Stromversorgung erschien mir als die preiswerteste L\u00f6sung. MIt 33V an der Gleichrichterbr\u00fccke und einem Vorschaltkondensator von 220nF ergibt sich eine verf\u00fcgbare Leistung von 3W f\u00fcr WLAN-Modul und Relais. Problem war dabei, da\u00df das Relais ein 12V-Typ ist und bei 12V Rohspannung reicht die Leistung nicht f\u00fcr WLAN und gezogenes Relais.\u00a0 L\u00f6sung ist ein PWM-Betrieb des Relais. Zum Anzug wird das Tastverh\u00e4ltnis so geregelt, das 12V f\u00fcr 20ms anliegen und danach wird reduziert auf 6V. Damit ist gen\u00fcgend Energiereserve zum sicheren Betrieb des WLAN-Moduls vorhanden.<br \/>Leider konnte bei dieser Hardwarel\u00f6sung nicht die <a href=\"https:\/\/github.com\/arendst\/Tasmota\/wiki\">TASMOTA<\/a>-Software eingesetzt werden, weil die Befehlsabarbeitung der Scripte zu langsam war, um das Relais per PWM zu betreiben. Die Software ist in C++ geschrieben und stellt auch ein Firmware-Update \u00fcber das Webinterface zur Verf\u00fcgung.<\/p>\n\n<pre class=\"wp-block-code\" style=\"font-size:12px\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp shcb-code-table shcb-line-numbers shcb-wrap-lines\"><span class='shcb-loc'><span><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;Arduino.h&gt;<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;ESP8266WiFi.h&gt;<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;ESP8266WebServer.h&gt;<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;ESP8266HTTPUpdateServer.h&gt;<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;ESP8266HTTPClient.h&gt;<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;ESP8266httpUpdate.h&gt;<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">&lt;WiFiUdp.h&gt;<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">\/\/#include &lt;string.h&gt;<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">include<\/span> <span class=\"hljs-meta-string\">\"index_html.h\"<\/span>\t\t<span class=\"hljs-comment\">\/\/ In dieser Datei befindet sich die Steuerung Webseite<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-keyword\">const<\/span> <span class=\"hljs-keyword\">char<\/span>* ssid = <span class=\"hljs-string\">\"ssid\"<\/span>;      <span class=\"hljs-comment\">\/\/ WLAN-Name,<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-keyword\">const<\/span> <span class=\"hljs-keyword\">char<\/span>* password = <span class=\"hljs-string\">\"password\"<\/span>; <span class=\"hljs-comment\">\/\/ WLAN-Passwort<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-keyword\">const<\/span> <span class=\"hljs-keyword\">char<\/span>* WiFi_hostname = <span class=\"hljs-string\">\"ESP-Rel-0000\"<\/span>;\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">\/\/#define RelaisPin 0\t\t\t\/\/ GPIO 0\tModulpin 3<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">\/* GPIO 0 kann f\u00fcr Relais nicht verwendet werden, weil beim Start Signal auf L geht --&gt; Relais zieht zuviel Strom<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">\tist eventuell f\u00fcr Signalisierung mit LED verwendbar (WLAN nicht verbunden oder WLAN-Verbindung ok.)<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">*\/<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">define<\/span> LedPin 0\t\t\t<span class=\"hljs-comment\">\/\/ GPIO 0\tModulpin 3\t\/\/ LED<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">define<\/span> RelaisPin 3\t\t\t<span class=\"hljs-comment\">\/\/ GPIO 3\tModulpin 1\t\/\/ Relais<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">define<\/span> TXD\t1\t\t\t<span class=\"hljs-comment\">\/\/ GPIO 1\tModulpin 8\t\/\/ blaue LED<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">define<\/span> TasterPin 2\t\t\t<span class=\"hljs-comment\">\/\/ GPIO 2\tModulpin 5\t\/\/ Aktiv Low (Taster gegen GND)<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">define<\/span> RXD\t3\t\t\t<span class=\"hljs-comment\">\/\/ GPIO 3\tModulpin 1<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">\/\/ Modulpin 2 = VCC<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">\/\/ Modulpin 4 = \/Reset<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">\/\/ Modulpin 6 = Enable (muss an VCC)<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-comment\">\/\/ Modulpin 7 = GND<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">define<\/span> USE_SERIAL Serial<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">define<\/span> U_Z_Diode 33<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">define<\/span> U_Relais_min 7\t\t\t<span class=\"hljs-comment\">\/\/ bei 33V bekommt Relais 6,6V ab<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">define<\/span> prog_vt 1024 - round(1024 * U_Relais_min \/ U_Z_Diode)<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">define<\/span> U_Relais_nom 12\t\t\t<span class=\"hljs-comment\">\/\/ bei 33V bekommt Relais 12V ab<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-meta\">#<span class=\"hljs-meta-keyword\">define<\/span> prog_vt1 1024 - round(1024 * U_Relais_nom \/ U_Z_Diode)<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-keyword\">int<\/span> active_low = <span class=\"hljs-number\">1<\/span>;\t\t\t<span class=\"hljs-comment\">\/\/ \"0\" Relais schaltet bei +5V , \"1\" Relais beim schaltet bei 0V<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-keyword\">int<\/span> val = <span class=\"hljs-number\">0<\/span>; \t\t\t\t<span class=\"hljs-comment\">\/\/ Hier wird der Schaltzustand gespeichert<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\">ESP8266WebServer <span class=\"hljs-title\">server<\/span><span class=\"hljs-params\">(<span class=\"hljs-number\">80<\/span>)<\/span><\/span>;\t\t\t\t<span class=\"hljs-comment\">\/\/ Serverport  hier einstellen<\/span>\n<\/span><\/span><span class='shcb-loc'><span>ESP8266HTTPUpdateServer httpUpdater;\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">set_relais<\/span><span class=\"hljs-params\">()<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><\/span>{\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-keyword\">if<\/span> ((active_low ^ val)==<span class=\"hljs-number\">0<\/span>)\n<\/span><\/span><span class='shcb-loc'><span>\t{\n<\/span><\/span><span class='shcb-loc'><span>\tanalogWrite(RelaisPin,prog_vt1);\n<\/span><\/span><span class='shcb-loc'><span>\tdelay(<span class=\"hljs-number\">20<\/span>);\t\t\t\t\t\t<span class=\"hljs-comment\">\/\/ 20ms full power (12V)<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\tanalogWrite(RelaisPin,prog_vt);\t\t\t\t<span class=\"hljs-comment\">\/\/ relay is on, power reduce to U_Relais_min<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\t}\n<\/span><\/span><span class='shcb-loc'><span>\t<span class=\"hljs-keyword\">else<\/span>\n<\/span><\/span><span class='shcb-loc'><span>\t{digitalWrite(RelaisPin, <span class=\"hljs-number\">1<\/span>);}\n<\/span><\/span><span class='shcb-loc'><span>}\n<\/span><\/span><span class='shcb-loc'><span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-keyword\">char<\/span>* <span class=\"hljs-title\">dbgprint<\/span> <span class=\"hljs-params\">( <span class=\"hljs-keyword\">const<\/span> <span class=\"hljs-keyword\">char<\/span>* format, ... )<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-params\"><\/span>{<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\">\t<span class=\"hljs-keyword\">static<\/span> <span class=\"hljs-keyword\">char<\/span> sbuf&#91;<span class=\"hljs-number\">60<\/span>] ;\t\t\t\t\t\t<span class=\"hljs-comment\">\/\/ For debug lines<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\">\tva_list varArgs; \t\t\t\t\t        <span class=\"hljs-comment\">\/\/ For variable number of params<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\">\tva_start ( varArgs, format ) ;\t\t\t\t\t<span class=\"hljs-comment\">\/\/ Prepare parameters<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\">\tvsnprintf ( sbuf, <span class=\"hljs-keyword\">sizeof<\/span>(sbuf), format, varArgs ) ;\t\t<span class=\"hljs-comment\">\/\/ Format the message<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\">\tva_end ( varArgs );\t\t\t\t                <span class=\"hljs-comment\">\/\/ End of using parameters<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\">\t<span class=\"hljs-keyword\">return<\/span> sbuf ;\t\t\t\t\t\t\t<span class=\"hljs-comment\">\/\/ Return stored string<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\">}<\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">handleNotFound<\/span><span class=\"hljs-params\">()<\/span> <\/span>{ server.send(<span class=\"hljs-number\">404<\/span>, <span class=\"hljs-string\">\"text\/plain\"<\/span>, <span class=\"hljs-string\">\"404: Not found\"<\/span>); } \t<span class=\"hljs-comment\">\/\/ Send HTTP status 404 (Not Found)<\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">Index<\/span><span class=\"hljs-params\">()<\/span> <\/span>{ server.send(<span class=\"hljs-number\">200<\/span>, <span class=\"hljs-string\">\"text\/html\"<\/span>, indexHTML); }           \t\t\t\t\t<span class=\"hljs-comment\">\/\/ Index-Webseite senden (sehe Datei \"index_html.h\")<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">Command<\/span><span class=\"hljs-params\">()<\/span>    <span class=\"hljs-comment\">\/\/ Wird ausgef\u00fchrt wenn \"http:\/\/&lt;ip address&gt;\/cm\/\" aufgerufen wurde<\/span><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><\/span>{<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">  <span class=\"hljs-keyword\">if<\/span> (server.args() &gt; <span class=\"hljs-number\">0<\/span>) <span class=\"hljs-comment\">\/\/ wenn Argumente im GET Anfrage vorhanden sind z.B http:\/\/&lt;ip address&gt;\/?zustand=r<\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">  {<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">    <span class=\"hljs-keyword\">if<\/span> (server.arg(<span class=\"hljs-string\">\"cmnd\"<\/span>) == <span class=\"hljs-string\">\"power 0\"<\/span>) { val = <span class=\"hljs-number\">0<\/span>;    set_relais(); }<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">    <span class=\"hljs-keyword\">if<\/span> (server.arg(<span class=\"hljs-string\">\"cmnd\"<\/span>) == <span class=\"hljs-string\">\"power 1\"<\/span>) { val = <span class=\"hljs-number\">1<\/span>;    set_relais(); }<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">    <span class=\"hljs-keyword\">if<\/span> (server.arg(<span class=\"hljs-string\">\"cmnd\"<\/span>) == <span class=\"hljs-string\">\"power 2\"<\/span>) { val = !val; set_relais(); }<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">    server.sendHeader(<span class=\"hljs-string\">\"Cache-Control\"<\/span>, <span class=\"hljs-string\">\"no-cache, no-store, must-revalidate\"<\/span>);<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-comment\">\/\/ wichtig! damit Daten nicht aus dem Browser-Cache kommen<\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">\t\tserver.sendHeader(<span class=\"hljs-string\">\"pragma\"<\/span>,<span class=\"hljs-string\">\"no-cache\"<\/span>);<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">\t\tserver.sendHeader(<span class=\"hljs-string\">\"Expires\"<\/span>, <span class=\"hljs-string\">\"-1\"<\/span>);<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">\t\tserver.sendHeader(<span class=\"hljs-string\">\"Access-Control-Allow-Origin\"<\/span>,<span class=\"hljs-string\">\"*\"<\/span>);<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">    server.send(<span class=\"hljs-number\">200<\/span>, <span class=\"hljs-string\">\"application\/json\"<\/span>, String(<span class=\"hljs-keyword\">int<\/span>(val)) );\t\t\t<span class=\"hljs-comment\">\/\/ Antwort an Internet Browser senden nur eine Zahl (\"0\"\/\"1\")<\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">  }<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">}<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">HTTP_update<\/span><span class=\"hljs-params\">()<\/span><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><\/span>{<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">\tt_httpUpdate_return ret = ESPhttpUpdate.update(<span class=\"hljs-string\">\"http:\/\/ds215j\/wlanSW\/updater.php\"<\/span>,<span class=\"hljs-string\">\"WLAN_SD\"<\/span>);<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">\t<span class=\"hljs-keyword\">switch<\/span> (ret) {<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">      <span class=\"hljs-keyword\">case<\/span> HTTP_UPDATE_FAILED:<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">        USE_SERIAL.<span class=\"hljs-built_in\">printf<\/span>(<span class=\"hljs-string\">\"HTTP_UPDATE_FAILD Error (%d): %s\"<\/span>, ESPhttpUpdate.getLastError(), ESPhttpUpdate.getLastErrorString().c_str());<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">        <span class=\"hljs-keyword\">break<\/span>;<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">      <span class=\"hljs-keyword\">case<\/span> HTTP_UPDATE_NO_UPDATES:<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">        USE_SERIAL.println(<span class=\"hljs-string\">\"HTTP_UPDATE_NO_UPDATES\"<\/span>);<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">        <span class=\"hljs-keyword\">break<\/span>;<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">      <span class=\"hljs-keyword\">case<\/span> HTTP_UPDATE_OK:<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">        USE_SERIAL.println(<span class=\"hljs-string\">\"HTTP_UPDATE_OK\"<\/span>);<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">        <span class=\"hljs-keyword\">break<\/span>;<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">    }<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">}<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">setup<\/span><span class=\"hljs-params\">()<\/span> <\/span>{<\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">  pinMode(RelaisPin, OUTPUT);<\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">\tpinMode(TasterPin, INPUT_PULLUP);<\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">\tpinMode(LedPin, OUTPUT);<\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">\tdigitalWrite(RelaisPin, active_low);<\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">\tdigitalWrite(LedPin,val);\t\t\t\t\t\t\t\t\t\t<span class=\"hljs-comment\">\/\/ Led an<\/span><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">  analogWriteFreq((<span class=\"hljs-keyword\">uint32_t<\/span>)<span class=\"hljs-number\">15000<\/span>);\t\t\t\t\t\t<span class=\"hljs-comment\">\/\/ PWM-Frequenz f\u00fcr Relais<\/span><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">\tWiFi_hostname = dbgprint(<span class=\"hljs-string\">\"ESP-Rel-%04d\"<\/span>,ESP.getChipId() &amp; <span class=\"hljs-number\">0x1fff<\/span>);       <span class=\"hljs-comment\">\/\/ %04d - short chip ID in dec, like in hostname<\/span><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">\tWiFi.hostname(WiFi_hostname);<\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">  WiFi.mode(WIFI_STA);<\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">  WiFi.begin(ssid, password);<\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">    <span class=\"hljs-keyword\">while<\/span> (WiFi.status() != WL_CONNECTED)<\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">    {<\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">\tdelay(<span class=\"hljs-number\">250<\/span>);val = !val;\t\t\t\t\t\t<span class=\"hljs-comment\">\/\/ LED blinkt 2 x pro Sekunde<\/span><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">\tdigitalWrite(LedPin,val);\t\t\t\t\t<span class=\"hljs-comment\">\/\/ Led toggeln<\/span><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">    }<\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">\tdelay(<span class=\"hljs-number\">250<\/span>);val = <span class=\"hljs-number\">0<\/span>;<\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">\tdigitalWrite(LedPin,active_low);\t\t\t\t<span class=\"hljs-comment\">\/\/ Led aus<\/span><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-comment\">\/\/  Behandlung der Ereignissen anschliessen<\/span><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">  server.on(<span class=\"hljs-string\">\"\/\"<\/span>, Index);<\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">\tserver.on(<span class=\"hljs-string\">\"\/cm\"<\/span>, Command);<\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">  server.onNotFound ( handleNotFound );<\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">  httpUpdater.setup(&amp;server);<\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">  server.begin();<\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">}<\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">loop<\/span><span class=\"hljs-params\">()<\/span> <\/span>{<\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">  server.handleClient();<\/span><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">  <span class=\"hljs-keyword\">if<\/span> (!digitalRead(TasterPin))\t\t<span class=\"hljs-comment\">\/\/ Wenn Taster bet\u00e4tigt \"Signal 0\"<\/span><\/span><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">  {<\/span><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">  val = !val;\t\t\t\t\t\t\t\t\t\t\t\t\t<span class=\"hljs-comment\">\/\/ Umschalten<\/span><\/span><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">  set_relais(); delay(<span class=\"hljs-number\">500<\/span>);\t\t<span class=\"hljs-comment\">\/\/ Entprellung, Warten bis der Taster Kontakt sich beruhigt hat<\/span><\/span><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">    <span class=\"hljs-keyword\">while<\/span> (!digitalRead(TasterPin)) server.handleClient();\t<span class=\"hljs-comment\">\/\/ warten bis der Taster los gelassen wurde<\/span><\/span><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">  }<\/span><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\">}<\/span><\/span><\/span><\/span><\/span>\n<\/span><\/span><span class='shcb-loc'><span><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><span class=\"hljs-function\"><\/span><\/span><\/span><\/span><\/span>\n<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code-Sprache:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>","protected":false},"excerpt":{"rendered":"<p>Die vorhandenen Funksteckdosen (433Mhz) haben nicht an allen Standorten sicher funktioniert. Deshalb habe ich einen Umbau der Steckdosen auf WLAN vorgenommen. Als WLAN-Modul wird der ESP8266-01 eingesetzt. Die&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-full-width.php","meta":{"footnotes":""},"class_list":["post-180","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/dieter.dimo4u.de\/index.php?rest_route=\/wp\/v2\/pages\/180","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dieter.dimo4u.de\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dieter.dimo4u.de\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dieter.dimo4u.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dieter.dimo4u.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=180"}],"version-history":[{"count":37,"href":"https:\/\/dieter.dimo4u.de\/index.php?rest_route=\/wp\/v2\/pages\/180\/revisions"}],"predecessor-version":[{"id":550,"href":"https:\/\/dieter.dimo4u.de\/index.php?rest_route=\/wp\/v2\/pages\/180\/revisions\/550"}],"wp:attachment":[{"href":"https:\/\/dieter.dimo4u.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}