Dieser Artikel beschreibt ein einfaches Beispiel, wie man den ITEAD Smart Socket in Openhab integrieren kann. Dafür wird das Souliss Framework eingesetzt, welches es für die ESP und Arduino Basis gibt.

Hinweis: Ich habe nach langer Bastelzeit das Souliss Framework durch Tasmota (MQTT) ersetzt. Tasmota bietet einfach eine breitere Geräteunterstützung, läuft stabiler und wird regelmäßig gepatcht.

 

# Bezeichnung ~Preis
1 ITEAD Sonoff S20 Smart Socket 10,00 €
1 USB-Seriell Wandler mit 3.3V Versorgungsspannung 3 €
1 Pinleiste 0,05 €
    13 €

Ich beschreibe nicht zum hundertsten Mal, wie man das ESP-Modul des Smart Sockets flasht. Dafür gibt es bereits gute Tutorials, z.B. das hier.

 

Die Pins des Smart Sockets sind folgendermaßen belegt:

Pin 0: Switch auf der Vorderseite
Pin 12: Blaue LED und Relais
Pin 13: Grüne LED (invertiert)

 

In diesem Beispiel habe ich eine Souliss Node konfiguriert (mit einer festen statischen IP-Adresse). Der entsprechende Code für das Gateway muss natürlich noch angepasst werden.

 

/**************************************************************************

    Souliss PEER with static IP Address for Arduino and ESP8266
    Simple switches ITEAD Socket example

***************************************************************************/

// Let the IDE point to the Souliss framework
#include "SoulissFramework.h"

// Configure the framework
#include "bconf/MCU_ESP8266.h"              // Load the code directly on the ESP8266
#include "conf/IPBroadcast.h"

// **** Define the WiFi name and password ****
#define WIFICONF_INSKETCH
#define WiFi_SSID               "bla"
#define WiFi_Password           "bla"

// Include framework code and libraries
#include <ESP8266WiFi.h>
#include <EEPROM.h>

uint8_t ip_address[4]  = {192, 168, 5, 56};
uint8_t subnet_mask[4] = {255, 255, 255, 0};
uint8_t ip_gateway[4]  = {192, 168, 5, 1};

/*** All configuration includes should be above this line ***/
#include "Souliss.h"

// This identify the number of the LED logic
#define LIGHT_0  0
#define LIGHT_1  1
#define SWITCH_0 2

// Pinouts for ESP-07:
#define PIN_LED_0 12 // Blue LED and Relais
#define PIN_LED_1 13 // Green LED
#define PIN_SWITCH 0 // Switch on the fron

void setup()
{
  Initialize();

  Souliss_SetIPAddress(ip_address, subnet_mask, ip_gateway);

  SetAddress(56, 0xFF00, 50); // Souliss Node Adress

  Set_SimpleLight(PIN_LED_0);
  Set_SimpleLight(PIN_LED_1);
  pinMode(PIN_LED_0, OUTPUT);
  pinMode(PIN_LED_1, OUTPUT);
  pinMode(PIN_SWITCH, INPUT_PULLUP);
}

void loop()
{
  // Here we start to play
  EXECUTEFAST() {
    UPDATEFAST();

    FAST_50ms() {   // We process the logic and relevant input and output every 50 milliseconds
      DigIn(PIN_SWITCH, Souliss_T1n_ToggleCmd,  LIGHT_0);
      Logic_DigitalInput(LIGHT_0); //input PIN -> Light

      Logic_SimpleLight(LIGHT_0);
      DigOut(PIN_LED_0, Souliss_T1n_Coil, LIGHT_0);
      Logic_SimpleLight(LIGHT_1);
      DigOut(PIN_LED_1, Souliss_T1n_Coil, LIGHT_1);
    }

    FAST_PeerComms(); // Here we handle here the communication with Android
  }
}

 

Als nächstes hier das entsprechende Item für Openhab:

// Souliss Peers LEDs and switches:
Switch Soul_socket6switch "Socket 6 Switch" {souliss="T11:6:0", autoupdate="false"}
Switch Soul_socket6status "Socket 6 Status" {souliss="T11:6:1", autoupdate="false"}

und so habe ich es in der Sitemap eingebunden:

Switch item=Soul_socket6switch label="Stehlampe" icon="bedroom"

Nun müsst ihr nur noch das Souliss Addin in Openhab installieren (am besten über das Paper-UI und dann die Konfguration per Textdatei) und los geht's.

Ihr könnt den Schalter nun entweder über die Openhab Oberfläche steuern oder über den Button auf dem Gerät selber.