Gosund EP2, Teckin 22, Tuya Geräte ohne China Cloud und ohne flashen
Nachdem man leider die “flashbaren” Wlan-Steckdosen von Gosund SP111 nicht mehr bei Amazon bekommt ist es schwierig diese in Home Assistant zu integrieren. Schließlich bin ich auf die Component “localtuya” gestoßen. Zwar braucht man trotzdem einmalig die Tuya-App für die Einrichtung, dannach ist man aber von der China-Cloud befreit. In meiner Firewall habe ich auch den Zugriff für die Tuya Geräte auf der Internet geblockt.
Um nun die notwendigen Device-Ids und Keys zu bekommen muss man zunächst einen Account auf https://iot.tuya.com anlegen.
Im Anschluss erzeugt man unter “Cloud Develoment” eine neue App.
Im Anschluss daran müsst ihr eine App unter “App Services –> App SDK” anlegen.
Zum Abschluss müsst ihr noch die App aus dem AppSDK in der App in Cloud Development hinzufügen. Eine detailierte Beschreibung gibt es hier.
Nachdem das soweit erledigt ist, und Ihr nun Access ID/Client ID und Access Secret habt, braucht ihr ein Linux System (beispielsweise eine Raspberry).
Aus dem System installiert ihr nun npm mit folgendem Befehl:
apt install -y npm
Sobald alles durch ist, müsst ihr die tuya-cli installieren. Dies macht ihr mit folgendem Command:
npm i @tuyapi/cli -g
Beachtet bitte Schritte 1-4 von Github.
Nun solltet ihr erfolgreich die Device-Id’s eurer Geräte ausgelesen haben.
Zum Schluss muss noch der Ordner custom_components/localtuya aus disem Git nach custom_components/localtuya in euer Home Assistant Konfiguration kopiert werden.
Mit dieser Konfiguration für Home Assistent kann man nun aus HA ohne die Tuya Cloud auf die Geräte zugreifen.
localtuya:
- host: 192.168.1.x
device_id: xxxxx
local_key: xxxxx
friendly_name: Tuya Device
protocol_version: "3.3"
entities:
- platform: binary_sensor
friendly_name: Plug Status
id: 1
device_class: power
state_on: "true" # Optional
state_off: "false" # Optional
- platform: cover
friendly_name: Device Cover
id: 2
open_close_cmds: ["on_off","open_close"] # Optional, default: "on_off"
positioning_mode: ["none","position","fake"] # Optional, default: "none"
currpos_dps: 3 # Optional, required only for "position" mode
setpos_dps: 4 # Optional, required only for "position" mode
span_time: 25 # Full movement time: Optional, required only for "fake" mode
- platform: fan
friendly_name: Device Fan
id: 3
- platform: light
friendly_name: Device Light
id: 4 # Usually 1 or 20
color_mode: 21 # Optional, usually 2 or 21, default: "none"
brightness: 22 # Optional, usually 3 or 22, default: "none"
color_temp: 23 # Optional, usually 4 or 23, default: "none"
color: 24 # Optional, usually 5 (RGB_HSV) or 24(HSV), default: "none"
brightness_lower: 29 # Optional, usually 0 or 29, default: 29
brightness_upper: 1000 # Optional, usually 255 or 1000, default: 1000
color_temp_min_kelvin: 2700 # Optional, default: 2700
color_temp_max_kelvin: 6500 # Optional, default: 6500
- platform: sensor
friendly_name: Plug Voltage
id: 20
scaling: 0.1 # Optional
device_class: voltage # Optional
unit_of_measurement: "V" # Optional
- platform: switch
friendly_name: Plug
id: 1
current: 18 # Optional
current_consumption: 19 # Optional
voltage: 20 # Optional