『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 19891|回复: 22

[新奇玩法] 小愛+萬能遙控器+TVremoteime控制電視與app切換

[复制链接]

27

主题

387

帖子

3249

积分

元老级技术达人

积分
3249
金钱
2842
HASS币
40

教程狂人

发表于 2018-3-15 00:44:14 | 显示全部楼层 |阅读模式
本帖最后由 windgo 于 2019-1-21 11:08 编辑

20190121更新:

建議在使用開發版接紅外接收模組時使用有帶板子的HX1838B
可以幫忙濾掉很多環境雜訊
Image_20190121_003.png
使用小愛同學語音控制電視

可以語音開啟電視後馬上開啟直播軟體並切換到你要的頻道
可以語音選擇要切換的APP過去
可以語音控制播放/暫停/音量調整/直播選擇上一台下一台等

手機可點選連結


流程:
當語音控制小愛發出萬能遙控器紅外線碼(同樣碼發射三次)時,nodemcu收到碼後MQTT更新給HA
HA收到ir_core變化後,執行自動化內容(tvremoteime的指令需先用chrome開發者模式抓,在用curl post方式發出去)
需注意另外會有一個自動化會再收到ir_code後重發mqtt ir_code=0給HA做數值重置用
避免ir_code沒變化而無法觸發自動化

步驟
1.安裝tvremoteime並依照說明設定完畢
https://github.com/kingthy/TVRemoteIME

2.使用chrome開啟tvremoteime的網頁畫面,打開開發者模式,點選network裡面的record(如果使用wireshark抓封包分析也是可以的喔)
Image_20180314_002.png
然後點選你要做的控制,可以看到referer 這邊取到?之前
例如referer:http://192.168.31.173:9978/key?code=3
保留http://192.168.31.173:9978並加上/run
(這個範例是跑程式所以是run,key是某個功能,keydown keyup代表按下放開某個鍵)
另外取From data,packageName: com.google.android.youtube.tv
Image_20180314_001.png
接下來使用終端機整合上面得到的資料,並使用post丟給tvremoteime去執行,就是下面的指令

curl -d "packageName=com.google.android.youtube.tv" -X POST http://192.168.31.173:9978/run

執行就能開啟youtube
但我會在前面加上回桌面-->停一秒-->開youtube,就變成

curl -d "code=3" -X POST http://192.168.31.173:9978/key;sleep 1;curl -d "packageName=com.google.android.youtube.tv" -X POST http://192.168.31.173:9978/run

3.將上面最後的指令加入HA config內的shell_command以便後面自動化使用
Image_20180315_001.png

这边提供一些我的shell_command給各位參考,#為萬能遙控器裡面的按鈕名稱與對應的ir_code碼,方便後續對照

shell_command:
#arrow_up:752
  ltv: curl -d "code=3" -X POST http://192.168.31.173:9978/key;sleep 1;curl -d "packageName=com.l2tv.ltv" -X POST http://192.168.31.173:9978/run
#arrow_down:2800
  supertv: curl -d "code=3" -X POST http://192.168.31.173:9978/key;sleep 1;curl -d "packageName=com.hd.zhibo" -X POST http://192.168.31.173:9978/run
#mute:656
  youtube: curl -d "code=3" -X POST http://192.168.31.173:9978/key;sleep 1;curl -d "packageName=com.google.android.youtube.tv" -X POST http://192.168.31.173:9978/run
#確定:2672
  ok: curl -d "code=23" -X POST http://192.168.31.173:9978/keydown;curl -d "code=23" -X POST http://192.168.31.173:9978/keyup
#power:2704
  pause: curl -d "code=23" -X POST http://192.168.31.173:9978/keydown;curl -d "code=23" -X POST http://192.168.31.173:9978/keyup;curl -d "code=23" -X POST http://192.168.31.173:9978/keydown;curl -d "code=23" -X POST http://192.168.31.173:9978/keyup
#頻道up:144
  up: curl -d "code=19" -X POST http://192.168.31.173:9978/keydown;curl -d "code=19" -X POST http://192.168.31.173:9978/keyup
#頻道down:2192
  down: curl -d "code=20" -X POST http://192.168.31.173:9978/keydown;curl -d "code=20" -X POST http://192.168.31.173:9978/keyup
#menu:112
  back: curl -d "code=4" -X POST http://192.168.31.173:9978/key
#mi_home:tel:3030693060
  home: curl -d "code=3" -X POST http://192.168.31.173:9978/key
#mi_volume_up:16
  volumeup: curl -d "code=24" -X POST http://192.168.31.173:9978/key;curl -d "code=24" -X POST http://192.168.31.173:9978/key;curl -d "code=24" -X POST http://192.168.31.173:9978/key;curl -d "code=24" -X POST http://192.168.31.173:9978/key
#mi_volume_down:2065
  volumedown: curl -d "code=25" -X POST http://192.168.31.173:9978/key;curl -d "code=25" -X POST http://192.168.31.173:9978/key;curl -d "code=25" -X POST http://192.168.31.173:9978/key;curl -d "code=25" -X POST http://192.168.31.173:9978/key
