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"]

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *