├── .github
└── workflows
│ └── publish-openapi-docs.yml
├── CHANGELOG.md
├── CNAME
├── LICENSE
├── README.md
├── best_practice
├── README.md
├── Smart Home Controller Issuing CA.pem
└── Smart Home Controller Productive Root CA.pem
├── css
├── override.css
└── swagger-custom.css
├── images
├── bosch_icon.png
├── bosch_smart_home.jpg
└── bosch_smart_home_logo.png
├── index.html
├── openapi
├── ClimateControl-local-openapi-v3.yml
├── DoorWindowContact-local-openapi-v3.yml
├── IntrusionDetectionSystem-local-openapi-v3.yml
├── LightControl-II-local-openapi-v3.yml
├── LightControl-local-openapi-v3.yml
├── MainResources-local-openapi-v3.yml
├── MotionDetector-local-openapi-v3.yml
├── OutdoorSiren-local-openapi-v3.yml
├── PresenceSimulationSystem-local-openapi-v3.yml
├── RoomThermostat-local-openapi-v3.yml
├── SecurityCamera360-local-openapi-v3.yml
├── SecurityCameraEyes-local-openapi-v3.yml
├── Shutter-II-local-openapi-v3.yml
├── Shutter-local-openapi-v3.yml
├── SmartPlug-local-openapi-v3.yml
├── SmokeDetector-II-local-openapi-v3.yml
├── SmokeDetector-local-openapi-v3.yml
├── Thermostat-II-local-openapi-v3.yml
├── Thermostat-local-openapi-v3.yml
├── Twinguard-local-openapi-v3.yml
├── UniversalSwitch-local-openapi-v3.yml
└── WaterDetectionSystem-local-openapi-v3.yml
└── postman
├── Bosch Smart Home Controller.postman_collection.json
├── Bosch Smart Home Controller.postman_environment.json
├── README.md
└── images
├── postman_add_certificate.png
├── postman_add_pems.png
├── postman_check_shc_connection.png
├── postman_collections.png
├── postman_disable_ssl_verification.png
├── postman_environment_host.png
├── postman_environment_pass.png
├── postman_new_client.png
├── postman_settings.png
└── shc-client-schematic-view.png
/.github/workflows/publish-openapi-docs.yml:
--------------------------------------------------------------------------------
1 | name: Publish OpenAPI documentation
2 | on:
3 | push:
4 | branches:
5 | - master
6 | paths:
7 | - 'openapi/**.yml'
8 | workflow_dispatch:
9 | jobs:
10 | # Single deploy job no building
11 | deploy:
12 | environment:
13 | name: github-pages
14 | url: $
15 | runs-on: ubuntu-latest
16 | # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
17 | permissions:
18 | contents: read
19 | pages: write
20 | id-token: write
21 | steps:
22 | - name: Checkout
23 | uses: actions/checkout@v3
24 | - name: Setup Pages
25 | uses: actions/configure-pages@v3
26 | - name: Upload Artifact
27 | uses: actions/upload-pages-artifact@v2
28 | with:
29 | # upload entire directory
30 | path: '.'
31 | - name: Deploy to GitHub Pages
32 | id: deployment
33 | uses: actions/deploy-pages@v2
34 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 |
2 | # Change Log
3 | All notable changes to this project will be documented in this file.
4 |
5 | The format is based on [Keep a Changelog](http://keepachangelog.com/)
6 | and this project adheres to [Semantic Versioning](http://semver.org/).
7 |
8 |
9 | ## [3.12.0] - 2024-07-31
10 | ### Changed
11 | - New: Automation trigger
12 | - Improvements: OpenAPI documentation (thanks @SteffenMangold)
13 |
14 | ## [3.8.0] - 2023-12-05
15 | ### Changed
16 | - New: UserDefinedStates
17 |
18 | ## [3.2.1] - 2023-02-09
19 | ### Changed
20 | - Added OpenAPI documentation
21 |
22 | ## [3.2.0] - 2022-12-09
23 | ### Changed
24 | - Updated HTTP request header to use "api-version : 3.2" instead of "api-version : 2.1"
25 | - Synced Postman collection version with API version 3.2
26 | - Updated Postman environment variables
27 | - Removed deprecated requests for Intrusion Detection from Postman collection
28 | - New: Door/Window Contact II Bypass and Vibration states
29 | - New: Motion Detector Illuminance state (in Lux)
30 | - New: Shutter Control II BlindsControl state for controlling the angle of blinds
31 | - New: Shutter Control II BlindsSceneControl state for controlling the angle and level of blinds at the same time
32 | - Hint: Light / Shutter Control II works with child devices using "#" in the device IDs; make sure to escape "#" in URLs with "%23"
33 | - Hint: Light Control II can control two lamps (two child devices); PowerSwitch state must be PUT/GET on child devices
34 | - Hint: PowerMeter state also works with Light / Shutter Control II now
35 |
36 | ## [2.1.0] - 2021-01-22
37 | ### Changed
38 | - Updated HTTP request header to use "api-version : 2.1" instead of "api-version : 1.0"
39 | - Synced Postman collection version with API version 2.1
40 | - Updated Postman environment variables
41 | - Added new requests for Intrusion Detection in Postman collection in folder Domains
42 | - Deprecated old requests for Intrusion Detection (will be removed in the future) in Postman collection
43 |
44 | ### Deprecated
45 | - API 1.x will no longer be supported beginning with the Smart Home Controller update scheduled for May 2021
46 |
47 | ## [0.5.0] - 2021-01-20
48 | ### Changed
49 | - Initial release
50 |
--------------------------------------------------------------------------------
/CNAME:
--------------------------------------------------------------------------------
1 | local.apidocs.bosch-smarthome.com
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Bosch Smart Home Controller Local API
2 |
3 |
4 | ## Contents
5 |
6 | - [Overview](#overview)
7 | - [OpenAPI Documentation](https://local.apidocs.bosch-smarthome.com/)
8 | - [Postman Collection](postman/)
9 | * [Import the collection, the environment, the certificate and the key into Postman](postman#import-the-collection-the-environment-the-certificate-and-the-key-into-postman)
10 | * [Check the connection with the Bosch Smart Home Controller in your local network](postman#check-the-connection-with-the-bosch-smart-home-controller-in-your-local-network)
11 | * [Register a New Client to the Bosch Smart Home Controller](postman#register-a-new-client-to-the-bosch-smart-home-controller)
12 | * [Get events from the Bosch Smart Home Controller (Long Polling)](postman#get-events-from-the-bosch-smart-home-controller-long-polling)
13 | - [Best Practice](best_practice/)
14 | * [Watch this repository](best_practice#watch-this-repository)
15 | * [Use Long Polling instead of Short Polling](best_practice#use-long-polling-instead-of-short-polling)
16 | * [Limit the number of requests in a given time period](best_practice#limit-the-number-of-requests-in-a-given-time-period)
17 | * [Host Verification](best_practice#host-verification)
18 | - [Terms and Conditions](#terms-and-conditions)
19 |
20 | ## Overview
21 |
22 | [Bosch Smart Home](https://www.bosch-smarthome.com/) products allow you to automatically and remotely control the processes in your home. Each device has a unique purpose in your Smart Home and provides ease and convenience to your changing daily routines. Whether you want to network your heating system or secure the safety of your home, the Bosch Smart Home System offers you complete and personalised solutions to you and your home's needs.
23 |
24 | With this documentation you can make your Bosch Smart Home System interoperable. If you are new to this topic, start to play with the [Postman Collection](postman/) to understand how the connection is established and how to get and set states. Postman is a collaboration platform for API development and has the advantage that it can generate code in many languages.
25 |
26 | Once you are familiar with the principles of the communication, use the [OpenAPI Documentation](https://local.apidocs.bosch-smarthome.com/) to understand how all the devices, rooms, messages, services and states are getting requested. You will also find the structure and content of all JSON responses, errors and HTTP status codes there.
27 |
28 | Finally, you should take a look at the [Best Practice](best_practice/) section in order to establish an optimal communication with the Bosch Smart Home Controller.
29 |
30 | ## Terms and Conditions
31 | Robert Bosch Smart Home GmbH, Schockenriedstr. 17, 70565 Stuttgart, Germany ("Bosch Smart Home") provides a description of the local Bosch Smart Home Controller REST API, that allows **private, non-profit** Developers ("Developer") to locally control their Bosch Smart Home Devices.
32 |
33 | By accepting these Terms and Conditions, through either accessing or using the API, the Developer agrees to be bound by these Terms and Conditions.
34 |
35 | ### Definitions
36 | "API" refers to the interface functionality provided by Bosch Smart Home allowing private, non-profit Developers to access Bosch Smart Home Data.
37 |
38 | "Application" refers to web or other software services or applications created by Developer that utilize or interact with the API and are authorized to be published.
39 |
40 | "Client" refers to software created by developers using the API. Clients can be, for example (but are not limited to), mobile apps or web services.
41 |
42 | "Data" refers to data made available by accessing the API of a specific, local and personally owned Smart Home Controller ("SHC").
43 |
44 | "Documentation" refers to the provided API description and usage examples.
45 |
46 | "Commercial" means intended for or directed towards commercial advantage or monetary compensation.
47 |
48 | Privacy Policy refers to the Privacy Policy found [here](https://www.bosch-smarthome.com/uk/en/privacy-statement).
49 |
50 | ### Purpose and License
51 | These Terms and Conditions and any and all restrictions and policies implemented by Bosch Smart Home from time to time with respect to the API as set forth in the Documentation govern Developers rights to use and access the API for the purpose of developing, implementing and publishing Applications.
52 |
53 | Subject to these Terms and Conditions, including the restrictions set forth, Bosch Smart Home grants to Developer a non-exclusive, non-transferable, non-sublicensable, worldwide, revocable right and license during the Term to privately use and make calls to the API to develop, implement and distribute Applications solely for non profit usage.
54 |
55 | Developer grants to Bosch Smart Home a non-exclusive, worldwide, royalty-free license to market, sell and distribute such Applications; and to permit others to access, install, purchase and (in the case of downloadable software applications) download such Applications.
56 |
57 | ### Restrictions
58 | The licenses of these Terms and Conditions are explicitly conditioned on Developers adherence to the following restrictions and compliance with its responsibilities as set forth herein.
59 |
60 | The use of the API only applies to private, non-profit individuals. A commercial use in any way, either direct or indirect, is prohibited.
61 |
62 | Using the API requires identification against the Bosch Smart Home Controller with an individual Client ID and Client Name that starts with "oss_" followed by the name of the open source project, or the name of the developer.
63 |
64 | The Client must register with the primary role "ROLE_RESTRICTED_CLIENT".
65 |
66 | Developer will be solely responsible for the technical installation and operation of its Applications; creating and displaying information and content on, through or within its Applications; ensuring that its Applications do not violate or infringe the Intellectual Property Rights of any third party; ensuring that Applications are not offensive, profane, obscene, libelous or otherwise illegal; ensuring that its Applications do not contain or introduce Malicious Software into a Service, an API, any Service Data or other data stored or transmitted using the Service; and ensuring that its Applications are not designed to or utilized for the purpose of spamming any Bosch Smart Home subscribers, Agents or End-Users.
67 |
68 | Developers shall, in particular, not bypass any authentication or encryption mechanisms, or misuse API interfaces for purposes other than those, which are clearly intended by this Documentation (e.g. reading Data from the Bosch Smart Home System).
69 |
70 | Developer shall not, under any circumstances, through Applications or otherwise, repackage or resell the Services, or any part thereof, API or Data.
71 |
72 | Developer is not permitted to use the API, or any Data in any manner that does or could potentially undermine the security of the Services, the API, Data or any other information stored or transmitted using the Services.
73 |
74 | In addition, Developer shall not, and shall not attempt to: interfere with, modify or disable any features, functionality or security controls of the Services or the API, defeat, avoid, bypass, remove, deactivate or otherwise circumvent any protection mechanisms for the Service or the API, or reverse engineer, decompile, disassemble or derive source code, underlying ideas, algorithms, structure or organizational form from the Services or the API.
75 |
76 | Developers shall fully comply with all applicable governmental, legal, regulatory and professional requirements when using the API, including but not limited to, copyright, trademark rights and data protection. The use of claims (e.g. "works with Bosch") or trademarks (e.g. Bosch logos of any kind) that indicates a direct or indirect involvement with Bosch is prohibited.
77 |
78 | Applications shall not, in any manner, display any form of advertising within or connected to any Service Data received by any Subscriber, Agent or End-User.
79 |
80 | Bosch Smart Home may at its sole and exclusive discretion, change, alter, modify, add and remove features, content and other materials of the Documentation and/or API at any time. Bosch Smart Home may suspend or discontinue any feature or functionality provided at any time without any prior notice, obligation or liability. The developer is aware that changes in the API might require changes in the Client. The costs for such changes have to be borne by the developer.
81 |
82 | Any technical implementation and fulfillment of system requirements of the API is the sole responsibility of the Developer. Developers are obliged to adhere to the requirements of the API, particularly regarding the correct technical integration and use of the API (see documentation). The user acknowledges that an incorrect technical integration or use may lead to defects in the functions of the API, or even the entire Client, or the connected Bosch Smart Home Devices.
83 |
84 | Application shall not, and shall not attempt to connect with any Bosch backend system, which explicitly is not part of the allowed local API use, including systems provided by third parties.
85 |
86 | Developers shall not use the API for any action that can cause damages due to the interaction of the API or the Client with the home appliances (e.g. by bypassing security prompts on the home appliances, or by executing commands that can cause harm to life or limb, or to the home appliances, or to any other goods).
87 |
88 | Developers may produce and reproduce this Documentation for their own use, but may not share a modified or derived version of this Documentation.
89 |
90 | Developers shall not use the API for publication of explicit content or offensive communication.
91 |
92 | The Documentation is subject to the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).
93 |
94 | Developer must comply with all restrictions and guidelines set forth in this Agreement in all uses of the API and Data. If Bosch Smart Home believes, in its sole discretion, that Developer has violated or attempted to violate any term, condition or the spirit of this Agreement, the license afforded Developer pursuant to this Agreement may be temporarily or permanently revoked, with or without notice to Developer.
95 |
96 | ### Data
97 | To the extent Developers Applications transmit Data outside a Service, Developer represents and warrants that he has notified all users of such Applications that their Data will be transmitted outside the Service and that Bosch Smart Home is not responsible for the privacy, security or integrity of such Data.
98 |
99 | ### Modifications
100 | Developer acknowledges and agrees that Bosch Smart Home may modify this Agreement, the Services, the API, the General API Policies, and the Privacy Policy, from time to time (a "Modification"). Developer further acknowledges and agrees that such Modifications may be implemented at any time and without any notice.
101 |
102 | Developer acknowledges that a Modification may have an adverse effect on Applications, including but not limited to changing the manner in which Applications communicate with the API and display or transmit Data.
103 |
104 | Bosch Smart Home shall have no liability of any kind to Developer or any user of Developer's Applications with respect to such Modifications or any adverse effects resulting from such Modifications.
105 |
106 | ### Warranty
107 | Bosch Smart Home asks all Developers working with their Documentation to inform Bosch Smart Home about any defects found in the API as soon as possible to give Bosch Smart Home a chance to remedy it.
108 |
109 | All aspects of the API, including all server and network components, are provided on an "as is" and "as available" basis.
110 |
111 | Developer acknowledges that Bosch Smart Home does not warrant that the API will be uninterrupted, timely, secure, or error-free and no information or advice obtained by Developer from Bosch Smart Home or through the Service shall create any warranty not expressly stated in this agreement. Besides that, the statutory warranty shall apply.
112 |
113 | ### Liability
114 | In accordance with the provisions of law, Bosch Smart Home shall be liable for damages in the following cases: damage to persons; damage governed by the German Product Liability Act (Produkthaftungsgesetz); damage caused by fraudulent behavior or with intent on the part of Bosch Smart Home; and damage caused by gross negligence on the part of their legal representatives or executive staff.
115 |
116 | Without prejudice to the liability defined in the section above, the Bosch Smart Homes liability for damages shall be limited to the level of damage foreseeable in contracts of this kind in the case of damage resulting from an ordinarily negligent breach of fundamental contractual obligations as well as in the case of damage caused due to gross negligence by the ordinary vicarious agents.
117 |
118 | Except where there are explicit provisions to the contrary in these Terms and Conditions, Bosch Smart Home shall bear no liability beyond that defined above.
119 |
120 | Contributory negligence on the part of the Developer must be taken into account.
121 |
122 | ### Indemnity
123 | Developer will indemnify and hold Bosch Smart Home harmless against any claim brought by a third party against Bosch Smart Home arising from or related to any breach of an obligation, representation, warranty, covenant or other provision of these Terms and Conditions by Developer or any matter which. Developer has expressly agreed to be responsible pursuant to these Terms and Conditions.
124 |
125 | ### Support
126 | This Agreement does not entitle Developer to any support for the Services or the API, unless Developer makes separate arrangements with Bosch Smart Home for such support.
127 |
128 | Developer acknowledges and agrees that Bosch Smart Home has no obligation to provide support or technical assistance to the users of Applications.
129 |
130 | However, Bosch Smart Home will try their best to respond to issues raised in the [GitHub tracker](https://github.com/BoschSmartHome/bosch-shc-api-docs/issues). Developer should report any trouble he might have with the Documentation exclusively there.
131 |
132 | ### Confidentiality
133 | Developer may from time to time, gain access to Confidential Information. Developer may use Confidential Information only to the extent necessary to exercise its rights under this Terms and Conditions. Subject to the express permissions set forth herein, Developer may not disclose Confidential Information to a third party without the prior express consent of Bosch Smart Home, provided in writing or by email. Without limiting any other obligation of Developer under this Terms and Conditions, Developer agrees that he will protect Confidential Information from unauthorized use, access, or disclosure in the same manner that Developer would use to protect its own confidential and proprietary information of a similar nature and in any event with no less than a reasonable degree of care.
134 |
135 | ### General provisions
136 | To the extent permitted by law, the exclusive place of jurisdiction for any legal disputes shall be Stuttgart, Germany.
137 |
138 | These Terms and Conditions as well as all agreements between Bosch Smart Home and the Developer in this regard shall be subject to German law. It is hereby explicitly stipulated that the United Nations Convention on Contracts for the International Sale of Goods shall not be applicable.
139 |
140 | Should a provision be or become invalid, this shall not affect the validity or effectiveness of the other provisions. In such a case, the invalid provision should be replaced by a valid agreement that is as similar as possible to the commercial intention of the original, invalid provision.
141 |
142 | *November 26th, 2019*
143 |
--------------------------------------------------------------------------------
/best_practice/README.md:
--------------------------------------------------------------------------------
1 | # Best Practice
2 | In order to get the best user experience when using the local interface of your Bosch Smart Home Controller, we have a few best practice tips for you. These tips should be considered and implemented in any public open source project that interacts with the Bosch Smart Home Controller.
3 |
4 | ## Watch this repository
5 | First of all, watch this repository to get notified when we change or update our Terms and Conditions or when there are changes or updates in the API. In case the Terms and Conditions are changed, the commit message will always contain the keyword `T&C`. In case the API is changed or updated, the commit message will always contain the keyword `API`.
6 |
7 | ## Use Long Polling instead of Short Polling
8 | In order to get notified as soon as a value changes, it is recommended to use the [Long Polling mechanism to receive events](https://github.com/BoschSmartHome/bosch-shc-api-docs/tree/master/postman#get-events-from-the-bosch-smart-home-controller-long-polling) (see Postman collection 'Long Polling Subscribe'). Long Polling is a mechanism in which the client makes a request, and the server keeps the connection open until there is new information available. Once available, the server responds by sending the new information to the client and closes the connection afterwards. As soon as the client receives the new information, it immediately sends another request and the process is repeated. This mechanism also ensures that you do not miss any events, because the Bosch Smart Home Controller keeps all information for the client until the client starts another Long Polling request.
9 | Please be aware that every subscription has a maximum age of 24 hours and an inactivity timeout of 5 minutes, i.e. a new subscription has to be requested if a subscription ID is either used for 24 hours or no long-poll request was sent for 5 minutes. A long-poll request will fail after the corresponding subscription ID has expired. Re-subscribing and then using the new subscription ID solves this.
10 |
11 | ### Limit the number of requests in a given time period
12 | In addition to the use of the Long Polling mechanism, it is also advisable to keep the number of requests in a given time period low. The number of requests the Bosch Smart Home Controller can process depends heavily on how many edge devices and clients are paired with it.
13 |
14 | You should also consider that a large number of requests flood the log file. In the event of a support request, the error may no longer be found in the log file, making an error analysis difficult.
15 |
16 | ## Host Verification
17 | The communication with the Bosch Smart Home Controller is cryptographically protected via TLS. However, it is recommended that your OSS implementation verifies the Bosch Smart Home Controller IP and the certificate authority (CA). You should avoid such implementation as the following (example given in Node.js):
18 | ```javascript
19 | const requestOptionsWithoutHostVerification = {
20 | key: fs.readFileSync('client-key.pem'),
21 | cert: fs.readFileSync('client-cert.pem'),
22 | rejectUnauthorized: false // No host verification at all
23 | }
24 | ```
25 | Instead verify the IP and the CA:
26 | ```javascript
27 | const requestOptionsWithHostVerification = {
28 | key: fs.readFileSync('client-key.pem'),
29 | cert: fs.readFileSync('client-cert.pem'),
30 | ca: fs.readFileSync(tls_ca_chain), // Concatenate the Smart Home Controller Productive Root CA with the Smart Home Controller Issuing CA into one file
31 | checkServerIdentity: function(host) {
32 | if (host === shcIp) {
33 | return undefined;
34 | } else {
35 | return new Error('Server identity check failed!');
36 | }
37 | }
38 | }
39 | ```
40 | The Smart Home Controller Productive Root CA and the Smart Home Controller Issuing CA are attached to this repository.
--------------------------------------------------------------------------------
/best_practice/Smart Home Controller Issuing CA.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN CERTIFICATE-----
2 | MIIFETCCAvmgAwIBAgIUR8y7kFBqVMZCYZdSQWVuVJgSAqYwDQYJKoZIhvcNAQEL
3 | BQAwYzELMAkGA1UEBhMCREUxITAfBgNVBAoMGEJvc2NoIFRoZXJtb3RlY2huaWsg
4 | R21iSDExMC8GA1UEAwwoU21hcnQgSG9tZSBDb250cm9sbGVyIFByb2R1Y3RpdmUg
5 | Um9vdCBDQTAeFw0xNTA4MTgwNzI0MjFaFw0yNTA4MTYwNzI0MjFaMFsxCzAJBgNV
6 | BAYTAkRFMSEwHwYDVQQKDBhCb3NjaCBUaGVybW90ZWNobmlrIEdtYkgxKTAnBgNV
7 | BAMMIFNtYXJ0IEhvbWUgQ29udHJvbGxlciBJc3N1aW5nIENBMIIBIjANBgkqhkiG
8 | 9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsBNK3PPd/E9jbf3YkZIDtfIl2Vo0Nx7oeOsh
9 | F0L9tZwqC3+85ymB5LgFBOoHpr7tTFRb4elyPsfyv/GfXuJmDIxVAWBn/pxFzODa
10 | J3DGJ2kvwipvMNp7IxXHhK10YsG8AaT0QaeaYGq1GRp5uNZafwAOOkrrQfwtG+za
11 | Qn9qUxLYBrB++RN/5mk4Z7gyrq7fi84T23yMOtVkdb+mlb9qStQ3mllglqrRlJQo
12 | MKdQxe24Farg6N3y7h5bxLJEEXGqGExDNwR46ep+4Ys7W2QeD/2LXwYvKQ+wO70+
13 | BNxnikkq8kPcq8694HMsfzUTBrxuHQGi6td9o+3CW01AOEvV0wIDAQABo4HEMIHB
14 | MBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0OBBYEFHy1ci5zZEQaHLDAaYFYez8R
15 | FHsXMB8GA1UdIwQYMBaAFOFQaxE4w2eoyE+f6oXGTxH1V1Y+MA4GA1UdDwEB/wQE
16 | AwIBBjBbBgNVHR8EVDBSMFCgTqBMhkpodHRwczovLzI5Lm1jZy5lc2NyeXB0LmNv
17 | bS9jcmw/aWQ9ZTE1MDZiMTEzOGMzNjdhOGM4NGY5ZmVhODVjNjRmMTFmNTU3NTYz
18 | ZTANBgkqhkiG9w0BAQsFAAOCAgEAZpp9kE7Qy6tcQrfW4DJAqEcUhzg4zncJYxpb
19 | dTn/o5TvH/uPVOfoxJgtsTFtsY/ytcPJReLcgmqrRN1gTNefdXylJr688hFyhf1Z
20 | xGDoZG8MuzM9QXaHC6UNFzaeZj46ZYfdJiUtDXsYN82opGE6GhBju5JOLoFd2vYK
21 | qUnVKWqdrN0KkihClry6NcfiLEA70m00pNtsVZyVGyk7DP4ErVF5K3j40T5v4ZJl
22 | Q9ri/V97zyqXeIti8kZdla7kzJBFbGEumlUyVPRpoxdpnvWM7AgTOXXsh2sCFAA1
23 | 0hUHVOwBZCylaNUXjKMtnA938ykhNCx+OCd2NpZBf3qB6+w2MS7dQuRvMsDJcnLq
24 | X80QHJzXpmDsXEiwKyvmZnZbiAgoOiUSe2O6OaGsDRW8UBzi+wm42pxgbDnAcGUu
25 | r9Cf5y0+SFS0aQkqcWbJYwPy+LQi2MJGkv34FxTOCqygluzZt+w5xZyq5PcpPNm5
26 | 1s4Ps2+psvNhcAG3EHRF9vBnlr1MCVU04XYig54HeNGFIQQAFWFFR/9DgnH/cFLf
27 | gPoJEZV/VZtsOjy/EsqYZMFJBzJEtKOiTCKDe+pVirDB9zrcVsJG8LGiLd7266e9
28 | 1Eg5GjNiavG7ninMOWSJLfW4xPD6S3zxDAYjsPDJbMFqEFIF2ZvyYC1mVeflB/WM
29 | xnZ+67w=
30 | -----END CERTIFICATE-----
31 |
--------------------------------------------------------------------------------
/best_practice/Smart Home Controller Productive Root CA.pem:
--------------------------------------------------------------------------------
1 | -----BEGIN CERTIFICATE-----
2 | MIIFujCCA6KgAwIBAgIUIbQ+BIVcGVD29UIe+Sv6/+Qy/OUwDQYJKoZIhvcNAQEL
3 | BQAwYzELMAkGA1UEBhMCREUxITAfBgNVBAoMGEJvc2NoIFRoZXJtb3RlY2huaWsg
4 | R21iSDExMC8GA1UEAwwoU21hcnQgSG9tZSBDb250cm9sbGVyIFByb2R1Y3RpdmUg
5 | Um9vdCBDQTAeFw0xNTA4MTgwNzIwMTNaFw0zNTA4MTQwNzIwMTNaMGMxCzAJBgNV
6 | BAYTAkRFMSEwHwYDVQQKDBhCb3NjaCBUaGVybW90ZWNobmlrIEdtYkgxMTAvBgNV
7 | BAMMKFNtYXJ0IEhvbWUgQ29udHJvbGxlciBQcm9kdWN0aXZlIFJvb3QgQ0EwggIi
8 | MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCcFmt1vu85lfXMl66Ix32tmEbc
9 | n4bt6Oa6QIiT6zJIR2DsE85c42H8XogATWiqfp3FTbmfIIijfoj9JL6uyFkw0yrT
10 | qfttw9KD8DRIV973F1UyAP8wPxpdt2QPJCBMmqymC6h2oT7eS6hRIMbY3SFLa5lO
11 | 4EQ10uflZnY9Yv7kTzeuEw1qWqd8kHhfDBq3k2N90oopt47ghDQ/qUmne19xp0jQ
12 | fXFA6hfudNcU9vuZ6hvObm25++ySmRKvtuY+O/CmLVnUJngpKQWJCnYOv3/Z5StZ
13 | 5aVvLR028ozc1oqdL8fVeaJX8xIdBsSjB+gOaauEYodJzVfeLdXVb8R4CqVighci
14 | EUuwZVhzdtA5qs2O9jLJv6JFiD+uuRn8Ip1uYiajYqkRzR2egKWFfhZvV6Yk2zuw
15 | s8FUtagtYRwKCp+F+f+PCryLcBcnyc7iVm0Xo7kQAjzoDql4vmXQybmP6kU9qzmD
16 | xEG02s6FHVn1X1X4htXc/+Wh0/0850T+Up2HeN+ZN92BubI8yM62mecvfx08vSb1
17 | 5AviYkQQE37KzGeKYYbciEMeVu5sLx/lN6YIcyHY5kTUsU7SCzw7vTTsNjTzuzYa
18 | l2fudHS8lOHaAwvZP//14cM+N9beQqLzxS7jdmFQxtToyzdbgL1OekO58fiqti4W
19 | d88bnmMBZsl3bR9b5QIDAQABo2YwZDASBgNVHRMBAf8ECDAGAQH/AgECMB0GA1Ud
20 | DgQWBBThUGsROMNnqMhPn+qFxk8R9VdWPjAfBgNVHSMEGDAWgBThUGsROMNnqMhP
21 | n+qFxk8R9VdWPjAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQELBQADggIBAEp2
22 | bQei/KQGrnsnqugeseDVKNTOFp5o0xYz8gXEWzRCuAIo/sYKcFWziquajJWuCt/9
23 | CexNFWkYtV95EbunyE+wijQcnOehGSZ2gWnZiQU2fu1Y4aA5g3LlB61ljnbhX4SE
24 | tLs31iTdjPFcWMx+rsS3+qfuOiOqQbliTykG+p/ULVLLPDCmzL/MHg3w5AiGB8k5
25 | i1npzDKJKpLFGFWEnECYKhPi93rLfdgmOEFalIoFB96/upm6bfOWbNvsdIspFVGe
26 | 3zSjWUvveHe9mm+VTq9aldwy/J0/81oFF7C5CmlB31sDwfY+qF5/mHKfPbrnWTIi
27 | QAiZJxXrbmeWX9JVutRbokP1UTX63ghH+BNab/E1D020JVkimMf2Vg1/5WR2gdkN
28 | S4j+f//uVKuCr7bPGWzcADeURlyCmW/O2CNfln+T/0YFg2lET9PAEDkZ7Js3I/4f
29 | +Dy58LwjdQYI3Z6qKA9h0Cfgy6KOA8Omyw3QmdTAAd0EgABQ/vxNVL3Q4Oh8Eiff
30 | ZVrpFWLgMxeRckHTMqG9SfGBdZQCO7XPz7mb/8Da6prEfw4VKvdh9llvatWeB1V1
31 | vqixwFVuHIWKxIiR8GXZEjIQXBmeuzdgIceYcw12HYHLUifFozaNtjxMcPcIALKz
32 | GrR4oS2tFVZCjwF4vPAt15fsbEx/F/NfaO6SAFz8
33 | -----END CERTIFICATE-----
34 |
--------------------------------------------------------------------------------
/css/override.css:
--------------------------------------------------------------------------------
1 | @charset "UTF-8";
2 | /* Variable definitions */
3 | :root {
4 | --blue-dark: #005691;
5 | --post: #78BE20;
6 | --put: #fcaf17;
7 | --delete: #E20015;
8 | --get: #008ECF;
9 | --btn-outline:#777777;
10 |
11 | --post-background: rgba(120, 190, 32, 0.1);
12 | --put-background: rgba(252, 175, 23, 0.1);
13 | --delete-background: rgba(226, 0, 21, 0.1);
14 | --get-background: rgba(0, 142, 207, 0.1);
15 | }
16 |
17 | body.apidocs {
18 | background-color: white;
19 | background-image: url(./images/bosch_supergraphic_top.jpg);
20 | background-position: center top;
21 | background-repeat: no-repeat;
22 | background-size: 100% 17px;
23 | color: #2e3032;
24 | margin-top: 17px;
25 | margin-left: 48px;
26 | margin-right: 48px;
27 | padding-top: 20px;
28 | }
29 |
30 | a:link, a:hover, a:visited, a:active {
31 | color: var(--blue-dark) !important;
32 | text-decoration: none !important;
33 | }
34 |
35 | /* Topbar */
36 | .swagger-ui .topbar {
37 | background-color: white;
38 | }
39 | .swagger-ui .topbar * {
40 | color: black;
41 | }
42 |
43 | .swagger-ui .topbar-wrapper {
44 | display: flex;
45 | justify-content: space-between;
46 | align-items: center;
47 | }
48 |
49 | .swagger-ui .info {
50 | margin: 10px 0;
51 | }
52 |
53 | /* Spec selection / Download URL border*/
54 | .swagger-ui .topbar .download-url-wrapper .select-label select {
55 | border: 2px solid var(--btn-outline);
56 | }
57 | /* Swagger UI button */
58 | .swagger-ui .btn {
59 | border-radius: 0;
60 | box-shadow: none;
61 | border: 1px solid var(--btn-outline);
62 | }
63 | .swagger-ui .btn.authorize {
64 | color: #3b4151;
65 | border-radius: 0;
66 | box-shadow: none;
67 | border: 1px solid var(--btn-outline);
68 | }
69 | .swagger-ui .btn.authorize svg {
70 | fill: #3b4151;
71 | }
72 | .swagger-ui select {
73 | border-radius: 0;
74 | }
75 |
76 | /* Models */
77 | .swagger-ui section.models {
78 | border-radius: 0;
79 | }
80 |
81 | /* Execute button */
82 | .swagger-ui .btn.execute {
83 | width: auto;
84 | background-color: #005691;
85 | border-bottom: 2px solid #008ECF;
86 | }
87 | @-webkit-keyframes pulse {
88 | 0% {
89 | color: #fff;
90 | background: #005691;
91 | box-shadow: 0 0 0 0 rgba(73, 144, 226, .8)
92 | }
93 | 70% {
94 | box-shadow: 0 0 0 5px rgba(73, 144, 226, 0)
95 | }
96 | to {
97 | color: #fff;
98 | background: #005691;
99 | box-shadow: 0 0 0 0 rgba(73, 144, 226, 0)
100 | }
101 | }
102 |
103 | /* Operation block*/
104 | .swagger-ui .opblock {
105 | border-radius: 0;
106 | box-shadow: none;
107 | }
108 |
109 | .swagger-ui .opblock.opblock-post {
110 | background: var(--post-background);
111 | border-color: var(--post);
112 | }
113 |
114 | .swagger-ui .opblock.opblock-put {
115 | background: var(--put-background);
116 | border-color: var(--put);
117 | }
118 |
119 | .swagger-ui .opblock.opblock-delete {
120 | background: var(--delete-background);
121 | border-color: var(--delete);
122 | }
123 |
124 | .swagger-ui .opblock.opblock-get {
125 | background: var(--get-background);
126 | border-color: var(--get);
127 | }
128 |
129 | /* HTTP Operation badge colors */
130 | .swagger-ui .opblock .opblock-summary-method {
131 | border-radius: 0;
132 | }
133 |
134 | .swagger-ui .opblock.opblock-post .opblock-summary-method {
135 | background: var(--post);
136 | }
137 |
138 | .swagger-ui .opblock.opblock-put .opblock-summary-method {
139 | background: var(--put);
140 | }
141 |
142 | .swagger-ui .opblock.opblock-delete .opblock-summary-method {
143 | background: var(--delete);
144 | }
145 |
146 | .swagger-ui .opblock.opblock-get .opblock-summary-method {
147 | background: var(--get);
148 | }
149 |
150 | .swagger-ui .opblock.opblock-post .tab-header .tab-item.active h4 span::after {
151 | background: var(--post);
152 | }
153 |
154 | .swagger-ui .opblock.opblock-put .tab-header .tab-item.active h4 span::after {
155 | background: var(--put);
156 | }
157 |
158 | .swagger-ui .opblock.opblock-delete .tab-header .tab-item.active h4 span::after {
159 | background: var(--delete);
160 | }
161 |
162 | .swagger-ui .opblock.opblock-get .tab-header .tab-item.active h4 span::after {
163 | background: var(--get);
164 | }
165 |
166 | /* blocks around Operations */
167 | .swagger-ui .opblock,
168 | .swagger-ui .opblock .opblock-summary-method,
169 | /* Buttons */
170 | .swagger-ui select,
171 | .swagger-ui section.models,
172 | .swagger-ui .btn.authorize,
173 | .swagger-ui .btn,
174 | /* black markdown description boxes */
175 | .swagger-ui .response-col_description__inner div.markdown,
176 | .swagger-ui .response-col_description__inner div.renderedMarkdown,
177 | /* input fields */
178 | .swagger-ui input[type="email"],
179 | .swagger-ui input[type="file"],
180 | .swagger-ui input[type="password"],
181 | .swagger-ui input[type="search"],
182 | .swagger-ui input[type="text"],
183 | .swagger-ui textarea,
184 | /* Models */
185 | .swagger-ui .model-box,
186 | /* modaler "Authorize" dialog */
187 | .swagger-ui .dialog-ux .modal-ux,
188 | /* Body Paramter */
189 | .swagger-ui .opblock-body pre {
190 | border-radius: 0;
191 | }
192 |
193 | /* Custom Tag Description */
194 | span.custom-tag-description {
195 | margin-top: 17px;
196 | margin-bottom: 17px;
197 | }
198 |
199 | footer {
200 | text-align: center;
201 | padding-top: 20px;
202 | padding-bottom: 20px;
203 | }
--------------------------------------------------------------------------------
/css/swagger-custom.css:
--------------------------------------------------------------------------------
1 | .topbar-logo {
2 | width: 35%;
3 | padding-right: 10px;
4 | }
5 |
6 | .topbar-logo-wrapper {
7 | display: flex;
8 | justify-content: flex-start;
9 | align-items: center;
10 | }
11 |
--------------------------------------------------------------------------------
/images/bosch_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BoschSmartHome/bosch-shc-api-docs/4f6ecf0fadd3d3e855d81f7f413891c9fd07a3bd/images/bosch_icon.png
--------------------------------------------------------------------------------
/images/bosch_smart_home.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BoschSmartHome/bosch-shc-api-docs/4f6ecf0fadd3d3e855d81f7f413891c9fd07a3bd/images/bosch_smart_home.jpg
--------------------------------------------------------------------------------
/images/bosch_smart_home_logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BoschSmartHome/bosch-shc-api-docs/4f6ecf0fadd3d3e855d81f7f413891c9fd07a3bd/images/bosch_smart_home_logo.png
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Bosch Smart Home Local API
8 |
9 |
10 |
11 |
12 |
13 |
31 |
32 |
33 |
34 |
127 |
128 |
129 |
130 |
152 |
153 |
154 |
155 |
--------------------------------------------------------------------------------
/openapi/ClimateControl-local-openapi-v3.yml:
--------------------------------------------------------------------------------
1 | ### Generated by Eclipse Vorto OpenAPI Generator from Model 'vorto.private.local.com.bosch.sh:ClimateControl:1.0.0'
2 | openapi: 3.0.0
3 | info:
4 | title: Bosch Smart Home Local API for Climate Control
5 | description: |-
6 | This description focuses on the JSON-based, REST-like API for a Climate Control.
7 |
8 | By using this documentation, the developer accepts and agrees to be bound by our [Terms and Conditions](https://github.com/BoschSmartHome/bosch-shc-api-docs#terms-and-conditions).
9 |
10 | This documentation is subject to the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).
11 |
12 | Please report any issues you encounter with this documentation in our [GitHub tracker](https://github.com/BoschSmartHome/bosch-shc-api-docs/issues).
13 | version: "1.0"
14 | servers:
15 | - url: https://{shcIp}:8444/smarthome
16 | description: "Bosch Smart Home Controller URL"
17 | variables:
18 | shcIp:
19 | default: 192.168.0.10
20 | tags:
21 | - name: Services
22 | description: Services of your ClimateControl
23 | - name: States
24 | description: States of your ClimateControl
25 | paths:
26 | '/devices/{deviceId}/services/RoomClimateControl':
27 | get:
28 | summary: Retrieve the RoomClimateControl service of the ClimateControl.
29 | description: |-
30 | Control of up to six Bosch Smart Home radiator thermostats per room with this virtual device.
31 | tags:
32 | - Services
33 | parameters:
34 | - $ref: '#/components/parameters/apiVersionHeaderParam'
35 | - $ref: '#/components/parameters/deviceIdPathParam'
36 | responses:
37 | '200':
38 | description: The RoomClimateControl was successfully retrieved.
39 | content:
40 | application/json:
41 | schema:
42 | $ref: '#/components/schemas/RoomClimateControlService'
43 | '404':
44 | description: |-
45 | The entity could not be found. One of the defined query parameters was invalid.
46 | content:
47 | application/json:
48 | schema:
49 | $ref: '#/components/schemas/AdvancedError'
50 | '/devices/{deviceId}/services/RoomClimateControl/state':
51 | get:
52 | summary: Retrieve the state of the RoomClimateControl service.
53 | description: |-
54 | Retrieve the state of the RoomClimateControl service identified by the
55 | `deviceId` path parameter.
56 | tags:
57 | - States
58 | parameters:
59 | - $ref: '#/components/parameters/apiVersionHeaderParam'
60 | - $ref: '#/components/parameters/deviceIdPathParam'
61 | responses:
62 | '200':
63 | description: The state of RoomClimateControl was successfully retrieved.
64 | content:
65 | application/json:
66 | schema:
67 | $ref: '#/components/schemas/RoomClimateControlServiceStates'
68 | '404':
69 | description: |-
70 | The entity could not be found. One of the defined query parameters was invalid.
71 | content:
72 | application/json:
73 | schema:
74 | $ref: '#/components/schemas/AdvancedError'
75 |
76 | put:
77 | summary: Executes the climateControlState on the device.
78 | description: |-
79 | Executes the climateControlState on the device identified by the `deviceId` path parameter.
80 | tags:
81 | - States
82 | parameters:
83 | - $ref: '#/components/parameters/apiVersionHeaderParam'
84 | - $ref: '#/components/parameters/deviceIdPathParam'
85 | responses:
86 | '204':
87 | description: Accepted request.
88 | '400':
89 | description: One of the defined query parameters was invalid.
90 | content:
91 | application/json:
92 | schema:
93 | $ref: '#/components/schemas/AdvancedError'
94 | '404':
95 | description: The entity could not be found. One of the defined path parameters was invalid.
96 | content:
97 | application/json:
98 | schema:
99 | $ref: '#/components/schemas/AdvancedError'
100 | '405':
101 | description: The method was not allowed.
102 | '422':
103 | description: Mapping of defined query parameter failed.
104 | content:
105 | application/json:
106 | schema:
107 | $ref: '#/components/schemas/AdvancedError'
108 | requestBody:
109 | $ref: '#/components/requestBodies/RoomClimateControlServiceClimateControlStatePayload'
110 | '/devices/{deviceId}/services/TemperatureLevel':
111 | get:
112 | summary: Retrieve the TemperatureLevel service of the ClimateControl.
113 | description: |-
114 | Measures the temperature at a central point in the room.
115 | tags:
116 | - Services
117 | parameters:
118 | - $ref: '#/components/parameters/apiVersionHeaderParam'
119 | - $ref: '#/components/parameters/deviceIdPathParam'
120 | responses:
121 | '200':
122 | description: The TemperatureLevel was successfully retrieved.
123 | content:
124 | application/json:
125 | schema:
126 | $ref: '#/components/schemas/TemperatureLevelService'
127 | '404':
128 | description: |-
129 | The entity could not be found. One of the defined query parameters was invalid.
130 | content:
131 | application/json:
132 | schema:
133 | $ref: '#/components/schemas/AdvancedError'
134 | '/devices/{deviceId}/services/TemperatureLevel/state':
135 | get:
136 | summary: Retrieve the state of the TemperatureLevel service.
137 | description: |-
138 | Retrieve the state of the TemperatureLevel service identified by the
139 | `deviceId` path parameter.
140 | tags:
141 | - States
142 | parameters:
143 | - $ref: '#/components/parameters/apiVersionHeaderParam'
144 | - $ref: '#/components/parameters/deviceIdPathParam'
145 | responses:
146 | '200':
147 | description: The state of TemperatureLevel was successfully retrieved.
148 | content:
149 | application/json:
150 | schema:
151 | $ref: '#/components/schemas/TemperatureLevelServiceStates'
152 | '404':
153 | description: |-
154 | The entity could not be found. One of the defined query parameters was invalid.
155 | content:
156 | application/json:
157 | schema:
158 | $ref: '#/components/schemas/AdvancedError'
159 |
160 | components:
161 | schemas:
162 | AdvancedError:
163 | type: object
164 | properties:
165 | '@type':
166 | type: string
167 | description: The type of the Object.
168 | example: JsonRestExceptionResponseEntity
169 | errorCode:
170 | type: string
171 | description: The error code of the occurred Exception.
172 | statusCode:
173 | type: integer
174 | description: The HTTP status of the error.
175 | ServiceDefinition:
176 | type: array
177 | minItems: 1
178 | uniqueItems: true
179 | items:
180 | type: string
181 | description: "A single fully qualified identifier of the Service of a Device."
182 | example:
183 | - RoomClimateControl
184 | - TemperatureLevel
185 | RoomClimateControlServiceStates:
186 | type: object
187 | description: RoomClimateControlService states of ClimateControl
188 | properties:
189 | '@type':
190 | type: string
191 | enum: [climateControlState]
192 | description: The type of the Object.
193 | setpointTemperature:
194 | $ref: '#/components/schemas/SetpointTemperatureState'
195 | RoomClimateControlService:
196 | type: object
197 | properties:
198 | '@type':
199 | type: string
200 | enum: [DeviceServiceData]
201 | description: The type of the Object.
202 | id:
203 | type: string
204 | enum: [deviceServiceId]
205 | description: "A single fully qualified identifier of the Service of a Device."
206 | deviceId:
207 | type: string
208 | description: "A single fully qualified identifier of the Device."
209 | state:
210 | $ref: '#/components/schemas/RoomClimateControlServiceStates'
211 | path:
212 | type: string
213 | description: The path to the Property.
214 | TemperatureLevelServiceStates:
215 | type: object
216 | description: TemperatureLevelService states of ClimateControl
217 | properties:
218 | temperature:
219 | type: number
220 | TemperatureLevelService:
221 | type: object
222 | properties:
223 | '@type':
224 | type: string
225 | enum: [DeviceServiceData]
226 | description: The type of the Object.
227 | id:
228 | type: string
229 | enum: [deviceServiceId]
230 | description: "A single fully qualified identifier of the Service of a Device."
231 | deviceId:
232 | type: string
233 | description: "A single fully qualified identifier of the Device."
234 | state:
235 | $ref: '#/components/schemas/TemperatureLevelServiceStates'
236 | path:
237 | type: string
238 | description: The path to the Property.
239 | SetpointTemperatureState:
240 | type: string
241 | enum: ["5.0", "5.5", "...", "29.5", "30.0"]
242 |
243 | requestBodies:
244 | RoomClimateControlServiceClimateControlStatePayload:
245 | content:
246 | application/json:
247 | schema:
248 | type: object
249 | properties:
250 | '@type':
251 | type: string
252 | enum: [climateControlState]
253 | description: The type of the Object.
254 | setpointTemperature:
255 | $ref: '#/components/schemas/SetpointTemperatureState'
256 | parameters:
257 | apiVersionHeaderParam:
258 | in: header
259 | name: api-version
260 | description: The version of the API.
261 | schema:
262 | type: string
263 | example: "1.0"
264 | deviceIdPathParam:
265 | name: deviceId
266 | in: path
267 | description: "A single fully qualified identifier of the Device."
268 | required: true
269 | schema:
270 | type: string
271 | propertyPathPathParam:
272 | name: propertyPath
273 | in: path
274 | description: The path to the Property.
275 | required: true
276 | schema:
277 | type: string
278 |
--------------------------------------------------------------------------------
/openapi/DoorWindowContact-local-openapi-v3.yml:
--------------------------------------------------------------------------------
1 | ### Generated by Eclipse Vorto OpenAPI Generator from Model 'vorto.private.local.com.bosch.sh:DoorWindowContact:1.0.0'
2 | openapi: 3.0.0
3 | info:
4 | title: Bosch Smart Home Local API for Door Window Contact
5 | description: |-
6 | This description focuses on the JSON-based, REST-like API for a Door Window Contact.
7 |
8 | By using this documentation, the developer accepts and agrees to be bound by our [Terms and Conditions](https://github.com/BoschSmartHome/bosch-shc-api-docs#terms-and-conditions).
9 |
10 | This documentation is subject to the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).
11 |
12 | Please report any issues you encounter with this documentation in our [GitHub tracker](https://github.com/BoschSmartHome/bosch-shc-api-docs/issues).
13 | version: "1.0"
14 | servers:
15 | - url: https://{shcIp}:8444/smarthome
16 | description: "Bosch Smart Home Controller URL"
17 | variables:
18 | shcIp:
19 | default: 192.168.0.10
20 | tags:
21 | - name: Services
22 | description: Services of your DoorWindowContact
23 | - name: States
24 | description: States of your DoorWindowContact
25 | paths:
26 | '/devices/{deviceId}/services/ShutterContact':
27 | get:
28 | summary: Retrieve the ShutterContact service of the DoorWindowContact.
29 | description: |-
30 | Detects open windows and doors. In combination with the Radiator Thermostat the temperature in the room is lowered during airing so no energy is wasted.
31 | tags:
32 | - Services
33 | parameters:
34 | - $ref: '#/components/parameters/apiVersionHeaderParam'
35 | - $ref: '#/components/parameters/deviceIdPathParam'
36 | responses:
37 | '200':
38 | description: The ShutterContact was successfully retrieved.
39 | content:
40 | application/json:
41 | schema:
42 | $ref: '#/components/schemas/ShutterContactService'
43 | '404':
44 | description: |-
45 | The entity could not be found. One of the defined query parameters was invalid.
46 | content:
47 | application/json:
48 | schema:
49 | $ref: '#/components/schemas/AdvancedError'
50 | '/devices/{deviceId}/services/ShutterContact/state':
51 | get:
52 | summary: Retrieve the state of the ShutterContact service.
53 | description: |-
54 | Retrieve the state of the ShutterContact service identified by the
55 | `deviceId` path parameter.
56 | tags:
57 | - States
58 | parameters:
59 | - $ref: '#/components/parameters/apiVersionHeaderParam'
60 | - $ref: '#/components/parameters/deviceIdPathParam'
61 | responses:
62 | '200':
63 | description: The state of ShutterContact was successfully retrieved.
64 | content:
65 | application/json:
66 | schema:
67 | $ref: '#/components/schemas/ShutterContactServiceStates'
68 | '404':
69 | description: |-
70 | The entity could not be found. One of the defined query parameters was invalid.
71 | content:
72 | application/json:
73 | schema:
74 | $ref: '#/components/schemas/AdvancedError'
75 |
76 | components:
77 | schemas:
78 | AdvancedError:
79 | type: object
80 | properties:
81 | '@type':
82 | type: string
83 | description: The type of the Object.
84 | example: JsonRestExceptionResponseEntity
85 | errorCode:
86 | type: string
87 | description: The error code of the occurred Exception.
88 | statusCode:
89 | type: integer
90 | description: The HTTP status of the error.
91 | ServiceDefinition:
92 | type: array
93 | minItems: 1
94 | uniqueItems: true
95 | items:
96 | type: string
97 | description: "A single fully qualified identifier of the Service of a Device."
98 | example:
99 | - ShutterContact
100 | ShutterContactServiceStates:
101 | type: object
102 | description: ShutterContactService states of DoorWindowContact
103 | properties:
104 | value:
105 | $ref: '#/components/schemas/ShutterContactState'
106 | ShutterContactService:
107 | type: object
108 | properties:
109 | '@type':
110 | type: string
111 | enum: [DeviceServiceData]
112 | description: The type of the Object.
113 | id:
114 | type: string
115 | enum: [deviceServiceId]
116 | description: "A single fully qualified identifier of the Service of a Device."
117 | deviceId:
118 | type: string
119 | description: "A single fully qualified identifier of the Device."
120 | state:
121 | $ref: '#/components/schemas/ShutterContactServiceStates'
122 | path:
123 | type: string
124 | description: The path to the Property.
125 | ShutterContactState:
126 | type: string
127 | enum: [OPEN,CLOSED]
128 |
129 | parameters:
130 | apiVersionHeaderParam:
131 | in: header
132 | name: api-version
133 | description: The version of the API.
134 | schema:
135 | type: string
136 | example: "1.0"
137 | deviceIdPathParam:
138 | name: deviceId
139 | in: path
140 | description: "A single fully qualified identifier of the Device."
141 | required: true
142 | schema:
143 | type: string
144 | propertyPathPathParam:
145 | name: propertyPath
146 | in: path
147 | description: The path to the Property.
148 | required: true
149 | schema:
150 | type: string
151 |
--------------------------------------------------------------------------------
/openapi/IntrusionDetectionSystem-local-openapi-v3.yml:
--------------------------------------------------------------------------------
1 | ### Generated by Eclipse Vorto OpenAPI Generator from Model 'vorto.private.local.com.bosch.sh:IntrusionDetectionSystem:1.0.0'
2 | openapi: 3.0.0
3 | info:
4 | title: Bosch Smart Home Local API for Intrusion Detection Alarm System
5 | description: |-
6 | This description focuses on the JSON-based, REST-like API for the Intrusion Detection Alarm System.
7 |
8 | By using this documentation, the developer accepts and agrees to be bound by our [Terms and Conditions](https://github.com/BoschSmartHome/bosch-shc-api-docs#terms-and-conditions).
9 |
10 | This documentation is subject to the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).
11 |
12 | Please report any issues you encounter with this documentation in our [GitHub tracker](https://github.com/BoschSmartHome/bosch-shc-api-docs/issues).
13 | version: "1.0"
14 | servers:
15 | - url: https://{shcIp}:8444/smarthome
16 | description: "Bosch Smart Home Controller URL"
17 | variables:
18 | shcIp:
19 | default: 192.168.0.10
20 | tags:
21 | - name: States
22 | description: States of your Intrusion Detection Alarm System
23 | - name: Actions
24 | description: Actions of your Intrusion Detection Alarm System
25 | paths:
26 | '/intrusion/states/system':
27 | get:
28 | summary: Get the alarm system's combined state.
29 | description: |-
30 | Returns the combined system sate of the intrusion detection alarm system.
31 | tags:
32 | - States
33 | parameters:
34 | - $ref: '#/components/parameters/apiVersionHeaderParam'
35 | responses:
36 | '200':
37 | description: The IntrusionDetectionControl was successfully retrieved.
38 | content:
39 | application/json:
40 | schema:
41 | $ref: '#/components/schemas/SystemStateData'
42 | '404':
43 | description: |-
44 | The entity could not be found. One of the defined query parameters was invalid.
45 | content:
46 | application/json:
47 | schema:
48 | $ref: '#/components/schemas/AdvancedError'
49 | '/intrusion/actions/arm':
50 | post:
51 | summary: Activates a profile of the Intrusion Detection Alarm System.
52 | description: |-
53 | Activates the profile of the Intrusion Detection Alarm System identified by the
54 | `profileId` body parameter.
55 | tags:
56 | - Actions
57 | parameters:
58 | - $ref: '#/components/parameters/apiVersionHeaderParam'
59 | responses:
60 | '202':
61 | description: Accepted request.
62 | '400':
63 | description: One of the defined query parameters was invalid.
64 | content:
65 | application/json:
66 | schema:
67 | $ref: '#/components/schemas/AdvancedError'
68 | '404':
69 | description: The entity could not be found. One of the defined path parameters was invalid.
70 | content:
71 | application/json:
72 | schema:
73 | $ref: '#/components/schemas/AdvancedError'
74 | '405':
75 | description: The method was not allowed.
76 | '422':
77 | description: Mapping of defined query parameter failed.
78 | content:
79 | application/json:
80 | schema:
81 | $ref: '#/components/schemas/AdvancedError'
82 | requestBody:
83 | $ref: '#/components/requestBodies/IntrusionDetectionControlServiceArmRequestPayload'
84 | '/intrusion/actions/disarm':
85 | post:
86 | tags:
87 | - Actions
88 | summary: Disarms the intrusion detection alarm system.
89 | description: |-
90 | Sets the intrusion detection alarm system's state to disarmed.
91 | parameters:
92 | - $ref: '#/components/parameters/apiVersionHeaderParam'
93 | responses:
94 | '202':
95 | description: Accepted
96 | '404':
97 | description: The entity could not be found. One of the defined path parameters was invalid.
98 | content:
99 | application/json:
100 | schema:
101 | $ref: '#/components/schemas/AdvancedError'
102 | '/intrusion/actions/mute':
103 | post:
104 | tags:
105 | - Actions
106 | summary: Mutes the intrusion detection alarm system.
107 | description: |-
108 | Sets the intrusion detection alarm system's state to muted.
109 | parameters:
110 | - $ref: '#/components/parameters/apiVersionHeaderParam'
111 | responses:
112 | '202':
113 | description: Accepted
114 | '404':
115 | description: The entity could not be found. One of the defined path parameters was invalid.
116 | content:
117 | application/json:
118 | schema:
119 | $ref: '#/components/schemas/AdvancedError'
120 | components:
121 | schemas:
122 | AdvancedError:
123 | type: object
124 | properties:
125 | '@type':
126 | type: string
127 | description: The type of the Object.
128 | example: JsonRestExceptionResponseEntity
129 | errorCode:
130 | type: string
131 | description: The error code of the occurred Exception.
132 | statusCode:
133 | type: integer
134 | description: The HTTP status of the error.
135 | SystemAvailabilityStateData:
136 | type: object
137 | properties:
138 | available:
139 | type: boolean
140 | readOnly: true
141 | deleted:
142 | type: boolean
143 | id:
144 | type: string
145 | ArmingStateData:
146 | type: object
147 | properties:
148 | remainingTimeUntilArmed:
149 | type: integer
150 | format: int64
151 | readOnly: true
152 | state:
153 | type: string
154 | readOnly: true
155 | enum:
156 | - SYSTEM_ARMING
157 | - SYSTEM_ARMED
158 | - SYSTEM_DISARMED
159 | deleted:
160 | type: boolean
161 | id:
162 | type: string
163 | AlarmStateData:
164 | type: object
165 | properties:
166 | value:
167 | type: string
168 | readOnly: true
169 | enum:
170 | - ALARM_OFF
171 | - PRE_ALARM
172 | - ALARM_ON
173 | - ALARM_MUTED
174 | - UNKNOWN
175 | incidents:
176 | type: array
177 | readOnly: true
178 | items:
179 | $ref: '#/components/schemas/IncidentData'
180 | deleted:
181 | type: boolean
182 | id:
183 | type: string
184 | ActiveConfigurationProfileData:
185 | type: object
186 | properties:
187 | profileId:
188 | type: string
189 | readOnly: true
190 | deleted:
191 | type: boolean
192 | id:
193 | type: string
194 | SystemStateData:
195 | type: object
196 | properties:
197 | systemAvailability:
198 | readOnly: true
199 | $ref: '#/components/schemas/SystemAvailabilityStateData'
200 | armingState:
201 | readOnly: true
202 | $ref: '#/components/schemas/ArmingStateData'
203 | alarmState:
204 | readOnly: true
205 | $ref: '#/components/schemas/AlarmStateData'
206 | activeConfigurationProfile:
207 | readOnly: true
208 | $ref: '#/components/schemas/ActiveConfigurationProfileData'
209 | deleted:
210 | type: boolean
211 | id:
212 | type: string
213 | IncidentData:
214 | type: object
215 | properties:
216 | id:
217 | type: string
218 | readOnly: true
219 | triggerName:
220 | type: string
221 | readOnly: true
222 | type:
223 | type: string
224 | readOnly: true
225 | enum:
226 | - SYSTEM_ARMED
227 | - INTRUSION_DETECTED
228 | - ALARM_MUTED
229 | - SYSTEM_DISARMED
230 | - UNKNOWN
231 | time:
232 | type: integer
233 | format: int64
234 | readOnly: true
235 | location:
236 | type: string
237 | readOnly: true
238 | locationId:
239 | type: string
240 | readOnly: true
241 | ArmRequest:
242 | type: string
243 | enum: ["0", "1", "2"]
244 |
245 | requestBodies:
246 | IntrusionDetectionControlServiceArmRequestPayload:
247 | content:
248 | application/json:
249 | schema:
250 | type: object
251 | properties:
252 | '@type':
253 | type: string
254 | enum: [armRequest]
255 | description: The type of the Object.
256 | profileId:
257 | $ref: '#/components/schemas/ArmRequest'
258 | parameters:
259 | apiVersionHeaderParam:
260 | in: header
261 | name: api-version
262 | description: The version of the API.
263 | schema:
264 | type: string
265 | example: "1.0"
266 | deviceIdPathParam:
267 | name: deviceId
268 | in: path
269 | description: "A single fully qualified identifier of the Device."
270 | required: true
271 | schema:
272 | type: string
273 | propertyPathPathParam:
274 | name: propertyPath
275 | in: path
276 | description: The path to the Property.
277 | required: true
278 | schema:
279 | type: string
280 |
--------------------------------------------------------------------------------
/openapi/LightControl-II-local-openapi-v3.yml:
--------------------------------------------------------------------------------
1 | openapi: 3.0.0
2 | info:
3 | title: Bosch Smart Home Local API for Light Control II
4 | description: |-
5 | This description focuses on the JSON-based, REST-like API for a Light Control II.
6 |
7 | By using this documentation, the developer accepts and agrees to be bound by our [Terms and Conditions](https://github.com/BoschSmartHome/bosch-shc-api-docs#terms-and-conditions).
8 |
9 | This documentation is subject to the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).
10 |
11 | Please report any issues you encounter with this documentation in our [GitHub tracker](https://github.com/BoschSmartHome/bosch-shc-api-docs/issues).
12 | version: "1.0"
13 |
14 | servers:
15 | - url: https://{shcIp}:8444/smarthome
16 | description: "Bosch Smart Home Controller URL"
17 | variables:
18 | shcIp:
19 | default: 192.168.0.10
20 |
21 | tags:
22 | - name: Services
23 | description: Services of your LightControl II
24 | - name: States
25 | description: States of your LightControl II
26 |
27 | paths:
28 | '/devices/{deviceId}/':
29 | get:
30 | summary: Retrieve information about a specific light device.
31 | tags:
32 | - Services
33 | parameters:
34 | - $ref: '#/components/parameters/apiVersionHeaderParam'
35 | - $ref: '#/components/parameters/deviceIdPathParam'
36 | responses:
37 | '200':
38 | description: A successful response containing the device information.
39 | content:
40 | application/json:
41 | schema:
42 | $ref: '#/components/schemas/LightDevice'
43 | '404':
44 | description: |-
45 | The entity could not be found. One of the defined query parameters was invalid.
46 | content:
47 | application/json:
48 | schema:
49 | $ref: '#/components/schemas/AdvancedError'
50 |
51 | '/devices/{deviceId}/services':
52 | get:
53 | summary: Get device services
54 | description: Returns a list of services available for the specified device.
55 | tags:
56 | - Services
57 | parameters:
58 | - $ref: '#/components/parameters/apiVersionHeaderParam'
59 | - $ref: '#/components/parameters/deviceIdPathParam'
60 | responses:
61 | '200':
62 | description: The LightControl services were successfully retrieved.
63 | content:
64 | application/json:
65 | schema:
66 | type: array
67 | items:
68 | $ref: '#/components/schemas/DeviceServiceData'
69 | '404':
70 | description: |-
71 | The entity could not be found. One of the defined query parameters was invalid.
72 | content:
73 | application/json:
74 | schema:
75 | $ref: '#/components/schemas/AdvancedError'
76 |
77 | '/devices/{deviceId}/services/PowerSwitch/state':
78 | get:
79 | summary: Get Power Switch state
80 | description: Returns the current state of the Power Switch service for the specified device ID.
81 | tags:
82 | - States
83 | parameters:
84 | - $ref: '#/components/parameters/apiVersionHeaderParam'
85 | - $ref: '#/components/parameters/deviceIdPathParam'
86 | responses:
87 | '200':
88 | description: The PowerSwitch service state were successfully retrieved.
89 | content:
90 | application/json:
91 | schema:
92 | $ref: '#/components/schemas/PowerSwitchState'
93 | '404':
94 | description: |-
95 | The entity could not be found. One of the defined query parameters was invalid.
96 | content:
97 | application/json:
98 | schema:
99 | $ref: '#/components/schemas/AdvancedError'
100 | put:
101 | summary: Update Power Switch state
102 | description: Updates the state of the Power Switch service for the specified device ID.
103 | tags:
104 | - States
105 | parameters:
106 | - $ref: '#/components/parameters/apiVersionHeaderParam'
107 | - $ref: '#/components/parameters/deviceIdPathParam'
108 | requestBody:
109 | required: true
110 | content:
111 | application/json:
112 | schema:
113 | type: object
114 | properties:
115 | '@type':
116 | type: enum
117 | example: [ powerSwitchState ]
118 | switchState:
119 | type: string
120 | description: The state of the power switch.
121 | example: 'ON'
122 | required:
123 | - '@type'
124 | - switchState
125 | responses:
126 | '204':
127 | description: Accepted request.
128 | '400':
129 | description: One of the defined query parameters was invalid.
130 | content:
131 | application/json:
132 | schema:
133 | $ref: '#/components/schemas/AdvancedError'
134 | '404':
135 | description: The entity could not be found. One of the defined path parameters was invalid.
136 | content:
137 | application/json:
138 | schema:
139 | $ref: '#/components/schemas/AdvancedError'
140 | '405':
141 | description: The method was not allowed.
142 | '422':
143 | description: Mapping of defined query parameter failed.
144 | content:
145 | application/json:
146 | schema:
147 | $ref: '#/components/schemas/AdvancedError'
148 |
149 | components:
150 | schemas:
151 | AdvancedError:
152 | type: object
153 | properties:
154 | '@type':
155 | type: string
156 | description: The type of the Object.
157 | example: JsonRestExceptionResponseEntity
158 | errorCode:
159 | type: string
160 | description: The error code of the occurred Exception.
161 | statusCode:
162 | type: integer
163 | description: The HTTP status of the error.
164 |
165 | LightDevice:
166 | type: object
167 | properties:
168 | '@type':
169 | type: string
170 | description: The type of device.
171 | example: 'device'
172 | rootDeviceId:
173 | type: string
174 | description: The ID of the root device.
175 | example: '64-da-a0-03-19-30'
176 | id:
177 | type: string
178 | description: The ID of the device.
179 | example: 'hdm:ZigBee:5c0272fffe462481'
180 | deviceServiceIds:
181 | type: array
182 | description: An array of device service IDs.
183 | items:
184 | type: string
185 | example: [
186 | 'CommunicationQuality',
187 | 'PowerMeter',
188 | 'ElectricalFaults',
189 | 'SwitchConfiguration'
190 | ]
191 | manufacturer:
192 | type: string
193 | description: The manufacturer of the device.
194 | example: 'BOSCH'
195 | deviceModel:
196 | type: string
197 | description: The model of the device.
198 | example: 'MICROMODULE_LIGHT_CONTROL'
199 | serial:
200 | type: string
201 | description: The serial number of the device.
202 | example: '5C0272FFFE462481'
203 | profile:
204 | type: string
205 | description: The profile of the device.
206 | example: 'GENERIC'
207 | name:
208 | type: string
209 | description: The name of the device.
210 | example: 'LightMM_5c0272fffe462481'
211 | status:
212 | type: string
213 | description: The status of the device.
214 | example: 'AVAILABLE'
215 | childDeviceIds:
216 | type: array
217 | description: An array of child device IDs.
218 | items:
219 | type: string
220 | example: [
221 | '{{light-device#3}}',
222 | '{{light-device#2}}'
223 | ]
224 |
225 | DeviceServiceData:
226 | type: object
227 | properties:
228 | '@type':
229 | type: string
230 | example: 'DeviceServiceData'
231 | id:
232 | type: string
233 | description: The ID of the device service.
234 | example: [
235 | 'CommunicationQuality',
236 | 'ElectricalFaults',
237 | 'PowerMeter',
238 | 'SwitchConfiguration',
239 | 'PowerSwitch',
240 | 'ChildProtection',
241 | 'PowerSwitchProgram'
242 | ]
243 | deviceId:
244 | type: string
245 | description: The ID of the device to which the service belongs.
246 | example: [
247 | '{light-device}',
248 | '{light-device#2}'
249 | ]
250 | state:
251 | oneOf:
252 | - $ref: '#/components/schemas/CommunicationQualityState'
253 | - $ref: '#/components/schemas/PowerMeterState'
254 | - $ref: '#/components/schemas/SwitchConfigurationState'
255 | - $ref: '#/components/schemas/PowerSwitchState'
256 | - $ref: '#/components/schemas/ChildProtectionState'
257 | - $ref: '#/components/schemas/PowerSwitchProgramState'
258 | description: The current state of the device service.
259 | path:
260 | type: string
261 | description: The path to the device service resource.
262 | example: [
263 | '/devices/{light-device}/services/CommunicationQuality',
264 | '/devices/{light-device}/services/ElectricalFaults',
265 | '/devices/{light-device}/services/PowerMeter',
266 | '/devices/{light-device}/services/SwitchConfiguration',
267 | '/devices/{light-device#2}/services/PowerSwitch',
268 | '/devices/{light-device#2}/services/ChildProtection',
269 | '/devices/{light-device#2}/services/PowerSwitchProgram'
270 | ]
271 | required:
272 | - '@type'
273 | - id
274 | - deviceId
275 | - path
276 |
277 | CommunicationQualityState:
278 | type: object
279 | properties:
280 | '@type':
281 | type: string
282 | example: 'communicationQualityState'
283 | quality:
284 | type: string
285 | description: The quality of the device's communication.
286 | example: 'GOOD'
287 | required:
288 | - '@type'
289 | - quality
290 |
291 | PowerMeterState:
292 | type: object
293 | properties:
294 | '@type':
295 | type: string
296 | example: 'powerMeterState'
297 | powerConsumption:
298 | type: number
299 | format: float
300 | description: The current power consumption of the device.
301 | example: 0.0
302 | energyConsumption:
303 | type: number
304 | format: float
305 | description: The total energy consumption of the device.
306 | example: 0.0
307 | required:
308 | - '@type'
309 |
310 | SwitchConfigurationState:
311 | type: object
312 | properties:
313 | '@type':
314 | type: string
315 | example: 'SwitchConfigurationState'
316 | switchType:
317 | type: string
318 | description: The type of switch used by the device.
319 | example: 'PUSHBUTTON'
320 | swapInputs:
321 | type: boolean
322 | description: Whether the inputs of the device's switch have been swapped.
323 | example: false
324 | required:
325 | - '@type'
326 | - switchType
327 |
328 | PowerSwitchState:
329 | type: object
330 | properties:
331 | '@type':
332 | type: string
333 | example: 'powerSwitchState'
334 | switchState:
335 | type: string
336 | description: The state of the power switch.
337 | example: 'OFF'
338 | automaticPowerOffTime:
339 | type: integer
340 | description: The automatic power off time for the device in seconds.
341 | example: 0
342 | required:
343 | - '@type'
344 | - switchState
345 |
346 | ChildProtectionState:
347 | type: object
348 | properties:
349 | '@type':
350 | type: string
351 | example: 'ChildProtectionState'
352 | childLockActive:
353 | type: boolean
354 | description: Indicates whether the child lock is active.
355 | example: false
356 | required:
357 | - '@type'
358 | - childLockActive
359 |
360 | PowerSwitchProgramState:
361 | type: object
362 | properties:
363 | '@type':
364 | type: string
365 | example: 'powerSwitchProgramState'
366 | operationMode:
367 | type: string
368 | description: The operation mode of the power switch program.
369 | example: 'MANUAL'
370 | schedule:
371 | type: object
372 | properties:
373 | profiles:
374 | type: array
375 | description: The schedule profiles for the power switch program.
376 | items:
377 | type: object
378 | example:
379 | profiles: [ ]
380 | required:
381 | - '@type'
382 | - operationMode
383 | - schedule
384 |
385 | parameters:
386 | apiVersionHeaderParam:
387 | in: header
388 | name: api-version
389 | description: The version of the API.
390 | schema:
391 | type: string
392 | example: "1.0"
393 |
394 | deviceIdPathParam:
395 | name: deviceId
396 | in: path
397 | description: "A single fully qualified identifier of the Device."
398 | required: true
399 | schema:
400 | type: string
401 |
--------------------------------------------------------------------------------
/openapi/LightControl-local-openapi-v3.yml:
--------------------------------------------------------------------------------
1 | openapi: 3.0.0
2 | info:
3 | title: Bosch Smart Home Local API for Light Control
4 | description: |-
5 | This description focuses on the JSON-based, REST-like API for a Light Control.
6 |
7 | By using this documentation, the developer accepts and agrees to be bound by our [Terms and Conditions](https://github.com/BoschSmartHome/bosch-shc-api-docs#terms-and-conditions).
8 |
9 | This documentation is subject to the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).
10 |
11 | Please report any issues you encounter with this documentation in our [GitHub tracker](https://github.com/BoschSmartHome/bosch-shc-api-docs/issues).
12 | version: "1.0"
13 | servers:
14 | - url: https://{shcIp}:8444/smarthome
15 | description: "Bosch Smart Home Controller URL"
16 | variables:
17 | shcIp:
18 | default: 192.168.0.10
19 | tags:
20 | - name: Services
21 | description: Services of your LightControl
22 | - name: States
23 | description: States of your LightControl
24 | paths:
25 | '/devices/{deviceId}/services/PowerMeter':
26 | get:
27 | summary: Retrieve the PowerMeter service of the LightControl.
28 | description: |-
29 | With this service you always have an eye on energy consumption.
30 | tags:
31 | - Services
32 | parameters:
33 | - $ref: '#/components/parameters/apiVersionHeaderParam'
34 | - $ref: '#/components/parameters/deviceIdPathParam'
35 | responses:
36 | '200':
37 | description: The PowerMeter was successfully retrieved.
38 | content:
39 | application/json:
40 | schema:
41 | $ref: '#/components/schemas/PowerMeterService'
42 | '404':
43 | description: |-
44 | The entity could not be found. One of the defined query parameters was invalid.
45 | content:
46 | application/json:
47 | schema:
48 | $ref: '#/components/schemas/AdvancedError'
49 | '/devices/{deviceId}/services/PowerMeter/state':
50 | get:
51 | summary: Retrieve the state of the PowerMeter service.
52 | description: |-
53 | Retrieve the state of the PowerMeter service identified by the
54 | `deviceId` path parameter.
55 | tags:
56 | - States
57 | parameters:
58 | - $ref: '#/components/parameters/apiVersionHeaderParam'
59 | - $ref: '#/components/parameters/deviceIdPathParam'
60 | responses:
61 | '200':
62 | description: The state of PowerMeter was successfully retrieved.
63 | content:
64 | application/json:
65 | schema:
66 | $ref: '#/components/schemas/PowerMeterServiceStates'
67 | '404':
68 | description: |-
69 | The entity could not be found. One of the defined query parameters was invalid.
70 | content:
71 | application/json:
72 | schema:
73 | $ref: '#/components/schemas/AdvancedError'
74 |
75 | '/devices/{deviceId}/services/PowerSwitch':
76 | get:
77 | summary: Retrieve the PowerSwitch service of the LightControl.
78 | description: |-
79 | Switch electrical appliances on and off. Can be used with electrical appliances with high ratings of up to 3680 W.
80 | tags:
81 | - Services
82 | parameters:
83 | - $ref: '#/components/parameters/apiVersionHeaderParam'
84 | - $ref: '#/components/parameters/deviceIdPathParam'
85 | responses:
86 | '200':
87 | description: The PowerSwitch was successfully retrieved.
88 | content:
89 | application/json:
90 | schema:
91 | $ref: '#/components/schemas/PowerSwitchService'
92 | '404':
93 | description: |-
94 | The entity could not be found. One of the defined query parameters was invalid.
95 | content:
96 | application/json:
97 | schema:
98 | $ref: '#/components/schemas/AdvancedError'
99 | '/devices/{deviceId}/services/PowerSwitch/state':
100 | get:
101 | summary: Retrieve the state of the PowerSwitch service.
102 | description: |-
103 | Retrieve the state of the PowerSwitch service identified by the
104 | `deviceId` path parameter.
105 | tags:
106 | - States
107 | parameters:
108 | - $ref: '#/components/parameters/apiVersionHeaderParam'
109 | - $ref: '#/components/parameters/deviceIdPathParam'
110 | responses:
111 | '200':
112 | description: The state of PowerSwitch was successfully retrieved.
113 | content:
114 | application/json:
115 | schema:
116 | $ref: '#/components/schemas/PowerSwitchServiceStates'
117 | '404':
118 | description: |-
119 | The entity could not be found. One of the defined query parameters was invalid.
120 | content:
121 | application/json:
122 | schema:
123 | $ref: '#/components/schemas/AdvancedError'
124 |
125 | put:
126 | summary: Executes the powerSwitchState on the device.
127 | description: |-
128 | Executes the powerSwitchState on the device identified by the `deviceId` path parameter.
129 | tags:
130 | - States
131 | parameters:
132 | - $ref: '#/components/parameters/apiVersionHeaderParam'
133 | - $ref: '#/components/parameters/deviceIdPathParam'
134 | responses:
135 | '204':
136 | description: Accepted request.
137 | '400':
138 | description: One of the defined query parameters was invalid.
139 | content:
140 | application/json:
141 | schema:
142 | $ref: '#/components/schemas/AdvancedError'
143 | '404':
144 | description: The entity could not be found. One of the defined path parameters was invalid.
145 | content:
146 | application/json:
147 | schema:
148 | $ref: '#/components/schemas/AdvancedError'
149 | '405':
150 | description: The method was not allowed.
151 | '422':
152 | description: Mapping of defined query parameter failed.
153 | content:
154 | application/json:
155 | schema:
156 | $ref: '#/components/schemas/AdvancedError'
157 | requestBody:
158 | $ref: '#/components/requestBodies/PowerSwitchServicePowerSwitchStatePayload'
159 | components:
160 | schemas:
161 | AdvancedError:
162 | type: object
163 | properties:
164 | '@type':
165 | type: string
166 | description: The type of the Object.
167 | example: JsonRestExceptionResponseEntity
168 | errorCode:
169 | type: string
170 | description: The error code of the occurred Exception.
171 | statusCode:
172 | type: integer
173 | description: The HTTP status of the error.
174 | ServiceDefinition:
175 | type: array
176 | minItems: 1
177 | uniqueItems: true
178 | items:
179 | type: string
180 | description: "A single fully qualified identifier of the Service of a Device."
181 | example:
182 | - PowerMeter
183 | - PowerSwitch
184 | PowerMeterServiceStates:
185 | type: object
186 | description: PowerMeterService states of LightControl
187 | properties:
188 | powerConsumption:
189 | type: number
190 | energyConsumption:
191 | type: number
192 | PowerMeterService:
193 | type: object
194 | properties:
195 | '@type':
196 | type: string
197 | enum: [DeviceServiceData]
198 | description: The type of the Object.
199 | id:
200 | type: string
201 | enum: [deviceServiceId]
202 | description: "A single fully qualified identifier of the Service of a Device."
203 | deviceId:
204 | type: string
205 | description: "A single fully qualified identifier of the Device."
206 | state:
207 | $ref: '#/components/schemas/PowerMeterServiceStates'
208 | path:
209 | type: string
210 | description: The path to the Property.
211 | PowerSwitchServiceStates:
212 | type: object
213 | description: PowerSwitchService states of LightControl
214 | properties:
215 | '@type':
216 | type: string
217 | enum: [powerSwitchState]
218 | description: The type of the Object.
219 | switchState:
220 | $ref: '#/components/schemas/PowerSwitchState'
221 | PowerSwitchService:
222 | type: object
223 | properties:
224 | '@type':
225 | type: string
226 | enum: [DeviceServiceData]
227 | description: The type of the Object.
228 | id:
229 | type: string
230 | enum: [deviceServiceId]
231 | description: "A single fully qualified identifier of the Service of a Device."
232 | deviceId:
233 | type: string
234 | description: "A single fully qualified identifier of the Device."
235 | state:
236 | $ref: '#/components/schemas/PowerSwitchServiceStates'
237 | path:
238 | type: string
239 | description: The path to the Property.
240 | PowerSwitchState:
241 | type: string
242 | enum: [ON,OFF]
243 |
244 | requestBodies:
245 | PowerSwitchServicePowerSwitchStatePayload:
246 | content:
247 | application/json:
248 | schema:
249 | type: object
250 | properties:
251 | '@type':
252 | type: string
253 | enum: [powerSwitchState]
254 | description: The type of the Object.
255 | switchState:
256 | $ref: '#/components/schemas/PowerSwitchState'
257 | parameters:
258 | apiVersionHeaderParam:
259 | in: header
260 | name: api-version
261 | description: The version of the API.
262 | schema:
263 | type: string
264 | example: "1.0"
265 | deviceIdPathParam:
266 | name: deviceId
267 | in: path
268 | description: "A single fully qualified identifier of the Device."
269 | required: true
270 | schema:
271 | type: string
272 | propertyPathPathParam:
273 | name: propertyPath
274 | in: path
275 | description: The path to the Property.
276 | required: true
277 | schema:
278 | type: string
279 |
--------------------------------------------------------------------------------
/openapi/MotionDetector-local-openapi-v3.yml:
--------------------------------------------------------------------------------
1 | openapi: 3.0.0
2 | info:
3 | title: Bosch Smart Home Local API for Motion Detector
4 | description: |-
5 | This description focuses on the JSON-based, REST-like API for a Motion Detector.
6 |
7 | By using this documentation, the developer accepts and agrees to be bound by our [Terms and Conditions](https://github.com/BoschSmartHome/bosch-shc-api-docs#terms-and-conditions).
8 |
9 | This documentation is subject to the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).
10 |
11 | Please report any issues you encounter with this documentation in our [GitHub tracker](https://github.com/BoschSmartHome/bosch-shc-api-docs/issues).
12 | version: "1.0"
13 | servers:
14 | - url: https://{shcIp}:8444/smarthome
15 | description: "Bosch Smart Home Controller URL"
16 | variables:
17 | shcIp:
18 | default: 192.168.0.10
19 | tags:
20 | - name: Services
21 | description: Services of your MotionDetector
22 | - name: States
23 | description: States of your MotionDetector
24 | paths:
25 | '/devices/{deviceId}/services/LatestMotion':
26 | get:
27 | summary: Retrieve the LatestMotion service of the MotionDetector.
28 | description: |-
29 | Detects every movement through an intelligent combination of passive infra-red technology and an additional temperature sensor.
30 | tags:
31 | - Services
32 | parameters:
33 | - $ref: '#/components/parameters/apiVersionHeaderParam'
34 | - $ref: '#/components/parameters/deviceIdPathParam'
35 | responses:
36 | '200':
37 | description: The LatestMotion was successfully retrieved.
38 | content:
39 | application/json:
40 | schema:
41 | $ref: '#/components/schemas/LatestMotionService'
42 | '404':
43 | description: |-
44 | The entity could not be found. One of the defined query parameters was invalid.
45 | content:
46 | application/json:
47 | schema:
48 | $ref: '#/components/schemas/AdvancedError'
49 | '/devices/{deviceId}/services/LatestMotion/state':
50 | get:
51 | summary: Retrieve the state of the LatestMotion service.
52 | description: |-
53 | Retrieve the state of the LatestMotion service identified by the
54 | `deviceId` path parameter.
55 | tags:
56 | - States
57 | parameters:
58 | - $ref: '#/components/parameters/apiVersionHeaderParam'
59 | - $ref: '#/components/parameters/deviceIdPathParam'
60 | responses:
61 | '200':
62 | description: The state of LatestMotion was successfully retrieved.
63 | content:
64 | application/json:
65 | schema:
66 | $ref: '#/components/schemas/LatestMotionServiceStates'
67 | '404':
68 | description: |-
69 | The entity could not be found. One of the defined query parameters was invalid.
70 | content:
71 | application/json:
72 | schema:
73 | $ref: '#/components/schemas/AdvancedError'
74 | '/devices//services/MultiLevelSensor/state':
75 | get:
76 | summary: The MultiLevelSensor reports the illuminance only if either the corresponding MotionLight is enabled or
77 | an Automation trigger or condition for the MotionDetector's illuminance exists.
78 | description: |-
79 | Retrieve the state of the MultiLevelSensor service identified by the `deviceId` path parameter.
80 | tags:
81 | - States
82 | parameters:
83 | - $ref: '#/components/parameters/apiVersionHeaderParam'
84 | - $ref: '#/components/parameters/deviceIdPathParam'
85 | responses:
86 | '200':
87 | description: The state of MultiLevelSensor was successfully retrieved.
88 | content:
89 | application/json:
90 | schema:
91 | $ref: '#/components/schemas/IlluminanceLevelState'
92 | '404':
93 | description: |-
94 | The entity could not be found. One of the defined query parameters was invalid.
95 | content:
96 | application/json:
97 | schema:
98 | $ref: '#/components/schemas/AdvancedError'
99 | components:
100 | schemas:
101 | AdvancedError:
102 | type: object
103 | properties:
104 | '@type':
105 | type: string
106 | description: The type of the Object.
107 | example: JsonRestExceptionResponseEntity
108 | errorCode:
109 | type: string
110 | description: The error code of the occurred Exception.
111 | statusCode:
112 | type: integer
113 | description: The HTTP status of the error.
114 | ServiceDefinition:
115 | type: array
116 | minItems: 1
117 | uniqueItems: true
118 | items:
119 | type: string
120 | description: "A single fully qualified identifier of the Service of a Device."
121 | example:
122 | - LatestMotion
123 | LatestMotionServiceStates:
124 | type: object
125 | description: LatestMotionService states of MotionDetector
126 | properties:
127 | latestMotionDetected:
128 | type: string
129 | LatestMotionService:
130 | type: object
131 | properties:
132 | '@type':
133 | type: string
134 | enum: [DeviceServiceData]
135 | description: The type of the Object.
136 | id:
137 | type: string
138 | enum: [deviceServiceId]
139 | description: "A single fully qualified identifier of the Service of a Device."
140 | deviceId:
141 | type: string
142 | description: "A single fully qualified identifier of the Device."
143 | state:
144 | $ref: '#/components/schemas/LatestMotionServiceStates'
145 | path:
146 | type: string
147 | description: The path to the Property.
148 | IlluminanceLevelState:
149 | type: object
150 | properties:
151 | "@type":
152 | type: string
153 | example: "illuminanceLevelState"
154 | illuminance:
155 | type: integer
156 | example: 100
157 |
158 | parameters:
159 | apiVersionHeaderParam:
160 | in: header
161 | name: api-version
162 | description: The version of the API.
163 | schema:
164 | type: string
165 | example: "1.0"
166 | deviceIdPathParam:
167 | name: deviceId
168 | in: path
169 | description: "A single fully qualified identifier of the Device."
170 | required: true
171 | schema:
172 | type: string
173 | propertyPathPathParam:
174 | name: propertyPath
175 | in: path
176 | description: The path to the Property.
177 | required: true
178 | schema:
179 | type: string
180 |
--------------------------------------------------------------------------------
/openapi/PresenceSimulationSystem-local-openapi-v3.yml:
--------------------------------------------------------------------------------
1 | ### Generated by Eclipse Vorto OpenAPI Generator from Model 'vorto.private.local.com.bosch.sh:PresenceSimulationSystem:1.0.0'
2 | openapi: 3.0.0
3 | info:
4 | title: Bosch Smart Home Local API for Presence Simulation System
5 | description: |-
6 | This description focuses on the JSON-based, REST-like API for a Presence Simulation System.
7 |
8 | By using this documentation, the developer accepts and agrees to be bound by our [Terms and Conditions](https://github.com/BoschSmartHome/bosch-shc-api-docs#terms-and-conditions).
9 |
10 | This documentation is subject to the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).
11 |
12 | Please report any issues you encounter with this documentation in our [GitHub tracker](https://github.com/BoschSmartHome/bosch-shc-api-docs/issues).
13 | version: "1.0"
14 | servers:
15 | - url: https://{shcIp}:8444/smarthome
16 | description: "Bosch Smart Home Controller URL"
17 | variables:
18 | shcIp:
19 | default: 192.168.0.10
20 | tags:
21 | - name: Services
22 | description: Services of your PresenceSimulationSystem
23 | - name: States
24 | description: States of your PresenceSimulationSystem
25 | paths:
26 | '/devices/{deviceId}/services/PresenceSimulationConfiguration':
27 | get:
28 | summary: Retrieve the PresenceSimulationConfiguration service of the PresenceSimulationSystem.
29 | description: |-
30 | Presence is simulated by automatically controlling lights and electrical devices connected to Smart Plugs like the radio or television. A random algorithm changes the switching times just as if you were at home to give you peace of mind even when you are not there.
31 | tags:
32 | - Services
33 | parameters:
34 | - $ref: '#/components/parameters/apiVersionHeaderParam'
35 | - $ref: '#/components/parameters/deviceIdPathParam'
36 | responses:
37 | '200':
38 | description: The PresenceSimulationConfiguration was successfully retrieved.
39 | content:
40 | application/json:
41 | schema:
42 | $ref: '#/components/schemas/PresenceSimulationService'
43 | '404':
44 | description: |-
45 | The entity could not be found. One of the defined query parameters was invalid.
46 | content:
47 | application/json:
48 | schema:
49 | $ref: '#/components/schemas/AdvancedError'
50 | '/devices/{deviceId}/services/PresenceSimulationConfiguration/state':
51 | get:
52 | summary: Retrieve the state of the PresenceSimulationConfiguration service.
53 | description: |-
54 | Retrieve the state of the PresenceSimulationConfiguration service identified by the
55 | `deviceId` path parameter.
56 | tags:
57 | - States
58 | parameters:
59 | - $ref: '#/components/parameters/apiVersionHeaderParam'
60 | - $ref: '#/components/parameters/deviceIdPathParam'
61 | responses:
62 | '200':
63 | description: The state of PresenceSimulationConfiguration was successfully retrieved.
64 | content:
65 | application/json:
66 | schema:
67 | $ref: '#/components/schemas/PresenceSimulationServiceStates'
68 | '404':
69 | description: |-
70 | The entity could not be found. One of the defined query parameters was invalid.
71 | content:
72 | application/json:
73 | schema:
74 | $ref: '#/components/schemas/AdvancedError'
75 |
76 | put:
77 | summary: Executes the presenceSimulationConfigurationState on the device.
78 | description: |-
79 | Executes the presenceSimulationConfigurationState on the device identified by the `deviceId` path parameter.
80 | tags:
81 | - States
82 | parameters:
83 | - $ref: '#/components/parameters/apiVersionHeaderParam'
84 | - $ref: '#/components/parameters/deviceIdPathParam'
85 | responses:
86 | '204':
87 | description: Accepted request.
88 | '400':
89 | description: One of the defined query parameters was invalid.
90 | content:
91 | application/json:
92 | schema:
93 | $ref: '#/components/schemas/AdvancedError'
94 | '404':
95 | description: The entity could not be found. One of the defined path parameters was invalid.
96 | content:
97 | application/json:
98 | schema:
99 | $ref: '#/components/schemas/AdvancedError'
100 | '405':
101 | description: The method was not allowed.
102 | '422':
103 | description: Mapping of defined query parameter failed.
104 | content:
105 | application/json:
106 | schema:
107 | $ref: '#/components/schemas/AdvancedError'
108 | requestBody:
109 | $ref: '#/components/requestBodies/PresenceSimulationServicePresenceSimulationConfigurationStatePayload'
110 | components:
111 | schemas:
112 | AdvancedError:
113 | type: object
114 | properties:
115 | '@type':
116 | type: string
117 | description: The type of the Object.
118 | example: JsonRestExceptionResponseEntity
119 | errorCode:
120 | type: string
121 | description: The error code of the occurred Exception.
122 | statusCode:
123 | type: integer
124 | description: The HTTP status of the error.
125 | ServiceDefinition:
126 | type: array
127 | minItems: 1
128 | uniqueItems: true
129 | items:
130 | type: string
131 | description: "A single fully qualified identifier of the Service of a Device."
132 | example:
133 | - PresenceSimulationConfiguration
134 | PresenceSimulationServiceStates:
135 | type: object
136 | description: PresenceSimulationService states of PresenceSimulationSystem
137 | properties:
138 | '@type':
139 | type: string
140 | enum: [presenceSimulationConfigurationState]
141 | description: The type of the Object.
142 | enabled:
143 | type: boolean
144 | PresenceSimulationService:
145 | type: object
146 | properties:
147 | '@type':
148 | type: string
149 | enum: [DeviceServiceData]
150 | description: The type of the Object.
151 | id:
152 | type: string
153 | enum: [deviceServiceId]
154 | description: "A single fully qualified identifier of the Service of a Device."
155 | deviceId:
156 | type: string
157 | description: "A single fully qualified identifier of the Device."
158 | state:
159 | $ref: '#/components/schemas/PresenceSimulationServiceStates'
160 | path:
161 | type: string
162 | description: The path to the Property.
163 |
164 | requestBodies:
165 | PresenceSimulationServicePresenceSimulationConfigurationStatePayload:
166 | content:
167 | application/json:
168 | schema:
169 | type: object
170 | properties:
171 | '@type':
172 | type: string
173 | enum: [presenceSimulationConfigurationState]
174 | description: The type of the Object.
175 | enabled:
176 | type: boolean
177 | parameters:
178 | apiVersionHeaderParam:
179 | in: header
180 | name: api-version
181 | description: The version of the API.
182 | schema:
183 | type: string
184 | example: "1.0"
185 | deviceIdPathParam:
186 | name: deviceId
187 | in: path
188 | description: "A single fully qualified identifier of the Device."
189 | required: true
190 | schema:
191 | type: string
192 | propertyPathPathParam:
193 | name: propertyPath
194 | in: path
195 | description: The path to the Property.
196 | required: true
197 | schema:
198 | type: string
199 |
--------------------------------------------------------------------------------
/openapi/RoomThermostat-local-openapi-v3.yml:
--------------------------------------------------------------------------------
1 | ### Generated by Eclipse Vorto OpenAPI Generator from Model 'vorto.private.local.com.bosch.sh:Thermostat:1.0.0'
2 | openapi: 3.0.0
3 | info:
4 | title: Bosch Smart Home Local API for Room Thermostat
5 | description: |-
6 | This description focuses on the JSON-based, REST-like API for a Room Thermostat.
7 |
8 | By using this documentation, the developer accepts and agrees to be bound by our [Terms and Conditions](https://github.com/BoschSmartHome/bosch-shc-api-docs#terms-and-conditions).
9 |
10 | This documentation is subject to the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).
11 |
12 | Please report any issues you encounter with this documentation in our [GitHub tracker](https://github.com/BoschSmartHome/bosch-shc-api-docs/issues).
13 | version: "1.0"
14 | servers:
15 | - url: https://{shcIp}:8444/smarthome
16 | description: "Bosch Smart Home Controller URL"
17 | variables:
18 | shcIp:
19 | default: 192.168.0.10
20 | tags:
21 | - name: Services
22 | description: Services of your RoomThermostat
23 | - name: States
24 | description: States of your RoomThermostat
25 | paths:
26 | '/devices/{deviceId}/services/HumidityLevel':
27 | get:
28 | summary: Retrieve the HumidityLevel service of the RoomThermostat.
29 | description: |-
30 | Measures the humidity at a central point in the room.
31 | tags:
32 | - Services
33 | parameters:
34 | - $ref: '#/components/parameters/apiVersionHeaderParam'
35 | - $ref: '#/components/parameters/deviceIdPathParam'
36 | responses:
37 | '200':
38 | description: The HumidityLevel was successfully retrieved.
39 | content:
40 | application/json:
41 | schema:
42 | $ref: '#/components/schemas/HumidityLevelService'
43 | '404':
44 | description: |-
45 | The entity could not be found. One of the defined query parameters was invalid.
46 | content:
47 | application/json:
48 | schema:
49 | $ref: '#/components/schemas/AdvancedError'
50 | '/devices/{deviceId}/services/HumidityLevel/state':
51 | get:
52 | summary: Retrieve the state of the HumidityLevel service.
53 | description: |-
54 | Retrieve the state of the HumidityLevel service identified by the
55 | `deviceId` path parameter.
56 | tags:
57 | - States
58 | parameters:
59 | - $ref: '#/components/parameters/apiVersionHeaderParam'
60 | - $ref: '#/components/parameters/deviceIdPathParam'
61 | responses:
62 | '200':
63 | description: The state of HumidityLevel was successfully retrieved.
64 | content:
65 | application/json:
66 | schema:
67 | $ref: '#/components/schemas/HumidityLevelServiceStates'
68 | '404':
69 | description: |-
70 | The entity could not be found. One of the defined query parameters was invalid.
71 | content:
72 | application/json:
73 | schema:
74 | $ref: '#/components/schemas/AdvancedError'
75 |
76 | '/devices/{deviceId}/services/TemperatureLevel':
77 | get:
78 | summary: Retrieve the TemperatureLevel service of the RoomThermostat.
79 | description: |-
80 | Measures the temperature at a central point in the room.
81 | tags:
82 | - Services
83 | parameters:
84 | - $ref: '#/components/parameters/apiVersionHeaderParam'
85 | - $ref: '#/components/parameters/deviceIdPathParam'
86 | responses:
87 | '200':
88 | description: The TemperatureLevel was successfully retrieved.
89 | content:
90 | application/json:
91 | schema:
92 | $ref: '#/components/schemas/TemperatureLevelService'
93 | '404':
94 | description: |-
95 | The entity could not be found. One of the defined query parameters was invalid.
96 | content:
97 | application/json:
98 | schema:
99 | $ref: '#/components/schemas/AdvancedError'
100 | '/devices/{deviceId}/services/TemperatureLevel/state':
101 | get:
102 | summary: Retrieve the state of the TemperatureLevel service.
103 | description: |-
104 | Retrieve the state of the TemperatureLevel service identified by the
105 | `deviceId` path parameter.
106 | tags:
107 | - States
108 | parameters:
109 | - $ref: '#/components/parameters/apiVersionHeaderParam'
110 | - $ref: '#/components/parameters/deviceIdPathParam'
111 | responses:
112 | '200':
113 | description: The state of TemperatureLevel was successfully retrieved.
114 | content:
115 | application/json:
116 | schema:
117 | $ref: '#/components/schemas/TemperatureLevelServiceStates'
118 | '404':
119 | description: |-
120 | The entity could not be found. One of the defined query parameters was invalid.
121 | content:
122 | application/json:
123 | schema:
124 | $ref: '#/components/schemas/AdvancedError'
125 |
126 | components:
127 | schemas:
128 | AdvancedError:
129 | type: object
130 | properties:
131 | '@type':
132 | type: string
133 | description: The type of the Object.
134 | example: JsonRestExceptionResponseEntity
135 | errorCode:
136 | type: string
137 | description: The error code of the occurred Exception.
138 | statusCode:
139 | type: integer
140 | description: The HTTP status of the error.
141 | ServiceDefinition:
142 | type: array
143 | minItems: 1
144 | uniqueItems: true
145 | items:
146 | type: string
147 | description: "A single fully qualified identifier of the Service of a Device."
148 | example:
149 | - HumidityLevel
150 | - TemperatureLevel
151 | HumidityLevelServiceStates:
152 | type: object
153 | description: HumidityLevelService states of RoomThermostat
154 | properties:
155 | humidity:
156 | type: number
157 | HumidityLevelService:
158 | type: object
159 | properties:
160 | '@type':
161 | type: string
162 | enum: [DeviceServiceData]
163 | description: The type of the Object.
164 | id:
165 | type: string
166 | enum: [HumidityLevel]
167 | description: "A single fully qualified identifier of the Service of a Device."
168 | deviceId:
169 | type: string
170 | description: "A single fully qualified identifier of the Device."
171 | state:
172 | $ref: '#/components/schemas/HumidityLevelServiceStates'
173 | path:
174 | type: string
175 | description: The path to the Property.
176 | TemperatureLevelServiceStates:
177 | type: object
178 | description: TemperatureLevelService states of RoomThermostat
179 | properties:
180 | temperature:
181 | type: number
182 | TemperatureLevelService:
183 | type: object
184 | properties:
185 | '@type':
186 | type: string
187 | enum: [DeviceServiceData]
188 | description: The type of the Object.
189 | id:
190 | type: string
191 | enum: [TemperatureLevel]
192 | description: "A single fully qualified identifier of the Service of a Device."
193 | deviceId:
194 | type: string
195 | description: "A single fully qualified identifier of the Device."
196 | state:
197 | $ref: '#/components/schemas/TemperatureLevelServiceStates'
198 | path:
199 | type: string
200 | description: The path to the Property.
201 |
202 | parameters:
203 | apiVersionHeaderParam:
204 | in: header
205 | name: api-version
206 | description: The version of the API.
207 | schema:
208 | type: string
209 | example: "1.0"
210 | deviceIdPathParam:
211 | name: deviceId
212 | in: path
213 | description: "A single fully qualified identifier of the Device."
214 | required: true
215 | schema:
216 | type: string
217 | propertyPathPathParam:
218 | name: propertyPath
219 | in: path
220 | description: The path to the Property.
221 | required: true
222 | schema:
223 | type: string
224 |
--------------------------------------------------------------------------------
/openapi/SecurityCamera360-local-openapi-v3.yml:
--------------------------------------------------------------------------------
1 | ### Generated by Eclipse Vorto OpenAPI Generator from Model 'vorto.private.local.com.bosch.sh:SecurityCamera360:1.0.0'
2 | openapi: 3.0.0
3 | info:
4 | title: Bosch Smart Home Local API for Security Camera 360
5 | description: |-
6 | This description focuses on the JSON-based, REST-like API for a Security Camera 360.
7 |
8 | By using this documentation, the developer accepts and agrees to be bound by our [Terms and Conditions](https://github.com/BoschSmartHome/bosch-shc-api-docs#terms-and-conditions).
9 |
10 | This documentation is subject to the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).
11 |
12 | Please report any issues you encounter with this documentation in our [GitHub tracker](https://github.com/BoschSmartHome/bosch-shc-api-docs/issues).
13 | version: "1.0"
14 | servers:
15 | - url: https://{shcIp}:8444/smarthome
16 | description: "Bosch Smart Home Controller URL"
17 | variables:
18 | shcIp:
19 | default: 192.168.0.10
20 | tags:
21 | - name: Services
22 | description: Services of your SecurityCamera360
23 | - name: States
24 | description: States of your SecurityCamera360
25 | paths:
26 | '/devices/{deviceId}/services/PrivacyMode':
27 | get:
28 | summary: Retrieve the PrivacyMode service of the SecurityCamera360.
29 | description: |-
30 | With this service the device can be easily set in privacy mode and enhances your Bosch Smart Home System as an additional security component.
31 | tags:
32 | - Services
33 | parameters:
34 | - $ref: '#/components/parameters/apiVersionHeaderParam'
35 | - $ref: '#/components/parameters/deviceIdPathParam'
36 | responses:
37 | '200':
38 | description: The PrivacyMode was successfully retrieved.
39 | content:
40 | application/json:
41 | schema:
42 | $ref: '#/components/schemas/PrivacyModeService'
43 | '404':
44 | description: |-
45 | The entity could not be found. One of the defined query parameters was invalid.
46 | content:
47 | application/json:
48 | schema:
49 | $ref: '#/components/schemas/AdvancedError'
50 | '/devices/{deviceId}/services/PrivacyMode/state':
51 | get:
52 | summary: Retrieve the state of the PrivacyMode service.
53 | description: |-
54 | Retrieve the state of the PrivacyMode service identified by the
55 | `deviceId` path parameter.
56 | tags:
57 | - States
58 | parameters:
59 | - $ref: '#/components/parameters/apiVersionHeaderParam'
60 | - $ref: '#/components/parameters/deviceIdPathParam'
61 | responses:
62 | '200':
63 | description: The state of PrivacyMode was successfully retrieved.
64 | content:
65 | application/json:
66 | schema:
67 | $ref: '#/components/schemas/PrivacyModeServiceStates'
68 | '404':
69 | description: |-
70 | The entity could not be found. One of the defined query parameters was invalid.
71 | content:
72 | application/json:
73 | schema:
74 | $ref: '#/components/schemas/AdvancedError'
75 |
76 | put:
77 | summary: Executes the privacyModeState on the device.
78 | description: |-
79 | Executes the privacyModeState on the device identified by the `deviceId` path parameter.
80 | tags:
81 | - States
82 | parameters:
83 | - $ref: '#/components/parameters/apiVersionHeaderParam'
84 | - $ref: '#/components/parameters/deviceIdPathParam'
85 | responses:
86 | '204':
87 | description: Accepted request.
88 | '400':
89 | description: One of the defined query parameters was invalid.
90 | content:
91 | application/json:
92 | schema:
93 | $ref: '#/components/schemas/AdvancedError'
94 | '404':
95 | description: The entity could not be found. One of the defined path parameters was invalid.
96 | content:
97 | application/json:
98 | schema:
99 | $ref: '#/components/schemas/AdvancedError'
100 | '405':
101 | description: The method was not allowed.
102 | '422':
103 | description: Mapping of defined query parameter failed.
104 | content:
105 | application/json:
106 | schema:
107 | $ref: '#/components/schemas/AdvancedError'
108 | requestBody:
109 | $ref: '#/components/requestBodies/PrivacyModeServicePrivacyModeStatePayload'
110 | components:
111 | schemas:
112 | AdvancedError:
113 | type: object
114 | properties:
115 | '@type':
116 | type: string
117 | description: The type of the Object.
118 | example: JsonRestExceptionResponseEntity
119 | errorCode:
120 | type: string
121 | description: The error code of the occurred Exception.
122 | statusCode:
123 | type: integer
124 | description: The HTTP status of the error.
125 | ServiceDefinition:
126 | type: array
127 | minItems: 1
128 | uniqueItems: true
129 | items:
130 | type: string
131 | description: "A single fully qualified identifier of the Service of a Device."
132 | example:
133 | - PrivacyMode
134 | PrivacyModeServiceStates:
135 | type: object
136 | description: PrivacyModeService states of SecurityCamera360
137 | properties:
138 | '@type':
139 | type: string
140 | enum: [privacyModeState]
141 | description: The type of the Object.
142 | value:
143 | $ref: '#/components/schemas/PrivacyModeState'
144 | PrivacyModeService:
145 | type: object
146 | properties:
147 | '@type':
148 | type: string
149 | enum: [DeviceServiceData]
150 | description: The type of the Object.
151 | id:
152 | type: string
153 | enum: [deviceServiceId]
154 | description: "A single fully qualified identifier of the Service of a Device."
155 | deviceId:
156 | type: string
157 | description: "A single fully qualified identifier of the Device."
158 | state:
159 | $ref: '#/components/schemas/PrivacyModeServiceStates'
160 | path:
161 | type: string
162 | description: The path to the Property.
163 | PrivacyModeState:
164 | type: string
165 | enum: [ENABLED,DISABLED]
166 |
167 | requestBodies:
168 | PrivacyModeServicePrivacyModeStatePayload:
169 | content:
170 | application/json:
171 | schema:
172 | type: object
173 | properties:
174 | '@type':
175 | type: string
176 | enum: [privacyModeState]
177 | description: The type of the Object.
178 | value:
179 | $ref: '#/components/schemas/PrivacyModeState'
180 | parameters:
181 | apiVersionHeaderParam:
182 | in: header
183 | name: api-version
184 | description: The version of the API.
185 | schema:
186 | type: string
187 | example: "1.0"
188 | deviceIdPathParam:
189 | name: deviceId
190 | in: path
191 | description: "A single fully qualified identifier of the Device."
192 | required: true
193 | schema:
194 | type: string
195 | propertyPathPathParam:
196 | name: propertyPath
197 | in: path
198 | description: The path to the Property.
199 | required: true
200 | schema:
201 | type: string
202 |
--------------------------------------------------------------------------------
/openapi/SecurityCameraEyes-local-openapi-v3.yml:
--------------------------------------------------------------------------------
1 | ### Generated by Eclipse Vorto OpenAPI Generator from Model 'vorto.private.local.com.bosch.sh:SecurityCameraEyes:1.0.0'
2 | openapi: 3.0.0
3 | info:
4 | title: Bosch Smart Home Local API for Security Camera Eyes
5 | description: |-
6 | This description focuses on the JSON-based, REST-like API for a Security Camera Eyes.
7 |
8 | By using this documentation, the developer accepts and agrees to be bound by our [Terms and Conditions](https://github.com/BoschSmartHome/bosch-shc-api-docs#terms-and-conditions).
9 |
10 | This documentation is subject to the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).
11 |
12 | Please report any issues you encounter with this documentation in our [GitHub tracker](https://github.com/BoschSmartHome/bosch-shc-api-docs/issues).
13 | version: "1.0"
14 | servers:
15 | - url: https://{shcIp}:8444/smarthome
16 | description: "Bosch Smart Home Controller URL"
17 | variables:
18 | shcIp:
19 | default: 192.168.0.10
20 | tags:
21 | - name: Services
22 | description: Services of your SecurityCameraEyes
23 | - name: States
24 | description: States of your SecurityCameraEyes
25 | paths:
26 | '/devices/{deviceId}/services/PrivacyMode':
27 | get:
28 | summary: Retrieve the PrivacyMode service of the SecurityCameraEyes.
29 | description: |-
30 | With this service the device can be easily set in privacy mode and enhances your Bosch Smart Home System as an additional security component.
31 | tags:
32 | - Services
33 | parameters:
34 | - $ref: '#/components/parameters/apiVersionHeaderParam'
35 | - $ref: '#/components/parameters/deviceIdPathParam'
36 | responses:
37 | '200':
38 | description: The PrivacyMode was successfully retrieved.
39 | content:
40 | application/json:
41 | schema:
42 | $ref: '#/components/schemas/PrivacyModeService'
43 | '404':
44 | description: |-
45 | The entity could not be found. One of the defined query parameters was invalid.
46 | content:
47 | application/json:
48 | schema:
49 | $ref: '#/components/schemas/AdvancedError'
50 | '/devices/{deviceId}/services/PrivacyMode/state':
51 | get:
52 | summary: Retrieve the state of the PrivacyMode service.
53 | description: |-
54 | Retrieve the state of the PrivacyMode service identified by the
55 | `deviceId` path parameter.
56 | tags:
57 | - States
58 | parameters:
59 | - $ref: '#/components/parameters/apiVersionHeaderParam'
60 | - $ref: '#/components/parameters/deviceIdPathParam'
61 | responses:
62 | '200':
63 | description: The state of PrivacyMode was successfully retrieved.
64 | content:
65 | application/json:
66 | schema:
67 | $ref: '#/components/schemas/PrivacyModeServiceStates'
68 | '404':
69 | description: |-
70 | The entity could not be found. One of the defined query parameters was invalid.
71 | content:
72 | application/json:
73 | schema:
74 | $ref: '#/components/schemas/AdvancedError'
75 |
76 | put:
77 | summary: Executes the privacyModeState on the device.
78 | description: |-
79 | Executes the privacyModeState on the device identified by the `deviceId` path parameter.
80 | tags:
81 | - States
82 | parameters:
83 | - $ref: '#/components/parameters/apiVersionHeaderParam'
84 | - $ref: '#/components/parameters/deviceIdPathParam'
85 | responses:
86 | '204':
87 | description: Accepted request.
88 | '400':
89 | description: One of the defined query parameters was invalid.
90 | content:
91 | application/json:
92 | schema:
93 | $ref: '#/components/schemas/AdvancedError'
94 | '404':
95 | description: The entity could not be found. One of the defined path parameters was invalid.
96 | content:
97 | application/json:
98 | schema:
99 | $ref: '#/components/schemas/AdvancedError'
100 | '405':
101 | description: The method was not allowed.
102 | '422':
103 | description: Mapping of defined query parameter failed.
104 | content:
105 | application/json:
106 | schema:
107 | $ref: '#/components/schemas/AdvancedError'
108 | requestBody:
109 | $ref: '#/components/requestBodies/PrivacyModeServicePrivacyModeStatePayload'
110 | components:
111 | schemas:
112 | AdvancedError:
113 | type: object
114 | properties:
115 | '@type':
116 | type: string
117 | description: The type of the Object.
118 | example: JsonRestExceptionResponseEntity
119 | errorCode:
120 | type: string
121 | description: The error code of the occurred Exception.
122 | statusCode:
123 | type: integer
124 | description: The HTTP status of the error.
125 | ServiceDefinition:
126 | type: array
127 | minItems: 1
128 | uniqueItems: true
129 | items:
130 | type: string
131 | description: "A single fully qualified identifier of the Service of a Device."
132 | example:
133 | - PrivacyMode
134 | PrivacyModeServiceStates:
135 | type: object
136 | description: PrivacyModeService states of SecurityCameraEyes
137 | properties:
138 | '@type':
139 | type: string
140 | enum: [privacyModeState]
141 | description: The type of the Object.
142 | value:
143 | $ref: '#/components/schemas/PrivacyModeState'
144 | PrivacyModeService:
145 | type: object
146 | properties:
147 | '@type':
148 | type: string
149 | enum: [DeviceServiceData]
150 | description: The type of the Object.
151 | id:
152 | type: string
153 | enum: [deviceServiceId]
154 | description: "A single fully qualified identifier of the Service of a Device."
155 | deviceId:
156 | type: string
157 | description: "A single fully qualified identifier of the Device."
158 | state:
159 | $ref: '#/components/schemas/PrivacyModeServiceStates'
160 | path:
161 | type: string
162 | description: The path to the Property.
163 | PrivacyModeState:
164 | type: string
165 | enum: [ENABLED,DISABLED]
166 |
167 | requestBodies:
168 | PrivacyModeServicePrivacyModeStatePayload:
169 | content:
170 | application/json:
171 | schema:
172 | type: object
173 | properties:
174 | '@type':
175 | type: string
176 | enum: [privacyModeState]
177 | description: The type of the Object.
178 | value:
179 | $ref: '#/components/schemas/PrivacyModeState'
180 | parameters:
181 | apiVersionHeaderParam:
182 | in: header
183 | name: api-version
184 | description: The version of the API.
185 | schema:
186 | type: string
187 | example: "1.0"
188 | deviceIdPathParam:
189 | name: deviceId
190 | in: path
191 | description: "A single fully qualified identifier of the Device."
192 | required: true
193 | schema:
194 | type: string
195 | propertyPathPathParam:
196 | name: propertyPath
197 | in: path
198 | description: The path to the Property.
199 | required: true
200 | schema:
201 | type: string
202 |
--------------------------------------------------------------------------------
/openapi/Shutter-local-openapi-v3.yml:
--------------------------------------------------------------------------------
1 | openapi: 3.0.0
2 | info:
3 | title: Bosch Smart Home Local API for Shutter
4 | description: |-
5 | This description focuses on the JSON-based, REST-like API for a Shutter.
6 |
7 | By using this documentation, the developer accepts and agrees to be bound by our [Terms and Conditions](https://github.com/BoschSmartHome/bosch-shc-api-docs#terms-and-conditions).
8 |
9 | This documentation is subject to the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).
10 |
11 | Please report any issues you encounter with this documentation in our [GitHub tracker](https://github.com/BoschSmartHome/bosch-shc-api-docs/issues).
12 | version: "1.0"
13 | servers:
14 | - url: https://{shcIp}:8444/smarthome
15 | description: "Bosch Smart Home Controller URL"
16 | variables:
17 | shcIp:
18 | default: 192.168.0.10
19 | tags:
20 | - name: Services
21 | description: Services of your Shutter
22 | - name: States
23 | description: States of your Shutter
24 | paths:
25 | '/devices/{deviceId}/services/ShutterControl':
26 | get:
27 | summary: Retrieve the ShutterControl service of the Shutter.
28 | description: |-
29 | Control of your shutter to take any position you desire.
30 | tags:
31 | - Services
32 | parameters:
33 | - $ref: '#/components/parameters/apiVersionHeaderParam'
34 | - $ref: '#/components/parameters/deviceIdPathParam'
35 | responses:
36 | '200':
37 | description: The ShutterControl was successfully retrieved.
38 | content:
39 | application/json:
40 | schema:
41 | $ref: '#/components/schemas/ShutterControlService'
42 | '404':
43 | description: |-
44 | The entity could not be found. One of the defined query parameters was invalid.
45 | content:
46 | application/json:
47 | schema:
48 | $ref: '#/components/schemas/AdvancedError'
49 | '/devices/{deviceId}/services/ShutterControl/state':
50 | get:
51 | summary: Retrieve the state of the ShutterControl service.
52 | description: |-
53 | Retrieve the state of the ShutterControl service identified by the
54 | `deviceId` path parameter.
55 | tags:
56 | - States
57 | parameters:
58 | - $ref: '#/components/parameters/apiVersionHeaderParam'
59 | - $ref: '#/components/parameters/deviceIdPathParam'
60 | responses:
61 | '200':
62 | description: The state of ShutterControl was successfully retrieved.
63 | content:
64 | application/json:
65 | schema:
66 | $ref: '#/components/schemas/ShutterControlServiceStates'
67 | '404':
68 | description: |-
69 | The entity could not be found. One of the defined query parameters was invalid.
70 | content:
71 | application/json:
72 | schema:
73 | $ref: '#/components/schemas/AdvancedError'
74 |
75 | put:
76 | summary: Executes the shutterControlState on the device.
77 | description: |-
78 | Executes the shutterControlState on the device identified by the `deviceId` path parameter.
79 | tags:
80 | - States
81 | parameters:
82 | - $ref: '#/components/parameters/apiVersionHeaderParam'
83 | - $ref: '#/components/parameters/deviceIdPathParam'
84 | responses:
85 | '204':
86 | description: Accepted request.
87 | '400':
88 | description: One of the defined query parameters was invalid.
89 | content:
90 | application/json:
91 | schema:
92 | $ref: '#/components/schemas/AdvancedError'
93 | '404':
94 | description: The entity could not be found. One of the defined path parameters was invalid.
95 | content:
96 | application/json:
97 | schema:
98 | $ref: '#/components/schemas/AdvancedError'
99 | '405':
100 | description: The method was not allowed.
101 | '422':
102 | description: Mapping of defined query parameter failed.
103 | content:
104 | application/json:
105 | schema:
106 | $ref: '#/components/schemas/AdvancedError'
107 | requestBody:
108 | $ref: '#/components/requestBodies/ShutterControlServiceShutterControlStatePayload'
109 | components:
110 | schemas:
111 | AdvancedError:
112 | type: object
113 | properties:
114 | '@type':
115 | type: string
116 | description: The type of the Object.
117 | example: JsonRestExceptionResponseEntity
118 | errorCode:
119 | type: string
120 | description: The error code of the occurred Exception.
121 | statusCode:
122 | type: integer
123 | description: The HTTP status of the error.
124 | ServiceDefinition:
125 | type: array
126 | minItems: 1
127 | uniqueItems: true
128 | items:
129 | type: string
130 | description: "A single fully qualified identifier of the Service of a Device."
131 | example:
132 | - ShutterControl
133 | ShutterControlServiceStates:
134 | type: object
135 | description: ShutterControlService states of Shutter
136 | properties:
137 | '@type':
138 | type: string
139 | enum: [shutterControlState]
140 | description: The type of the Object.
141 | level:
142 | $ref: '#/components/schemas/ShutterControlState'
143 | ShutterControlService:
144 | type: object
145 | properties:
146 | '@type':
147 | type: string
148 | enum: [DeviceServiceData]
149 | description: The type of the Object.
150 | id:
151 | type: string
152 | enum: [deviceServiceId]
153 | description: "A single fully qualified identifier of the Service of a Device."
154 | deviceId:
155 | type: string
156 | description: "A single fully qualified identifier of the Device."
157 | state:
158 | $ref: '#/components/schemas/ShutterControlServiceStates'
159 | path:
160 | type: string
161 | description: The path to the Property.
162 | ShutterControlState:
163 | type: string
164 | enum: ["0.000", "0.005", "...", "0.995", "1.000"]
165 |
166 | requestBodies:
167 | ShutterControlServiceShutterControlStatePayload:
168 | content:
169 | application/json:
170 | schema:
171 | type: object
172 | properties:
173 | '@type':
174 | type: string
175 | enum: [shutterControlState]
176 | description: The type of the Object.
177 | level:
178 | $ref: '#/components/schemas/ShutterControlState'
179 | parameters:
180 | apiVersionHeaderParam:
181 | in: header
182 | name: api-version
183 | description: The version of the API.
184 | schema:
185 | type: string
186 | example: "1.0"
187 | deviceIdPathParam:
188 | name: deviceId
189 | in: path
190 | description: "A single fully qualified identifier of the Device."
191 | required: true
192 | schema:
193 | type: string
194 | propertyPathPathParam:
195 | name: propertyPath
196 | in: path
197 | description: The path to the Property.
198 | required: true
199 | schema:
200 | type: string
201 |
--------------------------------------------------------------------------------
/openapi/SmartPlug-local-openapi-v3.yml:
--------------------------------------------------------------------------------
1 | ### Generated by Eclipse Vorto OpenAPI Generator from Model 'vorto.private.local.com.bosch.sh:SmartPlug:1.0.0'
2 | openapi: 3.0.0
3 | info:
4 | title: Bosch Smart Home Local API for Smart Plug
5 | description: |-
6 | This description focuses on the JSON-based, REST-like API for a Smart Plug.
7 |
8 | By using this documentation, the developer accepts and agrees to be bound by our [Terms and Conditions](https://github.com/BoschSmartHome/bosch-shc-api-docs#terms-and-conditions).
9 |
10 | This documentation is subject to the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).
11 |
12 | Please report any issues you encounter with this documentation in our [GitHub tracker](https://github.com/BoschSmartHome/bosch-shc-api-docs/issues).
13 | version: "1.0"
14 | servers:
15 | - url: https://{shcIp}:8444/smarthome
16 | description: "Bosch Smart Home Controller URL"
17 | variables:
18 | shcIp:
19 | default: 192.168.0.10
20 | tags:
21 | - name: Services
22 | description: Services of your SmartPlug
23 | - name: States
24 | description: States of your SmartPlug
25 | paths:
26 | '/devices/{deviceId}/services/PowerMeter':
27 | get:
28 | summary: Retrieve the PowerMeter service of the SmartPlug.
29 | description: |-
30 | With this service you always have an eye on energy consumption.
31 | tags:
32 | - Services
33 | parameters:
34 | - $ref: '#/components/parameters/apiVersionHeaderParam'
35 | - $ref: '#/components/parameters/deviceIdPathParam'
36 | responses:
37 | '200':
38 | description: The PowerMeter was successfully retrieved.
39 | content:
40 | application/json:
41 | schema:
42 | $ref: '#/components/schemas/PowerMeterService'
43 | '404':
44 | description: |-
45 | The entity could not be found. One of the defined query parameters was invalid.
46 | content:
47 | application/json:
48 | schema:
49 | $ref: '#/components/schemas/AdvancedError'
50 | '/devices/{deviceId}/services/PowerMeter/state':
51 | get:
52 | summary: Retrieve the state of the PowerMeter service.
53 | description: |-
54 | Retrieve the state of the PowerMeter service identified by the
55 | `deviceId` path parameter.
56 | tags:
57 | - States
58 | parameters:
59 | - $ref: '#/components/parameters/apiVersionHeaderParam'
60 | - $ref: '#/components/parameters/deviceIdPathParam'
61 | responses:
62 | '200':
63 | description: The state of PowerMeter was successfully retrieved.
64 | content:
65 | application/json:
66 | schema:
67 | $ref: '#/components/schemas/PowerMeterServiceStates'
68 | '404':
69 | description: |-
70 | The entity could not be found. One of the defined query parameters was invalid.
71 | content:
72 | application/json:
73 | schema:
74 | $ref: '#/components/schemas/AdvancedError'
75 |
76 | '/devices/{deviceId}/services/PowerSwitch':
77 | get:
78 | summary: Retrieve the PowerSwitch service of the SmartPlug.
79 | description: |-
80 | Switch electrical appliances on and off. Can be used with electrical appliances with high ratings of up to 3680 W.
81 | tags:
82 | - Services
83 | parameters:
84 | - $ref: '#/components/parameters/apiVersionHeaderParam'
85 | - $ref: '#/components/parameters/deviceIdPathParam'
86 | responses:
87 | '200':
88 | description: The PowerSwitch was successfully retrieved.
89 | content:
90 | application/json:
91 | schema:
92 | $ref: '#/components/schemas/PowerSwitchService'
93 | '404':
94 | description: |-
95 | The entity could not be found. One of the defined query parameters was invalid.
96 | content:
97 | application/json:
98 | schema:
99 | $ref: '#/components/schemas/AdvancedError'
100 | '/devices/{deviceId}/services/PowerSwitch/state':
101 | get:
102 | summary: Retrieve the state of the PowerSwitch service.
103 | description: |-
104 | Retrieve the state of the PowerSwitch service identified by the
105 | `deviceId` path parameter.
106 | tags:
107 | - States
108 | parameters:
109 | - $ref: '#/components/parameters/apiVersionHeaderParam'
110 | - $ref: '#/components/parameters/deviceIdPathParam'
111 | responses:
112 | '200':
113 | description: The state of PowerSwitch was successfully retrieved.
114 | content:
115 | application/json:
116 | schema:
117 | $ref: '#/components/schemas/PowerSwitchServiceStates'
118 | '404':
119 | description: |-
120 | The entity could not be found. One of the defined query parameters was invalid.
121 | content:
122 | application/json:
123 | schema:
124 | $ref: '#/components/schemas/AdvancedError'
125 |
126 | put:
127 | summary: Executes the powerSwitchState on the device.
128 | description: |-
129 | Executes the powerSwitchState on the device identified by the `deviceId` path parameter.
130 | tags:
131 | - States
132 | parameters:
133 | - $ref: '#/components/parameters/apiVersionHeaderParam'
134 | - $ref: '#/components/parameters/deviceIdPathParam'
135 | responses:
136 | '204':
137 | description: Accepted request.
138 | '400':
139 | description: One of the defined query parameters was invalid.
140 | content:
141 | application/json:
142 | schema:
143 | $ref: '#/components/schemas/AdvancedError'
144 | '404':
145 | description: The entity could not be found. One of the defined path parameters was invalid.
146 | content:
147 | application/json:
148 | schema:
149 | $ref: '#/components/schemas/AdvancedError'
150 | '405':
151 | description: The method was not allowed.
152 | '422':
153 | description: Mapping of defined query parameter failed.
154 | content:
155 | application/json:
156 | schema:
157 | $ref: '#/components/schemas/AdvancedError'
158 | requestBody:
159 | $ref: '#/components/requestBodies/PowerSwitchServicePowerSwitchStatePayload'
160 | components:
161 | schemas:
162 | AdvancedError:
163 | type: object
164 | properties:
165 | '@type':
166 | type: string
167 | description: The type of the Object.
168 | example: JsonRestExceptionResponseEntity
169 | errorCode:
170 | type: string
171 | description: The error code of the occurred Exception.
172 | statusCode:
173 | type: integer
174 | description: The HTTP status of the error.
175 | ServiceDefinition:
176 | type: array
177 | minItems: 1
178 | uniqueItems: true
179 | items:
180 | type: string
181 | description: "A single fully qualified identifier of the Service of a Device."
182 | example:
183 | - PowerMeter
184 | - PowerSwitch
185 | PowerMeterServiceStates:
186 | type: object
187 | description: PowerMeterService states of SmartPlug
188 | properties:
189 | powerConsumption:
190 | type: number
191 | energyConsumption:
192 | type: number
193 | PowerMeterService:
194 | type: object
195 | properties:
196 | '@type':
197 | type: string
198 | enum: [DeviceServiceData]
199 | description: The type of the Object.
200 | id:
201 | type: string
202 | enum: [deviceServiceId]
203 | description: "A single fully qualified identifier of the Service of a Device."
204 | deviceId:
205 | type: string
206 | description: "A single fully qualified identifier of the Device."
207 | state:
208 | $ref: '#/components/schemas/PowerMeterServiceStates'
209 | path:
210 | type: string
211 | description: The path to the Property.
212 | PowerSwitchServiceStates:
213 | type: object
214 | description: PowerSwitchService states of SmartPlug
215 | properties:
216 | '@type':
217 | type: string
218 | enum: [powerSwitchState]
219 | description: The type of the Object.
220 | switchState:
221 | $ref: '#/components/schemas/PowerSwitchState'
222 | PowerSwitchService:
223 | type: object
224 | properties:
225 | '@type':
226 | type: string
227 | enum: [DeviceServiceData]
228 | description: The type of the Object.
229 | id:
230 | type: string
231 | enum: [deviceServiceId]
232 | description: "A single fully qualified identifier of the Service of a Device."
233 | deviceId:
234 | type: string
235 | description: "A single fully qualified identifier of the Device."
236 | state:
237 | $ref: '#/components/schemas/PowerSwitchServiceStates'
238 | path:
239 | type: string
240 | description: The path to the Property.
241 | PowerSwitchState:
242 | type: string
243 | enum: [ON,OFF]
244 |
245 | requestBodies:
246 | PowerSwitchServicePowerSwitchStatePayload:
247 | content:
248 | application/json:
249 | schema:
250 | type: object
251 | properties:
252 | '@type':
253 | type: string
254 | enum: [powerSwitchState]
255 | description: The type of the Object.
256 | switchState:
257 | $ref: '#/components/schemas/PowerSwitchState'
258 | parameters:
259 | apiVersionHeaderParam:
260 | in: header
261 | name: api-version
262 | description: The version of the API.
263 | schema:
264 | type: string
265 | example: "1.0"
266 | deviceIdPathParam:
267 | name: deviceId
268 | in: path
269 | description: "A single fully qualified identifier of the Device."
270 | required: true
271 | schema:
272 | type: string
273 | propertyPathPathParam:
274 | name: propertyPath
275 | in: path
276 | description: The path to the Property.
277 | required: true
278 | schema:
279 | type: string
280 |
--------------------------------------------------------------------------------
/openapi/SmokeDetector-II-local-openapi-v3.yml:
--------------------------------------------------------------------------------
1 | openapi: 3.0.0
2 | info:
3 | title: Bosch Smart Home Local API for Smoke Detector II
4 | description: |-
5 | This description focuses on the JSON-based, REST-like API for a Smoke Detector II.
6 |
7 | By using this documentation, the developer accepts and agrees to be bound by our [Terms and Conditions](https://github.com/BoschSmartHome/bosch-shc-api-docs#terms-and-conditions).
8 |
9 | This documentation is subject to the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).
10 |
11 | Please report any issues you encounter with this documentation in our [GitHub tracker](https://github.com/BoschSmartHome/bosch-shc-api-docs/issues).
12 | version: "1.0"
13 |
14 | servers:
15 | - url: https://{shcIp}:8444/smarthome
16 | description: "Bosch Smart Home Controller URL"
17 | variables:
18 | shcIp:
19 | default: 192.168.0.10
20 |
21 | tags:
22 | - name: Services
23 | description: Services of your SmokeDetector II
24 | - name: States
25 | description: States of your SmokeDetector II
26 |
27 | paths:
28 | '/devices/{deviceId}/services':
29 | get:
30 | summary: Get all available services of Smoke Detector II
31 | description: Retrieves the list of available services for the Smoke Detector II device with the specified device ID.
32 | tags:
33 | - Services
34 | parameters:
35 | - $ref: '#/components/parameters/apiVersionHeaderParam'
36 | - $ref: '#/components/parameters/deviceIdPathParam'
37 | responses:
38 | '200':
39 | description: The SmokeDetector's services were successfully retrieved.
40 | content:
41 | application/json:
42 | schema:
43 | type: array
44 | items:
45 | $ref: '#/components/schemas/DeviceServiceData'
46 | '404':
47 | description: |-
48 | The entity could not be found. One of the defined query parameters was invalid.
49 | content:
50 | application/json:
51 | schema:
52 | $ref: '#/components/schemas/AdvancedError'
53 |
54 | '/devices/{deviceId}/services/Alarm/state':
55 | get:
56 | summary: Get Alarm state
57 | description: Retrieves the current Alarm state of the device with the specified device ID.
58 | tags:
59 | - States
60 | parameters:
61 | - $ref: '#/components/parameters/apiVersionHeaderParam'
62 | - $ref: '#/components/parameters/deviceIdPathParam'
63 | responses:
64 | '200':
65 | description: The Alarm state was successfully retrieved.
66 | content:
67 | application/json:
68 | schema:
69 | $ref: '#/components/schemas/AlarmState'
70 | put:
71 | summary: Update Alarm state
72 | description: Updates the Alarm state of the device with the specified device ID.
73 | tags:
74 | - States
75 | parameters:
76 | - $ref: '#/components/parameters/apiVersionHeaderParam'
77 | - $ref: '#/components/parameters/deviceIdPathParam'
78 | requestBody:
79 | required: true
80 | content:
81 | application/json:
82 | schema:
83 | type: object
84 | properties:
85 | '@type':
86 | type: enum
87 | example: [ alarmState ]
88 | value:
89 | type: string
90 | description: New value of the alarm state
91 | example: [
92 | 'INTRUSION_ALARM_ON_REQUESTED',
93 | 'INTRUSION_ALARM_OFF_REQUESTED'
94 | ]
95 | required:
96 | - '@type'
97 | - value
98 | responses:
99 | '204':
100 | description: Accepted request.
101 | '400':
102 | description: One of the defined query parameters was invalid.
103 | content:
104 | application/json:
105 | schema:
106 | $ref: '#/components/schemas/AdvancedError'
107 | '404':
108 | description: The entity could not be found. One of the defined path parameters was invalid.
109 | content:
110 | application/json:
111 | schema:
112 | $ref: '#/components/schemas/AdvancedError'
113 | '405':
114 | description: The method was not allowed.
115 | '422':
116 | description: Mapping of defined query parameter failed.
117 | content:
118 | application/json:
119 | schema:
120 | $ref: '#/components/schemas/AdvancedError'
121 |
122 | components:
123 | schemas:
124 | AdvancedError:
125 | type: object
126 | properties:
127 | '@type':
128 | type: string
129 | description: The type of the Object.
130 | example: JsonRestExceptionResponseEntity
131 | errorCode:
132 | type: string
133 | description: The error code of the occurred Exception.
134 | statusCode:
135 | type: integer
136 | description: The HTTP status of the error.
137 |
138 | DeviceServiceData:
139 | type: object
140 | properties:
141 | "@type":
142 | type: string
143 | example: 'DeviceServiceData'
144 | id:
145 | type: string
146 | example: [
147 | 'SmokeDetectorCheck',
148 | 'CommunicationQuality',
149 | 'BatteryLevel',
150 | 'Alarm'
151 | ]
152 | deviceId:
153 | type: string
154 | example: '{smoke-device}'
155 | state:
156 | oneOf:
157 | - $ref: "#/components/schemas/SmokeDetectorCheckState"
158 | - $ref: "#/components/schemas/CommunicationQualityState"
159 | - $ref: "#/components/schemas/AlarmState"
160 | operations:
161 | type: array
162 | items:
163 | type: string
164 | path:
165 | type: string
166 | example: [
167 | '/devices/{smoke-device}/services/SmokeDetectorCheck',
168 | '/devices/{smoke-device}/services/CommunicationQuality',
169 | '/devices/{smoke-device}/services/BatteryLevel',
170 | '/devices/{smoke-device}/services/Alarm'
171 | ]
172 |
173 | SmokeDetectorCheckState:
174 | type: object
175 | properties:
176 | '@type':
177 | type: string
178 | example: 'smokeDetectorCheckState'
179 | value:
180 | type: string
181 | enum: [ SMOKE_TEST_REQUESTED, NONE ]
182 | example: 'NONE'
183 | required:
184 | - '@type'
185 | - value
186 |
187 | CommunicationQualityState:
188 | type: object
189 | properties:
190 | '@type':
191 | type: string
192 | example: 'communicationQualityState'
193 | quality:
194 | type: string
195 | description: The quality of the device's communication.
196 | example: 'NORMAL'
197 | required:
198 | - '@type'
199 | - quality
200 |
201 | AlarmState:
202 | type: object
203 | properties:
204 | '@type':
205 | type: string
206 | example: 'alarmState'
207 | value:
208 | type: string
209 | description: Current value of the Alarm state
210 | example: 'IDLE_OFF'
211 | required:
212 | - '@type'
213 | - value
214 |
215 | parameters:
216 | apiVersionHeaderParam:
217 | in: header
218 | name: api-version
219 | description: The version of the API.
220 | schema:
221 | type: string
222 | example: "1.0"
223 |
224 | deviceIdPathParam:
225 | name: deviceId
226 | in: path
227 | description: "A single fully qualified identifier of the Device."
228 | required: true
229 | schema:
230 | type: string
231 |
--------------------------------------------------------------------------------
/openapi/SmokeDetector-local-openapi-v3.yml:
--------------------------------------------------------------------------------
1 | openapi: 3.0.0
2 | info:
3 | title: Bosch Smart Home Local API for Smoke Detector
4 | description: |-
5 | This description focuses on the JSON-based, REST-like API for a Smoke Detector.
6 |
7 | By using this documentation, the developer accepts and agrees to be bound by our [Terms and Conditions](https://github.com/BoschSmartHome/bosch-shc-api-docs#terms-and-conditions).
8 |
9 | This documentation is subject to the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).
10 |
11 | Please report any issues you encounter with this documentation in our [GitHub tracker](https://github.com/BoschSmartHome/bosch-shc-api-docs/issues).
12 | version: "1.0"
13 | servers:
14 | - url: https://{shcIp}:8444/smarthome
15 | description: "Bosch Smart Home Controller URL"
16 | variables:
17 | shcIp:
18 | default: 192.168.0.10
19 | tags:
20 | - name: Services
21 | description: Services of your SmokeDetector
22 | - name: States
23 | description: States of your SmokeDetector
24 | paths:
25 | '/devices/{deviceId}/services/SmokeDetectorCheck':
26 | get:
27 | summary: Retrieve the SmokeDetectorCheck service of the SmokeDetector.
28 | description: |-
29 | This service checks the smoke detector functionality.
30 | tags:
31 | - Services
32 | parameters:
33 | - $ref: '#/components/parameters/apiVersionHeaderParam'
34 | - $ref: '#/components/parameters/deviceIdPathParam'
35 | responses:
36 | '200':
37 | description: The SmokeDetectorCheck was successfully retrieved.
38 | content:
39 | application/json:
40 | schema:
41 | $ref: '#/components/schemas/SmokeDetectorCheckService'
42 | '404':
43 | description: |-
44 | The entity could not be found. One of the defined query parameters was invalid.
45 | content:
46 | application/json:
47 | schema:
48 | $ref: '#/components/schemas/AdvancedError'
49 | '/devices/{deviceId}/services/SmokeDetectorCheck/state':
50 | get:
51 | summary: Retrieve the state of the SmokeDetectorCheck service.
52 | description: |-
53 | Retrieve the state of the SmokeDetectorCheck service identified by the
54 | `deviceId` path parameter.
55 | tags:
56 | - States
57 | parameters:
58 | - $ref: '#/components/parameters/apiVersionHeaderParam'
59 | - $ref: '#/components/parameters/deviceIdPathParam'
60 | responses:
61 | '200':
62 | description: The state of SmokeDetectorCheck was successfully retrieved.
63 | content:
64 | application/json:
65 | schema:
66 | $ref: '#/components/schemas/SmokeDetectorCheckServiceStates'
67 | '404':
68 | description: |-
69 | The entity could not be found. One of the defined query parameters was invalid.
70 | content:
71 | application/json:
72 | schema:
73 | $ref: '#/components/schemas/AdvancedError'
74 |
75 | put:
76 | summary: Executes the smokeDetectorCheckState on the device.
77 | description: |-
78 | Executes the smokeDetectorCheckState on the device identified by the `deviceId` path parameter.
79 | tags:
80 | - States
81 | parameters:
82 | - $ref: '#/components/parameters/apiVersionHeaderParam'
83 | - $ref: '#/components/parameters/deviceIdPathParam'
84 | responses:
85 | '204':
86 | description: Accepted request.
87 | '400':
88 | description: One of the defined query parameters was invalid.
89 | content:
90 | application/json:
91 | schema:
92 | $ref: '#/components/schemas/AdvancedError'
93 | '404':
94 | description: The entity could not be found. One of the defined path parameters was invalid.
95 | content:
96 | application/json:
97 | schema:
98 | $ref: '#/components/schemas/AdvancedError'
99 | '405':
100 | description: The method was not allowed.
101 | '422':
102 | description: Mapping of defined query parameter failed.
103 | content:
104 | application/json:
105 | schema:
106 | $ref: '#/components/schemas/AdvancedError'
107 | requestBody:
108 | $ref: '#/components/requestBodies/SmokeDetectorCheckServiceSmokeDetectorCheckStatePayload'
109 | components:
110 | schemas:
111 | AdvancedError:
112 | type: object
113 | properties:
114 | '@type':
115 | type: string
116 | description: The type of the Object.
117 | example: JsonRestExceptionResponseEntity
118 | errorCode:
119 | type: string
120 | description: The error code of the occurred Exception.
121 | statusCode:
122 | type: integer
123 | description: The HTTP status of the error.
124 | ServiceDefinition:
125 | type: array
126 | minItems: 1
127 | uniqueItems: true
128 | items:
129 | type: string
130 | description: "A single fully qualified identifier of the Service of a Device."
131 | example:
132 | - SmokeDetectorCheck
133 | SmokeDetectorCheckServiceStates:
134 | type: object
135 | description: SmokeDetectorCheckService states of SmokeDetector
136 | properties:
137 | '@type':
138 | type: string
139 | enum: [smokeDetectorCheckState]
140 | description: The type of the Object.
141 | value:
142 | $ref: '#/components/schemas/SmokeDetectorCheckState'
143 | SmokeDetectorCheckService:
144 | type: object
145 | properties:
146 | '@type':
147 | type: string
148 | enum: [DeviceServiceData]
149 | description: The type of the Object.
150 | id:
151 | type: string
152 | enum: [deviceServiceId]
153 | description: "A single fully qualified identifier of the Service of a Device."
154 | deviceId:
155 | type: string
156 | description: "A single fully qualified identifier of the Device."
157 | state:
158 | $ref: '#/components/schemas/SmokeDetectorCheckServiceStates'
159 | path:
160 | type: string
161 | description: The path to the Property.
162 | SmokeDetectorCheckState:
163 | type: string
164 | enum: [SMOKE_TEST_REQUESTED,NONE]
165 |
166 | requestBodies:
167 | SmokeDetectorCheckServiceSmokeDetectorCheckStatePayload:
168 | content:
169 | application/json:
170 | schema:
171 | type: object
172 | properties:
173 | '@type':
174 | type: string
175 | enum: [smokeDetectorCheckState]
176 | description: The type of the Object.
177 | value:
178 | $ref: '#/components/schemas/SmokeDetectorCheckState'
179 | parameters:
180 | apiVersionHeaderParam:
181 | in: header
182 | name: api-version
183 | description: The version of the API.
184 | schema:
185 | type: string
186 | example: "1.0"
187 | deviceIdPathParam:
188 | name: deviceId
189 | in: path
190 | description: "A single fully qualified identifier of the Device."
191 | required: true
192 | schema:
193 | type: string
194 | propertyPathPathParam:
195 | name: propertyPath
196 | in: path
197 | description: The path to the Property.
198 | required: true
199 | schema:
200 | type: string
201 |
--------------------------------------------------------------------------------
/openapi/Thermostat-II-local-openapi-v3.yml:
--------------------------------------------------------------------------------
1 | openapi: 3.0.0
2 | info:
3 | title: Bosch Smart Home Local API for Thermostat II
4 | description: |-
5 | This description focuses on the JSON-based, REST-like API for a Thermostat II.
6 |
7 | By using this documentation, the developer accepts and agrees to be bound by our [Terms and Conditions](https://github.com/BoschSmartHome/bosch-shc-api-docs#terms-and-conditions).
8 |
9 | This documentation is subject to the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).
10 |
11 | Please report any issues you encounter with this documentation in our [GitHub tracker](https://github.com/BoschSmartHome/bosch-shc-api-docs/issues).
12 | version: "1.0"
13 |
14 | servers:
15 | - url: https://{shcIp}:8444/smarthome
16 | description: "Bosch Smart Home Controller URL"
17 | variables:
18 | shcIp:
19 | default: 192.168.0.10
20 |
21 | tags:
22 | - name: Services
23 | description: Services of your Thermostat II
24 | - name: States
25 | description: States of your Thermostat II
26 |
27 | paths:
28 | '/devices/{deviceId}/services/DisplayConfiguration/state':
29 | get:
30 | summary: Get Display Configuration state
31 | description: Retrieves the current configuration state of the display for the TRV II or RTH II device with the specified ID.
32 | tags:
33 | - States
34 | parameters:
35 | - $ref: '#/components/parameters/apiVersionHeaderParam'
36 | - $ref: '#/components/parameters/deviceIdPathParam'
37 | responses:
38 | '200':
39 | description: The state of Display Configuration was successfully retrieved.
40 | content:
41 | application/json:
42 | schema:
43 | $ref: '#/components/schemas/DisplayConfigurationState'
44 | '404':
45 | description: |-
46 | The entity could not be found. One of the defined query parameters was invalid.
47 | content:
48 | application/json:
49 | schema:
50 | $ref: '#/components/schemas/AdvancedError'
51 | put:
52 | summary: Update Display Configuration state
53 | description: Updates the configuration state of the display for the TRV II or RTH II device with the specified ID.
54 | tags:
55 | - States
56 | parameters:
57 | - $ref: '#/components/parameters/apiVersionHeaderParam'
58 | - $ref: '#/components/parameters/deviceIdPathParam'
59 | requestBody:
60 | required: true
61 | content:
62 | application/json:
63 | schema:
64 | type: object
65 | properties:
66 | "@type":
67 | type: string
68 | enum: [ displayConfigurationState ]
69 | description: The type of the state object
70 | displayBrightness:
71 | type: integer
72 | minimum: 0
73 | maximum: 100
74 | description: The brightness level of the display (percentage value)
75 | example: 50
76 | displayOnTime:
77 | type: integer
78 | minimum: 0
79 | description: The time duration for which the display remains on (in seconds)
80 | example: 15
81 | required:
82 | - "@type"
83 | - displayBrightness
84 | - displayOnTime
85 | responses:
86 | '204':
87 | description: Accepted request.
88 | '400':
89 | description: One of the defined query parameters was invalid.
90 | content:
91 | application/json:
92 | schema:
93 | $ref: '#/components/schemas/AdvancedError'
94 | '404':
95 | description: The entity could not be found. One of the defined path parameters was invalid.
96 | content:
97 | application/json:
98 | schema:
99 | $ref: '#/components/schemas/AdvancedError'
100 | '405':
101 | description: The method was not allowed.
102 | '422':
103 | description: Mapping of defined query parameter failed.
104 | content:
105 | application/json:
106 | schema:
107 | $ref: '#/components/schemas/AdvancedError'
108 |
109 | '/devices/{deviceId}/services/DisplayDirection/state':
110 | get:
111 | summary: Get Display Direction state
112 | description: Retrieves the current Display Direction state for the TRV II device with the specified ID.
113 | tags:
114 | - States
115 | parameters:
116 | - $ref: '#/components/parameters/apiVersionHeaderParam'
117 | - $ref: '#/components/parameters/deviceIdPathParam'
118 | responses:
119 | '200':
120 | description: The state of Display Direction was successfully retrieved.
121 | content:
122 | application/json:
123 | schema:
124 | $ref: '#/components/schemas/DisplayDirectionState'
125 | '404':
126 | description: |-
127 | The entity could not be found. One of the defined query parameters was invalid.
128 | content:
129 | application/json:
130 | schema:
131 | $ref: '#/components/schemas/AdvancedError'
132 | put:
133 | summary: Update Display Direction configuration of TRV II device.
134 | tags:
135 | - States
136 | parameters:
137 | - $ref: '#/components/parameters/apiVersionHeaderParam'
138 | - $ref: '#/components/parameters/deviceIdPathParam'
139 | requestBody:
140 | required: true
141 | content:
142 | application/json:
143 | schema:
144 | $ref: '#/components/schemas/DisplayDirectionState'
145 | responses:
146 | '204':
147 | description: Accepted request.
148 | '400':
149 | description: One of the defined query parameters was invalid.
150 | content:
151 | application/json:
152 | schema:
153 | $ref: '#/components/schemas/AdvancedError'
154 | '404':
155 | description: The entity could not be found. One of the defined path parameters was invalid.
156 | content:
157 | application/json:
158 | schema:
159 | $ref: '#/components/schemas/AdvancedError'
160 | '405':
161 | description: The method was not allowed.
162 | '422':
163 | description: Mapping of defined query parameter failed.
164 | content:
165 | application/json:
166 | schema:
167 | $ref: '#/components/schemas/AdvancedError'
168 |
169 | '/devices/{deviceId}/services/DisplayedTemperatureConfiguration/state':
170 | get:
171 | summary: Get the Displayed Temperature Configuration of TRV II device with the specified ID.
172 | tags:
173 | - States
174 | parameters:
175 | - $ref: '#/components/parameters/apiVersionHeaderParam'
176 | - $ref: '#/components/parameters/deviceIdPathParam'
177 | responses:
178 | '200':
179 | description: The state of Displayed Temperature Configuration was successfully retrieved.
180 | content:
181 | application/json:
182 | schema:
183 | $ref: '#/components/schemas/DisplayedTemperatureConfigurationState'
184 | '404':
185 | description: |-
186 | The entity could not be found. One of the defined query parameters was invalid.
187 | content:
188 | application/json:
189 | schema:
190 | $ref: '#/components/schemas/AdvancedError'
191 | put:
192 | summary: Update the Displayed Temperature Configuration of TRV II device with the specified ID.
193 | tags:
194 | - States
195 | requestBody:
196 | required: true
197 | content:
198 | application/json:
199 | schema:
200 | $ref: '#/components/schemas/DisplayedTemperatureConfigurationState'
201 | responses:
202 | '204':
203 | description: Accepted request.
204 | '400':
205 | description: One of the defined query parameters was invalid.
206 | content:
207 | application/json:
208 | schema:
209 | $ref: '#/components/schemas/AdvancedError'
210 | '404':
211 | description: The entity could not be found. One of the defined path parameters was invalid.
212 | content:
213 | application/json:
214 | schema:
215 | $ref: '#/components/schemas/AdvancedError'
216 | '405':
217 | description: The method was not allowed.
218 | '422':
219 | description: Mapping of defined query parameter failed.
220 | content:
221 | application/json:
222 | schema:
223 | $ref: '#/components/schemas/AdvancedError'
224 |
225 | '/devices/{deviceId}/services/ValveTappet':
226 | get:
227 | summary: Get Valve Tappet information
228 | tags:
229 | - Services
230 | parameters:
231 | - $ref: '#/components/parameters/apiVersionHeaderParam'
232 | - $ref: '#/components/parameters/deviceIdPathParam'
233 | responses:
234 | '200':
235 | description: Successful response
236 | content:
237 | application/json:
238 | schema:
239 | type: object
240 | properties:
241 | "@type":
242 | type: string
243 | enum: [ DeviceServiceData ]
244 | id:
245 | type: string
246 | example: ValveTappet
247 | deviceId:
248 | type: string
249 | example: hdm:
250 | state:
251 | $ref: '#/components/schemas/ValveTappetState'
252 | operations:
253 | type: null
254 | faults:
255 | $ref: '#/components/schemas/ValveTappetFaults'
256 | deleted:
257 | type: null
258 | path:
259 | type: string
260 | example: /devices/hdm:/services/ValveTappet
261 | '404':
262 | description: |-
263 | The entity could not be found. One of the defined query parameters was invalid.
264 | content:
265 | application/json:
266 | schema:
267 | $ref: '#/components/schemas/AdvancedError'
268 |
269 | components:
270 | schemas:
271 | AdvancedError:
272 | type: object
273 | properties:
274 | '@type':
275 | type: string
276 | description: The type of the Object.
277 | example: JsonRestExceptionResponseEntity
278 | errorCode:
279 | type: string
280 | description: The error code of the occurred Exception.
281 | statusCode:
282 | type: integer
283 | description: The HTTP status of the error.
284 |
285 | DisplayConfigurationState:
286 | type: object
287 | properties:
288 | "@type":
289 | type: string
290 | enum: [ displayConfigurationState ]
291 | description: The type of the state object
292 | displayBrightness:
293 | type: integer
294 | minimum: 0
295 | maximum: 100
296 | description: The brightness level of the display (percentage value)
297 | example: 70
298 | displayBrightnessMax:
299 | type: integer
300 | minimum: 0
301 | maximum: 100
302 | description: The maximum brightness level supported by the display
303 | example: 100
304 | displayBrightnessMin:
305 | type: integer
306 | minimum: 0
307 | maximum: 100
308 | description: The minimum brightness level supported by the display
309 | example: 10
310 | displayBrightnessStepSize:
311 | type: integer
312 | minimum: 1
313 | description: The step size for adjusting the display brightness
314 | example: 10
315 | displayOnTime:
316 | type: integer
317 | minimum: 0
318 | description: The time duration for which the display remains on (in seconds)
319 | example: 10
320 | displayOnTimeMax:
321 | type: integer
322 | minimum: 0
323 | description: The maximum display on time supported (in seconds)
324 | example: 30
325 | displayOnTimeMin:
326 | type: integer
327 | minimum: 0
328 | description: The minimum display on time supported (in seconds)
329 | example: 5
330 | displayOnTimeStepSize:
331 | type: integer
332 | minimum: 1
333 | description: The step size for adjusting the display on time
334 | example: 5
335 | required:
336 | - "@type"
337 |
338 | DisplayDirectionState:
339 | type: object
340 | properties:
341 | "@type":
342 | type: string
343 | enum: [ displayDirectionState ]
344 | description: The type of the state object
345 | direction:
346 | type: string
347 | enum:
348 | - NORMAL
349 | - REVERSED
350 | description: The display direction configuration (NORMAL or REVERSED)
351 | example: NORMAL
352 | required:
353 | - "@type"
354 | - direction
355 |
356 | DisplayedTemperatureConfigurationState:
357 | type: object
358 | properties:
359 | "@type":
360 | type: string
361 | enum: [ displayedTemperatureConfigurationState ]
362 | description: The type of the state object
363 | displayedTemperature:
364 | type: string
365 | enum:
366 | - MEASURED
367 | - SETPOINT
368 | example: MEASURED
369 | required:
370 | - "@type"
371 | - displayedTemperature
372 |
373 | ValveTappetState:
374 | type: object
375 | properties:
376 | "@type":
377 | type: string
378 | example: valveTappetState
379 | value:
380 | type: string
381 | enum: [ "NO_MOTOR_ERROR", "NO_VALVE_BODY_ERROR" ]
382 | example: NO_MOTOR_ERROR
383 | position:
384 | type: number
385 | example: 80
386 | ValveTappetFaults:
387 | type: object
388 | properties:
389 | entries:
390 | type: array
391 | items:
392 | $ref: '#/components/schemas/ValveTappetFaultEntry'
393 | ValveTappetFaultEntry:
394 | type: object
395 | properties:
396 | type:
397 | type: string
398 | enum: [ "VALVE_NO_MOTOR_ERROR", "VALVE_NO_BODY_ERROR" ]
399 | example: VALVE_NO_MOTOR_ERROR
400 | category:
401 | type: string
402 | example: ERROR
403 |
404 | parameters:
405 | apiVersionHeaderParam:
406 | in: header
407 | name: api-version
408 | description: The version of the API.
409 | schema:
410 | type: string
411 | example: "1.0"
412 |
413 | deviceIdPathParam:
414 | name: deviceId
415 | in: path
416 | description: "A single fully qualified identifier of the Device."
417 | required: true
418 | schema:
419 | type: string
420 |
--------------------------------------------------------------------------------
/openapi/Thermostat-local-openapi-v3.yml:
--------------------------------------------------------------------------------
1 | ### Generated by Eclipse Vorto OpenAPI Generator from Model 'vorto.private.local.com.bosch.sh:Thermostat:1.0.0'
2 | openapi: 3.0.0
3 | info:
4 | title: Bosch Smart Home Local API for Thermostat
5 | description: |-
6 | This description focuses on the JSON-based, REST-like API for a Thermostat.
7 |
8 | By using this documentation, the developer accepts and agrees to be bound by our [Terms and Conditions](https://github.com/BoschSmartHome/bosch-shc-api-docs#terms-and-conditions).
9 |
10 | This documentation is subject to the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).
11 |
12 | Please report any issues you encounter with this documentation in our [GitHub tracker](https://github.com/BoschSmartHome/bosch-shc-api-docs/issues).
13 | version: "1.0"
14 | servers:
15 | - url: https://{shcIp}:8444/smarthome
16 | description: "Bosch Smart Home Controller URL"
17 | variables:
18 | shcIp:
19 | default: 192.168.0.10
20 | tags:
21 | - name: Services
22 | description: Services of your Thermostat
23 | - name: States
24 | description: States of your Thermostat
25 | paths:
26 | '/devices/{deviceId}/services/ValveTappet':
27 | get:
28 | summary: Retrieve the ValveTappet service of the Thermostat.
29 | description: |-
30 | Get the valve position of a specific thermostat.
31 | tags:
32 | - Services
33 | parameters:
34 | - $ref: '#/components/parameters/apiVersionHeaderParam'
35 | - $ref: '#/components/parameters/deviceIdPathParam'
36 | responses:
37 | '200':
38 | description: The ValveTappet was successfully retrieved.
39 | content:
40 | application/json:
41 | schema:
42 | $ref: '#/components/schemas/ValveTappetService'
43 | '404':
44 | description: |-
45 | The entity could not be found. One of the defined query parameters was invalid.
46 | content:
47 | application/json:
48 | schema:
49 | $ref: '#/components/schemas/AdvancedError'
50 | '/devices/{deviceId}/services/ValveTappet/state':
51 | get:
52 | summary: Retrieve the state of the ValveTappet service.
53 | description: |-
54 | Retrieve the state of the ValveTappet service identified by the
55 | `deviceId` path parameter.
56 | tags:
57 | - States
58 | parameters:
59 | - $ref: '#/components/parameters/apiVersionHeaderParam'
60 | - $ref: '#/components/parameters/deviceIdPathParam'
61 | responses:
62 | '200':
63 | description: The state of ValveTappet was successfully retrieved.
64 | content:
65 | application/json:
66 | schema:
67 | $ref: '#/components/schemas/ValveTappetServiceStates'
68 | '404':
69 | description: |-
70 | The entity could not be found. One of the defined query parameters was invalid.
71 | content:
72 | application/json:
73 | schema:
74 | $ref: '#/components/schemas/AdvancedError'
75 |
76 | '/devices/{deviceId}/services/TemperatureLevel':
77 | get:
78 | summary: Retrieve the TemperatureLevel service of the Thermostat.
79 | description: |-
80 | Measures the temperature at a central point in the room.
81 | tags:
82 | - Services
83 | parameters:
84 | - $ref: '#/components/parameters/apiVersionHeaderParam'
85 | - $ref: '#/components/parameters/deviceIdPathParam'
86 | responses:
87 | '200':
88 | description: The TemperatureLevel was successfully retrieved.
89 | content:
90 | application/json:
91 | schema:
92 | $ref: '#/components/schemas/TemperatureLevelService'
93 | '404':
94 | description: |-
95 | The entity could not be found. One of the defined query parameters was invalid.
96 | content:
97 | application/json:
98 | schema:
99 | $ref: '#/components/schemas/AdvancedError'
100 | '/devices/{deviceId}/services/TemperatureLevel/state':
101 | get:
102 | summary: Retrieve the state of the TemperatureLevel service.
103 | description: |-
104 | Retrieve the state of the TemperatureLevel service identified by the
105 | `deviceId` path parameter.
106 | tags:
107 | - States
108 | parameters:
109 | - $ref: '#/components/parameters/apiVersionHeaderParam'
110 | - $ref: '#/components/parameters/deviceIdPathParam'
111 | responses:
112 | '200':
113 | description: The state of TemperatureLevel was successfully retrieved.
114 | content:
115 | application/json:
116 | schema:
117 | $ref: '#/components/schemas/TemperatureLevelServiceStates'
118 | '404':
119 | description: |-
120 | The entity could not be found. One of the defined query parameters was invalid.
121 | content:
122 | application/json:
123 | schema:
124 | $ref: '#/components/schemas/AdvancedError'
125 | '/devices/{trvId}/services/SilentMode/state':
126 | get:
127 | summary: Get Silent Mode state
128 | description: Retrieves the current state of the Silent Mode for the TRV device with the specified ID.
129 | tags:
130 | - States
131 | parameters:
132 | - $ref: '#/components/parameters/apiVersionHeaderParam'
133 | - $ref: '#/components/parameters/deviceIdPathParam'
134 | responses:
135 | '200':
136 | description: The state of Silent Mode was successfully retrieved.
137 | content:
138 | application/json:
139 | schema:
140 | $ref: '#/components/schemas/SilentModeState'
141 | '404':
142 | description: |-
143 | The entity could not be found. One of the defined query parameters was invalid.
144 | content:
145 | application/json:
146 | schema:
147 | $ref: '#/components/schemas/AdvancedError'
148 | put:
149 | summary: Update Silent Mode state
150 | description: Updates the state of the Silent Mode for the TRV device with the specified ID.
151 | When Silent Mode is enabled the TRV's motor is more silent but it also consumes more power.
152 | tags:
153 | - States
154 | parameters:
155 | - $ref: '#/components/parameters/apiVersionHeaderParam'
156 | - $ref: '#/components/parameters/deviceIdPathParam'
157 | requestBody:
158 | required: true
159 | content:
160 | application/json:
161 | schema:
162 | $ref: '#/components/schemas/SilentModeState'
163 | responses:
164 | '204':
165 | description: Accepted request.
166 | '400':
167 | description: One of the defined query parameters was invalid.
168 | content:
169 | application/json:
170 | schema:
171 | $ref: '#/components/schemas/AdvancedError'
172 | '404':
173 | description: The entity could not be found. One of the defined path parameters was invalid.
174 | content:
175 | application/json:
176 | schema:
177 | $ref: '#/components/schemas/AdvancedError'
178 | '405':
179 | description: The method was not allowed.
180 | '422':
181 | description: Mapping of defined query parameter failed.
182 | content:
183 | application/json:
184 | schema:
185 | $ref: '#/components/schemas/AdvancedError'
186 |
187 | components:
188 | schemas:
189 | AdvancedError:
190 | type: object
191 | properties:
192 | '@type':
193 | type: string
194 | description: The type of the Object.
195 | example: JsonRestExceptionResponseEntity
196 | errorCode:
197 | type: string
198 | description: The error code of the occurred Exception.
199 | statusCode:
200 | type: integer
201 | description: The HTTP status of the error.
202 | ServiceDefinition:
203 | type: array
204 | minItems: 1
205 | uniqueItems: true
206 | items:
207 | type: string
208 | description: "A single fully qualified identifier of the Service of a Device."
209 | example:
210 | - ValveTappet
211 | - TemperatureLevel
212 | ValveTappetServiceStates:
213 | type: object
214 | description: ValveTappetService states of Thermostat
215 | properties:
216 | position:
217 | type: integer
218 | ValveTappetService:
219 | type: object
220 | properties:
221 | '@type':
222 | type: string
223 | enum: [DeviceServiceData]
224 | description: The type of the Object.
225 | id:
226 | type: string
227 | enum: [deviceServiceId]
228 | description: "A single fully qualified identifier of the Service of a Device."
229 | deviceId:
230 | type: string
231 | description: "A single fully qualified identifier of the Device."
232 | state:
233 | $ref: '#/components/schemas/ValveTappetServiceStates'
234 | path:
235 | type: string
236 | description: The path to the Property.
237 | TemperatureLevelServiceStates:
238 | type: object
239 | description: TemperatureLevelService states of Thermostat
240 | properties:
241 | temperature:
242 | type: number
243 | TemperatureLevelService:
244 | type: object
245 | properties:
246 | '@type':
247 | type: string
248 | enum: [DeviceServiceData]
249 | description: The type of the Object.
250 | id:
251 | type: string
252 | enum: [deviceServiceId]
253 | description: "A single fully qualified identifier of the Service of a Device."
254 | deviceId:
255 | type: string
256 | description: "A single fully qualified identifier of the Device."
257 | state:
258 | $ref: '#/components/schemas/TemperatureLevelServiceStates'
259 | path:
260 | type: string
261 | description: The path to the Property.
262 | SilentModeState:
263 | type: object
264 | properties:
265 | "@type":
266 | type: string
267 | enum: [ silentModeState ]
268 | description: The type of the state object
269 | mode:
270 | type: string
271 | enum:
272 | - MODE_NORMAL
273 | - MODE_SILENT
274 | description: The mode of the silent mode
275 | required:
276 | - "@type"
277 | - mode
278 |
279 | parameters:
280 | apiVersionHeaderParam:
281 | in: header
282 | name: api-version
283 | description: The version of the API.
284 | schema:
285 | type: string
286 | example: "1.0"
287 | deviceIdPathParam:
288 | name: deviceId
289 | in: path
290 | description: "A single fully qualified identifier of the Device."
291 | required: true
292 | schema:
293 | type: string
294 | propertyPathPathParam:
295 | name: propertyPath
296 | in: path
297 | description: The path to the Property.
298 | required: true
299 | schema:
300 | type: string
301 |
--------------------------------------------------------------------------------
/openapi/Twinguard-local-openapi-v3.yml:
--------------------------------------------------------------------------------
1 | ### Generated by Eclipse Vorto OpenAPI Generator from Model 'vorto.private.local.com.bosch.sh:Twinguard:1.0.0'
2 | openapi: 3.0.0
3 | info:
4 | title: Bosch Smart Home Local API for Twinguard
5 | description: |-
6 | This description focuses on the JSON-based, REST-like API for a Twinguard.
7 |
8 | By using this documentation, the developer accepts and agrees to be bound by our [Terms and Conditions](https://github.com/BoschSmartHome/bosch-shc-api-docs#terms-and-conditions).
9 |
10 | This documentation is subject to the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).
11 |
12 | Please report any issues you encounter with this documentation in our [GitHub tracker](https://github.com/BoschSmartHome/bosch-shc-api-docs/issues).
13 | version: "1.0"
14 | servers:
15 | - url: https://{shcIp}:8444/smarthome
16 | description: "Bosch Smart Home Controller URL"
17 | variables:
18 | shcIp:
19 | default: 192.168.0.10
20 | tags:
21 | - name: Services
22 | description: Services of your Twinguard
23 | - name: States
24 | description: States of your Twinguard
25 | paths:
26 | '/devices/{deviceId}/services/AirQualityLevel':
27 | get:
28 | summary: Retrieve the AirQualityLevel service of the Twinguard.
29 | description: |-
30 | This service constantly measures key air quality values to help you create a healthy room climate.
31 | tags:
32 | - Services
33 | parameters:
34 | - $ref: '#/components/parameters/apiVersionHeaderParam'
35 | - $ref: '#/components/parameters/deviceIdPathParam'
36 | responses:
37 | '200':
38 | description: The AirQualityLevel was successfully retrieved.
39 | content:
40 | application/json:
41 | schema:
42 | $ref: '#/components/schemas/AirQualityLevelService'
43 | '404':
44 | description: |-
45 | The entity could not be found. One of the defined query parameters was invalid.
46 | content:
47 | application/json:
48 | schema:
49 | $ref: '#/components/schemas/AdvancedError'
50 | '/devices/{deviceId}/services/AirQualityLevel/state':
51 | get:
52 | summary: Retrieve the state of the AirQualityLevel service.
53 | description: |-
54 | Retrieve the state of the AirQualityLevel service identified by the
55 | `deviceId` path parameter.
56 | tags:
57 | - States
58 | parameters:
59 | - $ref: '#/components/parameters/apiVersionHeaderParam'
60 | - $ref: '#/components/parameters/deviceIdPathParam'
61 | responses:
62 | '200':
63 | description: The state of AirQualityLevel was successfully retrieved.
64 | content:
65 | application/json:
66 | schema:
67 | $ref: '#/components/schemas/AirQualityLevelServiceStates'
68 | '404':
69 | description: |-
70 | The entity could not be found. One of the defined query parameters was invalid.
71 | content:
72 | application/json:
73 | schema:
74 | $ref: '#/components/schemas/AdvancedError'
75 |
76 | '/devices/{deviceId}/services/SmokeDetectorCheck':
77 | get:
78 | summary: Retrieve the SmokeDetectorCheck service of the Twinguard.
79 | description: |-
80 | This service checks the smoke detector functionality.
81 | tags:
82 | - Services
83 | parameters:
84 | - $ref: '#/components/parameters/apiVersionHeaderParam'
85 | - $ref: '#/components/parameters/deviceIdPathParam'
86 | responses:
87 | '200':
88 | description: The SmokeDetectorCheck was successfully retrieved.
89 | content:
90 | application/json:
91 | schema:
92 | $ref: '#/components/schemas/SmokeDetectorCheckService'
93 | '404':
94 | description: |-
95 | The entity could not be found. One of the defined query parameters was invalid.
96 | content:
97 | application/json:
98 | schema:
99 | $ref: '#/components/schemas/AdvancedError'
100 | '/devices/{deviceId}/services/SmokeDetectorCheck/state':
101 | get:
102 | summary: Retrieve the state of the SmokeDetectorCheck service.
103 | description: |-
104 | Retrieve the state of the SmokeDetectorCheck service identified by the
105 | `deviceId` path parameter.
106 | tags:
107 | - States
108 | parameters:
109 | - $ref: '#/components/parameters/apiVersionHeaderParam'
110 | - $ref: '#/components/parameters/deviceIdPathParam'
111 | responses:
112 | '200':
113 | description: The state of SmokeDetectorCheck was successfully retrieved.
114 | content:
115 | application/json:
116 | schema:
117 | $ref: '#/components/schemas/SmokeDetectorCheckServiceStates'
118 | '404':
119 | description: |-
120 | The entity could not be found. One of the defined query parameters was invalid.
121 | content:
122 | application/json:
123 | schema:
124 | $ref: '#/components/schemas/AdvancedError'
125 |
126 | put:
127 | summary: Executes the smokeDetectorCheckState on the device.
128 | description: |-
129 | Executes the smokeDetectorCheckState on the device identified by the `deviceId` path parameter.
130 | tags:
131 | - States
132 | parameters:
133 | - $ref: '#/components/parameters/apiVersionHeaderParam'
134 | - $ref: '#/components/parameters/deviceIdPathParam'
135 | responses:
136 | '204':
137 | description: Accepted request.
138 | '400':
139 | description: One of the defined query parameters was invalid.
140 | content:
141 | application/json:
142 | schema:
143 | $ref: '#/components/schemas/AdvancedError'
144 | '404':
145 | description: The entity could not be found. One of the defined path parameters was invalid.
146 | content:
147 | application/json:
148 | schema:
149 | $ref: '#/components/schemas/AdvancedError'
150 | '405':
151 | description: The method was not allowed.
152 | '422':
153 | description: Mapping of defined query parameter failed.
154 | content:
155 | application/json:
156 | schema:
157 | $ref: '#/components/schemas/AdvancedError'
158 | requestBody:
159 | $ref: '#/components/requestBodies/SmokeDetectorCheckServiceSmokeDetectorCheckStatePayload'
160 | components:
161 | schemas:
162 | AdvancedError:
163 | type: object
164 | properties:
165 | '@type':
166 | type: string
167 | description: The type of the Object.
168 | example: JsonRestExceptionResponseEntity
169 | errorCode:
170 | type: string
171 | description: The error code of the occurred Exception.
172 | statusCode:
173 | type: integer
174 | description: The HTTP status of the error.
175 | ServiceDefinition:
176 | type: array
177 | minItems: 1
178 | uniqueItems: true
179 | items:
180 | type: string
181 | description: "A single fully qualified identifier of the Service of a Device."
182 | example:
183 | - AirQualityLevel
184 | - SmokeDetectorCheck
185 | ComfortZone:
186 | type: object
187 | description: ComfortZone of Twinguard
188 | properties:
189 | name:
190 | type: string
191 | custom:
192 | type: boolean
193 | minTemperature:
194 | type: number
195 | maxTemperature:
196 | type: number
197 | minHumidity:
198 | type: number
199 | maxHumidity:
200 | type: number
201 | maxPurity:
202 | type: number
203 | AirQualityLevelServiceStates:
204 | type: object
205 | description: AirQualityLevelService states of Twinguard
206 | properties:
207 | combinedRating:
208 | $ref: '#/components/schemas/RatingState'
209 | description:
210 | type: string
211 | temperature:
212 | type: number
213 | temperatureRating:
214 | $ref: '#/components/schemas/RatingState'
215 | humidity:
216 | type: number
217 | humidityRating:
218 | $ref: '#/components/schemas/RatingState'
219 | purity:
220 | type: number
221 | purityRating:
222 | $ref: '#/components/schemas/RatingState'
223 | comfortZone:
224 | $ref: '#/components/schemas/ComfortZone'
225 | AirQualityLevelService:
226 | type: object
227 | properties:
228 | '@type':
229 | type: string
230 | enum: [DeviceServiceData]
231 | description: The type of the Object.
232 | id:
233 | type: string
234 | enum: [AirQualityLevel]
235 | description: "A single fully qualified identifier of the Service of a Device."
236 | deviceId:
237 | type: string
238 | description: "A single fully qualified identifier of the Device."
239 | state:
240 | $ref: '#/components/schemas/AirQualityLevelServiceStates'
241 | path:
242 | type: string
243 | description: The path to the Property.
244 | SmokeDetectorCheckServiceStates:
245 | type: object
246 | description: SmokeDetectorCheckService states of Twinguard
247 | properties:
248 | '@type':
249 | type: string
250 | enum: [smokeDetectorCheckState]
251 | description: The type of the Object.
252 | value:
253 | $ref: '#/components/schemas/SmokeDetectorCheckState'
254 | SmokeDetectorCheckService:
255 | type: object
256 | properties:
257 | '@type':
258 | type: string
259 | enum: [DeviceServiceData]
260 | description: The type of the Object.
261 | id:
262 | type: string
263 | enum: [SmokeDetectorCheck]
264 | description: "A single fully qualified identifier of the Service of a Device."
265 | deviceId:
266 | type: string
267 | description: "A single fully qualified identifier of the Device."
268 | state:
269 | $ref: '#/components/schemas/SmokeDetectorCheckServiceStates'
270 | path:
271 | type: string
272 | description: The path to the Property.
273 | RatingState:
274 | type: string
275 | enum: [GOOD,MEDIUM,BAD]
276 | SmokeDetectorCheckState:
277 | type: string
278 | enum: [SMOKE_TEST_REQUESTED,NONE]
279 |
280 | requestBodies:
281 | SmokeDetectorCheckServiceSmokeDetectorCheckStatePayload:
282 | content:
283 | application/json:
284 | schema:
285 | type: object
286 | properties:
287 | '@type':
288 | type: string
289 | enum: [smokeDetectorCheckState]
290 | description: The type of the Object.
291 | value:
292 | $ref: '#/components/schemas/SmokeDetectorCheckState'
293 | parameters:
294 | apiVersionHeaderParam:
295 | in: header
296 | name: api-version
297 | description: The version of the API.
298 | schema:
299 | type: string
300 | example: "1.0"
301 | deviceIdPathParam:
302 | name: deviceId
303 | in: path
304 | description: "A single fully qualified identifier of the Device."
305 | required: true
306 | schema:
307 | type: string
308 | propertyPathPathParam:
309 | name: propertyPath
310 | in: path
311 | description: The path to the Property.
312 | required: true
313 | schema:
314 | type: string
315 |
--------------------------------------------------------------------------------
/openapi/UniversalSwitch-local-openapi-v3.yml:
--------------------------------------------------------------------------------
1 | ### Generated by Eclipse Vorto OpenAPI Generator from Model 'vorto.private.local.com.bosch.sh:UniversalSwitch:1.0.0'
2 | openapi: 3.0.0
3 | info:
4 | title: Bosch Smart Home Local API for Universal Switch
5 | description: |-
6 | This description focuses on the JSON-based, REST-like API for a Universal Switch.
7 |
8 | By using this documentation, the developer accepts and agrees to be bound by our [Terms and Conditions](https://github.com/BoschSmartHome/bosch-shc-api-docs#terms-and-conditions).
9 |
10 | This documentation is subject to the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).
11 |
12 | Please report any issues you encounter with this documentation in our [GitHub tracker](https://github.com/BoschSmartHome/bosch-shc-api-docs/issues).
13 | version: "1.0"
14 | servers:
15 | - url: https://{shcIp}:8444/smarthome
16 | description: "Bosch Smart Home Controller URL"
17 | variables:
18 | shcIp:
19 | default: 192.168.0.10
20 | tags:
21 | - name: Services
22 | description: Services of your UniversalSwitch
23 | - name: States
24 | description: States of your UniversalSwitch
25 | paths:
26 | '/devices/{deviceId}/services/Keypad':
27 | get:
28 | summary: Retrieve the Keypad service of the UniversalSwitch.
29 | description: |-
30 | Control of up to four commands without the need of your smartphone. Activate or deactivate lighting and alarm settings at the touch of a button when you enter your home or enter a room. Can be used flexibly in your home and is always within reach.
31 | tags:
32 | - Services
33 | parameters:
34 | - $ref: '#/components/parameters/apiVersionHeaderParam'
35 | - $ref: '#/components/parameters/deviceIdPathParam'
36 | responses:
37 | '200':
38 | description: The Keypad was successfully retrieved.
39 | content:
40 | application/json:
41 | schema:
42 | $ref: '#/components/schemas/KeypadService'
43 | '404':
44 | description: |-
45 | The entity could not be found. One of the defined query parameters was invalid.
46 | content:
47 | application/json:
48 | schema:
49 | $ref: '#/components/schemas/AdvancedError'
50 | '/devices/{deviceId}/services/Keypad/state':
51 | get:
52 | summary: Retrieve the state of the Keypad service.
53 | description: |-
54 | Retrieve the state of the Keypad service identified by the
55 | `deviceId` path parameter.
56 | tags:
57 | - States
58 | parameters:
59 | - $ref: '#/components/parameters/apiVersionHeaderParam'
60 | - $ref: '#/components/parameters/deviceIdPathParam'
61 | responses:
62 | '200':
63 | description: The state of Keypad was successfully retrieved.
64 | content:
65 | application/json:
66 | schema:
67 | $ref: '#/components/schemas/KeypadServiceStates'
68 | '404':
69 | description: |-
70 | The entity could not be found. One of the defined query parameters was invalid.
71 | content:
72 | application/json:
73 | schema:
74 | $ref: '#/components/schemas/AdvancedError'
75 |
76 | components:
77 | schemas:
78 | AdvancedError:
79 | type: object
80 | properties:
81 | '@type':
82 | type: string
83 | description: The type of the Object.
84 | example: JsonRestExceptionResponseEntity
85 | errorCode:
86 | type: string
87 | description: The error code of the occurred Exception.
88 | statusCode:
89 | type: integer
90 | description: The HTTP status of the error.
91 | ServiceDefinition:
92 | type: array
93 | minItems: 1
94 | uniqueItems: true
95 | items:
96 | type: string
97 | description: "A single fully qualified identifier of the Service of a Device."
98 | example:
99 | - Keypad
100 | KeypadServiceStates:
101 | type: object
102 | description: KeypadService states of UniversalSwitch
103 | properties:
104 | keyCode:
105 | type: integer
106 | keyName:
107 | $ref: '#/components/schemas/KeypadKeyState'
108 | eventType:
109 | $ref: '#/components/schemas/KeypadEventState'
110 | eventTimestamp:
111 | type: integer
112 | KeypadService:
113 | type: object
114 | properties:
115 | '@type':
116 | type: string
117 | enum: [DeviceServiceData]
118 | description: The type of the Object.
119 | id:
120 | type: string
121 | enum: [deviceServiceId]
122 | description: "A single fully qualified identifier of the Service of a Device."
123 | deviceId:
124 | type: string
125 | description: "A single fully qualified identifier of the Device."
126 | state:
127 | $ref: '#/components/schemas/KeypadServiceStates'
128 | path:
129 | type: string
130 | description: The path to the Property.
131 | KeypadKeyState:
132 | type: string
133 | enum: [LOWER_BUTTON,UPPER_BUTTON]
134 | KeypadEventState:
135 | type: string
136 | enum: [PRESS_SHORT,PRESS_LONG]
137 |
138 | parameters:
139 | apiVersionHeaderParam:
140 | in: header
141 | name: api-version
142 | description: The version of the API.
143 | schema:
144 | type: string
145 | example: "1.0"
146 | deviceIdPathParam:
147 | name: deviceId
148 | in: path
149 | description: "A single fully qualified identifier of the Device."
150 | required: true
151 | schema:
152 | type: string
153 | propertyPathPathParam:
154 | name: propertyPath
155 | in: path
156 | description: The path to the Property.
157 | required: true
158 | schema:
159 | type: string
160 |
--------------------------------------------------------------------------------
/openapi/WaterDetectionSystem-local-openapi-v3.yml:
--------------------------------------------------------------------------------
1 | ### Generated by Eclipse Vorto OpenAPI Generator from Model 'vorto.private.local.com.bosch.sh:SmartPlug:1.0.0'
2 | openapi: 3.0.0
3 | info:
4 | title: Bosch Smart Home Local API for Water Detection System
5 | description: |-
6 | This description focuses on the JSON-based, REST-like API for the Water Detection System.
7 |
8 | By using this documentation, the developer accepts and agrees to be bound by our [Terms and Conditions](https://github.com/BoschSmartHome/bosch-shc-api-docs#terms-and-conditions).
9 |
10 | This documentation is subject to the [Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International Public License](https://creativecommons.org/licenses/by-nc-nd/4.0/legalcode).
11 |
12 | Please report any issues you encounter with this documentation in our [GitHub tracker](https://github.com/BoschSmartHome/bosch-shc-api-docs/issues).
13 | version: "1.0"
14 | servers:
15 | - url: https://{shcIp}:8444/smarthome
16 | description: "Bosch Smart Home Controller URL"
17 | variables:
18 | shcIp:
19 | default: 192.168.0.10
20 | tags:
21 | - name: States
22 | description: States of your Water Detection Alam System
23 | - name: Actions
24 | description: Actions of your Water Detection Alarm System
25 | paths:
26 | /wateralarm:
27 | get:
28 | summary: Get the alarm system's combined state.
29 | description: Returns the combined system sate of the water detection alarm system.
30 | tags:
31 | - States
32 | parameters: [ ]
33 | responses:
34 | '200':
35 | description: OK
36 | content:
37 | application/json:
38 | schema:
39 | $ref: '#/components/schemas/WaterAlarmSystemStateData'
40 | '404':
41 | description: |-
42 | The entity could not be found. One of the defined query parameters was invalid.
43 | content:
44 | application/json:
45 | schema:
46 | $ref: '#/components/schemas/AdvancedError'
47 | /wateralarm/actions/mute:
48 | post:
49 | summary: Mutes an ongoing alarm of the water detection system.
50 | description: Sets the water detection alarm system's sate to mute.
51 | tags:
52 | - Actions
53 | parameters: [ ]
54 | responses:
55 | '202':
56 | description: Accepted
57 | '404':
58 | description: |-
59 | The entity could not be found. One of the defined query parameters was invalid.
60 | content:
61 | application/json:
62 | schema:
63 | $ref: '#/components/schemas/AdvancedError'
64 | components:
65 | schemas:
66 | AdvancedError:
67 | type: object
68 | properties:
69 | '@type':
70 | type: string
71 | description: The type of the Object.
72 | example: JsonRestExceptionResponseEntity
73 | errorCode:
74 | type: string
75 | description: The error code of the occurred Exception.
76 | statusCode:
77 | type: integer
78 | description: The HTTP status of the error.
79 | WaterAlarmIncidentData:
80 | type: object
81 | properties:
82 | deviceId:
83 | type: string
84 | readOnly: true
85 | roomName:
86 | type: string
87 | readOnly: true
88 | timestamp:
89 | type: integer
90 | format: int64
91 | readOnly: true
92 | WaterAlarmSystemStateData:
93 | type: object
94 | properties:
95 | available:
96 | type: boolean
97 | readOnly: true
98 | visualActuatorsAvailable:
99 | type: boolean
100 | readOnly: true
101 | videoActuatorsAvailable:
102 | type: boolean
103 | readOnly: true
104 | state:
105 | type: string
106 | readOnly: true
107 | enum:
108 | - WATER_ALARM
109 | - ALARM_OFF
110 | - ALARM_MUTED
111 | firstIncident:
112 | readOnly: true
113 | $ref: '#/components/schemas/WaterAlarmIncidentData'
114 | id:
115 | type: string
116 | deleted:
117 | type: boolean
118 |
--------------------------------------------------------------------------------
/postman/Bosch Smart Home Controller.postman_environment.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "68e9ae92-4ad0-40e3-ab40-1d348014443c",
3 | "name": "Bosch Smart Home Controller",
4 | "values": [
5 | {
6 | "key": "api_version",
7 | "value": "3.2",
8 | "enabled": true
9 | },
10 | {
11 | "key": "host",
12 | "value": "192.168.0.10",
13 | "enabled": true
14 | },
15 | {
16 | "key": "system_password_base64",
17 | "value": "bXlfcGFzc3cwcmQ=",
18 | "enabled": true
19 | },
20 | {
21 | "key": "client_id",
22 | "value": "postman",
23 | "enabled": true
24 | },
25 | {
26 | "key": "client_name",
27 | "value": "Postman",
28 | "enabled": true
29 | },
30 | {
31 | "key": "shc_secure",
32 | "value": "https://{{host}}:8443/smarthome/clients",
33 | "enabled": true
34 | },
35 | {
36 | "key": "shc_api",
37 | "value": "https://{{host}}:8444/smarthome",
38 | "enabled": true
39 | },
40 | {
41 | "key": "shc_poll",
42 | "value": "https://{{host}}:8444/remote/json-rpc",
43 | "enabled": true
44 | },
45 | {
46 | "key": "shc_public",
47 | "value": "https://{{host}}:8446/smarthome/public/information",
48 | "enabled": true
49 | },
50 | {
51 | "key": "device_id",
52 | "value": "intrusionDetectionSystem",
53 | "enabled": true
54 | },
55 | {
56 | "key": "service_id",
57 | "value": "IntrusionDetectionControl",
58 | "enabled": true
59 | },
60 | {
61 | "key": "room_id",
62 | "value": "hz_1",
63 | "enabled": true
64 | },
65 | {
66 | "key": "shc_poll_id",
67 | "value": "",
68 | "type": "any",
69 | "enabled": true
70 | },
71 | {
72 | "key": "user_defined_state_id",
73 | "value": "",
74 | "enabled": true
75 | }
76 | ],
77 | "_postman_variable_scope": "environment",
78 | "_postman_exported_at": "2022-12-09T09:16:11.038Z",
79 | "_postman_exported_using": "Postman/10.1.2"
80 | }
--------------------------------------------------------------------------------
/postman/README.md:
--------------------------------------------------------------------------------
1 | # How to use the Bosch Smart Home Postman Collection
2 |
3 | To get started with the Postman Collection you need the following:
4 |
5 | - Postman Collection and Environment downloaded to a local directory
6 | - The IP address of your Smart Home Controller (SHC)
7 | - A generated 2048 bit self signed certificate and the key to that certificate.
8 |
9 | **Hint:** Using OpenSSL a key pair can be generated with: `openssl req -x509 -nodes -days 9999 -newkey rsa:2048 -keyout client-key.pem -out client-cert.pem`
10 |
11 | For security reasons you should consider to encrypt the key with: `openssl rsa -aes256 -in client-key.pem -out client-encrypted-key.pem`
12 |
13 | ## Import the collection, the environment, the certificate and the key into Postman
14 | 1. Start by importing the downloaded Postman Collection and Environment via the **Import** button of Postman.
15 |
16 | 2. In the next step, you need to import the generated certificate (e.g. `client-cert.pem`) and the key (e.g. `client-key.pem` or `client-encrypted-key.pem`) into Postman. Therefore, open the **Settings** in Postman:
17 |
18 | 
19 |
20 | 3. On the **General** tab, disable **SSL certificate verification**:
21 |
22 | 
23 |
24 | 4. On the **Certificates** tab, click on **Add Certificate**:
25 |
26 | 
27 |
28 | 5. Enter the **IP address** of your SHC and the port **8443**. After that, provide the requested files for the **certificate** and the **key**. If you use a **passphrase**, you should provide this information as well:
29 |
30 | 
31 |
32 | 6. Click **Add** to add the certificate to your Postman Settings.
33 |
34 | 7. Do the same for port **8444**.
35 |
36 | Now, you have all the prerequisites to communicate with your SHC via Postman. Start by checking the connection.
37 |
38 | ## Check the connection with the Bosch Smart Home Controller in your local network
39 | 1. On the left pane of Postman, select **Collections**
40 |
41 | 2. Double-click **Public Information**
42 |
43 | 
44 |
45 | 3. In the upper right area of Postman, select the **Bosch Smart Home** environment
46 |
47 | 4. Click the icon with the eye
48 |
49 | 5. Edit the **Current Value** for **host**, enter the IP of your Bosch Smart Home Controller and close the environment window
50 |
51 | 
52 |
53 | 6. Click the **Send** button
54 |
55 | 7. Your setup is correct when you receive a **200 OK** and some information about your Bosch Smart Home Controller
56 |
57 | 
58 |
59 | ## Register a New Client to the Bosch Smart Home Controller
60 | A client is a piece of software that has the permission to communicate with the Bosch Smart Home Controller. For example, the Bosch Smart Home App becomes a client of the Bosch Smart Home Controller upon successfully registration. All registered clients can be listed in the Bosch Smart Home App. To locate this in your app, go to `Management -> Mobile devices`. The communication between a client and the Bosch Smart Home Controller is always encrypted with TLSv1.2.
61 | 
62 | **Hint:** Before submitting the **New Client** request, always **press the Bosch Smart Home Controller's front-side button, until the LEDs begin flashing**.
63 |
64 | To register a **New Client** to the Bosch Smart Home Controller, you need the following:
65 |
66 | - A designated name of your open source software project
67 | - The 2048 bit self-signed certificate from the previous step
68 | - The system password of your Bosch Smart Home Controller, which you created upon initial setup
69 |
70 | **Hint:** Your Bosch Smart Home Controller must already be initialized and paired with a Bosch Smart Home App!
71 |
72 | ### Naming convention for the Client ID and Client Name
73 | Using the API requires identification against the Bosch Smart Home Controller with an individual Client ID and Client Name that starts with `oss_` followed by the name of the open source project, or the name of the developer.
74 |
75 | **Hint:** Please note that this naming convention is part of our [Terms and Conditions](https://github.com/BoschSmartHome/bosch-shc-api-docs#terms-and-conditions).
76 |
77 | The **Client ID** and **Client Name** is already set in the Postman Environment.
78 |
79 | ### Customize the certificate
80 | To modify the certificate so that it fits into a JSON object, you have to manually remove all carriage returns, and additionally add `\r` before and after the certificate. Take the following example to illustrate this:
81 |
82 | `"-----BEGIN CERTIFICATE-----\r` followed by the **2048 bit self signed certificate** and `\r-----END CERTIFICATE-----"`
83 |
84 | Provide the **2048 bit self signed certificate** in the **body** of the **New Client** call.
85 |
86 | If the certificate, or one of the defined query parameters was invalid, the Bosch Smart Home Controller will respond with `400 bad request`.
87 |
88 | 
89 |
90 | ### Encode your password to base64
91 |
92 | In order for the request to be accepted, you have to encode your Bosch Smart Home Controller password into base64. If you need a hint how to do this, there are many base64 encoders online. Just pick one and encode your password there. For instance, the base64 encoded password for `my_passw0rd` is `bXlfcGFzc3cwcmQ=`.
93 |
94 | Enter the information of the **base64 encoded password** in the **Bosch Smart Home** environment.
95 |
96 | If the password is wrong, the Bosch Smart Home Controller will respond with `401 unauthorized`.
97 |
98 | 
99 |
100 | ### Add the client
101 | 1. Press the front-side button of the Bosch Smart Home Controller (short for Controller II, long until the LEDs begin flashing for the old SHC).
102 | 2. Click the "Send" button.
103 |
104 | After a couple of seconds the LEDs should stop flashing. Your client is now added.
105 |
106 | ### Delete a client
107 |
108 | Please, start your Bosch Smart Home App.
109 | 1. Navigate to `Management -> Mobile devices`
110 | 1. Select the client you want to delete
111 | 1. Delete the client with the button at the bottom of the page
112 |
113 | ## Get events from the Bosch Smart Home Controller (Long Polling)
114 |
115 | After registering a client to the Bosch Smart Home Controller, the requests in the Postman Collection for Long Polling should work without explicitly configuring them.
116 |
117 | - Long Polling **Subscribe** returns a polling id. This id is needed to **Poll** and to **Unsubscribe**. In the **Test** tab, there is a function to store the polling id to the environment variable: `shc_poll_id`
118 |
119 | - Long Polling **Poll** opens a connection and waits for a period of time to receive status updates from edge devices. The connection will be closed if an edge device sends a status update, or if no status updates are received during a period of time. To keep polling, you need to reopen the connection with the same polling id (`shc_poll_id`) again.
120 |
121 | - Long Polling **Unsubscribe** removes the subscription with `shc_poll_id`.
122 |
123 | **Hint:** If you are using **Long Poll**, it is normal that Postman waits for a certain amount of time. The connection stays open either until the polling time has expired, or a device has updated its status.
124 |
--------------------------------------------------------------------------------
/postman/images/postman_add_certificate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BoschSmartHome/bosch-shc-api-docs/4f6ecf0fadd3d3e855d81f7f413891c9fd07a3bd/postman/images/postman_add_certificate.png
--------------------------------------------------------------------------------
/postman/images/postman_add_pems.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BoschSmartHome/bosch-shc-api-docs/4f6ecf0fadd3d3e855d81f7f413891c9fd07a3bd/postman/images/postman_add_pems.png
--------------------------------------------------------------------------------
/postman/images/postman_check_shc_connection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BoschSmartHome/bosch-shc-api-docs/4f6ecf0fadd3d3e855d81f7f413891c9fd07a3bd/postman/images/postman_check_shc_connection.png
--------------------------------------------------------------------------------
/postman/images/postman_collections.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BoschSmartHome/bosch-shc-api-docs/4f6ecf0fadd3d3e855d81f7f413891c9fd07a3bd/postman/images/postman_collections.png
--------------------------------------------------------------------------------
/postman/images/postman_disable_ssl_verification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BoschSmartHome/bosch-shc-api-docs/4f6ecf0fadd3d3e855d81f7f413891c9fd07a3bd/postman/images/postman_disable_ssl_verification.png
--------------------------------------------------------------------------------
/postman/images/postman_environment_host.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BoschSmartHome/bosch-shc-api-docs/4f6ecf0fadd3d3e855d81f7f413891c9fd07a3bd/postman/images/postman_environment_host.png
--------------------------------------------------------------------------------
/postman/images/postman_environment_pass.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BoschSmartHome/bosch-shc-api-docs/4f6ecf0fadd3d3e855d81f7f413891c9fd07a3bd/postman/images/postman_environment_pass.png
--------------------------------------------------------------------------------
/postman/images/postman_new_client.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BoschSmartHome/bosch-shc-api-docs/4f6ecf0fadd3d3e855d81f7f413891c9fd07a3bd/postman/images/postman_new_client.png
--------------------------------------------------------------------------------
/postman/images/postman_settings.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BoschSmartHome/bosch-shc-api-docs/4f6ecf0fadd3d3e855d81f7f413891c9fd07a3bd/postman/images/postman_settings.png
--------------------------------------------------------------------------------
/postman/images/shc-client-schematic-view.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/BoschSmartHome/bosch-shc-api-docs/4f6ecf0fadd3d3e855d81f7f413891c9fd07a3bd/postman/images/shc-client-schematic-view.png
--------------------------------------------------------------------------------