2018年7月

斐讯N1安装Home Assistant,把小米和斐讯智能硬件连起来

其实种草树莓派很久了,搭Home Assistant,把小米和斐讯智能硬件连起来,省的米家+斐讯N个app来回切换

终于发现N1能装Linux了,耗电低,边挖矿边当盒子边当私人云盘边当树莓派,相当靠谱

看图

微信图片_20180702181751.png

先看上篇,N1降级、刷官改、装Ubuntu,再正式开始

smzdm上有一篇,hassbian上有N篇,试了的多个都没成功,最后用如下这个成功了,当然也结合了别的教程,致敬原贴
https://bbs.hassbian.com/forum.php?mod=viewthread&tid=3956&highlight=ubuntu%2B16.04

自启动参考这个
https://post.smzdm.com/p/553097/

一、安装准备和安装

最新home assistant需要python3.5.3 以上,Ubuntu 16.04版系统自带是3.5.1,先升级3.6.5
我是在root下安装的,最后又移到了home下,所以新安装可以试试在home下安装

可以先查看版本,升级过程中记得查询版本,

python --version
python3 --version
pip --version
pip3 --version

我升级某个过程中出错查询发现之前之前升级的还没有显示最新的,重启再查询就ok了,但是Linux Deploy里的系统没法用命令行重启似乎,可以用遥控操作Linux Deploy停止再启动,其实最简单的办法是ssh登陆N1命令行重启,是N1不是Ubuntu,ip地址一样,但是官改2.0的ssh端口是22,用户名密码root/toor

#重启N1命令
/system/xbin/reboot

#正式开始

sudo apt-get install -y wget
sudo apt-get install make 
sudo apt-get install -y gcc

#安装zlib,这里zlib解压文件似乎不同,注意

sudo wget http://www.zlib.net/zlib-1.2.11.tar.gz
sudo tar -xzvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
sudo ./configure
sudo make all
sudo make install
sudo make clean
sudo make distclean
cd ..

继续

sudo apt-get update
sudo apt-get install -y build-essential python-dev python-setuptools python-pip python-smbus
sudo apt-get install -y build-essential libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get install -y zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install -y libssl-dev openssl
sudo apt-get install libffi-dev

安装pythone3.6.5

sudo wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
sudo tar -xzvf Python-3.6.5.tgz
cd Python-3.6.5
sudo ./configure
sudo make all
sudo make install
sudo make clean
sudo make distclean
cd ..

升级pip

sudo pip install --upgrade pip
sudo pip3 install --upgrade pip

升级完毕后再查询一次,确认版本如下

root@localhost:~# python --version
Python 2.7.11+
root@localhost:~# python3 --version
Python 3.6.5
root@localhost:~# pip --version
pip 10.0.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)
root@localhost:~# pip3 --version
pip 10.0.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)

安装虚拟环境:

sudo apt-get install -y python3-venv

Python 虚拟环境安装
Home Assistant 官方推荐使用 Python 虚拟环境安装 Home Assistant 以避免影响生产环境。

#创建虚拟环境:

sudo python3 -m venv homeassistant

#打开虚拟环境:

cd homeassistant

#激活虚拟环境:
source bin/activate

#安装 Home Assistant:
sudo python3 -m pip install --upgrade homeassistant

#启动 Home Assistant 并打开网页: 
hass --open-ui

等待几分钟让后台下载依赖,之后你便可以从局域网内任意终端浏览器访问 http://N1的 IP 地址:8123,进入 Home Asssitant

#退出虚拟环境用如下命令:
deactivate

#如果需要编辑 configuration.yaml 文件安装nano,前面已经安装过
#sudo apt-get install -y nano

#再进入虚拟环境
sudo nano ../.homeassistant/configuration.yaml

#编辑好,Ctr+X, Y, Enter

下面是添加homekit插件教程,因为用安卓手机,所以自己没实测homekit安装部分,摘出来以后测试

