Fabio Manganiello
641a2fd135
Renamed parameter of `volup`/`voldown` for music plugins.
...
To be consistent with all other media plugins, the parameter name should
be `step`, not `delta`.
A back-compatibility layer has however been introduced for plugins
(namely `music.mpd` and `music.spotify`) that already exposed the old
interface.
2024-01-13 22:35:18 +01:00
Fabio Manganiello
f0dcb94862
[pushbullet] Fixed `on_error` callback on the listener.
...
The `Listener` class from the `pushbullet.py` library is a mess, and it
has two internal functions to handle errors.
2024-01-13 13:24:47 +01:00
Fabio Manganiello
9fa5989e21
[ #302 ] Merged `pushbullet` backend and plugin.
...
Also, added support for more granular Pushbullet events.
Closes : #302
2024-01-09 23:46:07 +00:00
Fabio Manganiello
4505c46071
[Sound] Don't override device index if it's already defined in the info.
continuous-integration/drone/push Build is passing
Details
2024-01-08 23:03:08 +01:00
Fabio Manganiello
3d2ee5d6bb
Replaced some new typing `|` notations with `Union`.
...
continuous-integration/drone/push Build is passing
Details
The `|` notation breaks on Python < 3.10.
2024-01-07 00:52:24 +01:00
Fabio Manganiello
edd92b8467
Fix: Ensure that components cache keys are ordered before dumping to file.
...
continuous-integration/drone/push Build is passing
Details
Reason: The CI/CD automation regenerates the cache file, and commits
the changes if it differs from the previous version.
The only way to ensure semantic equivalence is to sort the keys upon
dump.
2024-01-06 22:50:34 +01:00
Fabio Manganiello
771ecd9a5b
Fixed typo in the package name of the Github manifest.
2024-01-06 22:41:24 +01:00
Fabio Manganiello
6e1ab92298
New components cache management.
...
continuous-integration/drone/push Build is passing
Details
The cache is no longer generated at runtime when the application runs -
which may take quite a while, especially on fresh installations.
A `components.json.gz` file is instead generated by the CI/CD process on
every commit to the main branch, and distributed with the package.
The application will read this file when the `inspect` plugin is first
initialized.
This also means that we can no longer cache the `install_cmds`, as they
change depending on the target OS. A new
`application.get_install_commands` action has now been made available to
the UI, so it can get the correct installation commands at runtime.
2024-01-06 22:21:59 +01:00
Fabio Manganiello
ef885e096f
Added `inspect.get_pkg_managers` internal action.
...
It will be used by the UI to put together the installation commands.
2024-01-06 03:02:31 +01:00
Fabio Manganiello
8fd5009553
[foursquare] Proper cast to number for db variables which may be strings.
2024-01-05 02:56:10 +01:00
Fabio Manganiello
4aeff10a5d
[ #286 ] Merge Foursquare backend and plugin.
...
continuous-integration/drone/push Build is passing
Details
Closes : #286
2024-01-01 22:54:18 +01:00
Fabio Manganiello
7f13e02803
Fixed docstring
2023-12-31 04:34:42 +01:00
Fabio Manganiello
2701f69d17
[ #287 ] Migrated `github` from a backend to a runnable plugin.
...
Closes : #287
2023-12-30 16:28:12 +01:00
Fabio Manganiello
171ed7f743
[Entities UI] Better refresh logic.
continuous-integration/drone/push Build is passing
Details
2023-12-29 03:45:17 +01:00
Fabio Manganiello
0de322fb95
[assistant.google] Propagate plugin name as a string to events.
...
continuous-integration/drone/push Build is passing
Details
This also makes it easier to programmatically stop conversations on
`SpeechRecognizedEvent` with a matched phrase.
2023-12-21 00:28:27 +01:00
Fabio Manganiello
cfc7a5a6a0
[alarm] Added `media_repeat` configuration.
continuous-integration/drone/push Build is failing
Details
2023-12-18 13:46:45 +01:00
Fabio Manganiello
52fd64a162
[alarm] Added `dismiss_interval` configuration.
2023-12-18 03:01:27 +01:00
Fabio Manganiello
aff02e0732
[alarm] Include `type='alarm'` in `Alarm.to_dict()`.
...
This is for compatibility with other backend/frontend components who
expect valid entities on events or responses, and hence may break if
`type` is not specified.
2023-12-18 01:13:46 +01:00
Fabio Manganiello
e617a9fe82
[alarm] Added `alarm.delete`.
2023-12-18 00:05:34 +01:00
Fabio Manganiello
430a111303
[alarm] Better default actions inference in `alarm.edit`.
2023-12-17 17:53:08 +01:00
Fabio Manganiello
6edb8c8318
[ #340 ] s/datetime.fromisoformat/dateutil.parser.isoparse/
...
We may receive JavaScript timestamps with non-standard `Z` suffix too.
2023-12-11 22:24:55 +01:00
Fabio Manganiello
b4be56ec2c
[ #340 ] Added `condition_type` field to alarm objects.
2023-12-10 21:52:50 +01:00
Fabio Manganiello
03c167d6b7
[ #340 ] Added `Alarm.is_cron` property.
2023-12-10 20:58:13 +01:00
Fabio Manganiello
2d8f6102c1
[ #340 ] Added `alarm.edit` action.
2023-12-10 20:39:06 +01:00
Fabio Manganiello
8ddd9879f2
[ #340 ] Alarm model enhancements.
...
- Allow initialization of alarm actions from `Procedure` objects too.
- Force `state=WAITING` when an alarm is disabled.
2023-12-10 17:56:47 +01:00
Fabio Manganiello
42574d054a
[ #340 ] Ironed out some bugs in the `alarm` integration.
...
- The alarm ID should be randomly generated - auto-increment IDs are
subject to race conditions when alarms are created in separate
processes.
- Clean up alarms that are not static and have been removed from the db.
- Better alarm shut down detection logic.
2023-12-10 15:30:19 +01:00
Fabio Manganiello
f27e7bb7e2
[ #340 ] Better state management for alarms.
...
- Added `AlarmEnabledEvent` and `AlarmDisabledEvent`.
- Added `snooze_interval` configurable both at plugin level and alarm
level.
2023-12-09 17:12:20 +01:00
Fabio Manganiello
4b578c38c8
[ #340 ] Better state management for alarms.
2023-12-09 14:25:18 +01:00
Fabio Manganiello
9d5c755188
[ #340 ] Alarm integration improvements.
...
- Emit `EntityDeleteEvent` when an alarm is expired and removed so
clients can properly synchronize their state.
- `croniter.get_next()` should be timezone-aware.
2023-12-09 13:33:42 +01:00
Fabio Manganiello
fcb6b621ab
[ #340 ] Added persistence of alarm entities.
2023-12-09 01:25:12 +01:00
Fabio Manganiello
5ad1a62293
[ #340 ] Merged `alarm` backend into the `alarm` plugin.
...
Closes : #340
2023-12-06 19:23:19 +01:00
Fabio Manganiello
2670d40094
Added `get_default_media_plugin` utility.
2023-12-06 01:31:05 +01:00
Fabio Manganiello
680de865c4
Minor docstring fix.
2023-12-04 03:09:02 +01:00
Fabio Manganiello
5823dd0e21
[ #292 ] Converted `backend.log.http` to a runnable plugin.
...
continuous-integration/drone/push Build is passing
Details
Closes : #292
2023-12-04 03:03:21 +01:00
Fabio Manganiello
1843ab224b
[ #289 ] Converted `backend.file.monitor` into a runnable plugin.
...
Closes : #289
2023-12-04 03:03:20 +01:00
Fabio Manganiello
d048752184
[ #301 ] Exposing hosts as entities in the `ping` plugin.
...
continuous-integration/drone/push Build was killed
Details
Closes : #301
2023-12-04 00:36:45 +01:00
Fabio Manganiello
3bb7c02572
[ #301 ] Merged `ping` backend and plugin.
...
Also, removed `ping` response types.
2023-11-24 02:06:53 +01:00
Fabio Manganiello
71ccffa698
[weather.buienradar] Implemented forecast support.
2023-11-23 01:35:58 +01:00
Fabio Manganiello
b969afb1cf
Added support for weather forecast events and entities.
2023-11-23 01:35:58 +01:00
Fabio Manganiello
aca71c6bc7
[wallabag] Improved OAuth flow integration.
...
continuous-integration/drone/push Build is passing
Details
If the user provided `username` and `password` in the plugin
configuration, then we should use those credentials to refresh the OAuth
token when expired.
2023-11-22 11:38:00 +01:00
Fabio Manganiello
a0d8c522a2
[ #308 ] Finalized `weather` integrations migration.
...
continuous-integration/drone/push Build was killed
Details
- Migrated `weather.buienradar` integration.
- Removed last leftovers of the previous weather backends and responses.
Closes : #308
2023-11-20 03:10:00 +01:00
Fabio Manganiello
2dac98c56e
More rst fixes.
2023-11-20 03:09:59 +01:00
Fabio Manganiello
80be79f5e8
Fixed link format.
continuous-integration/drone/push Build is failing
Details
2023-11-20 02:43:18 +01:00
Fabio Manganiello
b8a4b9e4c5
Implemented support for weather entities.
2023-11-20 01:46:01 +01:00
Fabio Manganiello
b800899859
[ #308 ] Refactored `weather.openweathermap` plugin.
2023-11-19 00:10:10 +01:00
Fabio Manganiello
eec2908cc2
Removed DarkSky integration.
...
The API has gone and it's been merged into Apple Weather.
2023-11-18 21:45:47 +01:00
Fabio Manganiello
674c1036c5
Fixed some plugin usages of `self._bus`.
...
continuous-integration/drone/push Build is passing
Details
Now `_bus` is a common property shared by all the plugins, so it
shouldn't be overloaded.
2023-11-18 16:58:55 +01:00
Fabio Manganiello
869ef38364
Removed explicit `numpy` pip dependency in `assistant.google`.
...
continuous-integration/drone/push Build is passing
Details
It will be installed by the other dependencies anyway.
2023-11-18 16:01:24 +01:00
Fabio Manganiello
fdaff32cd0
Fixed docstring for `chromecast.status`.
continuous-integration/drone/push Build is failing
Details
2023-11-18 14:17:17 +01:00
Fabio Manganiello
1a777c6276
Removed Todoist backend and migrated responses to schemas.
...
continuous-integration/drone/push Build is passing
Details
The Todoist Websocket interface is no longer working properly, and I'm
sick of reverse engineering it.
Closes : #305
2023-11-18 10:16:48 +01:00