Facebook
From Riza Aslan, 3 Years ago, written in JavaScript.
Embed
Download Paste or View Raw
Hits: 68
  1. Things:
  2. //Wohnzimmer Infrarot Bridge
  3.         Thing topic WohnzimmerInfrarot "Wohnzimmer Infrarot" @ "Wohnzimmer"
  4.         {
  5.                         Type string : Receive                                                   "Wohnzimmer IR Empfänger"                      [ stateTopic = "tele/wohnzimmer-ir/RESULT", transformationPattern = "JSONPATH:$.IrReceived.DataLSB" ]
  6.                         Type string : Send                                                      "Wohnzimmer IR Sender"                          [ commandTopic = "cmnd/wohnzimmer-ir/IRSend" ]
  7.         }
  8.  
  9. Items:
  10. String      Wohnzimmer_IR_Command           "Wohnzimmer IR Befehl"
  11. String      Wohnzimmer_IR_Empfaenger        "Wohnzimmer IR Empfänger"       (gWohnzimmer)                                                   { channel="mqtt:topic:mosquitto:WohnzimmerInfrarot:Receive" }
  12. String      Wohnzimmer_IR_Sender            "Wohnzimmer IR Sender"          (gWohnzimmer)                                                   { channel="mqtt:topic:mosquitto:WohnzimmerInfrarot:Send" }
  13.  
  14. Rules:
  15. rule "Wohnzimmer IR Bridge - Sende Befehle"
  16. when
  17.         Item Wohnzimmer_IR_Command received update
  18. then
  19.         switch Wohnzimmer_IR_Command.state {
  20.                 case "TV-ON": {
  21.                         Wohnzimmer_IR_Sender.sendCommand(ON)
  22.                 }
  23.                 case "TV-OFF": {
  24.                         Wohnzimmer_IR_Sender.sendCommand(ON)
  25.                 }
  26.                 case "Sound-Optical": {
  27.                         Wohnzimmer_IR_Sender.sendCommand("{\"Protocol\":\"RC6\",\"Bits\":20,\"Data\":\"0x11087\",\"DataLSB\":\"0x8008E1\",\"Repeat\":0}")
  28.                 }
  29.                 case "Sound-ONOFF": {
  30.                         Wohnzimmer_IR_Sender.sendCommand("{\"Protocol\":\"RC6\",\"Bits\":20,\"Data\":\"0x0100C\",\"DataLSB\":\"0x00830\",\"Repeat\":0}")
  31.                 }
  32.                 case "Krankheit": {
  33.                 }
  34.                 case "Urlaub": {
  35.                 }
  36.                 case "AUS": {
  37.                 }
  38.                 default : { logError("Fehler", "Kein Case erkannt") }
  39.         }
  40. end
  41.  
  42. rule "Wohnzimmer IR Bridge - Übersetzung"
  43. when
  44.         Item Wohnzimmer_IR_Empfaenger changed
  45. then
  46.         switch Wohnzimmer_IR_Empfaenger.state {
  47.                 //"{\"IrReceived\":{\"Protocol\":\"NEC\",\"Bits\":32,\"Data\":\"0x5EA1B847\",\"DataLSB\":\"0x7A851DE2\",\"Repeat\":0}
  48.                 //Chromecast Input Button
  49.                 case "0x7A851DE2": {
  50.                         //Wohnzimmer_IR_Sender.sendCommand("{\"Protocol\":\"UNKNOWN\",\"Bits\":6,\"Hash\":\"0x32C15C0D\",\"Repeat\":0}")
  51.                         Wohnzimmer_IR_Sender.sendCommand("{\"Protocol\":\"RC6\",\"Bits\":20,\"Data\":\"0x11087\",\"DataLSB\":\"0x8008E1\",\"Repeat\":0}")
  52.                 }
  53.                 //Wohnzimmer Ein/Aus Schalter
  54.                 case "0x04FB08F7": {
  55.                         Wohnzimmer_IR_Sender.sendCommand("{\"Protocol\":\"UNKNOWN\",\"Bits\":4,\"Hash\":\"0x1410D337\",\"Repeat\":0}")
  56.                 }
  57.         }
  58. end