#添加homekit 插件,
sudo apt-get install libavahi-compat-libdnssd-dev

在configuration.yaml 文件添加homekit配置:

homekit:
  auto_start: true  #启动 HA 后自动启动 homekit 服务,默认开启
  port: 51827  #运行端口,默认51827
  filter:  #设备过滤
    include_domains:  #指定包含设备类型
    include_entities:  #指定包含设备
    exclude_domains:  #指定排除设备类型
    exclude_entities:  #指定排除设备
  entity_config:  #特殊设备设置
    alarm_control_panel:  #警报面板
      code:  #密码,这个密码不!是!PIN!码!

二、启动服务和开机自启动

第一步完成后虽然每次hass --open-ui都能访问,但是退出后就不能访问,所以要设置后台启动

按照前面说的教程,访问权限问题一直不ok,所以把homeassistant文件夹和.homeassistant文件夹移动到home下就OK了

mv -R /root/homeassistnat /home/samzz/
mv -R /root/.homeassistnat /home/samzz/homeassistant/

看各种教程和安装插件(斐讯啥的)都需要留意安装这里的安装目录

项目文档里查看自启动配置 https://home-assistant.io/docs/autostart/init.d/ 虚拟环境的在最后一段PYTHON VIRTUAL ENVIRONMENT

创建hass-daemon文件

sudo touch /etc/init.d/hass-daemon
sudo nano /etc/init.d/hass-daemon

把上面文档里的虚拟环境启动配置部分粘贴进去,记得要修改目录,修改 RUN_AS 和 PRE_EXEC 这两个值,直接贴上我修改后的,标记#这里、这里、这里

#!/bin/sh
### BEGIN INIT INFO
# Provides:          hass
# Required-Start:    $local_fs $network $named $time $syslog
# Required-Stop:     $local_fs $network $named $time $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Description:       Home\ Assistant
### END INIT INFO
 
# /etc/init.d Service Script for Home Assistant
# Created with: [url=https://gist.github.com/naholyr/4275302#file-new-service-sh]https://gist.github.com/naholyr/4275302#file-new-service-sh[/url]
# 这里、这里、这里
PRE_EXEC="source /home/samzz/homeassistant/bin/activate;"
RUN_AS="homeassistant"
PID_FILE="/var/run/hass.pid"
# 这里、这里、这里
CONFIG_DIR="/home/samzz/homeassistant/.homeassistant"
FLAGS="-v --config $CONFIG_DIR --pid-file $PID_FILE --daemon"
REDIRECT="> $CONFIG_DIR/home-assistant.log 2>&1"
 
start() {
  if [ -f $PID_FILE ] && kill -0 $(cat $PID_FILE) 2> /dev/null; then
    echo 'Service already running' >&2
    return 1
  fi
  echo 'Starting service…' >&2
  local CMD="$PRE_EXEC hass $FLAGS $REDIRECT;"
  su -c "$CMD" $RUN_AS
  echo 'Service started' >&2
}
 
stop() {
    if [ ! -f "$PID_FILE" ] || ! kill -0 $(cat "$PID_FILE") 2> /dev/null; then
    echo 'Service not running' >&2
    return 1
  fi
  echo 'Stopping service…' >&2
  kill $(cat "$PID_FILE")
  while ps -p $(cat "$PID_FILE") > /dev/null 2>&1; do sleep 1;done;
  echo 'Service stopped' >&2
}
 
install() {
    echo "Installing Home Assistant Daemon (hass-daemon)"
    echo "999999" > $PID_FILE
    chown $RUN_AS $PID_FILE
    mkdir -p $CONFIG_DIR
    chown $RUN_AS $CONFIG_DIR
}
 
