Commit graph

1296 commits

Author SHA1 Message Date
Fabio Manganiello 37722d12cd
No need for session.begin in db.create_all. 2023-04-24 23:55:50 +02:00
Fabio Manganiello 6fa179e769
LINT fixes 2023-04-24 23:49:31 +02:00
Fabio Manganiello 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
Fabio Manganiello 87889142e0
Fixed compatibility with SQLAlchemy >= 2.0 in the db plugin. 2023-04-24 22:52:17 +02:00
Fabio Manganiello dc3392c11d
Disk I/O stats are not always available and should therefore be optional. 2023-04-23 22:25:24 +02:00
Fabio Manganiello 0cd28f1040
libbluetooth-dev is a required dependency to build pybluez on Debian-derived distros 2023-04-23 18:59:37 +02:00
Fabio Manganiello 9c1855e4c0
Fixed docstring for zigbee.mqtt plugin. 2023-04-23 13:03:10 +02:00
Fabio Manganiello 27b1048789
Converted system.processes to the new data model. 2023-04-23 02:08:43 +02:00
Fabio Manganiello 387616ea96
Convert system.connected_users to the new data model. 2023-04-23 01:12:07 +02:00
Fabio Manganiello 763d9e06ec
Increased default poll_interval for system plugin to 60 seconds. 2023-04-23 00:42:44 +02:00
Fabio Manganiello a72c32cb00
Added battery entity support to system plugin. 2023-04-23 00:41:21 +02:00
Fabio Manganiello b3440ab96b
Added support for fan sensors on the system plugin. 2023-04-23 00:08:27 +02:00
Fabio Manganiello 45d5f439be
Added support for system temperature sensor entities. 2023-04-22 22:42:11 +02:00
Fabio Manganiello 1b048e1952
s/net_connections/network_connections/g 2023-04-22 17:19:24 +02:00
Fabio Manganiello 374f936c1f
Merged network_stats into NetworkInterface model. 2023-04-22 17:19:24 +02:00
Fabio Manganiello e213941791
s/net_io_counters/network_info/g 2023-04-22 17:19:23 +02:00
Fabio Manganiello 977b55dea9
Merged network addresses into NetworkInterface model. 2023-04-22 17:19:23 +02:00
Fabio Manganiello ebe79ac29a
Refactored system schema dataclasses.
- `percent_field` should be declared on `platypush.schemas.dataclasses`
  level, since it's not specific to the `system` plugin.
- Added a common `SystemBaseSchema` that takes care of calling
  `_asdict()` if the object is passed as a `psutil` object instead of a
  dict.
2023-04-22 17:19:23 +02:00
Fabio Manganiello 2d618188c8
Print the full exception stack trace if .status fails. 2023-04-22 17:19:23 +02:00
Fabio Manganiello b3a0896485
Converted NetworkConnection schema/response. 2023-04-22 17:19:22 +02:00
Fabio Manganiello 98a300c4b1
Added NetworkInterface entities to system plugin.
Plus, `platypush.schemas.system` has now been split into multiple
submodules to avoid a single-file mega-module with all the system
schemas definitions.
2023-04-21 00:45:15 +02:00
Fabio Manganiello 44b8fd4b34
Support for disk entities in the system integration. 2023-04-20 16:26:51 +02:00
Fabio Manganiello 153d03d43f
Moved CPU percentage on the level of the CPU entity instead of a child entity. 2023-04-19 01:48:05 +02:00
Fabio Manganiello 4ebfbf3851
Added memory stats entities. 2023-04-19 01:31:11 +02:00
Fabio Manganiello 0073239a40
Support for CPU load_average entity. 2023-04-18 18:26:02 +02:00
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 b4fbd3e915
Added percent entity to cpu. 2023-04-17 02:25:04 +02:00
Fabio Manganiello b9286f50b0
Added support for CpuTimes as an entity of the system plugin.
Also, there is now a single `Cpu` entity being exported, with a nested
hierarchy structured like:

```
cpu
  -> cpu_info
  -> cpu_times
    -> idle
    -> user
    -> system
    -> ...
  -> cpu_load
    -> ...
```
2023-04-17 02:25:03 +02:00
Fabio Manganiello b43017ef01
Refactoring the system plugin to support entities. 2023-04-17 02:25:02 +02:00
Fabio Manganiello 74aeca5c34
Trigger a sensor event only if abs(old_data - new_data) > tolerance
Not if abs(old_data - new_data) >= tolerance, otherwise events will
always be triggered when tolerance=0, even if the data hasn't changed.
2023-04-17 02:25:01 +02:00
Fabio Manganiello a499b7bc2f
Deprecated poll_seconds in light.hue.
For sake of naming consistency with other plugins, we should use
`poll_interval` instead.
2023-04-03 01:36:12 +02:00
Fabio Manganiello 10955dad72
Fixed some documentation glitches in switchbot. 2023-04-03 01:36:12 +02:00
Fabio Manganiello 6e5f746dbe
Removed deprecated gpio.sensor base plugin.
Now all the plugins that used to implement it have been moved to
`SensorPlugin`.
2023-04-03 01:36:12 +02:00
Fabio Manganiello 8852cb8db4
Fixed new class name for sensor.mcp3008 plugin. 2023-04-03 01:36:12 +02:00
Fabio Manganiello d5ddc0c65e
Migrated arduino integration to the new SensorPlugin API. 2023-04-03 01:36:12 +02:00
Fabio Manganiello ac2ec58f89
Migrated mcp3008 integration to the new SensorPlugin API. 2023-04-03 01:36:11 +02:00
Fabio Manganiello 45e5ca47e7 Fallback for sensor._has_changes 2023-04-02 15:38:49 +02:00
Fabio Manganiello 962c55937d
Migrated sensor.distance integration.
Remove `backend.sensor.distance` and `gpio.sensor.distance`. They are
now replaced by the `sensor.hcsr04` integration, which is compatible
with the new `SensorPlugin` API.
2023-04-02 14:20:12 +02:00
Fabio Manganiello 92578a17c9
Added small docstring portion 2023-04-02 13:55:00 +02:00
Fabio Manganiello beff88986a
Migrated dht integration.
Removed `backend.sensor.dht` and `gpio.sensor.dht`. They have been
merged into the new `sensor.dht` integration, which supports the new
`SensorPlugin` API.
2023-04-02 13:38:53 +02:00
Fabio Manganiello 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
Fabio Manganiello 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
Fabio Manganiello fcdda40c4a
Update the _last_measurement only if some events were processed from the new data. 2023-04-02 12:09:45 +02:00
Fabio Manganiello 88784985e1
Should be abs(old_data - new_data) >= tolerance.
Not `abs(old_data - new_data) > tolerance`.
2023-04-02 12:08:40 +02:00
Fabio Manganiello 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
Fabio Manganiello d964167631
s/TimeDurationSensor/TimeDuration/g 2023-04-02 00:57:48 +02:00
Fabio Manganiello f24d0773d1
No need for sensor.vl53l1x.transform_entities to call the parent. 2023-04-01 23:54:43 +02:00
Fabio Manganiello 99572f9731
Sanity check to prevent empty objects from being propagated to sensor.transform_entities 2023-04-01 23:41:28 +02:00
Fabio Manganiello 3f3726c50a
Fixed another occurrence of "Subscripted generics cannot be used" etc. error 2023-04-01 23:34:22 +02:00