Ring Device integration via MQTT w/ Video Streaming

Disregard. It does seem to work without using the GUI, and only via configuration.yaml. Not sure what I did earlier, but all’s good in the neighborhood now it seems.

Thank you, both, for all the work on this.

Hopefully, if we keep poking at it, we’ll eventually understand the interaction and be able to get this working solidly for Hass.io users as I think that would be really valuable for those users. I appreciate your efforts in trying to figure it out.

2 Likes

Eventually, hopefully, this will be brought into the official hass.io.

1 Like

Hopefully, but that won’t be this project for sure.

1 Like

I received my Smoke/CO Listener and the Flood/Freeze Sensor today. I was able to quickly code up support for the Flood/Freeze Sensor and test both of these devices successfully. I also fixed a few small reported bugs, nothing that impact major functionality, but handles a few error cases correctly (like wrong MQTT auth, etc). This also includes support for battery/tamper status as attributes/

Since I was able to test these with my own devices I’ve gone ahead and merged the dev branch to master as the 0.8.0 release.

This pretty much wraps up the initial goals of this project so I’ll probably take a break from changes for a while. I do plan to do a refactor of the code to make it less horrible to look at and easier to support/add devices in the future with less risk to breaking existing ones. I’ll split each device into it’s own file and abstract support for them there. Feel free to continue providing feedback on any additional features.

1 Like

I can’t seem to get this working in hassio, i installed mosquitto mqtt not inside the docker since the docker wasn’t working right, i folled this guide, https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-the-mosquitto-mqtt-messaging-broker-on-ubuntu-16-04 and i can successfully test communication back and forth

this is what my config.json file looks like, i am at a loss why its not sending mqtt messages across to home-assistant, i do not have a username and pw setup in mqtt server
18%20PM

working concept for mosquitto, what does my config need to look like?

debug mode:

im at complete loss as to what to do next…

Thanks again for your hard work!

Awesome thanks so much!

What did you do in order to get this working? I’m having the same issue after restarting.

For hass.io you have to follow the steps exactly as outlined in this post.

If you do this, it should work even on restart, at least, it works fine with my instance. Note that it may take up to 60 seconds for the devices to show up after a reboot.

If you have configured MQTT outside of manually editing the configuration.yaml file, then the easiest thing to do is to remove the MQTT configuration via the GUI, and manually add it to the configuration.yaml. Note also that the ring-alarm-mqtt configuration must use your actual ethernet IP address, but the MQTT setup in configuration.yaml needs only 127.0.0.1.

If you are having difficulty getting this working with hass.io please include, at a mininum, your configuration.yaml and you ring-alarm-mqtt configuraiton file and, ideally, your mosquitto configuraiton from the mosquitto MQTT addon as well. Without this all we can do is guess, but the settings in the post above are the only three things that are needed for this to work. Almost every problem I’ve seen so far has been not properly performing the MQTT portion of the configuration.yaml setup but instead trying to use the configure option in the GUI, which will not enable all required options.

@tsightler do you have some examples of the battery/tamper json topics?

If you run from the command line with debug mode it will display all the topics and their output, but here’s an example:

{
    "battery_level":100,
    "tamper_status":"ok"
}

It seems that some devices do not report actual battery level in percent, but rather just “full, ok, low”, so the code translates this into 100%, 50%, 20%, although so far all of my devices support actual level.

Tamper status will change from “ok” to “tamper” if the device is in tampered state.

These should just show up in the GUI automatically if you select the individual device.

BTW, I think my future plan for battery/tamper status is to create two separate MQTT sensors, one for tamper and another for low battery. The sensor will have a default value of “None” if no devices are in tamper/low battery state, but, when any device has an alert state, the value will be the name of any entities that are in that state. Then you can just add these two entities to the Lovelace UI and it should be easy to build notification automation off of the value.

Anyone see any problems with that or can think of a better way? I’m somewhat limited with the components supported by MQTT and the limitations of MQTT discovery. Obviously you can build this very thing today with value templates on the existing device attributes, but I think this will lower the barrier to consume this data.

Thank you so much. I’m new to MQTT and HASS.IO and these instructions help me get this working. Much appreciated!

Hi tsightler,
thanks for all you’ve done.

The Mosquitto + Ring Alarm add on logs seems to be ok (I see my ring alarm devices) but I can’t see entities.

Here are my configs, do you see anything incorrect?

ring alarm hassio integration

{
  "host": "192.168.0.100",
  "port": 1883,
  "ring_topic": "ring",
  "hass_topic": "hass/status",
  "mqtt_user": "mqttuser",
  "mqtt_pass": "mqttpw",
  "ring_user": "[email protected]",
  "ring_pass": "hiddenpassword"
}

MQTT Mosquitto broker

{
  "logins": [
    {
      "username": "mqttuser",
      "password": "mqttpw"
    }
  ],
  "anonymous": false,
  "customize": {
    "active": false,
    "folder": "mosquitto"
  },
  "certfile": "fullchain.pem",
  "keyfile": "privkey.pem"
}

configuration.yaml part:

# MQTT
mqtt:
  broker: 127.0.0.1
  username: mqttuser
  password: mqttpw
  discovery: true
  discovery_prefix: homeassistant
  birth_message:
    topic: 'hass/status'
    payload: 'online'
    qos: 0
    retain: false

It’s not clear to me if your mqtt settings just didn’t come through correctly, or if you really don’t have spaces in the options. Spaces are critical for yaml so if your mqtt settings really don’t have spaces in them, that could be the problem. Everything else looks correct to me.

Hi tsightler,
yeah, sorry for the formatting, it’s actually the forum that removed all spaces. It’s ok in the config.

This is weird… I see all my components in the logs but nothing in entities/main page of Hassio.

If you click on Configuration and then Integrations, do you see MQTT under Configured and does it show configuration.yaml? By any chance do any entities show up there?

I’m still trying to determine what type of DIY security system to setup. I want a system that is completely under my control and isn’t phoning home. I’d initially passed on the Ring Alarm because you need to keep a connection to Amazon. I can access away from home using a VPN rather than the Ring app.

If I use this integration can I use the Ring Alarm without connecting to Amazon’s servers?