hjdhjd / homebridge-doorbird

Homebridge plugin for Doorbird
Apache License 2.0
54 stars 14 forks source link

Multiple DoorBirds #63

Closed danholt-international closed 4 years ago

danholt-international commented 4 years ago

Hi! I am trying to configure two DoorBirds... unfortunately only one works and the second gets skipped because of this error: Unable to query the Doorbird: Error: Accessory BirdGuard experienced an address collision.

I read, that in 2019 multiple Doorbirds were not supported by your plugin. But since there is an option to configure and add DoorBirds right from your PlugIn settings, I am wondering why it still won't work.

This is how the (automatically) generated config looks like:

"cameras": [ { "name": "BirdGuard", "doorbird": "192.168.XXX.XX", "username": "XXXXX", "password": "XXXXX", "defaultRelay": "1", "port": 5005, "videoConfig": { "maxStreams": 4, "maxWidth": 1280, "maxHeight": 720, "maxFPS": 30, "packetSize": 376, "audio": true } }, { "name": "DoorBird-danholt", "doorbird": "192.168.XXX.XX", "username": "XXXXX", "password": "XXXXX", "defaultRelay": "1", "port": 5005, "videoConfig": { "maxStreams": 4, "maxWidth": 1280, "maxHeight": 720, "maxFPS": 30, "packetSize": 376, "audio": true } } ], "platform": "Doorbird"

Any idea what is wrong here?

Regards

Daniel

brownad commented 4 years ago

Never been able to look at this, have only 1 device. I reckon more work is needed and config direction to separate the multiple devices you have. @hjdhjd ?

On 3 Jun 2020, at 13:26, danholt-international notifications@github.com wrote:

Hi! I am trying to configure two DoorBirds... unfortunately only one works and the second gets shipped because of this error: Unable to query the Doorbird: Error: Accessory BirdGuard experienced an address collision.

I read, that in 2019 multiple Doorbirds were not supported by your plugin. But since there is an option to configure and add DoorBirds right from your PlugIn settings, I am wondering why ist still won't work.

This is how the (automatically) generated config looks like:

"cameras": [ { "name": "BirdGuard", "doorbird": "192.168.XXX.XX", "username": "XXXXX", "password": "XXXXX", "defaultRelay": "1", "port": 5005, "videoConfig": { "maxStreams": 4, "maxWidth": 1280, "maxHeight": 720, "maxFPS": 30, "packetSize": 376, "audio": true } }, { "name": "DoorBird-danholt", "doorbird": "192.168.XXX.XX", "username": "XXXXX", "password": "XXXXX", "defaultRelay": "1", "port": 5005, "videoConfig": { "maxStreams": 4, "maxWidth": 1280, "maxHeight": 720, "maxFPS": 30, "packetSize": 376, "audio": true } } ], "platform": "Doorbird"

Any idea what is wrong here?

Regards

Daniel

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/brownad/homebridge-doorbird/issues/63, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABUK4C7F6WJMLOUFFZVP6RLRUY6PLANCNFSM4NRT2YCQ.

hjdhjd commented 4 years ago

With the refactor I just did, this SHOULD work with multiple Doorbirds...one caveat, see below.

So the errors in your config:

videoConfig should be in the same level as cameras and the options you’ve specified above aren’t quite in the right spots.

So it should go:

...

        {
            "platform" : "Doorbird",
            "cameras" : [
              {
                "doorbird": "1.2.3.4",
                "username": "user1",
                "password": "pass1”,
                "audio": true,
                "port": 5005,
              },

              {
                "doorbird": "5.6.7.8",
                "username": "user2",
                "password": "pass2”,
                "audio": true,
                "port": 5006,
              }

            ]
        },
...

So why is all of the above work?

Port is needed because you are setting up two notification servers, not one, to handle events coming from each unit. You will need to configure each Doorbird accordingly.

If you wanted a videoConfig block, it would need to be at the same “level” as cameras. But most people shouldn’t need this most of the time...the defaults are reasonable for almost everyone. See the README for more on that one.

But wait there’s more...

All of the above assumes you’re talking about two Doorbirds. I have no earthly idea how the BirdGuard shows up to the Doorbird.

So while the above is all true...what we really need to understand is the relationship between the Doorbird and BirdGuard. If they are truly one “Doorbird” from the Doorbird’s perspective, with BirdGuard being just a peripheral. Or if in reality they are two separate Doorbird devices.

