Commit graph

1310 commits

Author SHA1 Message Date
8f604445a2
Migrated old sensor.accelerometer integration.
Removed `backend.sensor.accelerometer` and `gpio.sensor.accelerometer`.
The logic has now been merged in the new `sensor.lis3dh` integration,
which is compatible with the new `SensorPlugin` API.
2023-04-02 13:22:28 +02:00
44cf25271c
Migrated pmw3901 integration.
Removed legacy `backend.sensor.motion.pmw3901` and
`gpio.sensor.motion.pmw3901`. They have been merged in the new
`sensor.pmw3901` integration, compatible with the new `SensorPlugin`
API.
2023-04-02 12:36:08 +02:00
a3f4b21478
Updated dist files 2023-04-02 03:24:11 +02:00
e6e5dec088
Updated dist files 2023-04-02 02:56:09 +02:00
7697c1c6ad
Migrated envirophat to the new SensorPlugin API.
Removed `backend.sensor.envirophat` and `gpio.sensor.envirophat` plugin.
They have now been merged into the new `sensor.envirophat` plugin.
2023-04-02 02:49:08 +02:00
5a6f4bcf57
Added 3-axis sensor, accelerometer and magnetometer entities 2023-04-02 01:13:22 +02:00
d964167631
s/TimeDurationSensor/TimeDuration/g 2023-04-02 00:57:48 +02:00
839c6108a0
Added sensor.* icon classes 2023-04-02 00:40:50 +02:00
429893ddbf
Updated dist files 2023-04-01 23:58:28 +02:00
c1d0f21ead
Migrated ltr559 integration to the new API.
Merged `backend.sensor.ltr559` and `gpio.sensor.ltr559` into the new
`sensor.ltr559` plugin, which extends the new `SensorPlugin` API.
2023-04-01 23:16:03 +02:00
5dabfed365
Migrated sensor.bme280 to the new SensorPlugin interface.
Removed the old `backend.sensor.bme280` and the old `gpio.sensor.bme280`
plugin. They have now been merged into the new `sensor.bme280` runnable
plugin, which extends the `SensorPlugin` API and supports entities.
2023-04-01 22:31:24 +02:00
bf4db76830
Legacy sensor backend replaced by an extended sensor runnable plugin. 2023-04-01 19:24:35 +02:00
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
2a8a3f4394 Removed legacy sensor.distance.vl53l1x backend 2023-03-31 14:26:14 +02:00
226034946f Added distance_sensor entity 2023-03-31 14:22:28 +02:00
c2f9ebf4ed
Updated dist files 2023-03-27 01:47:29 +02:00
cf91ab90df
Increased default width of nav on desktop+ 2023-03-26 23:10:46 +02:00
89bc54da22
Updated dist files 2023-03-26 12:30:46 +02:00
295758bb20
Added frontend components for cloud instances. 2023-03-26 12:27:17 +02:00
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
a71017df33
Updated web app files 2023-03-24 16:45:55 +01:00
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
f49b866a51
Focus the <input> element when a <NameEditor> element is created. 2023-03-22 21:28:21 +01:00
dd80dc998c
Show entity icon and type in the list of children entities on EntityModal. 2023-03-22 21:26:59 +01:00
239dd17f23
Exclude from the list of display children on EntityModal those with no name or that are configuration values. 2023-03-22 16:38:38 +01:00
5dd95362a1
Include links both to the parent and children entities in EntityModal. 2023-03-22 16:20:29 +01:00
486f37a45e
Support sensor value reported both on value as well as _value fields. 2023-03-22 14:11:13 +01:00
bfc87e0f7b
Display arrays and objects in the entity modal as prettified JSON. 2023-03-22 13:50:35 +01:00
e9abb5cb9a
Implemented support for child entities in entity modals. 2023-03-21 16:02:02 +01:00
718e0434ba
Display all available entity attributes on EntityModal. 2023-03-20 14:32:03 +01:00
78bbe71be1
Another .pull-right fix. 2023-03-20 02:04:32 +01:00
431dedf3eb
BluetoothDevice moved to its own component, with device connect support. 2023-03-20 01:28:12 +01:00
0a4b22c12e
Implemented connect/disconnect call on BluetoothService component. 2023-03-20 01:27:47 +01:00
714f853751
Pass the list of children to the entity component. 2023-03-20 01:27:21 +01:00
a011de890b
Better .pull-right class implementation. 2023-03-20 01:26:48 +01:00
2b5596820b
Made Types.objectsEqual method more robust against null input 2023-03-19 22:50:23 +01:00
71a3481560
Better style for the sidebar/nav 2023-03-19 22:23:37 +01:00
aa04741daa
Added BluetoothService UI component 2023-03-19 12:53:23 +01:00
f74fab795d
Added parent component value to Entity. 2023-03-19 12:50:45 +01:00
2dfb389630
Added remaining bluetooth entity types in _mappers.py. 2023-02-23 21:20:41 +01:00
a0556d3a42
Added PresenceSensor entities. 2023-02-23 01:42:26 +01:00
56d693032a
Added DewPointSensor entities. 2023-02-23 01:23:04 +01:00
d212276247
Added PressureSensor entities. 2023-02-23 01:12:27 +01:00
d961e2a997
Added TimeDurationSensor entity. 2023-02-23 01:02:13 +01:00
c3e16f9f9d
Added support for heart rate sensor entities. 2023-02-23 00:55:55 +01:00
e1b3d52706
Added StepsSensor entity. 2023-02-23 00:45:58 +01:00
bbc9647cb0
s/MultiValueSensor/CompositeSensor/g 2023-02-21 23:14:10 +01:00
68e6b271c1
Updated dist files 2023-02-19 22:58:20 +01:00
cb9b01c89f
Added raw_sensor metadata 2023-02-19 22:57:50 +01:00
45664be44b
Removed deprecated backend.bluetooth.scanner.
Scan capabilities are now implemented on the `bluetooth` plugin itself.
2023-02-13 23:13:51 +01:00
471bc1fd3d
Updated dist files 2023-02-13 23:13:32 +01:00
a3aa186ddf
- Added support for scan_pause/scan_resume on bluetooth integration.
- Added `BluetoothDevice` as its own entity type.
2023-02-13 23:12:25 +01:00
4365352331
[WIP] s/set_value/set/g for entities 2023-02-11 03:57:23 +01:00
b0cc80ceb0
Rewriting bluetooth.ble plugin to use bleak instead of gattlib. 2023-02-10 17:40:20 +01:00
e04870209e
More LINT fixes 2023-02-08 01:50:54 +01:00
e49a0aec4d
Various improvements.
- Better synchronization logic on stop for `AsyncRunnablePlugin`.
- Fixed several thread names by dropping `prctl.set_name` in favour of
  specifying the name directly on thread creation.
