ich komme bei folgender Fragestellung leider nicht auf eine Lösung/ Umweg, bzw. ist meine Suche in der Foren vielleicht falsch:
Triggern eines bestimmten Transfomationzustands durch eine Rule
Hintergrund:
Ich habe mir mittels eines WEMOS (ESP8266) eine Infrarot Fernbedienung für meine TV Geräte gebaut. Angesteuert wird der WEMOS über MQTT.
Folgendes Setting war notwendig:
Things:
Code: Alles auswählen
Thing topic Wemos_2 "IR" {
Channels:
Type string : ircode "IR Test" [ commandTopic="IR_Control_1/cmd" ]
Type number : reachable "IR Wifi Signal" [ stateTopic="IR_Control_1/status/LWT" ]
}
Code: Alles auswählen
String IR_Control "IR Control" (gIR_Control) {channel="mqtt:topic:mosquitto:Wemos_2:ircode"}
String Test_String "Test String"
Transform:
Code: Alles auswählen
0=IRSEND,NEC,0x400501FE,32
1=IRSEND,NEC,0x400510EF,32
2=IRSEND,NEC,0x400557A8,32
3=IRSEND,NEC,0x400550AF,32
4=IRSEND,NEC,0x4005708F,32
5=IRSEND,NEC,0x400556A9,32
6=IRSEND,NEC,0x400555AA,32
7=IRSEND,NEC,0x400520DF,32
8=IRSEND,NEC,0x400541BE,32
9=IRSEND,NEC,0x400530CF,32
10=IRSEND,NEC,0x400531CE,32
11=IRSEND,NEC,0x400540BF,32
12=IRSEND,NEC,0x400542BD,32
13=IRSEND,NEC,0x4005807F,32
Code: Alles auswählen
// IR Control (WEMOS)
rule "proxy IR mqtt"
when
Item Test_String received command
then
IR_Control.sendCommand(transform("MAP", "ircodes.map", receivedCommand.toString))
end
Sitemap:
Code: Alles auswählen
Frame label="Logitech Z906" icon="sound" {
Text item=Test_String
Switch item=Test_String mappings=[0="Power"] label=""
Switch item=Test_String mappings=[1="Input"] label=""
Switch item=Test_String mappings=[2="Mute"] label=""
Switch item=Test_String mappings=[3="Level"] label=""
Switch item=Test_String mappings=[4="Effect"] label=""
Switch item=Test_String mappings=[5="Volume -"] label=""
Switch item=Test_String mappings=[6="Volume +"] label=""
Switch item=Test_String mappings=[7="Input 1",8="Musik",9="TV",10="Input 4",11="Input 5"] label=""
}
Kann ich in diese Rule einen Befehl einbauen, dass wenn die Rule geschaltet wird, nur ein bestimmter Befehlt aus der Tranformation Map über das Item an den WEMOS gesendet wird?
Benötige ich für jeden Befehl eine eigene .map oder verschiedenen Dummy Items, wobei hier das Problem wäre, dass doch alle Dummys aktuell auf die gleiche .map zugreifen würden?
Hier noch die Rule:
Code: Alles auswählen
rule "Szene TV"
when
Item Szene_TV changed from OFF to ON // Schalter zum aktivieren der Szene
then
WZ_TVLampe.sendCommand(ON)
ShellyPlugS_7A35C0_Power.sendCommand(ON) //Fernseher
// !!!! XXXXXX Befehl zum einschalten der Anlage über IR (Mapping des Stings = 0="POWER")
Szene_TV.sendCommand(OFF) // Wiederausschalten des Szenenswitchs
end
Gruß
Tom