分类
Home Assistant 树莓派Raspberry

树莓派Raspbian如何安装Home Assistant 非img刷卡安装

Home Assistant 是一款基于Python语言的智能家居开源系统,支持很多品牌的智能家居设备,包括国内的小米、天猫精灵、小度语音等,可以实现设备的语音控制、自动化控制等等。

本文讲的是手动安装不是刷Home Assistant的img,技术奇客试了很多次和多个官方的rom,都未能成功。

by itgeeker.net

树莓派系统实践环境

  • Raspbian Lite (buster)
  • Python 3.7 or later
  • Python 3 虚拟环境 Virtual Environment
  • pip3工具

安装Home Assistant过程

1. 安装python3及依赖

sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install python3 python3-dev python3-venv python3-pip libffi-dev libssl-dev libjpeg-dev

关于python3.8的编译安装,请参看Ubuntu/Debian/Raspbian源码编译安装Python3.8 及默认版本选择配置

by itgeeker.net

update@2020-1-14 增加依赖包libjpeg-dev的安装,否则在使用百度TTS时,模块baidu-aip==1.6.6需要Pillow,然后需要jpeg这个依赖包。错误内容:

by itgeeker.net
The headers or library files could not be found for jpeg,
a required dependency when compiling Pillow from source.

2. pip国内镜像配置

很多安装Home Assistant未成功的,往往都是因为python依赖模块无法成功安装,而其中由于网络不通也占比不少。

关于pip镜像配置,请参看:python模块管理 pip临时使用及永久镜像配置

3. 添加Home Assistant账号及安装目录

Home Assistant不能使用root运行,建个专用用户吧,然后顺便把GPIO的权限都给它,方便以后连接其它传感器。

sudo useradd -rm homeassistant -G dialout,gpio,i2c
cd /opt && sudo mkdir homeassistant
sudo chown homeassistant:homeassistant homeassistant

4. python虚拟容器创建及Home Assistant安装

sudo -u homeassistant -H -s 
cd /opt/homeassistant
python3 -m venv .
source bin/activate
python3 -m pip install wheel
cd /opt/homeassistant && pip3 install homeassistant

请在homeassistant用户并激活venv情况下安装。如果未配置pip国内镜像源,可以使用一下临时镜像命令

by itgeeker.net
pip3 install homeassistant -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

4. Home Assistant运行

sudo -u homeassistant -H -s
source /opt/homeassistant/bin/activate
hass

首次多给些时间让Home Assistant自动配置一下, 根据你网络的情况大概10-30分钟吧。 然后就可以使用你的浏览器打开树莓派ip地址的8123端口了:

http://192.168.xxx.xxx:8123

by itgeeker.net

5. Home Assistant更新

sudo -u homeassistant -H -s
source /opt/homeassistant/bin/activate
pip3 install --upgrade homeassistant

6. Home Assistant日志log

tail -f -n 55 /home/homeassistant/.homeassistant/home-assistant.log

7. Home Assistant配置文件

/home/homeassistant/.homeassistant/configuration.yaml

关于配置树莓派使用systemd配置Home Assistant自动启动,下篇介绍。

by itgeeker.net
分类
python

Ubuntu/Debian/Raspbian源码编译安装Python3.8 及默认版本选择配置

Python 2 即将退出历史舞台,赶紧熟悉python 3的安装及配置吧。

1. 安装编译依赖包

sudo apt update
sudo apt-get install -y build-essential tk-dev libncurses5-dev libncursesw5-dev libreadline6-dev libdb5.3-dev libgdbm-dev libsqlite3-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev zlib1g-dev libffi-dev tar wget vim

2.下载python3.8源代码

cd /tmp && wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
tar -zxf Python-3.8.0.tgz
cd Python-3.8.0

3.编译及安装python3.8

./configure --enable-optimizations
make -j 4 #如果你的系统有8核,可以使用-j 8
make altinstall