- Several LINT fixes.
2023-02-08 00:46:50 +01:00
fde834c1b1
More LINT fixes + refactors 2023-02-05 22:00:50 +01:00
64e9bf17cf
Updated dist files 2023-02-05 14:53:36 +01:00
65827aa0cd
Updated dist files 2023-02-04 17:36:46 +01:00
db5846d296
Add the unit to the Dimmer display value if it's available 2023-02-04 17:28:54 +01:00
b6814b4f16
Removed legacy Switches integration [frontend] 2023-02-03 22:49:09 +01:00
63d6920716
Updated dist files 2023-02-02 18:07:44 +01:00
8aff181956
Merged zwave.mqtt backend into the zwave.mqtt plugin 2023-01-29 02:34:48 +01:00
341e749d23
Merged the zigbee.mqtt backend into the plugin.
- Deprecated the old `zigbee.mqtt` backend
- Black style for the `mqtt` backend
2023-01-27 01:59:57 +01:00
afdeb91f66
Implemented remaining supported entities for the smartthings integration 2023-01-26 22:10:02 +01:00
fd76642082
Added Volume and Muted entities 2023-01-22 21:04:46 +01:00
dabbe031ab
Don't show the entity modal unless the user clicks on the name or icon 2023-01-21 23:46:38 +01:00
32e4e60579
A more robust handling of events in the zwave.mqtt backend 2023-01-21 23:44:51 +01:00
3940288396
Use the new bus notification helpers 2023-01-21 16:59:18 +01:00
241670c9d0
Handle parent/child update events through broadcast bus events 2023-01-21 16:58:28 +01:00
3923a09831
- Expose methods on the bus module to publish/subscribe to notifications and entity updates
- Removed some redundant `pass` statements in Z-Wave derived event classes
2023-01-21 16:56:27 +01:00
fb562bb415
Propagate the @update event to the parent entities 2023-01-21 14:55:06 +01:00
dfb13127ee
Added MotionSensor entities 2023-01-21 14:47:18 +01:00
22b8b03cb2
Refactored EntityIcon component 2023-01-15 20:02:50 +01:00
9a5e2899e8
Support for external_url and image_url on entities 2023-01-15 20:01:47 +01:00
2cc5e3f726
UI tweaks 2023-01-15 15:46:25 +01:00
9e4fbc6a21
Defined the collapsed data property on EntityMixin level 2023-01-15 15:29:26 +01:00
78e250186b
Deallocate the color converter when the light component is unmounted 2023-01-15 15:25:04 +01:00
e9371ac5d0
Improved entity collapse logic
- Toggle collapsed state also if clicked on the gap between the entity
  name and the right edge, instead of opening the entity modal. The
  entity configuration modal should open only when clicking on the
  entity name or icon (and these should be highlighted on hover as links
  as well).

