Giter Site home page Giter Site logo

Comments (6)

Entropy512 avatar Entropy512 commented on August 26, 2024 1

I'm in the process of descending the same rabbit hole - what specific dump mechanism did you use to pull the raw device capabilities?

I'm getting very close to returning a Honeywell T9 thermostat since the HomeKit integration is so minimal - but from what I've discovered as I begin descending the rabbit hole, these missing features may be on the HomeAssistant side, in which case it seems like it may be time to familiarize myself with HA development.

At least based on the descriptions of this project, it appears that modifications would likely be needed both here AND in HA core for both your use case and mine.

from aiohomekit.

Jc2k avatar Jc2k commented on August 26, 2024 1

@Entropy512 when homekit_controller pairs a device it stores a copy of what it calls the "entity map". This is JSON. In the case of the IP backend, this is pretty much the JSON returned by the device, so we know there is no data missing. We might normalize it though.

You should find it in /config/.storage/homekit_controller-entity-map (where /config is the directory that your configuration.yaml lives).

I haven't seen this data for a T9. If you posted a new ticket with it I can give it a quick once over. I can tell you that the T6 was very basic.

In general, the climate interface is very limited compared to the manufacturers own interface. In the case of Ecobee, the vendor implemented their own horrible barely functional extensions to homekit. These are so bad and cause so many issues that i'm tempted to remove support from them again. So if you find something that isn't documented in the apple documentation, we'll need some convincing to add it upstream.

from aiohomekit.

Jc2k avatar Jc2k commented on August 26, 2024 1

The easy thing first.

The doorbell button has been supported for.. probably over a year. There wasn't really a way for home assistant to have entities for it though. Entities are about state, and a button press is an event, not state. So it was exposed through device automations.

On Wednesday in 2023.8, HA got an event entity. This was designed to handle things like doorbells and buttons. And in the same release we added support to homekit controller for the doorbell as an event entity.

I'll need to get back to you about the rest.

Think about it from the HA side as well as the characteristics. What entity in HA do you map the speaker to? what features does that HA entity require?

from aiohomekit.

Jc2k avatar Jc2k commented on August 26, 2024

@LukasGrebe some here, and some in homekit_controller. From what I recall, the hard part is setting up an RTSP stream and interfacing it with the ffmpeg stuff in HA core. Have you got a copy of the Apple protocol documentation?

https[://]pdfcoffee.com/hap-specification-non-commercial-version-pdf-free.html

If you post your thinking here happy to help.

from aiohomekit.

Entropy512 avatar Entropy512 commented on August 26, 2024

OK, pulled the entity map, will file a separate ticket tomorrow. Thanks for the info on how to do so!

from aiohomekit.

LukasGrebe avatar LukasGrebe commented on August 26, 2024

thanks for the pdf @Jc2k.

I've never done any serious python programming or any video stream interaction, so this may spread out to be quite a long project with a steep learning curve 😃

ill start with baby steps maybe. im thinking the characteristics of a device, as listed in the debug json by HA, should be represented as entities in HA.

In the HAP spec, I found the service "8.12 Doorbell" which requires nothing more than the characteristic "9.75 Programmable Switch" I found the corresponding UUID 00000073-0000-1000-8000-0026BB765291 of it in the dump of my HA connected device.

Section 11.3.2 of the HAP spec defines a "video doorbell Profile" – a "11.3 Service" of an "11 IP Camera" – as
a "8.12 Doorbell" service with
secondary, required, services: "8.6 Camera RTP Stream Management", ”8.36 Speaker” & ”8.27 Microphone”

I think this would make for a nice roadmap:

  1. start with the button
  2. add the speaker function, this should be an easier start into streaming application(?) and would enable the neat automation of playing a sound file telling people at the door to go around back with home assistant
  3. maybe microphone function because it would be audio again or Video.first.. we'll see.

so let me know what you think of these assumptions:

  • Device Characteristics should map 1:1 to HA entities (possibly the new events with 2023.8)
  • implement Spec 9.75 Programmable Switch, and have it create an entity in HA (yay we could have doobell presses in HA)
  • Continue with Audio, then Video

from aiohomekit.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.