不要使用标准make来安装,否则会覆盖系统默认的python版本

by ITGeeker

4.python3.8版本确认

python3.8 --version

5.设置python3.8版本为默认版本

python -V #查看当前默认版本
echo "alias python='/usr/local/bin/python3.8'" >> ~/.bashrc #刚刚编译安装目录
source ~/.bashrc
python -V #确认是否已切换成功

echo “alias python=’/usr/bin/python3.7′” >> ~/.bashrc #切换到python3.7 apt安装版本

by ITGeeker
分类
python 技术奇客

python模块管理 pip临时使用及永久镜像配置

pip安装依赖包速度很慢,此时您可能需要使用国内镜像来加速,特别是配置Home Assistant时,可能就是因为无法获取依赖包而配置失败。

pip临时使用镜像安装python依赖包

可以在使用pip的时候,加上参数-i和镜像地址,如果讨厌安全提示,添加 –trusted-host. 例如临时使用清华镜像安装python模块:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas --trusted-host tuna.tsinghua.edu.cn

pip永久使用镜像安装python依赖包

首先查看当前用户是否有pip配置文件:

cat ~/.pip/pip.conf

Windows的pip配置文件位于:

%HOME%\pip\pip.ini

by ITGeeker

如果没有该文件,手动创建一个

mkdir -p ~/.pip
vi ~/.pip/pip.conf

如果想使用阿里云镜像,请添加:

[global]
index-url = https://mirrors.aliyun.com/pypi/simple
[install]
trusted-host = mirrors.aliyun.com

注意:新版ubuntu要求使用https源

by ITGeeker

如果你有root权限,那么就全局更改吧:

echo -e "
[global]
index-url = https://mirrors.aliyun.com/pypi/simple
[install]
trusted-host = mirrors.aliyun.com
extra-index-url=https://www.piwheels.org/simple">/etc/pip.conf
cat /etc/pip.conf

国内常用pip镜像包括:

  1. 阿里云 http://mirrors.aliyun.com/pypi/simple/
  2. 豆瓣http://pypi.douban.com/simple/
  3. 清华大学 https://pypi.tuna.tsinghua.edu.cn/simple/
  4. 中国科学技术大学 http://pypi.mirrors.ustc.edu.cn/simple/
  5. 华中科技大学http://pypi.hustunique.com/
分类
android

scrcpy通过wifi把手机无线投屏到电脑上 并通过键盘和鼠标直接操作手机

最近华为更新EMUI之后,使用华为的有些笔记本或者平板,通过自带的“多屏互动”可以直接把华为手机投屏到笔记本电脑或者平板,而且可以直接操作,这样就不用在两个设备之间频繁的切换使用了。而且可以在电脑里刷抖音啦!

screenshot
scrcpy是开源的画面投屏项目 :https://github.com/Genymobile/scrcpy

如果没有使用华为设备,那么我们可以通过scrcpy这个开源程序实现相通功能。当然这个是只针对android手机的,不需要Root.

开启手机USB调试功能

不管有线连接或者无线连接,首先都要开启手机的USB调试 ,具体路径一般雷同,不同手机品牌路径和表述有所不同。开启方法是:

  1. “设置”->”关于手机”-> 连续点击版本号5次左右就会开启 “开发者选项”。
  2. 然后在 “设置”->” 系统和更新”->” 开发人员选项” 中同时开启 USB调试 和 USB调试(安全设置)。

也可以用adb usb命令来测试连接是否成功显示restarting in USB mode

手机画面有线投屏

很简单,从 https://github.com/Genymobile/scrcpy下载zip文件,解压缩,然后双击scrcpy.exe就会在电脑屏幕打开你的手机屏幕。