- The collapsed state update should be propagated to the wrapped
  component as well, if applicable.
2023-01-15 15:03:53 +01:00
dbf5ed3b85
s/expanded/collapsed/g (for naming consistency) 2023-01-15 14:26:44 +01:00
bb483fd1b1
Using a nice gradient for hover-bg 2023-01-15 12:34:18 +01:00
cda03887d4
Updated dist files 2023-01-15 12:34:02 +01:00
afd9a1d6bf
Don't load entities that only have non-queriable children 2023-01-14 22:33:53 +01:00
2778357a9e
Wrapped dynamic Vue components in shallowRef.
The performance of the page is heavily degraded by components loaded
dynamically via defineAsyncComponent that recursively carry behind the
whole Vue machinery.

By wrapping defineAsyncComponent calls in shallowRef we make sure that
we only wire the root level of the newly created dynamic component.
2023-01-14 22:31:48 +01:00
fd2d83c80b
Renamed Notification mixin's warn and error methods.
Renamed to `notifyWarning` and `notifyError` respectively.

Those names can often clash with other properties defined on components
that extend the mixin (like entities).
2023-01-14 22:27:43 +01:00
aa22507f50
DropdownItem.className should not be enforced to be a string.
It can also be a class -> boolean object.
2023-01-14 22:11:05 +01:00
22a566a88b
More refactors and fixes for zigbee.mqtt 2023-01-13 02:58:47 +01:00
27b23b7fae
Normalize array/dict options for values on EnumSwitch 2023-01-09 01:01:35 +01:00
32330ca7a8
Merge branch 'master' into 29-generic-entities-support 2023-01-08 23:26:08 +01:00
dependabot[bot]
a0e45c38a5
Bump minimatch from 3.0.4 to 3.1.2 in /platypush/backend/http/webapp
Bumps [minimatch](https://github.com/isaacs/minimatch) from 3.0.4 to 3.1.2.
- [Release notes](https://github.com/isaacs/minimatch/releases)
- [Commits](https://github.com/isaacs/minimatch/compare/v3.0.4...v3.1.2)

---
updated-dependencies:
- dependency-name: minimatch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-08 22:24:41 +00:00
dependabot[bot]
379c822588
Bump json5 from 1.0.1 to 1.0.2 in /platypush/backend/http/webapp
Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v1.0.1...v1.0.2)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-08 22:22:52 +00:00
dependabot[bot]
47c3a24def
Bump loader-utils from 1.4.0 to 1.4.2 in /platypush/backend/http/webapp
Bumps [loader-utils](https://github.com/webpack/loader-utils) from 1.4.0 to 1.4.2.
- [Release notes](https://github.com/webpack/loader-utils/releases)
- [Changelog](https://github.com/webpack/loader-utils/blob/v1.4.2/CHANGELOG.md)
- [Commits](https://github.com/webpack/loader-utils/compare/v1.4.0...v1.4.2)

---
updated-dependencies:
- dependency-name: loader-utils
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-08 15:53:12 +00:00
c215c693f5
Only pass children that aren't configuration values to the entities 2023-01-03 23:25:43 +01:00
7868d6fe37
Support for nested configuration objects on entity modals 2023-01-03 23:16:14 +01:00
13eb515f87
Select current display value by default on EnumSwitch 2023-01-03 23:14:57 +01:00
81fee3ea2a
Style tweaks 2023-01-03 23:11:39 +01:00
71ed545cc7
Fancier gradient background for the navigator header 2023-01-02 23:28:53 +01:00
b0671354ea
(Tentative) support for zwave light colors 2023-01-02 12:50:01 +01:00
4f75cbc8b4
Updated frontend dist files 2023-01-01 23:23:18 +01:00
80c2c77272
Support for entities with children on the frontend 2023-01-01 23:06:40 +01:00
dd3c4b10c7
Run register_service in a separate thread in backend.http.
The Zeroconf registration part may randomly get stuck, resulting in the
web server not being properly started.

It's therefore better to run the Zeroconf registration process
asynchronously, for it's not strictly required for the web server to
execute.
2023-01-01 13:19:11 +01:00
edddc90d73
Run register_service in a separate thread in backend.http.
The Zeroconf registration part may randomly get stuck, resulting in the
web server not being properly started.

It's therefore better to run the Zeroconf registration process
asynchronously, for it's not strictly required for the web server to
execute.
2023-01-01 13:16:46 +01:00
6a2a3100f8
LINT fixes for zwave.mqtt backend 2022-12-10 16:16:23 +01:00
5a47308516
Merge branch 'master' into 29-generic-entities-support 2022-12-10 15:57:28 +01:00
6713bf6994
Fixed backend.zwave event logic dispatch for recent versions of ZWaveJS.
ZWaveJS has broken back-compatibility with zwavejs2mqtt when it comes to
events format.

Only a partial representation of the node and value objects is
forwarded, and that's often not sufficient to infer the full state of
the node with its values.

The `_dispatch_event` logic has therefore been modified to accommodate
both the implementation.

This means that we have to go conservative in order to preserve
back-compatibility and not over-complicate things, even if it (slightly)
comes at the expense of performance.
2022-12-10 15:35:09 +01:00
313105f014
Fixed backend.zwave event logic dispatch for recent versions of ZWaveJS.
ZWaveJS has broken back-compatibility with zwavejs2mqtt when it comes to
events format.

Only a partial representation of the node and value objects is
forwarded, and that's often not sufficient to infer the full state of
the node with its values.

The `_dispatch_event` logic has therefore been modified to accommodate
both the implementation.

This means that we have to go conservative in order to preserve
back-compatibility and not over-complicate things, even if it (slightly)
comes at the expense of performance.
2022-12-10 14:52:10 +01:00
ecba72935f
Check for table metadata existance in Base.metadata instead of having a separate entity registry 2022-12-04 16:28:46 +01:00
09d70e2ff1
The zwavejs2mqtt project has been renamed zwave-js-ui
Change the documentation accordingly
2022-11-30 02:04:48 +01:00
78c59f437a
Added support for illuminance sensor entities 2022-11-27 22:38:58 +01:00
03d1c554ea
Updated webapp dist files 2022-11-27 14:23:30 +01:00
b1a7a7d915
Fixed little overlap between the entities' header and the navigator 2022-11-27 12:56:39 +01:00
b5653e070e
Style improvements for the main navigator 2022-11-27 12:56:17 +01:00
681f307d04
A more self-explanatory icon for entity grouping selections 2022-11-27 00:56:47 +01:00
bba582875a
The data attribute on EntityUpdateEvent shouldn't be taken into account for flashing updates 2022-11-27 00:56:23 +01:00
e8d6717fcb
Added input box for <Dimmer> entities 2022-11-27 00:56:01 +01:00
bd59a5eefd
Support for range labels on <Slider> 2022-11-27 00:55:19 +01:00
f8aaab20f5
Updated webapp dist files 2022-11-27 00:53:58 +01:00
faa8295469
White background for main nav 2022-11-26 01:52:42 +01:00
d29723ea41
Keep the main menu items vertically aligned to the center also on tablets 2022-11-26 01:28:20 +01:00
d0c8a8edf9
A bit of padding for LightHue on mobile 2022-11-26 01:19:52 +01:00
37254cad1a
Mobile UI improvements 2022-11-26 01:16:07 +01:00
f28f08dd1a
Keep the main menu open on page load by default on >= desktop 2022-11-26 01:15:03 +01:00
fecd96f64c
Solved issue with main menu shrinking a bit when the main panel has too much wide content 2022-11-26 00:32:11 +01:00
33cc055249
Switched expanded main menu to light colors 2022-11-26 00:31:36 +01:00
a57e67b96f
Better style for the settings' users and token panels 2022-11-25 23:16:16 +01:00
21c1c96f2e
Use Dropdown for the settings menu 2022-11-25 23:15:41 +01:00
292ed2abff
Better style for dropdown items.
- Larger icon div to prevent text overlapping with icons
- Support for `selected` class
2022-11-25 23:14:28 +01:00
c0dd91838b
Merge branch 'master' into 29-generic-entities-support 2022-11-21 22:13:47 +01:00
98d7c95aa7 Removed two unrequired return statements 2022-11-21 13:04:48 +01:00
e579fb3417
Don't display sensors with null value 2022-11-21 00:05:19 +01:00
b9e6614b04
Added support for EnumSensor entities 2022-11-21 00:04:07 +01:00
96ce4729f9
Updated webapp dist files 2022-11-14 00:46:40 +01:00
b7757d17cc
Updated webapp dist files 2022-11-14 00:06:41 +01:00
7fac5392b8
Blink entities only if their values have actually changed 2022-11-13 23:52:21 +01:00
833d908a32
Blink entities body upon update 2022-11-13 01:39:40 +01:00
f90d84a3d4
Don't wait for UI updates for entities that are not queriable 2022-11-13 00:54:37 +01:00
fb594cb8b1
Updated webapp dist files 2022-11-12 16:31:35 +01:00
8450129858
LINT fixes 2022-11-12 11:39:12 +01:00
8a894d0989
user_manager should be a global object instead of being initialized on-demand 2022-11-12 11:38:40 +01:00
00a43dd1f8
Implemented EnumSwitch entity type
Done for `zigbee.mqtt`, other plugins will follow
2022-11-11 01:46:38 +01:00
801ed05684
Added support for binary sensors (in zigbee.mqtt for now) 2022-11-05 01:47:50 +01:00
6454f9d018
Propert snake case -> camel case conversion for backend entities -> frontend components 2022-11-04 22:53:24 +01:00
7db84acd34
Notify of entity scan timeouts on the console instead of creating tons of notifications 2022-11-02 22:24:06 +01:00
02abef71e3
Fixes for zigbee devices polling
- Don't publish a `get` request if the device has no exposed queriable
  attributes.

- Perform the recursive build of the `get` request payload before
  checking for the `access` attribute.
2022-11-02 21:54:47 +01:00
64513be6b8
Initial implementation of sensor entities.
Implemented (at least in `zigbee.mqtt`, for now):

- `TemperatureSensor`
- `HumiditySensor`
- `VoltageSensor`
- `CurrentSensor`
- `EnergySensor`
- `PowerSensor`
- `NumericSensor` (generic fallback 1)
- `RawSensor` (generic fallback 2)
- `Sensor` (root class)
2022-11-02 16:38:17 +01:00
440cd60d6e
A (slightly) smarter way to infer the plural spelling of singular entity names 2022-11-02 16:35:20 +01:00
3d1a08f7af
Changed default entity grouping on the frontend.
Changed from `type` to `category`, which is basically the `name_plural`
attribute of the associated entity type metadata.

This allows us to define distinct entity metadata entries that we still
want to share the same grouping - for instance, `temperature_sensor`,
`humidity_sensor` and `battery` should all be grouped under `Sensors` on
the frontend.
2022-11-02 16:33:12 +01:00
68dd09e8ae
Removed unused expanded data attribute 2022-11-02 16:31:50 +01:00
a1cf671334
Added support for link_quality entities to zigbee.mqtt 2022-10-30 11:03:22 +01:00
78dc8416fb
Snake case -> camel case for backend -> frontend entity types conversion 2022-10-30 11:01:46 +01:00