3.18 改进版智能家居2.0 HA+HB+Grafana=喂!Siri!

  • w
    waterfish007
    接着上一期,用了半年了,感觉已经慢慢习惯了智能家居的辅助了。使用过程中也发现一些问题,刚好在折腾软路由,这次顺便一并改进。
    上期的链接https://www.hi-pda.com/forum/viewthread.php?tid=2156023&highlight=


    按惯例,管杀不管埋,我水平不高,英文不行,编程不行,看文档也是半猜半蒙的,说的不一定对我按我的理念来解释。我玩docker上HA也只比你们没玩过的多玩几天试坑而已,不要太相信我。我只提供思路,大家跟着思路慢慢试错,大方向我这里是可以保证优秀的,细节大家要慢慢研究,有太深的坑我会提前说下帮大家顺利度过,有不明白可以摆上来一起讨论。


    为方便理解
    home assistant ==HA ,这个是整个智能家居的平台
    homebridge==HB , 我想玩HOMEKIT,就要通过这个桥,把HA的内容,转成苹果能识别的家居电器,把外面的数据转成HOMEKIT的数据。


    上期是用树莓派做的,有些问题,当然问题很大原因可能是我折腾反复安装搞系统搞错乱了。
    1)不稳定,每天在7点多都会丢了MQTT传过来的数据,HA平台抓不到,后台查看MQTT是一直在接收的,但HA就是读取不到。虽然后面我可以用系统每天准时来重启HA解决了,但是不稳定还是不稳定。HOMEKIT连接也有时间不行,要重启整个树莓派才行。重启大概一个月要一两次。实在不舒服。
    2)升级困难,这是我改进的主要地方,上年9月的时候,不是0.52版本,现在是0.65,中间的某个版本升级,需要整个运行环境也升(python机身是3.4,现在说要3.5.2才能用),环境升级就不是敲一行命令这么简单的,试过升级了一下,python是升级上去了,但是运行HA升级的还是旧版,一直升不上去。之前每次更新都麻烦,要进入树莓派输命令。
    3)树莓派是TF卡做的平台,怕死怕随时卡坏了,浪费之前所有的表情,定期备份TF卡又懒


    综上所有,有朋友问我做这个,我都直接推荐上小米全家桶,因为不省心。


    直到今天。。。。
    先看看几个效果。











    docker1.PNG





    改进目标:
    1)使用DOCKER来搭,对比过,相比直接开个UBUNTU来做,DOCKER更简单,而且不用搭环境,直接双击下载DOCKER包随便配置就一下就出来了。不用再去想什么python虚拟机啊之类。升级也方便,直接换个docker镜像就行,不用再重新配置,不算下载的时间,10秒就可以操作好升级。
    2)淘汰DOMOTICZ,它图形画面烂泥摸不上墙,换个高大尚有逼格的专业的图表展示平台Grafana。

    移植耗时用了3天,因为配置文件可以直接用原来的,省了很多功夫。稳定性有待长时间测试,目前感觉一切很好。教程这两天更新上来。
  • l
    lilarcor
    支持折腾,养肥看 iOS fly ~
  • s
    shenhong
    战略性mark
  • 我是小pai
    感谢楼主分享 等教程 iOS fly ~
  • t
    thanatus1985
    mark,小米全家桶用户先来支持你下 iOS fly ~
  • a
    atang651
    马克一下
  • n
    nirnovo
    我准备在群晖上用docker搞一套,看了下,不是很难 iOS fly ~
  • c
    cattery
    这个好 iOS fly ~
  • s
    skyzenith
    回复1#waterfish007
    谢谢lz 马克之 iOS fly ~
  • k
    kenchn
    支持折腾,虽然我不折腾auto mark
  • d
    danety
    mark iOS fly ~
  • g
    guchg
    期待教程
  • w
    waterfish007
    整个平台是要跑在docker上,docker我是在群晖上配有的。在DOCKER之前,这里又要先说说硬件了。首先要向大家奔歌软路由~随便刷个LEDE,上好孩子看不见的缓冲时间可以快一半以上,别买成品路由器了。自己动手做一个软路由成本不高,效果很好。比如我配的DQ77KB,你随便可以300买到主板+电源,60块上个CPU,50块一个机箱,加个4G内存150,300块钱买个INTEL 180G 二手SSD,几十块钱随便买个路由当AP,齐活了。装个ESXI,把LEDE装上就是好路由,然后你要喜欢上黑群,就再开个黑群做NAS功能,黑群就有DOCKER了,要是已经有老旧或者低端白群了,就在ESXI开个Phonton的DOCKER平台照样可以弄DOCKER。黑群,整个硬件平台4G内存够玩了。上软路由才可以尽可能的榨干带宽,我之前用AC68的,也明显感觉到软路由的好。在折腾这个之前,强力建议大家先搞它。记住,4G内存是最低要求,CPU倒是没要求随便一个赛扬就足够了,我是上1265的,方便后面玩PLEX实时解码。其它的小马路由之类也不错。如果想玩好,我个人觉得避开低功耗的10来w的CPU平台还是有必要的。折腾ESXI加LEDE,3天晚上左右吧。
    因为我白群有docker,所以就不扯ESXI上装Phonton了,以群晖的说下去,大同小异的。
    什么是docker?docker在我理解,就是一个打包好小型Linux虚拟机,功能单一。比如我想要一个photoshop的功能,我就下载一个别人做好的镜像(把photoshop装好在上面打包好),虚拟机连网会开放8080端口(可以设置为任意一个端口,防冲突)访问photoshop的窗口网页去操作。同时有外部,我们可以建一个文件夹,配置镜像的时候,可以关联起来,这样这个虚拟机就可以访问外部的文件了,把数据读写在这个文件夹。你以后升级或者更换docker,数据都不会丢。docker的操作,基本都是通过网页来玩,少数情况下,也要在后台跑命令行来配置几下。可视化操作还是很方面的。
    DOCKER2.PNG上图打勾是需要用到的镜像。名字右边有个箭头LOGO,点下去可以打开这个docker的介绍网页,有点用的,大概看看用的什么端口,文件放哪里之类。
    挑选docker镜像,我优先选择官方及多更新的,起码我今天装起来版本也新。比如InfluxDB和Grafana有一个镜像是合在一起的,版本是一年前,虽然方便,但是版本旧了,还是不如我单独分开装两个官方的镜像,虽然资源开支大一倍,但是机器性能够屌啊,无所谓啊,可以随便开
    docker1.PNG

    先说说几个功能。
    HA就基础,这个是官方的,配置之后直接打开ip:8123就可以访问。这是基础,大家后面70%时间是折腾它的一个文件。
    HB要HOMEKIT就要装它,装了它和HA关联起来就可以在手机访问了。想外网都能访问家庭,你还需要一台iPAD或者ATV4。
    MQTT,是个中转平台,我用ESP8266做下位机,无线采集数据。然后把数据发到MQTT平台上,HA再访问MQTT来获得数据 。ESP8266-->mqtt-->HA。
    Grafana,是个图表平台,我想看数据曲线,就用它啊。你给它一个数据库,它就可以读里面的数据然后画图。HA默认数据库是SQLite,Grafana不能直接读取,所以就要装一个新的大家都认同的数据库平台InfluxDB
    InfluxDB,一个数据库,让HA往上面实时写数据,然后Grafana读取。

    首先,在docker目录先建立这几个目录,这几个目录是专门放这几个docker的文件的,以后你怎么折腾docker,上面的数据也稳如泰山。

    docker3.PNG




    下一步开始做第一个docker HA!先去拉个屎先~
  • l
    lwd2136
    回复1#waterfish007


    支持,一直在用 Grafana
  • m
    miniss
    技术文章,战略性mark,完全可以用来开公司了
  • w
    waterfish007
    我就是上个贴看你用得很好看,这次才改过来的。之前虽然了解过,但是要树莓派上折腾InfluxDB和Grafana觉得太麻烦才没动手,要在pi上面配置这个环境,还真的是个大工程,不知道要折腾多久才弄好。后来想想用docker来实现,简单得飞起。
  • n
    nirnovo

    群晖上环境刚弄好,还在看文档怎么添加设备 iOS fly ~
  • 陶公公
    不折腾,上米家 iOS fly ~
  • w
    waterfish007
    米家什么都好,就是不准传感器用料哪有我的好啊,精度0.01误差相比低很多。但是米家的确是方便省心。没折腾的心特别是没折腾的命,就真的别玩ha了。 一开始我是拒绝的
  • 陈小春
    好像很复杂的样子
  • x
    xiaomilee
    东西都有,还没开始部署
  • s
    stevenflp
    学习 iOS fly ~
  • f
    flyingmmb
    支持下男教授小尾巴~
  • w
    waterfish007
    ha网络.JPG
    直接抄网上的安装过程:
    群晖 NAS

    部分群晖机型支持安装 Docker,具体列表详见群晖官网。

    • 安装 Docker
    • 启动 Docker 应用,前往 注册 栏
    • 找到 "homeassistant/home-assistant",点击下载
    • 下载完成后,前往 Image(镜像)栏
    • 点击 Launch 启动
    • 随便取一个容器名称(比如 homeassistant)
    • 点击『高级设定』
    • 选择『允许自动启动』
    • [color=rgba(0, 0, 0, 0.870588235294118)]在 Volume 内选择 Add Folder 添加文件夹,新建或者选择已有文件夹。(补充,就是加入前面让建议的docker/homeassistant目录,然后装载路径填/config。这样,以后这个虚拟机/CONFIG目录的内容,就同步在/docker/homeassitant直接访问到了。[color=rgba(0, 0, 0, 0.870588235294118)])
    • 网络内,选择使用和 Docker 宿主相同的网络
    • 点击环境,加号,添加 variable = TZ 和 value = Asia/Shanghai
    • 确认,下一步,应用
    然后就可以在DOCKER IP:8123 访问到HA了。当你打开这个页面之后,觉得很简单,很有成就感对不对?多看一眼这个界面,因为后面一段时间你很难看到了……
    后面HA所有精力都在写configuration.yaml上。
    JSON和yaml 一定一定一定要注意格式,只要格式出错,是打不开HA网页的,直到你修改到合格为止。
    https://www.bejson.com/validators/yaml_editor/这里可以校验你的YAML格式对不对,不对就改到对为止。记住,一行前面,多一个空格都可能导致HA启动不起来,一定要严格对齐。
    后面HB的JSON就在这里检验https://www.bejson.com
    置于怎么改,我就不啰嗦了,上网搜吧,看你需要。
    主要学习地方:
    https://home-assistant.io
    https://bbs.hassbian.com/forum.php

    比如增加支持influxDB,就看这里
    https://home-assistant.io/components/influxdb/
    说增加这段就行,
    influxdb:
    host: 127.0.0.1

    HA比较好的是,你只要装好HA,一般不用装它的什么配件,比如你要支持博联的开关,就在configuration.yaml上增加一个boardlink的模块就行,后台会自动安装加载相应的功能匹配。

    ha设置.JPG










    这里大家要有耐心,慢慢搞。建议一点点把功能一个个的加上去。做成一个再加新一个。修改之后,就重启一下docker就可以了。如果到后期,可以直接在HA网页上 配置--通用--重启服务 ,但是这个有时还是要重启一下docker才真的起效。
    另外,有时比如配置其它关联的docker,比如hb,配置好之后,最好HA HB都同样重启一次,这样才好识别。不然有时你已经设置好了,但是只重启了一个,有可能是识别不正常的。
  • h
    hxa
    回复13#waterfish007

    DQ77KB网卡对LEDE兼容性如何?
  • p
    pingyang
    mark,最近也在搞这货 ios fly
  • w
    waterfish007
    然后就是HB和MQTT了,这些都大同小异。MQTT如果你没有EPS8266做的传感器抓数据就不用搞了。HB如果你没有苹果手机也不用做。HA HB MQTT都要设置网络在同一个HOST下。后面的influxDB和Grafana就不用,用单独的网络并且要设置一下端口。
    HB对应加载路径/homebridge
    MQTT对应加载路径/config

    MQTT按这个来做就行了。https://bbs.hassbian.com/forum.php?mod=viewthread&tid=366&highlight=mqtt

    HB在安装时候,要看你需求安装一些模块,比如我要安装broadlink的遥控模块,但HA的模块是必装的。要准备好config.json放进目录,然后在终端运行sh,安装homeassisatnt模块。

    haxx.JPG

    HB用我选的那个docker,就只搞config.json和npm安装ha就行,不用搞package.json。https://bbs.hassbian.com/forum.php?mod=viewthread&tid=2678&highlight=homebridge这个兄弟用的源会比较多事要搞。
  • w
    waterfish007
    那片板,驱动方面没坑。esxi6.5不用修改直接装好。LEDE也没遇到坑。但是WAN没有MAC地址有点怪,但目前用起来也没什么问题。ESXI上看又看到MAC地址。wan.JPG
  • w
    waterfish007
    最后说InfluxDB和Grafana这个先按我选的下载好两个docker。
    InfluxDB端口设置把8086前面的自动改为8086,关联目录/var/lib/influxDB
    把Grafana端口设置的一项随便改为一个没用的商品,我是比如3333,关联目录/var/lib/Grafana


    然后下一步,网上所有教程都是说打开xxxip.8086,然后在网页端建立个数据库。这里是个深坑,根本打不长的,最多显示404。


    然后我研究了一下,在终端下敲一行就能实现两样的功能,绕开打开网页的问题。

    curl -G http://localhost:8086/query --data-urlencode "q=CREATE DATABASE home_assistant" 创建一个叫home_assitant的数据库,一定要这么叫,因为HA只认这个名字。这个库是建立给HA写给Grafana读的。
    然后记得在HA上加上influxdb那项。
    然后就打开网页,ip:3333打开grafana,默认是admin/admin,然后就添加数据库,添加数据库地址直接写你的实际IP:8086就行,别用http://localhost:8086,后者我一直这里访问不到。grafana设计看这里,前半段不用看了,看我就行,后面添加数据库开始看这里的教程https://philhawthorne.com/getting-started-with-grafana-influxdb-for-home-assistant/
    OVER 谢谢观看
  • e
    easyman105
    lede里面好像带一个控制软件?能用么? iOS fly ~
  • w
    waterfish007
    回复30#easyman105
    只用ha的话,可以,但是你要加其它乱七八糟的东西,就别在路由上折腾了,搞坏了又要复位整个路由。。 一开始我是拒绝的
  • l
    lwd2136
    回复31#waterfish007


    忘了告诉你,今天grafana崩溃了,原因是磁盘空间占满了,为之前设置了存储 大概撑了3月左右 相关log20G
  • s
    superflaner
    我又来膜拜大神了。。
  • w
    waterfish007
    你提前这么一说我就好好准备定期清理。反正我挂nas还有1t多空间一开始我是拒绝的
  • l
    lwd2136
    回复34#waterfish007


    少走坑就好
  • z
    zyboy
    关于容器更新:升级也方便,直接换个docker镜像就行,不用再重新配置。
    请问这步不用重新配置具体怎么操作, 我现在都是先删除原先的容器,在下载更新后映像--在重新配置容器。
  • w
    waterfish007

    我还没试过更新,你试试 一开始我是拒绝的
  • g
    greenjens
    我就想在店铺部署个智能迎宾器,客人来了有红外感应触发机器人迎宾,进行简单的交谈,并能及时通知我
  • y
    yff0216
    这个还是不行,我的搭起来了一堆没法用的

    iOS fly ~
  • f
    firmit
    mark,谢谢分享小尾巴~
  • w
    waterfish007
    萤石摄像头,运动通知,还能对讲 一开始我是拒绝的
  • g
    greenjens
    回复41#waterfish007

    我想让小爱同学和客户聊谈
  • w
    waterfish007
    看着正常啊。有些传感器是不直接显示的,比如我的co2。只有温度湿度才直接显示。 一开始我是拒绝的
  • w
    waterfish007
    初步做是可以的。智能音箱联上之后,tts语音输出。你可以设定条件,对应说什么话。类似我上面判断co2浓度来开关排气。 一开始我是拒绝的
  • h
    hujianetants
    半个月前也折腾了着玩了一把 群晖docker配置HA 连了几个小米 还不错,后来没精力搞,放弃了
  • z
    zyboy
    回复37#waterfish007


    666 成功了额, 感谢你,这问题困扰了我许久。
  • n
    nemojohn
    小米全家桶用户赞一个
    虽然感觉楼主弄得颇复杂 但是数次在D版找到答案的经历已经
    证明了科技树不点白不点 终有用的那天
  • y
    yff0216
    回复43#waterfish007
    零火开关都不能用 iOS fly ~
  • w
    waterfish007
    看看ip有没有错,在路由设置固定ip给它们。还有,看看要不要在hb上装相应的模块。 一开始我是拒绝的
  • c
    cc320525
    我真的看不懂尾巴是用来