手机画面无线投屏 WIFI

  1. 手机打开调试模式,先有线连接到电脑
  2. 将手机与电脑连接到同一个网络中(也可以打开手机热点,电脑使用手机热点连接)
  3. 通过ADB设置手机打开tcpip监听端口,在CMD命令下输入:adb tcpip 8888
  4. 查看手机的ip地址,设置 -> 关于手机 -> 状态消息;也可通过ADB查看adb shell ifconfig
  5. 无线连接到手机 adb connect 192.168.1.177:8888(替换自己的ip地址)
  6. 提示成功之后,就可以拔掉数据线了
  7. 双击scrcpy.exe开启无线投屏,手机出现在电脑里啦

注意:如果没有adb命令,可以去android官网看看https://developer.android.com/studio/run/win-usb

也可以直接在scrcpy目录运行cmd,有自带的adb可用

by 技术奇客

Wifi相比USB连接存在速度问题,scrcpy默认是8Mbps,如果延迟严重,可以考虑降低速率:
scrcpy –bit-rate 2M –max-size 800
# 缩写:scrcpy -b2M -m800
同样对于视频流播放来说可能不会太理想。

by ITGeeker

scrcpy快捷键

直接分享一个快捷键图片吧,更多帮助可通过 scrcpy –help 来获取。

scrcpy快捷键

手机录屏: 

scrcpy –record mobile_scr_record.mp4

by 技术奇客
分类
OpenWRT 树莓派Raspberry

刷了OpenWRT的路由器+旁路由配置方法(树莓派3B/3B+使用OpenWRT系统做旁路由)

技术奇客ITGeeker配置了两套主路由+旁路由方案,分别是:

主路由旁路由
Linksys WRT1200AC, Raspberry 3B
Netgear WNDR4300 Raspberry 3B+

OpenWRT img采用的是 https://mlapp.cn/369.html 的第八版,作者在该页面的介绍非常详细,编译的OpenWRT可同时适用Raspberry 3B及3B+,甚至尝试性支持了Raspberry 4B。最新的版本是 20191007 日常跟进更新(第八版) ,请大家多多支持该作者。

如果去官方下载最新版OpenWRT18.06.4,Raspberry 3B可以正常运行,但是Raspberry 3B+不管用snapshots还是其它版本,官方的还没有成功过。

具体刷机和配置,请查看该作者的详细介绍,这里不重复了。

该链接介绍的是Raspberry做软路由的方法,ITGeeker技术奇客这次介绍的是旁路由设置,所以在“网口设置”部分不要配置和添加wan口啦!

旁路由和软路由配置的区别

技术奇客ITGeeker的Netgear WNDR4300和Linksys WRT1200AC都刷了OpenWRT官方的18.06.4,如果是官方的rom其实也没关系,尽管Linksys官方rom设置非常简单,甚至无法设置自己的网关(据说挺多官方路由器都不让设置网关),也不影响旁路由设置。一开始ITGeeker也是看到网上说的要主旁要互设网关,实践结果其实不需要的。

主路由设置

  1. 假设ip地址为192.168.1.1
  2. 进入网络-接口-LAN,关闭DHCP(不关可能也可以,旁路由设置强制也行),英文 Ignore interface
  3. 在IPv6设置里禁止IPv6的前三个选项
  4. 不需要设置网关Gateway和自定义DNS

旁路由设置

  1. 同样进入 进入网络-接口-LAN,选择固定网址,ip地址配置为何主路由同一地址段例如:192.168.1.2(如果不是同一地址段,自行配置子网掩码)
  2. 网关Gateway为主路由ip地址:192.168.1.1
  3. 自定义dns服务器:114.114.114.114 换行添加:202.96.209.133或者使用你当地最快的公共DNS
  4. 开启DHCP,高级设置里面开启强制选项。即使检测到另一台服务器,也要强制使用此网络上的DHCP
  5. 同样,禁止IPv6, 在IPv6设置里禁止IPv6的前三个选项

建议重启主和旁路由,重启电脑,然后查看网络连接,看看自动获取的网关和DNS是否都为旁路由ip地址: 192.168.1.2

