
Hallo liebe Freunde
Ich werde hier vorstellen, wie man einen auf TuyaMCU basierenden Dimmer auf meiner Plattform OpenBeken betreiben und ihn mit Home Assistant verbinden kann. OpenBeken ist eine alternative Open-Source-Software für IoT-Geräte und bietet z. B. Unabhängigkeit von der Cloud des Herstellers, Kompatibilität mit vielen Ökosystemen, Konfigurierbarkeit und Unterstützung verschiedener Plattformen, z. B. BK7231T, BK7231N, XR809 und BL602.
Thema zu BL602: Tasmota-Ersatz für BL602 – Programmierung, Kopplung mit Home Assistant.
Was ist TuyaMCU? TuyaMCU ist ein Mikrocontroller-Kommunikationsprotokoll mit einem Wi-Fi-Modul, das in Tuya-Produkten verwendet wird:


Der Kauf eines Dimmers
Ich habe das Produkt vor einiger Zeit gekauft. Ich habe es gefunden unter MoesHouse DIY Smart WiFi Light LED Dimmer Switch Smart Life/Tuya APP Remote Control 1 Way Switch Works With Alexa Google Home - 1pcs. Mittlerweile ist der Preis wohl etwas gestiegen, man kann es aber auch auf diversen Portalen günstiger finden:

Die maximale Lichtleistung dieses Dimmers beträgt 150 W. Der WLAN-Standard ist 2,4 GHz 802.11 b/g/n. Es funktioniert mit Tuya Smart/Smart Life-Anwendungen. Seine Größe beträgt 51x46x22 mm.

Das Set enthält außerdem eine Anleitung:






Das Innere des Dimmers
Jetzt ist es an der Zeit, nach innen zu schauen.
Die Abdeckung lässt sich wirklich leicht entfernen.
Hier wird die Fotogalerie etwas anders sein, da ich auch den gleichen Dimmer habe, der beschädigt ist. Ich habe ihn von einem unserer Benutzer bekommen, also werde ich beide zeigen.




Zwei Dimmer nebeneinander, funktionsfähig und beschädigt:


Was befindet sich im Dimmer? Zunächst einmal das WB2S Wi-Fi-Modul + Holtek HT66F3195 Mikrocontroller. Sie kommunizieren über UART.

Sie werden vom BP2525 (transformatorloses Netzteil) gespeist, und daneben befindet sich die gesamte Schaltung zum Dimmer (S3M-Gleichrichterdioden), ein Optokoppler zur Erkennung des Sinuszyklus, ein nicht gekennzeichneter Controller-Schaltkreis und... SIF12N65F. Anfangs habe ich hier einen Triac erwartet, aber das ist ein MOSFET mit N-Kanal (Vds=650V, RdsOn=0,6Ohm, Id=12A). Dies erklärt die vier Gleichrichterdioden. Dieser Dimmer richtet offenbar die Netzspannung gleich und wandelt sie dann mit einem Transistor um.
Programmieren von WB2S
Ich habe die Programmierung gemäß den vorherigen Themen der Serie mit bkWriter 1.60 durchgeführt.
Ich habe WB2S mit Flussmittel und Entlötlitze von der Platine abgelötet. Das ist viel bequemer und es besteht die Gewissheit, dass nichts auf der RX/TX-Leitung das Hochladen des Batchs stört.





Dann kann man OBK gemäß diesem Thema ausführen:
Qiachip Smart Switch BK7231N/CB2S – Innenansicht, Programmierung
Konfiguration von OpenBeken
Nach der Grundkonfiguration, die ich in den vorherigen Themen der Serie besprochen habe, sollte man ein Startskript vorbereiten (eine Datei namens autorun.bat mit folgendem Inhalt):
Code: text
Und es im App-Bereich in das OBK-Dateisystem einstellen:

Dieses Skript wird ausgeführt, nachdem das Gerät gestartet wurde. Nach dem Einstellen selbst wird es nicht ausgeführt, man muß es manuell neu starten (z. B. mit der Schaltfläche im WWW-Panel).
Nach dem Hochladen:

