NEWS
Broadlink im iobroker <-> Rückmeldung CCU ?
-
Hallo zusammen,
ich habe einen Broadlink RM-Pro+ mit dem Broadlink-Adapter in meinen iobroker eingebunden.
Damit habe ich eine IR-Fernbedienung eines Deckenventilators eingelesen. Dieser kann Stufe 0/1/2/3 und hat noch ein Licht (an/aus) - vgl hier:Wenn ich im ioBroker neben den Objekten auf "simuliere Tastendruck" drücke, dann funktioniert alles wie geplant.
Nun ist mein Ziel diese "Buttons" als CUXd-Geräte mit der CCU zu synchronisieren.
Ich möchte damit erreichen, dass ich a) Alexa nutzen kann (über CloudMatic) und b) dass ich auch vom iphone via HM-Pocketcontrol den Deckenventilator steuern kann.Ich vermute ich muss mich da in Node-Red einleren oder was habt ihr da für Ideen?
Liebe Grüße aus Köngen
Andi -
@tr1plx sagte:
was habt ihr da für Ideen?
2 Systemvariablen auf der CCU:
- Logikwert für Licht
- Werteliste (0 ... 3) für Stufe
Javascript zum Wandeln der Werte der SV in einen Tastendruck für Broadlink.
// IDs anpassen ! const idLicht = 'hm-rega.0...'; const idStufe = 'hm-rega.0...'; on(idLicht, function(dp) { if(dp.state.val) setState('broadlink2.0...', true); // Licht an else setState('broadlink2.0...', true); // Licht aus }); on(idStufe, function(dp) { if(dp.state.val == 1) setState('broadlink2.0...', true); // Stufe 1 else if(dp.state.val == 2) setState('broadlink2.0...', true); // Stufe 2 else if(dp.state.val == 3) setState('broadlink2.0...', true); // Stufe 3 else setState('broadlink2.0...', true); // Aus });
-
Vielen lieben Dank. Funktioniert perfekt. Das fertige Skript sieht nun so aus:
// Script - Deckenventilator über CCU/CloudMatic/Pocketcontrol // Forum-Thread: https://forum.iobroker.net/topic/36138/broadlink-im-iobroker-r%C3%BCckmeldung-ccu/2 // const idLicht = 'hm-rega.0.21674'/*Deckenventilator Licht*/; const idStufe = 'hm-rega.0.21675'/*Deckenventilator Stufe*/; on(idLicht, function(dp) { if(dp.state.val) setState('broadlink2.0.RM:RMPROPLUS-00-b8-e2.L.Deckenventilator Licht an'/*Deckenventilator Licht an*/, true); // Licht an else setState('broadlink2.0.RM:RMPROPLUS-00-b8-e2.L.Deckenventilator Licht aus'/*Deckenventilator Licht aus*/, true); // Licht aus }); on(idStufe, function(dp) { if(dp.state.val == 1) setState('broadlink2.0.RM:RMPROPLUS-00-b8-e2.L.Deckenventilator Stufe 1'/*Deckenventilator Stufe 1*/, true); // Stufe 1 else if(dp.state.val == 2) setState('broadlink2.0.RM:RMPROPLUS-00-b8-e2.L.Deckenventilator Stufe 2'/*Deckenventilator Stufe 2*/, true); // Stufe 2 else if(dp.state.val == 3) setState('broadlink2.0.RM:RMPROPLUS-00-b8-e2.L.Deckenventilator Stufe 3'/*Deckenventilator Stufe 3*/, true); // Stufe 3 else setState('broadlink2.0.RM:RMPROPLUS-00-b8-e2.L.Deckenventilator aus'/*Deckenventilator aus*/, true); // Aus });
Die Anbindung an CloudMatic und damit an Alexa funktioniert für die Variable "Deckenventilator Licht", weil sie boolean ist (true/false). Damit lässt sich also schon mal das Licht mit "Alexa, schalte Deckenventilator Licht ein/aus" schalten.
Die Variable Deckenventilator Stufe taucht nicht auf, weil sie die Werteliste 0-3 enthält - ich habe mir hier mit einem Trick beholfen:
Auf der CCU 4 Programme angelegt:
Die anderen Stufen analog.
Nun kann man sagen "Alexa, schalte Deckenventilator Stufe 3 an" und die Systemvariable wird entsprechend befüllt.
Da man beim Ausschalten (Stufe 0) aber nicht sagen will "Alexa, schalte Deckenventilator Stufe 0 ein" habe ich den Namen nur Deckenventilator genannt. So wird das Programm auch getriggert, wenn ich nun sage "Alexa, schalte Deckenventilator aus"Das wäre evtl. eleganter gegangen, aber ich bin nun am Ziel und alles funktioniert
Vielen Dank nochmal für die Hilfe