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