🏡 Open source home automation that puts local control and privacy first.
Find a file
J. Nick Koston 096e7cceed
Support XML conversion for RESTful sensors (#31809)
* Support XML conversion for RESTful sensors

Many devices continue to use XML for RESTful
APIs.  Interfacing with these APIs requires custom
integrations or command line fork()/exec() overhead
which many of these devices can work with as if
they were JSON using xmltojson via this spec:
https://www.xml.com/pub/a/2006/05/31/converting-between-xml-and-json.html

This change implements converting XML output to
JSON via xmltojson so it can work with the existing
rest sensor component.  As the attributes that
usually need to be scraped are deeper in the document
support for passing in a template to find the
JSON attributes that have been added.  JSON APIs that
do not have their attributes at the top level
can also benefit from this change.

* Auto convert xml, change out the template for jsonpath

* Address review items and potentially unexpected normalize behavior with jsonpath

* Revert "Address review items and potentially unexpected normalize behavior with jsonpath"

This reverts commit fe9e179092.

* json_dict[0] turned out to be needed
2020-02-15 21:10:23 -08:00
.devcontainer Fixes invalid JSON syntax in devcontainer (#29911) 2019-12-13 12:41:56 +01:00
.github Cleanup of PR and issue templates (#31070) 2020-01-23 11:55:29 +01:00
.vscode Always run flake8 through pre-commit, and with doctests (#28490) 2019-11-06 21:38:00 +02:00
docs Update featured integrations screenshot in README (#30134) 2020-01-07 14:30:52 +01:00
homeassistant Support XML conversion for RESTful sensors (#31809) 2020-02-15 21:10:23 -08:00
script Limit translations_develop to an integration (#31804) 2020-02-14 09:26:50 -08:00
tests Support XML conversion for RESTful sensors (#31809) 2020-02-15 21:10:23 -08:00
.coveragerc Add initial version of Vilfo Router integration (#31177) 2020-02-12 19:11:15 +01:00
.dockerignore Docker cleanup. (#8226) 2017-06-30 08:07:33 -07:00
.gitattributes Fix line endings [skipci] (#12333) 2018-02-11 23:07:28 -08:00
.gitignore Move imports in wake_on_lan component (#28100) 2019-10-22 23:14:52 -07:00
.ignore Include .ignore file for search utilities (#5290) 2017-01-16 22:52:53 -08:00
.pre-commit-config.yaml Run mypy through a pyenv/virtualenv enabler wrapper script (#30922) 2020-02-01 07:12:46 -08:00
.readthedocs.yml Drop Python 3.6 support (#29978) 2019-12-16 07:29:19 +01:00
.travis.yml Drop Python 3.6 support (#29978) 2019-12-16 07:29:19 +01:00
azure-pipelines-ci.yml Run mypy through a pyenv/virtualenv enabler wrapper script (#30922) 2020-02-01 07:12:46 -08:00
azure-pipelines-release.yml Fix typos found by codespell (#31243) 2020-01-31 08:33:00 -08:00
azure-pipelines-translation.yml Update azure-pipelines-translation.yml for Azure Pipelines 2019-09-05 12:09:21 +02:00
azure-pipelines-wheels.yml Add gammu to wheels (#31239) 2020-01-28 09:41:50 +01:00
CLA.md Update LICENSE.md and CLA.md to reflect the new Apache 2.0 license 2017-01-28 12:12:34 -08:00
CODE_OF_CONDUCT.md Add organization docs 2017-01-22 16:21:20 -08:00
codecov.yml Update codecov.yml 2020-02-15 13:06:08 -08:00
CODEOWNERS Add rainforest_eagle support for legacy hardware (#28082) 2020-02-15 21:10:04 -08:00
CONTRIBUTING.md Contributing: Add note about feature suggestions and bug tracking (#30225) 2019-12-30 17:54:16 +01:00
Dockerfile.dev Fix dev dockerfile 2019-11-05 21:38:30 +01:00
LICENSE.md Update license to official GitHub template (#16470) 2018-09-07 10:11:51 +02:00
MANIFEST.in Consolidate frontend (#9915) 2017-10-24 19:36:27 -07:00
pylintrc Make pylint fail on informational messages too (#31136) 2020-01-24 23:27:15 +02:00
pyproject.toml Drop Python 3.6 support (#29978) 2019-12-16 07:29:19 +01:00
README.rst Adjusts repository README (#29805) 2019-12-10 09:22:37 +01:00
requirements_all.txt Support XML conversion for RESTful sensors (#31809) 2020-02-15 21:10:23 -08:00
requirements_docs.txt Upgrade Sphinx to 2.3.1 (#30310) 2019-12-31 15:32:26 +01:00
requirements_test.txt Bump pytest to 5.3.5 (#31327) 2020-01-31 00:04:59 +01:00
requirements_test_all.txt Support XML conversion for RESTful sensors (#31809) 2020-02-15 21:10:23 -08:00
requirements_test_pre_commit.txt Updated frontend to 20200130.1 (#31460) 2020-02-04 09:29:21 -08:00
setup.cfg Drop Python 3.6 support (#29978) 2019-12-16 07:29:19 +01:00
setup.py Upgrade importlib-metadata to 1.5.0 (#31390) 2020-02-02 00:33:17 +01:00
tox.ini Run mypy through a pyenv/virtualenv enabler wrapper script (#30922) 2020-02-01 07:12:46 -08:00

Home Assistant |Chat Status|
=================================================================================

Open source home automation that puts local control and privacy first. Powered by a worldwide community of tinkerers and DIY enthusiasts. Perfect to run on a Raspberry Pi or a local server.

Check out `home-assistant.io <https://home-assistant.io>`__ for `a
demo <https://home-assistant.io/demo/>`__, `installation instructions <https://home-assistant.io/getting-started/>`__,
`tutorials <https://home-assistant.io/getting-started/automation-2/>`__ and `documentation <https://home-assistant.io/docs/>`__.

|screenshot-states|

Featured integrations
---------------------

|screenshot-components|

The system is built using a modular approach so support for other devices or actions can be implemented easily. See also the `section on architecture <https://developers.home-assistant.io/docs/en/architecture_index.html>`__ and the `section on creating your own
components <https://developers.home-assistant.io/docs/en/creating_component_index.html>`__.

If you run into issues while using Home Assistant or during development
of a component, check the `Home Assistant help section <https://home-assistant.io/help/>`__ of our website for further help and information.

.. |Chat Status| image:: https://img.shields.io/discord/330944238910963714.svg
   :target: https://discord.gg/c5DvZ4e
.. |screenshot-states| image:: https://raw.github.com/home-assistant/home-assistant/master/docs/screenshots.png
   :target: https://home-assistant.io/demo/
.. |screenshot-components| image:: https://raw.github.com/home-assistant/home-assistant/dev/docs/screenshot-components.png
   :target: https://home-assistant.io/integrations/