/
/
/
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# ==============================================================================
27z2m_version: "latest"
28z2m_pan_id: "0x1A62"
29z2m_channel: 15
30z2m_serial_symlink: "/dev/ttyZigbee"
31z2m_serial_device_raw: "" # Use empty to default to symlink approach
32z2m_adapter: "ember" # Sonoff ZBDongle-E (Silabs) - use 'ember' for firmware 7.4.x+
33
34# ==============================================================================
35# OPENTHREAD BORDER ROUTER CONFIGURATION
36# ==============================================================================
37otbr_image: "openthread/border-router:latest"
38otbr_rcp_symlink: "/dev/ttyThread"
39otbr_enable_border_routing: true
40otbr_enable_backbone_router: true
41otbr_nat64: true
42otbr_dataset_active: false
43
44# ==============================================================================
45# DSMR READER CONFIGURATION
46# ==============================================================================
47dsmr_image: "ghcr.io/xirixiz/dsmr-reader-docker:latest"
48dsmr_serial_symlink: "/dev/ttyP1"
49dsmr_pg_user: "dsmrreader"
50dsmr_pg_password: "{{ vault_ground_floor_edge.dsmr_pg_password | default('CHANGE_ME') }}"
51dsmr_admin_password: "{{ vault_ground_floor_edge.dsmr_admin_password | default('CHANGE_ME') }}"
52dsmr_pg_db: "dsmrreader"
53dsmr_pg_host: "dsmrdb"
54dsmr_mqtt_prefix: "dsmr"
55dsmr_web_port: 8888
56
57# ==============================================================================
58# SERIAL DEVICE PATHS
59# ==============================================================================
60# Actual device paths from /dev/serial/by-id/
61device_paths:
62 p1: "/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A19QMK60-if00-port0"
63 zigbee: "/dev/serial/by-id/usb-Itead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_V2_8026e0b9dc73ef11b934c474d9b539e6-if00-port0"
64 thread: "/dev/serial/by-id/usb-Nabu_Casa_Home_Assistant_Connect_ZBT-1_ca0bd6d76312f011b4590714773d9da9-if00-port0"
65
66# ==============================================================================
67# UDEV RULES CONFIGURATION
68# ==============================================================================
69# UDEV rules for USB device symlinks with serial number matching
70udev_rules:
71 - name: "ttyP1"
72 id_vendor: "0403"
73 id_product: "6001"
74 serial: "A19QMK60"
75 - name: "ttyZigbee"
76 id_vendor: "10c4"
77 id_product: "ea60"
78 serial: "8026e0b9dc73ef11b934c474d9b539e6"
79 - name: "ttyThread"
80 id_vendor: "10c4"
81 id_product: "ea60"
82 serial: "ca0bd6d76312f011b4590714773d9da9"
83
84# ==============================================================================
85# DOCKER COMPOSE CONFIGURATION
86# ==============================================================================
87compose_root: "/docker"
88otbr_compose_dir: "{{ compose_root }}/otbr"
89z2m_compose_dir: "{{ compose_root }}/zigbee2mqtt"
90dsmr_compose_dir: "{{ compose_root }}/dsmr"
91
92