Commit Graph

250 Commits

Author SHA1 Message Date
finn.markwitz af2655f9e2 Merge branch 'master' into 'feature/ha-zbt-2-thread'
# Conflicts:
#   machines/mibook/configuration.nix
2026-06-09 06:37:07 +00:00
finn.markwitz 6d0684610e chore: Flake Update 2026-06-09 08:28:11 +02:00
finn.markwitz 17c3a3189f chore(NixOS Version): Update to 26.05 2026-06-09 08:16:08 +02:00
finn.markwitz 18d1ce711d chore(HA): Removed uneccessary Unstable Overlay import 2026-06-09 08:10:45 +02:00
finn.markwitz cbdb42f333 chore: Flake Update 2026-06-01 10:02:27 +02:00
finn.markwitz b44775e3e5 docs: add CLAUDE.md with repo architecture and development commands
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 12:34:24 +02:00
marthsincemelee 9ed0fb6f07 feat: SSH for mibook 2026-05-25 12:33:40 +02:00
marthsincemelee ff6e25b708 fix: Duplicated NVIDIA PCI 2026-05-25 12:16:59 +02:00
marthsincemelee 2e5568611a feat(mibook): add claude-code profile module
Installs claude-code (stable), ripgrep, fd, gh, and jq for user finn.
Includes annotation for future headless service upgrade path.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 12:03:54 +02:00
marthsincemelee b44220adf1 docs(plan): mibook claude-code module implementation plan
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 11:56:53 +02:00
marthsincemelee 45c6d978f2 docs(spec): add pkgs.unstable contingency note to claude-code spec
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 11:54:09 +02:00
marthsincemelee 62875c0b1a docs(spec): mibook claude-code execution machine design
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 11:53:36 +02:00
marthsincemelee d2775e35d9 feat(home-assistant): set internal/external URLs for mobile_app push
The HA Companion app needs an external_url for clickable notification
deep-links to resolve when the phone is off the home Wi-Fi. Reach is via
Tailscale (Headscale tailnet solar.internal), so external_url points at
the FQDN jupiter.solar.internal:8123; internal_url stays on the bare
hostname for LAN-attached devices.

