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
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
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
fc1e15504d
Implemented Hue lights toggle command
2018-08-16 19:24:20 +02:00
Fabio Manganiello
f2d077354c
Typo fix
2018-08-16 01:26:10 +02:00
Fabio Manganiello
0e2ead6826
Default to configured lights if no lights/groups args are passed to Hue delta actions
2018-08-16 01:23:22 +02:00
Fabio Manganiello
a41e804ff9
Implemented delta_bri, delta_sat and delta_hue methods to change light
...
properties by deltas (from -100% to +100%)
2018-08-16 01:13:43 +02:00
Fabio Manganiello
bbdf11b9ce
Added shuffle method to music.mpd
2018-08-06 22:44:02 +02:00
Fabio Manganiello
6ebab5de25
Animation thread wrapped in a try-except to prevent the thread from exiting in case of temporary errors
2018-07-28 14:05:19 +02:00
Fabio Manganiello
61e211ee07
Added Kafka plugin
2018-07-28 01:55:19 +02:00
Fabio Manganiello
d0fea0c9c6
All the arguments to send_location_data are actually required
2018-07-25 12:34:16 +00:00
Fabio Manganiello
e4fce17b7b
Added elevation parameter to the Adafruit send_location_data method
2018-07-25 12:31:50 +00:00
Fabio Manganiello
8846af6a94
Added send_location_data method to Adafruit IO plugin
2018-07-25 12:08:49 +00:00
Fabio Manganiello
0dafa16958
Added get_elevation_from_latlng method to Google Maps plugin
2018-07-25 12:01:27 +00:00
Fabio Manganiello
423fc492cf
Guard the start of the data throttler thread with a lock to prevent multiple launches
2018-07-25 03:04:00 +02:00
Fabio Manganiello
cd52128e44
Reverted batch instead of mean value
2018-07-25 02:30:58 +02:00
Fabio Manganiello
5d8cc403dc
Handling Adafruit throttling exceptions with a sleep before retrying
2018-07-25 02:26:11 +02:00
Fabio Manganiello
b777bbcfa8
Reset the timer as soon as you start processing the batch
2018-07-25 02:21:38 +02:00
Fabio Manganiello
6dc86635a4
Send the whole batch of values in the throttler thread instead of getting the mean
2018-07-25 02:18:20 +02:00
Fabio Manganiello
db98e6e05a
Added throttle support to Adafruit IO plugin
2018-07-25 01:53:56 +02:00
Fabio Manganiello
3ab77e32f4
Doc fixes
2018-07-24 15:01:01 +00:00
Fabio Manganiello
79834a43a5
Added __init__.py for Adafruit folder
2018-07-24 09:17:09 +02:00
Fabio Manganiello
826e0c7204
Added Adafruit IO plugin
2018-07-24 09:06:05 +02:00
Fabio Manganiello
d95b07f09b
Added plugin to manage system clipboard
2018-07-24 00:35:28 +02:00
Fabio Manganiello
32838efa36
Added IFTTT plugin
2018-07-23 02:49:53 +02:00
Fabio Manganiello
3775327aea
Updated variable plugin documentation
2018-07-20 19:19:59 +02:00
Fabio Manganiello
26a57c9d6f
Preventing inconsistent reads from the serial port by making sure that only one reader can read at the time
2018-07-20 15:54:31 +02:00
Fabio Manganiello
bc895dd984
If the http.request plugin gets a proper JSON message as a response, then extract the Platypush message out of the original response
2018-07-19 20:07:15 +02:00
Fabio Manganiello
72543c26a9
Added logger plugin
2018-07-19 00:03:19 +02:00
Fabio Manganiello
6508ef29a1
Don't overwrite the output variable
2018-07-18 20:23:15 +02:00
Fabio Manganiello
c4d3e6b467
Graceful sleep between failed serial read attempts
2018-07-17 23:51:30 +02:00
Fabio Manganiello
5bc7319933
Optimized serial plugin
2018-07-17 23:47:13 +02:00
Fabio Manganiello
95d86829aa
Plugin action decorators can now be inherited from parent classes
2018-07-17 01:23:12 +02:00
Fabio Manganiello
35c5e2d8f7
Serial plugin now extends the general sensor plugin class
2018-07-17 00:59:02 +02:00
Fabio Manganiello
86754534ae
Fixed omxplayer plugin doc
2018-07-16 23:17:00 +02:00
Fabio Manganiello
72d490456f
Fixed docstring
2018-07-16 22:58:56 +02:00
Fabio Manganiello
2888cb3a4b
Propagate the docstring of the wrapped function when using an @action annotation
2018-07-16 22:56:07 +02:00
Fabio Manganiello
cba40744fb
No need to commit without opening a transaction first
2018-07-15 20:33:09 +02:00
Fabio Manganiello
2fda066e39
- Support for Platypush main configuration db, where plugins and backends can store their data
...
- Support for permanent cross-process storage of session variables through SQLite db
- Support for db.select with table+filter instead of raw SQL query
2018-07-15 20:12:23 +02:00
Fabio Manganiello
7114d8bcaa
Implemented update and delete method for the db plugin and ON DUPLICATE UPDATE logic for insert
2018-07-15 19:31:11 +02:00
Fabio Manganiello
b3e3621c5a
Removed unneeded imports
2018-07-15 17:28:17 +02:00
Fabio Manganiello
a2898f63c3
- Unwrap the response in the decorator if we got a Response object from the decorated plugin
...
- No need for @action wrappers around omxplayer event handlers
2018-07-15 02:03:24 +02:00
Fabio Manganiello
88d9f9d3ac
Stability fixes
2018-07-06 03:38:14 +02:00
Fabio Manganiello
85cdd8e5af
Removed old Response reference
2018-07-06 03:35:47 +02:00
Fabio Manganiello
6cf0f39a03
Added call to parent constructor in db plugin
2018-07-06 03:03:09 +02:00
Fabio Manganiello
cfda6e019c
Don't wrap events in a Response object twice
2018-07-06 02:55:36 +02:00
Fabio Manganiello
b8665b7fbb
Added another @action decorator
2018-07-06 02:41:43 +02:00
Fabio Manganiello
c0b1b70e4e
Added call to parent constructor in the remaining plugins
2018-07-06 02:37:47 +02:00
Fabio Manganiello
eb229a6fbe
Added call to parent constructor in media.ctrl
2018-07-06 02:37:47 +02:00
Fabio Manganiello
d0e7b96ed4
Fixed missed self on some of the new constructors
2018-07-06 02:34:12 +02:00
Fabio Manganiello
a4c7b06e4c
Forgot an @action annotation
2018-07-06 02:27:44 +02:00
Fabio Manganiello
b5fb6ecf93
Added call to parent constructor in lastfm plugin
2018-07-06 02:21:38 +02:00
Fabio Manganiello
66d78c8615
[ #61 ] Plugins actions refactoring
...
- Using `@action` annotation to indicate methods that are allowed to be
executed as actions
- The output and errors of an action are automatically wrapped into a
`Response` object without any response build required on the plugin side
2018-07-06 02:08:38 +02:00
Fabio Manganiello
81a81312e3
Basic support for token authentication on request level
2018-07-05 09:15:53 +02:00
Fabio Manganiello
3872276234
Better way to handle plugins->backends communication through Redis
2018-06-29 10:21:19 +02:00
Fabio Manganiello
f3bdeaf418
Fixed Spotify URIs conversion
2018-06-27 08:56:25 +02:00
Fabio Manganiello
b55c070e46
Fixed missed dependencies for RTD build
2018-06-26 23:19:35 +02:00
Fabio Manganiello
4163a414bf
Caching switch.tplink devices and supporting lookup by alias
2018-06-26 22:59:33 +02:00
Fabio Manganiello
65f9610cce
Added switch.tplink web widget
2018-06-26 22:14:11 +02:00
Fabio Manganiello
0f3895ad41
Added plugin to control a TP-Link HS100 and similar smart plugs/switches
2018-06-26 19:10:53 +02:00
Fabio Manganiello
7398107570
Completed documentation for backends
2018-06-26 00:36:01 +02:00
Fabio Manganiello
b876f17f81
Completed documentation for plugins
2018-06-25 19:57:43 +02:00
Fabio Manganiello
ad1c87b2be
Adding more plugins documentation
2018-06-25 00:49:45 +02:00
Fabio Manganiello
54dcb2cba3
Documentation v0.1
2018-06-23 01:00:43 +02:00
Fabio Manganiello
e70eb8bb42
typos
2018-06-19 20:32:19 +02:00
Fabio Manganiello
98c88ff8e5
Made serial.plugin more robust. It can now read a JSON even if it's not all on one line and if it comes with some bogus bytes at the beginning or the end
2018-06-19 20:05:24 +02:00
Fabio Manganiello
5f50b5c4f4
Support for color animations via web interface too
2018-06-19 00:37:33 +02:00
Fabio Manganiello
dde0b579b2
typo
2018-06-16 04:54:27 +02:00
Fabio Manganiello
9fd86977c7
Don't pass stuff to set_light and set_group that we don't have to
2018-06-16 04:48:09 +02:00
Fabio Manganiello
31a2aa67e2
Always stop any running animation before resetting the lights to a static configuration
2018-06-16 04:20:13 +02:00
Fabio Manganiello
803aa68f11
Support for animation (so far color transition and blink) on Philips Hue plugin
2018-06-16 04:10:59 +02:00
Fabio Manganiello
2d6994c057
send_message over Redis for OMXPlayer plugin
2018-06-14 21:13:01 +02:00
Fabio Manganiello
bd18d1cbc1
Using Redis backend as a fallback for send_message if a backend does not implement its own send_message
2018-06-14 20:42:57 +02:00
Fabio Manganiello
d9b51c94c0
Added Pushbullet plugin to send pushes and files
2018-06-14 15:35:19 +00:00
Fabio Manganiello
81d29928b0
Pi Camera backend version 1.0, now properly controllable
2018-06-14 12:37:14 +02:00
Fabio Manganiello
2b73f71803
Improved logging traces names for backends and plugins
2018-06-14 02:19:55 +02:00
Fabio Manganiello
29a5cfa9c2
Refactored camera.pi backend. Support for start/stop recording control via plugin action. Introduced support for taking pictures too
2018-06-14 00:34:30 +02:00
Fabio Manganiello
f9c0d83f79
Made variable.set less verbose and more flexible. Replace the syntax like {"action":"variable.set", "args": {"name":"foo", "value":"bar"}} with a more compact {"action":"variable.set", "args":{"foo":"bar"}}
2018-06-13 23:20:21 +02:00
Fabio Manganiello
9113ac0530
variable.set now returns output in the form name:value so the newly set variable is already available in the context of the task
2018-06-13 22:19:17 +02:00
Fabio Manganiello
7fd375da66
Added plugin for handling general-purpose session variables across tasks.
...
Supported methods: variable.get, variable.set, variable.unset
2018-06-13 22:09:28 +02:00
Fabio Manganiello
ab02d7e79c
Calendar events can also be all day - in such a case parse the 'date' field instead of 'dateTime'
2018-06-13 00:54:59 +02:00
Fabio Manganiello
464ff1ff57
A more robust way to handle JSON serialization/deserialization on MQTT backend
2018-06-12 10:33:30 +02:00
Fabio Manganiello
bdf862e6d2
get_data alias for get_measuremnt
2018-06-12 00:46:51 +02:00
Fabio Manganiello
f8506d6d25
Added comment to explain the reasons for sudo in the switchbot plugin
2018-06-11 22:41:23 +02:00
Fabio Manganiello
1bc4c47df7
Imported ZeroBorg library with scope constructor as global import fails for some reason
2018-06-08 17:10:49 +02:00
Fabio Manganiello
bb21595678
Called parent constructor in ZeroBorg plugin to make sure that the logger instance is initialized
2018-06-07 09:31:12 +02:00
Fabio Manganiello
4da74b1096
Refactored logging submodule
2018-06-06 20:09:23 +02:00
Fabio Manganiello
4c1cb9ae6b
Added mkv to the supported media extensions
2018-06-02 21:56:46 +02:00
Fabio Manganiello
bc3e100217
New general-purpose plugin for managing multiple calendar + support for ICal format
2018-05-30 15:59:10 +02:00
Fabio Manganiello
3fe70dd184
Implemented MQTT backend and plugin, see issue #56
2018-05-27 12:21:41 +02:00
Fabio Manganiello
96e3acb20f
Added MPD play_if_paused and pause_if_playing methods
2018-05-25 18:04:37 +02:00
Fabio Manganiello
27b97e584f
Added support for MIDI real-time events
2018-05-23 19:49:54 +02:00
Fabio Manganiello
a8015addbf
Only take the first component of formatted_address
2018-05-23 08:06:52 +00:00
Fabio Manganiello
3ce6cf8b41
Just use formatted_address from the Google geocode response instead of considering all the cases of address formatting
2018-05-22 21:43:21 +00:00
Fabio Manganiello
2c7880874d
Logging geocode response
2018-05-22 21:34:06 +00:00