Dreaded_X
28af488eca
chore: Upgraded to new workflow
Build and deploy / build (push) Failing after 1s
Build and deploy / Deploy container (push) Has been skipped
2025-11-16 23:25:03 +01:00
Dreaded_X
f3de8e36ea
fix: Frontdoor presence is the wrong way around
Build and deploy / build (push) Successful in 14m48s
Build and deploy / Deploy container (push) Successful in 1m59s
2025-10-30 20:56:49 +01:00
Dreaded_X
44f2c57819
fix: Set entrypoint lua path correctly in Dockerfile
Build and deploy / build (push) Successful in 11m27s
Build and deploy / Deploy container (push) Successful in 29s
2025-10-22 05:17:02 +02:00
Dreaded_X
ad158f2c22
feat: Reduced visibility of config structs
Build and deploy / build (push) Successful in 9m0s
Build and deploy / Deploy container (push) Successful in 49s
2025-10-22 04:13:54 +02:00
Dreaded_X
f36adf2f19
feat: Implement useful traits to simplify code
2025-10-22 04:09:01 +02:00
Dreaded_X
5947098bfb
chore: Fix config type annotations
Build and deploy / build (push) Successful in 12m30s
Build and deploy / Deploy container (push) Has been skipped
2025-10-22 03:59:59 +02:00
Dreaded_X
8a3143a3ea
feat: Added type alias for setup and schedule types
2025-10-22 03:59:40 +02:00
Dreaded_X
9546585440
feat(config)!: Made schedule part of new modules
Build and deploy / build (push) Successful in 11m57s
Build and deploy / Deploy container (push) Has been skipped
2025-10-22 03:24:34 +02:00
Dreaded_X
a938f3d71b
feat(config)!: Improve config module resolution
...
Build and deploy / build (push) Successful in 11m31s
Build and deploy / Deploy container (push) Has been skipped
The new system is slightly less flexible, but the code and lua
definitions is now a lot simpler and easier to understand.
In fact the old lua definition was not actually correct.
It is likely that existing configs require not/minimal tweaks to work
again.
2025-10-22 03:09:15 +02:00
Dreaded_X
a6c19eb9b4
fix: Fix issues with inner type definitions
2025-10-22 02:59:21 +02:00
Dreaded_X
7db628709a
refactor: Split config
Build and deploy / build (push) Successful in 10m56s
Build and deploy / Deploy container (push) Has been skipped
2025-10-20 05:02:19 +02:00
Dreaded_X
bc75f7005c
feat(config)!: Device creation function is now named entry
...
It now has to be called 'setup', this makes it possible to just
include the table as a whole in devices and it will automatically call
the correct function.
2025-10-20 05:02:04 +02:00
Dreaded_X
2056c6c70d
feat(config)!: Changed default config location
2025-10-20 04:48:33 +02:00
Dreaded_X
2fe9fbadfb
feat(config)!: Remove device manager lua code
...
With the recent changes the device manager no longer needs to be
available in lua.
2025-10-20 04:48:33 +02:00
Dreaded_X
2db4af7427
feat(config)!: Config now returns the mqtt config instead of the client
...
Instead the client is now created on the rust side based on the config.
Devices that require the mqtt client will now instead need to be
constructor using a function. This function receives the mqtt client.
2025-10-20 04:48:32 +02:00
Dreaded_X
7b7279017f
refactor: Restructured config to not rely on mqtt client being available
...
In preparation of changes to the mqtt client the config is rewritten to
use a device creation function for devices that need the mqtt client.
This also fixes a but where hallway_top_light was not actually added to
the device manager.
2025-10-20 04:48:29 +02:00
Dreaded_X
f05856cd0c
feat(config)!: In config devices can now also be a (table of) function(s)
...
This function receives the mqtt client as an argument. In the future
this will be the only way to create devices that require the mqtt client.
2025-10-20 04:48:28 +02:00
Dreaded_X
02b6cf12a1
feat: Improved device conversion error message
2025-10-20 04:48:28 +02:00
Dreaded_X
02b87126e1
feat: Use ActionCallback for schedule
...
This has two advantages:
- Each schedule entry can take either a single function or table of
functions.
- We get a better type definition.
2025-10-20 04:48:28 +02:00
Dreaded_X
1ffccd955c
refactor(config)!: Move scheduler out of device_manager
...
Due to changes made in mlua the new scheduler is much simpler. It also
had no real business being part of the device manager, so it has now been
moved to be part of the returned config.
2025-10-20 04:48:28 +02:00
Dreaded_X
948380ea9b
feat: Receive devices through config return
2025-10-20 04:48:28 +02:00
Dreaded_X
0c80cef5a1
feat: Ensure consistent ordering device definitions
2025-10-20 04:48:28 +02:00
Dreaded_X
84e8942fc9
feat: Generate definitions for config
2025-10-20 04:48:27 +02:00
Dreaded_X
b557afe2fc
refactor: Move definition writing into separate function
2025-10-20 04:48:27 +02:00
Dreaded_X
5801421378
refactor: Move main.rs to bin/automation.rs
2025-10-20 04:48:22 +02:00
Dreaded_X
ba818c6b60
refactor(config)!: Setup for expanding lua config return
...
Moves the application config out of automation_lib and sets up the
config return type for further expansion.
2025-10-17 03:08:21 +02:00
Dreaded_X
a95574b731
feat: Added type annotations to config.lua
...
Build and deploy / build (push) Successful in 9m16s
Build and deploy / Deploy container (push) Successful in 3m12s
In some instances this required some restructuring of the code to be
able to properly add the annotations.
2025-10-15 04:24:08 +02:00
Dreaded_X
810fae8da5
chore: Reordered pre-commit hooks
2025-10-15 04:23:12 +02:00
Dreaded_X
6fc3783d7a
feat: Added lua definition files
...
Also added a pre-commit hook to ensure that the definitions files are
up-to-date.
2025-10-15 04:23:12 +02:00
Dreaded_X
df64804b00
feat: Add bin to automatically generate lua definitions
2025-10-15 04:01:15 +02:00
Dreaded_X
11b9787890
chore: Remove allow that is no longer required
2025-10-15 03:57:57 +02:00
Dreaded_X
8961101fdf
chore: Run main application by default
2025-10-15 03:57:02 +02:00
Dreaded_X
17a68e8991
feat: Added optional definition function to module
2025-10-15 03:53:55 +02:00
Dreaded_X
be1602d0e2
feat(config)!: Move mqtt module to actual separate module
...
The automation:mqtt module now gets loaded in a similar way as the
automation:devices and automation:utils modules.
This leads to a breaking change where instantiating a new mqtt client
the device manager needs to be explicitly passed in.
2025-10-15 03:53:55 +02:00
Dreaded_X
9bddeae54e
feat: Use Typed::type_name for Timeout proxy name
2025-10-15 03:53:06 +02:00
Dreaded_X
97b944874a
feat: Added/expanded Typed impls
2025-10-15 03:50:50 +02:00
Dreaded_X
54164c517b
feat: Remove automatic automation: module prefix
...
Instead the prefix should be manually specified if it is desired.
2025-10-15 03:50:36 +02:00
Dreaded_X
518abd169d
chore: Removed dotenvy
...
Since secrets can now be set from automation.toml the .env file was no
longer used, so dotenvy can be removed.
2025-10-15 03:44:17 +02:00
Dreaded_X
30ea9b2737
feat: Use Typed type_name for registering proxy
2025-10-15 03:44:17 +02:00
Dreaded_X
cd470cadaf
feat!: Expanded add_methods to extra_user_data
...
Instead of being a function it now expects a struct with the
PartialUserData trait implemented. This in part ensures the correct
function signature.
It also adds another optional function to PartialUserData that returns
definitions for the added methods.
2025-10-15 03:44:17 +02:00
Dreaded_X
4b76bde2a6
feat: Specify (optional) interface name in PartialUserData
2025-10-15 03:44:17 +02:00
Dreaded_X
006a561307
feat: Use PartialUserData on proxy type to add trait methods
2025-10-15 03:44:17 +02:00
Dreaded_X
745a1025bb
feat!: Improved attribute parsing in device macro
2025-10-15 03:44:13 +02:00
Dreaded_X
45485fca37
feat: Add proper type definition for devices
...
Depending on the implemented traits the lua class will inherit from the
associated interface class.
It also specifies the constructor function for each of the devices.
2025-10-15 00:45:37 +02:00
Dreaded_X
1532958a86
feat: Added Typed impl for all automation devices
...
To accomplish this a basic implementation was also provided for some
types in automation_lib
2025-10-15 00:45:37 +02:00
Dreaded_X
76eb63cd97
feat: Use same add_methods mechanic for Device as for other traits
Build and deploy / build (push) Successful in 9m57s
Build and deploy / Deploy container (push) Has been skipped
2025-10-10 03:33:28 +02:00
Dreaded_X
b784cfed4a
feat: Notify when windows are left open when leaving
Build and deploy / build (push) Successful in 15m2s
Build and deploy / Deploy container (push) Successful in 2m8s
2025-10-10 01:12:58 +02:00
Dreaded_X
06b3154733
feat!: Use type alias instead of generic parameters in device macro
...
Build and deploy / build (push) Successful in 10m11s
Build and deploy / Deploy container (push) Successful in 2m8s
This enforced the idea that all generics must be specified for the type
when using the device macro. It will also come into play later when the
Typed macro gets introduced, as the name will be used when generating
definitions.
2025-09-17 00:35:30 +02:00
Dreaded_X
580a5187bd
feat!: Made ntfy notification title required
Build and deploy / build (push) Successful in 12m26s
Build and deploy / Deploy container (push) Successful in 43s
2025-09-13 04:04:51 +02:00
Dreaded_X
8982e9c165
feat(config)!: Put automation modules in namespace
...
Build and deploy / build (push) Successful in 13m33s
Build and deploy / Deploy container (push) Successful in 39s
All lua modules that originate from automation_rs are now prefixed with
`automation:`.
2025-09-11 04:12:15 +02:00