#mi_power:2058
  volumemute: curl -d "code=164" -X POST http://192.168.31.173:9978/key
  ir_code_reset: /config/ir_code_reset.sh


4.加入小愛同學與萬能遙控器,並使用紅外線方式導入小愛到HA(可使用nodemcu+紅外線接收器)
https://bbs.hassbian.com/forum.p ... =%E5%B0%8F%E7%88%B1

5.在米家APP內新增控制器場景,指定一個不衝突的遙控碼給場景,連續發射三次
(避免nodemcu收不到,或是因為雜訊而被干擾的情形)

Image_20180315_006.png


6.在小米ai app選擇訓練小愛依照小愛的對話內容來建立關鍵字
例如我喊 我要看youtube,小愛的對話紀錄為 我要看u two或是 我要看優酷
那我的關鍵字就使用 我要看u two 和 我要看優酷
Image_20180315_004.png
7.nodemcu收到萬能遙控器ir code後,使用mqtt更新code給HA
(可在HA state這邊觀察對應的ir_code以便寫自動化)

8.在HA內安裝mqtt client,加入一個ir_code 重置為0用的mqtt publish script,以便執行自動化使用

mosquitto_pub -t '/esptest/ir/IR' -m '0' -h 192.168.31.184

編輯configuration.yaml,加入shell_command以後執行自動化使用

shell_command:
  ir_code_reset: /config/ir_code_reset.sh

9.在HA寫自動化,執行上面查出的tvremoteime shell_command
在自動化的action步驟為
i.先關閉自動化本身(因為遙控器發射三次,不先關閉會導致自動化連續執行三次)
ii.再執行shell_command
iii.最後等待2秒再打開自動化本身

- action:
  - data:
      entity_id: automation.ir_code_656_youtube
    service: automation.turn_off
  - service: shell_command.youtube
  - delay: '2'
  - data:
      entity_id: automation.ir_code_656_youtube
    service: automation.turn_on
  alias: ir_code_656_youtube
  condition: []
  id: 'tel:1520396480510'
  trigger:
  - entity_id: sensor.ir_code
    platform: state
    to: '656'

10.在HA新增一個自動化,當ir_code > 1時,等待五秒後執行mqtt publish script,
重置ir code=0,以便自動化連續觸發
例如你喊靜音,HA收到一次ir code 1111,這時如果你不reset ir_code,再喊一次靜音時,HA收到1111不會觸發自動化


- action:
  - delay: '5'
  - service: shell_command.ir_code_reset
  alias: ir_code_reset
  condition: []
  id: 'tel:1521008423676'
  trigger:
  - above: '1'
    entity_id: sensor.ir_code
    platform: numeric_state


11.開始使用小愛同學語音測試



















评分

参与人数 2金钱 +40 收起 理由
lidicn + 20 太赞了!
+ 20 膜拜大神!

查看全部评分

回复

使用道具 举报

75

主题

1976

帖子

8179

积分

元老级技术达人

积分
8179
金钱
6153
HASS币
430

活跃会员教程狂人

发表于 2018-3-15 07:23:17 | 显示全部楼层
强...膜拜一下。
所有过往,皆为序章。
回复

使用道具 举报

1

主题

26

帖子

123

积分

论坛分享达人

积分
123
金钱
97
HASS币
0
发表于 2018-3-15 07:39:59 来自手机 | 显示全部楼层
回复

使用道具 举报

4

主题

100

帖子

691

积分

高级会员

Rank: 4

积分
691
金钱
591
HASS币
0
发表于 2018-3-15 08:40:13 | 显示全部楼层
收藏慢慢看。。。。。
回复

使用道具 举报

5

主题

140

帖子

448

积分

中级会员

Rank: 3Rank: 3

积分
448
金钱
308
HASS币
0
发表于 2018-3-15 09:10:28 | 显示全部楼层
小白表示完全看不懂
回复

使用道具 举报

25

主题

687

帖子

3630

积分

论坛元老

Rank: 8Rank: 8

积分
3630
金钱
2937
HASS币
219

活跃会员

发表于 2018-3-15 09:11:50 | 显示全部楼层
慢慢学习
回复

使用道具 举报

0

主题

18

帖子

132

积分

注册会员

Rank: 2

积分
132
金钱
114
HASS币
0
发表于 2018-3-15 10:29:13 来自手机 | 显示全部楼层
厉害了我的哥
回复

使用道具 举报

123

主题

4661

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16410
金钱
11664
HASS币
45
发表于 2018-3-15 11:42:26 | 显示全部楼层
楼主会玩,非常好的思路!
回复

使用道具 举报

1

主题

162

帖子

1029

积分

金牌会员

Rank: 6Rank: 6

积分
1029
金钱
867
HASS币
0
发表于 2018-3-15 12:34:00 | 显示全部楼层
这边比firetv溜多了,哈哈
回复

使用道具 举报

40

主题

3056

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11149
金钱
8042
HASS币
182
发表于 2018-3-15 15:11:05 | 显示全部楼层
好曲折,原来是用红外~
Nero
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-22 08:31 , Processed in 0.109332 second(s), 37 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表