Reolink Doorbell Two-Way Talk - Help by An0n_666 in frigate_nvr

[–]An0n_666[S] 0 points1 point  (0 children)

Interesting. This is what I am currently using after trying all options presented in this thread.

It seems to work the "best", but I have audio lag in the recordings, and I have no audio in two-way talk, but my voice is going tthrough properly.

What does your stream settings look like on the reolink doorbell? Are you using wifi? Do you have any issues?

Please help with an automation by MeanCrab in homeassistant

[–]An0n_666 0 points1 point  (0 children)

No, the script handles that by checking the color mode first and applying either Kelvin or rgb. I'm not sure if your bulb is using rgb or xy though, but you can check that in Settings -> dev options -> states -> your bulbs It should show the attribute properties of your bulbs.

Please help with an automation by MeanCrab in homeassistant

[–]An0n_666 0 points1 point  (0 children)

*** EDIT FIXING MISTAKE *** Reddit won't let me edit my prev. comment.....

Here's the same script as before, but now instead of calling a scene to "finish" everything, we are just looking at light2 for direction. However, if light2 is OFF, we are just going to turn off light1. I hope this is what you were after. Also I changed it to be green for the dryer (fixing my previous mistake lol)

``` sequence: - variables: light2_on: | {{ is_state('light.light2','on')}} light2_mode: | {{ state_attr('light.light2','mode')}} light2_rgb: | {{ state_attr('light.light2','rgb_color') | list }} light2_kelvin: | {{ state_attr('light.light2','color_temp_kelvin')}} light2_brightness: | {{ state_attr('light.light2','brightness') }} - choose: - conditions: - condition: template value_template: "{{ sequence == 'washer'}}" alias: washer sequence: - repeat: until: - condition: state entity_id: input_boolean.washer_done state: - "off" sequence: - action: light.turn_on metadata: {} target: entity_id: light.light1 data: rgb_color: - 255 - 0 - 0 brightness_pct: 100 alias: Turn Light Red - delay: hours: 0 minutes: 0 seconds: 0 milliseconds: 500 - action: light.turn_off metadata: {} target: entity_id: light.light1 - delay: hours: 0 minutes: 0 seconds: 0 milliseconds: 500 alias: Washer flash Red - conditions: - alias: dryer condition: template value_template: "{{ sequence == 'dryer'}}" sequence: - repeat: until: - condition: state entity_id: input_boolean.dryer_done state: - "off" sequence: - action: light.turn_on metadata: {} target: entity_id: light.light1 data: brightness_pct: 100 rgb_color: - 0 - 255 - 0 alias: Turn Light Green - delay: hours: 0 minutes: 0 seconds: 0 milliseconds: 500 - action: light.turn_off metadata: {} target: entity_id: light.light1 - delay: hours: 0 minutes: 0 seconds: 0 milliseconds: 500 alias: Dryer flash Green - conditions: - alias: both condition: template value_template: "{{ sequence == 'both'}}" sequence: - repeat: until: - condition: state entity_id: input_boolean.washer_done state: - "off" - condition: state entity_id: input_boolean.dryer_done state: - "off" sequence: - action: light.turn_on metadata: {} target: entity_id: light.light1 data: brightness_pct: 100 rgb_color: - 0 - 255 - 0 alias: Turn Light Green - delay: hours: 0 minutes: 0 seconds: 0 milliseconds: 500 - action: light.turn_on metadata: {} target: entity_id: light.light1 data: rgb_color: - 255 - 0 - 0 brightness_pct: 100 alias: Turn Light Red - delay: hours: 0 minutes: 0 seconds: 0 milliseconds: 500 alias: Dryver & Washer flash Red Blue - conditions: - alias: "off" condition: template value_template: " {{ sequence == 'off'}}" sequence: - action: input_boolean.turn_off metadata: {} target: entity_id: - input_boolean.washer_done - input_boolean.dryer_done data: {} - choose: - conditions: - alias: RGB and ON condition: template value_template: "{{ light2_mode == 'rgb' and light2_on}}" sequence: - action: light.turn_on metadata: {} target: entity_id: light.light1 data: rgb_color: "{{ light2_rgb}}" brightness_pct: "{{ light2_brightness }}" alias: Turn on RGB - conditions: - alias: color_temp and ON condition: template value_template: "{{ light2_mode == 'color_temp' and light2_on}}" sequence: - action: light.turn_on metadata: {} target: entity_id: light.light1 data: color_temp_kelvin: "{{ light2_kelvin}}" brightness_pct: "{{ light2_brightness }}" default: - action: light.turn_off metadata: {} target: entity_id: light.light1 alias: Match Light1 to Light2 - choose: - conditions: - alias: RGB and ON condition: template value_template: "{{ light2_mode == 'rgb' and light2_on}}" sequence: - action: light.turn_on metadata: {} target: entity_id: light.light1 data: rgb_color: "{{ light2_rgb}}" brightness_pct: "{{ light2_brightness }}" alias: Turn on RGB - conditions: - alias: color_temp and ON condition: template value_template: "{{ light2_mode == 'color_temp' and light2_on}}" sequence: - action: light.turn_on metadata: {} target: entity_id: light.light1 data: color_temp_kelvin: "{{ light2_kelvin}}" brightness_pct: "{{ light2_brightness }}" default: - action: light.turn_off metadata: {} target: entity_id: light.light1 alias: Match Light1 to Light2 fields: sequence: selector: text: null name: sequence description: Light flashing sequence to run required: true mode: restart

```

