Commit Graph
100 Commits
Author SHA1 Message Date
MasseR 5416e9b708 Safer default 2026-10-01 21:57:47 +03:00
MasseR 38d575d716 I don't need these log lines anymore 2026-10-01 21:16:23 +03:00
MasseR 6bcab1a0d8 Update tests 2026-09-30 15:01:17 +03:00
MasseR cceddad037 Capped based on light level 2026-09-30 14:27:50 +03:00
MasseR c75fc1a7b9 Logging and really not working light restoration 2026-09-30 13:46:16 +03:00
MasseR 1098be227d Push to journalctl 2026-09-30 12:33:31 +03:00
MasseR a427acd6ed Fix warnings 2026-09-30 09:05:48 +03:00
MasseR aee34f4e14 Make flag-decision tests fail fast and assert the outbound metric 2026-09-30 08:57:40 +03:00
MasseR 526710ef71 Simplify channelHassEval now that the writer owns the flag decision 2026-09-30 08:56:07 +03:00
MasseR c2425e8fb0 Move handler flag check from bus to writer with skip logging 2026-09-30 08:06:59 +03:00
MasseR a7a11e96b7 Complete rename vocabulary (childrenBedroomButton, toIkeaRemoteAction) 2026-09-30 00:21:24 +03:00
MasseR adce7c8427 Split Controller.hs into vertical submodules behind umbrella re-export 2026-09-30 00:07:31 +03:00
MasseR 9e00aeb6a2 Rename entity-list and snapshot helpers for consistency 2026-09-29 23:52:46 +03:00
MasseR b643fe55b1 Rename switch to switchService to avoid AFRP name conflict 2026-09-29 23:47:58 +03:00
MasseR 138b62c54a Rename IkeaController to IkeaRemoteAction, fix brightness typo 2026-09-29 23:44:56 +03:00
MasseR 889091d321 Regenerate default.nix (data-default was missing from the derivation) 2026-09-29 23:40:20 +03:00
MasseR c2426dec3d Unify per-room Lights enums into shared LightingMode 2026-09-29 23:38:43 +03:00
MasseR ad023a1ba2 Rename light observation layer (LightStatus, lightSignal, brightness, temperature) 2026-09-29 23:19:34 +03:00
MasseR 7ce994e814 Rename light command layer (Light, LightSettings, BrightnessSettings) 2026-09-29 23:14:07 +03:00
MasseR fefeae6301 Store a custom snapshot of lights 2026-09-29 22:51:37 +03:00
MasseR fcaccfdeb0 Faster transition 2026-09-29 20:42:14 +03:00
MasseR 73d4255fd7 Update tests 2026-09-29 20:01:03 +03:00
MasseR 7ad36d8ccb More transition stuff 2026-09-29 19:48:16 +03:00
MasseR f4c82df968 Scene transitions 2026-09-29 18:05:51 +03:00
MasseR 219f75c0e4 Remove the debug line
I thought I already had..?
2026-09-29 11:35:24 +03:00
MasseR 7ed846d0fc Fix the ambience mode 2026-09-29 11:33:56 +03:00
MasseR 53c36a81de Trial age 2026-09-25 13:55:29 +03:00
MasseR 1bf2258167 Merge branch 'runtime-flags': runtime handler toggling 2026-09-25 13:17:08 +03:00
MasseR 4d8cb8dc36 Log and return 500 when handler flag persistence fails 2026-09-25 13:14:25 +03:00
MasseR 1697d55ad5 Drop build-time controller flag, run all controllers, consolidate paths 2026-09-25 13:10:26 +03:00
MasseR bd1402ab3a Add REST endpoints for handler flags 2026-09-25 13:09:25 +03:00
MasseR c412435172 Gate CallService by handler flags on the Bus 2026-09-25 13:07:40 +03:00
MasseR 3b08988e30 Route Flags load warnings to stderr 2026-09-25 13:02:14 +03:00
MasseR 44497173de Add Flags module for runtime handler toggling 2026-09-25 13:01:44 +03:00
MasseR 894d8f8436 Add requestHandler field to Request 2026-09-25 12:59:14 +03:00
MasseR d6f785662b Logging in http 2026-09-25 12:10:24 +03:00
MasseR 5d16bf4ade Move http to separate module 2026-09-25 11:54:36 +03:00
MasseR 05bd609c7e Replace scotty with servant 2026-09-25 11:48:42 +03:00
MasseR 7fc07c1883 Plant lights 2026-09-25 10:31:06 +03:00
MasseR a7becaf2d4 Use scenes instead of stateful applications of adaptive sleep mode 2026-09-25 09:55:48 +03:00
MasseR 9c47bbcb42 More 2026-09-24 20:27:11 +03:00
MasseR 6063aafe8b Toggle adaptive mode 2026-09-24 20:21:33 +03:00
MasseR fafc7111bb The center button also disables sleep mode 2026-09-24 10:07:02 +03:00
MasseR 69cac934ec Fix tests 2026-09-24 10:06:20 +03:00
MasseR b2a74cbee4 Sleep mode in the bedroom 2026-09-24 09:48:35 +03:00
MasseR 769ab43fd2 Untested three-state for dinner table 2026-09-24 08:17:22 +03:00
MasseR 15f3fe7c9e Hups 2026-09-21 18:59:32 +03:00
MasseR 416a9484a5 Listen on 0.0.0.0 to be usable by tailscale 2026-09-21 08:11:49 +03:00
MasseR e3bc25ce54 Quick buttons 2026-09-17 11:48:22 +03:00
MasseR 036473ab81 Don't catch async exceptions 2026-09-17 11:05:27 +03:00
MasseR 27f271691c Hallway lights automation 2026-09-17 09:57:12 +03:00
MasseR 73d546395b Fix the bad use of async
Propagate errors with `mapConcurrently_`
2026-09-16 14:54:36 +03:00
MasseR a969730de1 Update tests 2026-09-16 14:52:39 +03:00
MasseR 213f9d5d2a More graphs 2026-09-16 14:42:31 +03:00
MasseR 2cb8035ef4 Increase the backoff 2026-09-16 12:51:58 +03:00
MasseR 1ec8c7211f Render ratelimiter 2026-09-16 12:32:32 +03:00
MasseR 3d7f6cb3c6 Fix supervisor and proper rate limiting 2026-09-16 12:28:48 +03:00
MasseR 64561718a5 Bedroom spec and partially fix writing
LLM had done "rate limiting" via deduplicating outbound calls. But the
ordering matters..
2026-09-16 10:52:10 +03:00
MasseR 7570711768 Enable bedroom presence controller 2026-09-16 09:56:12 +03:00
MasseR 7c2cfde814 Livingroom lights 2026-09-16 09:47:49 +03:00
MasseR 9fda48f589 runtime: reject out-of-range HA_METRICS_PORT values 2026-09-15 22:27:20 +03:00
MasseR 319104641b runtime: start the metrics graph server worker 2026-09-15 22:09:45 +03:00
MasseR 9861266c1e graphing: serve rrdtool graphs over http 2026-09-15 22:06:25 +03:00
MasseR 0893862f3a graphing: add pure graph table, ranges, and argv builders 2026-09-15 22:01:13 +03:00
MasseR 6078a64d00 Merge branch 'feature/trigger-service-metrics' 2026-09-15 17:31:06 +03:00
MasseR 7d08acec9d runtime: count only trigger event frames and harden metrics tests 2026-09-15 17:25:31 +03:00
MasseR 2a477b4977 runtime: increment trigger/service counters on the bus 2026-09-15 16:34:35 +03:00
MasseR 09479b5c48 metrics: register inbound-trigger and outbound-service counters 2026-09-15 16:26:09 +03:00
MasseR a19e5afd5e metrics: detect rrd schema mismatch and recreate with backup 2026-09-15 16:20:37 +03:00
MasseR af46776bb0 Enable bedroom buttons 2026-09-15 16:03:28 +03:00
MasseR d1bdd2eb67 Dinner presence 2026-09-15 10:49:12 +03:00
MasseR 0f7c6ff98a Control the kitchen lights 2026-09-14 14:45:45 +03:00
MasseR aaba917a9b Test the SerializeUTCTime property 2026-09-12 20:25:24 +03:00
MasseR a3dd63f26c Update tests 2026-09-12 20:18:13 +03:00
MasseR b20320c779 Explicit state 2026-09-12 20:09:42 +03:00
MasseR e16010bf2f Backport serializable arrow 2026-09-12 16:27:12 +03:00
MasseR 1f786815e6 Laws 2026-09-12 12:25:02 +03:00
MasseR 54ef6b5cc3 Merge branch 'mem-leak' 2026-09-08 08:00:13 +03:00
MasseR 1edb2ac5a2 Fix memory memory leak
- Tuple to strict pair
- Self-recursive loops with more knot tying <- this was the thing
2026-09-08 07:58:50 +03:00
MasseR d3518e8ff2 Fix: rrdtool DS names must be <= 19 chars
sanitizeName now keeps the first 15 chars plus a 3-hex hash suffix
for names longer than 19 chars (rrdtool's hard limit on DS name
length). The previous replace-dots-only version produced names up to
31 chars, which rrdtool rejected with 'invalid DS format'.
2026-09-07 23:09:42 +03:00
MasseR e30a28c9ef Merge feat/ekg-rrd-metrics: ekg-core RTS metrics -> rrd export 2026-09-07 21:44:56 +03:00
MasseR f7849ac889 defaultMain: wire metricsAction worker and enable -with-rtsopts=-T 2026-09-07 21:37:17 +03:00
MasseR 0a4b7dbb01 Add metricsAction: supervised loop sampling ekg store to rrd via rrdtool 2026-09-07 21:34:15 +03:00
MasseR 88af6a3139 Add Metrics module: pure rrdtool argv builders for ekg samples 2026-09-07 21:30:42 +03:00
MasseR 055c02d0f2 flake: add rrdtool to devShell and wrap the shipped binary with HA_RRDTOOL 2026-09-07 21:24:42 +03:00
MasseR 7b6b529120 Merge feat/outbound-rate-limiting: drop excess outbound calls 2026-08-25 19:46:13 +03:00
MasseR ef4811f89b Drop redundant UUID import from ConnectionSpec 2026-08-25 19:39:40 +03:00
MasseR 9fadbae777 writerAction: drain, dedupe, and rate-limit outbound calls 2026-08-25 19:37:57 +03:00
MasseR 3f5aa4735c Add dedupeBatch: collapse outbound calls per target 2026-08-25 19:33:44 +03:00
MasseR 6bb96833e1 A lot of internals as I tried to do a switch based logic 2026-08-25 19:05:52 +03:00
MasseR 2730657952 Triggers instead of full state events 2026-08-25 13:13:50 +03:00
MasseR 771d702abd Test the bedroom spec 2026-08-25 12:41:42 +03:00
MasseR 7051eaf244 Test rest of the AFRP 2026-08-25 11:41:12 +03:00
MasseR 7a9f30e1be Tests with timers 2026-08-25 11:36:13 +03:00
MasseR aa8ea07249 Tests 2026-08-25 11:27:18 +03:00
MasseR 2664ca67c0 Debounce instead of delay 2026-08-25 10:47:38 +03:00
MasseR d341270ed1 rollup, sliding and fixed windows 2026-08-25 10:11:44 +03:00
MasseR dc55834507 Outdated comment 2026-08-21 16:21:08 +03:00
MasseR 50c82393ed Clean tests 2026-08-21 16:01:15 +03:00
MasseR 96d4fb4c8d HUmidifier logic with some extra new primitives 2026-08-21 15:46:31 +03:00