技术奇客提醒

如果有酸酸乳服务器,在旁路由配置并启用后,在服务-酸酸乳-状态里可以测试是否可以连接谷歌和百度,然后直接打开网站看看是否设置成功了。

问题

ITGeeker有发现网络时而有断续的问题,发生在Raspberry 3B+做旁路由的时候,不知道是否OpenWRT对Raspberry 3B+支持不好的问题。

后来ITGeeker把Raspberry 3B+的LAN口桥接关闭并把无线关闭后似乎好多了。

好处

  • 可以突破主路由的CPU和RAM的限制,油管可以看更高清的视频,速度也更快,酸酸乳的本质就是加密算法。
  • Raspberry Pi 3作为软路由的话,自带的WIFI太弱,加个无线网卡又要破费,作为旁路由仍然可以使用主路由的无线功能。

分类
技术奇客

Mate 30 Pro成功安装GMS的三两事

参考文章: How to install Google apps on the Huawei Mate 30 Pro 有条件的可以直接看视频: https://youtu.be/zn1pH-O3p00

需要工具:谷歌服务助手 在手机端打开,点击下载的app-release.apk进行安装,选择运行存储权限后开始下载。

Attention

多试几次,幸亏有下载续传功能,核心库我试了不下10次,花了将近10分钟吧,终于下完,其他的倒是很顺利,很快就完成。中间尝试过翻越,似乎不翻越更顺利。


第一坑:正完成下载后,就会自动安装,安装好就会出现“向谷歌注册设备”,这一步请略过,我试了很多遍都无法成功,不用浪费时间,因为不影响使用。会一直显示”正在注册设备至谷歌服务”,知道失败叫你重试。

第二坑:现在你可以看到“Play 商店”已经被安装,点击之后会一直显示正在验证之类的信息,一直会失败,翻越了也一样。重要:此处需重启设备,再点击 “Play 商店”Sign In就会成功,当然需要提前翻越。

提示:

在你安装了 “Play 商店” 之后,你可以去github去下载ss release新版本安装,否则提示没有GMS无法使用。去官网下载outline是可以直接使用,但没啥配置可选项;最方便的还是在电脑的小飞机上选择“允许其他设备连入“,然后再手机wifi选择代理来配置最简便,前提你的电脑有小飞机。

外媒提示,使用完谷歌服务助手后,应该选择卸载,没必要让它运行

  1. 首先到-设置-安全-更多安全设置-设备管理器-谷歌服务助手,选择“解除激活”。当时技术奇客ITGeeker没有成功,提示:由于另一个应用正在显示这些选项之上,设置无法回应您的操作,然后也无法卸载。
  2. 原因: 安卓安全机制规定,当其他窗口覆盖了设备管理授权界面时,点击激活/解除激活按钮不响应操作,并弹出提示。
    注:开启悬浮导航、备忘录速记功能也会导致此故障。 我的原因就是开启了备忘录速记功能,关闭后成功解除激活,然后直接点击卸载应用就搞定了。
分类
技术前沿 技术奇客

2019我的游乐工作平台6.18升级记

之前,技术奇客发布过一篇 2019我的游乐工作平台 多桌面双显示器使用,当中有提到还在使用10年前的配置升级后还在使用的电脑,虽然的确还算顺畅,但到每天下午就会开始变慢,可能原因可能是下午SSD温度高了,所以速度变慢了。以32G内存来说,没有理由是因为内存吃紧,而且从Windows10自带的性能能来看,CPU,内存,硬盘,网络资源都是够的,所以想想应该是机器温度高了引起的。

另外从每次打开文件浏览器的速度也发现读取和存储的速度明显下降。SSD硬盘用的三星非Pro版本,也就是非MLC芯片( EVO 使用的是 3D TLC 技术,PRO 使用的是 2D MLC 技术),等缓存区满了,速度可能就更慢了。而且使用的SATA接口速度也跟不上NVMe接口的速度了。

