| clientId | String | Yes | Client ID provided for the application you created on <http://dev.netatmo.com/createapp> |
| clientSecret | String | Yes | Client Secret provided for the application you created |
| webHookUrl | String | No | Protocol, public IP and port to access openHAB server from Internet |
+| webHookPostfix | String | No | String appended to the generated webhook address (should start with "/") |
| reconnectInterval | Number | No | The reconnection interval to Netatmo API (in s) |
| refreshToken | String | Yes* | The refresh token provided by Netatmo API after the granting process. Can be saved in case of file based configuration |
The webhook URL is setup at Netatmo Account level using "Webhook Address" parameter.
You will define here public way to access your openHAB server:
-```text
+```
http(s)://xx.yy.zz.ww:443
```
Your Netatmo App will be configured automatically by the bridge to the endpoint:
-```text
-http(s)://xx.yy.zz.ww:443/netatmo/webhook/<_CLIENT_ID_>
+```
+http(s)://xx.yy.zz.ww:443/netatmo/webhook/<_CLIENT_ID_><webHookPostfix>
```
Please be aware of Netatmo own limits regarding webhook usage that lead to a 24h ban-time when webhook does not answer 5 times.
public String clientSecret = "";
public String refreshToken = "";
public String webHookUrl = "";
+ public String webHookPostfix = "";
public int reconnectInterval = 300;
public ConfigurationLevel check() {
SecurityApi securityApi = getRestManager(SecurityApi.class);
if (securityApi != null) {
WebhookServlet servlet = new WebhookServlet(this, httpService, deserializer, securityApi,
- configuration.webHookUrl);
+ configuration.webHookUrl, configuration.webHookPostfix);
servlet.startListening();
this.webHookServlet = servlet;
}
private final SecurityApi securityApi;
private final NADeserializer deserializer;
private final String webHookUrl;
+ private final String webHookPostfix;
private boolean hookSet = false;
public WebhookServlet(ApiBridgeHandler handler, HttpService httpService, NADeserializer deserializer,
- SecurityApi securityApi, String webHookUrl) {
+ SecurityApi securityApi, String webHookUrl, String webHookPostfix) {
super(handler, httpService, "webhook");
this.deserializer = deserializer;
this.securityApi = securityApi;
this.webHookUrl = webHookUrl;
+ this.webHookPostfix = webHookPostfix;
}
@Override
public void startListening() {
super.startListening();
- URI uri = UriBuilder.fromUri(webHookUrl).path(path).build();
+ URI uri = UriBuilder.fromUri(webHookUrl).path(path + webHookPostfix).build();
try {
logger.info("Setting up WebHook at Netatmo to {}", uri.toString());
hookSet = securityApi.addwebhook(uri);
<description>@text/config.webHookUrl.description</description>
</parameter>
+ <parameter name="webHookPostfix" type="text" required="false">
+ <label>@text/config.webHookPostfix.label</label>
+ <description>@text/config.webHookPostfix.description</description>
+ </parameter>
+
<parameter name="reconnectInterval" type="integer" unit="s">
<label>@text/config.reconnectInterval.label</label>
<description>@text/config.reconnectInterval.description</description>
config.clientSecret.description = Client Secret provided for the application you created.
config.refreshToken.label = Refresh Token
config.refreshToken.description = Refresh token provided by the oAuth2 authentication process.
+config.webHookPostfix.label = Webhook Postfix
+config.webHookPostfix.description = String appended to the generated webhook address (should start with `/`).
config.webHookUrl.label = Webhook Address
config.webHookUrl.description = Protocol, public IP or hostname and port to access openHAB server from Internet.
config.reconnectInterval.label = Reconnect Interval