4475ba5293
chore: Upgraded to new workflow
Build and deploy / build (push) Failing after 17m55s
Build and deploy / Deploy container (push) Has been skipped
2025-11-16 23:25:47 +01:00
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
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
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
f36adf2f19
feat: Implement useful traits to simplify code
2025-10-22 04:09:01 +02:00
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
8a3143a3ea
feat: Added type alias for setup and schedule types
2025-10-22 03:59:40 +02:00
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
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
a6c19eb9b4
fix: Fix issues with inner type definitions
2025-10-22 02:59:21 +02:00
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
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
2056c6c70d
feat(config)!: Changed default config location
2025-10-20 04:48:33 +02:00
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
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
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
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
02b6cf12a1
feat: Improved device conversion error message
2025-10-20 04:48:28 +02:00
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
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
948380ea9b
feat: Receive devices through config return
2025-10-20 04:48:28 +02:00
0c80cef5a1
feat: Ensure consistent ordering device definitions
2025-10-20 04:48:28 +02:00
84e8942fc9
feat: Generate definitions for config
2025-10-20 04:48:27 +02:00
b557afe2fc
refactor: Move definition writing into separate function
2025-10-20 04:48:27 +02:00
5801421378
refactor: Move main.rs to bin/automation.rs
2025-10-20 04:48:22 +02:00
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
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
810fae8da5
chore: Reordered pre-commit hooks
2025-10-15 04:23:12 +02:00
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
df64804b00
feat: Add bin to automatically generate lua definitions
2025-10-15 04:01:15 +02:00
11b9787890
chore: Remove allow that is no longer required
2025-10-15 03:57:57 +02:00
8961101fdf
chore: Run main application by default
2025-10-15 03:57:02 +02:00
17a68e8991
feat: Added optional definition function to module
2025-10-15 03:53:55 +02:00
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
9bddeae54e
feat: Use Typed::type_name for Timeout proxy name
2025-10-15 03:53:06 +02:00
97b944874a
feat: Added/expanded Typed impls
2025-10-15 03:50:50 +02:00
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
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
30ea9b2737
feat: Use Typed type_name for registering proxy
2025-10-15 03:44:17 +02:00
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
4b76bde2a6
feat: Specify (optional) interface name in PartialUserData
2025-10-15 03:44:17 +02:00
006a561307
feat: Use PartialUserData on proxy type to add trait methods
2025-10-15 03:44:17 +02:00
745a1025bb
feat!: Improved attribute parsing in device macro
2025-10-15 03:44:13 +02:00
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
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
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
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
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
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
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