Commit Graph

154 Commits

Author SHA1 Message Date
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
All checks were successful
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
3134891751
Adjusted internal washer hysteresis to prevent false positives
All checks were successful
continuous-integration/drone/push Build is passing
2023-08-17 01:47:45 +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
All checks were successful
continuous-integration/drone/push Build is passing
2023-08-16 02:17:21 +02:00
ab5e47d1ff
Updated some logging stuff
All checks were successful
continuous-integration/drone/push Build is passing
2023-08-15 23:06:09 +02:00
27ef78e132
Added mechanism to prevent false positives
All checks were successful
continuous-integration/drone/push Build is passing
2023-08-15 19:23:56 +02:00
bb131f2b1a
Added basic hue light bridge, improved Timeout trait and setup frontdoor to turn on hallway ligh temporarily
All checks were successful
continuous-integration/drone/push Build is passing
2023-08-15 04:45:35 +02:00
7f89780696
Made washer power threshold configurable
All checks were successful
continuous-integration/drone/push Build is passing
2023-08-14 16:36:13 +02:00
ee00959e8a
Added initial basic washer integration
All checks were successful
continuous-integration/drone/push Build is passing
2023-08-14 03:52:00 +02:00
690090016e
Turn off the device directly if the timeout is set to zero 2023-08-14 03:07:48 +02:00
b97b682a5e
Contact sensor can now turn on device when opened and turn them off again after a timeout 2023-08-14 02:58:58 +02:00
12ca577a65
Added trait for devices that can turn off a given timeout 2023-08-14 02:58:13 +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
76b75b0cfb
The light in the bathroom will now turn off automatically after 45 min
All checks were successful
continuous-integration/drone/push Build is passing
2023-08-13 23:20:07 +02:00
522fe27f11
Converted google home traits to be async
Some checks failed
continuous-integration/drone/push Build is failing
2023-08-11 03:46:44 +02:00
a67e47997b
More refactoring 2023-08-11 03:16:23 +02:00
330523166f
Store devices wrapped in Arc RwLock 2023-08-11 02:24:58 +02:00
58ade33c42
Also moved ntfy into devices as it is a quasi device
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-24 04:44:19 +02:00
40c0ac5144
Moved quasi-devices into the devices module and made event related device traits part of the event module
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-24 04:28:17 +02:00
28ce9c9d82
Moved mqtt messages to a seperate file 2023-04-24 02:50:30 +02:00
8f515ccf75
Moved mqtt parse error to error.rs 2023-04-24 02:46:02 +02:00
0ad42c029e
Small refactor related to device creation
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-14 22:35:15 +02:00
1a9d99fed9
Moved traits into seperate module 2023-04-14 22:34:40 +02:00
b7329b58ee
Everything is now implemented as a Device using device_traits with all events going through a single place
All checks were successful
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
All checks were successful
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
All checks were successful
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
11aa15b59d
Moved the mqtt topic check up one leve into Devices
Some checks failed
continuous-integration/drone/push Build is failing
2023-04-12 04:49:45 +02:00
92c8f3074f
Devices now handles subscribing to mqtt topics 2023-04-12 04:37:16 +02:00
34e5274e0b
Removed redundant log message in ikea_outlet and fixed wording
Some checks failed
continuous-integration/drone/push Build is failing
2023-04-12 03:41:56 +02:00
6ed2d251f6
Made OutletType copy 2023-04-12 03:41:20 +02:00
d5c4b84d79
Use tracing::instrument instead of tracing::span 2023-04-12 03:38:13 +02:00
854098e292
Added tokio-console support 2023-04-12 03:34:58 +02:00
ca8821b406
Rewrote impl_cast as a proc_macro to make it easier to work with 2023-04-12 01:20:21 +02:00
b54c9512b9
Improved impl_cast and made all traits Sync + Send + 'static
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-10 23:51:22 +02:00
8cfb346ca5
Removed hacky code that got accidentally commited
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-10 02:10:23 +02:00
3645b53f7c
Applied rust fmt
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-10 01:33:39 +02:00
de9203b8d5
Suppress incomplete feature warning caused by specialization 2023-04-10 01:30:43 +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
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-20 17:47:42 +01:00
07563a6d30
Added charger as outlet type
All checks were successful
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
All checks were successful
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
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-19 22:19:26 +01:00
a0cefa8302
Improved error handling
All checks were successful
continuous-integration/drone/push Build is passing
continuous-integration/drone Build is passing
2023-01-18 22:37:57 +01:00
b6bf8a82a2
Improved code
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-18 20:05:03 +01:00
4844bd5d79
Added debug bridge to publish state on mqtt
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-17 20:14:36 +01:00
c3638367de
Changed default fullfillment bind ip
All checks were successful
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
All checks were successful
continuous-integration/drone/push Build is passing
2023-01-17 18:12:03 +01:00
d55540a6c0 If connection is lost to the mqtt server, attempt to reconnect instead of panicking 2023-01-13 00:02:34 +01:00
06389d83f7 Use &str instead of String whenever possible 2023-01-12 23:43:45 +01:00
13f5c87c03 Improved error handling 2023-01-12 02:20:09 +01:00
e9d1cf554d Use broadcast for mqtt message so we can have a queue 2023-01-10 22:59:26 +01:00
5ee8eaf8fb Make sure the setup is done before we start listening for events 2023-01-10 01:02:04 +01:00
9d6488183f Small change to how on presence changes the state for IkeaOutlet 2023-01-10 00:41:49 +01:00
220c68cd65 Converted more of the codebase to async 2023-01-10 00:37:13 +01:00
5b9d24e82f Switched to channels for communication between different parts of the code 2023-01-09 23:50:50 +01:00
cf88768c15 Made hue_bridge and ntfy optional 2023-01-09 20:27:59 +01:00
0b22d0c6b7 Switched to a maintained fork of dotenv 2023-01-09 01:39:40 +01:00
21b96c2925 Added OnPresence handler for AudioSetup 2023-01-07 05:06:14 +01:00
a638de42c1 AudioSetup now stores children as OnOff instead of Device as that is all that is required 2023-01-07 05:00:59 +01:00
8bc203cb2d Reduced the amount of indirect dependencies 2023-01-07 04:58:13 +01:00
99ff60a505
AudioSetup now takes two devices that implement the OnOff trait instead of being tied to KasaOutlet 2023-01-06 23:24:25 +01:00
50ff5b162e
Switched from std::RwLock to parking_lot 2023-01-06 23:16:36 +01:00
03282b81c5
Further improved mqtt topic handling 2023-01-06 05:40:18 +01:00
9fd3890c45
Improved the mechanism for extracting the presence device name 2023-01-06 05:31:47 +01:00
47afda8dee
Improved how mqtt topics are handled 2023-01-06 05:25:39 +01:00
1326a8878c
Only activate the contact sensor presence if there is the overall presence is currently false 2023-01-06 04:51:43 +01:00
e16e30ffe2
Make sure the presence is recalculated after a device is removed 2023-01-06 04:50:59 +01:00
27a63b1a79
Setting the presence mqtt topic is now optional, if not set it will generate an appropriate value automatically 2023-01-06 04:42:42 +01:00
cbcbd05613
Error on failed env substitution 2023-01-06 04:14:39 +01:00
d06c0b6980
Environment variables can now be used directly inside the config instead of requiring special handling 2023-01-06 04:07:50 +01:00
82859d8e46
Added authentication to fullfillment endpoint 2023-01-06 03:34:33 +01:00
ee8d2fb74f
Enabled json feature of reqwest 2023-01-06 03:33:47 +01:00
99713aa4c6
Changed how timeout is printed 2023-01-05 04:30:14 +01:00
9a239a88ec
Added contact sensor that can act as a presence device with timeout 2023-01-05 04:29:27 +01:00
d0c92e8e18
Changed some logging 2023-01-05 03:01:31 +01:00
f88c7a5695
Added hue_bridge to bridge across the presence and darkness events 2023-01-05 03:01:21 +01:00
69abaf98d7
Switched to proper Ipv4Addr type 2023-01-05 02:09:36 +01:00
c9b2127eed
Some cleanup and added light sensor 2023-01-03 20:46:37 +01:00
cfd10a7daf
Refactored how we deal with blocking code and added AudioSetup 2023-01-03 05:26:00 +01:00
06e511758b
Switched to tracing 2022-12-29 06:14:01 +01:00
3c0f4bf3b3
Added ntfy.sh integration 2022-12-29 02:36:05 +01:00
458c5e25a3
Renamed mqtt system to make it more clear that it has to do with mqtt 2022-12-29 00:50:16 +01:00
924b3cf862
Added OnPresence trait that allows devices to act on changes in presence 2022-12-29 00:24:00 +01:00
8dc3fd42e7
Switched from warp to axum 2022-12-28 05:22:36 +01:00
3b6a5e4c07
Moved some stuff from main into the libary 2022-12-28 04:17:23 +01:00
2b4ddf82b6
Added WakeOnLAN device, some small refactoring and improved error handling 2022-12-28 03:27:25 +01:00
fb455b4e4c
Config is passed directly to IkeaOutlet and now supports turning off automatically after a specified amount of time 2022-12-27 22:27:41 +01:00
f735216dc4
Devices and some settings are now loaded from the config file instead of hardcoded 2022-12-27 04:00:35 +01:00
6c4ae9ec35 Instead of using pollster we use tokio::spawn to spawn a seperate task for subscribing and publishing to mqtt 2022-12-25 01:29:30 +01:00
1299443a7c
Moved some config over to an actual config file, improved error handling 2022-12-24 04:47:06 +01:00
7e3c3223b2
Adjusted how we requre Sync + Send, added logger, cleanup dependencies, and added web server using warp and tokio 2022-12-23 04:40:08 +01:00
2103a46416
Made some changes to allow for threading/async in the future 2022-12-17 05:36:36 +01:00
e88e2fe48b
Finished basic google home implementation with some slight refactors along the way 2022-12-16 06:54:31 +01:00
995ff08784
Architectural changes and added first basic implementation for handling queries (does not handle errors) 2022-12-15 05:04:11 +01:00