fix(ring-mqtt): move to stable + docs (#3675)

* fix(ring-mqtt): move to stable + docs

* update files

* Apply suggestions from code review

* update md

* lint

* lint

Co-authored-by: Stavros Kois <47820033+stavros-k@users.noreply.github.com>
This commit is contained in:
Xstar97
2022-09-03 23:28:51 +03:00
committed by GitHub
co-authored by Stavros Kois
parent a7726e8134
commit baf2f5ea8e
10 changed files with 445 additions and 299 deletions
-154
View File
@@ -1,154 +0,0 @@
# Include{groups}
portals: {}
questions:
# Include{global}
# Include{controller}
# Include{controllerDeployment}
# Include{replicas}
# Include{replica1}
# Include{strategy}
# Include{recreate}
# Include{controllerExpert}
# Include{controllerExpertExtraArgs}
- variable: env
group: "Container Configuration"
label: "Image Environment"
schema:
additional_attrs: true
type: dict
attrs:
- variable: RINGTOKEN
label: "RINGTOKEN"
description: "Container Variable RINGTOKEN"
schema:
type: string
default: ""
- variable: MQTTHOST
label: "MQTTHOST"
description: "Container Variable MQTTHOST"
schema:
type: string
default: ""
- variable: MQTTPORT
label: "MQTTPORT"
description: "Container Variable MQTTPORT"
schema:
type: string
default: "1883"
- variable: MQTTUSER
label: "MQTTUSER"
description: "Container Variable MQTTUSER"
schema:
type: string
default: ""
- variable: MQTTPASSWORD
label: "MQTTPASSWORD"
description: "Container Variable MQTTPASSWORD"
schema:
type: string
default: ""
- variable: ENABLECAMERAS
label: "ENABLECAMERAS"
description: "Container Variable ENABLECAMERAS"
schema:
type: string
default: "false"
- variable: SNAPSHOTMODE
label: "SNAPSHOTMODE"
description: "Container Variable SNAPSHOTMODE"
schema:
type: string
default: "disabled"
- variable: ENABLEMODES
label: "ENABLEMODES"
description: "Container Variable ENABLEMODES"
schema:
type: string
default: "false"
- variable: ENABLEPANIC
label: "ENABLEPANIC"
description: "Container Variable ENABLEPANIC"
schema:
type: string
default: "false"
- variable: BEAMDURATION
label: "BEAMDURATION"
description: "Container Variable BEAMDURATION"
schema:
type: string
default: "0"
- variable: DISARMCODE
label: "DISARMCODE"
description: "Container Variable DISARMCODE"
schema:
type: string
default: ""
- variable: RINGLOCATIONIDS
label: "RINGLOCATIONIDS"
description: "Container Variable RINGLOCATIONIDS"
schema:
type: string
default: ""
# Include{serviceExpertRoot}
default: false
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceRoot}
- variable: data
label: "data Storage"
description: "Data Path"
schema:
additional_attrs: true
type: dict
attrs:
# Include{persistenceBasic}
# Include{persistenceAdvanced}
# Include{persistenceList}
# Include{ingressList}
# Include{security}
# Include{securityContextAdvancedRoot}
- variable: privileged
label: "Privileged mode"
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: false
# Include{securityContextAdvanced}
# Include{podSecurityContextRoot}
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: The groupID this App of the user running the application"
schema:
type: int
default: 0
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
# Include{podSecurityContextAdvanced}
# Include{resources}
# Include{advanced}
# Include{addons}
# Include{documentation}
@@ -1,17 +1,12 @@
annotations:
truecharts.org/SCALE-support: "true"
truecharts.org/catagories: |
- HomeAutomation
- Tools-Utilities
apiVersion: v2
appVersion: "latest"
appVersion: "5.0.3"
dependencies:
- name: common
repository: https://library-charts.truecharts.org
version: 10.5.6
deprecated: false
description: Interact with Ring Inc products (cameras/alarms/smart lighting) via MQTT - See the project page for token auth procedure - https://github.com/tsightler/ring-mqtt#authentication
home: https://truecharts.org/docs/charts/incubator/ring-mqtt
description: Interact with Ring Inc products (cameras/alarms/smart lighting) via MQTT.
home: https://truecharts.org/docs/charts/stable/ring-mqtt
icon: https://truecharts.org/img/hotlink-ok/chart-icons/ring-mqtt.png
keywords:
- ring-mqtt
@@ -24,8 +19,14 @@ maintainers:
url: https://truecharts.org
name: ring-mqtt
sources:
- https://github.com/truecharts/charts/tree/master/charts/incubator/ring-mqtt
- https://github.com/truecharts/charts/tree/master/charts/stable/ring-mqtt
- https://github.com/tsightler/ring-mqtt
- https://hub.docker.com/r/tsightler/ring-mqtt/
type: application
version: 0.0.23
version: 1.0.0
annotations:
truecharts.org/catagories: |
- HomeAutomation
- Tools-Utilities
truecharts.org/SCALE-support: "true"
truecharts.org/grade: U
@@ -0,0 +1,60 @@
# Installation Notes
- Follow the prerequisite guides below before attempting `Ring-MQTT` installation.
## MQTT setup
- I used the chart called `mosquitto` install it as normal and set `Authentication` to **true**. here's the [auth guide](https://truecharts.org/docs/charts/stable/mosquitto/setup-guide).
## Ring-MQTT setup
- `RINGTOKEN` can be left blank as you can auth through the temporarily web interface which is just for the authorization of your ring account.
- Go to `http://SCALE_IP:55123`.
- Set `MQTTHOST` to **mosquitto.ix-mosquitto.svc.cluster.local**.
- Set `MQTTPORT` to **1883**.
- Set `MQTTUSER` to **user_name** from the authentication setup.
- Set `MQTTPASSWORD` to **user_pass** from the authentication setup.
- Set `ENABLECAMERAS` to **true** to enable cameras.
- Set `SNAPSHOTMODE` to **Auto** to optimize based on high vs low-power Ring devices.
- Set `ENABLEMODES` to **false**.
- Set `ENABLEPANIC` to **false**.
- Set `BEAMDURATION` to **0**.
- Leave `DISARMCODE` blank.
- Leave `RINGLOCATIONIDS` blank.
## Home-assistant setup
- Install the chart `home-assistant` if you have not done so.
- In home-assistant go to settings -> devices & integrations -> click add integration -> search for `mqtt`.
- Set `broker` to `mosquitto.ix-mosquitto.svc.cluster.local`.
- Set `port` to `1883`.
- Set `username` and `password` to the MQTT auth user and pass.
- Set the `MQTT options` as needed.
- Shell into home-assistant, use truetool.sh or other means to modify the file `/config/configuration.yaml`.
- Add the following code.
```yaml
shell_command:
ring_snap: "ffmpeg -y -i {{RTSP_URL}} -vframes 1 {{fileDirName}}"
```
- Create a new dir called `www` in `/config/`.
- Validate home-assistant configuration in `developer tools` and if passes; click on restart to use the service `ring_snap` in automations.
- Here's a sample on how to create a `live snapshot` automation.
- This will override the previous image if saved as `/config/www/snapshot.jpg`
```yaml
service: shell_command.ring_snap
data:
RTSP_URL: "{{ states.sensor.front_door_info.attributes.stream_Source }}"
fileDirName: "/config/www/snapshot.jpg"
```
- Note: You **must** save the file in `/config/www/` or set the option to allow other dirs for home-assistant to be used.
- Now you can create a live snapshot automation in `home-assistant`.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 90 KiB

