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

 找回密码
 立即注册
查看: 80125|回复: 195

[新奇玩法] 天猫精灵同一位置(zone)多传感器查询【已上传代码】

  [复制链接]

7

主题

168

帖子

1043

积分

论坛技术达人

积分
1043
金钱
875
HASS币
0
QQ
发表于 2018-3-7 20:49:48 | 显示全部楼层 |阅读模式
本帖最后由 qebabe 于 2018-3-9 14:13 编辑

之前搭建的天猫精灵后台,与ha对接后,一个空间位置只允许出现一个传感器。比如:设置好查询客厅传感器的温度,就不能再给客厅传感器添加像湿度之类的其他查询信息。但是翻看过天猫精灵的文档之后发现:
{
     "properties":[
       {
       "name":"powerstate",        // 电源状态
       "value":"on"
       },
        {
        "name":"color",
        "value":"Red"
       },
        {
        "name":"temperature",
        "value":"27"         //标准单位 摄氏度
       },{
         "name":"humidity",
         "value":"20"
       },{
         "name":"windspeed",
         "value":"2"   //  1对应 1档, 2对应2档, 3 对应 3档
       },{
         "name":"humidity",
         "value":"23"
      },{
         "name":"pm2.5",
         "value":"20"
     } ,{
         "name":"direction",  // 摆向方向
         "value":"left"
     } ,{
         "name":"angle",  // 角度
         "value":"60"
     }      
    ],
  "header":{
      "namespace":"AliGenie.Iot.Device.Query",
      "name":"QueryResponse",
      "messageId":"1bd5d003-31b9-476f-ad03-71d471922820",
      "payLoadVersion":1
   },
   "payload":{
       "deviceId":"34234"
    }
 }


只要把传感器的所有查询信息全部提交是可以的。
所以,天猫精灵需要的是一个设备有好多属性,而HA是一个设备只有一个属性。那么解决办法就是在自己搭建的天猫精灵后台虚拟一个设备,把这个设备添加给天猫精灵,而这个设备又包含HA中多个传感器设备。
像这样:
QQ20180307-203744.png
这样发起查询设备状态的请求时,天猫精灵会向后台请求查询传感器(我们虚拟的设备)的状态。收到请求后,后台会从数据库里查询我们设置的这个虚拟设备包含哪些HA中的子设备,然后分别获取这些子设备的状态。然后组合成一个也就是我们虚拟设备的状态,返回给天猫精灵,这样的话,我们就以查询同一位置(zone)的传感器的种状态了。


                               
登录/注册后可看大图

开始:
*本教程的环境是SAE如其他环境请自行修改代码。
*在开始下边的操作之前请确认已经完成了:
  1:https://bbs.hassbian.com/thread-2178-1-1.html
  2:https://bbs.hassbian.com/thread-2285-1-1.html
这两步!(第二部中上传的代码可用当前文章的代替)



1.首先这次更新需要修改数据库:
  请执行SQL,在之前oauth_devices表中插入三列信息,devices、zonevirtual
  

ALTER TABLE  `oauth_devices` ADD  `devices` TEXT NOT NULL AFTER  `jsonData`;
ALTER TABLE  `oauth_devices` ADD  `virtual` INT NOT NULL DEFAULT  '0' AFTER  `jsonData`;
ALTER TABLE `oauth_devices` ADD `zone` VARCHAR( 255 ) NOT NULL AFTER `devices`;
  
2.上传代码包:
   上传方法请参照:https://bbs.hassbian.com/thread-2285-1-1.html
   
游客,如果您要查看本帖隐藏内容请回复


截图:
优化了一下设备管理界面。
1.jpg

点击添加设备后会有弹出框,选择添加真实设备或虚拟设备。真实设备就是HA中真实存在的(之前添加的那种);虚拟设备是我们虚拟出来的,虚拟设备下只能添加传感器sensor设备。
2.jpg
添加虚拟设备部分:上半部分和真实设备一样,下半部分就是选择HA中的sensor设备与虚拟设备的属性绑定。点击橙色按钮添加属性,点击蓝色按钮保存当前虚拟设备。
3.jpg

本次更新改动的文件:
/aligenies_request.php
/gate.php
/device/index.php
/device/service.php
增加:
/device/addVirtualDevice.php







评分

参与人数 3金钱 +27 收起 理由
飘舞凌乱 + 5 膜拜大神!
jyz_0501 + 2 谢谢分享!
+ 20 膜拜大神!

查看全部评分

回复

使用道具 举报

0

主题

6

帖子

22

积分

新手上路

Rank: 1

积分
22
金钱
16
HASS币
0
发表于 2024-2-29 08:54:17 | 显示全部楼层
谢谢分享
回复

使用道具 举报

2

主题

71

帖子

519

积分

高级会员

Rank: 4

积分
519
金钱
448
HASS币
0
发表于 2022-2-27 11:20:27 | 显示全部楼层
感谢分享
回复

使用道具 举报

35

主题

984

帖子

4740

积分

论坛元老

Rank: 8Rank: 8

积分
4740
金钱
3756
HASS币
20
发表于 2021-3-16 00:52:46 来自手机 | 显示全部楼层
先看下,打算加几个传感器
回复

使用道具 举报

4

主题

121

帖子

657

积分

论坛积极会员

积分
657
金钱
536
HASS币
0
发表于 2021-1-19 21:05:46 | 显示全部楼层
学些学习
回复

使用道具 举报

1

主题

46

帖子

200

积分

中级会员

Rank: 3Rank: 3

积分
200
金钱
154
HASS币
0
发表于 2020-5-23 01:19:46 | 显示全部楼层
天猫精灵同一位置(zone)多传感器查询
回复

使用道具 举报

1

主题

20

帖子

64

积分

注册会员

Rank: 2

积分
64
金钱
44
HASS币
0
发表于 2020-5-9 10:59:23 | 显示全部楼层
sd fsd sd dsf
回复

使用道具 举报

0

主题

4

帖子

25

积分

新手上路

Rank: 1

积分
25
金钱
21
HASS币
0
发表于 2020-4-19 15:07:19 | 显示全部楼层
太好了,赶快下来试试!谢谢!
回复

使用道具 举报

1

主题

43

帖子

888

积分

高级会员

Rank: 4

积分
888
金钱
845
HASS币
0
发表于 2020-2-24 09:44:32 | 显示全部楼层
学习学习
回复

使用道具 举报

3

主题

35

帖子

285

积分

论坛技术达人

花叶凉暖两分半

积分
285
金钱
250
HASS币
10
发表于 2020-2-23 12:46:20 | 显示全部楼层
本帖最后由 rainow 于 2020-2-23 13:50 编辑

所以这是全转用数据库存,不用configuration.yaml了是么
回复

使用道具 举报

18

主题

704

帖子

4024

积分

元老级技术达人

积分
4024
金钱
3310
HASS币
60
发表于 2020-1-11 09:38:22 | 显示全部楼层
猫精也是个坑
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-22 09:37 , Processed in 0.163451 second(s), 44 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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