Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tado OpenAPI specification #56

Open
kritsel opened this issue Aug 16, 2024 · 5 comments
Open

tado OpenAPI specification #56

kritsel opened this issue Aug 16, 2024 · 5 comments

Comments

@kritsel
Copy link

kritsel commented Aug 16, 2024

Hi Matt,

I'm abusing this issue to thank you :-)

I've recently started playing around with the tado API, and it let me to the decision to document the API as an OpenAPI specification. Your node-tado-client code was one of the sources which provided valuable input, especially the air conditioning part (as that is not part of my tado set-up).

The specification is maintained in this git repo: https://github.com/kritsel/tado-openapispec-v2.
And a Swagger UI version is available here: https://kritsel.github.io/tado-openapispec-v2

Cheers,
Kristel

@mattdavis90
Copy link
Owner

Hi,

That's really cool! Thanks for tipping me off and I'm glad the repo was helpful.

Did you notice any endpoints that this library is missing?

Thanks

@kritsel
Copy link
Author

kritsel commented Aug 16, 2024

I didn't really do any cross-check between your library and the OpenAPI spec to be honest, so I do not really know.

I do know that in several areas your library is more extensive, as it also seems to cover some features which use endpoints offered by other domains than my.tado.com. I explicitly left them out of this spec to keep the spec pure.

@kritsel
Copy link
Author

kritsel commented Aug 16, 2024

Additional note: I did notice that some of your enums contain less values than 'mine' (and for others I was very grateful to learn about other values from your code). So that might be worth looking into.

@mattdavis90
Copy link
Owner

No problem - I will try to do a cross reference and see what I'm missing. Thanks

@abn
Copy link
Contributor

abn commented Oct 31, 2024

Just to keep things central. Here area list of endpoints I could scrape, and correspondingly marked the implemented ones. Also note that it seems the default scopes available for the public client secrets do not allow for access to some of these endpoints anyway. So, implementing them would be moot.

Endpoint Status Comments
/api/v2/devices/{serialNo}/identify
/api/v2/homes/{home_id}
/api/v2/homes/{home_id}/awayRadiusInMeters #85
/api/v2/homes/{home_id}/consent
/api/v2/homes/{home_id}/details
/api/v2/homes/{home_id}/presenceLock
/api/v2/homes/{home_id}/state
/api/v2/homes/{home_id}/users
/api/v2/homes/{home_id}/users/{user_name}
/api/v2/homes/{home_id}/deviceList
/api/v2/homes/{home_id}/devices
/api/v2/homes/{home_id}/devices/{serial_number}
/api/v2/homes/{home_id}/incidentDetection #85
/api/v2/homes/{home_id}/heatingSystem #83
/api/v2/homes/{home_id}/heatingSystem/boiler
/api/v2/homes/{home_id}/heatingSystem/underfloorHeating
/api/v2/homes/{home_id}/installations
/api/v2/homes/{home_id}/installations/{installation_id}
/api/v2/homes/{home_id}/installations/{installation_id}/devices
/api/v2/homes/{home_id}/installations/{installation_id}/revision
/api/v2/homes/{home_id}/installations/{installation_id}/acSetup
/api/v2/homes/{home_id}/installations/{installation_id}/acSetup/acSettingRecording
/api/v2/homes/{home_id}/installations/{installation_id}/acSetup/acSettingRecording/confirmation
/api/v2/homes/{home_id}/installations/{installation_id}/acSetup/acSpecs
/api/v2/homes/{home_id}/installations/{installation_id}/acSetup/availableAcModes
/api/v2/homes/{home_id}/installations/{installation_id}/acSetup/availableCommandSets
/api/v2/homes/{home_id}/installations/{installation_id}/acSetup/clcRecording/confirmation
/api/v2/homes/{home_id}/installations/{installation_id}/acSetup/commandSet
/api/v2/homes/{home_id}/installations/{installation_id}/acSetup/commandTableUpload
/api/v2/homes/{home_id}/installations/{installation_id}/acSetup/commandTableUpload/confirmation
/api/v2/homes/{home_id}/installations/{installation_id}/acSetup/commandTest
/api/v2/homes/{home_id}/installations/{installation_id}/acSetup/irRecognition
/api/v2/homes/{home_id}/installations/{installation_id}/acSetup/irRecognition/confirmation
/api/v2/homes/{home_id}/installations/{installation_id}/acSetup/onOffCandidates
/api/v2/homes/{home_id}/installations/{installation_id}/acSetup/onOffCandidates/{candidate_id}
/api/v2/homes/{home_id}/installations/{installation_id}/acSetup/onOffCandidates/{candidate_id}/test
/api/v2/homes/{home_id}/installations/{installation_id}/acSetup/onOffCandidates/confirmation
/api/v2/homes/{home_id}/installations/{installation_id}/acSetup/phase
/api/v2/homes/{home_id}/installations/{installation_id}/acSetup/selectedAcModes
/api/v2/homes/{home_id}/installations/{installation_id}/wirelessRemote/firmwareUpdate/confirmation
/api/v2/homes/{home_id}/installations/{installation_id}/wirelessRemote/installation/confirmation
/api/v2/homes/{home_id}/installations/{installation_id}/wirelessRemote/position/confirmation
/api/v2/homes/{home_id}/invitations #86
/api/v2/homes/{home_id}/invitations/{invitation_token} #86
/api/v2/homes/{home_id}/invitations/{invitation_token}/resend #86
/api/v2/homes/{homeId}/mobileDevices
/api/v2/homes/{homeId}/mobileDevices/{device_id}
/api/v2/homes/{homeId}/mobileDevices/{deviceId}/settings
/api/v2/homes/{home_id}/mobileDevices/{mobile_device_id}
/api/v2/homes/{home_id}/mobileDevices/{mobile_device_id}/geolocationConfig
/api/v2/homes/{home_id}/mobileDevices/{mobile_device_id}/geolocationFix
/api/v2/homes/{home_id}/mobileDevices/{mobile_device_id}/pushNotificationRegistration #84
/api/v2/homes/{home_id}/zones
/api/v2/homes/{home_id}/zoneStates
/api/v2/homes/{home_id}/zones/{zone_id}/awayConfiguration
/api/v2/homes/{home_id}/zones/{zone_id}/capabilities
/api/v2/homes/{home_id}/zones/{zone_id}/control
/api/v2/homes/{home_id}/zones/{zone_id}/details
/api/v2/homes/{home_id}/zones/{zone_id}/devices
/api/v2/homes/{home_id}/zones/{zone_id}/earlyStart #85
/api/v2/homes/{home_id}/zones/{zone_id}/openWindowDetection
/api/v2/homes/{home_id}/zones/{zone_id}/overlay
/api/v2/homes/{home_id}/zones/{zone_id}/schedule/activeTimetable
/api/v2/homes/{home_id}/zones/{zone_id}/schedule/copy
/api/v2/homes/{home_id}/zones/{zone_id}/schedule/setup
/api/v2/homes/{home_id}/zones/{zone_id}/schedule/setup/skip
/api/v2/homes/{home_id}/zones/{zone_id}/schedule/timetables/{timetable_id}/blocks
/api/v2/homes/{home_id}/zones/{zone_id}/schedule/timetables/{timetable_id}/blocks/{day_type}
/api/v2/homes/{home_id}/zones/{zone_id}/state/openWindow
/api/v2/me

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants