Domoticz 连接 树莓派 和 天猫精灵

2020-05-22  本文已影响0人  Txxxy

0x00 起因

目前使用的 ESP8266 + blinker + 天猫精灵 + 433M 模块控制客厅的灯, 总是出现连接不上的情况. 应该是 blinker 的服务器问题, 没法解决, 所以改造下, 尽量把其中的大部分环节做到自己控制.

0x01 用到的软件/硬件

➜ ~ uname -a
Linux ubuntu 5.4.0-1008-raspi #8-Ubuntu SMP Wed Apr 8 11:13:06 UTC 2020 aarch64 aarch64 aarch64 GNU/Linux

流程图

image.png

0x02 树莓派安装 Domoticz

2.1 Docker 方式

我个人倾向于 Docker 安装, 安装卸载都简单, 尝试之后, 由于需要通过 Domoticz 运行树莓派上的调用 GPIO 的程序, 比较麻烦, 所以暂时放弃.

2.2 直接树莓派上安装

网络原因, 把官方的安装脚本 修改了一下
可以通过以下命令直接安装
curl -L https://raw.githubusercontent.com/Daoctor/Domoticz_RPI_Install/master/install.sh | sudo bash

这一步完成后应该可以通过 <树莓派 IP>:<端口> 访问到 Domoticz 的面板

0x03 433M 高频接发模块 和 树莓派的连接

3.1 环境配置

这篇文章很好, 早点看到能省 2 个小时
这里面用的 433Utils 库 是 fork 修改过的.
https://www.ibm.com/developerworks/cn/iot/library/iot-smart-home-02/index.html
其中 WiringPI 会遇到下载地址失效问题
https://github.com/WiringPi/WiringPi.git 这个地址替代

3.2 修改脚本

修改 上一步中 codesend.cpp, 把其中的 code, protocol, pulseLength 变量 用常量代替, 方便运行.
编译后运行 ./codesend 如果提示
Unable to open /dev/mem or /dev/gpiomem: Permission denied
就需要修改一下权限, 比较好的方式是添加一个组
以我自己的用户 ubuntu 为例

sudo group add gpio
sudo usermod -aG gpio ubuntu
sudo chown root.gpio /dev/mem
sudo chmod g+rw /dev/mem
sudo chown root.gpio /dev/gpiomem
sudo chmod g+rw /dev/gpiomem

再运行, 应该就不需要 sudo 权限了.

这一步完成后应该 可以通过不需要要 sudo 的命令控制灯光

0x04 Domoticz 连接 433M 模块

在 Domoticz 中添加树莓派作为 设备

Setup -> Hardware 添加设备
注意 Type

选择面板顶部的 Switches 选项, 然后选择 Manual Light/Switch
手动添加一个开关.

编辑开关的动作

填写上一部的脚本路径

测试


image.png

这一步完成后应该可以通过点击面板上的灯控制家里灯的开关

0x5 外网访问 Domoticz

花生壳软件安装

aarch64 没有对应的 花生壳 软件, 通过 dpkg --add-architecture armhf 添加架构兼容的方式来安装 花生壳 也遇到了卡死的情况, 暂时不用

花生棒

配置 花生壳 访问 Domoticz, 注意这种方式访问相当于通过内网访问, 需要配置 Domoticz对所有登录都要求密码

这一步完成, 应该做到通过外网可以访问到Domoticz页面

0x6 Domoticz对接天猫精灵

配置服务

进入 https://ali.domoticz.cn/ 按照要求配置
上面测试连接, 一定要通过才可以
我用 Sakura frp 测试是不行的 所以上一步用了花生壳的服务.

天猫精灵 APP 端绑定

天猫精灵 技能搜索 Domoticz, 绑定账号

这一步完成, 应该做到 在 天猫精灵 app 中发现了自己在 https://ali.domoticz.cn/ 添加的开关, 并且可以通过天猫精灵开关灯

上一篇下一篇

猜你喜欢

热点阅读