标签: mqtt

  • N1 CoreELEC Docker安装HA+mqtt+node-red+dc1

    N1 CoreELEC Docker安装HA+mqtt+node-red+dc1

    CoreELEC 19

    过程省略。。。

    Docker

    CoreELEC(kodi)插件搜索 docker,安装

    HA

    docker run -d --restart=always --name="homeassistant" -v /storage/docker/homeassistant/config:/config --net=host homeassistant/qemuarm-64-homeassistant:latest

    mqtt

    docker run -d --name="mqtt" --restart=always --net=host -p 1883:1883 -v /storage/docker/mqtt/config:/mosquitto/config -v /storage/docker/mqtt/data:/mosquitto/data eclipse-mosquitto:latest

    此处坑最大

    mosquitto.conf 文件需要手动先创建

    persistence true
    listener 18831
    allow_anonymous true

    确保mqtt正常运行,而不是频繁重启(具体可看docker日志)之后,运行以下创建用户

    docker exec -it mqtt mosquitto_passwd -c /mosquitto/config/pwfile mqtt

    再把mosquitto.conf 的内容更为如下:

     

    listener 1883 0.0.0.0
    persistence true
    persistence_location /mosquitto/data/
    log_dest stderr
    allow_zero_length_clientid true
    protocol mqtt #websockets
    password_file /mosquitto/config/pwdfile
    log_type all
    allow_anonymous true

     

    node-red

    docker run -it -p 1880:1880 --name=nodered -e TZ=Asia/Shanghai --restart=always --user=root -v /storage/docker/nodered/data:/data --net=host nodered/node-red

    node-red的settings.js的查找credentialsecret,把前面的 // 去掉,设置随意字符为秘钥

    Your flow credentials file is encrypted using a system-generated key – General – Node-RED Forum (nodered.org)

    dc1

    配网自行查找教程,路由劫持

    smartplugconnect.phicomm.com 到 安装node-red主机的IP

    node-red导入,并替换为自己DC1的mac地址,mqtt服务器的地址和用户、密码填写为刚才搭建的mqtt服务器

    单DC1.json_

     

    [c-alert type=”success”]感谢RuralHunter及各位大神网友:[/c-alert]

    RuralHunter-CoreELEC:https://github.com/RuralHunter/CoreELEC/

    VCER-HA+mqtt:https://bbs.hassbian.com/thread-11960-1-1.html

    IT Commander-DC1:https://sumju.net/?p=3134

  • Docker – 通过容器安装部署Mosquitto服务教程(MQTT服务器)

    1,MQTT 介绍

        MQTT 是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT 协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛:
    • 在很多情况下,包括受限的环境中,如:机器与机器(M2M)通信和物联网(IoT)。
    • 其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。

    2,Mosquitto 介绍

        Mosquitto 是一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式,使设备对设备之间的短消息通信变得简单,比如现在应用广泛的低功耗传感器,手机、嵌入式计算机、微型控制器等移动设备。

    3,安装步骤

    (1)首先执行如下命令将镜像下载到本地:
    1
    docker pull eclipse-mosquitto

    (2)接着执行如下命令创建目录:

    1
    2
    3
    mkdir -p /mosquitto/config
    mkdir -p /mosquitto/data
    mkdir -p /mosquitto/log

    (3)然后执行如下命令创建初始化配置文件:

    1
    vi /mosquitto/config/mosquitto.conf

    #此处是个坑,一定要先运行此步,否则 docker run创建的是一个 mosquitto.conf 文件夹
    (4)在配置文件中添加如下内容,然后保存退出。

    1
    2
    3
    persistence true
    persistence_location /mosquitto/data
    log_dest file /mosquitto/log/mosquitto.log

    (5)接着执行如下命令为目录授权(其中日志目录要最大权限):

    1
    2
    chmod -R 755 /mosquitto
    chmod -R 777 /mosquitto/log

    (6)最后执行如下命令即可启动 mosquitto 容器:

    1
    2
    3
    4
    5
    6
    docker run -d --name=mosquitto --privileged \
    -p 1883:1883 -p 9001:9001 \
    -v /mosquitto/config/mosquitto.conf:/mosquitto/config/mosquitto.conf \
    -v /mosquitto/data:/mosquitto/data \
    -v /mosquitto/log:/mosquitto/log \
    eclipse-mosquitto

     

    4,连接测试

        mosquitto 服务启动后,我们可以使用 MQTTBox 这个客户端工具测试消息的发布和订阅,具体用法可以参考我之前写的文章:MQTT系列教程3(客户端工具MQTTBox的安装和使用)
    原文:Docker - 通过容器安装部署Mosquitto服务教程(MQTT服务器)

     

    附:配置权限

    (1)有时为了安全我们希望连接 mosquitto 服务时需要用户名密码,首先修改配置文件(/mosquitto/config/mosquitto.conf),添加以下配置:
    1
    2
    3
    4
    # 关闭匿名模式
    allow_anonymous false
    # 指定密码文件
    password_file /mosquitto/config/pwfile.conf

    (2)接着执行如下命令进入容器:

    1
    docker exec -it mosquitto sh

    (3)执行如下命令建立 pwfile.conf 文件,并设置权限:

    1
    2
    touch /mosquitto/config/pwfile.conf
    chmod -R 755 /mosquitto/config/pwfile.conf

    (4)然后使用 mosquitto_passwd 命令创建用户(比如下面我们创建了一个名为 hangge 的用户,密码为 123),添加完毕后执行 exit 退出容器。

    1
    mosquitto_passwd -b /mosquitto/config/pwfile.conf hangge 123

    (5)最后执行如下命令启动容器,这样就为 mosquitto 服务增加了权限验证功能,需要使用我们前面创建的用户密码才能连接。

    1
    docker restart mosquitto

    原文出自:www.hangge.com  转载请保留原文链接:https://www.hangge.com/blog/cache/detail_2896.html