jdeath / Hubspace-Homeassistant

Hubspace Integration for Home Assistant
MIT License
187 stars 35 forks source link

hubspace doorbell #57

Closed aurochsen closed 2 months ago

aurochsen commented 11 months ago

I found the hubspace doorbell and wonder if its possible to detect the state in home assistant when the doorbell is pushed to trigger a notification? Here is a output from the api which is long as its lists the different chimes over and over again. apioutput.json

jdeath commented 11 months ago

Looks like API returns the ringing state. You probably need to hit the API reasonably often to catch it. But looks possible. I do not see a corresponding ringing. Usually the API dump shows all possible values. Can you make the file when the doorbell is ringing? You'll have to be quick. { "functionClass": "doorbell", "lastUpdateTime": 1697816900403, "value": "not-ringing" },

aurochsen commented 11 months ago

I believe this is it, I've run it a few times while ringing and a few without. When ringing the doorbell attribute changed to "value": "button-1" and swaps back to "not-ringing" when its done. Surprisingly appears to stay in ringing status for a few seconds so might not have to completely dos the api for this to be effective.
apioutput2.json

jdeath commented 11 months ago

That file is empty, but "button-1" seems to make sense and I saw that in the list of options. Maybe you can pair multiple doorbells to one base station, so it tells you the first one is ringning.

I probably will not get to this for a while. But should be able to make a "light" that turns on when the button is pressed.

To add yourself (might be quicker!) Look in light.py, Take the hubspacelock definition as a starting point and copy it as HubspaceDoorBell. To check if light is on, see if state is equal "button-1" (or maybe not equal to "not-ringing") in the is_on function. Then call this new doorbell entity when model is "HB-3015-00" in the add_entity function.

in the update(self) function, get the correct state with: self._state = self._hs.getState( self._childId, "doorbell")

You will probably have to increasing the scan_interval and base_interval to ~10s for it to get picked up.

aurochsen commented 11 months ago

Yep you can add multiple buttons so makes sense. I'll tinker with it to see if I can figure it out without breaking everything else. I might get lucky. Thanks

On Sat, Oct 21, 2023, 5:16 PM jdeath @.***> wrote:

That file is empty, but "button-1" seems to make sense and I saw that in the list of options. Maybe you can pair multiple doorbells to one base station, so it tells you the first one is ringning.

I probably will not get to this for a while. But should be able to make a "light" that turns on when the button is pressed.

To add yourself (might be quicker!) Look in light.py, Take the hubspacelock definition as a starting point and copy it as HubspaceDoorBell. To check if light is on, see if "doorbell" functionclass is equal "button-1" (or maybe not equal to "not-ringing") in the is_on function. Then call this new doorbell entity when model is "HB-3015-00" in the add_entity function.

You will probably have to increasing the scan_interval and base_interval to ~10s for it to get picked up.

— Reply to this email directly, view it on GitHub https://github.com/jdeath/Hubspace-Homeassistant/issues/57#issuecomment-1773923534, or unsubscribe https://github.com/notifications/unsubscribe-auth/AIFRUERE7GDXKL3325R67FDYAQ3TJAVCNFSM6AAAAAA6KG3GQGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONZTHEZDGNJTGQ . You are receiving this because you authored the thread.Message ID: @.***>

Expl0dingBanana commented 2 months ago

@aurochsen I am going to close this issue as it seems to be related to polling time. Please re-open the issue if you need any help!