Phase A only: device registration + notify group + smoke-test land in a
follow-up commit once Companion has registered real mobile_app_<slug>
service names. See docs/superpowers/specs/2026-05-18-ha-push-notifications.md.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-18 12:07:31 +02:00
marthsincemelee 4cb4455d37 fix(home-assistant): use xiaomi_miio for Mi Home devices
The bare "xiaomi" component only ships the legacy IP-camera platform.
Mi Home Wi-Fi devices (vacuums, air purifiers, Yeelight, fans, etc.)
are provided by the xiaomi_miio integration.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-17 18:23:16 +02:00
marthsincemelee 933c2f8b41 feat: HA Xiaomi Support 2026-05-17 18:01:16 +02:00
finn.markwitz 1444912326 config: Disable Prime Sync MiBook 2026-05-17 14:23:55 +02:00
marthsincemelee d1299ed112 fix(home-assistant): wire automation/script/scene !include directives
UI-saved automations land in /var/lib/hass/automations.yaml, but HA
won't load them unless configuration.yaml has \`automation: !include
automations.yaml\`. The Nix-managed config didn't have it, so HA's
post-save reload found no automations and timed out.

The NixOS HA module's renderYAMLFile post-processes the generated YAML
to convert quoted bang-strings into real YAML tags (see the sed step
in nixos/modules/services/home-automation/home-assistant.nix), so a
plain Nix string is enough — no escape-hatch needed.

Pre-create the three include targets via systemd.tmpfiles so HA
doesn't fail at startup if the user hasn't saved anything yet.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 21:50:41 +02:00
marthsincemelee 96fbeb04ef fix(home-assistant): nest name/unit_system under homeassistant block
HA expects \`name\` and \`unit_system\` as keys of the top-level
\`homeassistant:\` block, not as top-level integration names. Recent HA
versions tightened config validation, so this surfaced as
"Integration 'unit_system' not found" / "Integration 'name' not found"
warnings, blocking the automation reload that runs after saving an
automation in the UI.

Pre-existing bug, unrelated to OTBR — surfaced now because automation
edits trigger strict validation. Bonus: NixOS auto-populates
\`time_zone\` from the system locale once \`homeassistant\` is a real block.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 21:35:44 +02:00
marthsincemelee 68f2c65246 fix(home-assistant): set OTBR radio.baudRate to 460800 for ZBT-2 RCP firmware
Nabu Casa's prebuilt OpenThread RCP image for the ZBT-2
(zbt2_openthread_rcp_2.7.2.0_GitHub-fb0446f53_gsdk_2025.6.2.gbl)
runs at 460800 baud, not the module's 115200 default. Aligns the
radio URL with the firmware so otbr-agent can actually open the
Spinel link after rebuild.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 20:41:49 +02:00
marthsincemelee 787427e7c8 feat(home-assistant): enable OTBR for ZBT-2 + add HA otbr/thread components
Brings up otbr-agent against the ZBT-2 over Spinel/UART, opens the
REST API on :8081, and wires HA's otbr + thread integrations so
Matter-over-Thread devices can commission through the existing
matter-server.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 20:21:30 +02:00
marthsincemelee 6251c8edef feat(home-assistant): import openthread-border-router module from unstable
Pulls the services.openthread-border-router NixOS module directly from
nixpkgs-unstable since it isn't in 25.11 yet. Service stays disabled
in this commit; configuration follows.

Also promotes `self` from `_module.args` to `specialArgs` in
machines/configuration.nix, since `imports` are evaluated before
`config` and so can't reach `_module.args.self`.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 18:52:43 +02:00
marthsincemelee 311e358d88 docs(plan): correct Task 2 scope — specialArgs needed for self in imports
The original plan claimed no flake-level changes were needed because
machines/configuration.nix:21 already passes `_module.args.self = self;`.
That's only true for `config`-time evaluation; `imports` are collected
before `config` is available, so referencing `self` in `imports` causes
infinite recursion. Fix: promote `self` to `specialArgs` on each
nixosSystem call. The implementer of Task 2 caught this on first
dispatch.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 15:52:20 +02:00
marthsincemelee 9ff3603d40 Revert "feat(home-assistant): enable ZHA for ZBT-2 Zigbee dongle"
This reverts commit e8d09f40f6.
2026-05-10 15:39:10 +02:00
marthsincemelee 6d12940205 docs(home-assistant): implementation plan for ZBT-2 Thread + OTBR
Task-by-task plan covering: revert of prior ZHA commit, unstable
OTBR module import, OTBR enablement against the ZBT-2, firmware
flash via universal-silabs-flasher, rebuild on jupiter, and
end-to-end smoke test through the HA UI.

Designed for execution via superpowers:subagent-driven-development
or superpowers:executing-plans, with operator handoffs marked
explicitly (per the 'no SSH' workflow rule).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 15:36:12 +02:00
marthsincemelee dbeda276e1 docs(home-assistant): design spec for ZBT-2 Thread + OTBR setup
Captures the architecture, operator workflow, and verification for
running the Connect ZBT-2 as an OpenThread Border Router on jupiter
(via nixos-unstable's services.openthread-border-router module),
with HA's otbr + thread integrations driving the Thread network
and the existing matter-server consuming credentials for
Matter-over-Thread device commissioning.

Supersedes the ZHA-direction commit on this branch (e8d09f4),
which will be reverted at the start of implementation.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 15:29:21 +02:00
marthsincemelee e8d09f40f6 feat(home-assistant): enable ZHA for ZBT-2 Zigbee dongle
Adds the `zha` extra component so Home Assistant can drive the
Nabu Casa Connect ZBT-2 radio, and puts the `hass` service user in
`dialout` so it can open `/dev/serial/by-id/usb-Nabu_Casa_..._ZBT-2_*`.

Pairing is then handled through the standard ZHA wizard in the HA UI.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-10 14:55:55 +02:00
finn.markwitz 098e632405 chores: Update Flake 2026-05-10 14:40:22 +02:00
finn.markwitz ede28c8bb4 Merge branch 'home-assistant-matter' into 'master'
fix: enable mobile_app integration in HA config

See merge request finn.markwitz/nixos!15
2026-05-05 11:37:32 +00:00
finn.markwitz db1f44c4ea Merge branch 'feature/homepage-widgets' into 'master'
Feature/homepage widgets

See merge request finn.markwitz/nixos!14
2026-05-05 11:27:44 +00:00
finn.markwitz df05fe451e feature/homepage widgets 2026-05-05 11:27:44 +00:00
marthsincemelee 74abfe35a2 fix: enable mobile_app integration in HA config
extraComponents only installs packages; mobile_app needs to be declared
in configuration.yaml to actually load.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-30 16:28:24 +02:00
marthsincemelee c51a658b18 feat: Mobile-App Component 2026-04-30 16:10:12 +02:00
marthsincemelee 1b64ea5930 feat: Matter Server 2026-04-30 16:05:29 +02:00
finn.markwitz eb21cb998f Merge branch 'feature/homepage-icons' into 'master'
feat: add homepage icons and Home Assistant entry

See merge request finn.markwitz/nixos!13
2026-04-22 09:55:34 +00:00
marthsincemelee 9342809975 feat: add manual homepage services file 2026-04-20 18:19:49 +02:00
marthsincemelee 2d43ed36ea feat: add homepage icons and Home Assistant entry 2026-04-20 16:34:27 +02:00
finn.markwitz 004f04eca5 Merge branch 'homeassistant' into 'master'
Homeassistant

See merge request finn.markwitz/nixos!11
2026-04-20 14:08:40 +00:00
finn.markwitz 4296dda7f8 Merge branch 'nvidia' into 'master'
feat(Hardware): Nvidia GPU Support

See merge request finn.markwitz/nixos!9
2026-04-20 14:07:05 +00:00
marthsincemelee b316b16a7f fix: AI Stuff in gitignore 2026-04-20 16:05:05 +02:00
finn.markwitz ca1fa3810b Merge branch 'feature/dashboard' into 'master'
Feature/dashboard

See merge request finn.markwitz/nixos!10
2026-04-20 14:03:38 +00:00
marthsincemelee 337ba6c847 fix: Hompage internal URL 2026-04-20 16:01:21 +02:00
marthsincemelee 191e860455 feat: Homepage 2026-04-20 14:46:44 +02:00
finn.markwitz 93a36dbf2b chore(flake): Updates 2026-04-07 15:54:33 +02:00
finn.markwitz dc65b044cf feat(Nvidia): PRIME Sync 2026-02-12 16:07:30 +01:00
finn.markwitz 3ce8459904 feat(Nvidia): PRIME Sync 2026-02-09 13:35:00 +01:00
finn.markwitz 78f540a776 feat(Hardware): Nvidia GPU Support 2026-02-09 13:34:48 +01:00
finn.markwitz 9757b987bb feat: Zed Editor 2026-02-09 13:34:43 +01:00
finn.markwitz f833439e0f feat: MiBook Config Update 2026-02-09 13:34:25 +01:00
finn.markwitz e1ea5b03dc chore: Flake Update 2026-01-08 16:37:52 +01:00
finn.markwitz 9de69b7dcc config: Home-Assistant 2026-01-08 16:27:46 +01:00