Rules: Triggern von nur einem Zustand innerhalb der ".map" Datei (IR Fernbedienung)
Verfasst: 4. Nov 2020 15:00
Hallo Zusammen,
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:
Die Items dazu:
Für das absetzten bestimmter IR-Befehle war eine Transformation im Zusammenspiel mit einer Rule notwendig:
Transform:
Rule:
Die Darstellung/ Befehlsausgabe über die Sitemap klappt wunderbar über ein "String dummy item", bei dem ich die entsprechenden Befehle per mapping definiere.
Sitemap:
Ich habe eine Rule zur Schaltung einer Szene in meinem Wohnzimmer. Hier werden verschiedene Geräte/ Steckdosen geschalte.
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:
Danke für die Unterstützung.
Gruß
Tom
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