Skip to content

Raspberry Pi 2 Home Assistant and RabbitMQ on Docker

blahlt edited this page Apr 13, 2019 · 3 revisions
  1. Sukuriam kataloga RabbitMQ konfigūracijos failams:
pi@raspberrypi:~ $ sudo mkdir -p /mnt/pihdd/rabbitmq/config && sudo chmod a+w /mnt/pihdd/rabbitmq/config && sudo mkdir -p /mnt/pihdd/rabbitmq/data && sudo chmod a+w /mnt/pihdd/rabbitmq/data
  1. Sukuriam Dockerfile failą, kuriame pridedam rabbitmq_mqtt (plugin'as, kad veiktu mqtt su 1883 portu) ir management plugin'us (https://www.rabbitmq.com/mqtt.html#enabling-plugin, https://hub.docker.com/r/arm32v7/rabbitmq/#enabling-plugins):
pi@raspberrypi:~ $ sudo nano /mnt/pihdd/rabbitmq/Dockerfile

ir irasom

FROM arm32v7/rabbitmq:management
RUN rabbitmq-plugins enable --offline rabbitmq_mqtt rabbitmq_management
  1. Sukuriam Docker image su mqttandmng tag'u:
pi@raspberrypi:~ $ cd /mnt/pihdd/rabbitmq && docker build -t arm32v7/rabbitmq:mqttandmng .
  1. Sukuriam konfigūracijas:
pi@raspberrypi:/mnt/pihdd/rabbitmq $ sudo nano /mnt/pihdd/rabbitmq/config/rabbitmq.conf

irašom:

loopback_users.guest = false
listeners.tcp.default = 5672
hipe_compile = false
management.listener.port = 15672
management.listener.ssl = false

ir

pi@raspberrypi:/mnt/pihdd/rabbitmq $ sudo nano /mnt/pihdd/rabbitmq/config/enabled_plugins

irašom

[rabbitmq_management,rabbitmq_mqtt].
  1. Sukuriam Docker Compose konfigūracinį failą:
pi@raspberrypi:/mnt/pihdd/rabbitmq $ cd /mnt/pihdd && sudo nano homeassistant.yml

ir įrašom:

version: "3.7"
services:
  home-assistant:
    image: homeassistant/raspberrypi2-homeassistant
    volumes:
      - "/mnt/pihdd/homeassistant:/config"
      - "/etc/localtime:/etc/localtime:ro"
    ports:
      - "8123:8123"
    container_name: "home-assistant"
    restart: unless-stopped
    init: true
    depends_on:
      - rabbitmq
  rabbitmq:
    image: arm32v7/rabbitmq:mqttandmng
    volumes:
      - "/mnt/pihdd/rabbitmq/config:/etc/rabbitmq"
      - "/mnt/pihdd/rabbitmq/data:/var/lib/rabbitmq"
    ports:
      - "1883:1883"
      - "15672:15672"
    container_name: "rabbitmq"
    hostname: "my-rabbit"
    restart: unless-stopped
  1. Startuojam Home Assistant ir RabbitMQ:
pi@raspberrypi:/mnt/pihdd $ docker-compose -f homeassistant.yml up -d
Creating network "pihdd_default" with the default driver
Creating rabbitmq ... done
Creating home-assistant ... done
  1. Atsidarome RabbitMQ management puslapį (pvz.: http://192.168.0.106:15672), pridedam naują vartotoją (pvz.: ruser:rpass) ir padarom "Set permission"

  2. Naršyklėje atidarome Home Assistant (pvz. http://192.168.0.106:8123) ir sukuriam vartotoją (pvz.: hauser:hapass)

  3. Papildome Home Assistant konfigūraciją, kad būtų naudojamas RabbitMQ:

pi@raspberrypi:~ $ sudo nano /mnt/pihdd/homeassistant/configuration.yaml

Įrašome šias eilutes (192.168.0.106 - RabbitMQ adresas):

mqtt:
  broker: 192.168.0.106
  port: 1883
  username: ruser
  password: rpass
  1. Restartuojame Home Assistant konteinerį, kad būtų naudojama nauja konfigūraciją:
pi@raspberrypi:~ $ docker restart <HomeAssistantContainerId>

Home Assistant paleidimas atskirai:

pi@raspberrypi:~ $ docker run --init -d \
--name="home-assistant" \
-v /mnt/pihdd/homeassistant:/config \
-v /etc/localtime:/etc/localtime:ro \
--restart=unless-stopped \
--net=host \
homeassistant/raspberrypi2-homeassistant

RabbitMQ paleidimas atskirai:

pi@raspberrypi:~ $ docker run -d \
--hostname my-rabbit \
--name some-rabbit \
-v /mnt/pihdd/rabbitmq/config:/etc/rabbitmq \
-v /mnt/pihdd/rabbitmq/data:/var/lib/rabbitmq \
--restart=unless-stopped \
--net=host \
arm32v7/rabbitmq:mqttandmng

Links:

Clone this wiki locally