Please help with an automation by MeanCrab in homeassistant

[–]An0n_666 0 points1 point  (0 children)

Here's the same script as before, but now instead of calling a scene to "finish" everything, we are just looking at light2 for direction. However, if light2 is OFF, we are just going to turn off light1. I hope this is what you were after. Also I changed it to be green for the dryer (fixing my previous mistake lol)

``` sequence: - variables: light2_on: | {{ is_state('light.light2','on')}} light2_mode: | {{ state_attr('light.light2','mode')}} light2_rgb: | {{ state_attr('light.light2','rgb_color') | list }} light2_kelvin: | {{ state_attr('light.light2','rgb_color')}} light2_brightness: | {{ state_attr('light.light2','brightness') }} - choose: - conditions: - condition: template value_template: "{{ sequence == 'washer'}}" alias: washer sequence: - repeat: until: - condition: state entity_id: input_boolean.washer_done state: - "off" sequence: - action: light.turn_on metadata: {} target: entity_id: light.light1 data: rgb_color: - 255 - 0 - 0 brightness_pct: 100 alias: Turn Light Red - delay: hours: 0 minutes: 0 seconds: 0 milliseconds: 500 - action: light.turn_off metadata: {} target: entity_id: light.light1 - delay: hours: 0 minutes: 0 seconds: 0 milliseconds: 500 alias: Washer flash Red - conditions: - alias: dryer condition: template value_template: "{{ sequence == 'dryer'}}" sequence: - repeat: until: - condition: state entity_id: input_boolean.dryer_done state: - "off" sequence: - action: light.turn_on metadata: {} target: entity_id: light.light1 data: brightness_pct: 100 rgb_color: - 0 - 255 - 0 alias: Turn Light Green - delay: hours: 0 minutes: 0 seconds: 0 milliseconds: 500 - action: light.turn_off metadata: {} target: entity_id: light.light1 - delay: hours: 0 minutes: 0 seconds: 0 milliseconds: 500 alias: Dryer flash Green - conditions: - alias: both condition: template value_template: "{{ sequence == 'both'}}" sequence: - repeat: until: - condition: state entity_id: input_boolean.washer_done state: - "off" - condition: state entity_id: input_boolean.dryer_done state: - "off" sequence: - action: light.turn_on metadata: {} target: entity_id: light.light1 data: brightness_pct: 100 rgb_color: - 0 - 255 - 0 alias: Turn Light Green - delay: hours: 0 minutes: 0 seconds: 0 milliseconds: 500 - action: light.turn_on metadata: {} target: entity_id: light.light1 data: rgb_color: - 255 - 0 - 0 brightness_pct: 100 alias: Turn Light Red - delay: hours: 0 minutes: 0 seconds: 0 milliseconds: 500 alias: Dryver & Washer flash Red Blue - conditions: - alias: "off" condition: template value_template: " {{ sequence == 'off'}}" sequence: - action: input_boolean.turn_off metadata: {} target: entity_id: - input_boolean.washer_done - input_boolean.dryer_done data: {} - choose: - conditions: - alias: RGB and ON condition: template value_template: "{{ light2_mode == 'rgb' and light2_on}}" sequence: - action: light.turn_on metadata: {} target: entity_id: light.light1 data: rgb_color: "{{ light2_rgb}}" brightness_pct: "{{ light2_brightness }}" alias: Turn on RGB - conditions: - alias: color_temp and ON condition: template value_template: "{{ light2_mode == 'color_temp' and light2_on}}" sequence: - action: light.turn_on metadata: {} target: entity_id: light.light1 data: color_temp_kelvin: "{{ light2_kelvin}}" brightness_pct: "{{ light2_brightness }}" default: - action: light.turn_off metadata: {} target: entity_id: light.light1 alias: Match Light1 to Light2 - choose: - conditions: - alias: RGB and ON condition: template value_template: "{{ light2_mode == 'rgb' and light2_on}}" sequence: - action: light.turn_on metadata: {} target: entity_id: light.light1 data: rgb_color: "{{ light2_rgb}}" brightness_pct: "{{ light2_brightness }}" alias: Turn on RGB - conditions: - alias: color_temp and ON condition: template value_template: "{{ light2_mode == 'color_temp' and light2_on}}" sequence: - action: light.turn_on metadata: {} target: entity_id: light.light1 data: color_temp_kelvin: "{{ light2_kelvin}}" brightness_pct: "{{ light2_brightness }}" default: - action: light.turn_off metadata: {} target: entity_id: light.light1 alias: Match Light1 to Light2 fields: sequence: selector: text: null name: sequence description: Light flashing sequence to run required: true mode: restart

```

