9ebdaf620e
Merge pull request '[ #255 ] Model variables as entities' ( #256 ) from 255-model-variables-as-entities into master
...
Reviewed-on: platypush/platypush#256
Closes : #255
2023-04-29 18:24:24 +02:00
e96885a805
Delete the entity on variable.unset
instead of setting it to null.
2023-04-29 18:21:57 +02:00
b4048002b9
Updated dist files
2023-04-29 18:21:32 +02:00
6d9c34f06f
Added VariableModal to set variables from the dashboard.
2023-04-29 18:20:41 +02:00
a3888be216
The robustness check in case of missing fields should also apply to other system entities.
2023-04-29 16:08:38 +02:00
8c9768b05e
Robustness check for system disk entities.
...
When the system information is still loading it may happen that the
device associated to the disk hasn't been loaded yet.
2023-04-29 16:04:57 +02:00
a20065c649
Exposed _entities
utility property in Plugin
.
...
It can be used by other plugins to easily access the `entities` plugin,
along the lines of `db` and `redis`.
2023-04-29 15:50:31 +02:00
68d8befa34
Removed some vestigial commented code.
2023-04-29 15:28:44 +02:00
23b851e9d7
variable.status
robustness fix.
...
`entities.transform_entities` will pass back an empty list instead of an
empty dict if no entities were found, and the function should be able to
handle it.
2023-04-29 15:24:58 +02:00
e919bf95ad
Print the full stack trace if a plugin failed in entities.scan
2023-04-29 15:14:13 +02:00
38c87ef39f
Added frontend component for the Variable
entity.
2023-04-29 11:37:21 +02:00
f40f956507
Migrated variable
table to the new entities framework.
2023-04-29 11:36:55 +02:00
8fe61217ce
Added _db
and _redis
properties to the Plugin class.
...
Plugins can now access the database and Redis APIs directly without
having to run their own `get_plugin` validation logic.
2023-04-29 11:35:57 +02:00
a8d2261f32
Added core_plugins
to the configuration.
...
These plugins (only including `variable` for now) are a core part of the
application and should always be explicitly enabled.
2023-04-29 11:34:34 +02:00
78cee5d9b0
Added support for automatic database migrations.
...
Added Alembic environment and `run_db_migrations` logic to the entities
engine so database schema changes can be processed as soon as the
application is started.
2023-04-29 11:32:31 +02:00
ff9b76477d
Fixed arguments naming.
2023-04-28 11:04:33 +02:00
38262e245e
Merge pull request '[ #253 ] Support for relational filters on event hooks' ( #254 ) from 253-support-for-relational-filters-on-event-hooks into master
...
Reviewed-on: platypush/platypush#254
Closes : #253
2023-04-27 22:08:37 +02:00
162904f281
[ #253 ] Added support for relational filters on event hooks.
2023-04-27 22:07:02 +02:00
87db5ca5f3
Exclude all iBeacon devices by default (it's not only Apple, it's everyone)
2023-04-26 14:17:59 +02:00
7685521e2b
Always use the default configuration values for MQTT listeners if not specified
2023-04-26 03:30:05 +02:00
10d587efd0
FIX: Possible assert evaluation error.
...
Some versions/configurations of Python may throw `Boolean value of this
clause is not defined` here.
2023-04-26 02:25:28 +02:00
339786b123
Merge pull request 'Support for nested/partial event hook filters' ( #252 ) from 251-nested-filters-on-event-hooks into master
...
Reviewed-on: platypush/platypush#252
Closes : #251
2023-04-26 01:55:27 +02:00
245472a4c5
Better event hooks filters.
...
- Support for nested attributes on event hook conditions. Things like
these are now possible:
```
from platypush.event.hook import hook
from platypush.message.event.entities import EntityUpdateEvent
@hook(EntityUpdateEvent, entity={"external_id": "system:cpu"})
def on_cpu_update_event(event: EntityUpdateEvent, **_):
print(event.args["entity"]["percent"])
```
- The scoring/regex extraction/partial string match logic in
`_matches_argument` is actually only needed for
`SpeechRecognizedEvent`. Other events don't need these features, and
event hooks may be actually triggered unexpectedly in case of partial
matches. Therefore, the "complex" `_matches_argument` has been moved
as an override only for `SpeechRecognizedEvent`, and all the other
events will perform simple key-value matching.
2023-04-26 01:45:58 +02:00
ee54e0edbf
Use a font-awesome spinner instead of an animated gif when loading entities
2023-04-25 16:42:01 +02:00
cb288deb71
Exclude more noisy BLE beacons.
...
Excluding Apple iBeacons and devices with no name and no services.
2023-04-25 16:19:11 +02:00
99382e4505
Merge pull request 'Fixed compatibility with SQLAlchemy >= 2.0' ( #250 ) from 239-sqlalchemy-2-compatibility into master
...
Reviewed-on: platypush/platypush#250
Closes : #239
2023-04-25 10:47:27 +02:00
9c93b793e3
Merge branch 'master' into 239-sqlalchemy-2-compatibility
2023-04-25 10:44:31 +02:00
dd60b8924d
Wrap the PRAGMA
statement in sqlalchemy.text
.
...
SQLAlchemy 2 no longer supports raw strings passed to `.execute()`
methods.
2023-04-25 10:41:37 +02:00
440d70d9cf
LINT/format fixes.
2023-04-25 10:36:27 +02:00
4cc88fcf5f
Rewritten the variable
plugin to use SQLAlchemy's ORM.
...
This removes the need for raw SQL statements and CREATE TABLE statements
that may be engine-specific.
2023-04-25 10:35:12 +02:00
e1cd22121a
Removed connection.begin()
pattern from the db
plugin.
...
SQLAlchemy should automatically begin a transaction on
connection/session creation. Plus, `.begin()` messes up things with
SQLAlchemy 2, which has `autobegin` enabled with no easy way of
disabling it.
2023-04-25 10:31:49 +02:00
f4e13d0cb0
No need for session.begin
in db.create_all
.
2023-04-24 23:57:47 +02:00
37722d12cd
No need for session.begin
in db.create_all
.
2023-04-24 23:55:50 +02:00
6fa179e769
LINT fixes
2023-04-24 23:49:31 +02:00
d33d760361
Better way to import declarative_base
from SQLAlchemy.
...
Import `declarative_base` in a way that is compatible with any
SQLAlchemy version between 1.3 and 2.x.
2023-04-24 23:23:55 +02:00
91df18f7b5
Better way to import declarative_base
from SQLAlchemy.
...
Import `declarative_base` in a way that is compatible with any
SQLAlchemy version between 1.3 and 2.x.
2023-04-24 23:21:39 +02:00
87889142e0
Fixed compatibility with SQLAlchemy >= 2.0 in the db
plugin.
2023-04-24 22:52:17 +02:00
8478245cde
Removed Mapped[Entity]
type annotation.
...
`Mapped` has been introduced only in SQLAlchemy 1.4, while Debian stable
still ships 1.3.
Removing the type annotation doesn't come with a big cost, but it keeps
Platypush compatible with Debian stable.
2023-04-24 21:48:52 +02:00
e955ffc018
Be more resilient in DateTimeWeather widget about custom temperature/humidity names or non-numeric data
2023-04-24 12:48:51 +02:00
5638c567ff
Show temperature and humidity on the DateTimeWeather widget upon sensor events only if the sensor data is numeric.
2023-04-24 10:59:45 +02:00
bfa296e7c5
Fixed dataclass JSON serialization
2023-04-24 01:18:33 +02:00
9c03b028d7
Be a bit more resilient if an upstream integration sent some empty entities
2023-04-24 00:44:16 +02:00
6711b26137
Support dataclass serialization in the standard message serializer.
2023-04-24 00:43:06 +02:00
dc3392c11d
Disk I/O stats are not always available and should therefore be optional.
2023-04-23 22:25:24 +02:00
8e7d444c02
Updated CHANGELOG
2023-04-23 21:19:31 +02:00
0cd28f1040
libbluetooth-dev is a required dependency to build pybluez on Debian-derived distros
2023-04-23 18:59:37 +02:00
9c1855e4c0
Fixed docstring for zigbee.mqtt
plugin.
2023-04-23 13:03:10 +02:00
0fc05135df
Updated docs
2023-04-23 02:14:57 +02:00
512ced3e94
Updated dist files
2023-04-23 02:13:48 +02:00
6439e235d2
Updated caniuse dependency
2023-04-23 02:11:21 +02:00