From e79ae984a384f7a6f0675b699fe643517b6e9055 Mon Sep 17 00:00:00 2001 From: mjallen18 Date: Mon, 1 Sep 2025 20:15:55 -0500 Subject: [PATCH] pi5 --- flake.lock | 12 +- modules/nixos/boot/common/default.nix | 2 +- .../services/homeassistant/default.nix | 334 +++++++++++++----- systems/aarch64-linux/pi4/default.nix | 1 + systems/aarch64-linux/pi5/default.nix | 7 +- 5 files changed, 255 insertions(+), 101 deletions(-) diff --git a/flake.lock b/flake.lock index 0824a47..b749617 100644 --- a/flake.lock +++ b/flake.lock @@ -884,11 +884,11 @@ "nixpkgs": "nixpkgs_11" }, "locked": { - "lastModified": 1755008580, - "narHash": "sha256-rh4OhOutko9W9COhhxQnqt9J22ZPj7gSZN7wrX0cYEs=", + "lastModified": 1756774688, + "narHash": "sha256-st5xUV4Fj4Px5MOvQdF26TZRPzxz47wgRvDjSwiDDso=", "owner": "mjallen18", "repo": "nixos-raspberrypi", - "rev": "7b5cf1ef3cf48ac1b43730eb366225f3dd0791cb", + "rev": "aeb17b185bb65a3fa1ef6803ead393e9e10d1f46", "type": "github" }, "original": { @@ -994,11 +994,11 @@ }, "nixpkgs_11": { "locked": { - "lastModified": 1754432582, - "narHash": "sha256-oebayZREKV/4Fgy6drsj4M7URut4kQVics78DxL2imk=", + "lastModified": 1756515621, + "narHash": "sha256-cYPwtXNlQ18FBuMVJ4RltuCym2Acy/6O+i/fJ4UnEn8=", "owner": "nvmd", "repo": "nixpkgs", - "rev": "81f9846bc3c9edbd2d4c92783e7bfb4b55db14c4", + "rev": "b143badd3dea297d6ba0dc93397c0ebc2838c508", "type": "github" }, "original": { diff --git a/modules/nixos/boot/common/default.nix b/modules/nixos/boot/common/default.nix index 27c79ed..10663b5 100644 --- a/modules/nixos/boot/common/default.nix +++ b/modules/nixos/boot/common/default.nix @@ -27,7 +27,7 @@ in supportedFilesystems = [ "bcachefs" ]; - consoleLogLevel = lib.mkDefault 3; + consoleLogLevel = lib.mkForce 3; bootspec.enable = (!isArm); }; diff --git a/modules/nixos/homeassistant/services/homeassistant/default.nix b/modules/nixos/homeassistant/services/homeassistant/default.nix index 76b0eee..b464b68 100644 --- a/modules/nixos/homeassistant/services/homeassistant/default.nix +++ b/modules/nixos/homeassistant/services/homeassistant/default.nix @@ -19,7 +19,10 @@ in # All components # extraComponents = config.services.home-assistant.package.availableComponents; extraComponents = [ + "accuweather" "adguard" + "air_quality" + "apcupsd" "apple_tv" "analytics" "backup" @@ -28,40 +31,196 @@ in "bluetooth_le_tracker" "bluetooth_tracker" "brother" + "browser" + "button" "caldav" "calendar" + "camera" + "cast" + "climate" + "cloud" "cloudflare" "co2signal" + "coinbase" "color_extractor" + "config" + "configurator" + "counter" + "cpuspeed" + "cups" + "date" + "datetime" + "deluge" + "device_automation" + "device_sun_light_trigger" + "device_tracker" + "dhcp" + "diagnostics" + "discord" + "dlna_dmr" + "dlna_dms" + "downloader" + "ecobee" + "energy" + "epic_games_store" "esphome" + "event" + "fan" + "fastdotcom" "ffmpeg" + "ffmpeg_motion" + "ffmpeg_noise" + "file" + "file_upload" + "filesize" + "filter" + "folder" + "fully_kiosk" + "generic" + "generic_thermostat" + "geo_json_events" + "geo_location" + "geo_rss_events" + "github" + "gitlab_ci" + "glances" + "google" + "google_cloud" + "google_drive" + "google_mail" + "google_maps" + "google_photos" "google_translate" + "gpsd" + "gpslogger" + "hardware" + "hddtemp" + "hdmi_cec" + "history" + "history_stats" "holiday" + "homeassistant" + "homeassistant_alerts" + "homeassistant_sky_connect" "homekit" + "homekit_controller" + "http" + "humidifier" + "image" + "image_processing" + "image_upload" + "immich" + "input_boolean" + "input_button" + "input_datetime" + "input_number" + "input_select" + "input_text" + "ios" "isal" "jellyfin" + "keyboard" + "keyboard_remote" + "lidarr" + "light" + "litterrobot" + "local_calendar" + "local_file" + "local_ip" + "local_todo" + "logbook" + "logentries" + "logger" + "lovelace" + "manual_mqtt" + "matter" "met" - "music_assistant" + "microsoft" + "min_max" + "mobile_app" "mqtt" + "music_assistant" "nut" "nextcloud" + "notify" "nws" "ollama" "onedrive" + "onkyo" + "openhardwaremonitor" + "opensky" + "openweathermap" "open_router" + "paperless_ngx" + "persistent_notification" + "pinecil" "ping" + "piper" + "playstation_network" + "radarr" "radio_browser" + "raspberry_pi" + "recorder" + "reddit" + "remote" + "remote_calendar" + "remote_rpi_gpio" + "roborock" "samsungtv" + "schedule" + "script" + "search" "season" + "select" + "sense" + "sensor" "shopping_list" "simplefin" "smartthings" + "sonarr" + "speedtestdotnet" + "sql" + "ssdp" + "statistics" + "stream" "subaru" + "sun" + "switch" + "system_health" + "system_log" + "systemmonitor" + "tailscale" + "tasmota" + "tcp" + "template" + "text" + "thread" + "time" + "time_date" + "timer" + "torque" + "tplink" + "tuya" "upnp" + "uptime" + "usb" + "vacuum" + "vlc" "vesync" + "wake_on_lan" + "waze_travel_time" + "weather" + "weatherkit" + "webdav" + "webhook" + "whisper" + "whois" "workday" "wyoming" + "youtube" + "zeroconf" "zha" + "zone" ]; customComponents = with pkgs.home-assistant-custom-components; [ @@ -96,106 +255,105 @@ in zigbee2mqtt-networkmap ]; # use postgresql instead of sqlite - extraPackages = - ps: with ps; [ - # Core functionality - aiohttp - aiodns - paho-mqtt - pillow - pytz - pyyaml - sqlalchemy + # extraPackages = + # ps: with ps; [ + # # Core functionality + # aiohttp + # aiodns + # paho-mqtt + # pillow + # pytz + # pyyaml + # sqlalchemy - # Discovery & networking - zeroconf - netdisco - ifaddr - ssdp + # # Discovery & networking + # zeroconf + # netdisco + # ifaddr + # ssdp - # Device protocols - pyserial # Serial communications - bluepy # Bluetooth LE + # # Device protocols + # pyserial # Serial communications + # bluepy # Bluetooth LE - # Smart home ecosystems - mutagen # Media file metadata - pysonos # Sonos - pywemo # Belkin WeMo - python-miio # Xiaomi devices - python-kasa # TP-Link + # # Smart home ecosystems + # mutagen # Media file metadata + # pysonos # Sonos + # pywemo # Belkin WeMo + # python-miio # Xiaomi devices + # python-kasa # TP-Link - # Sensors & monitoring - meteocalc # Weather calculations - speedtest-cli # Internet speed + # # Sensors & monitoring + # meteocalc # Weather calculations + # speedtest-cli # Internet speed - # Visualization & UI - matplotlib # Graphing + # # Visualization & UI + # matplotlib # Graphing - # Security - bcrypt - cryptography - pyjwt + # # Security + # bcrypt + # cryptography + # pyjwt - # Media - ha-ffmpeg # Camera streams + # # Media + # ha-ffmpeg # Camera streams - # Specialized integrations - python-matter-server # Matter protocol + # # Specialized integrations + # python-matter-server # Matter protocol - # System integrations - psutil # System monitoring + # # System integrations + # psutil # System monitoring - psycopg2 - numpy - hassil - pyturbojpeg - paho-mqtt - pychromecast - pyatv - python-otbr-api - brother - pyipp - govee-ble - adguardhome - nextcord - aiogithubapi - jellyfin-apiclient-python - pylitterbot - dateparser - aionut - nextcloudmonitor - ollama - pynecil - aiopyarr - pysabnzbd - getmac - zigpy - bellows # For Zigbee EmberZNet-based adapters - zigpy-xbee # For XBee adapters - zigpy-deconz # For ConBee/RaspBee adapters - pyicloud # iCloud - pyatv # Apple TV - opencv-python - face-recognition - ibeacon-ble - gehomesdk - onedrive-personal-sdk - python-roborock - pkgs.${namespace}.python-steam - apple-weatherkit + # psycopg2 + # numpy + # hassil + # pyturbojpeg + # paho-mqtt + # pychromecast + # pyatv + # python-otbr-api + # brother + # pyipp + # govee-ble + # adguardhome + # nextcord + # aiogithubapi + # jellyfin-apiclient-python + # pylitterbot + # dateparser + # aionut + # nextcloudmonitor + # ollama + # pynecil + # aiopyarr + # pysabnzbd + # getmac + # zigpy + # bellows # For Zigbee EmberZNet-based adapters + # zigpy-xbee # For XBee adapters + # zigpy-deconz # For ConBee/RaspBee adapters + # pyicloud # iCloud + # pyatv # Apple TV + # opencv-python + # face-recognition + # ibeacon-ble + # gehomesdk + # onedrive-personal-sdk + # pkgs.${namespace}.python-steam + # apple-weatherkit - samsungctl - samsungtvws + # samsungctl + # samsungtvws - aiohomekit + # aiohomekit - icmplib - aioelectricitymaps - wyoming - pysmartthings - wakeonlan - ephem - ]; + # icmplib + # aioelectricitymaps + # wyoming + # pysmartthings + # wakeonlan + # ephem + # ]; config = { # Includes dependencies for a basic setup diff --git a/systems/aarch64-linux/pi4/default.nix b/systems/aarch64-linux/pi4/default.nix index 2973012..c548459 100755 --- a/systems/aarch64-linux/pi4/default.nix +++ b/systems/aarch64-linux/pi4/default.nix @@ -38,6 +38,7 @@ address = "10.0.1.2/24"; gateway = "10.0.1.1"; dns = "1.1.1.1"; + interface = "end0"; }; firewall = { enable = true; diff --git a/systems/aarch64-linux/pi5/default.nix b/systems/aarch64-linux/pi5/default.nix index 4ee3469..bb33186 100644 --- a/systems/aarch64-linux/pi5/default.nix +++ b/systems/aarch64-linux/pi5/default.nix @@ -9,7 +9,6 @@ { imports = [ ./boot.nix - # ./networking.nix - moved to modules/nixos/network ./services.nix ./sops.nix ]; @@ -26,13 +25,8 @@ desktop.hyprland.enable = false; user = { name = "matt"; - # passwordFile = config.sops.secrets."pi5/matt-password".path; mutableUsers = false; extraGroups = [ "docker" ]; - sshKeys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOTha0FbV1tkpnJr7xVH78S5MetJH+0o2YrEcuvhL692 root@jallen-nas" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIwoHWOLSTGVif9hAhaMLl0qDA4roIzCNuyR6kyIXDOj admin@jallen-nas" - ]; }; network = { hostName = "pi5"; @@ -40,6 +34,7 @@ method = "manual"; gateway = "10.0.1.1"; dns = "10.0.1.1"; + interface = "wlan0"; }; firewall = { enable = true;