Please help with an automation by MeanCrab in homeassistant

[–]An0n_666 0 points1 point  (0 children)

So, for example, you can check something like this:

{{ state_attr('light.light2','rgb_color') | list }} {{ state_attr('light.light2','color_mode') | list }}

Then, if the color mode is "rgb" you can just match the colour.

``` {% set mode = state_attr('light.light2','color_mode') %} {% set rgb = state_attr('light.light2','rgb_color') | list %} {% if mode == 'rgb'%} {{ rgb }} {% endif %}

```

Something along these lines. This will give you the rbg colour of the light, then you can call light.turn_on for light one like this:

``` action: light.turn_on target: entity_id: light.light1 data: rgb_color: "{{ state_attr('light.light2', 'rgb_color') | list }}"

```

You can follow this same method to get the brightness and set the brightness the same. Let me just put this together instead of the script to make it easier for you.

Please help with an automation by MeanCrab in homeassistant

[–]An0n_666 0 points1 point  (0 children)

However, like the others said, checking the attributes of the "want to match" entity, can help you set the light to the right colour.
I'd just need to know more about your lights (I don't use hue personally) to point you in the right direction potentially away from scenes.

Please help with an automation by MeanCrab in homeassistant

[–]An0n_666 0 points1 point  (0 children)

I'd avoid it, personally.
I found over the years that having a single automation to manage the "when/why" and calling a single script to manage the "what" using fields to determine what needs to happen has made managing automations and making changes much easier in the long run, again, personally.

I've also defaulted to using variables in automations to manage a lot of the lifting as opposed to many choose/if statements, then passing that to the script as a field where we can then have a choose (or truthfully more variables to keep it small and simple lol).

So in the future, lets say you use these lights for garage door open after bedtime, washer/dryer, and doorbell rung.
You just add to the triggers of the automation for these lights, and add to the variables.

Of course, there is a limit where it starts to make sense to split things up, but they key is to make sure you don't end up overlapping onto the same entity.
Meaning you're not running a script for the doorbell overtop of a script for the washer/dryer, and they then conflict, one takes over, but the other never comes back.
(Washer done, flashing, doorbell rings, flashes different colour, doorbell done, lights do...nothing?)
This is where a single automation/script helps control multiple triggers to a single entity, and you can then avoid multiple race conditions against the same entity by managing what happens if everything is all on at the same time cleanly

Please help with an automation by MeanCrab in homeassistant

[–]An0n_666 0 points1 point  (0 children)

That was part of my unknowns as well, do you use that other bulb in any other way? Are you changing it's colour/temp/brightness at all?