Bedeutung der einzelnen Befehle:
- startDriver TuyaMCU – startet den TuyaMCU-Treiber
- setChannelType 1 toggle – setzt den Typ von Kanal Nummer 1 auf Ein/Aus
- setChannelType 2 dimmer – setzt den Typ von Kanal Nummer 2 auf Dimmer
- tuyaMcu_setDimmerRange 0 1000 – legt den Bereich der TuyaMCU-Dimmerwerte fest (für GUI liegt er immer zwischen 0 und 100, in 0 bis 1000 wird er nur für MCU konvertiert)
- linkTuyaMCUOutputToChannel 1 bool 1 – verbindet dpID Nummer 1 von TuyaMCU mit Kanal Nummer 1 vom Typ bool
- linkTuyaMCUOutputToChannel 2 val 2 – verbindet dpID Nummer 2 TuyaMCU mit Kanal Nummer 2 des Werttyps
Die dpID-Werte können für verschiedene Gerätetypen unterschiedlich sein. Wenn wir Unterstützung für etwas Neues hinzufügen möchten, müssen wir es kennenlernen, z. B. durch Abhören von Paketen. Die dpID-Werte können auch den Beschreibungen von für Tasmota vorgesehenen Geräten entnommen werden, da Tuya oft nur das WLAN-Modul ändert und der Rest gleich bleibt.
Nach dem Neustart haben wir im OpenBK-Panel einen separaten Schalter und Dimmer:

So sehen die verschiedenen Helligkeitsstufen aus:




Und wie funktioniert der Schalter?
Oberflächlich betrachtet könnte man meinen, dass der Schalter von OpenBeken nicht unterstützt wird. Aber nichts ist mehr falsch!
Bei diesem Produkt schließen wir den Schalter an TuyaMCU an, nicht an WiFi-Modul. Der Schalter wird von TuyaMCU unterstützt. Wir haben alles bereit. Wir verbinden den Schalter mit dem entsprechenden Pin (S für Schalter):

Es können sowohl bistabile als auch monostabile Systeme verwendet werden. Der Schalter funktioniert so, dass nach dem Einschalten die Helligkeit schrittweise ansteigt und wir durch einfaches erneutes Umschalten die gewünschte Stufe auswählen können. Wenn die Lampe hingegen bereits eingeschaltet ist, wird sie durch schnelles Ein- und Ausschalten des Schalters vollständig ausgeschaltet. All dies übernimmt der HT66F3195.
Home Assistant-Unterstützung
Dank der automatischen Zuordnung von OpenBeken-Kanälen zu TuyaMCU-Variablen ist die Kopplung mit Home Assistant sehr einfach. Der TuyaMCU-Dimmer wird auf der HA-Ebene auf die gleiche Weise wie ein normaler PWM-Dimmer betrieben. Hier ist ein Beispiel für einen Yaml-Code:
Code: yaml
Wir haben hier zwei getrennte Kanäle – einer bestimmt den Zustand des Geräts (Ein/Aus), der andere die Helligkeitsstufe.
Endtest der Applikation:
Endtest des Schalters:
Was sieht man in den Filmen? Zunächst einmal die Animation zum schrittweisen Verschieben der Helligkeitsstufe, die vom Holtek-Chip stammt und nicht verändert werden kann. Aus diesem Grund "springt" der Schieberegler im Home Assistant so sehr.
Außerdem kommt es zu einer leichten Verzögerung bei der Statusmeldung, aber das ist normal.
Unterstützung von Skripten und Befehlen über HTTP
OpenBeken unterstützt das Senden von Befehlen im Tasmota-Stil über das sogenannte "Tasmota HTTP". Man kann sie sogar über einen normalen Browser versenden.
Dieser Befehl schaltet die Lampe auf volle Helligkeit ein:
http://192.168.0.115/cm?cmnd=backlog%20setChannel%201%201;%20setChannel%202%20100
Dieser hier auf 50 % Helligkeit:
http://192.168.0.115/cm?cmnd=backlog%20setChannel%201%201;%20setChannel%202%2050
Dieser schaltet sie nach 5 Sekunden aus:
http://192.168.0.115/cm?cmnd=addRepeatingEvent%205%201%20setChannel%201%200
(Syntax addRepeatingEvent: Wiederholungszeitraum, Anzahl der Wiederholungen, Befehl)
Es gibt auch Befehle, z. B. das Addieren eines Wertes zum aktuellen Helligkeitswert, aber dazu ein anderes Mal.
Zusammenfassung
Es sieht so aus, als ob TuyaMCU bereits stark unterstützt wird. Alles funktioniert vernünftig mit MQTT und Home Assistant (zusammen mit Hin- und Her-Kommunikation und Statusaktualisierungen) und ermöglicht sogar das Skripten einfacher Automatisierungen innerhalb von OpenBeken selbst.
Bald werde ich weitere Geräte mit TuyaMCU testen und auch weitere Möglichkeiten für den Befehlsinterpreter hinzufügen (Möglichkeit, einfache Skripte auszuführen).
Cool? DIY-Rangliste