Fabio Manganiello
1efaff878e
Rewritten serial
plugin.
...
`backend.serial` has been removed and the polling logic merged into the
`serial` plugin.
The `serial` plugin now supports the new entity engine as well.
2023-03-31 14:31:45 +02:00
Fabio Manganiello
4f15758de9
black fixes
2023-03-31 14:31:38 +02:00
Fabio Manganiello
2a8a3f4394
Removed legacy sensor.distance.vl53l1x backend
2023-03-31 14:26:14 +02:00
Fabio Manganiello
a3e8c7c155
Rewritten vl53l1x integration as a runnable plugin with entity support
2023-03-31 14:25:05 +02:00
Fabio Manganiello
226034946f
Added distance_sensor
entity
2023-03-31 14:22:28 +02:00
Fabio Manganiello
6fb362a6fb
gpio.sensor.distance.vl53l1x -> sensor.distance.vl53l1x
2023-03-31 14:21:48 +02:00
Fabio Manganiello
e198f2a175
Replaced .title
in get_plugin
with .upper
on the first character.
...
`str.title` capitalizes any alphabetic letter after any non-alphabetic
letter. That's a problem for Platypush plugins' naming convention,
because plugins like `sensor.distance.vl53l1x` may be broken into
`sensor.distance.vl53.l1.x`.
2023-03-31 14:09:43 +02:00
Fabio Manganiello
c2f9ebf4ed
Updated dist files
2023-03-27 01:47:29 +02:00
Fabio Manganiello
2781eb1fb1
Merge branch 'master' into 29-generic-entities-support
2023-03-27 00:36:50 +02:00
Fabio Manganiello
792a65df8b
Merge pull request '[ #240 ] Migrated clipboard
plugin from pyperclip
to pyclip
' ( #241 ) from 240-migrate-clipboard-integration-to-pyclip into master
...
Reviewed-on: platypush/platypush#241
2023-03-26 23:56:51 +02:00
Fabio Manganiello
7a368ebbb8
[ #240 ] Migrated clipboard
plugin from pyperclip
to pyclip
.
...
Closes : #240
2023-03-26 23:52:15 +02:00
Fabio Manganiello
bce2fdee25
Replaced deprecated asyncio.wait([])
with asyncio.gather(*[])
.
2023-03-26 23:15:53 +02:00
Fabio Manganiello
cf91ab90df
Increased default width of nav
on desktop+
2023-03-26 23:10:46 +02:00
Fabio Manganiello
c0251ef2f7
s/instance/instance_name/g
in LinodeInstanceStatusChanged
.
...
For sake of consistency - we also have `instance_id` and having the
instance name assigned to the `instance` attribute is quite ambiguous.
2023-03-26 22:58:20 +02:00
Fabio Manganiello
efe400f921
Fixed maxdepth
attribute in generate docs.
2023-03-26 22:55:22 +02:00
Fabio Manganiello
6d674fef21
Fixed small JSON syntax error in the docstring of ntfy.send_message
.
2023-03-26 22:53:42 +02:00
Fabio Manganiello
30124e7cef
Fixed docstring of Event.__init__
.
2023-03-26 22:53:11 +02:00
Fabio Manganiello
276aff757b
Removed circular dependency.
...
Workaround for the circular dependency between
`platypush.entities.bluetooth` and `platypush.plugins.bluetooth.model`.
Unentangling the circular dependency would require way too much work,
since the entity model provides several helpers and properties that
depend on the plugin's model.
The workaround in this commit is to simply push those imports down in
the methods that use them, so they won't be imported until those methods
are called, as well as removing some type annotations that depended on
those objects.
2023-03-26 15:30:57 +02:00
Fabio Manganiello
3bb2336b3a
Updated docs
2023-03-26 15:13:48 +02:00
Fabio Manganiello
89bc54da22
Updated dist files
2023-03-26 12:30:46 +02:00
Fabio Manganiello
295758bb20
Added frontend components for cloud instances.
2023-03-26 12:27:17 +02:00
Fabio Manganiello
bc2730c841
Rewritten linode
integration.
...
- Support for cloud instances as native entities.
- Using Marshmallow dataclasses+schemas instead of custom `Response`
objects.
- Merge `linode` backend into `linode` plugin.
2023-03-26 11:23:33 +02:00
Fabio Manganiello
4b9c5a0203
Support for schema EnumField
.
2023-03-26 03:48:32 +02:00
Fabio Manganiello
026662f6b6
Added base schema for Marshmallow dataclasses.
2023-03-26 03:47:44 +02:00
Fabio Manganiello
7bbae55e44
platypush.entities._managers
-> platypush.entities.managers
.
...
It's better for entity managers to be stored in their own public
package, instead of cluttering too much the namespace of their parent
package.
2023-03-26 03:46:06 +02:00
Fabio Manganiello
f5d9895521
Added marshmallow_dataclass
to the requirements.
2023-03-26 03:44:57 +02:00
Fabio Manganiello
89d85baa6d
Support for implicit serialization of Enum values in JSONAble.
2023-03-26 03:43:04 +02:00
Fabio Manganiello
a71017df33
Updated web app files
2023-03-24 16:45:55 +01:00
Fabio Manganiello
567e9d4e21
Removed legacy bluetooth
backends.
...
No replacements have been made for the OBEX backends (push and file
services). PyOBEX is too broken and unmaintained, and there are too many
poorly documented steps required to get an unprivileged user to run an
SDP service.
2023-03-24 16:41:30 +01:00
Fabio Manganiello
3c355352c5
Using the new StoppableThread
API.
2023-03-24 16:39:30 +01:00
Fabio Manganiello
5ebf4e912e
Added wait_stop
and shoud_stop
methods to StoppableThread
.
2023-03-24 16:05:18 +01:00
Fabio Manganiello
998793e94f
Added OBEX_FILE_TRANSFER
constant to directory
stub.
2023-03-24 15:41:20 +01:00
Fabio Manganiello
4b4db5b3c7
Added StoppableThread
common interface.
2023-03-24 15:40:16 +01:00
Fabio Manganiello
2f49ddf33a
Fallback logic that uses DBus to disconnect from a BT device.
...
This logic will be used if the connection wasn't opened by the current
process and therefore a call to DBus is required to terminate it.
2023-03-24 01:57:05 +01:00
Fabio Manganiello
913ef6f8cd
Refresh BluetoothDevice.reachable
when a device is found/lost.
2023-03-24 01:56:19 +01:00
Fabio Manganiello
d46d4e2300
Added support for Bluetooth devices blacklist.
...
Based on device address, name or manufacturer.
2023-03-24 01:52:39 +01:00
Fabio Manganiello
0cebcf4f9b
switchbot.bluetooth
integration migrated to a bluetooth
plugin.
2023-03-23 17:46:54 +01:00
Fabio Manganiello
4fac110bb8
Added bluetooth.set
method, whose execution is delegated to the plugins.
2023-03-23 17:45:02 +01:00
Fabio Manganiello
cd219f44c4
Pass the list of plugins when creating Bluetooth managers.
2023-03-23 17:42:16 +01:00
Fabio Manganiello
43289a3b55
Scan always at least for 10 seconds before failing on get_device
.
2023-03-23 17:41:37 +01:00
Fabio Manganiello
6267943786
Wrap BleakError
exceptions into AssertionError
.
2023-03-23 17:40:30 +01:00
Fabio Manganiello
d6805a8b18
Added support for custom Bluetooth device plugins.
2023-03-23 17:10:37 +01:00
Fabio Manganiello
af125347d6
If no matching services are found when connecting to a device, default to BLEManager.
...
GATT characteristics are not necessarily exposed as services.
2023-03-23 13:00:26 +01:00
Fabio Manganiello
d1cd6dd2af
get_plugin with reload=True should stop the existing plugin if it's running
2023-03-23 01:11:54 +01:00
Fabio Manganiello
a2a5fce6cb
Added Apple Continuity
to the list of blacklisted manufacturers/models
2023-03-22 22:55:19 +01:00
Fabio Manganiello
e71c312133
Always read an entity's parent through get_parent when climbing up.
...
This should avoid the risk of `DetachedInstanceError` by retrieving the
object into the session if it's not available.
2023-03-22 22:41:09 +01:00
Fabio Manganiello
5c23d3aa87
metadata and rssi fields on BLEDevice have been deprecated.
...
Changed the BLE beacon parsing logic to read those fields from
`AdvertisementData` instead of `BLEDevice`.
2023-03-22 22:39:01 +01:00
Fabio Manganiello
65bc3ae06d
Noisy beacons device configuration should look both at manufacturer and model.
2023-03-22 22:37:46 +01:00
Fabio Manganiello
f49b866a51
Focus the <input> element when a <NameEditor> element is created.
2023-03-22 21:28:21 +01:00
Fabio Manganiello
dd80dc998c
Show entity icon and type in the list of children entities on EntityModal.
2023-03-22 21:26:59 +01:00