Fabio Manganiello
cff4563dae
Rewritten Pushbullet backend using pushbullet.py for better stability
2018-12-27 02:29:44 +01:00
Fabio Manganiello
56ff58d06b
Better sound release logic
2018-12-27 01:10:45 +01:00
Fabio Manganiello
c445763979
- Support for sound "release" (removal from active stream)
...
- Added `query_ports` method to MIDI plugin
2018-12-27 00:09:05 +01:00
Fabio Manganiello
f2d2315610
Extended Sound class docstring
2018-12-26 23:16:37 +01:00
Fabio Manganiello
3598d7fcd5
Support for multiple sound waves (triangular, square and sawtooth)
2018-12-26 23:14:52 +01:00
Fabio Manganiello
3b681bbf57
Added played files/notes in stream in query_streams
2018-12-26 16:58:41 +01:00
Fabio Manganiello
3554968468
Support for multiple sounds on the same stream
2018-12-26 16:10:14 +01:00
Fabio Manganiello
c2544524e1
Added missing docstring line
2018-12-25 19:26:59 +01:00
Fabio Manganiello
2fb5e5abc6
Support for mixes of multiple sounds
2018-12-25 19:26:08 +01:00
Fabio Manganiello
d89184358a
Support for playback control for individual sound streams
2018-12-25 17:31:20 +01:00
Fabio Manganiello
3baf0b1589
Initial support for playing multiple sounds to the same stream
2018-12-24 18:58:44 +01:00
Fabio Manganiello
3d2636b09c
Further split between sound and core modules
2018-12-24 17:15:29 +01:00
Fabio Manganiello
65465e3a18
- Refactored the class sound out of the plugin module
...
- More robust stream naming and index assignment logic
2018-12-24 17:12:11 +01:00
Fabio Manganiello
f53d1c06dc
No need to be verbose upon Pushbullet websocket temporary disconnections
2018-12-24 14:33:27 +01:00
Fabio Manganiello
ef241b3769
More robust Pushbullet reconnection logic
2018-12-24 12:31:38 +01:00
Fabio Manganiello
b911d46315
Create a new event loop in the Pushbullet backend
2018-12-24 11:37:18 +01:00
Fabio Manganiello
6a48a53c0d
Typo
2018-12-24 11:30:10 +01:00
Fabio Manganiello
755df6284a
Added missing reference to completed_callback_event
2018-12-23 23:43:12 +01:00
Fabio Manganiello
c2cf0b5f74
Support for polyphonic synthetic sounds in sound plugin
2018-12-23 23:29:52 +01:00
Fabio Manganiello
7a5657778e
Basic support for synth sounds in sound plugin
2018-12-22 01:47:52 +01:00
Fabio Manganiello
00dacc456c
A more robust logic for getting the default sound devices
2018-12-21 16:52:52 +01:00
Fabio Manganiello
e2f7213697
Don't fail hard if it was not possible to get the ical content
2018-12-20 16:47:07 +01:00
Fabio Manganiello
b3ffb29726
Don't extend calendar events will null values
2018-12-20 16:40:14 +01:00
Fabio Manganiello
8d497b0be7
Fixed reference to libtorrent dependency as the pip URL is broken
2018-12-20 01:04:50 +01:00
Fabio Manganiello
a1f640ce0a
Added support for config include files to Docker images too
2018-12-20 01:04:28 +01:00
Fabio Manganiello
725b3dd672
Included reference to the included files in Config
2018-12-19 23:39:41 +01:00
Fabio Manganiello
eec20ee109
Missed cast to str upon pidfile write
2018-12-19 21:24:39 +01:00
Fabio Manganiello
fb75dc323e
Added pidfile option to the main
2018-12-19 21:15:06 +01:00
Fabio Manganiello
44d24b42d1
Force python3 on the Dockerfile CMD
2018-12-18 22:31:24 +01:00
Fabio Manganiello
186ade8f18
Refactored Pushbullet backend to remove the dependency from websocket-client and rely only on websockets
2018-12-18 19:01:51 +01:00
Fabio Manganiello
6a9ddb9e53
Made config relative paths and include files expansion more robust
2018-12-19 09:19:58 +01:00
Fabio Manganiello
949d9cd619
Fixed platydock rm command
2018-12-19 02:22:10 +01:00
Fabio Manganiello
01f020c203
Version bump 0.9.2 -> 0.9.3
2018-12-19 02:08:57 +01:00
Fabio Manganiello
73d7441d26
Added platydock, a helper to manage Platypush instances as Docker containers
2018-12-19 02:08:13 +01:00
Fabio Manganiello
a226aad669
Added python-dateutil requirement
2018-12-19 00:09:21 +01:00
Fabio Manganiello
f9b23afbb6
Fixed typo on main.db
2018-12-18 22:20:33 +01:00
Fabio Manganiello
56b48a81b7
Reverted the new config file path expansion logic as it breaks include directives
2018-12-18 22:16:15 +01:00
Fabio Manganiello
12557702dd
- cfgfile should expand the home directory ~
...
- Don't fail hard if failed to create logs directory
2018-12-18 18:46:07 +01:00
Fabio Manganiello
c8f7eb30aa
Made Redis backend and plugin more robust.
...
- Redis arguments read either from the backend or the plugin
configuration as a fallback in case of partial conf
- send_message now falls back on the default Redis connection
configuration if *args and **kwargs are missing
2018-12-18 15:51:37 +01:00
Fabio Manganiello
8fe4d77e3d
Made requests parsing more robust against messages with target not set (e.g. messages received over HTTP API)
2018-12-18 14:59:10 +01:00
Fabio Manganiello
13463420d9
Made Redis bus/local bus choice more flexible
2018-12-18 12:21:55 +01:00
Fabio Manganiello
7586412ded
Serial plugin extended with a general purpose read() method - to communicate for e.g. Espruino and compatible devices
2018-12-16 23:14:34 +01:00
Fabio Manganiello
28223cab30
Only import sounddevice when needed
2018-12-16 17:29:45 +01:00
Fabio Manganiello
abd88d0a71
recplay default blocksize should be the configured/default output blocksize
2018-12-16 17:23:26 +01:00
Fabio Manganiello
c054d04f2d
Added configurable input and output device blocksize to sound device plugin
2018-12-16 17:11:05 +01:00
Fabio Manganiello
e049d5483e
Added blocksize to sound.record
2018-12-16 16:58:33 +01:00
Fabio Manganiello
be43c3ac21
Changed default sound device to index 0 as 'default' is not present on all the systems
2018-12-16 16:34:40 +01:00
Fabio Manganiello
20a779bd8f
Replaced if not
references with if <var> is not None
2018-12-16 16:24:45 +01:00
Fabio Manganiello
f7576dcb7f
Added support for audio pass-through to sound plugin
2018-12-16 16:15:45 +01:00
Fabio Manganiello
be98dcde6a
Added sound device plugin
2018-12-15 01:18:48 +01:00
BlackLight
e89046f12a
Added max_results to YouTube search
2018-12-12 23:03:17 +01:00
BlackLight
9b0a72269a
typo
2018-12-12 22:52:51 +01:00
BlackLight
b7603ba166
Mapping YouTube API responses to the internal simpler format recognized by OMXPlayer plugin
2018-12-12 22:46:32 +01:00
BlackLight
679cad53b5
Added YouTube plugin that leverages the YouTube API; Replaced OMXPlayer search references to the old HTML parser withe new YouTube plugin
2018-12-12 22:33:41 +01:00
Fabio Manganiello
eb439d227a
Wrapped HTTP requests loop in a try-except block to prevent it from breaking in case of temporary failures
2018-12-05 15:55:19 +00:00
Fabio Manganiello
791c36f5df
More tolerance on json.loads() in case the parsed value from the request context is not a string
2018-12-03 23:04:23 +01:00
Fabio Manganiello
4a148971b4
Allow non-string values to be passed through a request context as well
2018-12-03 22:52:25 +01:00
Fabio Manganiello
9421602e81
Removed duplicate log trace
2018-12-02 23:47:49 +01:00
Fabio Manganiello
7cd1efe2c6
Option to pair a specific device to the Wiimote backend
2018-12-02 23:44:17 +01:00
Fabio Manganiello
f6dcd00848
Version bump 0.9.1 -> 0.9.2
2018-12-01 19:44:41 +01:00
Fabio Manganiello
f677c79f54
Made inactivity timeout on Wiimote configurable
2018-12-01 19:38:43 +01:00
Fabio Manganiello
199e9fdba1
Better management of inactivity timeout on Wiimote
2018-12-01 19:22:10 +01:00
Fabio Manganiello
66b6f0bc8b
Added Wiimote support docs; Added Wiimote connection/disconnection events
2018-12-01 18:55:13 +01:00
Fabio Manganiello
383a075f39
Handling Wiimote timeout on Wiimote backend
2018-12-01 18:43:18 +01:00
Fabio Manganiello
2b03276159
#46 : Added Wiimote support
2018-12-01 17:56:31 +01:00
Fabio Manganiello
abbd8409ca
Run event hook actions in another thread
2018-11-28 01:01:16 +01:00
Fabio Manganiello
6603f64757
Enforced cast to string for any object posted to the Redis bus
2018-11-20 14:24:14 +00:00
Fabio Manganiello
c2be1cf6e8
Enforced cast to string for any object posted to the Redis bus
2018-11-20 14:18:58 +00:00
Fabio Manganiello
68dcdf8ccd
Enforced cast to string for any object posted to the Redis bus
2018-11-20 14:14:59 +00:00
Fabio Manganiello
bb966f123f
Added back and forward methods to Chromecast plugin
2018-11-13 23:23:14 +01:00
Fabio Manganiello
025309cae8
Fixed Chromecast media_controller methods
2018-11-13 23:17:51 +01:00
Fabio Manganiello
632da318b1
Expanded Chromecast plugin
2018-11-13 23:09:19 +01:00
Fabio Manganiello
6fcc3a2397
Support for YouTube media in Chromecast plugin
2018-11-13 20:20:55 +01:00
Fabio Manganiello
26f3842724
Added support for Plex to Chromecast
2018-11-13 01:29:24 +01:00
Fabio Manganiello
42053dcf3b
Expanded Plex plugin
2018-11-12 23:23:21 +01:00
Fabio Manganiello
1459630661
Added Plex and Chromecast plugins
2018-11-12 16:50:20 +01:00
Fabio Manganiello
9a88f85cda
Expanded config example
2018-11-11 12:17:14 +01:00
Fabio Manganiello
2d8078b8bb
Don't propagate the message from MQTT nor wait for a response if the message is null or its handler threw an exception
2018-11-10 01:16:32 +01:00
Fabio Manganiello
cda64865f3
Set the correct mimetype on the /execute endpoint
2018-11-09 23:43:47 +01:00
Fabio Manganiello
fc3f53f32b
Retry logic for getting mpd status
2018-11-07 18:04:37 +01:00
Fabio Manganiello
26ec213098
Make sure that the shitty MQTT backend doesn't break for no reason
2018-11-06 11:40:01 +01:00
Fabio Manganiello
cbfcb76c21
volup/voldown fix for mpd plugin
2018-11-04 01:35:33 +01:00
Fabio Manganiello
56b87f3436
Support for default broker server configuration in MQTT plugin
2018-11-02 15:32:12 +00:00
Fabio Manganiello
788a2652c8
Support for TLS/SSL and user authentication on MQTT
2018-11-02 15:15:48 +00:00
Fabio Manganiello
e2ff62f15d
Refactored file plugin
2018-11-02 13:57:24 +00:00
Fabio Manganiello
c05fc9ee3f
Added logic to propagate events to the websockets backend
2018-11-02 10:14:06 +00:00
Fabio Manganiello
cd3aea5cd6
typo
2018-11-02 00:07:42 +01:00
Fabio Manganiello
f1e1ee92d3
bool compatibility fix
2018-11-02 00:06:39 +01:00
Fabio Manganiello
51440d43fd
Propagate SSL flag to the templates
2018-11-02 00:04:49 +01:00
Fabio Manganiello
e571d8ea41
Typo
2018-11-02 00:03:10 +01:00
Fabio Manganiello
a77a9c04b7
Missed SSL flag
2018-11-02 00:02:11 +01:00
Fabio Manganiello
3eed774d50
Added SSL to websockets js code as well
2018-11-02 00:00:10 +01:00
Fabio Manganiello
727b604bb4
Added SSL to HTTP backend websockets as well
2018-11-01 23:57:50 +01:00
Fabio Manganiello
a253e5f49e
Removed old line of code
2018-11-01 23:48:25 +01:00
Fabio Manganiello
667d5e8a45
HTTPS support on the web server
2018-11-01 23:43:02 +01:00
Fabio Manganiello
38a8cac9c6
Refactored SSL context logic as utils methods
2018-11-01 23:34:14 +01:00
Fabio Manganiello
bf52304758
Fixed ReadTheDocs
2018-11-01 19:42:43 +01:00
Fabio Manganiello
6bc976cf89
Fixed SSL support in websocket implementation
2018-11-01 17:28:54 +00:00
Fabio Manganiello
484d282a26
Updated wiki
2018-10-28 23:48:26 +01:00
Fabio Manganiello
b365e7d126
Keep-alive logic implemented for websocket backend
2018-10-27 01:09:09 +02:00
Fabio Manganiello
92a3759721
Added websocket backend and plugin
2018-10-26 21:55:49 +02:00
Fabio Manganiello
8635ed8268
Added support for MQTT backend to process responses on a topic named platypush_bus_mq/<device>/responses/<msg_id>
2018-10-26 13:33:23 +00:00
Fabio Manganiello
284e0638f8
Always define msg so the function doesn't fail on exception
...
Reverted the previous retry logic for backend - it didn't really work
This reverts commit 4e0e4863a0
.
This reverts commit 964c7b5cf0
.
This reverts commit 6ce348365f
.
2018-10-25 20:46:34 +02:00
Fabio Manganiello
4e0e4863a0
Don't modify Redis args directly when initializing the object in another plugin
2018-10-25 20:14:50 +02:00
Fabio Manganiello
964c7b5cf0
Making sure that Redis constructor only initializes the attributes without creating the object and performing a connection
2018-10-25 20:06:29 +02:00
Fabio Manganiello
6ce348365f
Refactored backends to be more robust by wrapping the core logic into a try-except logic with sleep and retry
2018-10-25 19:46:13 +02:00
Fabio Manganiello
0a7722d858
Wrap self.on_message in a try/except block
2018-10-23 14:20:29 +00:00
Fabio Manganiello
4c2302a534
Removed title from logging trace in RSS backend
2018-10-23 00:23:47 +02:00
Fabio Manganiello
276ee8fee9
Round download progress to two decimals
2018-10-22 19:14:41 +02:00
Fabio Manganiello
76b40c0c37
Managing torrent stop and remove as well
2018-10-22 19:12:06 +02:00
Fabio Manganiello
ab51c1d1bc
Extended torrents plugin
2018-10-22 18:51:00 +02:00
Fabio Manganiello
7375fb74fc
OMXPlayer to delegate torrent search and download to the torrent plugin
2018-10-22 18:26:11 +02:00
Fabio Manganiello
ce6baa453c
Keeping track of multiple downloads in torrent plugin
2018-10-22 15:24:09 +00:00
Fabio Manganiello
9974583038
Added torrent plugin
2018-10-22 14:52:32 +00:00
Fabio Manganiello
4d592fff17
Support for multiple devices in AutoRemote plugin
2018-10-22 09:36:30 +00:00
Fabio Manganiello
fec684210c
Wrapped MPD plugin reload logic to prevent the backend from crashing if the second initialization fails as well
2018-10-21 14:50:58 +02:00
Fabio Manganiello
ae7cd120d2
Wrapped the RSS parsing loop in a try-except block to prevent the backend from continuously crashing if there are encoding issues on the RSS titles
2018-10-21 14:47:52 +02:00
Fabio Manganiello
7adfb67c12
Fixed Kodi plugin
2018-10-20 19:27:15 +02:00
Fabio Manganiello
db4330eeed
Support for (output, errors) as a tuple returned from plugin actions
2018-10-20 18:07:00 +02:00
Fabio Manganiello
2dac094aea
player_id should be optional in media.kodi.stop
2018-10-20 18:00:53 +02:00
Fabio Manganiello
fc7fa37010
ignore_errors parameter supported in shell plugin
2018-10-20 17:56:36 +02:00
Fabio Manganiello
4fce1dd2e1
More features on the Kodi plugin
2018-10-20 17:17:29 +02:00
Fabio Manganiello
5b5fdd0933
Kodi player plugin improved
2018-10-20 16:59:47 +02:00
Fabio Manganiello
e16b444b0b
player_id selection implemented in Kodi
2018-10-20 16:40:12 +02:00
Fabio Manganiello
7490529ca2
Reverted bugged title decode
2018-10-20 14:49:21 +02:00
Fabio Manganiello
2fd7ba003b
Decoding title from RSS feeds
2018-10-19 23:48:04 +02:00
Fabio Manganiello
4f3c7f715f
Expanded Kodi actions
2018-10-18 16:24:22 +02:00
Fabio Manganiello
b6a4432528
Added Kodi plugin
2018-10-18 16:14:39 +02:00
Fabio Manganiello
3458fb8a23
Added append action to file plugin
2018-10-17 09:02:22 +02:00
Fabio Manganiello
2eccd41420
Message skip message logged in debug mode to prevent log pollution
2018-10-16 10:26:15 +02:00
Fabio Manganiello
4d3d8ddd34
File utils moved to new file plugin
2018-10-16 09:01:22 +02:00
Fabio Manganiello
b14bb44c10
Added utils actions to handle files
2018-10-16 08:49:55 +02:00
Fabio Manganiello
475f6d3f6f
Version bump 0.9 -> 0.9.1
2018-10-15 22:12:30 +02:00
Fabio Manganiello
af00ac6c68
Fixed attribute name
2018-10-14 17:36:06 +02:00
Fabio Manganiello
a4e2db184d
Added tts.google web plugin
2018-10-14 17:17:19 +02:00
Fabio Manganiello
b6fcdf75f4
Make sure that we set the credential files environment variable
2018-10-14 10:45:25 +02:00
Fabio Manganiello
c640093139
Added Google-based TTS plugin
2018-10-14 10:29:02 +02:00
Fabio Manganiello
db89c39ed8
Made AutoRemote notification text optional
2018-10-12 00:41:23 +02:00
Fabio Manganiello
eab2ba2075
Added send_notification to AutoRemote
2018-10-11 23:35:29 +02:00
Fabio Manganiello
2d7040225c
Added AutoRemote plugin
2018-10-11 14:52:28 +00:00
Fabio Manganiello
74d23262b7
Implemented TCP backend
2018-10-11 14:02:29 +00:00
Fabio Manganiello
15b65c4896
Added utils plugin
2018-10-10 01:00:30 +02:00
Fabio Manganiello
68aaf9cd61
Message timestamp refactored
2018-10-08 13:30:00 +00:00
Fabio Manganiello
948f3dc37d
Implemented timestamp mark on messages to trigger message expiration logic in case something stays on the bus for longer than a minute
2018-10-08 10:35:59 +00:00
Fabio Manganiello
c10e882dd0
Make decode safe against null values
2018-10-06 23:37:26 +02:00
Fabio Manganiello
8497cd3863
More consistent naming
2018-10-06 23:30:11 +02:00
Fabio Manganiello
0b053bb46d
Expanding procedure arguments from context
2018-10-05 09:38:38 +02:00
Fabio Manganiello
1404d59865
Fixed response encoding
2018-10-04 10:22:23 +02:00
Fabio Manganiello
fbce006772
Fixed send_note pushbullet method
2018-10-01 15:06:26 +02:00
Fabio Manganiello
d419419487
Fix for if statements
2018-09-27 02:20:25 +02:00
Fabio Manganiello
570ef6f109
Replaced EventAction with Procedure to allow more flexibility in event hooks and cronjobs
2018-09-27 01:52:35 +02:00
Fabio Manganiello
38fdb8be08
Implemented support for else statements in if(s)
2018-09-27 01:09:00 +02:00
Fabio Manganiello
7ec6221a7f
Implemented nested if(s), solves #53
2018-09-26 22:31:27 +02:00
Fabio Manganiello
b88f7fcecc
Added play_if_paused_or_stopped method to mpd plugin
2018-09-25 19:40:00 +02:00
Fabio Manganiello
13c1895295
Support for runtime arguments on procedures
2018-09-25 19:20:34 +02:00
Fabio Manganiello
38f61298f8
Support for bulk mpd add
2018-09-25 09:42:46 +02:00
Fabio Manganiello
f79de2e708
Reverted bus post logic for HTTP backend
2018-09-25 00:31:51 +02:00
Fabio Manganiello
88d2fbd366
Response can't be null
2018-09-25 00:26:06 +02:00
Fabio Manganiello
d78e66df7c
Don't return status() over video stop, as the process should already be dead and playback status call will fail
2018-09-25 00:19:53 +02:00
Fabio Manganiello
65ec2458d8
MQTT backend should call on_message instead of posting directly to the bus
2018-09-24 23:21:02 +02:00
Fabio Manganiello
d215410a6a
More consistent flow for messages received by a backend
2018-09-24 23:13:44 +02:00
Fabio Manganiello
59d84c4fcb
- Calling on_message
on Redis backend to trigger the right logic
...
instead of `self.bus.post` directly
- For consistency `mset` now returns back the map of the set variables
- Redis backend enabled on tests
2018-09-24 22:07:13 +02:00
Fabio Manganiello
a4f075a4c1
Added support for ApplicationStartedEvent and ApplicationStoppedEvent
2018-09-24 09:18:46 +00:00
Fabio Manganiello
badb739a8c
Increased response queue read timeout to 60 seconds
2018-09-20 13:13:36 +00:00
Fabio Manganiello
44962dd919
Removed timeout from get_plugin lock; Added Redis server to tests configuration
2018-09-20 10:59:18 +00:00
Fabio Manganiello
6449504e26
Switched the bus to a Redis bus
2018-09-20 10:49:57 +00:00
Fabio Manganiello
661563d1f1
Added Redis bus
2018-09-20 09:41:27 +02:00
Fabio Manganiello
6bbae19d39
Lock timeout and reset in case a plugin takes too long to initialize or the lock is incorrectly marked as locked in multiprocess context
2018-09-18 20:25:31 +02:00
Fabio Manganiello
db5d3e6e3f
Prevent the plugin from being initialized again within the lock scope if another thread had it initialized in the meantime
2018-09-18 19:19:41 +02:00
Fabio Manganiello
98d24b061a
Added joystick backend
2018-09-18 18:58:23 +02:00
Fabio Manganiello
1d50e91b27
Removed unneeded lock acquire
2018-09-16 23:45:25 +02:00
Fabio Manganiello
2ee54b5220
Replaced fadeIn with show to make transitions less CPU heavy on RPi
2018-09-15 18:25:58 +02:00
Fabio Manganiello
5762c51019
Added support for Redis-stored variables in variables plugin
2018-09-06 09:31:31 +02:00
Fabio Manganiello
cccb48c533
Implemented mget and mset actions for Redis plugin
2018-09-06 03:38:10 +02:00
Fabio Manganiello
63890f7670
Return of get_measurement should always be a dict
2018-09-06 03:14:11 +02:00
Fabio Manganiello
5b5e861f94
Implemented distance sensors backend
2018-09-06 03:02:16 +02:00
Fabio Manganiello
5d1fd3a02f
Precision parameter added to accelerometer plugin
2018-09-06 02:47:47 +02:00
Fabio Manganiello
98a8874084
Added accelerometer sensor backend
2018-09-06 02:31:01 +02:00
Fabio Manganiello
692d33a071
Added empty __init__.py to lib module
2018-09-06 02:23:54 +02:00
Fabio Manganiello
96157a31bf
Return the accelerometer position in degrees between -90 and 90
2018-09-06 02:18:08 +02:00
Fabio Manganiello
b3f20ca0de
Added accelerometer sensors plugin
2018-09-06 02:11:41 +02:00
Fabio Manganiello
53ba5f6628
Wrap camera stop and connection close in two distinct try-catch blocks
2018-09-05 15:29:14 +00:00
Fabio Manganiello
5cfbd75250
Prevent RuntimeError on lock release if lock acquisition failed
2018-09-05 02:26:55 +02:00
Fabio Manganiello
3b8c580611
Revert "serial.write should have a blocking wait if the serial port is busy"
...
This reverts commit 0537d1fcac
.
2018-09-05 02:04:10 +02:00
Fabio Manganiello
0537d1fcac
serial.write should have a blocking wait if the serial port is busy
2018-09-05 01:59:55 +02:00
Fabio Manganiello
938526d521
Added write action to the serial plugin
2018-09-04 22:54:14 +02:00
Fabio Manganiello
6e867e9fb2
Support for multiple thresholds for the same sensor
2018-08-25 12:29:20 +02:00
Fabio Manganiello
2df9c5a890
Fixed gpio css
2018-08-22 21:01:37 +02:00
Fabio Manganiello
a9b4c1b8bf
Fixed gpio ui
2018-08-22 20:22:34 +02:00
Fabio Manganiello
2c369cb86d
Added web interface for gpio plugin
2018-08-22 19:50:30 +02:00
Fabio Manganiello
335d3e3cd7
Typo
2018-08-22 19:20:24 +02:00
Fabio Manganiello
ba1eca29fc
Reversed pin configuration/mapping as name->number instead of number->name
2018-08-22 19:12:26 +02:00
Fabio Manganiello
133dd4570e
Added PIN mappings to gpio plugin, support for read/write by PIN name and read_all method
2018-08-22 19:09:17 +02:00
Fabio Manganiello
a6339de159
Assigning plugins[plugin_name] inside of the synchronized block
2018-08-22 02:32:53 +02:00
Fabio Manganiello
4c6b38a6e2
Double lock check to make get_plugin thread-safe
2018-08-22 02:11:51 +02:00
Fabio Manganiello
105d5bb2fc
Lock to prevent race conditions where multiple initializations of a plugin can occur
2018-08-22 02:04:16 +02:00
Fabio Manganiello
e5d67c9393
Being more robust against multiple concurrent plugin initializations with a lock
2018-08-21 09:11:01 +02:00
Fabio Manganiello
09d7d98ae3
Retry logic for Mercury API
2018-08-19 21:52:01 +00:00
Fabio Manganiello
d2bd49b364
Sync changes on playback volume or state with events and web UI
2018-08-18 01:11:14 +02:00
Fabio Manganiello
fc1e15504d
Implemented Hue lights toggle command
2018-08-16 19:24:20 +02:00