uninstall() {
  echo -n "Are you really sure you want to uninstall this service? That cannot be undone. [yes|No] "
  local SURE
  read SURE
  if [ "$SURE" = "yes" ]; then
    stop
    rm -fv "$PID_FILE"
    echo "Notice: The config directory has not been removed"
    echo $CONFIG_DIR
    update-rc.d -f hass-daemon remove
    rm -fv "$0"
    echo "Home Assistant Daemon has been removed. Home Assistant is still installed."
  fi
}
 
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  install)
    install
    ;;
  uninstall)
    uninstall
    ;;
  restart)
    stop
    start
    ;;
  *)
    echo "Usage: $0 {start|stop|restart|install|uninstall}"
esac

保存配置,然后执行以下

sudo chmod +x /etc/init.d/hass-daemon
sudo update-rc.d hass-daemon defaults
sudo service hass-daemon install

尝试手动启动服务

sudo /etc/init.d/hass-daemon start

或者这样

sudo service hass-daemon start

不加最后的start就知道都有啥命令可以使用了:start|stop|restart等

sudo service hass-daemon
Usage: /etc/init.d/hass-daemon {start|stop|restart|install|uninstall}

查看日志

tail /home/samzz/homeassistant/.homeassistant/home-assistant.log

添加开机自启动

sudo nano /etc/rc.local

最下方exit 0前添加如下

service hass-daemon start

OK,Home Assistant安装完毕并且自动启动,就可以添加小米和斐讯了

斐讯N1降级、刷官改V2.0、安装Linux、安装NextCloud

斐讯N1挖矿的,其实配置来看配给蓝牙遥控当个盒子很不错,正好家里还有个mibox国际版的蓝牙遥控,这就牛逼了,所以恩山找帖子刷成盒子,不影响挖矿,再安装linux

遇到多坑,整理下,以后刷就方便了

1、先降级

N1 官方V2.22~V2.27的先降级到V2.19能线刷和fastboot烧录

http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=322223&highlight=N1

降级成功后进入系统其实现实的还是原来的版本,不用管,直接往下走刷官改2.0

2、刷官改

http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=322736&highlight=N1
我刷的沙发桌面那个,因为当贝桌面还得打补丁懒得整

过程不是很想详细,参考这里
http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=324242&highlight=N1%2B%BD%B5%BC%B6

和刷后的问题
http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=325415&highlight=N1%2B%D2%A3%BF%D8

小米蓝牙遥控器:我的mibox国际版的蓝牙遥控器连接上了,但是操作无用,n1恢复出厂设置就好了,但是恢复出厂设置后官改2.0里的部分预装没了,干脆重新刷一遍更方便。小米电视+N1匹配蓝牙遥控很无奈,小米电视无法关闭蓝色似乎,只能匹配时关电视黑着匹配………… 小米蓝牙遥控器不能关机关机是重启,正好,挖矿的话不需要关机,哈哈哈

es文件浏览器TV版:偶然发现官改版里的es文件浏览器和手机es文件浏览器连接后装各种方便,解决了远程安装、备份、拷贝文件啥的,当然盒子要打开调试模式,试了自己之前mibox和mitv上装的es专业版就不行,一直安装base.apk不停,所以果断备份放云盘了,方便以后使用,或许因为这是tv版?得空试下沙发和当贝软件商城里的版本能不能和手机连接。

官改2.0简介摘过来

