Commit Graph
100 Commits
Author SHA1 Message Date
Dreaded_X 0c428d1d9b refactor: Store callback function directly instead of in the registry 2025-09-08 02:09:11 +02:00
Dreaded_X 56275811f7 feat!: Log version string during startup
Build and deploy / build (push) Successful in 10m11s
Build and deploy / Deploy container (push) Successful in 36s
2025-09-05 04:55:29 +02:00
Dreaded_X edee032b91 chore: Set RUST_LOG to something sensible by default when running with cargo
Build and deploy / Deploy container (push) Blocked by required conditions
Build and deploy / build (push) Has been cancelled
2025-09-05 04:48:00 +02:00
Dreaded_X 8bb17e1440 feat(config)!: Reworked how configuration is loaded
The environment variable `AUTOMATION_CONFIG` has been renamed to
`AUTOMATION__ENTRYPOINT` and can now also be set in `automation.toml` by
specifying:
```
automation = "<path>"
```

Directly accessing the environment variables in lua in no longer
possible. To pass in configuration or secrets you can now instead make
use of the `variables` and `secrets` modules.

To set values in these modules you can either specify them in
`automation.toml`:
```
[variables]
<name> = <value>

[secrets]
<name> = <value>
```
Note that these values will get converted to a string.

You can also specify the environment variables
`AUTOMATION__VARIABLES__<name>` and `AUTOMATION__SECRETS__<name>` to
set variables and secrets respectively. By adding the suffix `__FILE` to
the environment variable name the contents of a file can be loaded into
the variable or secret.

