Commit graph

674 commits

Author SHA1 Message Date
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
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 822e0a1e25 Better fix for broken async variables and attributes after Python 3.7 migration 2018-08-07 22:00:11 +00:00
Fabio Manganiello ee5e4dff92 Revert "In Python 3.7 async is a strict language keyword that can't be used for variables names - replaces occurrences with _async"
This reverts commit f0577733b6.
2018-08-07 21:52:07 +00:00
Fabio Manganiello b023618950 Revert "In Python 3.7 async is a strict language keyword that can't be used for variables names - replaces occurrences with _async"
This reverts commit e625861edf.
2018-08-07 21:52:02 +00:00
Fabio Manganiello f0577733b6 In Python 3.7 async is a strict language keyword that can't be used for variables names - replaces occurrences with _async 2018-08-07 21:28:06 +00:00
Fabio Manganiello e625861edf In Python 3.7 async is a strict language keyword that can't be used for variables names - replaces occurrences with _async 2018-08-07 21:26:57 +00:00
Fabio Manganiello bbdf11b9ce Added shuffle method to music.mpd 2018-08-06 22:44:02 +02:00
Fabio Manganiello ec38ecbaf3 More pylint fixes 2018-07-30 23:18:01 +02:00
Fabio Manganiello 81803a364d Fixed some pylint warnings 2018-07-30 22:08:06 +02:00
Fabio Manganiello a0ac30e9b6 Version bump 0.8 -> 0.9 2018-07-29 14:35:52 +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 1ec0bd40d9 Updated docstrings 2018-07-23 02:11:16 +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 0b4cfec8e7 More robust HTTP backend in case Redis wasn't configured 2018-07-20 11:13:49 +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 b9c77b15f8 Fixed docstring 2018-07-16 22:12:02 +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 42fa8360f3 Only propagate the values above/below threshold in case of a sensor threshold crossing, excluding the sensors that haven't crossed the threshold 2018-07-15 17:28:17 +02:00
Fabio Manganiello b3e3621c5a Removed unneeded imports 2018-07-15 17:28:17 +02:00
Fabio Manganiello 67ebe10c60 typo 2018-07-15 02:57:12 +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 b94ec36d0f Added documentation to events 2018-07-09 22:38:08 +02:00
Fabio Manganiello 0288f7ee1b Propagate the token in procedures and event hooks to make sure that the inner requests can be executed 2018-07-09 14:51:20 +00:00
Fabio Manganiello c81534875a Get Redis object on each interaction in case the backend wasn't ready before 2018-07-08 22:12:30 +02:00
Fabio Manganiello e1ead3c25f s/_token/token/ 2018-07-08 22:00:28 +02:00
Fabio Manganiello 2647bd3881 Implemented token verification over HTTP calls.
The token can be provided either:

