Commit Graph
48 Commits
Author SHA1 Message Date
Marc Mueller 516cb31635 Fix multi inheritance with CoordinatorEntity (#85053) 2023-01-03 23:07:59 +01:00
Marc MuellerandJ. Nick Koston 972eb34ed9 Improve bluetooth generic typing (#84891)
Co-authored-by: J. Nick Koston <nick@koston.org>
2023-01-02 21:19:53 -10:00
Jonno12345 5e04a87cc6 Fix Scrape integration for date and timestamp devices (#84480)
* Scrape integration fix for date and timestamp devices

* Changes advised by PR review. Merged test source and used walrus operator
2022-12-28 10:16:14 +01:00
G Johansson a63581b5c8 Add unique id for Scrape config entry entities (#82508)
* scrape unique id

* fix uuid str

* add back UoM
2022-11-24 21:12:47 +01:00
epenet aa443842b7 Fix incorrect type hints in scrape (#82502) 2022-11-21 17:38:23 -05:00
G Johansson b3dd59f202 Add config flow to Scrape (#81193)
* Scrape take 2

* cleanup

* new entity name

* Fix name, add tests

* Use FlowResultType

* Add test abort

* hassfest

* Remove not needed test

* clean

* Remove config entry and implement datacoordinator

* fix codeowners

* fix codeowners

* codeowners reset

* Fix coordinator

* Remove test config_flow

* Fix tests

* hassfest

* reset config flow

* reset strings

* reset sensor

* Reconfig

* Fix tests

* coverage

* Remove coverage

* Remove print

* Add config flow

* Fix config flow

* Add back init

* Add entry to sensor

* float to int

* Fix SelectSelector

* Add tests for config entry to existing

* Test config flow

* Fix test reload

* Fix rebase

* Fix strings

* clean init

* Clean test_sensor

* Align sensor setup entry

* Add error to strings

* review changes

* clean tests

* Add back options flow

* review changes

* update_listener

* Add tests

* Remove duplicate abort

* strings

* sensors to sensor

* review changes

* more review changes

* clarify test payload

* fixture name
2022-11-21 21:39:39 +01:00
epenet 4cce359960 Fix legacy scrape scan interval (#81764)
* Fix legacy scrape scan interval

* Adjust init

* Adjust tests

* Clearer default
2022-11-15 13:39:30 +01:00
epenet d385a85ccb Cleanup schema validation in scrape sensor (#81419) 2022-11-02 18:46:03 +01:00
G Johansson 93d74cafdc Fix late review comments for Scrape (#81259)
* Review comments from #74325

* Remove moved test

* Fix init

* Handle no data

* Remove print

* Fix tests

* PlatformNotReady if no data

* Recover failed platform setup

* Fix broken test

* patch context

* reset test init

* Move to platform

* asyncio gather

* Remove duplicate code
2022-11-02 17:52:36 +01:00
epenet 283f8585b8 Adjust scrape coordinator logging (#81299) 2022-10-31 13:21:37 +01:00
G Johansson 662aee17a6 Scrape move yaml config to integration key (#74325)
* Scrape take 2

* cleanup

* new entity name

* Fix name, add tests

* Use FlowResultType

* Add test abort

* issue

* hassfest

* Remove not needed test

* clean

* Remove config entry and implement datacoordinator

* fix codeowners

* fix codeowners

* codeowners reset

* Fix coordinator

* Remove test config_flow

* Fix tests

* hassfest

* reset config flow

* reset strings

* reset sensor

* next version

* Reconfig

* Adjust sensor

* cleanup sensor

* cleanup init

* Fix tests

* coverage

* Guard against empty sensor

* naming

* Remove coverage

* Review comments

* Remove print

* Move sensor check
2022-10-30 13:02:11 +01:00
epenet 30fe4826ff Refactor Scrape sensor to inherit TemplateSensor (#81130) 2022-10-28 11:55:53 +02:00
epenet 663c2ef993 Cleanup scrape constants (#81076)
* Cleanup scrape constants

* Adjust comments

* Revert removal of DEFAULT_VERIFY_SSL constant
2022-10-27 18:11:40 +02:00
epenet 3d42a46871 Align Scrape resource model with Rest integration (#81074) 2022-10-27 17:48:35 +02:00
epenet ec4b8c49fe Add unique_id to scrape (#80581)
* Add unique_id to scrape

* Add tests
2022-10-24 15:14:43 +02:00
epenet 64d6d04ade Use DataUpdateCoordinator in scrape (#80593)
* Add DataUpdateCoordinator to scrape

* Fix tests
2022-10-24 14:55:57 +02:00
epenet bdfead9095 Fix invalid warning in scrape (#80599) 2022-10-19 23:02:11 +02:00
epenet dc2a87b9ae Fix invalid type hint in scrape (#80543) 2022-10-19 13:49:01 +02:00
Franck Nijhof 809f101f55 Re-introduce default scan interval in Scrape sensor (#74455) 2022-07-05 13:41:33 +02:00
J. Nick Koston 1288085b31 Revert scrape changes to 2022.6.6 (#74305) 2022-07-01 10:10:40 -07:00
Paulus Schoutsen c78c159d72 Add scan interval to scrape sensor (#74285) 2022-07-01 09:40:05 +02:00
J. Nick Koston 2723ca0b85 Filter out CONF_SCAN_INTERVAL from scrape import (#74254) 2022-06-30 10:39:36 -07:00
G Johansson dd923b2eed Minor fix scrape (#73369) 2022-06-11 12:35:15 -07:00
G Johansson 8d0dd1fe8c Config flow for scrape integration (#70476) 2022-06-03 09:24:04 -10:00
J. Nick Koston b770ca319e Improve scrape performance by using lxml parser (#71087)
* Improve scape performance by using lxml parser

* load it

* tweak

* tweak

* ensure libxml2 is installed in dev container
2022-05-01 21:04:05 -05:00
G Johansson 6d20e68e6d Code quality scrape (#65441) 2022-02-12 08:28:54 -06:00
MizterB 604a900658 Scrape HTML attributes that are not key/val pairs (#58247) 2022-01-21 11:17:48 +01:00
epenetandepenet 4c48705fe8 Add setup type hints [s] (part 1) (#63476)
Co-authored-by: epenet <epenet@users.noreply.github.com>
2022-01-05 17:34:47 +01:00
Lukas abf6edea6a Add device_class and state_class as optional attributes to the scrape sensor, to support statistics (#58164) 2021-10-26 13:39:34 +02:00
Marc Mueller be201e3ebe Use assignment expressions 27 (#58188) 2021-10-22 11:29:21 +02:00
Erik Montnemery e558b3463e Move temperature conversions to sensor base class (6/8) (#54476)
* Move temperature conversions to entity base class (6/8)

* Fix tests
2021-08-12 17:40:55 +02:00
J. Nick Koston 14869483ca Fix scrape sensor auth with httpx (#49806) 2021-04-28 11:24:11 +02:00
Erik Montnemery 64bc9a8196 Migrate integrations r-s to extend SensorEntity (#48215) 2021-03-22 19:54:14 +01:00
J. Nick KostonandPaulus Schoutsen dd0afc3b66 Create httpx helper to wrap a shared httpx.AsyncClient (#43877)
Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
2020-12-09 17:18:57 +01:00
Moritz Schmitz von Hülst 434d39a5ea Add initial rest query params (#42198)
* add initial rest query params

* of course I didn't run black

* fix tests

* fix tests

* add test

* reformat

* add binary sensor test

* fix tests

* add one more test and fix switch

* should not have touched that

* if you don't pay attention once
2020-11-11 09:03:55 -10:00
J. Nick Koston 183f94364a Parse html in the executor for scrape sensors (#41987) 2020-10-17 18:57:59 +02:00
J. Nick Koston 5580b21260 Decouple RestData from rest.sensor (#41980) 2020-10-17 04:56:45 +02:00
J. Nick Koston ad6ce5fa83 Convert rest sensors to async using httpx (#41973) 2020-10-16 19:21:13 -05:00
Ryan 59063a7d61 Add scrape sensor name to logs (#38020) 2020-07-20 23:07:36 +02:00
David Beitey 7a73c6adf7 scrape: extract strings from new non-text tags (#35021)
With the upgrade to beautifulsoup4 to 4.9.0 (#34007), certain tags
(`<style>`, `<script>` and `<template>`) are no longer treated as having
text content (see
https://www.crummy.com/software/BeautifulSoup/bs4/doc/#comments-and-other-special-strings
and reported bug https://bugs.launchpad.net/beautifulsoup/+bug/1868861)
meaning the content of these types of tags became inaccessible to HA.

Where the previous code could access `.text` on the tag, bs4 4.9 now
yields an empty string; these types of tags require accesing `.string`
instead.  This PR checks the tag name (which will aalways be lowercase
given how the parser works;
https://www.crummy.com/software/BeautifulSoup/bs4/doc/#other-parser-problems)
and applies this different access strategy to get the content of the
HTML tag.  All other tags are handled in the original manner.
2020-05-04 10:45:40 +02:00
Bas Nijholt 23b92b2a56 Sort imports according to PEP8 for components starting with "S" (#29777) 2019-12-09 14:38:01 +01:00
Fabian Affolter 396e68a4b9 Upgrade beautifulsoup4 to 4.8.1 (#27325) 2019-10-08 09:28:37 -07:00
Paulus Schoutsen 4de97abc3a Black 2019-07-31 12:25:30 -07:00
Robert Dunmire III 003ca655ee Fix errors if rest source becomes unavailable (#24986)
* Fix errors if rest source becomes unavailable

* Remove exclamation mark
2019-07-06 19:33:37 +02:00
cgtobi 2c07bfb9e0 Remove dependencies and requirements (#23024)
* Remove dependencies and requirements

* Revert "Remove dependencies and requirements"

This reverts commit fe7171b4cd30889bad5adc9a4fd60059d05ba5a7.

* Remove dependencies and requirements

* Revert "Remove dependencies and requirements"

This reverts commit 391355ee2cc53cbe6954f940062b18ae34b05621.

* Remove dependencies and requirements

* Fix flake8 complaints

* Fix more flake8 complaints

* Revert non-component removals
2019-04-12 10:13:30 -07:00
Tobias Sauerwein 048b100eea Clean up docstrings (#22679)
* Clean up docstrings

* Fix long lines

* Fix more docstrings

* Fix more docstrings

* Fix more docstrings
2019-04-03 17:40:03 +02:00
Penny Wood f195ecca4b Consolidate all platforms that have tests (#22109)
* Moved climate components with tests into platform dirs.

* Updated tests from climate component.

* Moved binary_sensor components with tests into platform dirs.

* Updated tests from binary_sensor component.

* Moved calendar components with tests into platform dirs.

* Updated tests from calendar component.

* Moved camera components with tests into platform dirs.

* Updated tests from camera component.

* Moved cover components with tests into platform dirs.

* Updated tests from cover component.

* Moved device_tracker components with tests into platform dirs.

* Updated tests from device_tracker component.

* Moved fan components with tests into platform dirs.

* Updated tests from fan component.

* Moved geo_location components with tests into platform dirs.

* Updated tests from geo_location component.

* Moved image_processing components with tests into platform dirs.

* Updated tests from image_processing component.

* Moved light components with tests into platform dirs.

* Updated tests from light component.

* Moved lock components with tests into platform dirs.

* Moved media_player components with tests into platform dirs.

* Updated tests from media_player component.

* Moved scene components with tests into platform dirs.

* Moved sensor components with tests into platform dirs.

* Updated tests from sensor component.

* Moved switch components with tests into platform dirs.

* Updated tests from sensor component.

* Moved vacuum components with tests into platform dirs.

* Updated tests from vacuum component.

* Moved weather components with tests into platform dirs.

* Fixed __init__.py files

* Fixes for stuff moved as part of this branch.

* Fix stuff needed to merge with balloob's branch.

* Formatting issues.

* Missing __init__.py files.

* Fix-ups

* Fixup

* Regenerated requirements.

* Linting errors fixed.

* Fixed more broken tests.

* Missing init files.

* Fix broken tests.

* More broken tests

* There seems to be a thread race condition.
I suspect the logger stuff is running in another thread, which means waiting until the aio loop is done is missing the log messages.
Used sleep instead because that allows the logger thread to run. I think the api_streams sensor might not be thread safe.

* Disabled tests, will remove sensor in #22147

* Updated coverage and codeowners.
2019-03-18 23:07:39 -07:00
Paulus Schoutsen f5076188ef Consolidate all platforms that have no tests (#22096)
* Consolidate

* Fix tests

* Update imports

* Fix import

* Use importlib because integration and package share name

* Fix more tests

* Update .coveragerc and CODEOWNERS
2019-03-16 20:44:05 -07:00