Note that variables and secrets are identical in functionality and the
name difference exists purely to make it clear that secret values are
meant to be kept secret.
2025-09-05 04:48:00 +02:00
Dreaded_X ba37de3939 feat(config)!: Move new_mqtt_client out of global automation table into separate module
The function `new_mqtt_client` was the last remaining entry in the
global `automation` table. The function was renamed to `new` and placed
in the new `mqtt` module. As `automation` is now empty, it has been
removed.
2025-09-05 03:55:04 +02:00
Dreaded_X 22fee0ed77 feat(config)!: Move device_manager out of global automation table into separate module
Moved `automation.device_manager` into a separate module called
`device_manager`
2025-09-05 03:55:03 +02:00
Dreaded_X 5aebab28ed feat(config)!: Move util out of global automation table into separate module
Move `automation.util` into a separate module called `utils`.
2025-09-05 03:55:03 +02:00
Dreaded_X e626caad8a feat(config)!: Fulfillment config is now returned at the end of the config
Previously the fulfillment config was set by setting
`automation.fulfillment`, this will no longer work in the future when
the global automation gets split into modules.
2025-09-05 03:55:03 +02:00
Dreaded_X 0090a77dc1 style: Sort crates by name 2025-09-05 03:55:03 +02:00
Dreaded_X 4d356001c3 style: Enforce conventional commits formatting 2025-09-05 03:55:03 +02:00
Dreaded_X aa22132dd6 chore: Put typos config in Cargo.toml 2025-09-04 04:28:02 +02:00
Dreaded_X 1db269f65e chore: Update pre-commit hooks 2025-09-04 04:28:02 +02:00
Dreaded_X 77d7881a57 chore: Update/upgrade dependencies
There was a potential vulnerability in tracing-subscriber, so I took
this as an opportunity to update/upgrade all dependencies
2025-09-04 04:28:02 +02:00
Dreaded_X f3b1854beb fix: Crash if hallway automation is called before door/trash have been initialized
Resolves: #4
2025-09-04 04:27:49 +02:00
Dreaded_X 8109dcf2f5 feat: Added low battery notification and made mqtt message parsing more robust
Resolves: #1
2025-09-04 04:26:34 +02:00
Dreaded_X 1b8566e593 refactor: Switch to async closures 2025-09-04 04:15:08 +02:00
Dreaded_X e21ea0f34e Implement custom lua print function that calls info
Build and deploy / build (push) Successful in 11m54s
Build and deploy / Deploy container (push) Successful in 45s
2025-09-01 02:47:47 +02:00
Dreaded_X fb7e1f1472 Small cleanup 2025-09-01 02:47:29 +02:00
Dreaded_X 45de83ef2f Removed old presence system 2025-08-31 23:57:59 +02:00
Dreaded_X 2a1f75f158 Move front door presence logic to lua 2025-08-31 23:57:59 +02:00
Dreaded_X 74568b4e1f Handle turning off devices when away through lua 2025-08-31 23:57:59 +02:00
Dreaded_X fefccf03d7 Removed DebugBridge as it no longer served a purpose 2025-08-31 23:57:59 +02:00
Dreaded_X b56a16d0d7 Moved presence debug mqtt message to lua 2025-08-31 23:57:59 +02:00
Dreaded_X 1530875045 Presence and light sensor call all function in array 2025-08-31 23:57:58 +02:00
Dreaded_X 9616017c8f Print lua version on startup 2025-08-31 23:57:56 +02:00
Dreaded_X 6db5831571 Removed old darkness system 2025-08-31 23:56:28 +02:00
Dreaded_X aa730c9738 Moved darkness debug mqtt message to lua 2025-08-31 05:41:49 +02:00
Dreaded_X c362952f7c Feature: Get current ms since unix epoch in lua 2025-08-31 05:41:49 +02:00
Dreaded_X dd379e4077 Feature: Send mqtt messages from lua 2025-08-31 05:41:48 +02:00
Dreaded_X 549d821e3a Moved hue bridge on darkness to lua 2025-08-31 05:41:46 +02:00
Dreaded_X 4980f4888e Removed unused event code 2025-08-31 05:01:56 +02:00
Dreaded_X eb36d41f17 Move ntfy and presence to automation_devices 2025-08-31 04:57:31 +02:00
Dreaded_X 03dcd44e0e Removed old notification system
Build and deploy / build (push) Successful in 8m50s
Build and deploy / Deploy container (push) Successful in 39s
2025-08-31 03:55:08 +02:00
Dreaded_X 6c9d2c16c1 Converted presence notification into lua callback 2025-08-31 03:55:08 +02:00
Dreaded_X 2d9e3d26f2 Send laundy notification from lua 2025-08-31 03:55:08 +02:00
Dreaded_X 64c7d950c5 Make it possible to send notifications from lua 2025-08-31 03:55:07 +02:00
Dreaded_X 5d342afb1f Converted macro to derive macro 2025-08-31 03:54:20 +02:00
Dreaded_X d2b01123b8 Made the impl_device macro more explicit about the implemented traits
This also converts impl_device into a procedural macro and get rid of a
lot of "magic" that was happening.
2025-08-31 00:38:58 +02:00
Dreaded_X c5262dcf35 Update to rust 1.89 and edition 2024 2025-08-31 00:38:58 +02:00
Dreaded_X 01e88eeb3b Use new and improved rust workflow and Dockerfile 2025-08-31 00:38:58 +02:00
Dreaded_X d6ab38f690 Improve pre-commit hooks 2025-08-31 00:38:58 +02:00
Dreaded_X 9f3b927cb6 Update dependencies and remove unused dependencies 2025-08-31 00:38:56 +02:00
Dreaded_X 7f41132965 Switch workbench light to new color temperature light
Build and deploy / Build application (push) Successful in 5m55s
Build and deploy / Build container (push) Successful in 2m16s
Build and deploy / Deploy container (push) Successful in 34s
2025-08-22 23:27:05 +02:00
Dreaded_X 3c5bd9ffb8 Add color temperature light 2025-08-22 23:27:05 +02:00
Dreaded_X 73218bb9b9 Store brightness in f32 instead of f64 2025-08-22 23:27:05 +02:00
Dreaded_X fe83568839 Added color temperature support with ColorSetting 2025-08-22 23:27:05 +02:00
Dreaded_X e27412339c Allow timeout to be a fraction of a second instead of always whole seconds 2025-08-22 23:27:05 +02:00
Dreaded_X 8f858e9b42 Removed cargo config that is no longer necessary 2025-08-22 23:27:01 +02:00
Dreaded_X 5730d9db03 Fixed struct name for temperature control 2025-08-22 02:15:26 +02:00
Dreaded_X d9e83a49a1 Improved long press behaviour when there is no long press callback
Build and deploy / Build application (push) Successful in 3m23s
Build and deploy / Build container (push) Successful in 52s
Build and deploy / Deploy container (push) Successful in 47s
2025-01-29 00:55:00 +01:00
Dreaded_X 00cd0366fd Added hue groups for bedroom lights controlled by hue switch
Build and deploy / Build application (push) Successful in 3m34s
Build and deploy / Build container (push) Successful in 57s
Build and deploy / Deploy container (push) Successful in 32s
2025-01-28 23:33:30 +01:00
Dreaded_X 68684d9410 Added hue groups for kitchen and living room lights controlled by hue switch
Build and deploy / Build application (push) Successful in 3m50s
Build and deploy / Build container (push) Successful in 1m21s
Build and deploy / Deploy container (push) Successful in 35s
2025-01-28 22:49:37 +01:00
Dreaded_X 746e19eb8c Use own struct to deserialize hue switch state and added hold actions 2025-01-28 22:48:02 +01:00
Dreaded_X 47d509cec1 Unneeded mqtt client in huegroup
Build and deploy / Build application (push) Failing after 2m57s
Build and deploy / Build container (push) Has been skipped
Build and deploy / Deploy container (push) Has been skipped
2025-01-28 22:43:50 +01:00
Dreaded_X 856bc3cc96 Updated airfilter ip
Build and deploy / Build application (push) Successful in 4m16s
Build and deploy / Build container (push) Successful in 1m25s
Build and deploy / Deploy container (push) Successful in 35s
2025-01-27 02:21:13 +01:00
Dreaded_X fbabc978b1 Reworked IkeaOutlet into more generic outlet that also (optionally) supports power measurement
Build and deploy / Build application (push) Successful in 4m15s
Build and deploy / Build container (push) Successful in 1m16s
Build and deploy / Deploy container (push) Successful in 19s
This new power measurement feature is used to turn the kettle off
automatically once it is done boiling
2025-01-26 04:48:59 +01:00
Dreaded_X 48c600b9cb Use ip instead of dns name for airfilter
Build and deploy / Build application (push) Successful in 4m13s
Build and deploy / Build container (push) Successful in 1m0s
Build and deploy / Deploy container (push) Successful in 33s
The dns name does not resolve properly in the container
2025-01-22 03:55:28 +01:00
Dreaded_X 3905df690b Reworked air filter integration
Build and deploy / Build application (push) Successful in 5m8s
Build and deploy / Build container (push) Successful in 2m19s
Build and deploy / Deploy container (push) Successful in 35s
2025-01-22 03:12:13 +01:00
Dreaded_X 5af713cf8f Switched speaker and mixer from KasaOutlet to IkeaOutlet
Build and deploy / Build application (push) Successful in 4m47s
Build and deploy / Build container (push) Successful in 1m21s
Build and deploy / Deploy container (push) Successful in 33s
2025-01-11 17:55:20 +01:00
Dreaded_X ae61cf5dd2 Updated ips
Build and deploy / Build application (push) Successful in 3m35s
Build and deploy / Build container (push) Successful in 1m22s
Build and deploy / Deploy container (push) Successful in 33s
2024-12-27 22:24:31 +01:00
Dreaded_X 8ad75a1148 Added workbench light (no color temp control for now)
Build and deploy / Build application (push) Successful in 3m30s
Build and deploy / Build container (push) Successful in 1m6s
Build and deploy / Deploy container (push) Successful in 33s
2024-12-17 19:59:08 +01:00
Dreaded_X ef180f6261 Added automatic storage room light
Build and deploy / Build application (push) Successful in 3m30s
Build and deploy / Build container (push) Successful in 1m18s
Build and deploy / Deploy container (push) Successful in 31s
2024-12-16 23:15:45 +01:00
Dreaded_X 1462755f36 Added window sensors, updated room names, and improved hallway automation
Build and deploy / Build application (push) Successful in 3m16s
Build and deploy / Build container (push) Successful in 52s
Build and deploy / Deploy container (push) Successful in 31s
2024-12-12 17:17:50 +01:00
Dreaded_X 90a94934fb Added open close trait and google home support for contact sensor 2024-12-11 22:19:31 +01:00
Dreaded_X 24815edd34 Increased hallway light timeout back to two minutes
Build and deploy / Build application (push) Successful in 3m59s
Build and deploy / Build container (push) Successful in 1m18s
Build and deploy / Deploy container (push) Successful in 34s
2024-12-10 22:23:07 +01:00
Dreaded_X bf6d80ded9 Added logo
Build and deploy / Build application (push) Successful in 3m7s
Build and deploy / Build container (push) Successful in 44s
Build and deploy / Deploy container (push) Successful in 32s
2024-12-08 05:47:21 +01:00
Dreaded_X 175056416e Updated is_on -> on to be consistent with rust
Build and deploy / Build application (push) Successful in 3m23s
Build and deploy / Build container (push) Successful in 1m2s
Build and deploy / Deploy container (push) Successful in 18s
2024-12-08 05:35:48 +01:00
Dreaded_X e4c211a278 Added dedicated light device and updated hallway logic 2024-12-08 05:34:51 +01:00
Dreaded_X 8c9e93dcc4 Added brightness trait 2024-12-08 05:19:27 +01:00
Dreaded_X 41d2af655b ActionCallback now always returns self and state can be anything serializable 2024-12-08 02:50:52 +01:00
Dreaded_X eefb476d7f Added support for generic structs in LuaDeviceConfig 2024-12-08 01:53:04 +01:00
Dreaded_X 14aabe202d Updated rust toolchain
Build and deploy / Build application (push) Successful in 4m7s
Build and deploy / Build container (push) Successful in 1m2s
Build and deploy / Deploy container (push) Successful in 35s
2024-12-08 00:57:57 +01:00
Dreaded_X e8d5698835 Updated dependencies 2024-12-08 00:53:31 +01:00
Dreaded_X 8877b24e84 Reorganized project 2024-12-08 00:15:03 +01:00
Dreaded_X 42f391cde6 Removed duplicate OnMqtt entry 2024-12-07 22:33:52 +01:00
Dreaded_X e9f080ef19 Moved and improved hallways logic with lua
Build and deploy / Build application (push) Successful in 4m7s
Build and deploy / Build container (push) Successful in 1m18s
Build and deploy / Deploy container (push) Successful in 21s
2024-12-06 01:27:35 +01:00
Dreaded_X 9d4b52b511 Implemented new timeout mechanism for ikea_outlet
Build and deploy / Build application (push) Successful in 5m24s
Build and deploy / Build container (push) Successful in 1m8s
Build and deploy / Deploy container (push) Successful in 19s
2024-12-04 03:03:53 +01:00
Dreaded_X 03f1790627 Removed spammy debug message 2024-12-04 01:34:46 +01:00
Dreaded_X d39432fa22 ActionCallback can now handle tuples 2024-12-04 01:29:28 +01:00
Dreaded_X 6b8d0b7d56 Added hue wall switches
Build and deploy / Build application (push) Successful in 4m9s
Build and deploy / Build container (push) Successful in 53s
Build and deploy / Deploy container (push) Successful in 32s
2024-11-30 22:17:16 +01:00
Dreaded_X 5185b0d3ba Added guest room light
Build and deploy / Build application (push) Successful in 3m23s
Build and deploy / Build container (push) Successful in 55s
Build and deploy / Deploy container (push) Successful in 31s
2024-11-30 18:44:48 +01:00
Dreaded_X 4bb49a381b Use IkeaRemote to control devices and completely replace AudioSetup
Build and deploy / Build application (push) Successful in 3m24s
Build and deploy / Build container (push) Successful in 43s
Build and deploy / Deploy container (push) Successful in 18s
2024-11-30 06:06:30 +01:00
Dreaded_X a353ba3d08 Added IkeaRemote 2024-11-30 05:45:03 +01:00
Dreaded_X 157bbf923f Added generic action callback 2024-11-30 05:44:23 +01:00
Dreaded_X 9719c46136 Added deref to impl_device to account for changes in mlua 0.10
Build and deploy / Build application (push) Successful in 3m26s
Build and deploy / Build container (push) Successful in 52s
Build and deploy / Deploy container (push) Successful in 32s
2024-11-30 05:31:38 +01:00
Dreaded_X 8b04435537 No more global LUA
Build and deploy / Build application (push) Successful in 3m45s
Build and deploy / Build container (push) Successful in 54s
Build and deploy / Deploy container (push) Successful in 29s
2024-11-30 05:10:40 +01:00
Dreaded_X ae2c27551f Initial upgrade to mlua 0.10
Build and deploy / Build application (push) Successful in 7m59s
Build and deploy / Build container (push) Successful in 2m54s
Build and deploy / Deploy container (push) Successful in 19s
2024-11-30 04:47:52 +01:00
Dreaded_X d11e79cdfa Devices now keep type in lua
Build and deploy / Build application (push) Successful in 4m5s
Build and deploy / Build container (push) Successful in 1m9s
Build and deploy / Deploy container (push) Successful in 37s
2024-08-08 01:36:11 +02:00
Dreaded_X b0467b8012 Fixed kasa ip addresses
Build and deploy / Build application (push) Successful in 3m39s
Build and deploy / Build container (push) Successful in 1m5s
Build and deploy / Deploy container (push) Successful in 37s
2024-08-08 00:24:14 +02:00
Dreaded_X 3105c266b0 Updated hue ip
Build and deploy / Build application (push) Successful in 3m59s
Build and deploy / Build container (push) Successful in 1m24s
Build and deploy / Deploy container (push) Successful in 38s
2024-08-07 23:22:11 +02:00
Dreaded_X 88e31699ad Removed pre-commit action
Build and deploy / Build application (push) Successful in 3m36s
Build and deploy / Build container (push) Successful in 40s
Build and deploy / Deploy container (push) Successful in 32s
I should always run pre-commit locally and currently this just takes to
long to run.
2024-07-30 00:08:10 +02:00
Dreaded_X 23e78fe5a7 Small cleanup
Build and deploy / Build application (push) Successful in 4m43s
Check / Run checks (push) Successful in 2m24s
Build and deploy / Build container (push) Successful in 58s
Build and deploy / Deploy container (push) Has been skipped
2024-07-30 00:06:49 +02:00
Dreaded_X 14e14ca479 No need for Arc<RwLock<_>> inside the device wrapper anymore
Build and deploy / Build application (push) Successful in 4m27s
Check / Run checks (push) Successful in 2m14s
Build and deploy / Build container (push) Successful in 55s
Build and deploy / Deploy container (push) Has been skipped
2024-07-26 01:17:12 +02:00
Dreaded_X 3fd8dddeb2 No more cast_mut() 2024-07-26 00:37:53 +02:00
Dreaded_X 6c797820dc Updated to newest rust nightly 2024-07-26 00:25:49 +02:00
Dreaded_X 2cf4e40ad5 Devices are now clonable 2024-07-26 00:25:30 +02:00
Dreaded_X 98ab265fed Improved Lua macro situation
Build and deploy / Build application (push) Successful in 6m20s
Check / Run checks (push) Successful in 2m19s
Build and deploy / Build container (push) Successful in 1m16s
Build and deploy / Deploy container (push) Has been skipped
2024-07-25 00:49:10 +02:00
Dreaded_X 006320be18 Added trash light automation
Build and deploy / Build application (push) Successful in 3m49s
Check / Run checks (push) Successful in 2m16s
Build and deploy / Build container (push) Successful in 49s
Build and deploy / Deploy container (push) Successful in 32s
2024-07-15 00:37:24 +02:00
Dreaded_X 3b8f15eb88 Fixed activating scene
Build and deploy / Build application (push) Successful in 3m51s
Check / Run checks (push) Successful in 2m37s
Build and deploy / Build container (push) Successful in 1m8s
Build and deploy / Deploy container (push) Successful in 36s
2024-07-10 02:02:43 +02:00
Dreaded_X f7b709a2c7 Added temperature to air_filter
Build and deploy / Build application (push) Successful in 3m49s
Check / Run checks (push) Successful in 2m11s
Build and deploy / Build container (push) Successful in 56s
Build and deploy / Deploy container (push) Successful in 37s
2024-07-09 02:37:33 +02:00