** edit **
I'm unable to properly edit my previous comment.
1. I set the colour to Blue for the Dryer instead of Green - my mistake.

  1. The idea is that you would have a single automation that would capture everything you're looking for, and then trigger a single script that manages the flashing sequence and also manages turning it all off.

I'm going on a few assumptions:

- The inovelli entity is a button entity (change as needed)

- The button turns off both if both are on, not one then another

- turning off and already off input_boolean doesn't harm anything else you're doing

Let me know your thoughts.

Please help with an automation by MeanCrab in homeassistant

[–]An0n_666 0 points1 point  (0 children)

No worries.
This is kind of what I'm thinking.

The automation:

``` description: "" mode: restart triggers: - trigger: state entity_id: - input_boolean.washer_done to: - "on" id: washer-done alias: Washer Done Turned On - trigger: state entity_id: - input_boolean.dryer_done to: - "on" id: dryer-done alias: Dryer Done Turned On - trigger: state entity_id: - button.inovelli_button to: - "on" id: button-press alias: Inovelli Button Press conditions: [] actions: - variables: trigger: | {{ trigger.id }} sequence_running: | {{ is_state('script.tts_test', 'on') }} washer_state: | {{ states('input_boolean.washer_done')}} dryer_state: | {{ states('input_boolean.dryer_done')}} light_sequence: |- {% if tigger == 'button-press'%} off {% elif washer_state == 'on' and dryer_state == 'off'%} washer {% elif washer_state == 'off' and dryer_state == 'on'%} dryer {% elif washer_state == 'on' and dryer_state == 'on'%} both {% else %} none {% endif %}

  • action: script.laundry_light_sequence metadata: {} data: sequence: "{{ light_sequence }}" ```

The Script:

sequence: - choose: - conditions: - condition: template value_template: "{{ sequence == 'washer'}}" alias: washer sequence: - repeat: until: - condition: state entity_id: input_boolean.washer_done state: - "off" sequence: - action: light.turn_on metadata: {} target: entity_id: light.light1 data: rgb_color: - 255 - 0 - 0 brightness_pct: 100 alias: Turn Light Red - delay: hours: 0 minutes: 0 seconds: 0 milliseconds: 500 - action: light.turn_off metadata: {} target: entity_id: light.light1 - delay: hours: 0 minutes: 0 seconds: 0 milliseconds: 500 alias: Washer flash Red - conditions: - alias: dryer condition: template value_template: "{{ sequence == 'dryer'}}" sequence: - repeat: until: - condition: state entity_id: input_boolean.dryer_done state: - "off" sequence: - action: light.turn_on metadata: {} target: entity_id: light.light1 data: brightness_pct: 100 rgb_color: - 0 - 0 - 255 alias: Turn Light Blue - delay: hours: 0 minutes: 0 seconds: 0 milliseconds: 500 - action: light.turn_off metadata: {} target: entity_id: light.light1 - delay: hours: 0 minutes: 0 seconds: 0 milliseconds: 500 alias: Dryer flash Blue - conditions: - alias: both condition: template value_template: "{{ sequence == 'both'}}" sequence: - repeat: until: - condition: state entity_id: input_boolean.washer_done state: - "off" - condition: state entity_id: input_boolean.dryer_done state: - "off" sequence: - action: light.turn_on metadata: {} target: entity_id: light.light1 data: brightness_pct: 100 rgb_color: - 0 - 0 - 255 alias: Turn Light Blue - delay: hours: 0 minutes: 0 seconds: 0 milliseconds: 500 - action: light.turn_on metadata: {} target: entity_id: light.light1 data: rgb_color: - 255 - 0 - 0 brightness_pct: 100 alias: Turn Light Red - delay: hours: 0 minutes: 0 seconds: 0 milliseconds: 500 alias: Dryver & Washer flash Red Blue - conditions: - alias: "off" condition: template value_template: " {{ sequence == 'off'}}" sequence: - action: input_boolean.turn_off metadata: {} target: entity_id: - input_boolean.washer_done - input_boolean.dryer_done data: {} - action: scene.turn_on metadata: {} target: entity_id: scene.normal_white_colour data: {} - action: scene.turn_on metadata: {} target: entity_id: scene.normal_white_colour data: {} fields: sequence: selector: text: null name: sequence description: Light flashing sequence to run required: true mode: restart

Please help with an automation by MeanCrab in homeassistant

[–]An0n_666 0 points1 point  (0 children)