+232
View File
@@ -0,0 +1,232 @@
# Include{groups}
portals: {}
questions:
# Include{global}
# Include{controller}
# Include{controllerDeployment}
# Include{replicas}
# Include{replica1}
# Include{strategy}
# Include{recreate}
# Include{controllerExpert}
# Include{controllerExpertExtraArgs}
- variable: secretEnv
group: "Container Configuration"
label: "Image Secrets"
schema:
additional_attrs: true
type: dict
attrs:
- variable: RINGTOKEN
label: "RINGTOKEN"
description: "RINGTOKEN can be left blank for web authenticated."
schema:
type: string
private: true
default: ""
- variable: MQTTUSER
label: "MQTTUSER"
description: "Set a username for your MQTT instance."
schema:
type: string
default: ""
- variable: MQTTPASSWORD
label: "MQTTPASSWORD"
description: "Set a password for your MQTT instance."
schema:
type: string
default: ""
private: true
- variable: env
group: "Container Configuration"
label: "Image Environment"
schema:
additional_attrs: true
type: dict
attrs:
- variable: MQTTHOST
label: "MQTTHOST"
description: "Set the MQTT host cluster url or ip. ex: `mosquitto.ix-mosquitto.svc.cluster.local`."
schema:
type: string
default: ""
- variable: MQTTPORT
label: "MQTTPORT"
description: "Set MQTTPORT to the port that your MQTT uses."
schema:
type: int
default: 1883
- variable: ENABLECAMERAS
label: "ENABLECAMERAS"
description: "Default false since the native Ring component for Home Assistant supports cameras, set to true to enable camera/chime support in this add-on. Access to Chimes cannot be granted to shared users so Chime support requires use of the primary Ring account."
schema:
type: boolean
default: false
- variable: SNAPSHOTMODE
label: "SNAPSHOTMODE"
description: "Set SNAPSHOTMODE to [`Auto``, `Motion`, `Interval`, `All`] or default `disabled`"
schema:
type: string
default: "disabled"
enum:
- value: disabled
description: Disabled
- value: auto
description: Auto
- value: motion
description: Motion
- value: interval
description: Interval
- value: all
description: All
- variable: ENABLEMODES
label: "ENABLEMODES"
description: "Enable support for Location Modes for sites without a Ring Alarm Panel."
schema:
type: boolean
default: false
- variable: ENABLEPANIC
label: "ENABLEPANIC"
description: "Enable panic buttons on Alarm Control Panel device."
schema:
type: boolean
default: false
- variable: BEAMDURATION
label: "BEAMDURATION"
description: "Container Variable BEAMDURATION"
schema:
type: string
default: "0"
- variable: DISARMCODE
label: "DISARMCODE"
description: "Used only with Home Assistant, when defined this option causes the Home Assistant Alarm Control Panel integration to require entering this code to disarm the alarm"
schema:
type: string
default: ""
- variable: RINGLOCATIONIDS
label: "RINGLOCATIONIDS"
description: "Array of location Ids in format: [`loc-id`, `loc-id2`], see [Limiting Locations](https://github.com/tsightler/ring-mqtt/wiki/Configuration-Details#limiting-locations) for details."
schema:
type: string
default: ""
# Include{containerConfig}
# Include{serviceRoot}
- variable: main
label: "Main Service"
description: "The Primary service on which the healthcheck runs, often the webUI"
schema:
additional_attrs: true
type: dict
attrs:
# Include{serviceSelector}
- variable: main
label: "Main Service Port Configuration"
schema:
additional_attrs: true
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 55123
required: true
# Include{advancedPortHTTP}
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 55123
- variable: rtsp
label: "RCON Service"
description: "The Primary service on which the healthcheck runs, often the webUI"
schema:
additional_attrs: true
type: dict
attrs:
# Include{serviceSelector}
- variable: rtsp
label: "RTSP Service Port Configuration"
schema:
additional_attrs: true
type: dict
attrs:
- variable: port
label: "Port"
description: "This port exposes the container port on the service"
schema:
type: int
default: 8554
required: true
# Include{advancedPortTCP}
- variable: targetPort
label: "Target Port"
description: "The internal(!) port on the container the Application runs on"
schema:
type: int
default: 8554
# Include{serviceExpertRoot}
default: false
# Include{serviceExpert}
# Include{serviceList}
# Include{persistenceRoot}
- variable: data
label: "data Storage"
description: "Data Path"
schema:
additional_attrs: true
type: dict
attrs:
# Include{persistenceBasic}
# Include{persistenceAdvanced}
# Include{persistenceList}
# Include{ingressList}
# Include{security}
# Include{securityContextAdvancedRoot}
- variable: privileged
label: "Privileged mode"
schema:
type: boolean
default: false
- variable: readOnlyRootFilesystem
label: "ReadOnly Root Filesystem"
schema:
type: boolean
default: false
- variable: allowPrivilegeEscalation
label: "Allow Privilege Escalation"
schema:
type: boolean
default: false
- variable: runAsNonRoot
label: "runAsNonRoot"
schema:
type: boolean
default: false
# Include{securityContextAdvanced}
# Include{podSecurityContextRoot}
- variable: runAsUser
label: "runAsUser"
description: "The UserID of the user running the application"
schema:
type: int
default: 0
- variable: runAsGroup
label: "runAsGroup"
description: The groupID this App of the user running the application"
schema:
type: int
default: 0
- variable: fsGroup
label: "fsGroup"
description: "The group that should own ALL storage."
schema:
type: int
default: 568
# Include{podSecurityContextAdvanced}
# Include{resources}
# Include{advanced}
# Include{addons}
# Include{documentation}
@@ -1,3 +1,21 @@
image:
pullPolicy: IfNotPresent
repository: tccr.io/truecharts/ring-mqtt
tag: 5.0.3@sha256:a089c8c1514c5c80cc2fc1fa529f633290538a963df5e3d0c7c93b14fd92b633
podSecurityContext:
runAsGroup: 0
runAsUser: 0
securityContext:
readOnlyRootFilesystem: false
runAsNonRoot: false
secretEnv:
RINGTOKEN: ""
MQTTUSER: ""
MQTTPASSWORD: ""
env:
BEAMDURATION: "0"
DISARMCODE: ""
@@ -5,39 +23,28 @@ env:
ENABLEMODES: "false"
ENABLEPANIC: "false"
MQTTHOST: ""
MQTTPASSWORD: ""
MQTTPORT: "1883"
MQTTUSER: ""
RINGLOCATIONIDS: ""
RINGTOKEN: ""
SNAPSHOTMODE: disabled
image:
pullPolicy: IfNotPresent
repository: tccr.io/truecharts/ring-mqtt
tag: latest@sha256:fe9beb0313fd81f26e698e7b528ae13eab5e74f65fade8d51f626c3fc272e066
service:
main:
ports:
main:
protocol: HTTP
targetPort: 55123
port: 55123
rtsp:
ports:
rtsp:
protocol: TCP
targetPort: 8554
port: 8554
persistence:
data:
enabled: true
mountPath: /data
podSecurityContext:
runAsGroup: 0
runAsUser: 0
probes:
liveness:
enabled: false
readiness:
enabled: false
startup:
enabled: false
securityContext:
readOnlyRootFilesystem: false
runAsNonRoot: false
service:
main:
enabled: false
ports:
main:
enabled: false
portal:
enabled: false