Gosund SP112
WLAN Zwischenstecker, kurz Dose genannt, mit tasmota geflashed
Wie schön öfters erwähnt, will ich keine Dose, die seine Daten in irgendeine Cloud schickt. Daher habe ich mir die gosund SP112 besorgt und mit tasmota OTA (over the air) geflashed. Die Dose hat zwei USB (max. 2,1A) Anschlüsse, die gemeinsam geschalten werden können und einen 230 V (max. 16A) Anschluss. WiFi 2,4 GHz wird unterstützt.
Dafür heißt es einmal einen Raspberry Pi herrichten. Zuerst einmal den Raspy per LAN Kabel verbinden und nicht mit WLAN. Dann die üblichen updates laden und git installieren
- sudo apt-get update
- sudo apt-get upgrade
- sudo apt-get install git
Dann das tuya-convert Projekt klonen und die Installationsprocedure starten
- sudo git clone https://github.com/ct-Open-Source/tuya-convert
- cd tuya-convert
- sudo ./install_prereq.sh
Jetzt einmal die WLAN Dose in den Initialisierungsmodus bringen. Bei erstmaligen Gebrauch einfach einstecken, sonst Einschalter länger drücken bis die blaue LED blink. Jetzt das flash Programm starten und tasmota aufspielen.
- sudo ./start_flash.sh
Wenn alles geklappt hat, dann dein Handy mit vtrust-flash verbinden und schon ist man auf der tasmota Seite. Dort dann alle Einstellungen für das WLAN, MQTT, etc. vornehmen.
Für die aktuelle Firmware zuerst immer die minimal Version einspielen und dann die Vollversion, derzeit 9.2: http://ota.tasmota.com/tasmota/release/
Folgende Templates habe ich verwendet. Für die „alten“, gekauft im Sommer 2020:
{„NAME“:“SP112alt“,“GPIO“:[57,145,56,146,0,22,0,0,0,0,21,0,17],“FLAG“:0,“BASE“:18}
für die neueren, gekauft im Herbst 2020 hat sich das geändert auf:
{„NAME“:“SP112new“,“GPIO“:[57,0,56,0,132,134,0,0,131,30,21,0,0],“FLAG“:4,“BASE“:18}
Um die Dose zu kalibrieren, kannst du in der Console folgendes eingeben:
savedata 1 # Kalibriermodus starten
PowerSet xx,yy # Leistungsaufnahme einstellen
VoltageSet xxx,yy # z.B.: Voltageset 236,4 Spann
savedata 0 # speichert Kalibrierung ab
Genaueres zu den MQTT Einstellungen findest du unter:
https://tasmota.github.io/docs/MQTT/
Eine brauchbare App fürs Handy ist die TasmotaControl App
Ein gutes Video ist:
Jetzt müssen wir die Dose noch per MQTT ins openHAB einbinden.
thing:
Bridge mqtt:broker:mosquitto "MQTT Broker mosquitto"
[host="localhost",port=1883,secure=false,clientID="openHAB2"]
{
Thing topic tasmota1 "Steckdose 1"{
Channels:
Type switch : t1Power "Power"
[stateTopic="stat/tasmota1/POWER1",
commandTopic="cmnd/tasmota1/POWER1",
transformationPattern="JSONPATH:$.POWER",
on="ON", off="OFF"]
Type switch : t1USB "USB"
[stateTopic="stat/tasmota1/POWER2",
commandTopic="cmnd/tasmota1/POWER2"]
Type string : t1Status "status"
[commandTopic="cmnd/tasmota1/Status"]
Type string : t1StatusModul "tasmota Modul"
[stateTopic="tele/tasmota1/INFO1",
transformationPattern="JSONPATH:$.Module"]
Type datetime : t1StatusZeit "Zeit"
[stateTopic="tele/tasmota1/SENSOR",
transformationPattern="JSONPATH:$.Time"]
Type string : t1Hostname "Hostname"
[stateTopic="stat/tasmota1/STATUS5",
transformationPattern="JSONPATH:$.StatusNET.Hostname"]
Type string : t1IP "IP Adresse"
[stateTopic="stat/tasmota1/STATUS5",
transformationPattern="JSONPATH:$.StatusNET.IPAddress"]
Type string : t1WiFiSSID "SSID"
[stateTopic="tele/tasmota1/STATE",
transformationPattern="JSONPATH:$.Wifi.SSId"]
Type string : t1WiFiRSSI "RSSI"
[stateTopic="tele/tasmota1/STATE",
transformationPattern="JSONPATH:$.Wifi.RSSI"]
Type string : t1WiFiSignal "Signal"
[stateTopic="tele/tasmota1/STATE",
transformationPattern="JSONPATH:$.Wifi.Signal"]
Type number : t1Powerload "Power load"
[stateTopic="tele/tasmota1/SENSOR",
transformationPattern="JSONPATH:$.ENERGY.Power"]
Type number : t1Voltage "Line voltage"
[stateTopic="tele/tasmota1/SENSOR",
transformationPattern="JSONPATH:$.ENERGY.Voltage"]
Type number : t1Current "Line current"
[stateTopic="tele/tasmota1/SENSOR",
transformationPattern="JSONPATH:$.ENERGY.Current"]
Type number : t1Total "Total energy today"
[stateTopic="tele/tasmota1/SENSOR",
transformationPattern="JSONPATH:$.ENERGY.Total"]
Type number : t1Today "Energy today"
[stateTopic="tele/tasmota1/SENSOR",
transformationPattern="JSONPATH:$.ENERGY.Today"]
Type number : t1Yesterday "Energy yesterday"
[stateTopic="tele/tasmota1/SENSOR",
transformationPattern="JSONPATH:$.ENERGY.Yesterday"]
}
items:
// Steckdose 1 tasmota1 gosund SP112
Switch t1Power "power" <switch>
{channel="mqtt:topic:mosquitto:tasmota1:t1Power"}
Switch t1USB "usb" <switch>
{channel="mqtt:topic:mosquitto:tasmota1:t1USB"}
Switch t1Config
{channel="mqtt:topic:mosquitto:tasmota1:t1Config"}
String t1StatusX
{channel="mqtt:topic:mosquitto:tasmota1:t1StatusX"}
String t1Status
{channel="mqtt:topic:mosquitto:tasmota1:t1Status" }
String t1Modul "tasmota Modul"
{channel="mqtt:topic:mosquitto:tasmota1:t1StatusModul" }
DateTime t1StatusZeit "Zeit"
{channel="mqtt:topic:mosquitto:tasmota1:t1StatusZeit" }
String t1Hostname "Hostname"
{channel="mqtt:topic:mosquitto:tasmota1:t1Hostname" }
String t1IP "IP"
{channel="mqtt:topic:mosquitto:tasmota1:t1IP" }
String t1WiFiSSID "SSID"
{channel="mqtt:topic:mosquitto:tasmota1:t1WiFiSSID" }
String t1WiFiRSSI "RSII"
{channel="mqtt:topic:mosquitto:tasmota1:t1WiFiRSSI" }
String t1WiFiSignal "Signal"
{channel="mqtt:topic:mosquitto:tasmota1:t1WiFiSignal" }
Number t1Powerload "Power load"
{channel="mqtt:topic:mosquitto:tasmota1:t1Powerload"}
Number t1Voltage "Line voltage"
{channel="mqtt:topic:mosquitto:tasmota1:t1Voltage"}
Number t1Current "Line current"
{channel="mqtt:topic:mosquitto:tasmota1:t1Current"}
Number t1Total "Energy total"
{channel="mqtt:topic:mosquitto:tasmota1:t1Total"}
Number t1Today "Energy today"
{channel="mqtt:topic:mosquitto:tasmota1:t1Today"}
Number t1Yesterday "Energy yesterday"
{channel="mqtt:topic:mosquitto:tasmota1:t1Yesterday"}
sitemap:
sitemap mqtt_devices label="MQTT devices Status"
Frame label="Settings" {
Text label="Steckdose 1" icon="settings" {
Frame label="tasmota 1"{
Switch item=t1Power label="Steckdose 1 Power []"
Switch item=t1USB label="Steckdose 1 USB []"
Switch item=t1Status label="Status" mappings=["1"="Stat 1", "3"="Stat 3", "5"="Stat 5"]
}
Frame label="settings"{
Text item=t1Modul icon="poweroutlet_eu"
Text item=t1StatusZeit
label="Zeit [%1$tA, %1$td.%1$tm.%1$tY %1$tH:%1$tM]"
icon="time"
Text item=t1Hostname
Text item=t1IP icon="network-on"
Text item=t1WiFiSSID icon="network"
Text item=t1WiFiRSSI icon="network"
Text item=t1WiFiSignal label="Signal[%s dBm]" icon="network"
}
Frame label="energy"{
Text item=t1Powerload label="Leistung [%s W]"
Text item=t1Voltage label="Spannung [%s V]"
Text item=t1Current label="Strom [%.3f A]"
Text item=t1Total label="Energy total [%.3f kWh]"
Text item=t1Today label="Energy heute [%.3f kWh]"
Text item=t1Yesterday label="Energy gestern [%.3f kWh]"
}
}