『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 5256|回复: 5

[进阶教程] 使用Webhook同步配置文件,gitlab web ide编辑配置

[复制链接]

13

主题

89

帖子

865

积分

论坛技术达人

积分
865
金钱
771
HASS币
20

教程狂人

发表于 2018-8-17 11:14:40 | 显示全部楼层 |阅读模式
本帖最后由 yaming1106 于 2018-8-17 14:50 编辑

使用Webhook同步配置文件,gitlab ide编辑配置

因为从树莓派迁移到 n1 上面, n1 啥都好就是存储空间太小。一开始直接上 docker,奈何 hass.io 装好之后系统就只剩 1.2G的空间大小了。后面又换回到直接安装homeassistant,参考文章如下:

【暗度陈仓】如何在斐讯N1上安装homeassistant

有兴趣装 docker的,可以参考下面文章:n1 ubuntu18.04内置到emmc后部署docker,portainer.io,ha

使用过hass.io cloud9 ide之后就不想配置文件传来传去的编辑,最好我直接在线编辑,当时的想法就直接安装 cloud9n1 上面,尝试了各种方法编译不过去,有查找了n个web ide,感觉都不咋的 ,只好放弃。

后面想到我可以使用个git 服务提供的web ide,唯一我要做的事情就是把文件同步做好就行,我还是在网页上编辑配置文件,git 互相同步我修改的文件即可,最后选定了gitlab web ide
原因如下:

  • 免费的私有项目存储,保证信息的安全性
  • 友好的web ide 环境,方便使用

环境准备

需要技能:

  • 对git常规操作理解
  • node 环境熟悉
  • gitlab 了解

初始化git项目

配置git

git config --global user.name "孙善明"
git config --global user.email "[email protected]"

初始化项目

cd /home/homeassistant/.homeassistant 
git init
git remote add origin [email protected]:yaming116/homeassistant.git
git add .
git commit -m "Initial commit"
git push -u origin master

Node 环境安装

参考搭建Node.js环境

注意

n1 需要选择 arm64版本的,我用的是这个 https://nodejs.org/dist/v9.9.0/node-v9.9.0-linux-arm64.tar.xz

安装pm2

npm install pm2 -g

启动项目

npm install
pm2 start index.js

开机启动

pm2 save
pm2 startup

WebHook

项目地址:https://coding.net/u/yaming/p/WebHook/git

主要功能:

  • gitlab webhook事件监听,在有push操作的时候进行拉去线上配置文件
  • 文件同步,每30 秒进行本地文件检查是否存在修改,修改即提交配置文件到gitlab

定时任务 index.js

function scheduleCronstyle(){
    schedule.scheduleJob('30 * * * * *', function(){
        console.log('scheduleCronstyle:' + new Date());
        runPush()
    }); 
}

webhook 逻辑 handdle.js

function design_handle() {
    let handler = createHandler({
        path: '/hass',
        token: 'mytoken' // tooken,用于校验请求
    })

    handler.on('error', err => {
        console.error('Error:', err.message)
    })

    handler.on('push', event => {
        console.log('handler push event')
        runUpdate()//更新本地代码
    })

    return handler
}

脚本文件

  • update_webhook 更新配置
  • commit_change 检查本地配置否有变化,如果有就提交

缺点

  • 更新有一点点延迟(可以调正同步时间)
  • home-assistant_v2.db 一直有变化(可以忽略此文件解决)





评分

参与人数 2金钱 +31 收起 理由
Mirukuteii + 16 谢谢分享!
neroxps + 15 感谢楼主分享

查看全部评分

回复

使用道具 举报

40

主题

3057

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11135
金钱
8028
HASS币
182
发表于 2018-8-17 11:45:34 | 显示全部楼层
感谢分享,但注意保护好密码等相关信息
Nero
回复

使用道具 举报

13

主题

89

帖子

865

积分

论坛技术达人

积分
865
金钱
771
HASS币
20

教程狂人

 楼主| 发表于 2018-8-17 12:00:02 | 显示全部楼层
neroxps 发表于 2018-8-17 11:45
感谢分享,但注意保护好密码等相关信息

那个不是我使用的tooken,何况也没有域名和端口
回复

使用道具 举报

40

主题

3057

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11135
金钱
8028
HASS币
182
发表于 2018-8-17 13:31:52 | 显示全部楼层
yaming1106 发表于 2018-8-17 12:00
那个不是我使用的tooken,何况也没有域名和端口

我是说 homeassistant里面的密码
Nero
回复

使用道具 举报

13

主题

89

帖子

865

积分

论坛技术达人

积分
865
金钱
771
HASS币
20

教程狂人

 楼主| 发表于 2018-8-17 14:42:32 | 显示全部楼层
neroxps 发表于 2018-8-17 13:31
我是说 homeassistant里面的密码

那我文章补充一点,使用gitlab的原因是可以建立私有项目
回复

使用道具 举报

39

主题

750

帖子

4709

积分

论坛元老

Freddy.

Rank: 8Rank: 8

积分
4709
金钱
3934
HASS币
0

最佳新人卓越贡献

发表于 2018-8-17 15:14:01 | 显示全部楼层
本帖最后由 neroxps 于 2018-8-17 17:07 编辑

好了 都知道你叫孙**了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-5-5 23:04 , Processed in 0.058733 second(s), 29 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表