* GET parameter (``?token=abc``)
* JSON payload request (``{..your_request.., "_token":"abc"})
* HTTP header (``X-Token: abc``)
* Basic HTTP auth (any username works, password: token)
2018-07-08 21:36:58 +02:00
Fabio Manganiello 4ebdda80f9 More robust support for Redis configuration in web socket server 2018-07-08 12:24:33 +02:00
Fabio Manganiello b443df7947 Parametrized the HTTP backend Redis object by using the same configuration used on the Redis backend 2018-07-08 12:13:43 +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 7ad0724f0e while True loop for recording 2018-07-01 19:35:23 +02:00
Fabio Manganiello 6ba71b52e7 Improved camera.pi logic 2018-06-29 11:25:18 +02:00
Fabio Manganiello 57baa0c64a Try to decode the message event if it's not a Platypush message 2018-06-29 11:09:28 +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 94ffaf2099 Commented out optional requirements that break RTD build 2018-06-26 01:06:23 +02:00
Fabio Manganiello e6fdcaa068 Make sure that the Redis thread gets the stop event propagated when the application terminates 2018-06-26 00:57:26 +02:00
Fabio Manganiello 8e16f31603 fixed regex 2018-06-26 00:46:13 +02:00
Fabio Manganiello 7398107570 Completed documentation for backends 2018-06-26 00:36:01 +02:00
Fabio Manganiello 8a0ca64e4d Merge branch 'master' into docs 2018-06-26 00:17:28 +02:00
Fabio Manganiello 28862d743d Adding backends documentation 2018-06-26 00:16:39 +02:00
Fabio Manganiello 0939cdedf8 Added utility to scan for messages on the ZeroBorg infrared sensor 2018-06-26 00:16:04 +02:00
Fabio Manganiello 85c7faf21b Merge branch 'master' into docs 2018-06-25 20:25:10 +02:00
Fabio Manganiello cb30a0418f Don't play icon animation to prevent the browser on a tiny RPi to freeze 2018-06-25 20:09:45 +02:00
Fabio Manganiello b876f17f81 Completed documentation for plugins 2018-06-25 19:57:43 +02:00
Fabio Manganiello 1cbef67f2c Merge branch 'master' into docs 2018-06-25 00:49:51 +02:00
Fabio Manganiello ad1c87b2be Adding more plugins documentation 2018-06-25 00:49:45 +02:00
Fabio Manganiello 49333d892e Remove and then re-add the skycons icon to make sure that the refresh happens 2018-06-24 14:35:36 +02:00
Fabio Manganiello 135212efcb Merge branch 'master' into docs 2018-06-23 13:26:20 +02:00
Fabio Manganiello fd792cb089 Added support for weather icons on the dashboard 2018-06-23 01:34:46 +02:00
Fabio Manganiello 54dcb2cba3 Documentation v0.1 2018-06-23 01:00:43 +02:00
Fabio Manganiello a4273f5619 Older versions of the assistant SDK don't have the ON_RENDER_RESPONSE event - check if they have it defined before testing the event type 2018-06-21 01:29:04 +02:00
Fabio Manganiello 8708d53236 Show assistant response text on web clients 2018-06-21 00:22:26 +02:00
Fabio Manganiello f73adc83bc - Support for assistant response text as a ResponseEvent
- Don't trigger a ConversationEndEvent if the assistant needs to follow up on the previous interaction
2018-06-20 19:21:32 +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 5e21f844a0 s/yaml.load/yaml.safe_load/ 2018-06-18 11:07:20 +00: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 b7181085f3 Cover both the cases where the Redis backend is not configured and where it's None 2018-06-14 20:44:06 +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 061b676fbc If the string assignment didn't work either, give up without failing (also in Request) 2018-06-14 19:12:16 +02:00
Fabio Manganiello 4d48506cb2 If the string assignment didn't work either, give up without failing 2018-06-14 19:07:33 +02:00
Fabio Manganiello 37f952fc41 Be a bit more robust with string assignment in procedure context 2018-06-14 19:02:01 +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 793b4df12d Pi Camera backend version 0.something 2018-06-14 02:14:08 +02:00
Fabio Manganiello 85512424ae Better events orchestration on camera.pi backend 2018-06-14 00:44:50 +02:00
Fabio Manganiello bb43facee5 typo #2 2018-06-14 00:37:38 +02:00
Fabio Manganiello e9fc35b39d typo 2018-06-14 00:36:07 +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 2e08be2886 Clean up the iframe src on timeout expire 2018-06-13 20:44:24 +02:00
Fabio Manganiello 5a1e77c174 Added iframe modal on dashboard with support for dynamic events to temporarily/permanently display a custom web page on the connected browsers 2018-06-13 20:40:49 +02:00
Fabio Manganiello d89b03a697 Optional 'zoom' parameter added to the map page to override Google Maps auto-zoom (needed if the page is embedded in an iframe) 2018-06-13 18:10:58 +00: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 e0ff431894 (Forgot to fix humidity sensor reads) 2018-06-12 20:31:58 +02:00
Fabio Manganiello 64ee7e3e59 Fixed the way the FE widget parses the sensor changes after the structural change to SensorDataChangeEvent 2018-06-12 20:30:23 +02:00
Fabio Manganiello e216eb4792 Added maps page 2018-06-12 15:33:04 +00: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 b329580ff0 json decode msg 2018-06-12 09:28:15 +02:00
Fabio Manganiello 8c208c0028 Use the Redis backend to dispatch messages to the core bus if available 2018-06-12 09:20:22 +02:00
Fabio Manganiello 7ab85b4cfa Symlinked serial sensor web interface to MCP3008 sensor template 2018-06-12 01:03:29 +02:00
Fabio Manganiello bdf862e6d2 get_data alias for get_measuremnt 2018-06-12 00:46:51 +02:00
Fabio Manganiello 77d954f14e Simplified MCP3008 sensor backend by letting it extend SensorBackend 2018-06-12 00:36:43 +02:00
Fabio Manganiello c410bd8926 s/sensors/data/g 2018-06-12 00:23:47 +02:00
Fabio Manganiello f137595ba0 Removed the serial backend, as it's now being replaced by the more specific (and reusable) sensor.serial backend 2018-06-12 00:01:18 +02:00
Fabio Manganiello 0e3873eaf3 Removed light sensor backend. As most of them are analog sensors, they can't communicate directly with the Raspberry - instead a plugin like serial (e.g. Arduino) or MCP3008 should act as a proxy 2018-06-12 00:00:15 +02:00
Fabio Manganiello 33a507f047 Simplified SensorBackend implementations 2018-06-11 23:49:37 +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 933940c695 Attribute name fix 2018-06-11 22:12:25 +02:00
Fabio Manganiello 0905981c58 Refactoring sensor backend and added SensorSerialBackend 2018-06-11 21:07:54 +02:00
Fabio Manganiello 40293a3d30 calendar-next-event-container width 50% -> 70% 2018-06-10 17:20:05 +02:00
Fabio Manganiello c6054f4ac9 Typos 2018-06-08 17:17:12 +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 6247488450 Fixed other logging issues 2018-06-08 17:10:11 +02:00
Fabio Manganiello d7bc17778e Forgot import logging 2018-06-08 16:55:06 +02:00
Fabio Manganiello 2bb6ed6867 Declared logger attribute in HttpRequest as it won't be available to the subclasses otherwise 2018-06-08 16:54:15 +02:00
Fabio Manganiello f0bb2a20b0 Typo 2018-06-08 16:41:31 +02:00
Fabio Manganiello 0756da3861 Fixed logger references 2018-06-08 16:37:59 +02:00
Fabio Manganiello f67b737a54 Best effort in context expansion 2018-06-07 09:33:26 +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 9a43b6cf51 Fixed logger references 2018-06-07 09:08:32 +02:00
Fabio Manganiello 4da74b1096 Refactored logging submodule 2018-06-06 20:09:23 +02:00
Fabio Manganiello c867a21104 If the value is a platypush Message, then converting it into a string would result in a JSON dumps that might break the interpreter (e.g. 'null' is a valid JSON keyword but it's not recognized by Python). Therefore first parse the variable from JSON 2018-06-06 18:50:09 +02:00
Fabio Manganiello 850a4f2146 A less convoluted and robust way to expand the context as variables 2018-06-06 17:14:44 +02:00
Fabio Manganiello 9984b75895 Added midi backend to support events from MIDI sources 2018-06-06 02:26:28 +02:00