LED Beleuchtung mit Tasmota, AriLUX LC-01 / H801 und Bewegungsmelder HC-SR505
Eine indirekte Beleuchtung im Schlafzimmer soll über Bewegungsmelder ausgelöst werden.
Dies natürlich nur wenn es dunkel ist. Weiterhin mit einem sanften fade in/out.
Die Farbe, Helligkeit und andere Parameter sollen über das Smartphone gesteuert werden,
Der erste Lösungsansatz mit einem arduino und MySensors habe ich nicht stabil hinbekommen.
Mittlerweile ist mir klar, dass dies nicht an der MySensor Software liegt, aber an dem Zusammenspiel zwischen Funkmodul und Bewegungssensor.
Jedes mal wenn das Funkmodul aktiv wurde, kam der Bewegungsmelder aus dem Tritt und meldete eine Bewegung.
Alle Lösungsansätze dies in der Software abzufangen waren nicht zuverlässig.
Dann habe ich mit der Spannungsversorgung gespielt – auch ohne Erfolg.
Als auch Ferrit-Kerne das Problem nicht gelöst haben, war ich kurz davor aufzugeben.
Die Lösung: einen Kondensator direkt an den Chip des Bewegungsmelder löten (siehe hier).
“need to solder a 220nF ceramic capacitor across pin12 und pin13 of the chip (BISS0001) so that the high-frequency interference coming from the ESP8266 don’t influece the gain stage anymore.”
Seit dem habe ich keinen einzigen “Fehlalarm” mehr.
Weiterhin habe ich noch einen LDR in das HC-SR501 Modul eingebaut.
Anleitung siehe hier.
ESP-Modul
Als Hardware habe ich ein preiswertes Modul gefunden: ARILUX AL-LC01 Mini WIFI LED RGB Controller
Das kostet 6 EUR und basiert auf einem ESP8285.
Die Firmware habe ich sofort durch Tasmota ersetzt. Der Hersteller verwendet eine Cloud-Lösung. Sieht zwar schick aus, so etwas will ich aber nicht im Haus haben.
Der Bewegungsmelder wird mit GPIO4/D2 verbunden.
Falls die Farben vertauscht sind, wechselt man einfach die Zuordnung der PWM-Kanäle zu den drei GPIOs, die unten sichtbar sind.
Über die Konsole werden ein paar Parameter eingestellt:
[codesyntax lang=”php”]
Speed 7 SwitchTopic 0 Switchmode1 1 Switchmode3 1 TelePeriod 0 rule2 on switch3#state do backlog power1 1; ruletimer1 30; publish house/tele/led/PIR ON endon on rules#timer=1 do backlog power1 off; publish house/tele/led/PIR OFF endon rule3 on switch3#state do power1 off endon rule1 1 (activate rule1)
[/codesyntax]
Die Darstellung auf dem Smartphone sieht mit openHAB so aus:
sonoff.bridge
[codesyntax lang=”php”]
// bridge.things Bridge mqtt:broker:MqttPandora20 "MQTT Broker Pandora" @ "MQTT Pandora" [ host="192.168.1.20", port=1883, secure="AUTO", qos=0, retain=false, clientid="Oh2Mqtt2Thing20", keep_alive_time=30000, reconnect_time=60000, username="mqttusr20", password="mqttpass20" ]
[/codesyntax]
sonoff.things
[codesyntax lang=”php”]
Thing mqtt:topic:DG_Kim_LED_thg "Sonoff LED Kim" (mqtt:broker:MqttPandora20) @ "MQTT Pandora" { Channels: Type string : color "Color" [ commandTopic="house/cmnd/led/Color"] Type string : dimmer "Dimmer" [ commandTopic="house/cmnd/led/Dimmer"] Type string : fade "Fade" [ commandTopic="house/cmnd/led/Fade"] Type string : scheme "Fade" [ commandTopic="house/cmnd/led/Scheme"] Type string : speed "Speed" [ commandTopic="house/cmnd/led/Speed"] Type switch : Rule1Switch "Rule 1" [ stateTopic="house/stat/led/RESULT", transformationPattern="JSONPATH:$.Rule1",on="ON",off="OFF", commandTopic="house/cmnd/led/Rule1", on="1", off="0" ] Type switch : Rule1State "Rule 1" [ stateTopic="house/stat/led/RESULT", transformationPattern="JSONPATH:$.Rule1",on="ON",off="OFF"] Type switch : Rule2Switch "Rule 2" [ stateTopic="house/stat/led/RESULT", transformationPattern="JSONPATH:$.Rule2",on="ON",off="OFF", commandTopic="house/cmnd/led/Rule2", on="1", off="0" ] Type switch : Rule2State "Rule 2" [ stateTopic="house/stat/led/RESULT", transformationPattern="JSONPATH:$.Rule2",on="ON",off="OFF"] Type switch : Rule3Switch "Rule 3" [ stateTopic="house/stat/led/RESULT", transformationPattern="JSONPATH:$.Rule3",on="ON",off="OFF", commandTopic="house/cmnd/led/Rule3", on="1", off="0" ] Type switch : Rule3State "Rule 3" [ stateTopic="house/stat/led/RESULT", transformationPattern="JSONPATH:$.Rule3",on="ON",off="OFF"] Type switch : PowerSwitch "Power Switch 02" [ stateTopic="house/stat/led/POWER", commandTopic="house/cmnd/led/POWER", on="1", off="0" ] Type switch : PowerSwitchRes "Switch State 02" [ stateTopic="house/stat/led/RESULT", transformationPattern="JSONPATH:$.POWER",on="ON",off="OFF"] Type string : Version "Version 02" [ stateTopic="house/tele/led/INFO1", transformationPattern="JSONPATH:$.Version"] Type string : fallback "fallback topic" [ stateTopic="house/tele/led/INFO1", transformationPattern="JSONPATH:$.FallbackTopic"] Type string : hostname "hostname " [ stateTopic="house/tele/led/INFO2", transformationPattern="JSONPATH:$.Hostname"] Type string : IP "IP " [ stateTopic="house/tele/led/INFO2", transformationPattern="JSONPATH:$.IPAddress"] Type string : time "Time" [ stateTopic="house/tele/led/STATE", transformationPattern="JSONPATH:$.Time" ] Type string : uptime "Uptime" [ stateTopic="house/tele/led/STATE", transformationPattern="JSONPATH:$.Uptime" ] Type number : vcc "VCC" [ stateTopic="house/tele/led/STATE", transformationPattern="JSONPATH:$.Vcc" ] Type string : wifi-ap "Wifi AP" [ stateTopic="house/tele/led/STATE", transformationPattern="JSONPATH:$.Wifi.AP" ] Type string : wifi-ssid "Wifi SSID" [ stateTopic="house/tele/led/STATE", transformationPattern="JSONPATH:$.Wifi.SSId" ] Type string : wifi-channel "Wifi Channel" [ stateTopic="house/tele/led/STATE", transformationPattern="JSONPATH:$.Wifi.Channel" ] Type string : wifi-rssi "Wifi RSSI" [ stateTopic="house/tele/led/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI" ] Type string : devicestate "Device State" [ stateTopic="house/tele/led/LWT" ] } // end of thing
[/codesyntax]
sonoff.items
[codesyntax lang=”php”]
Color DG_KIM_LED_Color "Bed Color" <colorlight> String DG_KIM_LED_ColSel "LED Color Selection" (gSonoffSw1,gPersist) { channel="mqtt:topic:DG_Kim_LED_thg:color" } String DG_KIM_LED_ColorCMD "LED Color" (gSonoffSw1,gPersist) { channel="mqtt:topic:DG_Kim_LED_thg:color" } String DG_KIM_LED_Dimmer "LED Dimmer" (gSonoffSw1,gPersist) { channel="mqtt:topic:DG_Kim_LED_thg:dimmer" } String DG_KIM_LED_Fade "LED Fade" (gSonoffSw1,gPersist) { channel="mqtt:topic:DG_Kim_LED_thg:fade" } String DG_KIM_LED_Speed "LED Speed" (gSonoffSw1,gPersist) { channel="mqtt:topic:DG_Kim_LED_thg:speed" } Switch DG_KIM_LED_Switch "LED Switch 1" (gSonoffSw1,gPersist) { channel="mqtt:topic:DG_Kim_LED_thg:PowerSwitch" } Switch DG_KIM_LED_State "LED State 1" (gSonoffSw1,gPersist) { channel="mqtt:topic:DG_Kim_LED_thg:PowerSwitchRes"} String DG_KIM_LED_Uptime "LED Uptime" (gSonoffSw1Info) { channel="mqtt:topic:DG_Kim_LED_thg:uptime" } Switch DG_KIM_LED_Rule1Switch "LED Rule 1" (gSonoffSw1,gPersist) { channel="mqtt:topic:DG_Kim_LED_thg:Rule1Switch" } Switch DG_KIM_LED_Rule1State "LED Rule 1" (gSonoffSw1,gPersist) { channel="mqtt:topic:DG_Kim_LED_thg:Rule1State"} Switch DG_KIM_LED_Rule2Switch "LED Rule 2" (gSonoffSw1,gPersist) { channel="mqtt:topic:DG_Kim_LED_thg:Rule2Switch" } Switch DG_KIM_LED_Rule2State "LED Rule 2" (gSonoffSw1,gPersist) { channel="mqtt:topic:DG_Kim_LED_thg:Rule2State"} Switch DG_KIM_LED_Rule3Switch "LED Rule 3" (gSonoffSw1,gPersist) { channel="mqtt:topic:DG_Kim_LED_thg:Rule3Switch" } Switch DG_KIM_LED_Rule3State "LED Rule 3" (gSonoffSw1,gPersist) { channel="mqtt:topic:DG_Kim_LED_thg:Rule3State"} Switch DG_KIM_LED_PirSwitch "PIR on/off" (gSonoffSw1,gPersist)
[/codesyntax]
sonoff.rules
[codesyntax lang=”php”]
sonoff.sitemap
Alternative
Programmierung / Flashing tasmota firmware
Anschluss des Sensors
H801RGB LED Strip WiFi Controller
- Schraubklemmen statt Steckverbindung
- MOSFETs können größeren Strom schalten
- 5 Kanäle: RGBWW
Hi,
wie genau funktioniert das mit dem Faden in deinem Setup?
Schöne Grüße,
Benny
Hi Benjamin,
In Tasmota gibt es das Kommando “Speed”.
Speed 0 = kein fading
Gruß,
Thomas
Hallo,
ich habe einen gleichen Chip.
Das ganze habe ich mit Tasmota-DE geflasht, allerdings wird kein HotSpot erstellt, an welchem ich Tasmota in mein WLan anbinden könnte.
Weißt du, was ich falsch gemacht haben könnte?
Brauche ich ein bestimmtes Tasmota-Building?
Hallo Vincent,
das ist mir bei einem Modul auch schon einmal passiert.
Installiere mal die minimale Version (tasmota-minimal.bin) von https://github.com/arendst/Tasmota/releases und danach erneut die andere Version.
Alternativ über das esp-Tool komplett löschen: esptool -cp COM9 -cb 115200 -ce -v
Gruß,
Thomas
Hallo,
hab das mit dem H801 auch mal getestet.
Geflasht hab ich mit tasmota.sensors.
Zunächst hatte ich auch das Problem, dass Tasmota kein eigenes WLAN aufgebaut hat. Die Lösung bei mir war: den USB-Treiber abgesteckt und den H801 direkt über ein 12V-Netzteil mit Spannung versorgt (über die Schraubklemme) und dann war sofort das Tasmota-Netz aufgespannt.
Jetzt bin ich allerdings auf der Suche nach den richtigen Kommandos, die ich im Browser eingeben muss. Es beginnt vermutlich mit der IP-Adresse und dann?
Bei einem Wemos-Projekt mit Tasmota schaut ein Kommando bei mir z.B. so aus:
http://192.168.178.56/cm?cmnd= gefolgt von dem eigentlichen Befehl, den ich direkt über die Konsole eingeben müsste.
Kann mir jemand sagen, wie der Konsolenbefehl hierbei aussehen müsste?
Bin für jede Hilfe dankbar.
Hallo,
über http geht es wie folgt:
Beispiel cmd On http://192.168.178.56/cm?cmnd=Power%20on
Hallo, ist es möglich anstatt des PIR Moduls auch Taster zum ein/ausschalten zu verwenden?
Am besten natürlich mit der Möglichkeit auch über Taster zu Dimmen?
Also z.b. 2 Taster
Taster 1: kurz = Aus, lang = dunkler
Taster 2: kurz = ein (letzte Helligkeit), lang = heller
Hallo Benny, das sollte möglich sein nur habe ich selber dies noch nicht gemacht. Auf einen freien GPIO muss ein virtuelles Relais gelegt werden. Dann muss der SwitchMode auf 4 gesetzt werden, damit ein langer Tastendruck überhaupt erkannt wird. In der Regel bit dann ButtonState den Wert 3 für einen langen Tastendruck (default 4s) zurück. Einschalten bei Tasmota geht auf den letzten Wert bzgl. Helligkeit und Farbe.