Viele von Euch haben die bunten billig LED-Stripes, sei es für Glasbodenbeleuchtung, Vitrinenbeleuchtung, Kellerbar oder Regalbeleuchtung. Ein kleines Problem sehe ich, das zum Ein- und Ausschalten oder Farbveränderung des Stripes immer die mitgelieferte Infrarot-Fernbedienung verwendet werden muss, welche eine geringe Reichweite hat und punktgenau auf dem Empfänger gehalten werden muss. Mich nervt, das es sich hier um eine Insellösung handelt und wieder eine zusätzliche Fernbedienung auf dem Tisch liegt. Ebenfalls passen sich die Stripes nicht automatisch an, wenn man mehrere Stripes oder bunte Lampen in Verwendung hat.
Wäre es nicht schön, wenn man diese Stripes zentral steuern könnte mit dem Smartphone oder automatisiert mit FHem? Oder schalten mit Alexa?
Genau das bespreche ich in diesem Blog-Beitag.
Hier die Zutaten-Liste:
Software:
Fhem
Tasmota
- Hardware
LED-Stripe mit Infrarot-Fernbedienung. Ich verwende hier die BASON LED Glasbodenbeleuchtung (->amazon-affili) fürEUR 24,96.
- IR-Sender und IR-Empfänger, wobei der IR-Empfänger nur zum einmaligem Auslesen der IR-Codes verwendet wird. Ich habe dafür diese IR Infrarot-Empfänger-Sensor-Modul für
EUR 11,04 in Verwendung.
Witty Board, siehe Blogbeitrag. Ein normaler Wemos ist auch möglich. Beim Witty-Board muss aber nicht gelötet werden. - Jumper-Cable Female to Female
- Gehäuse: Thingiverse 2x
Vorgehensweise:
Flashen von Tasmota auf dem Witty-Board. Das zeige ich nicht, gibt es 100 Howtos im Internet.
Konfiguration von Tasmota:
dann mqtt konfigurieren (ip, topic usw.)
Verbinden der Hardware:
Wie im Screenshot gezeigt.
Einlesen der IR – Fernbedienung und Ablesen des jeweiligen Codes (on off rot grün usw.)
Das mache ich auf der Tasmota-Konsole.
Hier den Dezimalwert des Data-Werte für die jeweilige Taste herausschreiben
In Fhem:
Einen Dummy erstellen und notifies bauen. die abgelesenen codes dort eintragen.
defmod IR_Sender dummy
attr IR_Sender readingList brightness power color
attr IR_Sender room 30_Wohnzimmer
attr IR_Sender setList brightness:up,down power:on,off color:red,green,blue,white effects:flash,strobe,fade,smooth
defmod IR_sender_notify_1 notify IR_Sender:.* { \
my $ircode="";;\
if ($EVTPART1 eq "on") {\
$ircode="16761150";;\
}\
elsif ($EVTPART1 eq "off") {\
$ircode="16728510";;\
}\
elsif ($EVTPART1 eq "up") {\
$ircode="16712190";;\
}\
elsif ($EVTPART1 eq "down") {\
$ircode="16744830";;\
}\
elsif ($EVTPART1 eq "red") {\
$ircode="16720350";;\
}\
elsif ($EVTPART1 eq "green") {\
$ircode="16752990";;\
}\
elsif ($EVTPART1 eq "blue") {\
$ircode="16736670";;\
}\
elsif ($EVTPART1 eq "white") {\
$ircode="16769310";;\
}\
elsif ($EVTPART1 eq "flash") {\
system "mosquitto_pub -h 192\.168\.178\.67 -t cmnd/sonoff-irsendrec/IRsend -m \'\{\"protocol\": \"NEC\",\"bits\": 32, \"data\": 16728510\}\' ";;\
}\
elsif ($EVTPART1 eq "strobe") {\
system "mosquitto_pub -h 192\.168\.178\.67 -t cmnd/sonoff-irsendrec/IRsend -m \'\{\"protocol\": \"NEC\",\"bits\": 32, \"data\": 16728510\}\' ";;\
}\
elsif ($EVTPART1 eq "fade") {\
system "mosquitto_pub -h 192\.168\.178\.67 -t cmnd/sonoff-irsendrec/IRsend -m \'\{\"protocol\": \"NEC\",\"bits\": 32, \"data\": 16728510\}\' ";;\
}\
elsif ($EVTPART1 eq "smooth") {\
system "mosquitto_pub -h 192\.168\.178\.67 -t cmnd/sonoff-irsendrec/IRsend -m \'\{\"protocol\": \"NEC\",\"bits\": 32, \"data\": 16728510\}\' ";;\
}\
\
system "mosquitto_pub -h 192\.168\.178\.67 -t cmnd/sonoff-irsendrec/IRsend -m \'\{\"protocol\": \"NEC\",\"bits\": 32, \"data\": " . $ircode ."\}\' ";;\
\
Log3($NAME, 2, "IR-Signal funktion: " . $EVTPART1 . " code:" . $ircode);;\
\
}
ergebis
mqtt-device
defmod IR_Receiver MQTT_DEVICE
attr IR_Receiver IODev MyBroker
attr IR_Receiver room MQTT
attr IR_Receiver stateFormat received: IrReceived_Data
attr IR_Receiver subscribeReading_INFO1 tele/sonoff-irsendrec/INFO1
attr IR_Receiver subscribeReading_INFO2 tele/sonoff-irsendrec/INFO2
attr IR_Receiver subscribeReading_INFO3 tele/sonoff-irsendrec/INFO3
attr IR_Receiver subscribeReading_RESULT tele/sonoff-irsendrec/RESULT
attr IR_Receiver subscribeReading_SENSOR tele/sonoff-irsendrec/SENSOR
attr IR_Receiver subscribeReading_STATE tele/sonoff-irsendrec/STATE
defmod ejIR_Receiver expandJSON IR_Receiver.*:.*:.{.*}
Und wie gehts weiter?
Seid Kreativ! Der Witty hat einen LDR an Board, so könnte man bei einbrechender Dunkelheit das Stripe einschalten.
Oder:
Wenn ihr mehrere bunte Lampen habt, wie z.B die Hue, könnt ihr via Notify die Farbe passend zur Hue-Lampe anpassen.
Oder:
Wenn die Schrankbeleuchtung eingeschaltet wird, wird der Stripe auch direkt ein- bzw ausgeschaltet.
defmod VitrineBunt_DOIF DOIF ( ([VitrineWeisslicht] eq "ON") and ([?rgr_Residents] eq "zuhause") ) \
(set IR_Sender power on)\
DOELSEIF ([VitrineWeisslicht] eq "OFF")\
(set IR_Sender power off)\
Das wäre es eigentlich. Bei Fragen, ab in die Kommentare.
Wenn ich Euch Tasmota flashen soll, für 11 Euro inkl. Versand seit ihr dabei.