智慧家庭 - HA(1) - 在树莓派上架设 Home Assistant
本文索引:
Home Assistant (以下简称 HA) 是一个开源的智能家居网关项目,它可以将市面上所有支持的智能硬件设备整合到一起进行统一管理,并提供了默认的 Web UI。HA 社区开发了海量组件以支持市面上主流的设备,在 IoT 中扮演了大脑的角色。在家庭服务器上架设 HA 有多种实现方式,官方也制作了对应的系统镜像 Hassio ,并推荐使用「树莓派3B+」作为其宿主机器。
为了验证预期效果,最好提前准备好以下设备:
通过 Docker Image 安装及更新一种服务免去了为该服务准备依赖环境的繁琐步骤, HA 官方推出了对应的 Docker Image 且支持树莓派的 CPU 架构,本文主要介绍通过 Docker 安装 HomeAssistant 。如果你不喜欢 Docker ,可以参考 Install Home Assistant 以其他方式安装。
使用 Docker 安装 HA 是非常简单的,官方提供了支持 Raspberry Pi 3 的 Docker Image 和「 安装指南 」:
参数 /path/to/your/config:/config 映射 container 的 /config 至本地主机的物理路径,此处我选择了 ~/homeassistant 。如果希望安装指定版本的 Image,参考「 HA 在 Docker Hub 上的 Tag 列表 」选择版本,例如 0691:
安装完成后, HomeAssistant 的 container 已经开始运行:
查看刚刚指定的配置文件目录,出现了以下文件及目录:
config 目录(此处为 ~/homeassistant/ )下的 configurationyaml 是配置文件的入口点,其他由 yaml 为扩展名的配置文件均是为了实现独立管理而单独分离出来的文件,可在 configurationyaml 文档中找到如下入口载入这些配置文件:
8123 是 Web UI 的默认端口,尝试在浏览器中输入 http://{ip-address-to-raspberry}:8123 访问,得到如下结果:
HA 会自动查找接入同一网络中的智能设备,是因为 configurationyaml 中默认配置了 Discovery 组件:
一切正常之后,每次重启树莓派必须手动执行 docker container start [Container ID]/NAME 的方式来启动 HA 服务,我们需要将其做成服务或加入开机启动脚本,编辑 /etc/rclocal 文件:
重启树莓派, HA 开机启动成功,至此,一个基本款的家庭 HA 搭建就完成了。
HA 目前仍然在快速迭代中,对应的 Docker Image 也会同步放出。要更新以 Docker Container 运行的 HA 实例,只要重新拉取最新版本的 Image 即可:
最近在Android手机上利用LinuxDeploy搭建了一个LEMP/LNMP网站,本文讲述其中的主要流程和注意事项。有一些坑,也有点小窍门,还有一些测试数据,拿手机做其它框架的网站或其它用途的服务器也可参考。
可行性及方案
先评估下性能。在手机上装了个Linux,用sysbench测试下CPU,以PC和树莓派作为对比。
sysbench--test=cpu--cpu-max-prime=20000run
结果是耗时,越短越好。
PC:i74770K:212s
华为荣耀6plus:247s
树莓派3代:535s
树莓派2代:1150s
虽然比PC差远了,但比树莓派快不少(多核应该更强)。其实我的网站以前是跑在树莓派2代上的。树莓派的I/O(SD卡)也是很慢的。
至于方案,理论上来说有这么几类:
APK提供http服务器、MySQL服务器、PHP的支持。——功能受限于APK,不能使用标准的工具集。
用类似于busybox的方式,把Linux下的命令集和需要的服务器都编译到Android上。——累。
双系统,既可以引导Linux,也可以引导Android。——树莓派可以,以前用过RK3188的Android电视盒也可以,理论上手机也可以做到,就看有哪几个手机厂商愿意提供这种支持了。所以,可遇不可求。
模拟器:APK是Linux的模拟器。——慢。
Linux和Android共用内核,使用chroot容器的方式。——这几乎是最完美的方案了,既不破坏Android,又有一个几乎完整的Linux。LinuxDeploy就是这方面的杰出代表。1/6分步阅读
手机网站的建设,有花钱的也有免费的,当然毕竟是工业,手机端才刚刚被接受,做个免费的试试效果吧,首先我们需要搜索一下,找个靠谱的网站,会有不错的效果
多看几个网站,找个规模大的,信誉好的网站,选在需要的版本,打开之后会有很多模板可以进行选择,有标准版的,炫彩版的,行业的还有购物型的,看看自己属于哪个就用哪个
我们是做工业的,今天就用工业的版本和大家说说,选择之后右边会以手机的样式显示出来,可以直接看到生成后的效果,这样子就省的我们做好之后觉得不好再取消了
选择的版本里面,很多东西是需要我们添加的,包括名称啊,大图啊,还有下面很多按钮,和小的,都需要我们重新设计,不要怕麻烦,一点点的弄,看着自己弄的网站你会有成就感的
每个可以更换的及按钮旁边呢都会有个编辑、样式选择、我们在这里直接选择编辑就可以了,进入到编辑页面,它会提示你需要用多大的才可以正常显示,我们按照要求调整我们拍摄的照片就可以了
按照编辑框的提示,一个一个的修改,有的小按钮是需要带连接的,我们直接把网址输入就可以了,做好之后,我们需要点击保存,不然就会消失的,保存好之后有个预览,我们可以用手机扫一下,就可以直接在手机上看到效果了建站步骤?第一步,确定自己的网站类型?第二步,做网站程序(网络上好多,自己修改一下就行)?第三步,购买域名空间(也有免费的,但是不稳定)?第四步,把域名解析到空间?第五步,把程序上传?第六步,调试?第七步,维护备案域名
1、Ngrok
ngrok 是一个反向代理,通过在公共端点和本地运行的 Web 服务器之间建立一个安全的通道,实现内网主机的服务可以暴露给外网。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放,所以ngrok可以很方便地协助服务端程序测试。
参考博客:10分钟教你搭建自己的ngrok服务器
2、Natapp
natapp是 基于ngrok的国内收费内网穿透工具,类似花生壳,有免费版本,比花生壳好。免费版本:提供http,https,tcp全隧道穿透,随机域名/TCP端口,不定时强制更换域名/端口,自定义本地端口
参考文章:NATAPP1分钟快速新手图文教程
3、小米球
小米球是基于ngrok二次开发的内网穿透工具,支持多协议、多隧道、多端口同时映射(http、https、tcp等等),同时支持多种系统win、linux、linux_arm、mac等。具体的使用直接参考官网。
4、Sunny-Ngrok
Sunny-Ngrok同样是ngrok二次开发的内网穿透工具,支持http,https协议,同时支持更丰富的系统和语言:linux、win、mac、openwrt、 python、php等。
教程:Sunny-Ngrok使用教程
5、echosite
echosite同样ngrok二次开发的内网穿透工具,支持多种协议,以前是全部免费的,现在推出了收费版和免费版,可根据自己的需要去选择。
参考教程:EchoSite---让内网穿透变得简单
6、Ssh、autossh
ssh 配合autossh工具使用,因为autossh会容错,自动重新启动SSH会话和隧道。autossh是一个程序,用于启动ssh的副本并进行监控,在死亡或停止传输流量时根据需要重新启动它。 这个想法来自rstunnel(Reliable SSH Tunnel),但是在C中实现。作者的观点是,它不像匆匆忙忙的工作那么容易。使用端口转发环路或远程回显服务进行连接监视。在遇到连接拒绝等快速故障时,关闭连接尝试的速度。在OpenBSD,Linux,Solaris,Mac OS X,Cygwin和AIX上编译和测试; 应该在其他BSD上工作。免费软件。
使用教程:SSH内网穿透
7、Lanproxy
lanproxy是一个将局域网个人电脑、服务器代理到公网的内网穿透工具,目前仅支持tcp流量转发,可支持任何tcp上层协议(访问内网网站、本地支付接口调试、ssh访问、远程桌面)。目前市面上提供类似服务的有花生壳、TeamView、GoToMyCloud等等,但要使用第三方的公网服务器就必须为第三方付费,并且这些服务都有各种各样的限制,此外,由于数据包会流经第三方,因此对数据安全也是一大隐患。
参考教程:业余草推荐一款局域网(内网)穿透工具lanproxy
8、Spike
Spike是一个可以用来将你的内网服务暴露在公网的快速的反向代理,基于ReactPHP,采用IO多路复用模型。采用Php实现。
参考教程:使用 PHP 实现的的内网穿透工具 “Spike”
9、Frp
frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。对于 http, https 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。利用处于内网或防火墙后的机器,对外网环境提供 tcp 和 udp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。
教程:一款很好用的内网穿透工具--FRP、使用frp实现内网穿透
10、Fcn
FCN[free connect]是一款傻瓜式的一键接入私有网络的工具, fcn利用公共服务器以及数据加密技术实现:在免公网IP环境下,在任意联网机器上透明接入服务端所在局域网网段。支持多种系统,有免费版和付费版。
教程:内网穿透工具FCN介绍
上面便是我所知道的内网穿透工具,其中ngrok相关的我基本都用过还有frp,都差不多。大部分都可以免费去使用,但是我不建议大家把这些免费的穿透工具去放到比较重要的云服务器中去使用,容易被攻击。我的小伙伴,开始你的穿透之旅吧。
Proxy-Go 详细介绍
Proxy是golang实现的高性能http,https,websocket,tcp,udp,socks5代理服务器,支持正向代理、反向代理、透明代理、内网穿透、TCP/UDP端口映射、SSH中转、TLS加密传输、协议转换、DNS防污染代理。
Features
链式代理,程序本身可以作为一级代理,如果设置了上级代理那么可以作为二级代理,乃至N级代理。
通讯加密,如果程序不是一级代理,而且上级代理也是本程序,那么可以加密和上级代理之间的通讯,采用底层tls高强度加密,安全无特征。
智能HTTP,SOCKS5代理,会自动判断访问的网站是否屏蔽,如果被屏蔽那么就会使用上级代理(前提是配置了上级代理)访问网站;如果访问的网站没有被屏蔽,为了加速访问,代理会直接访问网站,不使用上级代理。
域名黑白名单,更加自由的控制网站的访问方式。
跨平台性,无论你是widows,linux,还是mac,甚至是树莓派,都可以很好的运行proxy。
多协议支持,支持HTTP(S),TCP,UDP,Websocket,SOCKS5代理。
TCP/UDP端口转发。
支持内网穿透,协议支持TCP和UDP。
SSH中转,HTTP(S),SOCKS5代理支持SSH中转,上级Linux服务器不需要任何服务端,本地一个proxy即可开心上网。
KCP协议支持,HTTP(S),SOCKS5代理支持KCP协议传输数据,降低延迟,提升浏览体验
集成外部API,HTTP(S),SOCKS5代理认证功能可以与外部HTTP API集成,可以方便的通过外部系统控制代理用户。
反向代理,支持直接把域名解析到proxy监听的ip,然后proxy就会帮你代理访问需要访问的HTTP(S)网站。
透明HTTP(S)代理,配合iptables,在网关直接把出去的80,443方向的流量转发到proxy,就能实现无感知的智能路由器代理。
协议转换,可以把已经存在的HTTP(S)或SOCKS5代理转换为一个端口同时支持HTTP(S)和SOCKS5代理,转换后的SOCKS5代理不支持UDP功能,同时支持强大的级联认证功能。
自定义底层加密传输,http(s)\sps\socks代理在tcp之上可以通过tls标准加密以及kcp协议加密tcp数据,除此之外还支持在tls和kcp之后进行自定义加密,也就是说自定义加密和tls|kcp是可以联合使用的,内部采用AES256加密,使用的时候只需要自己定义一个密码即可。
底层压缩高效传输,http(s)\sps\socks代理在tcp之上可以通过自定义加密和tls标准加密以及kcp协议加密tcp数据,在加密之后还可以对数据进行压缩,也就是说压缩功能和自定义加密和tls|kcp是可以联合使用的。
安全的DNS代理,可以通过本地的proxy提供的DNS代理服务器与上级代理加密通讯实现安全防污染的DNS查询。
Why need these
当由于安全因素或者限制,我们不能顺畅的访问我们在其它地方的服务,我们可以通过多个相连的proxy节点建立起一个安全的隧道,顺畅的访问我们的服务
微信接口本地开发,方便调试
远程访问内网机器
和小伙伴一起玩局域网游戏
以前只能在局域网玩的,现在可以在任何地方玩
替代圣剑内网通,显IP内网通,花生壳之类的工具
提供本人用过的两种思路第一种思路:第一步,可以通过esp8266或者其他网络模块让你的arduino板子可以访问网络第二步,得看你具体需要,主要是通过http协议或者tcp协议访问服务器,给几个例子:1Yeelink平台上远程查看室内温度
http://wwwyeelinknet/developer/doc/48
2可以自己写服务器端程序,可以通过写访问服务器的js或者PHP脚本,然后再通过http协议访问第二种思路:把arduino作为下位机,树莓派作为上位机,Arduino可以通过串口连接等方式将数据传给树莓派,再通过树莓派访问,树莓派使用本质就是使用Linux操作系统,Linux操作系统下如何访问数据库就不再赘述一技在手天下我有!如您觉得本文对您有用烦请收藏转发加关注哟~笔芯
被誉为 “世界上最流行最便宜的小型电脑” 的「树莓派」 Raspberry Pi 是一款性价比超高的迷你电脑主机 (仅有信用卡大小),深受全球开发者、极客、技术爱好者们的追捧和喜爱。
树莓派可以安装多种 Linux 系统发行版 (官方为 Debian 的衍生版),可当服务器搭建各种网站、应用服务来使用,也能用来学习编程、控制硬件或日常办公。由于树莓派的体积很小很轻,并且功能极其丰富强大,这也使得它的应用范围和潜力几乎是无限的……
树莓派 4 代正式发布,性能大幅飙升!
如今 Raspberry Pi 4 「树莓派 4 代」终于正式发布了!!官方定价依然是 $35 美元起不变,但整体性能相比 3 代要提升了三倍之多!多媒体性能为四倍,即使同时外接两台 4K 显示器双屏工作也毫无鸭梨。这么小的体积加上如此强劲的性能,这将是一款再次改变行业规则的产品。
而且除了 Linux 外,树莓派还能运行「免费的 Win 10 物联网版系统」!无论是学习、办公、编程、搭建智能家居、工控设备、还是用于特定的工作场景,树莓派都是最理想的小型电脑。也是每一个喜欢折腾电脑、折腾数码、折腾程序的朋友的必备玩物。
树莓派四代 (Raspberry Pi 4 Model B) 在硬件方面迎来了巨大的升级!首次搭载了 4GB 的内存 (1G / 2G / 4G 可选),并且引入 USB 30 接口,同时支持双屏 4K 输出和 H265 硬件解码;处理器搭载了博通 15GHz 的四核 ARM Cortex-A72 处理器,性能提升可谓是质的飞跃。
接口方面,树莓派 4 支持双频无线 Wi-Fi (80211ac)、搭载蓝牙 50,提供两个 Micro HDMI 20 视频输出接口,支持 4K 60FPS;内置千兆以太网口 (支持 PoE 供电)、MIPI DSI接口、MIPI CSI 相机接口、立体声耳机接口、2 个 USB 30 和 2 个 USB 20,扩展接口则依然是 40 针的 GPIO。供电方面也改成了 5V/3A 的 USB-C 接口供电, 升级可以说是全方位的 。
新的 树莓派 几乎可兼容所有以往创建的树莓派项目、配件和应用。同时,其40针扩展 GPIO 接口使其能够添加更多传感器、连接器及扩展板或智能设备,前26针引脚与A型板和B型板保持一致,可 100% 向后兼容,无需担心软硬件和配件的生态问题。
树莓派官方提供了 Raspbian 操作系统,一款基于 Debian 优化修改而来的 Linux 发行版,也是最常用的一个版本,专为树莓派而生,通用性强。
此外,你也能在官网下载到 Ubuntu 类或其他诸如专为播放高清**而生的 OSMC、LibreELEC 等各种版本的系统,如下:
你几乎完全可以将树莓派 4 当做一台完整的台式电脑甚至是专业的服务器来使用,而得益于性能的大幅提升,本次升级后,树莓派的应用范围将会又得到了全方位的扩展。
点击开始播放视频
如果你的工作大多可以在 Linux 下完成的话,比如开发,或者用 WPS for Linux 写文档、上网、收发邮件等,那么直接将树莓派随身携带,上下班通勤或出差时,也许会比带一个笨重的笔记本要轻松方便得多。
除了 Linux 之外,微软也已经跟树莓派基金会达成合作以确保 Windows 10 可以适配树莓派新款产品,如今完美适配树莓派 2 / 3 代的 Windows 10 IoT core 物联网核心版 系统已经「免费」提供给用户下载。截稿为止,4 代似乎还未适配。
下载 Win10 IoT 物联网系统 for 树莓派
起初,树莓派是为鼓励孩子们学习编程和计算机知识而推出的奇趣硬件。但如今,除了教育领域,树莓派在硬件编程、智能家居、极客和计算机技术爱好者中的受欢迎程度完全超出想象。
随着新版本硬件性能的提升,以及全球极其大量玩家们的青睐,树莓派的玩法和实用性已经丰富到无法统计的地步了。直接当办公电脑使用、丢在家里当 NAS、离线下载、做代理服务器、VP那个N、搭建个人网站、私有网盘、搭建智能家居中枢、小型影音播放机,使用各种开源 Linux 程序给局域网提供服务等都是非常常见的用途。
总之,树莓派不仅会为 学习编程 带来更好的体验;给专业人士带来更强大高效稳定的硬件平台;对于爱好者们,新的树莓派也提供了更大的发挥空间——因为它完全就能一台性能充足的台式电脑那样,可以做到几乎任何事情!
树莓派的用处有:
1、音乐播放器
你可以把树莓派当作音乐播放器,它可以存储歌曲,可以联网播放,可以外接音箱。总之,你可以把树莓派当作一个mp3,当然做这些对于它来说有点大材小用。
2、服务器
随着传统博客淡出历史舞台,随着自媒体高速发展,现在很多人都希望可以搭建一个属于自己的专属网站或者博客。而网上的主机服务器的费用都不便宜,但你可以使用树莓派来充当网站服务器,而你需要支付的只是它的电费而已。
3、个人电脑
树莓派可以安装操作系统,可以外接显示器和键盘,因此你完全可以把它当作一台个人电脑,并且这是一个便携的电脑。
4、云文件存储
随着各家网盘的关闭,每个人都意识到将自己的资料保存到公共网盘并不安全,因此,很多人选择私有网盘,选择付费保存文件,但是当你有了树莓派之后,你完全可以把它当作云文件存储器,你可以使用它进行文件的保存,而保存的期限就是它的寿命。
5、监控器
只要给树莓派外接摄像头的话,它就可以被当作监控器使用。对于监控数据的保存,你可以完全按照自己的意愿来设置。
6、游戏机
对于喜欢街机的玩家,你完全可以使用树莓派搭建一个自己的街机游戏机,github上有完整的教程,有完整的项目资源,只要你愿意,可以分分钟造出自己的街机。
7、聊天机器人
人工智能的发展让很多人对于智能家居很感兴趣,而拥有一个可以聊天的机器人是很多人和小朋友的梦想,而使用树莓派你就可以实现一个聊天机器人,并且你可以控制聊天机器人的喜好,因为它是你创造出来的。
一、关于树莓派动机如之前在某篇文章最后写的,发现了可以用ipv6做反向代理,以及树莓派可以安装Ubuntu 1404后,原本只是感兴趣的树莓派瞬间就提上了购买的日程。购买树莓派、外壳和散热片买了树莓派2B和一个外壳以及散热片。HDMI转DVI转接口因为显示器不支持HDMI,然后考虑到比较流行的HDMI转VGA是从数字信号转为模拟信号,转接口内部用芯片实现,且对于树莓派而言对于HDMI转VGA口选择无源还是有源的争论不绝于耳;所以直接上HDMI转DVI,不需要用到芯片转换,可靠方便多了。注意DVI口也有多种型号,注意显示器的支持。电源关于电源的问题,正好我有个SONY的15A电源适配器,就直接拿来用了。不过收到的树莓派里说明书中写着要求电源为大于18A的,但鉴于我不怎么用USB口,15A的树莓派运转起来还算良好。microSD卡microSD卡就是坑了,最开始搜到的树莓派需要用哪种内存卡,看到有人说是全尺寸的SD卡我就打算直接用闲置的SD卡了,class 10的应该能满足了;收到货等到要插卡的时候才发现需要的是microSD卡,真不知道是谁说的是全尺寸的SD卡。于是又下单等了一天收到microSD卡和读卡器。USB HUB因为本身出发点是做迷你服务器用,所以买了个带电源的USB HUB,供带动移动硬盘。二、安装Ubuntu 1404 LTS安装Ubuntu1404完全遵照的Ubuntu wiki中的步骤。下载并写入镜像照着wiki中提供的地址下载,下载完后解压img供写入。写入到microSD卡安装树莓派官方提供的软件和步骤。将microSD卡插入读卡器,然后插入电脑;打开Win32DiskImager,选择刚才解压的img镜像,选择microSD卡的盘符,然后write。安装设置Ubuntu注意这个Ubuntu镜像并不包含openssh,所以这是必须直连树莓派。插上键盘,接上显示器,然后接上电源,树莓派就开始工作了。Ubuntu启动完毕后,登录用户名密码都是ubuntu。开启root账户对于这个需要折腾的Ubuntu来说,直接用root账户会方便不少。sudo passwd root然后输入当前用户的密码,就是ubuntu了;然后输入两次root的新密码。su root输入root密码就进入root账户啦。使用全部分区空间此时Ubuntu并没有利用到全部SD卡的空间,需要手动设置。1fdisk /dev/mmcblk0删除第二分区:按d,再按2重建第二分区:按n,再按p,再按2,再按enter,再按enter,再按w然后重启Ubuntu1reboot输入resize2fs /dev/mmcblk0p2这样Ubuntu就使用到了全部SD卡的空间。更新源这是必须的步骤了apt-get updateapt-get upgrade设置SWAP此Ubuntu本身没有SWAP,需要手动建立,不过这里有个自动完成SWAP设置的软件,此软件会默认设置RAM两倍大小的SWAP分区,所以树莓派中会生成2G大小的SWAP分区。apt-get install dphys-swapfile安装并设置完成后,SWAP即设置完成。安装SSH服务器这个是必装的了,允许SSH访问apt-get install openssh-server这样就算初始化设置完成了,因为这个镜像相当于是Ubuntu的最小镜像,所以很多软件或依赖都没有安装,所以可能很多apt-get install都会顺带安装一大堆依赖。
0条评论