简介
    1、基于官方V2.27制作,原厂系统应用基本保留,实测不影响挖矿;
    为节约系统分区空间,未加入斐讯语音遥控和原厂CIBN应用,删除原厂内置乐播投屏;
    
    2、内置 HDP optware 管理地址为  http://盒子IP:8081 , 包含组件samba、Transmission、aria2、ftp、dropbear ;
    斐讯原厂samba速度较慢,已屏蔽;
    samba 默认共享 /mnt , 盒子网络主机名称为 N1,默认为 root 用户权限;
    
    迅雷远程可以获取激活码,但是没有用处,只要绑定后添加远程下载任务,设备就会离线,据说是迅雷关闭了对第三方设备的认证;
    盒子 ftp、scp、sftp、ssh 这些服务默认用户名密码都是root / toor ;
    
    3、内置最小化谷歌套件和64位油管;
    
    4、内置xposed框架和xposed安装器,已预置两个插件 "绿色运行" 和 "Xposed edge pro",
    用于实现以下功能:禁止应用自启、自定义遥控器按键动作、开机(网络连接时)自启动特定app;
    
    5、线刷后首次开机需要3~4分钟,不要以为砖了 ;
    
    6、telnet端口为2323,开机静默root授权,若需要 Supersu 请自行安装;
    
    7、默认开机网络连接时自启动友窝,请在 Xposed edge pro 更多触发器中自行修改(需打补丁patch1) ;
    
    8、手机天天链应用只能下载 http 链接资源,无法下载 bt资源(包括斐讯影视中心资源也无法下载);
    bt下载请用 Transmission 或 Aria2  。

3、安装linux

其实是通过N1官改再安装Linux Deploy实现的,Linux Deploy就是个安卓下的linux虚拟机apk

原贴如下:
http://www.right.com.cn/forum/forum.php?mod=viewthread&tid=321218&highlight=N1%2Blinux

第一步:准备工作和添加自启动

telnet连接N1,应该ssh也是ok的

telnet 192.168.88.105 2323

#连接成功后,依次输入下面命令以获取修改权限。

mount -o remount,rw /system
setenforce 0

#使用vi修改webpadinit.sh文件。

vi /system/bin/webpadinit.sh

#操作方法:按i键进行编辑。找到下面这一行并修改,让Linux Deploy能够获得root权限。实测,不需要修改,最新版linux Deploy是已经ok了的

#这行不是代码    
/system/xbin/supolicy --live "permissive init;permissive kernel;permissive untrusted_app;permissive toolbox;permissive shell;permissive priv_app;"

#添加自启动,原教程是sleep 5,我安装在移动硬盘里的,实测加载移动硬盘需要时间长,5秒完全不够,不够,不够,所以不能自启,最后发现是这里的问题改成30很ok

sleep 30
svc power stayon true
nohup /data/data/ru.meefik.linuxdeploy/bin/linuxdeploy -p linux start -m >/dev/null 2>&1 &

#修改完成后按一下ESC键,然后输入:wq!保存并退出。用es文件管理器也可以修改。

填坑时发现用vi修改后似乎多出来很多空格或是tab,恩山里网友说es改的也多出来这这那那,注意!

第二步:安装linux Deploy

简单但步骤多,见原贴,几个坑指出来
a、我是在移动硬盘上安装的
b、我装的是Ubuntu
c、镜像未改,因为能访问外网
d、安装路径要注意,es里找或者http://盒子IP:8081里找,/storage/XXXXXXXXXXXXX/linux.img
e、用户名密码输入并记住,ssh访问时候要用
f、DNS我未修改
g、多个硬盘就打开挂载点,挂载位置自己输入,和d差不多,或者/mnt/media_rw/XXXXXXXX
h、ssh端口是大坑,别默认22,因为官改的ssh端口就是22,我用了10022
i、ubuntu默认没有nano,安装sudo apt-get install nano Crtl+C保存,Crtl+X退出
其他部分和原教程一样,然后就Xshell+Xftp使用吧;

教程后面是安装私有云NextCloud、迅雷远程Xware、Aria2;迅雷远程论坛多人已测试无法使用,Aria2官改2.0本来就有,所以就只安装了NextCloud,安装还比较顺利,但是实测似乎文件不能储存在挂载的其他硬盘里,各种提示无访问权限啥的,该权限也无用似乎,只好放在linux.img中,效率大打折扣。

18luck 365bet 888zhenren aomenduchang aomenjinshayule baijiale bbin beplay bet007 betvictor betway bifa bst hg0088 bwin fenghuangyule jinbobao lebaijia long8 manbet quanxunwang shenbotaiyangcheng tengbohui ule vwin w88 wellbet WilliamHill yulepingtai laohuji