Build a 2log Switch

Learn how to build a 2log Switch

The 2log Switch is a smart wireless socket that can switch power and measure energy consumption. It communicates via WiFi with the 2log server and ensures that only authorized users can use the machines. By measuring the power consumption, the system knows exactly how long the machine has been in use.

Supported smart sockets

Theoretically, any tasmota compatible, ESP8266 based WiFi socket is suitable. Depending on the type, the software from our repository has to be adapted a bit.

To turn a smart socket into a 2log Switch, the 2log Switch firmware must be flashed to the device. For this purpose a USB Serial Adapter (FTDI) is required.

Shelly Plug S and Shelly 1PM

Officially supported are currently the models “Shelly Plug S” and “Shelly 1PM”. Regarding the 1PM, you have to be careful not to accidentally buy the plus version with the square case. We need the version with the ESP8266 and the round case.

To flash a Shelly Plug S socket you have to do the following steps:

  1. Download the firmware binaries from our CI Pipeline
  2. Connect the serial programmer
    • PlugS:
    • 1PM:
      • Remove the rubber cap
      • Connect the Serial Programmer as described in the manual.
  3. Flash the firmware with esptool
    esptool.py \
        --chip esp8266 \
        --port /dev/tty.usbserial-UUT1 \
        --baud 230400 \
        --before default_reset \
        --after hard_reset write_flash \
        -z \
        --flash_mode dio \
        --flash_freq 40m \
        --flash_size 4MB \
        0x0 build/bootloader/bootloader.bin \
        0x10000 build/2log-switch.bin \
        0x8000 build/partitions-OTA-2MB.bin
    

Connect the Switch with your 2log instance

You can set up the devices either with the 2log app or manually with a Linux Shell. Using the app is straight forward and will be explained in the corresponding chapters.

Provisioning without mobile app

Here we explain how to provision a Switch via a direct SSH connection. You only need a command line for the manual setup.

You can also use this protocol to create your own program code for provisioning.

  1. Press the button of the Switch for several seconds. Once the Dot is in pairing mode, it will start blinking slowly and open a WiFi hotspot.

  2. Connect your laptop to the WiFi with the SSID I'm a Switch.

  3. Enter the following command into your linux console:

openssl s_client -connect 192.168.4.1:8443

After a few console outputs, a connection to the Switch should be established.

  1. Send the following JSON command to the device by typing it into the console and confirming with return:
 {"cmd": "hi"}

The device will respond with something similar to

{
	"cmd":	"welcome",
	"device":	{
		"sid":	"I5O2",
		"uuid":	"3C:61:05:DE:8A:A4"
	}
}

Write down the short id (sid) somewhere. You will need it later to assign the device. In the example here the device has the sid I502

  1. Now we can send the configuration to the device with the following JSON command
{
   "cmd":"setconfig",
   "ssid":"<YOUR_SSID>",
   "pass":"<YOUR_PASSWORD>",
   "extconfig":{
      "server":"<YOUR_2LOG_SERVER>",
      "testconfig":false
   }
}
  1. The device will respond with
{ "cmd":"setconfig","status":1}

Which means that the device has received the data.

  1. The device will now reboot and try to connect to the server. The Switch will stop blinking and glow continuously once it is successfully connected to the 2log instance. Now you can assign a function to the Dot using the four-digit short ID.