From 42e771ef1f61c801d5a112bdb350868b2e1274fa Mon Sep 17 00:00:00 2001 From: mjallen18 Date: Mon, 12 Jan 2026 15:11:47 -0600 Subject: [PATCH] otbr --- flake.nix | 2 ++ .../homeassistant/services/thread/default.nix | 36 +++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 modules/nixos/homeassistant/services/thread/default.nix diff --git a/flake.nix b/flake.nix index 687fe57..0026dd5 100644 --- a/flake.nix +++ b/flake.nix @@ -3,6 +3,8 @@ nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; nixpkgs-stable.url = "github:NixOS/nixpkgs/nixos-25.11"; + nixpkgs-otbr.url = "github:mrene/nixpkgs/openthread-border-router"; + home-manager-stable = { url = "github:nix-community/home-manager/release-25.11"; inputs.nixpkgs.follows = "nixpkgs-stable"; diff --git a/modules/nixos/homeassistant/services/thread/default.nix b/modules/nixos/homeassistant/services/thread/default.nix new file mode 100644 index 0000000..98647af --- /dev/null +++ b/modules/nixos/homeassistant/services/thread/default.nix @@ -0,0 +1,36 @@ +{ config, lib, ... }: +let + name = "otbr"; + cfg = config.${namespace}.services.${name}; + + otbrConfig = lib.${namespace}.mkModule { + inherit config name; + description = "Openthread border router"; + options = { }; + moduleConfig = { + services.openthread-border-router = { + enable = true; + backboneInterface = "enp2s0"; + rest = { + listenAddress = cfg.listenAddress; + listenPort = cfg.port; + }; + web = { + listenAddress = cfg.listenAddress; + listenPort = cfg.port; + }; + radio = { + device = "/dev/serial/by-idusb-dresden_elektronik_Thread_RCP__ConBee_II__DE2475318-if00"; + baudRate = 460800; + flowControl = true; + }; + }; + }; + }; +in +{ + imports = [ + "${inputs.nixpkgs-otbr}/nixos/modules/services/home-automation/openthread-border-router.nix" + otbrConfig + ]; +} \ No newline at end of file