虽然加了PCI-E的卡,插了NVMe PCI-e转接卡,装了NVMe的固态硬盘,但是华硕主板P8Z77-V LK的BIOS不支持从NVMe接口启动,网上有方法,但折腾这个有些太复杂;二来主板的PCI-E说是支持3.0,但转接卡只能到1.1或者2.0,而且热重启后硬盘就会找不到(没找到原因,但确实有这个问题)。

6.18活动来袭,这次买了个微型超强电脑,预计能用个5年吧。硬盘最贵,直接用了MLC Pro版本的,2236块多大洋,期待这样不用为缓存写满了而被降速而担心了。主机就是Intel NUC8i7HVK,就是有个酷酷的骷髅头的冥王峡谷最高配。其实用下来和华为Matebook X Pro 2018款速度差不多,当然可能玩游戏时应该显卡会更强大些。但是显卡也只能达到古墓丽影10的最低要求。办公来说还不错呢。

显示器: 三星(SAMSUNG)34英寸21:9超宽屏 1800R曲面 WQHD高分辨率 爱眼 HDMI/DP接口 可升降电脑显示器C34H890WJC 3100元

屁股的数量决定了显示器的视觉冲击。为了买这个显示器,ITGeeker还专门去了趟电脑城体验才决定买的,因为选择4K或者这种带鱼屏有些犹豫。去了多年未曾到访的电脑城,除了年轻人都换成了中老年皮条客,买家用商用PC的都换成了ROG之类的游戏电脑,让人印象深刻的就是已经有不少47寸的带鱼屏摆出来了,所以上个34寸应该是当下必须的。没选择4K屏还是觉得没有宽广的看着更震撼。

这会用VSC可以四个文档并排一起看了 ,键盘设个左右分屏快捷键,直接可以当两个屏幕使用的感觉,还更加方便,在接了一个22寸来查看输出信息,还是比之前的强了不少。

再来一张和女儿一起搭建完成的米兔机器人合影,主要是女儿自己完成大部分1000多个零部件的组装,我在关键点给与一些指导。

分类
Linux

Win 10和Ubuntu 18.04安装在同一个硬盘并实现GRUB界面双系统启动

原先在自己的华为Matebook X Pro上直接用Ubuntu的启动U盘安装,选择与windows共存,一切非常顺利。这次在PC机上安装也成功,就是不出现GRUB启动界面,直接到grub>恢复界面。但是,如果用BIOS的UEFI启动,也就是按F8选择启动盘,win10和ubuntu18都能顺利启动。

我想可能是安装不太成功,于是用DiskGenius删除掉Ubuntu的分区,重新安装,结果就再也不会有选择与Windows共存的选项,然后各种尝试/boot分区,主盘和逻辑盘、启动设置分区选择都未能成功过,甚至删了EFI分区的Ubuntu目录,也不再出现与Windows共存的安装选项,而选择其他方式,网上的那些都方法都没有成功过。

有看到一篇用grub恢复命令来恢复GRUB启动界面的,但命令太多,而且只能key in没去尝试,ITGeeker技术奇客觉得技术不带这样欺负人的。

于是选择了Ubuntu启动盘的试用Ubuntu,安装工具boot-repair尝试修复:

sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update

sudo apt-get install -y boot-repair && boot-repair

据说好多人选择自动修复都成功了,但是ITGeeker技术奇客不太幸运没有成功,错误提示:

The current session is in Legacy mode. Please reboot the computer, and use this software in an EFI session. This will enable this feature. For example, use a live-USB of Boot-Repair-Disk-64bit (www.sourceforge.net/p/boot-repair-cd), after making sure your BIOS is set up to boot USB in EFI mode.

Please write on a paper the following URL:
http://paste.ubuntu.com/p/MQ8dPKFdZ3/