Thanks for an intriguing set of questions to kick the day off right! 😄

Can you paste the output of this command line to help figure this out, before trying all the config changes I just suggested:

http://doorbirduser:doorbirdpass@172.16.60.40/bha-api/info.cgi
hjdhjd commented 4 years ago

So in looking through some of the other documentation, it seems that effectively BirdGuard and Doorbird are both first-class citizens. Meaning they are both “true” DoorBird devices and not peripherals to each other.

TL;DR - try the configuration above and it should work.

brownad commented 4 years ago

Reckon you’d need a different port for the BirdGuard though e.g. 5006 rest should fit in to place as @hjdhjd says. IF you get it working do share the config, we can publish that as an example for multiple devices

On 3 Jun 2020, at 13:55, hjdhjd notifications@github.com wrote:

So in looking through some of the other documentation, it seems that effectively BirdGuard and Doorbird are both first-class citizens. Meaning they are both “true” DoorBird devices and not peripherals to each other.

TL;DR - try the configuration above and it should work.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/brownad/homebridge-doorbird/issues/63#issuecomment-638177996, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABUK4C3J7AGKEDPVI44UYYTRUZB3VANCNFSM4NRT2YCQ.

hjdhjd commented 4 years ago

@brownad Correct. The config above shows that. You’ll also need to register with the notification API...see the README on this one and adjust the ports per above for each Doorbird.

danholt-international commented 4 years ago

Hi!

I am sorry, but still the same error with this config:

{ "platform": "Doorbird", "cameras": [ { "name": "BirdGuard", "doorbird": „192.168.XXX.XX", "username": „XXXXX", "password": „XXXXX", "defaultRelay": "1", "port": 5006, "videoConfig": { "maxStreams": 4, "maxWidth": 1280, "maxHeight": 720, "maxFPS": 30, "packetSize": 376, "audio": true } }, { "name": "DoorBird", "doorbird": „192.168.XXX.XX", "username": „XXXXX", "password": „XXXXX", "defaultRelay": "1", "port": 5005, "videoConfig": { "maxStreams": 4, "maxWidth": 1280, "maxHeight": 720, "maxFPS": 30, "packetSize": 376, "audio": true } } ] }

Regards

Daniel

Am 03.06.2020 um 14:55 schrieb hjdhjd notifications@github.com:

So in looking through some of the other documentation, it seems that effectively BirdGuard and Doorbird are both first-class citizens. Meaning they are both “true” DoorBird devices and not peripherals to each other.

TL;DR - try the configuration above and it should work.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/brownad/homebridge-doorbird/issues/63#issuecomment-638177996, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMOQVBWQPNNLDNF6QWSMX53RUZB3VANCNFSM4NRT2YCQ.

brownad commented 4 years ago

Have you upgraded to latest version released today and followed the steps to upgrade? Can you try this config without all the options for now if you did the upgrade already (note the case, just copy paste it with your creds and IP in place):

  {
            "platform" : "Doorbird",
            "cameras" : [
              {
                "doorbird": "Doorbird",
                "username": "user1",
                "password": "pass1”,
                "audio": true,
                "port": 5005,
              },

              {
                "doorbird": "Birdguard",
                "username": "user2",
                "password": "pass2”,
                "audio": true,
                "port": 5006,
              }
            ]
   }

If that works then next step is enrich with options.

hjdhjd commented 4 years ago

@axelbrunger It's fixed in the latest commit, thanks for reporting it. @brownad if you want to push a package update, I've already updated the tree.

@axelbrunger in the future, please open a new issue for bugs like the one you're reporting. It creates confusion when you insert other bugs into a discussion on another topic. Thanks.

brownad commented 4 years ago

@axelbrunger It's fixed in the latest commit, thanks for reporting it. @brownad if you want to push a package update, I've already updated the tree.

@axelbrunger in the future, please open a new issue for bugs like the one you're reporting. It creates confusion when you insert other bugs into a discussion on another topic. Thanks.

on its way now

hjdhjd commented 4 years ago

@brownad Can we get these issues cleaned up so it's clearly one issue per "issue"? :smile:

This is going to get unwieldy when people make it into one massive comment stream.

brownad commented 4 years ago

Yep, this issue is nothing more than the multiple devices one. The other was closed out as a one off. @axelbrunger can you raise a new one please if you're stuck after the update just released.

hjdhjd commented 4 years ago