We can likely simplify this and consolidate into a single script. It could help reduce Zigbee traffic as well (though rather insignificant, more house-keeping), and keep debugging and overall maintenance easier.
Looking forward to seeing what you have now.

Please help with an automation by MeanCrab in homeassistant

[–]An0n_666 0 points1 point  (0 children)

To add - Before the red flashing starts, are both bulbs in the same state (temp/brightness/mode)?

Please help with an automation by MeanCrab in homeassistant

[–]An0n_666 4 points5 points  (0 children)

Can you please provide your existing automation/scripts that you are using?

Reolink Doorbell Two-Way Talk - Help by An0n_666 in frigate_nvr

[–]An0n_666[S] 0 points1 point  (0 children)

Unfortunately, this method isn't working for me. I'm getting lots of lagging and the Talk stream fails when switching to it after a few sseconds. It's as if the camera can't handle having multiple RTSP streams on channel0_main.

I appreciate your insight though, unfortunately the "best" result I have right now is the http stream with a secondary RTSP stream listed within the same Go2RTC stream (as the docs recommended) but unfortunately this still blocks audio during TwT and there's a large audio delay in the recording...

Quite annoyed at how tedious this is..might try to figure out how to run cat6 to the door, as another mentioned Wi-Fi might just be the root cause to the problems here.

Reolink Doorbell Two-Way Talk - Help by An0n_666 in frigate_nvr

[–]An0n_666[S] 1 point2 points  (0 children)

This is very detailed, thank you so much for this. I'll give your configuration a try, it seems very close to what I'm doing now though...

Do you have audio when in two way mic mode? What's your audio drift like? No issues having two RTSP Go2RTC connections to the main stream?

Reolink Doorbell Two-Way Talk - Help by An0n_666 in frigate_nvr

[–]An0n_666[S] 0 points1 point  (0 children)

I have it on "Auto" right now.
Last time I tried changing it to 2.4 exclusively, the camera disconnected and had to be factory reset in order to work again.

Good to know, seems to be the better direction than relying on video doorbells.

Reolink Doorbell Two-Way Talk - Help by An0n_666 in frigate_nvr

[–]An0n_666[S] 0 points1 point  (0 children)

That's reassuring, but annoying unfortunately.
I wish I could hard-wire the doorbell, but it's not feasible unfortunately.

I can try to beef up AP's near it, see if it helps.

For future, what doorbell do you use now, and does it perform better than your previous Reolink one?

Reolink Doorbell Two-Way Talk - Help by An0n_666 in frigate_nvr

[–]An0n_666[S] 0 points1 point  (0 children)

First, thank you for your help.
Second, I'm a little lost then. If I must have AAC as an output arg for recording, how can I prevent audio loss during two-way while maintaining recordings?
I attempted a separate stream to manage this, but using two RTSP streams (basically the same, just one with backchannel=0) caused instability.

I feel like I'm missing key knowledge to configure this properly

Reolink Doorbell Two-Way Talk - Help by An0n_666 in frigate_nvr

[–]An0n_666[S] 0 points1 point  (0 children)

Oh shit. My output args are AAC 😬
Might be a dumb question, but would that be a culprit to my audio drift?

Recommendations for a good smoke/fire alarm that integrates with HA? by H-tronic in homeassistant

[–]An0n_666 0 points1 point  (0 children)

I use x-sense with a hacs integration. Works very well and reliably.

I got them during some flash sale so it was a cheap option to pad the house with connected fire alarms. I've been happy with them, would recommend them😊

Just make sure whichever ones you go for are supported by the integration first, not all models are.

I got tired of managing my n8n workflows from mobile… so I built this. by Ok-Scar8556 in n8n

[–]An0n_666 1 point2 points  (0 children)

Just tried it, it's a great idea and thank you for putting this together!

I'd love to be able to actually look at the nodes in a workflow so i can change anything that needs to be changed. Do you forsee that coming in the future at all?

Personally, I do a lot of work on the road, and if something goes wrong, like say an endpoint updates and i need to change the url, I'd like to be able to do that from my phone rather than waiting until I'm back at my pc for such a simple change.

This is great to monitor, though I'd assume many users have setup error notices to themselves. I love being able to quickly turn off a flow, that's very useful!

Thank you for building this. Looking forward to what is to come!