请选择 进入手机版 | 继续访问电脑版

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

 找回密码
 立即注册
楼主: zhkufish

[进阶教程] [智能音箱] 小度音箱接入HomeAssistant 采用自带OAuth访问控制

  [复制链接]

0

主题

9

帖子

79

积分

注册会员

Rank: 2

积分
79
金钱
70
HASS币
0
发表于 2019-2-11 23:11:58 | 显示全部楼层
zhkufish 发表于 2018-11-13 16:39
那看来还是需要用nginx来转发, 在路由器上的端口映射直接用443 映射到8123 能成功吗 ...

家用电信宽带,服务部署在树莓派上。但是万恶的运营商封了443和80端口,所以这个映射没有走通
回复

使用道具 举报

3

主题

89

帖子

620

积分

高级会员

Rank: 4

积分
620
金钱
526
HASS币
20
 楼主| 发表于 2019-2-14 16:07:31 | 显示全部楼层
Brishen 发表于 2019-2-11 23:07
问一下,这样设置的技能并未发布,只是在调试模式下才可用吧

是的, 只能调试模式下使用
回复

使用道具 举报

3

主题

89

帖子

620

积分

高级会员

Rank: 4

积分
620
金钱
526
HASS币
20
 楼主| 发表于 2019-2-14 16:10:00 | 显示全部楼层
Brishen 发表于 2019-2-11 23:11
家用电信宽带,服务部署在树莓派上。但是万恶的运营商封了443和80端口,所以这个映射没有走通 ...

应该用其它的端口也可以的, 不一定要这2个. 主要是https就行了
回复

使用道具 举报

1

主题

4

帖子

43

积分

论坛分享达人

积分
43
金钱
39
HASS币
0
发表于 2019-4-23 10:18:34 | 显示全部楼层
本帖最后由 zhuangzi105 于 2019-4-23 11:22 编辑

授权成功之后,模拟测试时,home assistant可以收到信息。不过会报错

2019-04-23 10:14:08 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.hiwifi_router_bytes_received, old_state=<state sensor.hiwifi_router_bytes_received=2079803392; unit_of_measurement=bytes, friendly_name=HiWiFi router bytes received, icon=mdi:server-network @ 2019-04-23T10:13:37.189418+08:00>, new_state=<state sensor.hiwifi_router_bytes_received=2079885312; unit_of_measurement=bytes, friendly_name=HiWiFi router bytes received, icon=mdi:server-network @ 2019-04-23T10:14:08.162570+08:00>>
2019-04-23 10:14:08 DEBUG (SyncWorker_15) [miio.device] 10.1.1.107:54321 (ts: 1970-01-02 12:56:15, id: 254) << {'result': ['off', 100, 'off', 'on', 100, 'off', 2, 'on', 0], 'id': 254}
2019-04-23 10:14:08 DEBUG (MainThread) [homeassistant.components.xiaomi_miio.light] Got new state: <PhilipsEyecareStatus power=off, brightness=100, ambient=True, ambient_brightness=100, eyecare=False, scene=2, reminder=False, smart_night_light=True, delay_off_countdown=0>
2019-04-23 10:14:08 DEBUG (SyncWorker_1) [miio.device] 10.1.1.107:54321 (ts: 1970-01-02 12:56:15, id: 253) << {'result': ['off', 100, 'off', 'on', 100, 'off', 2, 'on', 0], 'id': 253}
2019-04-23 10:14:08 DEBUG (MainThread) [homeassistant.components.xiaomi_miio.light] Got new state: <PhilipsEyecareStatus power=off, brightness=100, ambient=True, ambient_brightness=100, eyecare=False, scene=2, reminder=False, smart_night_light=True, delay_off_countdown=0>
2019-04-23 10:14:08 DEBUG (SyncWorker_11) [xiaomi_gateway] _send_cmd resp << {'cmd': 'read_ack', 'model': 'plug', 'sid': '158d0001dc5b0a', 'short_id': 18718, 'data': '{"voltage":3600,"status":"on","inuse":"0","power_consumed":"19480","load_power":"0.00"}'}
2019-04-23 10:14:08 DEBUG (SyncWorker_11) [xiaomi_gateway] read_ack << {'cmd': 'read_ack', 'model': 'plug', 'sid': '158d0001dc5b0a', 'short_id': 18718, 'data': '{"voltage":3600,"status":"on","inuse":"0","power_consumed":"19480","load_power":"0.00"}'}
2019-04-23 10:14:08 DEBUG (MainThread) [homeassistant.components.xiaomi_aqara] PUSH >> <Entity Plug_158d0001dc5b0a: on>: {'voltage': 3600, 'status': 'on', 'inuse': '0', 'power_consumed': '19480', 'load_power': '0.00'}
2019-04-23 10:14:10 DEBUG (MainThread) [homeassistant.components.http.view] Serving /dueros_gate to 10.202.112.18 (auth: False)
2019-04-23 10:14:12 ERROR (MainThread) [custom_components.dueros] Traceback (most recent call last):
  File "/config/custom_components/dueros.py", line 97, in post
    response = await handleRequest(data)
  File "/config/custom_components/dueros.py", line 120, in handleRequest
    header = data['header']
