/
/
/
Ansible role that deploys my edge device with connectivity containers. Currently it deploys a thread border router via the zbt-1 dongle by Home Assistant, a zigbee2MQTT interface using the Sonoff zigbee dongle and a DSMR reader with a generic P1 to USB converter.
1---
2
3# ==============================================================================
4# GENERAL HOST SETTINGS
5# ==============================================================================
6ha_edge_user: "yannick"
7ha_edge_groups: ["docker"]
8ha_edge_timezone: "Europe/Amsterdam"
9
10# Service enablement
11enable_otbr: false
12enable_z2m: true
13enable_dsmr: true
14
15# ==============================================================================
16# MQTT CONFIGURATION (shared for Zigbee2MQTT + DSMR Reader)
17# ==============================================================================
18mqtt_host: "{{ vault_ground_floor_edge.mqtt_host | default('homeassistant.home') }}"
19mqtt_port: 1883
20mqtt_username: "{{ vault_ground_floor_edge.mqtt_username | default('') }}"
21mqtt_password: "{{ vault_ground_floor_edge.mqtt_password | default('') }}"
22mqtt_base_topic: "zigbee2mqtt"
23
24# ==============================================================================
25# ZIGBEE2MQTT CONFIGURATION
26# ==============================================================================
27# Fallback pin. Authoritative: server_automation/group_vars/all/images.yml
28z2m_image: "docker.io/koenkk/zigbee2mqtt"
29z2m_version: "2.6.1"
30z2m_pan_id: "0x1A62"
31z2m_channel: 15
32z2m_serial_symlink: "/dev/ttyZigbee"
33z2m_serial_device_raw: "" # Use empty to default to symlink approach
34z2m_adapter: "ember" # Sonoff ZBDongle-E (Silabs) - use 'ember' for firmware 7.4.x+
35
36# ==============================================================================
37# OPENTHREAD BORDER ROUTER CONFIGURATION
38# ==============================================================================
39# Pinned by digest: upstream only keeps short-lived sha-<commit> tags and
40# has deleted the one for the running build.
41# Fallback pin. Authoritative: server_automation/group_vars/all/images.yml
42otbr_image: "docker.io/openthread/border-router:latest@sha256:5c00ac87cd3050ccee5853393969349e5b0b0aa37058839fed7a7b5a33dba698"
43otbr_rcp_symlink: "/dev/ttyThread"
44otbr_enable_border_routing: true
45otbr_enable_backbone_router: true
46otbr_nat64: true
47otbr_dataset_active: false
48
49# ==============================================================================
50# DSMR READER CONFIGURATION
51# ==============================================================================
52# Fallback pin. Authoritative: server_automation/group_vars/all/images.yml
53dsmr_reader_image: "ghcr.io/xirixiz/dsmr-reader-docker:6.0.2"
54dsmr_postgres_image: "docker.io/library/postgres:15.14"
55dsmr_serial_symlink: "/dev/ttyP1"
56dsmr_pg_user: "dsmrreader"
57dsmr_pg_password: "{{ vault_ground_floor_edge.dsmr_pg_password | default('CHANGE_ME') }}"
58dsmr_django_secret_key: "{{ vault_ground_floor_edge.dsmr_django_secret_key | default('CHANGE_ME') }}"
59dsmr_admin_password: "{{ vault_ground_floor_edge.dsmr_admin_password | default('CHANGE_ME') }}"
60dsmr_pg_db: "dsmrreader"
61dsmr_pg_host: "dsmrdb"
62dsmr_mqtt_prefix: "dsmr"
63dsmr_web_port: 8888
64
65# ==============================================================================
66# SERIAL DEVICE PATHS
67# ==============================================================================
68# Actual device paths from /dev/serial/by-id/
69device_paths:
70 p1: "/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A19QMK60-if00-port0"
71 zigbee: "/dev/serial/by-id/usb-Itead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_V2_8026e0b9dc73ef11b934c474d9b539e6-if00-port0"
72 thread: "/dev/serial/by-id/usb-Nabu_Casa_Home_Assistant_Connect_ZBT-1_ca0bd6d76312f011b4590714773d9da9-if00-port0"
73
74# ==============================================================================
75# UDEV RULES CONFIGURATION
76# ==============================================================================
77# UDEV rules for USB device symlinks with serial number matching
78udev_rules:
79 - name: "ttyP1"
80 id_vendor: "0403"
81 id_product: "6001"
82 serial: "A19QMK60"
83 - name: "ttyZigbee"
84 id_vendor: "10c4"
85 id_product: "ea60"
86 serial: "8026e0b9dc73ef11b934c474d9b539e6"
87 - name: "ttyThread"
88 id_vendor: "10c4"
89 id_product: "ea60"
90 serial: "ca0bd6d76312f011b4590714773d9da9"
91
92# ==============================================================================
93# DOCKER COMPOSE CONFIGURATION
94# ==============================================================================
95compose_root: "/docker"
96otbr_compose_dir: "{{ compose_root }}/otbr"
97z2m_compose_dir: "{{ compose_root }}/zigbee2mqtt"
98dsmr_compose_dir: "{{ compose_root }}/dsmr"
99
100