@danholt-international the issue in your config is the videoConfig blocks. Delete them for the time being...but specifically, the issue is that they do not belong in the camera {} blocks, but outside of it. Please look at the example in the README closely to see what a clean one looks like. You only need (and in fact we only support) a single videoConfig block.

"platforms": [
  {
    "platform": "Doorbird",

    "cameras": [
      {
        "name": "Doorbird 1",
        "doorbird": "your.doorbird.ip",
        "username": "some-doorbird-user (or create a new one just for homebridge)",
        "password": "some-doorbird-password",
        "audio": true
      },
      {
        "name": "Doorbird 2",
        "doorbird": "your.doorbird.ip",
        "username": "some-doorbird-user (or create a new one just for homebridge)",
        "password": "some-doorbird-password",
        "audio": true
      }
    ],

    "videoConfig": {
       ...
    }
]
hjdhjd commented 4 years ago

@brownad Maybe delete the off topic ones so this one becomes clean should people reference it later?

brownad commented 4 years ago

Yeah good idea

Sent from my iPhone

On 3 Jun 2020, at 17:38, hjdhjd notifications@github.com wrote:

@brownad Maybe delete the off topic ones so this one becomes clean should people reference it later?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

hjdhjd commented 4 years ago

@brownad Mostly cleaned up now. :smile:

brownad commented 4 years ago

Sweet!

danholt-international commented 4 years ago

Sorry guys… still no success: ERROR: Unable to query the Doorbird: Error: Accessory BirdGuard-garage experienced an address collision.

It always only mounts the first camera (DoorBird) and the second one is skipped because of that error.

"platforms": [ { "platform": "Doorbird", "name": "Doorbird", "cameras": [ { "name": "BirdGuard-garage", "doorbird": „192.168.XXX.XX", "username": „XXXXX", "password": „XXXXX", "defaultRelay": "1", "port": 5005 }, { "name": "DoorBird-home", "doorbird": „192.168.XXX.XX", "username": „XXXXX", "password": „XXXXX", "defaultRelay": "1", "port": 5006 } ], "videoConfig": { "maxStreams": 4, "maxWidth": 1280, "maxHeight": 720, "maxFPS": 15, "packetSize": 376, "audio": true } },

Any idea how to solve this?

Regards

Daniel

Console message: BirdGuard-garage is running on port 34623. [6/4/2020, 09:09:05] Please add [BirdGuard-garage] manually in Home app. Setup Code: 966-39-278 [6/4/2020, 09:09:05] [Doorbird] BirdGuard-garage is listening on port 5005. [6/4/2020, 09:09:05] [Doorbird] Detected relay: 1. [6/4/2020, 09:09:05] [Doorbird] Primary relay set to: 1. [6/4/2020, 09:09:05] [Doorbird] Unable to query the Doorbird: Error: Accessory BirdGuard-garage experienced an address collision.

Am 03.06.2020 um 18:38 schrieb hjdhjd notifications@github.com:

@danholt-international https://github.com/danholt-international the issue in your config is the videoConfig blocks. Delete them for the time being...but specifically, the issue is that they do not belong in the camera {} blocks, but outside of it. Please look at the example in the README closely to see what a clean one looks like. You only need (and in fact we only support) a single videoConfig block.

"platforms": [ { "platform": "Doorbird",

"cameras": [
  {
    "name": "Doorbird 1",
    "doorbird": "your.doorbird.ip",
    "username": "some-doorbird-user (or create a new one just for homebridge)",
    "password": "some-doorbird-password",
    "audio": true
  },
  {
    "name": "Doorbird 2",
    "doorbird": "your.doorbird.ip",
    "username": "some-doorbird-user (or create a new one just for homebridge)",
    "password": "some-doorbird-password",
    "audio": true
  }
],

"videoConfig": {
   ...
}

] — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/brownad/homebridge-doorbird/issues/63#issuecomment-638314222, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMOQVBVVUIEDX22D5LXN35TRUZ37DANCNFSM4NRT2YCQ.

hjdhjd commented 4 years ago

I’ll look into this over the next day. I have a sense of the issue.

hjdhjd commented 4 years ago

@danholt-international - can you please provide the following:

  1. The homebridge log files showing the Doorbird error and non-error on startup. I’d like to see them all if you could, from a given startup attempt.

  2. Run the following command against your Doorbird and BirdGuard and paste the output here:

curl http://doorbirduser:doorbirdpass@192.168.X.X/bha-api/info.cgi

Substitute in the right username, password, and IP for each device please.

Thanks.

danholt-international commented 4 years ago

Hi!

Here we are:

[6/5/2020, 10:31:43] Homebridge is running on port 51938. [6/5/2020, 10:31:44] [Doorbird] Detected relay: 1. [6/5/2020, 10:31:44] [Doorbird] Primary relay set to: 1. [6/5/2020, 10:31:44] DoorBird-Einlieger is running on port 41379. [6/5/2020, 10:31:44] Please add [DoorBird-Einlieger] manually in Home app. Setup Code: 966-39-278 [6/5/2020, 10:31:44] [Doorbird] DoorBird-Einlieger is listening on port 5007. [6/5/2020, 10:31:44] [Doorbird] Detected relay: 1. [6/5/2020, 10:31:44] [Doorbird] Primary relay set to: 1. [6/5/2020, 10:31:44] [Doorbird] Detected relay: 1. [6/5/2020, 10:31:44] [Doorbird] Primary relay set to: 1. [6/5/2020, 10:31:44] [Doorbird] Unable to query the Doorbird: Error: Accessory DoorBird-Einlieger experienced an address collision. [6/5/2020, 10:31:44] [Doorbird] Unable to query the Doorbird: Error: Accessory DoorBird-Einlieger experienced an address collision. [6/5/2020, 10:31:44] [FibaroHCL] Loading accessories

Run the following command against your Doorbird and BirdGuard and paste the output here:

curl http://doorbirduser:doorbirdpass@192.168.X.X/bha-api/info.cgi

I have 3 doorbird devices running including the brand new D1101V:

{"BHA": { "RETURNCODE": "1", "VERSION": [{"FIRMWARE": "000125","BUILD_NUMBER": "15870439","WIFI_MAC_ADDR": "1CCAE3704175","RELAYS":["1"],"DEVICE-TYPE": "BirdGuard B101"}]}}

{"BHA": { "RETURNCODE": "1", "VERSION": [{"FIRMWARE": "000125","BUILD_NUMBER": "15870439","WIFI_MAC_ADDR": "1CCAE3704F38","RELAYS":["1"],"DEVICE-TYPE": "DoorBird D202B"}]}}

{"BHA": { "RETURNCODE": "1", "VERSION": [{"FIRMWARE": "000122","BUILD_NUMBER": "15802195","WIFI_MAC_ADDR": "1CCAE3715398","RELAYS":["1"],"DEVICE-TYPE": "DoorBird D1101V-S-V4A"}]}}

Good luck!

Daniel

hjdhjd commented 4 years ago

@brownad Success. I've refactored a decent chunk of this plugin a second time in a week to support multiple Doorbirds and accomplish a few other things as well. In 0.3.0 that I've checked in:

I've been testing this for a few days and it's pretty solid. Feel free to give it a whirl.

@danholt-international thanks for providing a fun side project for a couple of days and helping me rethink how to re-refactor parts of this plugin to support multiple Doorbirds. :smile: Can you test 0.3.0 and see if it works for you?

Fun fact...lacking additional Doorbirds myself, I had to create a fake Doorbird server and test against it for multiples. It works well...but let's see how the real deal is, shall we?

brownad commented 4 years ago

Playing catch-up..

Will publish in next few hours

Sent from my iPhone

On 6 Jun 2020, at 23:46, hjdhjd notifications@github.com wrote:

@brownad Success. I've refactored a decent chunk of this plugin a second time in a week to support multiple Doorbirds and accomplish a few other things as well. In 0.3.0 that I've checked in:

Reworked configuration and provided some more flexibility for advanced use cases. Support for multiple Doorbird devices. Eliminate the requirement for having to register a web callback with Doorbird. No more wgets...we now use the newer monitor API that Doorbird has implemented, and it is more reliable as well. I've been testing this for a few days and it's pretty solid. Feel free to give it a whirl.

@danholt-international thanks for providing a fun side project for a couple of days and helping me rethink how to re-refactor parts of this plugin to support multiple Doorbirds. 😄 Can you test 0.3.0 and see if it works for you?

Fun fact...lacking additional Doorbirds myself, I had to create a fake Doorbird server and test against it for multiples. It works well...but let's see how the real deal is, shall we?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

hjdhjd commented 4 years ago

@brownad Give it a whirl. :smile:

danholt-international commented 4 years ago

Hi!

I have installed the new version 0.3.0 and renewed all DoorBird Entries using the PlugIn GUI.

So it looks like this now:

  1. Fine in console log...

2nd… fine made by GUI: { "name": "Doorbird", "videoProcessor": "/usr/local/bin/ffmpeg", "audio": true, "doorbirds": [ { "name": "DoorBird-Door", "ip": „192.168.xxx.xx", "username": „xxxxx", "password": „xxxxx" }, { "name": "BirdGuard", "ip": „192.168.xxx.xx", "username": „xxxxx", "password": „xxxxx" }, { "name": "DoorBird-Einlieger", "ip": „192.168.xxx.xx", "username": „xxxxx", "password": „xxxxx" } ], "platform": "Doorbird" }

But no chance to load these CAMs in HomeBridge…

Any Idea?

Regards

Daniel

Am 07.06.2020 um 15:39 schrieb hjdhjd notifications@github.com:

@brownad https://github.com/brownad Give it a whirl. 😄

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/brownad/homebridge-doorbird/issues/63#issuecomment-640220767, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMOQVBWVOCA3SXAIZB64WK3RVOKBNANCNFSM4NRT2YCQ.

hjdhjd commented 4 years ago

If the log says they’re there...they should be there. :) I would delete and re-add the birds in the Home app. That should do the trick.

hjdhjd commented 4 years ago

If that doesn’t work @danholt-international - post the relevant logs please.

danholt-international commented 4 years ago

I already did it and even more I deleted the homebridge gateway entry in Home App and added the bridge again… no chance

Am 07.06.2020 um 16:26 schrieb hjdhjd notifications@github.com:

If the log says they’re there...they should be there. :) I would delete and re-add the birds in the Home app. That should do the trick.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/brownad/homebridge-doorbird/issues/63#issuecomment-640226859, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMOQVBXV53HIFBHAUFW7I4TRVOPQNANCNFSM4NRT2YCQ.

hjdhjd commented 4 years ago

If you’re going to go to that length...:smile: delete the ~/.homebridge/accessories and ~/.homebridge/persist directories too and then re-add everything...and post the logs please.

I’ve emulated your use case on my end and can add in several doorbirds, so I’m trying to figure out what the challenge is.

brownad commented 4 years ago

Yeah it came together but a clean removal was needed in the end, getting much simpler now but extremely extendable great work 👍

Sent from my iPhone

On 7 Jun 2020, at 15:31, hjdhjd notifications@github.com wrote:

If you’re going to go to that length...😄 delete the ~/.homebridge/accessories and ~/.homebridge/persist directories too and then re-add everything...and post the logs please.

I’ve emulated your use case on my end and can add in several doorbirds, so I’m trying to figure out what the challenge is.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

hjdhjd commented 4 years ago

@brownad Thanks...at some point we need to trade emails so we can talk somewhere other than here. 😄

danholt-international commented 4 years ago

Hi!

It works now! Reinstalled the Homebridge gateway with another user name and pin as well as deleting accessories and persist folders.

Great work!

Thanks a lot for your support.

Regards

Daniel

Am 07.06.2020 um 16:51 schrieb hjdhjd notifications@github.com:

@brownad https://github.com/brownad Thanks...at some point we need to trade emails so we can talk somewhere other than here. 😄

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/brownad/homebridge-doorbird/issues/63#issuecomment-640230643, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMOQVBS4FTF4GQG42GD5CULRVOSQLANCNFSM4NRT2YCQ.

brownad commented 4 years ago

That was the trick hopefully last time now

Sent from my iPhone

On 7 Jun 2020, at 15:54, danholt-international notifications@github.com wrote:

Hi!

It works now! Reinstalled the Homebridge gateway with another user name and pin as well as deleting accessories and persist folders.

Great work!

Thanks a lot for your support.

Regards

Daniel

Am 07.06.2020 um 16:51 schrieb hjdhjd notifications@github.com:

@brownad https://github.com/brownad Thanks...at some point we need to trade emails so we can talk somewhere other than here. 😄

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/brownad/homebridge-doorbird/issues/63#issuecomment-640230643, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMOQVBS4FTF4GQG42GD5CULRVOSQLANCNFSM4NRT2YCQ.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub, or unsubscribe.

hjdhjd commented 4 years ago

Yep, I think we’re refactored for the future now. :)

Don’t forget to delete the HTTP calls from your existing birds...you won’t need them anymore. :smile: