From 6c6fc08304abd450f1ce11cb940a59fc20b22e08 Mon Sep 17 00:00:00 2001 From: "Community Hass.io Add-ons Bot" Date: Wed, 26 Sep 2018 08:11:47 +0000 Subject: [PATCH] :arrow_up: Updating add-on Lutron Certificate to 2364352 --- README.md | 23 ++++++++++++ lutron-cert/CHANGELOG.md | 3 ++ lutron-cert/README.md | 74 +++++++++++++++++++++++++++++++++++++++ lutron-cert/config.json | 36 +++++++++++++++++++ lutron-cert/icon.png | Bin 0 -> 2219 bytes lutron-cert/logo.png | Bin 0 -> 8042 bytes 6 files changed, 136 insertions(+) create mode 100644 lutron-cert/CHANGELOG.md create mode 100644 lutron-cert/README.md create mode 100644 lutron-cert/config.json create mode 100644 lutron-cert/icon.png create mode 100644 lutron-cert/logo.png diff --git a/README.md b/README.md index 071fa2639..88e3528ba 100644 --- a/README.md +++ b/README.md @@ -236,6 +236,19 @@ Automatically convert your existing UI to the new Lovelace UI [:books: Lovelace Migration add-on documentation][addon-doc-lovelace-migration] +### ✓ [Lutron Certificate][addon-lutron-cert] + +![Latest Version][lutron-cert-version-shield] +![Supports armhf Architecture][lutron-cert-armhf-shield] +![Supports aarch64 Architecture][lutron-cert-aarch64-shield] +![Supports amd64 Architecture][lutron-cert-amd64-shield] +![Supports i386 Architecture][lutron-cert-i386-shield] +![Docker Pulls][lutron-cert-pulls-shield] + +Generate certificate to control Lutron Caseta bridge locally + +[:books: Lutron Certificate add-on documentation][addon-doc-lutron-cert] + ### ✓ [MQTT Server & Web client][addon-mqtt] ![Latest Version][mqtt-version-shield] @@ -492,6 +505,7 @@ on the correct GitHub repository matching the add-on. - [Open an issue for the add-on: Jupyter][jupyter-issue] - [Open an issue for the add-on: Log Viewer][log-viewer-issue] - [Open an issue for the add-on: Lovelace Migration][lovelace-migration-issue] +- [Open an issue for the add-on: Lutron Certificate][lutron-cert-issue] - [Open an issue for the add-on: MQTT Server & Web client][mqtt-issue] - [Open an issue for the add-on: Network UPS Tools][nut-issue] - [Open an issue for the add-on: Node-RED][node-red-issue] @@ -693,6 +707,15 @@ SOFTWARE. [lovelace-migration-amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg [lovelace-migration-armhf-shield]: https://img.shields.io/badge/armhf-yes-green.svg [lovelace-migration-i386-shield]: https://img.shields.io/badge/i386-yes-green.svg +[addon-lutron-cert]: https://github.com/hassio-addons/addon-lutron-cert/tree/2364352 +[addon-doc-lutron-cert]: https://github.com/hassio-addons/addon-lutron-cert/blob/2364352/README.md +[lutron-cert-issue]: https://github.com/hassio-addons/addon-lutron-cert/issues +[lutron-cert-version-shield]: https://img.shields.io/badge/version-2364352-blue.svg +[lutron-cert-pulls-shield]: https://img.shields.io/docker/pulls/hassioaddons/lutron-cert.svg +[lutron-cert-aarch64-shield]: https://img.shields.io/badge/aarch64-yes-green.svg +[lutron-cert-amd64-shield]: https://img.shields.io/badge/amd64-yes-green.svg +[lutron-cert-armhf-shield]: https://img.shields.io/badge/armhf-yes-green.svg +[lutron-cert-i386-shield]: https://img.shields.io/badge/i386-yes-green.svg [addon-mqtt]: https://github.com/hassio-addons/addon-mqtt/tree/2044592 [addon-doc-mqtt]: https://github.com/hassio-addons/addon-mqtt/blob/2044592/README.md [mqtt-issue]: https://github.com/hassio-addons/addon-mqtt/issues diff --git a/lutron-cert/CHANGELOG.md b/lutron-cert/CHANGELOG.md new file mode 100644 index 000000000..cc07dad66 --- /dev/null +++ b/lutron-cert/CHANGELOG.md @@ -0,0 +1,3 @@ +2018/09/26 07:46 UTC - [2364352](https://github.com/hassio-addons/addon-lutron-cert/commit/2364352ba753e29e24ebbbc206c9bf6408dbc3c2) by [@dale3h](https://github.com/dale3h) +> ✨ Add new Hass.io add-on: Lutron Certificate + diff --git a/lutron-cert/README.md b/lutron-cert/README.md new file mode 100644 index 000000000..81610ff98 --- /dev/null +++ b/lutron-cert/README.md @@ -0,0 +1,74 @@ +# Community Hass.io Add-ons: Lutron Certificate + +[![Release][release-shield]][release] ![Project Stage][project-stage-shield] ![Project Maintenance][maintenance-shield] + +[![Discord][discord-shield]][discord] [![Community Forum][forum-shield]][forum] + +[![Buy me a coffee][buymeacoffee-shield]][buymeacoffee] + +A simple utility to generate signed certificate files to allow local control of +a Lutron Caseta smart bridge. + +## About + +This add-on will guide you through the necessary steps to create signed +certificate files necessary to control your Lutron Caseta smart bridge with +Home Assistant. + +Three files will be created during successful execution of the wizard: + +- `/ssl/lutron/caseta.key`: the private key file used to generate the + certificate. +- `/ssl/lutron/caseta.crt`: the signed certificate file used to connect to + the Lutron Caseta bridge. +- `/ssl/lutron/caseta-bridge.crt`: the certificate authority file that is + downloaded from the Lutron Caseta bridge. + +Be sure to add Lutron Caseta to your `configuration.yaml` after starting the +add-on: + +```yaml +lutron_caseta: + host: 192.168.1.100 + keyfile: /ssl/lutron/caseta.key + certfile: /ssl/lutron/caseta.crt + ca_certs: /ssl/lutron/caseta-bridge.crt +``` + +For more information on how to configure Lutron Caseta in Home Assistant see +the [Lutron Caseta documentation][lutron-caseta-docs]. + +[Click here for the full documentation][docs] + +## WARNING! THIS IS AN EDGE VERSION! + +This Hass.io Add-ons repository contains edge builds of add-ons. Edge builds +add-ons are based upon the latest development version. + +- They may not work at all. +- They might stop working at any time. +- They could have a negative impact on your system. + +This repository was created for: + +- Anybody willing to test. +- Anybody interested in trying out upcoming add-ons or add-on features. +- Developers. + +If you are more interested in stable releases of our add-ons: + + + + +[buymeacoffee-shield]: https://www.buymeacoffee.com/assets/img/guidelines/download-assets-sm-2.svg +[buymeacoffee]: https://www.buymeacoffee.com/dale3h +[discord-shield]: https://img.shields.io/discord/478094546522079232.svg +[discord]: https://discord.me/hassioaddons +[docs]: https://github.com/hassio-addons/addon-lutron-cert/blob/2364352/README.md +[forum-shield]: https://img.shields.io/badge/community-forum-brightgreen.svg +[forum]: https://community.home-assistant.io/t/community-hass-io-add-on-lutron-certificate/70317 +[lutron-caseta-docs]: https://www.home-assistant.io/components/lutron_caseta/ +[maintenance-shield]: https://img.shields.io/maintenance/yes/2018.svg +[project-stage-shield]: https://img.shields.io/badge/project%20stage-experimental-yellow.svg +[release-shield]: https://img.shields.io/badge/version-2364352-blue.svg +[release]: https://github.com/hassio-addons/addon-lutron-cert/tree/2364352 \ No newline at end of file diff --git a/lutron-cert/config.json b/lutron-cert/config.json new file mode 100644 index 000000000..64284413e --- /dev/null +++ b/lutron-cert/config.json @@ -0,0 +1,36 @@ +{ + "name": "Lutron Certificate", + "version": "2364352", + "slug": "lutron-cert", + "description": "Generate certificate to control Lutron Caseta bridge locally", + "url": "https://github.com/hassio-addons/addon-lutron-cert", + "startup": "once", + "webui": "http://[HOST]:[PORT:5817]", + "arch": [ + "aarch64", + "amd64", + "armhf", + "i386" + ], + "boot": "manual", + "hassio_role": "default", + "hassio_api": true, + "homeassistant_api": true, + "ports": { + "5817/tcp": 5817 + }, + "map": [ + "ssl:rw", + "addons" + ], + "options": { + "log_level": "info" + }, + "schema": { + "log_level": "match(^(trace|debug|info|notice|warning|error|fatal)$)" + }, + "environment": { + "LOG_FORMAT": "{LEVEL}: {MESSAGE}" + }, + "image": "hassioaddons/lutron-cert" +} \ No newline at end of file diff --git a/lutron-cert/icon.png b/lutron-cert/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..90abbd74e9923d61b23f62a9e2b4cd3e26623e0c GIT binary patch literal 2219 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 Y!+0kKn^XkIGjxD~j;VGf#PR9>0ZDV89RL6T literal 0 HcmV?d00001