Fabio Manganiello
cc2ec1db7f
The HTTP Zeroconf service should be registered before the server starts.
2023-05-02 21:24:50 +02:00
Fabio Manganiello
55cb87d14f
Updated dist files
2023-05-02 10:24:11 +02:00
Fabio Manganiello
68359b88a9
More performance improvements for the entities page.
...
- Don't recalculate entity groups every time. Instead, keep them in sync
every time an entity is added or removed.
- Removed `computedChildren` from the entity component - no null nodes
are guaranteed to be passed now, so there's no need for another
iteration on the list of children.
- `childrenByParentId` now only looks in the scope of the entity's
children instead of searching all the entities.
2023-05-02 10:14:03 +02:00
Fabio Manganiello
0fc0a22cd7
Reintroduced loading icon spin animation.
2023-05-02 10:08:36 +02:00
Fabio Manganiello
3febfabdd7
Bluetooth LE blacklisted device notices moved info -> debug
.
2023-05-01 22:10:06 +02:00
Fabio Manganiello
998990aabc
Made Entity.children_ids
resilient against deleted objects.
2023-05-01 22:09:16 +02:00
Fabio Manganiello
9d82ce6ea9
Noisy beacons notice back to debug level.
...
There's just too many of them and it ends up polluting the logs.
2023-05-01 21:25:42 +02:00
Fabio Manganiello
ce248ccfbb
Added children_ids
to the entity attributes serialized in to_json
.
2023-05-01 19:59:13 +02:00
Fabio Manganiello
de76c2b6a8
Updated dist files
2023-05-01 10:12:43 +02:00
Fabio Manganiello
835ad9f2dc
Use plugin as a default entity grouping instead of category
2023-05-01 10:06:11 +02:00
Fabio Manganiello
85ecdcb0cb
Removed entity icon loading animation.
...
The animation has a big impact on page loading performance when the
system includes a high number of entities that all need their loading
animation to be render.
2023-05-01 09:49:34 +02:00
Fabio Manganiello
24c6b7b377
Updated dist files
2023-05-01 01:25:27 +02:00
Fabio Manganiello
b7cf1a42de
Use a proxy value in the variable
component for the textbox.
...
Otherwise the value may keep being overwritten while the user is typing
a new one.
2023-05-01 01:22:20 +02:00
Fabio Manganiello
a3839e637d
Set a max-width: 600px for group containers.
2023-05-01 01:22:02 +02:00
Fabio Manganiello
1e43866978
Moved more entity common CSS out of the Vue component.
2023-05-01 01:21:18 +02:00
Fabio Manganiello
de84a65a22
Show prettified entity type when hover the entity icon.
2023-05-01 01:20:31 +02:00
Fabio Manganiello
7906ee2c49
Entity components style improvements.
...
Multiple style improvements for the entity components. Among these:
- A more consistent style for entity values and toggler buttons.
- Fixed overflowing/underflowing entities on smaller/larger screen
sizes.
- Simplified the stylesheets for many entities as many component classes
have now been moved to `common.scss`.
2023-04-30 22:32:50 +02:00
Fabio Manganiello
d1066ba624
Use Math.round instead of parseInt when parsing durations.
2023-04-30 16:22:37 +02:00
Fabio Manganiello
5d4bffa119
Fixed retrieval of entities
plugin.
2023-04-30 10:42:05 +02:00
Fabio Manganiello
94a493580c
Updated dist files
2023-04-30 01:36:13 +02:00
Fabio Manganiello
0b853e0a54
Apply word-break: break-all
to entities' names and values.
...
The entity name and value in the component header may be arbitrarily
long and rendered on small screens.
We therefore need to ensure that the text won't overflow the screen
width.
2023-04-30 01:17:54 +02:00
Fabio Manganiello
3d7755159f
Improved compatibility for traceback.format_exception
.
...
The new syntax, that only requires an `Exception` instance to be passed
to the function, is only compatible with Python >= 3.10.
2023-04-30 00:38:17 +02:00
Fabio Manganiello
12cca4991a
Fixed paths for Alembic's package_data
.
2023-04-29 23:48:06 +02:00
Fabio Manganiello
6b28d16ccf
Exclude more noisy Bluetooth beacons.
...
Exclude any beacons from devices with no name, no children other than
services, and with none of those services being public/known.
2023-04-29 23:34:24 +02:00
Fabio Manganiello
f764d1b4fb
Noisy Bluetooth beacons notices should be logged on info level.
2023-04-29 23:18:12 +02:00
Fabio Manganiello
52f036dc1d
Updated dist files
2023-04-29 22:49:35 +02:00
Fabio Manganiello
cbf0ea8a19
Style fixes for mobile screens.
2023-04-29 22:45:10 +02:00
Fabio Manganiello
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
Fabio Manganiello
e96885a805
Delete the entity on variable.unset
instead of setting it to null.
2023-04-29 18:21:57 +02:00
Fabio Manganiello
b4048002b9
Updated dist files
2023-04-29 18:21:32 +02:00
Fabio Manganiello
6d9c34f06f
Added VariableModal to set variables from the dashboard.
2023-04-29 18:20:41 +02:00
Fabio Manganiello
a3888be216
The robustness check in case of missing fields should also apply to other system entities.
2023-04-29 16:08:38 +02:00
Fabio Manganiello
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
Fabio Manganiello
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
Fabio Manganiello
68d8befa34
Removed some vestigial commented code.
2023-04-29 15:28:44 +02:00
Fabio Manganiello
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
Fabio Manganiello
e919bf95ad
Print the full stack trace if a plugin failed in entities.scan
2023-04-29 15:14:13 +02:00
Fabio Manganiello
38c87ef39f
Added frontend component for the Variable
entity.
2023-04-29 11:37:21 +02:00
Fabio Manganiello
f40f956507
Migrated variable
table to the new entities framework.
2023-04-29 11:36:55 +02:00
Fabio Manganiello
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
Fabio Manganiello
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
Fabio Manganiello
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
Fabio Manganiello
ff9b76477d
Fixed arguments naming.
2023-04-28 11:04:33 +02:00
Fabio Manganiello
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
Fabio Manganiello
162904f281
[ #253 ] Added support for relational filters on event hooks.
2023-04-27 22:07:02 +02:00
Fabio Manganiello
87db5ca5f3
Exclude all iBeacon devices by default (it's not only Apple, it's everyone)
2023-04-26 14:17:59 +02:00
Fabio Manganiello
7685521e2b
Always use the default configuration values for MQTT listeners if not specified
2023-04-26 03:30:05 +02:00
Fabio Manganiello
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
Fabio Manganiello
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
Fabio Manganiello
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