Jak ovládat zařízení na dálkový ovladač z Openhabu
Jak ovládat zařízení na dálkový ovladač z Openhabu pomocí wifi univerzálního ovladače Broadlink RM3 mini
Tutoriál a bindings pro Openhab od Cato_Sognen
https://github.com/mgwoj/org.openhab.binding.broadlink
https://community.openhab.org/t/broadlink-binding-for-rmx-a1-spx-and-mp-any-interest/22768/56?u=x-ray181
Přejděte na položku Paper UI in the Add-ons->Transformation nainstalujte Map Transformation, pokud ho ještě nemáte.
Stáhněte Broadlink bindings. Můžete stáhnout zde nebo najít v odkazu nahoře na community openhab.
Přesuňte soubor jar do openhab\addons\
Vyhledat v PaperUI-> Inbox pro Broadlink (pokud Broadlink binding nevidíte, zkuste restartovat službu Openhab)
V Inboxu by se měla objevit nová věc. Přidejte ji jako věc.
Nyní konfigurace věci:
„Pro každé zařízení je nutné zadat společný ověřovací klíč a parametr IV.
Ty byly získány a sdíleny někým, kdo hacknul protokol a tak nemohu tyto dvě položky zveřejnit.
Pokud tyto dva nemáte, Google je vaším přítelem.
Obě je třeba zadat ve formátu hex string vynecháním 0x.
Například pokud je klíč něco jako 0x09, 0x76, 0x28 … zadáte to jako 097628 … Jakmile budete hotovi, měli byste mít dva hexadecimální řetězce, každý s délkou 32 znaků. „
link for the Key and IV parameter
zde také vložte broadlink.map to bude soubor obsahující všechny vaše IR kódy.
vytvořte novou položku v souboru items (openhab\items\default.items)
String name_of_your_item "Shown_name" (group_if_wanted) { channel="your_thing _channel:command" }
zde můžete nalézt thing channel
příklad:
String IR_CONTROL "IR Control" (IR_Control_group) { channel="broadlink:rm3:78-0f-77-5a-c7-04:command" }
Nyní můžeme začít broadlink učit kódy a přidat je do broadlink.map file (openhab\transform\broadlink.map)
nejprve nainstalujte aplikaci pro Android (RM Bridge), která vytvoří most do sítě, kde váš dálkový ovladač je. zde
jděte na http://rm-bridge.fun2code.de/rm_manage/code_learning.html
vložte adresu IP a port zobrazený v aplikaci RM Bridge.
For RM3 mini you have to use workaround:
Fill in a name (whatever), the MAC address of the RM mini 3, specify RM2 as type and press the Add Manually button. (you can see MAC address in the PaperUI, Configuration -> Things -> Edit -> Broadlink RM3 -> Show more)
Then choose your remote from Device list.
Now click learn code. On the RM3 mini led light will start blinking.
Point remote control to RM3 and push button which you want to learn.
on the page you will see something like this:
Pro RM3 mini musíte použít následující řešení:
Vyplňte název (cokoliv), MAC adresu RM mini 3, zadejte RM2 jako typ a stiskněte tlačítko Přidat ručně. ( MAC adresu můžete vidět v PaperUI, Configuration -> Things -> Edit -> Broadlink RM3 -> Zobrazit více)
Poté vyberte své dálkové ovládání ze Seznamu zařízení.
Nyní klikněte na learn code. Na dálkovém ovladači RM3 mini začne blikat ledka.
Dálkové ovládání namiřte na RM3 a zmáčkněte tlačítko, které chcete naučit.
na stránce uvidíte něco podobného:
{“api_id”:1004,“command”:“send_code”,“mac”:“B4:43:0D:38:FA:9D”,“data”:“260068000001289314101312143513121411131213111411133613361510143614351336143614351411133615101411131213111313131014361412123712361436133615351435140005230001274815000c4d0001284a12000c4d0001284915000c4b00012a4814000d05”}
zkopírujte pouze část v posledních uvozovkách a vložte ji do souboru broadlink.map. Kde TV_POWER_ON je název příkazu, který použijete ze souboru Sitemap nebo rules.
TV_POWER_ON = 260068000001289314101312143513121411131213111411133613361510143614351336143614351411133615101411131213111313131014361412123712361436133615351435140005230001274815000c4d0001284a12000c4d0001284915000c4b00012a4814000d05
zde je příklad broadlink.map:
TV_POWER_ON = 2600580000012991151014101535141015101410151014101436143515101435153514361436143515101410141114101410151014101510143515351436143515351436143515351400051e0001294814000c490001294814000d05 TV_POWER_OFF = 2600500000012991150f151014351510151014101411141014351535150f153515351435153515351410151014101535141015101410150f153515351435151015341535153515351400051e0001294715000d050000000000000000 PROJECTOR_ON = 2600b00100012b90163515351510151016101510151015351535161015351510153516101535151015101511151015101535151015111535153515351535163515101535153516101500052500012c90153515361510151015101510161015351535151015351610153515101535151115101510151015101535161015101535153515351635153515101535163515101500052500012c90153516351510151015101510161015351535151015351610153515101535151115101510151015101635151015101535153516351535153515101536153515101500052500012c90153615351510151015101610151015351535151115351510153515101536151015101510151015111535151015101535163515351535153515101635153515101500052500012c90153516351510151015101510161015351535151015351610153515101535151115101510151015101536151015101535153516351535153515101535163515101500052500012b911535153515101610151015101510153516351510153515101536151015351510151015111510151015351510161015351535153515351635151015351535151115000d050000000000000000 PROJECTOR_OFF = 2600f80100012c90153516351510151015101511151015351535151016351510153515101536151015351510151015111535151015101535161015351535153515111535153515101500052600012b91153515351510151115101510151015351536151015351510153516101535151015351511151015101535151015111535151015351535163515101535153515111500052500012b91153515351610151015101510151115351535151015351610153515101535151115351510151015101635151015101535151115351535153515101536153515101500052600012b90153516351510151015101511151015351535151015361510153515101535151115351510151015101536151015101535151015361535153515101535163515101500052500012b91153515351511151015101510151015351635151015351510153516101535151015351511151015101535151015111535151015351535153615101535153515101500052600012b90163515351510151015111510151015351535151115351510153515101535161015351510151015111535151015101535151016351535153515101535153615101500052500012b911535153515111510151015101510153516351510153515101535161015351510153515111510151015351510151115351510153515351535161015351535151015000d05 SCREEN_UP = 2600c6002b0d2a0d2a0d2b0d11261028112710270f280f292a0d11270f282b0d11262b0d280f2a0e0f282a0e2a0d2a0d11272a0d290f10272a0e0f282b0d0f2811272a0003d92c0c2a0d2b0d2a0d112710270f290f280f2910272a0d11270f292a0d0f28290f290e290f0f28290f280f290f0f28290f280f0f29280f0f29280f0f281028290003db2a0e280f290e290f0f280f290f280f290f280f29280f0f290f28290f0f28290f280f290e0f29280f290f280f0f29280f290e1028290e0f29290e0f290f2829000d050000 SCREEN_DOWN = 260084002b0d2a0d2a0d2b0d112611271126112711262b0d1126112711262b0d11262b0d2a0d2b0d2a0d11272a0d2a0d2b0d11262b0d2a0d0f2911262b0d112611272a0003d92c0c2b0c290f2a0d112711260f2911260f292a0d112711260f29290e0f29290e290f280f290f0f28290f280f290f0f28290f280f0f290f28290e10280f2928000d0500000000 SCREEN_STOP = 260084002c0d2a0d2a0d2b0d11261127112611271126112711262b0d11262b0d11262b0d2a0d2b0d112611272a0d2b0c1127112710272b0c2b0d2a0d2b0d11261127110003fa2b0d2a0d2b0c2b0d1126112711260f2911260f290f28290f0f28290f0f28290f280f290f0f280f29280f290e0f290f280f29290e290f280f290f0f280f2810000d0500000000 SETOBOX_OFF = 26007200573b2c060f0718120d070f060f070f060f070f060f0610060f0610060f070f060f0610060f0718120d060f070f0619112c070f060f110e0009da583b2c06100618120d070f060f070f060f070f070e070f060f070f060f070f060f070f060f0718120d0610060f0619112c0724120d000d05000000000000 SETOBOX_CH3 = 2600ae00553d15090b0a0c0817140b0a0b090b0a0b0a0b090b0a0b0a0b090b0a0b0a0b090b0a150a0a0a0b0a0b140b0a161416151614150a0b140b0009dd573d140a0b0a0b0916150b090b0a0b0a0b090c080c0a0b090c080c0a0c080a0c0a0a15090c080c0a0c130b0a16141713161515090b150c0009dc543d150a0b090b0a16150a0a0b0a0b090c090b0a0b090b0a0c080c090b0a0b0a0c08150a0c080b0a0b150b09161615141615140a0c140a000d0500000000000000000000 AVR_ON = 260088004f131313131327132614261327132613131413131313131327132613141313000293501313131313271326142613271326131314131313131313271326131413130002934f13131314132613271326132713261314131313131313142613261413131300029350131313131327132613271326142613131314131313131327132613141313000d05 AVR_OFF = 26008800501128121313281215112911141313131313151213131313261427131413130002b44f1327141313261413132713141313131313131314131313261426141313140002b44e1326141313271314132614131313131413131313131313271426141511130002b450132614131327131413281213131313131314131313131327132714131313000d05 AVR_1 = 260084004f121313271426141313261413131413131313131313141326141313131314132614131326141313140001ef50131313271327131413261413131313141313131313131327131413131313132713141326141313130001f04e13131326142614131328121512151115111512141215112812151115121511281215112812151215000d0500000000 AVR_2 = 260088004e1326142614131313141313131313131413131313131313271426141313270002b4501326142614131313141313131313131314131313131313271327141313270002b44f1227132713141313131313131314131313131313131413261426141313270002b54f132614271313141313131313131413131313131313141326142614131327000d05 AVR_3 = 260088004f131313131327132614261327132613131413131313131327132613141313000293501313131313271326142613271326131314131313131313271326131413130002934f13131314132613271326132713261314131313131313142613261413131300029350131313131327132613271326142613131314131313131327132613141313000d05 AVR_PRESET3 = 2600cc0051111612291216112a112a11161229121611161216111612291229121611160002ad51111612291216112a12291215122a11161215121612151229122a111612150002ad511215122a1116122912291216112a1215121611161216112a112a121512160002ad501216112a1215122a112a11161229121611161216111612291229121611160002ad51111612291216112a12291215122a11161215121612151229122a111612150002ad511216112a111612291229121612291215121612151216112a122912151216000d05000000000000000000000000 AVR_PRESET2 = 26008800511229121612151229122a11161229121611161216111612291229121611160002ad51112a12151216112a12291216112a1116121611161215122a112a111612160002ac5112291216111612291229121612291215121612151216112a1229121512160002ad51112a11161216112a112a1215122912161215121611161229122912161215000d05 SETOBOX_ON = 26007c00553d140a0c0a0b0c13140c090b0b0b0b0a0b0b0a0b0b0c0b090c0a0a0b0b0b0a0b0b0b0a0b0b0b0b14140c090b0b0b0a1513150a0b0b0b0a0b130c0009dd553e140a0c0a0c0a14140c0b090b0b0a0b0b0b0a0b0b0b0a0b0b0b0a0b0b0b0a0b0b0c0b090b0b0c13140c090b0b0b0a1414150a0b0a0b0b0b130c000d05000000000000000000000000 SETOBOX_ON1 = 26006200573c621200015312571258120d0009d8573c621200015312581257120d0009d8573c621200015412571257120d0009d8573c621200015412571257120d0009d8573c621200015412571257120d000941573c62125712eb12571218122d120d000d05000000000000 SETOBOX_ON2 = 26005000573d621200015312571258110e0009d7573c631200015312571258110e0009d7573d621200015312571258120d0009d7583c621200015312581158120dc0573c63115812ea12571218122d120e000d050000000000000000 SETOBOX_ON3 = 26005000573c631200015312571258110e0009d7573d621200015312571258110e0009d7573d621200015312571258120d0009d8573c621200015411581257120dc0573d62125712ea12581119112e120d000d050000000000000000 SETOBOX_ON4 = 26003201553e160a0b0a0b0a16140b0a0b0a0b0a0b0b0b090b0a0c090c090c090c0a0b0a0b0a0b0a0b0a0b0a16140b0a0b0a0b0a1614160a0b0a0b0a0b140b0009db553e160a0b0a0b0a16140b0a0b0a0b0a0b0a0b0a0b0a0b0a0b0a0b0a0b0a0b0a0b0a0b0a0b0a0b0a16150a0a0b0a0b0b1614160a0b0a0b0a0b140b0009da553e160a0b0a0b0a16140b0a0b0a0b0a0b0b0b0a0b0a0b0a0b0a0b0a0b0a0b0a0b0a0b0a0b0a0b0a16140b0a0b0a0b0a1614160a0b0a0b0a0b140b0009da553e160a0b0a0b0a16150b090c090c090b0b0b0a0b0a0b0a0b0a0b0a0b0a0b0a0b0a0b0a0b0a0b0a16140b0a0b0a0b0a1614160a0b0a0b0a0b150a0007bf553e160a0b0a0b0a16140b0a0b0a0b0a17140b0a0b0a0b0a0b0a0b0a0b0a0b0a0b0a0b0a0b0a16140b0a0b0a0b0a16141614160a0b140b000d05000000000000
Nyní v souboru Sitemap můžete ovládat vaše zařízení takhle:
Switch item=IR_CONTROL label="TV[]" icon="screen" mappings=[TV_POWER_ON="ON", TV_POWER_OFF="OFF"]
Některá zařízení jako setopbox vyžadují pro správné fungování dva IR signály. Naučte kód z jednoho tlačítka více než jednou (vždy poslal jiný IR kód ze stejného tlačítka). uložte jej do adresáře broadlink.map pod různými kódy (v mém případě tlačítko napájení: SETOBOX_ON3 and SETOBOX_ON4).
Poté jsem vytvořil soubor rules (openhab/rules/IR.rules):
rule "rIRsetobox" when Item SETOBOX received command then logInfo("rIRsetobox", "command "+receivedCommand) switch (receivedCommand) { case ON : { IR_CONTROL.sendCommand("SETOBOX_ON3") IR_CONTROL.sendCommand("SETOBOX_ON4") } case OFF :{ IR_CONTROL.sendCommand("SETOBOX_ON3") IR_CONTROL.sendCommand("SETOBOX_ON4") } } end
items:
Switch SETOBOX "Settopbox" (IR_Control_group)
sitemap:
Switch item=SETOBOX label="Set Top Box[]" icon="player" mappings=[ON="ON", OFF="OFF"]