2523c900bc
feat(config)!: Config now returns the mqtt config instead of the client
...
Build and deploy / Deploy container (push) Blocked by required conditions
Build and deploy / build (push) Has been cancelled
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-19 04:58:53 +02:00
a26a93550b
feat(config)!: In config devices can now also be a (table of) function(s)
...
Build and deploy / Deploy container (push) Blocked by required conditions
Build and deploy / build (push) Has been cancelled
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-19 04:18:26 +02:00
3b7579878b
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-19 03:40:16 +02:00
46c32c3605
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-19 03:40:16 +02:00
d1e7988117
feat: Receive devices through config return
2025-10-19 03:40:15 +02:00
7bb5e65c1c
feat: Generate definitions for config
2025-10-19 03:40:15 +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
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
8877b24e84
Reorganized project
2024-12-08 00:15:03 +01:00
2ff59872b2
Moved last config items to lua + small cleanup
2024-05-07 00:05:37 +02:00
9f636a2572
mqtt client is now created in lua
2024-05-07 00:05:37 +02:00
3e4ea8952a
Improved how devices are created, ntfy and presence are now treated like any other device
2024-05-07 00:05:36 +02:00
5069d1b0e7
Moved schedule config from yml to lua
2024-05-07 00:05:36 +02:00
bfc73c7bd3
Device config is now done through lua
2024-05-07 00:05:36 +02:00
73a2b077ed
Fmt: Added cargofmt config and reformatted files
continuous-integration/drone/push Build is passing
2023-11-20 23:27:48 +01:00
db17b68e90
Feature: Schedule devices turning on/off
continuous-integration/drone/push Build is passing
2023-11-17 00:01:13 +01:00
dd4be4a2ee
Switched from toml to yaml for configuration
continuous-integration/drone/push Build is failing
2023-11-05 22:41:48 +01:00
9628b8a94b
HueLight is now HueGroup and uses a scene to turn the light on, the contact sensor will also not override the current light state if it is already on
continuous-integration/drone/push Build is passing
2023-08-18 05:56:45 +02:00
044c38ba86
More refactoring
2023-08-18 03:07:16 +02:00
cff9cb4bf6
Further improvements to how devices are created
2023-08-17 01:47:05 +02:00
b1506f8e63
Improved the way devices are instantiated from their respective configs
continuous-integration/drone/push Build is passing
2023-08-16 02:17:21 +02:00
bb131f2b1a
Added basic hue light bridge, improved Timeout trait and setup frontdoor to turn on hallway ligh temporarily
continuous-integration/drone/push Build is passing
2023-08-15 04:45:35 +02:00
ee00959e8a
Added initial basic washer integration
continuous-integration/drone/push Build is passing
2023-08-14 03:52:00 +02:00
e38c5eed31
AudioSetup now takes the name of two already created devices and stores a reference to the devices instead of creating and owning the devices directly
2023-08-14 01:56:00 +02:00
330523166f
Store devices wrapped in Arc RwLock
2023-08-11 02:24:58 +02:00
40c0ac5144
Moved quasi-devices into the devices module and made event related device traits part of the event module
continuous-integration/drone/push Build is passing
2023-04-24 04:28:17 +02:00
0ad42c029e
Small refactor related to device creation
continuous-integration/drone/push Build is passing
2023-04-14 22:35:15 +02:00
b7329b58ee
Everything is now implemented as a Device using device_traits with all events going through a single place
continuous-integration/drone/push Build is passing
2023-04-14 05:46:04 +02:00
88e9b8f409
Big refactor from using a seperate channel for all the different kind of events to a single event channel
continuous-integration/drone/push Build is passing
2023-04-14 01:06:08 +02:00
72ab48df42
The device create function is now standarized using a trait
continuous-integration/drone/push Build is passing
2023-04-13 05:46:17 +02:00
f4c1ac5c9b
Moved most config structs to be in the same file as what they are for
2023-04-13 05:12:39 +02:00
2aa13e7706
Automatically convert the mqtt config into the MqttOptions struct
2023-04-13 03:26:00 +02:00
92c8f3074f
Devices now handles subscribing to mqtt topics
2023-04-12 04:37:16 +02:00
6ed2d251f6
Made OutletType copy
2023-04-12 03:41:20 +02:00
b54c9512b9
Improved impl_cast and made all traits Sync + Send + 'static
continuous-integration/drone/push Build is passing
2023-04-10 23:51:22 +02:00
3645b53f7c
Applied rust fmt
continuous-integration/drone/push Build is passing
2023-04-10 01:33:39 +02:00
839c0a1c57
Applied clippy rules
2023-04-10 01:29:48 +02:00
3613c2cbdf
Changed how TODO notes are marked to properly highlight in vim
2023-04-09 23:01:21 +02:00
1a9d12b1f3
Charger does not get turned off when leaving the house
continuous-integration/drone/push Build is passing
2023-03-20 17:47:42 +01:00
07563a6d30
Added charger as outlet type
continuous-integration/drone/push Build is passing
2023-03-19 23:02:39 +01:00
18bca5abf4
ntfy notifications are now send through a channel, allowing notifications to be send from other places in the program
2023-01-24 19:00:38 +01:00
6c8b73f60f
Use format macro instead of directly concating
continuous-integration/drone/push Build is passing
2023-01-20 16:44:49 +01:00
aa8963bd4a
Directly send wol packet instead of using the webhook
continuous-integration/drone/push Build is passing
2023-01-19 22:19:26 +01:00
a0cefa8302
Improved error handling
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
2023-01-18 22:37:57 +01:00
b6bf8a82a2
Improved code
continuous-integration/drone/push Build is passing
2023-01-18 20:05:03 +01:00
4844bd5d79
Added debug bridge to publish state on mqtt
continuous-integration/drone/push Build is passing
2023-01-17 20:14:36 +01:00
c3638367de
Changed default fullfillment bind ip
continuous-integration/drone/push Build is passing
2023-01-17 18:57:26 +01:00
1e4d768d25
mqtt client name is now a config option
2023-01-17 18:23:57 +01:00
614b4b5e43
Made tls optional
continuous-integration/drone/push Build is passing
2023-01-17 18:12:03 +01:00
06389d83f7
Use &str instead of String whenever possible
2023-01-12 23:43:45 +01:00