KeyError: 'header'


在对应位置输出data的内容。发现data中没有header关键字。
async def handleRequest(data):
    """Handle request"""
    _LOGGER.info(json.dumps(data))
    header = data['header']
    payload = data['payload']


data内容:


[custom_components.dueros]{"version": "v2.0","session": {"new":true, "sessionId":"2bf27c64-3d48-4ad2-8980-dddec189cf0a"},"context": {"System":{"user": {"userId":"9009298", "accessToken":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiI5NGVhNzhlNjMzNzA8YjZiM2ZkNTM3NjQxYWQ5ZCIsImlhdCI6MTU1NTk4NjI3MiwiZXhwIjoxNTU2NjM0MjcyfQ.Nc2_eb2cKP5PFSNbf7uHcaGAs4PNJUisoY37DOa6EY","userInfo": {"account":{}}}, "application": {"applicationId":"917baa19-c612-9a17-9f39-d48df768df061"},"device": {"deviceId":"77be6f9f9aa83634f7e08bef40a124","supportedInterfaces": {"VoiceInput":{}, "VoiceOutput": {}, "AudioPlayer":{}, "VideoPlayer": {"preferedBitrate":"", "preferedWidth":0, "preferedHeight":0}}, "TVControl":{"controlType": "DCSControl","controlStatus": 0},"originalDeviceSerialNumber": "91206/1B3F160053140"},"apiAccessToken": "+OKmo/6o7dAPXT/5IGAzhEOS/apTcnZzY+C5rVuWJNAQt+gVH+giijfT8q0MWcpXI/CSLCJnWY3D1/Cz7OWcWD1R9hFMF0hnyge8cFRqwnX6lrKixur3uYzUYr029vvnFt/bRYdXvPbf+cTAFh6gzKDlF/ZgYGXIOPWMlCQ/sxyskERNSpq9pSD2iWhBSEMYT9YgnpiEGYcoGinrFUV5YEXhT3w+eeJqcLvaXqBoZ2o74yLFKiGys+037gdyx1UGFUX1siwY0tErNl/fQSrEnQV+p+ac+2QFfONfRAzAlybPAF9l6g8/mINQywPFL6n27R0Q+HJIzlSp5Z5k6V+zGwVjmKUoS2+Fcjk+Jzag5CT1gwdX97rvoyH4/x+XQhZawGpUnWhGEVKMfkPOQ==","apiEndPoint": "https://xiaodu.baidu.com","avaliableApplicationIds": ["aries_general","audio_music", "audio_unicast","audio_live", "audio_news","speaker_hardware", "duer_weather","sysprofile_service", "ai.dueros.bot.vocal_joke","ai.dueros.bot.alarm", "ai.dueros.bot.timer","ai.dueros.bot.smarthome", "doudi_server","ai.dueros.bot.audio_museum", "ai.dueros.bot.puzzle","ai.dueros.bot.faq_didp", "audio_music_children","483c3ee4-0e37-e05a-0d95-efe1dc96dc44","audio_classic", "d4106ab2-4374-816e-322a-341fcc625e4b","fed5e9a3-32e0-a87c-9571-9c7d296b919d","ai.dueros.bot.oss", "0b082db2-fc64-6396-5744-1ffd84e83a32","409e98fd-e144-c39a-6c35-75d261683834","ai.dueros.ext.rus", "6402fc3a-7825-3147-b52e-c25911b6d03c","ca4585e2-3cc2-8605-4062-08f9931304db","ext_timer"]}, "AudioPlayer":{"token": "1","offsetInMilliSeconds": 1520773,"playActivity": "STOPPED","applicationId": "audio_live"},"SettingsState": {"childFriendlyMode":false}}, "request":{"type": "LaunchRequest","requestId": "c4349bc0-6574-18e9-b28b-d9f75472d902_DCSxukbcd8871_3#1_0","timestamp": "155508782","dialogRequestId": "45c90f3f-f9be-4937-9d20-6a6c9cbd2dc2"}}





回复

使用道具 举报

13

主题

500

帖子

3374

积分

论坛元老

Rank: 8Rank: 8

积分
3374
金钱
2869
HASS币
20
发表于 2019-4-28 03:40:44 | 显示全部楼层
本帖最后由 yuqiuyi99 于 2019-4-29 15:11 编辑

2019-04-28 03:39:13 ERROR (MainThread) [custom_components.dueros] Traceback (most recent call last):
  File "/config/custom_components/dueros.py", line 97, in post
    response = await handleRequest(data)
  File "/config/custom_components/dueros.py", line 133, in handleRequest
    result = await controlDevice(name, payload)
  File "/config/custom_components/dueros.py", line 229, in controlDevice
    result = await _hass.services.async_call(domain, service, data, True)
  File "/usr/local/lib/python3.7/site-packages/homeassistant/core.py", line 1115, in async_call
    raise ServiceNotFound(domain, service) from None
homeassistant.exceptions.ServiceNotFound: (ServiceNotFound(...), 'Service fan.turn_on_request not found')

疯了疯了,授权成功,能发现设备,就是控制不了,然后出这个。看了看找不到服务,这......百思不得骑姐!!!

自己解救了,原来fan服务这个py没有设置,没法调动fan.turn.on/off,改成其他好了
回复

使用道具 举报

21

主题

420

帖子

2142

积分

金牌会员

Rank: 6Rank: 6

积分
2142
金钱
1722
HASS币
10
发表于 2019-5-4 18:06:01 | 显示全部楼层
wuqiyu007 发表于 2018-12-27 09:51
谢谢指点,我改成6001了,这样5001解放了,,这个端口太重要了。谢谢

请教一下,我和你都使用环境差不多,现在用群晖反向代理,不管换成什么端口,授权都可以成功,但是小度怎么都发现不了设备,能指教一下么
回复

使用道具 举报

21

主题

420

帖子

2142

积分

金牌会员

Rank: 6Rank: 6

积分
2142
金钱
1722
HASS币
10
发表于 2019-5-4 18:22:50 来自手机 | 显示全部楼层
zhkufish 发表于 2018-11-13 22:41
会自动同步, 但目前只支持 switch, light, cover, vacuum,这4种

大佬请问一下,现在可以通过https 直接访问到ha,路由器直接转发8123端口后,在平台上直接填写域名:8123可以授权成功,但是小度发现不了设备,通过群晖反向代理把端口改成5001.6001,同样授权成功,但是无法发现设备,日志里平台没有发送信息给网关,这是什么情况,能帮忙看看么
回复

使用道具 举报

0

主题

9

帖子

75

积分

注册会员

Rank: 2

积分
75
金钱
66
HASS币
0
发表于 2019-5-16 18:38:33 | 显示全部楼层
模拟测试能够成功控制,但是到实际的音箱中语音却控制不了,同一个账号,已经语音开启了设备调试模式,而且app里面能发现设备,设置里也打开了调试模式。这个怎么回事呢?要发布安装技能吗,有人发布过吗
回复

使用道具 举报

1

主题

19

帖子

64

积分

注册会员

Rank: 2

积分
64
金钱
45
HASS币
0
发表于 2019-6-15 12:08:58 | 显示全部楼层
家里 装了 花生壳 内网穿 怎么 设置啊
回复

使用道具 举报

0

主题

5

帖子

36

积分

新手上路

Rank: 1

积分
36
金钱
31
HASS币
0
发表于 2019-7-21 17:56:08 | 显示全部楼层
本帖最后由 十字 于 2019-7-21 18:22 编辑


可以了,这个是由于创建技能的时候没有选择智能家居导致的,创建技能需要选择智能家居
你好,按照配置授权成功了,然后发现不了设备,发现ha有错误信息,ha版本是        0.95.4,python版本3.73,是python版本的问题吗?
2019-07-21 09:39:12 ERROR (MainThread) [custom_components.dueros] Traceback (most recent call last):
  File "/config/custom_components/dueros.py", line 97, in post
    response = await handleRequest(data)
  File "/config/custom_components/dueros.py", line 120, in handleRequest
    header = data['header']
KeyError: 'header'
重启之后已经没有错误了,但是还是找不到设备,模拟测试提示没有找到设备

回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-3-29 06:20 , Processed in 0.066996 second(s), 36 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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