{"id":1989,"date":"2022-12-18T14:59:31","date_gmt":"2022-12-18T13:59:31","guid":{"rendered":"https:\/\/theroamingworkshop.cloud\/b\/?p=1989"},"modified":"2023-04-14T23:13:41","modified_gmt":"2023-04-14T22:13:41","slug":"sonoff-d1-dimmer","status":"publish","type":"post","link":"https:\/\/theroamingworkshop.cloud\/b\/en\/1989\/sonoff-d1-dimmer\/","title":{"rendered":"Sonoff D1 Dimmer: configuring local HTTP API (DIY mode) and assembling for external connection."},"content":{"rendered":"\n<p>I had a <strong>Shelly Dimmer<\/strong> inside a plug box in the wall, but one good day it stopped working (probably because of high temperatures, as it stands up to 35\u00baC). Looking for an alternative, I found<strong> Sonoff<\/strong> had released their equivalent for <strong>1\/3 the price<\/strong> of Shelly.<\/p>\n\n\n\n<p>But in the end, cheap turns expensive, as it is much <strong>more complicated<\/strong> to configure than Shelly Dimmer and it has a <strong>bigger size.<\/strong><\/p>\n\n\n\n<p>After many tests, and given the poor documentation, here I explain <strong>how to configure Sonoff D1 Dimmer to use the local API<\/strong> without depending on the <strong>e-weLink<\/strong> app.<\/p>\n\n\n\n<p>Additionally, given its size, you wont find much space for it in your connection boxes, so I&#8217;ll give you the idea to craft <strong>an external connection expansor.<\/strong><\/p>\n\n\n\n<div id=\"menu\" style=\"padding:20px 20px 20px 20px; border-left:2px solid darkgrey;\">\n<p style=\"font-weight:bold;\">Content<\/p>\n<\/div>\n<script>\nvar text;\nvar element;\n\nfunction fillmenu(){\n\nfor (let i=0; i<window.document.getElementsByTagName(\"h2\").length; i++){\nelement = window.document.getElementsByTagName(\"h2\")[i];\ntext = \"\u25b9 \"+element.innerHTML;\nvar newelement = document.createElement(\"a\");\nnewelement.innerHTML=text;\nvar postid=window.document.getElementsByTagName(\"article\")[0].id;\nvar url = \"https:\/\/theroamingworkshop.cloud\/b\/?p=\"+postid.substr(5,postid.length)+\"#\"+element.id;\nnewelement.setAttribute(\"href\", url);\nnewelement.appendChild(document.createElement(\"br\"));\nwindow.document.getElementById(\"menu\").appendChild(newelement);\nconsole.log(text);\n}\n}\nif(window.location.href.includes(\"tag\")){\n\n}else{\nwindow.setTimeout(fillmenu,2000);\n}\n\n<\/script>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"requirements\">Requirements<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sonoff D1 Dimmer.<\/li>\n\n\n\n<li>Two wire electrical cable (line and neutral).<\/li>\n\n\n\n<li>Female plug socket.<\/li>\n\n\n\n<li>Male plug.<\/li>\n\n\n\n<li>Sonoff RM-433 remote controller (<strong>very<\/strong> recommended).<\/li>\n\n\n\n<li>Assembling material for a case (3D printer, plywood, etc).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"electrical-connection\">Electrical connection<\/h2>\n\n\n\n<p>The first thing you need to achieve is to connect the D1 to the 220V domestic network, following the schematic given in the user manual:<\/p>\n\n\n\n<p><a rel=\"noreferrer noopener\" href=\"https:\/\/sonoff.tech\/wp-content\/uploads\/2021\/03\/%E8%AF%B4%E6%98%8E%E4%B9%A6-D1-V-1.1-20210305.pdf\" target=\"_blank\">https:\/\/sonoff.tech\/wp-content\/uploads\/2021\/03\/%E8%AF%B4%E6%98%8E%E4%B9%A6-D1-V-1.1-20210305.pdf<\/a><\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"535\" height=\"362\" data-id=\"1922\" src=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1.png\" alt=\"\" class=\"wp-image-1922\" srcset=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1.png 535w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-300x203.png 300w\" sizes=\"auto, (max-width: 535px) 100vw, 535px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-7.jpg\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" data-id=\"1951\" src=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-7-1024x768.jpg\" alt=\"\" class=\"wp-image-1951\" srcset=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-7-1024x768.jpg 1024w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-7-300x225.jpg 300w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-7-768x576.jpg 768w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-7-676x507.jpg 676w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-7.jpg 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p>The previous schematic more or less complies with European norm:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Line (positive): black, brown or grey (red in this case...)<\/li>\n\n\n\n<li>Neutral (negative): blue.<\/li>\n<\/ul>\n\n\n\n<p>Shelly Dimmer is much more compact and fits easily in a connection box. But not in this case, so I will connect it externally using an extension lead, and I will later detail a simple case for its assembly.<\/p>\n\n\n\n<p style=\"border-left:3px solid orange;padding-left:5px;font-size:14px;\"><i><b>TIP! <\/b>If you're not experienced in electricity, you should review quite a bit and move forward with caution. It's not nice to have a shock with the domestic network. If you do the connection externally this way you won't be in much danger.<\/i><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-6.jpg\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-6-1024x768.jpg\" alt=\"\" class=\"wp-image-1952\" srcset=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-6-1024x768.jpg 1024w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-6-300x225.jpg 300w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-6-768x576.jpg 768w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-6-676x507.jpg 676w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-6.jpg 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p>For the moment we can now make it work.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"internet-connection\">Internet connection<\/h2>\n\n\n\n<p>This is the complicated bit, as with so much casing, apparently there was no place for the usual pushbutton to power on\/off and restore the device.<\/p>\n\n\n\n<p>If you're lucky, your Sonoff <strong>wont be preconfigured<\/strong> and you might be able to connect to it on the first attempt. If it's preconfigured, probably to check its operation in another network, the device is no longer accessible even with the e-weLink app, unless you are in the network where it was configured.<\/p>\n\n\n\n<p>To detect it, you must restore to default settings and for this you have two options:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Restore using e-weLink app <strong>from the network where it was configured<\/strong> (very unlikely you have access to it).<\/li>\n\n\n\n<li>Restore <strong>using Sonoff RM-433 remote controller<\/strong> (you'll end up buying this extra accessory).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Pairing Sonoff RM-433 remote controller<\/h3>\n\n\n\n<p>In the end, the cheap D1 price has doubled with the need to buy the RM-433 remote controller, but the price is still not mad. Here is its manual:<\/p>\n\n\n\n<p><a href=\"https:\/\/sonoff.tech\/wp-content\/uploads\/2021\/03\/%E8%AF%B4%E6%98%8E%E4%B9%A6-RM433-V1.1-20210305.pdf\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/sonoff.tech\/wp-content\/uploads\/2021\/03\/%E8%AF%B4%E6%98%8E%E4%B9%A6-RM433-V1.1-20210305.pdf<\/a><\/p>\n\n\n\n<p>The first thing to do is to <strong>pair the controller with the D1:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Connect the D1 to a socket.<\/li>\n\n\n\n<li>Hold <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-accent-color\">button 7<\/mark> for some 5 seconds, until you hear a beep (this removes the previous radio-frequency assignment).<\/li>\n\n\n\n<li>Unplug and plug the D1 to get it restarted.<\/li>\n\n\n\n<li>Press any button on the controller so it's assigned to the D1.<\/li>\n\n\n\n<li>You'll hear another beep and the controller is now paired and can be used to control the D1.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-9.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"829\" height=\"364\" src=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-9.png\" alt=\"\" class=\"wp-image-1953\" srcset=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-9.png 829w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-9-300x132.png 300w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-9-768x337.png 768w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-9-676x297.png 676w\" sizes=\"auto, (max-width: 829px) 100vw, 829px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Restore WIFI network<\/h3>\n\n\n\n<p>Now you need to restore the network assigned to the D1.<\/p>\n\n\n\n<p>Hold <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-accent-color\">button 8<\/mark> for some 5 seconds, or basically, until the led starts blinking this way:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1_breath.gif\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"496\" height=\"368\" src=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1_breath.gif\" alt=\"\" class=\"wp-image-1956\"\/><\/a><figcaption class=\"wp-element-caption\">Breathing mode. Two fast blinks, one slow blink.<\/figcaption><\/figure>\n<\/div>\n\n\n<p>You removed the previous network. Now set it to pairing mode.<\/p>\n\n\n\n<p>Again, hold <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-accent-color\">button 8<\/mark> for some 5 seconds, or until the led starts blinking continuously:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1_pair.gif\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"496\" height=\"368\" src=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1_pair.gif\" alt=\"\" class=\"wp-image-1957\"\/><\/a><figcaption class=\"wp-element-caption\">Pairing mode. Constant blinking.<\/figcaption><\/figure>\n<\/div>\n\n\n<p>This way, the device starts a WIFI Access Point (WIFI AP) with a name in the form <strong>ITEAD-XXXXXXXXXX<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Pairing with e-weLink<\/h3>\n\n\n\n<p>From here, if you want the easy route, just download the <strong>e-weLink<\/strong> app and press the <strong>quick pairing<\/strong> button. You'll then have your D1 accessible from this app.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-9-edited.jpg\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"720\" height=\"959\" data-id=\"1960\" src=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-9-edited.jpg\" alt=\"\" class=\"wp-image-1960\" srcset=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-9-edited.jpg 720w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-9-edited-225x300.jpg 225w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-9-edited-676x900.jpg 676w\" sizes=\"auto, (max-width: 720px) 100vw, 720px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-10.jpg\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"598\" height=\"1024\" data-id=\"1959\" src=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-10-598x1024.jpg\" alt=\"\" class=\"wp-image-1959\" srcset=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-10-598x1024.jpg 598w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-10-175x300.jpg 175w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-10-676x1157.jpg 676w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-10.jpg 720w\" sizes=\"auto, (max-width: 598px) 100vw, 598px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Pairing in DIY mode<\/h3>\n\n\n\n<p>But I want the complicated way and enable <strong>DIY mode<\/strong> to access the device network and control it using commands from the <strong>HTTP API<\/strong> in a web app.<\/p>\n\n\n\n<p>We need to find the WIFI network named <strong>ITEAD-XXXXXXXXXX<\/strong> set up by the device and connect to it using the password <strong>12345678<\/strong>.<\/p>\n\n\n\n<p>Now open a web browser and access this address <strong>http:\/\/10.10.7.1<\/strong> where you'll find the following screens.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-11.jpg\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"602\" height=\"1024\" data-id=\"1961\" src=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-11-602x1024.jpg\" alt=\"\" class=\"wp-image-1961\" srcset=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-11-602x1024.jpg 602w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-11-176x300.jpg 176w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-11-676x1150.jpg 676w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-11.jpg 720w\" sizes=\"auto, (max-width: 602px) 100vw, 602px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-12.jpg\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"632\" height=\"1024\" data-id=\"1962\" src=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-12-632x1024.jpg\" alt=\"\" class=\"wp-image-1962\" srcset=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-12-632x1024.jpg 632w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-12-185x300.jpg 185w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-12-676x1095.jpg 676w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-12.jpg 720w\" sizes=\"auto, (max-width: 632px) 100vw, 632px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<p>Introduce the <strong>name<\/strong> (SSID) and <strong>password<\/strong> of your WIFI network, and the device is now linked to it.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"assembly\">Assembly<\/h2>\n\n\n\n<p>Before getting into the detail of the HTTP API, I'll show you a 3D printed <strong>case design<\/strong> to avoid the cables and connections being completely exposed.<\/p>\n\n\n\n<p>It consists of <strong>two PLA pieces<\/strong> (base and top) which can be screwed together and which you can download from this server:<\/p>\n\n\n\n<p><a href=\"https:\/\/theroamingworkshop.cloud\/demos\/D1case_v1_base.stl\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/theroamingworkshop.cloud\/demos\/D1case_v1_base.stl<\/a><\/p>\n\n\n\n<p><a href=\"https:\/\/theroamingworkshop.cloud\/demos\/D1case_v1_top.stl\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/theroamingworkshop.cloud\/demos\/D1case_v1_top.stl<\/a><\/p>\n\n\n\n<p>You can also preview here:<\/p>\n\n\n\n<iframe style=\"width:100%;height:350px;border:none\" src=\"https:\/\/theroamingworkshop.cloud\/threeJS\/models\/D1case\/\"><\/iframe>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-4 is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-2.jpg\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"768\" height=\"1024\" data-id=\"1973\" src=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-2-768x1024.jpg\" alt=\"\" class=\"wp-image-1973\" srcset=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-2-768x1024.jpg 768w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-2-225x300.jpg 225w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-2-676x901.jpg 676w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-2.jpg 960w\" sizes=\"auto, (max-width: 768px) 100vw, 768px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-4.jpg\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" data-id=\"1972\" src=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-4-1024x768.jpg\" alt=\"\" class=\"wp-image-1972\" srcset=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-4-1024x768.jpg 1024w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-4-300x225.jpg 300w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-4-768x576.jpg 768w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-4-676x507.jpg 676w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-4.jpg 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-3-1.jpg\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" data-id=\"1970\" src=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-3-1-1024x768.jpg\" alt=\"\" class=\"wp-image-1970\" srcset=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-3-1-1024x768.jpg 1024w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-3-1-300x225.jpg 300w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-3-1-768x576.jpg 768w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-3-1-676x507.jpg 676w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-3-1.jpg 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-5.jpg\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" data-id=\"1971\" src=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-5-1024x768.jpg\" alt=\"\" class=\"wp-image-1971\" srcset=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-5-1024x768.jpg 1024w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-5-300x225.jpg 300w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-5-768x576.jpg 768w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-5-676x507.jpg 676w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-5.jpg 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"D1-http-api-usage\">D1 HTTP API usage<\/h2>\n\n\n\n<p>To use the command of the HTTP API you must know the device IP in your local network.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Find IP in the router<\/h3>\n\n\n\n<p>You can access the network map in your router, usually from the address <code>http:\/\/192.168.1.1<\/code><\/p>\n\n\n\n<p>The address and the password should be in some sticker in your router. Then you'll see your device with a name like <strong>ESP-XXXX<\/strong> which derives from the WIFI module it holds (I already renamed it here):<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-14.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"409\" height=\"219\" src=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-14.png\" alt=\"\" class=\"wp-image-1964\" srcset=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-14.png 409w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-14-300x161.png 300w\" sizes=\"auto, (max-width: 409px) 100vw, 409px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Find IP using nmap<\/h3>\n\n\n\n<p>In a terminal you can use the tool <strong>nmap<\/strong> to scan your local network.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Download it if not done yet:<code><br>sudo apt-get update<br>sudo apt-get install nmap<\/code><\/li>\n\n\n\n<li>Scan your network (using <strong>sudo<\/strong> you'll get the MAC address, which is useful as the IP could change when restarting the router)<br><code>sudo nmap  -v -sn 192.168.1.0\/24<\/code><\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1_13.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"411\" height=\"103\" src=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1_13.png\" alt=\"\" class=\"wp-image-1963\" srcset=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1_13.png 411w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1_13-300x75.png 300w\" sizes=\"auto, (max-width: 411px) 100vw, 411px\" \/><\/a><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Send HTTP requests to the D1<\/h3>\n\n\n\n<p>Sonoff's D1 HTTP API is documented in their website:<\/p>\n\n\n\n<p><a href=\"https:\/\/sonoff.tech\/sonoff-diy-developer-documentation-d1-http-api\/\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/sonoff.tech\/sonoff-diy-developer-documentation-d1-http-api\/<\/a><\/p>\n\n\n\n<p>In order to communicate with the device, you need to send HTTP requests using some software like <strong>Postman<\/strong> or using <strong>curl<\/strong> or <strong>wget<\/strong> in a terminal.<\/p>\n\n\n\n<p>The request is sent to the <strong>device IP<\/strong>, to the <strong>default port 8081<\/strong>, and we also have to include the <strong>device id<\/strong> in the request <strong>body<\/strong> (this id matches the XXXXXXXXXX coding in the WIFI network name <strong>ITEAD-XXXXXXXXXX<\/strong>).<\/p>\n\n\n\n<p>Let's see some use cases with <strong>curl<\/strong> and <strong>Postman<\/strong>. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"device-information\">Device information<\/h2>\n\n\n\n<p><code>http:\/\/[ip]:[port]\/zeroconf\/info<\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>curl<\/strong><\/li>\n<\/ul>\n\n\n\n<p><code>curl -X POST 'http:\/\/192.168.1.34:8081\/zeroconf\/info' --data-raw '{\"deviceid\": \"XXXXXXXXXX\",\"data\": {}}'<\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Postman<\/strong><\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-15.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"636\" height=\"273\" src=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-15.png\" alt=\"\" class=\"wp-image-1965\" srcset=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-15.png 636w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-15-300x129.png 300w\" sizes=\"auto, (max-width: 636px) 100vw, 636px\" \/><\/a><\/figure>\n<\/div>\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Response<\/strong><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"seq\": 6,\n    \"error\": 0,\n    \"data\": {\n        \"deviceid\": \"XXXXXXXXXX\",\n        \"switch\": \"off\",\n        \"startup\": \"off\",\n        \"brightness\": 60,\n        \"brightMin\": 0,\n        \"brightMax\": 100,\n        \"mode\": 0,\n        \"otaUnlock\": false,\n        \"fwVersion\": \"3.5.0\",\n        \"ssid\": \"TU_RED_WIFI\",\n        \"bssid\": \"XX:XX:XX:XX:XX:XX\",\n        \"signalStrength\": -58\n    }\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"turn-on-off\">Turn on\/off<\/h2>\n\n\n\n<p><code>http:\/\/[ip]:[port]\/zeroconf\/switch<\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>curl<\/strong><\/li>\n<\/ul>\n\n\n\n<p><code>curl -X POST 'http:\/\/192.168.1.34:8081\/zeroconf\/switch' --data-raw '{\"deviceid\": \"XXXXXXXXXX\",\"data\": {\"switch\":\"on\"}}'<\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Postman<\/strong><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-16.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"661\" height=\"307\" src=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-16.png\" alt=\"\" class=\"wp-image-1967\" srcset=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-16.png 661w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-16-300x139.png 300w\" sizes=\"auto, (max-width: 661px) 100vw, 661px\" \/><\/a><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Response<\/strong><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"seq\": 9,\n    \"error\": 0\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"brightness-adjustment\">Brightness adjustment<\/h2>\n\n\n\n<p><code>http:\/\/[ip]:[port]\/zeroconf\/dimmable<\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>curl<\/strong><\/li>\n<\/ul>\n\n\n\n<p><code>curl -X POST 'http:\/\/192.168.1.34:8081\/zeroconf\/dimmable' --data-raw '{\"deviceid\": \"XXXXXXXXXX\",\"data\": {\"switch\":\"on\",\"brightness\":50,\"mode\":0,\"brightmin\":0,\"brightmax\":100}}'<\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Postman<\/strong><\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-19.png\" target=\"_blank\" rel=\"noreferrer noopener\"><img loading=\"lazy\" decoding=\"async\" width=\"663\" height=\"383\" src=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-19.png\" alt=\"\" class=\"wp-image-1981\" srcset=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-19.png 663w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-19-300x173.png 300w\" sizes=\"auto, (max-width: 663px) 100vw, 663px\" \/><\/a><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Response<\/strong><\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"seq\": 14,\n    \"error\": 0\n}<\/code><\/pre>\n\n\n\n<p>Now you're ready to program your own app and control your D1 to your like in a completely private way. I hope this was useful, but if you find any doubts or comments, don't hesitate to drop them on Twitter \ud83d\udc26!<\/p>\n\n\n\n<p>\ud83d\udc26 <code><a rel=\"noreferrer noopener\" href=\"https:\/\/twitter.com\/roamingworkshop\" target=\"_blank\">@RoamingWorkshop<\/a><\/code><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1217\" height=\"761\" src=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-18-1-edited.png\" alt=\"\" class=\"wp-image-1977\" srcset=\"https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-18-1-edited.png 1217w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-18-1-edited-300x188.png 300w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-18-1-edited-1024x640.png 1024w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-18-1-edited-768x480.png 768w, https:\/\/theroamingworkshop.cloud\/b\/wp-content\/uploads\/2022\/12\/d1-18-1-edited-676x423.png 676w\" sizes=\"auto, (max-width: 1217px) 100vw, 1217px\" \/><\/figure>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>I had a Shelly Dimmer inside a plug box in the wall, but one good day it stopped working (probably because of high temperatures, as it stands up to 35\u00baC). Looking for an alternative, I found Sonoff had released their equivalent for 1\/3 the price of Shelly. But in the end, cheap turns expensive, as [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1970,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[68],"tags":[393,395,403,401,409,397,411,405,399,391,407],"class_list":["post-1989","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-electronics","tag-d1","tag-dimmer","tag-electronica","tag-electronics","tag-internet","tag-iot","tag-lights","tag-luces","tag-smat-home","tag-sonoff","tag-wifi","post-preview"],"_links":{"self":[{"href":"https:\/\/theroamingworkshop.cloud\/b\/wp-json\/wp\/v2\/posts\/1989","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/theroamingworkshop.cloud\/b\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/theroamingworkshop.cloud\/b\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/theroamingworkshop.cloud\/b\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/theroamingworkshop.cloud\/b\/wp-json\/wp\/v2\/comments?post=1989"}],"version-history":[{"count":4,"href":"https:\/\/theroamingworkshop.cloud\/b\/wp-json\/wp\/v2\/posts\/1989\/revisions"}],"predecessor-version":[{"id":1993,"href":"https:\/\/theroamingworkshop.cloud\/b\/wp-json\/wp\/v2\/posts\/1989\/revisions\/1993"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/theroamingworkshop.cloud\/b\/wp-json\/wp\/v2\/media\/1970"}],"wp:attachment":[{"href":"https:\/\/theroamingworkshop.cloud\/b\/wp-json\/wp\/v2\/media?parent=1989"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/theroamingworkshop.cloud\/b\/wp-json\/wp\/v2\/categories?post=1989"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/theroamingworkshop.cloud\/b\/wp-json\/wp\/v2\/tags?post=1989"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}