If you are experiencing boot issues, indicate this URL to people who help you. For example on forums or via email.

当时ITGeeker想想这个也太折腾人,所以没有去尝试,而且手上有个Sandisk Cruzer Blade 8G,红色的那个,用RUFU写了Ubuntu安装盘之后用UEFI启动就没成功过,想想可能这U盘不知道此UEFI启动,所以又尝试了各种安装方法,包括工具EasyUEFI,BOOTICEx64.exe等,都还是未能成功,总结出来,不管选主分区还是逻辑盘,什么/boot, /home之类都没啥关系,最终选择安装方法,除了一个biosgrub保留分区(Ubuntu提示必须的)+ /根分区,其他一概不设置了,安装完后还是不能找到Ubuntu的启动盘符。

翌日,ITGeeker那个Sony U盘,按照上面的反馈,去http:// www.sourceforge.net/p/boot-repair-cd下载了维修工具,乖乖708M之大,黔驴技穷,只好试试了。

使用UEFI启动维修硬盘,实际就是个Ubuntu的系统加工具,但比试用Ubuntu时安装的要多一些内容,然后经过十几分钟的修理,中间还要根据提示,在Terminal输入相关命令来配合维修,终于GRUB的菜单恢复了,里面多了几个启动的杂项,但Win10和Ubuntu 18都能顺利启动。

ITGeeker技术奇客中间还考虑过自行修改efi文件,但据说这东西要用C语言编写,然后编译,太过复杂。也希望Linux能在多系统启动方面都些方便,这样使用Linux的人自然会越来越多。

分类
python

Python处理文件名或路径名中无法decode代码问题

首先讨论的是python 2处理时的问题,其实不是单单指中文名的问题,即使是中文名称,如果能够decode还是没问题的,比如用如下这些方法:

  • – coding: utf-8 –– 或者 –– coding: gbk –
  • 强制utf-8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
  • .decode(‘gbk’).encode(‘utf-8’)
  • unicode(path_name,’utf8′)

当然path前加r, 或者wingdows转用反斜杠,然后用了这四种方法还不行,windows下执行提示windows error 123之类的错误,发现文件名中会有无法decode的符号问号 ?的,基本就是在python 2之下无法解决了。

Windows Error错误参考:

  • WindowsError:[Error 2]        不存在这个文件
  • WindowsError:[Error 3]        没有这个路径
  • WindowsError:[Error 5]        权限问题
  • WindowsError:[Error 13]       该文档被其它程序占用,处理不了  
  • WindowsError:[Error 123]      路径语法有误
  • WindowsError:[Error 145]      目录非空,多在删除非空目录时出现

不要再花时间去解决python 2处理文件名的问题了,基本无法解决的,还是转用python 3吧,ITGeeker技术奇客测试已完美解决,用的是python 3.6的版本,而且是WSL的Ubunt版本测试的。而且现在更新到win10 2019 May的更新版,可以在微软商店直接下载3.7官方版本了,这是催促大家赶紧放弃python 2的节奏。

Python 3.6默认使用utf-8编码,当然你也可以再加上reload在文件首,但和python 2有所不同:

import importlib
import sys
importlib.reload(sys)
分类
技术前沿

5G相对4G的8大关键能力提升

一直都在说5G如何如何好,ITGeeker技术奇客今天来掰掰5G在那些关键参数得到了提升。

指标流量密度连接数密度时延移动性能效用户体验速率频谱效率峰值速率
4G参考值0.1 Tbps/Km210万/平方公里空口10ms350Km/h1倍10Mbps
(urban/suburban)
1倍1Gbps
5G取值 10 Tbps/Km2 100万/平方公里 空口1ms500Km/h100倍提升0.1-1Gbps至少3倍提升20Gbps

有些数字可能需要研究一下才知道什么意思,但只要对比数值的10倍百倍的增长率我们就应该觉得5G是非常值得期待的。