Commit Graph

893 Commits

Author SHA1 Message Date
Fabio Manganiello 1cee0459cf
Added `CpuFrequency` entity to `system`. 2023-04-18 01:49:36 +02:00
Fabio Manganiello a5b0a524f6
Added `CpuStats` entity to `system`. 2023-04-18 01:19:06 +02:00
Fabio Manganiello 4842c1911b
Frontend entities should have a reference to `allEntities`.
There are probably more optimal ways of achieving this other than
passing a reference to the full list of entities to each of the
entities, such as running a BFS to recursively expand all the entities
within the child hierarchy of an entity.

This is needed because the entity needs to know which entities aren't
direct children, but are two or more layers down in the hierarchy, so
they should be passed to their own child entities.
2023-04-17 02:25:03 +02:00
Fabio Manganiello e810025a6d
Added `Cpu` and `CpuTimes` entities. 2023-04-17 02:25:03 +02:00
Fabio Manganiello 65481dc6b4
Added `PercentSensor` entity type. 2023-04-17 02:25:02 +02:00
Fabio Manganiello 186a21f715
Added CpuInfo entity frontend components. 2023-04-17 02:25:01 +02:00
Fabio Manganiello d5ddc0c65e
Migrated `arduino` integration to the new `SensorPlugin` API. 2023-04-03 01:36:12 +02:00
Fabio Manganiello cf16076bce
Added icons for new entity sensor sources. 2023-04-03 01:36:11 +02:00
Fabio Manganiello a3f4b21478
Updated dist files 2023-04-02 03:24:11 +02:00
Fabio Manganiello e6e5dec088
Updated dist files 2023-04-02 02:56:09 +02:00
Fabio Manganiello 5a6f4bcf57
Added 3-axis sensor, accelerometer and magnetometer entities 2023-04-02 01:13:22 +02:00
Fabio Manganiello d964167631
`s/TimeDurationSensor/TimeDuration/g` 2023-04-02 00:57:48 +02:00
Fabio Manganiello 839c6108a0
Added `sensor.*` icon classes 2023-04-02 00:40:50 +02:00
Fabio Manganiello 429893ddbf
Updated dist files 2023-04-01 23:58:28 +02:00
Fabio Manganiello 226034946f Added `distance_sensor` entity 2023-03-31 14:22:28 +02:00
Fabio Manganiello c2f9ebf4ed
Updated dist files 2023-03-27 01:47:29 +02:00
Fabio Manganiello cf91ab90df
Increased default width of `nav` on desktop+ 2023-03-26 23:10:46 +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 a71017df33
Updated web app files 2023-03-24 16:45:55 +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
Fabio Manganiello 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
Fabio Manganiello 5dd95362a1
Include links both to the parent and children entities in EntityModal. 2023-03-22 16:20:29 +01:00
Fabio Manganiello 486f37a45e
Support sensor value reported both on `value` as well as `_value` fields. 2023-03-22 14:11:13 +01:00
Fabio Manganiello bfc87e0f7b
Display arrays and objects in the entity modal as prettified JSON. 2023-03-22 13:50:35 +01:00
Fabio Manganiello e9abb5cb9a
Implemented support for child entities in entity modals. 2023-03-21 16:02:02 +01:00
Fabio Manganiello 718e0434ba
Display all available entity attributes on EntityModal. 2023-03-20 14:32:03 +01:00
Fabio Manganiello 78bbe71be1
Another .pull-right fix. 2023-03-20 02:04:32 +01:00
Fabio Manganiello 431dedf3eb
BluetoothDevice moved to its own component, with device connect support. 2023-03-20 01:28:12 +01:00
Fabio Manganiello 0a4b22c12e
Implemented connect/disconnect call on BluetoothService component. 2023-03-20 01:27:47 +01:00
Fabio Manganiello 714f853751
Pass the list of children to the entity component. 2023-03-20 01:27:21 +01:00
Fabio Manganiello a011de890b
Better .pull-right class implementation. 2023-03-20 01:26:48 +01:00
Fabio Manganiello 2b5596820b
Made Types.objectsEqual method more robust against null input 2023-03-19 22:50:23 +01:00
Fabio Manganiello 71a3481560
Better style for the sidebar/nav 2023-03-19 22:23:37 +01:00
Fabio Manganiello aa04741daa
Added BluetoothService UI component 2023-03-19 12:53:23 +01:00
Fabio Manganiello f74fab795d
Added `parent` component value to `Entity`. 2023-03-19 12:50:45 +01:00
Fabio Manganiello 2dfb389630
Added remaining `bluetooth` entity types in `_mappers.py`. 2023-02-23 21:20:41 +01:00
Fabio Manganiello a0556d3a42
Added `PresenceSensor` entities. 2023-02-23 01:42:26 +01:00
Fabio Manganiello 56d693032a
Added `DewPointSensor` entities. 2023-02-23 01:23:04 +01:00
Fabio Manganiello d212276247
Added `PressureSensor` entities. 2023-02-23 01:12:27 +01:00
Fabio Manganiello d961e2a997
Added `TimeDurationSensor` entity. 2023-02-23 01:02:13 +01:00
Fabio Manganiello c3e16f9f9d
Added support for heart rate sensor entities. 2023-02-23 00:55:55 +01:00
Fabio Manganiello e1b3d52706
Added `StepsSensor` entity. 2023-02-23 00:45:58 +01:00
Fabio Manganiello bbc9647cb0
s/MultiValueSensor/CompositeSensor/g 2023-02-21 23:14:10 +01:00
Fabio Manganiello 68e6b271c1
Updated dist files 2023-02-19 22:58:20 +01:00
Fabio Manganiello cb9b01c89f
Added raw_sensor metadata 2023-02-19 22:57:50 +01:00
Fabio Manganiello 471bc1fd3d
Updated dist files 2023-02-13 23:13:32 +01:00
Fabio Manganiello 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
Fabio Manganiello 4365352331
[WIP] s/set_value/set/g for entities 2023-02-11 03:57:23 +01:00
Fabio Manganiello 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
Fabio Manganiello 64e9bf17cf
Updated dist files 2023-02-05 14:53:36 +01:00
Fabio Manganiello 65827aa0cd
Updated dist files 2023-02-04 17:36:46 +01:00
Fabio Manganiello db5846d296
Add the unit to the `Dimmer` display value if it's available 2023-02-04 17:28:54 +01:00
Fabio Manganiello b6814b4f16
Removed legacy Switches integration [frontend] 2023-02-03 22:49:09 +01:00
Fabio Manganiello 63d6920716
Updated dist files 2023-02-02 18:07:44 +01:00
Fabio Manganiello afdeb91f66
Implemented remaining supported entities for the `smartthings` integration 2023-01-26 22:10:02 +01:00
Fabio Manganiello fd76642082
Added `Volume` and `Muted` entities 2023-01-22 21:04:46 +01:00
Fabio Manganiello dabbe031ab
Don't show the entity modal unless the user clicks on the name or icon 2023-01-21 23:46:38 +01:00
Fabio Manganiello 3940288396
Use the new bus notification helpers 2023-01-21 16:59:18 +01:00
Fabio Manganiello 241670c9d0
Handle parent/child update events through broadcast bus events 2023-01-21 16:58:28 +01:00
Fabio Manganiello 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
Fabio Manganiello fb562bb415
Propagate the @update event to the parent entities 2023-01-21 14:55:06 +01:00
Fabio Manganiello dfb13127ee
Added MotionSensor entities 2023-01-21 14:47:18 +01:00
Fabio Manganiello 22b8b03cb2
Refactored EntityIcon component 2023-01-15 20:02:50 +01:00
Fabio Manganiello 9a5e2899e8
Support for external_url and image_url on entities 2023-01-15 20:01:47 +01:00
Fabio Manganiello 2cc5e3f726
UI tweaks 2023-01-15 15:46:25 +01:00
Fabio Manganiello 9e4fbc6a21
Defined the collapsed data property on EntityMixin level 2023-01-15 15:29:26 +01:00
Fabio Manganiello 78e250186b
Deallocate the color converter when the light component is unmounted 2023-01-15 15:25:04 +01:00
Fabio Manganiello 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
Fabio Manganiello dbf5ed3b85
s/expanded/collapsed/g (for naming consistency) 2023-01-15 14:26:44 +01:00
Fabio Manganiello bb483fd1b1
Using a nice gradient for hover-bg 2023-01-15 12:34:18 +01:00
Fabio Manganiello cda03887d4
Updated dist files 2023-01-15 12:34:02 +01:00
Fabio Manganiello afd9a1d6bf
Don't load entities that only have non-queriable children 2023-01-14 22:33:53 +01:00
Fabio Manganiello 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
Fabio Manganiello 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
Fabio Manganiello 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
Fabio Manganiello 22a566a88b
More refactors and fixes for `zigbee.mqtt` 2023-01-13 02:58:47 +01:00
Fabio Manganiello 27b23b7fae
Normalize array/dict options for values on EnumSwitch 2023-01-09 01:01:35 +01:00
Fabio Manganiello 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
Fabio Manganiello c215c693f5
Only pass children that aren't configuration values to the entities 2023-01-03 23:25:43 +01:00
Fabio Manganiello 7868d6fe37
Support for nested configuration objects on entity modals 2023-01-03 23:16:14 +01:00
Fabio Manganiello 13eb515f87
Select current display value by default on EnumSwitch 2023-01-03 23:14:57 +01:00
Fabio Manganiello 81fee3ea2a
Style tweaks 2023-01-03 23:11:39 +01:00
Fabio Manganiello 71ed545cc7
Fancier gradient background for the navigator header 2023-01-02 23:28:53 +01:00
Fabio Manganiello b0671354ea
(Tentative) support for zwave light colors 2023-01-02 12:50:01 +01:00
Fabio Manganiello 4f75cbc8b4
Updated frontend dist files 2023-01-01 23:23:18 +01:00
Fabio Manganiello 80c2c77272
Support for entities with children on the frontend 2023-01-01 23:06:40 +01:00
Fabio Manganiello 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
Fabio Manganiello 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
Fabio Manganiello ecba72935f
Check for table metadata existance in `Base.metadata` instead of having a separate entity registry 2022-12-04 16:28:46 +01:00
Fabio Manganiello 78c59f437a
Added support for illuminance sensor entities 2022-11-27 22:38:58 +01:00
Fabio Manganiello 03d1c554ea
Updated webapp dist files 2022-11-27 14:23:30 +01:00
Fabio Manganiello b1a7a7d915
Fixed little overlap between the entities' header and the navigator 2022-11-27 12:56:39 +01:00
Fabio Manganiello b5653e070e
Style improvements for the main navigator 2022-11-27 12:56:17 +01:00
Fabio Manganiello 681f307d04
A more self-explanatory icon for entity grouping selections 2022-11-27 00:56:47 +01:00
Fabio Manganiello bba582875a
The `data` attribute on `EntityUpdateEvent` shouldn't be taken into account for flashing updates 2022-11-27 00:56:23 +01:00
Fabio Manganiello e8d6717fcb
Added input box for <Dimmer> entities 2022-11-27 00:56:01 +01:00
Fabio Manganiello bd59a5eefd
Support for range labels on <Slider> 2022-11-27 00:55:19 +01:00
Fabio Manganiello f8aaab20f5
Updated webapp dist files 2022-11-27 00:53:58 +01:00
Fabio Manganiello faa8295469
White background for main nav 2022-11-26 01:52:42 +01:00
Fabio Manganiello d29723ea41
Keep the main menu items vertically aligned to the center also on tablets 2022-11-26 01:28:20 +01:00
Fabio Manganiello d0c8a8edf9
A bit of padding for LightHue on mobile 2022-11-26 01:19:52 +01:00
Fabio Manganiello 37254cad1a
Mobile UI improvements 2022-11-26 01:16:07 +01:00
Fabio Manganiello f28f08dd1a
Keep the main menu open on page load by default on >= desktop 2022-11-26 01:15:03 +01:00
Fabio Manganiello 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
Fabio Manganiello 33cc055249
Switched expanded main menu to light colors 2022-11-26 00:31:36 +01:00
Fabio Manganiello a57e67b96f
Better style for the settings' users and token panels 2022-11-25 23:16:16 +01:00
Fabio Manganiello 21c1c96f2e
Use Dropdown for the settings menu 2022-11-25 23:15:41 +01:00
Fabio Manganiello 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
Fabio Manganiello c0dd91838b
Merge branch 'master' into 29-generic-entities-support 2022-11-21 22:13:47 +01:00
Fabio Manganiello 98d7c95aa7 Removed two unrequired `return` statements 2022-11-21 13:04:48 +01:00
Fabio Manganiello e579fb3417
Don't display sensors with null value 2022-11-21 00:05:19 +01:00
Fabio Manganiello b9e6614b04
Added support for `EnumSensor` entities 2022-11-21 00:04:07 +01:00
Fabio Manganiello 96ce4729f9
Updated webapp dist files 2022-11-14 00:46:40 +01:00
Fabio Manganiello b7757d17cc
Updated webapp dist files 2022-11-14 00:06:41 +01:00
Fabio Manganiello 7fac5392b8
Blink entities only if their values have actually changed 2022-11-13 23:52:21 +01:00
Fabio Manganiello 833d908a32
Blink entities body upon update 2022-11-13 01:39:40 +01:00
Fabio Manganiello f90d84a3d4
Don't wait for UI updates for entities that are not queriable 2022-11-13 00:54:37 +01:00
Fabio Manganiello fb594cb8b1
Updated webapp dist files 2022-11-12 16:31:35 +01:00
Fabio Manganiello 8450129858
LINT fixes 2022-11-12 11:39:12 +01:00
Fabio Manganiello 8a894d0989
`user_manager` should be a global object instead of being initialized on-demand 2022-11-12 11:38:40 +01:00
Fabio Manganiello 00a43dd1f8
Implemented `EnumSwitch` entity type
Done for `zigbee.mqtt`, other plugins will follow
2022-11-11 01:46:38 +01:00
Fabio Manganiello 801ed05684
Added support for binary sensors (in zigbee.mqtt for now) 2022-11-05 01:47:50 +01:00
Fabio Manganiello 6454f9d018
Propert snake case -> camel case conversion for backend entities -> frontend components 2022-11-04 22:53:24 +01:00
Fabio Manganiello 7db84acd34
Notify of entity scan timeouts on the console instead of creating tons of notifications 2022-11-02 22:24:06 +01:00
Fabio Manganiello 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
Fabio Manganiello 440cd60d6e
A (slightly) smarter way to infer the plural spelling of singular entity names 2022-11-02 16:35:20 +01:00
Fabio Manganiello 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
Fabio Manganiello 68dd09e8ae
Removed unused `expanded` data attribute 2022-11-02 16:31:50 +01:00
Fabio Manganiello a1cf671334
Added support for link_quality entities to `zigbee.mqtt` 2022-10-30 11:03:22 +01:00
Fabio Manganiello 78dc8416fb
Snake case -> camel case for backend -> frontend entity types conversion 2022-10-30 11:01:46 +01:00
Fabio Manganiello d61b053f72
Support for battery entities 2022-10-29 13:38:42 +02:00
Fabio Manganiello 951950c864
Added dimmer entities 2022-10-23 00:30:32 +02:00
Fabio Manganiello 3e6ebdd23b
Don't store/show the state of write-only toggle switches 2022-10-23 00:28:01 +02:00
Fabio Manganiello 8cd5cb3338
The Slider should only react to @input events 2022-10-23 00:26:59 +02:00
Fabio Manganiello 5c68365188
Better management for entity error icons 2022-10-14 23:37:36 +02:00
Fabio Manganiello 7f575bacaa
Implemented the new zwavejs2mqtt features for adding and removing nodes 2022-10-14 23:28:02 +02:00
Fabio Manganiello c89ed24f4b
Updated webapp dist files 2022-10-12 03:07:17 +02:00
Fabio Manganiello 1b791156bd
Proper support for color zigbee lights 2022-10-12 03:00:42 +02:00
Fabio Manganiello e617fc75d4
Fixed slider ranges and label 2022-10-12 02:59:50 +02:00
Fabio Manganiello aa5b52db2f
FIX: Still redirect to /register by default if no users have been created 2022-10-10 01:36:28 +02:00
Fabio Manganiello 6ec8a991df
Fixed tests 2022-10-08 15:18:26 +02:00
Fabio Manganiello 958ef6b987
Better entity modal padding 2022-10-07 11:12:30 +02:00
Fabio Manganiello 16c55b45f6
updated dist files 2022-10-07 11:12:13 +02:00
Fabio Manganiello b9b7404230
Web panel improvements.
- Don't return a redirect to the login page if an authentication failed
  over a JSON endpoint - instead, return a JSON payload with the error.

- Added support for additional fonts.

- Re-designed the login/registration page.

- Updated caniuse database.
2022-10-07 02:24:29 +02:00
Fabio Manganiello c0ffea681f
updated dist files 2022-10-07 02:23:12 +02:00