Fabio Manganiello
8ea0519954
Support for set/clear timeout/interval utils actions and error handling refactor
...
- Added set/cler timeout/interval actions in the utils plugin to
dynamically set or stop timed actions from your custom logic
- Actions error handling refactoring. If a Response is processed with
some errors, then just log the error and return it to the caller,
without raising an exception. If instead the action execution raised an
uncaught exception, then handle the retries properly and return errors
as a list with the output from all the retries, without being too
verbose with the returning and logging the whole stack trace multiple
times.
2019-01-13 19:29:08 +01:00
Fabio Manganiello
2a52eb770b
Renamed value variable in expand_value_from_context to _value to prevent common name clashes with attributes named 'value' in the context
2019-01-12 22:43:01 +01:00
Fabio Manganiello
3587fa7cb4
Force music.mpd plugin reload when the mpd backend fails to get the state
2019-01-12 02:15:24 +01:00
Fabio Manganiello
bb8a21ed13
Revert "Sort Adafruit IO received data by timestamp"
...
This reverts commit 2739dda266
.
2019-01-12 02:08:04 +01:00
Fabio Manganiello
2739dda266
Sort Adafruit IO received data by timestamp
2019-01-12 02:06:38 +01:00
Fabio Manganiello
78d44364cf
Casting data to number whenever possible on FeedUpdateEvent as well
2019-01-12 01:58:35 +01:00
Fabio Manganiello
d63ad91b2a
Implemented receive_next and receive_previous wrappers in Adafruit IO and rationalized returned types
2019-01-12 01:52:39 +01:00
Fabio Manganiello
ca855fce5d
Improved Adafruit IO data handling
2019-01-12 01:38:17 +01:00
Fabio Manganiello
3b6c4a836f
Added missing docs
2019-01-12 01:12:17 +01:00
Fabio Manganiello
1087dae197
Added Adafruit IO backend
2019-01-12 01:07:38 +01:00
Fabio Manganiello
212cfb63c4
Lazy initialization of WeMo environment
2019-01-11 19:58:43 +01:00
Fabio Manganiello
33fd226fa1
Don't throw the exception if a certain Snapcast host is not reachable
2019-01-11 11:50:37 +01:00
Fabio Manganiello
29be2945cc
Log trace before attempting a Snapcast connection
2019-01-11 11:46:13 +01:00
Fabio Manganiello
b6ac4cbf6d
python-prctl is the right name for the dependency
2019-01-10 23:49:34 +01:00
Fabio Manganiello
fbf3600e91
Setting thread and process names properly through prctl
2019-01-10 23:45:13 +01:00
Fabio Manganiello
56c7258c74
Setting names for threads
2019-01-10 23:08:29 +01:00
Fabio Manganiello
0bbfaf4498
If the mpd frontend receives an empty PlaylistChangeEvent, trigger an initPlaylist to update the playlist
2019-01-10 22:27:44 +01:00
Fabio Manganiello
a190184b0c
Using an auxiliary map to keep track of the playing hosts to prevent errors when the items are removed by the worker threads while iterating them
2019-01-10 18:14:41 +01:00
Fabio Manganiello
2c8099e7ae
Apply stream name filtering logic also to HTTP streams
2019-01-10 18:01:24 +01:00
Fabio Manganiello
f156e9c199
Refactored plugin so that errors are properly returned up the stack, client connections are lazy and re-initialized upon error
2019-01-10 17:51:33 +01:00
Fabio Manganiello
8759dafa0e
Let plugin fail if unable to retrieve the status, so it can rely on the automatic reload mechanism instead of swallowing the error
2019-01-10 17:28:49 +01:00
Fabio Manganiello
abe80db47e
Changed default for exclude_local from True to False
2019-01-10 17:25:25 +01:00
Fabio Manganiello
c619d89fa4
Added method to programmatically get the list of active Snapcast connections
2019-01-10 17:22:52 +01:00
Fabio Manganiello
a349b45ba4
Removed get_plugin utils method from web server, it messes up with also with the reentrant locks as it runs in another process. Refactored Snapcast frontend to get the backend hosts asynchronously through a plugin method
2019-01-10 11:52:39 +01:00
Fabio Manganiello
c1b05226a9
Made the mpd backend a bit more resiliant
2019-01-10 01:28:12 +01:00
Fabio Manganiello
6150e07fc9
Prevent toggle button id clash because of Snapcast using the MAC address of a device as a client (and therefore the same client connected to multiple servers may lead to inconsistent behaviour)
2019-01-10 00:29:22 +01:00
Fabio Manganiello
89ea4798bf
Restored retry logic in mpd backend
2019-01-09 22:20:01 +01:00
Fabio Manganiello
156e2e8b5a
Don't go crazy with plugin reload logic in the mpd backend in case of corrupted received messages
2019-01-09 22:05:53 +01:00
Fabio Manganiello
544979e7ff
- Added position
argument to music.mpd.add
...
- Added RSS feed parser plugin
2019-01-09 18:43:13 +01:00
Fabio Manganiello
02f4b1910f
Added missing docs
2019-01-09 16:07:20 +01:00
Fabio Manganiello
464f84805f
Added empty __init__.py to lib module
2019-01-09 15:13:10 +01:00
Fabio Manganiello
43ff0d4e25
Added hooks on light.hue web panel tab to synchronize light statuses with LightStatusChangeEvent events
2019-01-09 15:08:16 +01:00
Fabio Manganiello
d50d92e99e
Added Philips Hue lights backend to monitor status changes to the lights
2019-01-09 09:21:48 +01:00
Fabio Manganiello
7c02c70663
Version bump 0.9.3 -> 0.9.4
2019-01-08 19:24:17 +01:00
Fabio Manganiello
9ba7a68578
Fixed modal height and positioning on screen
2019-01-08 19:23:06 +01:00
Fabio Manganiello
3c385a601f
Exposing backend hosts and ports as both lists and JSON on Snapcast plugin
2019-01-08 18:24:59 +01:00
Fabio Manganiello
80bd5b684c
Added support for setting/changing group streams on Snapcast
2019-01-08 17:43:20 +01:00
Fabio Manganiello
35292968ed
Made get_plugin lock reentrant
2019-01-08 16:33:57 +01:00
Fabio Manganiello
19eab381ae
Weird Jinja bug broke the web panel load when using JSON parse, had to refactor it a bit to fix it
2019-01-08 13:53:21 +01:00
Fabio Manganiello
d91e494940
Added group and host modals and settings to Snapcast UI
2019-01-08 12:54:33 +01:00
Fabio Manganiello
382866b1a4
Added content to Snapcast group modal
2019-01-08 10:13:13 +01:00
Fabio Manganiello
fd8c3bb846
Connected the wires between Snapcast backend and frontend
2019-01-08 01:47:16 +01:00
Fabio Manganiello
a346442246
Draft for Snapcast UI style
2019-01-07 16:50:51 +01:00
Fabio Manganiello
004868f526
Added skeleton UI for Snapcast plugin on web panel
2019-01-07 15:34:31 +01:00
Fabio Manganiello
7aefe4e520
More resilient logic in case actions in a procedure return null responses
2019-01-07 00:07:45 +01:00
Fabio Manganiello
bbc3a9e82a
Fixed Snapcast status method
2019-01-06 23:46:52 +01:00
Fabio Manganiello
461362f792
mset signature now compatible both with redis-py < 3.0 and >= 3.0
2019-01-06 23:46:18 +01:00
Fabio Manganiello
e1b8fc1fe3
Added docs for Snapcast backend
2019-01-06 19:20:13 +01:00
Fabio Manganiello
efad5a2bd7
Added Snapcast backend
2019-01-06 19:19:30 +01:00
Fabio Manganiello
2fba3109b3
Wrapped sample response in codeblock
2019-01-06 12:56:30 +01:00