added migrated 2.x add-ons

Signed-off-by: Kai Kreuzer <kai@openhab.org>
This commit is contained in:
Kai Kreuzer
2020-09-21 01:58:32 +02:00
parent bbf1a7fd29
commit 6df6783b60
11662 changed files with 1302875 additions and 11 deletions

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<binding:binding id="bticinosmarther" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:binding="https://openhab.org/schemas/binding/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/binding/v1.0.0 https://openhab.org/schemas/binding-1.0.0.xsd">
<name>BTicino Smarther Binding</name>
<description>This is the binding for BTicino Smarther chronothermostat units</description>
<author>Fabio Possieri</author>
</binding:binding>

View File

@@ -0,0 +1,148 @@
<?xml version="1.0" encoding="UTF-8"?>
<config-description:config-descriptions
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:config-description="https://openhab.org/schemas/config-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/config-description/v1.0.0 https://openhab.org/schemas/config-description-1.0.0.xsd">
<!-- Config for BTicino Smarther Bridge -->
<config-description uri="bridge-type:smarther:bridge">
<!-- Parameter groups -->
<parameter-group name="subscription">
<label>Product Subscription</label>
<description>Details of the Smarther product subscription connected to the BTicino/Legrand development account.</description>
</parameter-group>
<parameter-group name="application">
<label>Application Details</label>
<description>Details of the Smarther application registered on the BTicino/Legrand development portal.</description>
</parameter-group>
<parameter-group name="advancedset">
<label>Advanced Settings</label>
<description>Advanced settings of this bridge.</description>
</parameter-group>
<!-- Parameters -->
<parameter name="subscriptionKey" groupName="subscription" type="text" pattern="[0-9a-f]{32}">
<label>Subscription Key</label>
<description>This is the Subscription Key provided by BTicino/Legrand when you subscribe to Smarther - v2.0 product.
Go to https://developer.legrand.com/tutorials/getting-started/</description>
<required>true</required>
</parameter>
<parameter name="clientId" groupName="application" type="text"
pattern="[0-9a-f]{8}[-]([0-9a-f]{4}[-]){3}[0-9a-f]{12}">
<label>Client ID</label>
<description>This is the Client ID provided by BTicino/Legrand when you add a new Application to your developer
account. Go to https://developer.legrand.com/tutorials/create-an-application/</description>
<required>true</required>
</parameter>
<parameter name="clientSecret" groupName="application" type="text">
<label>Client Secret</label>
<description>This is the Client Secret provided by BTicino/Legrand when you add a new Application to your developer
account.</description>
<required>true</required>
<context>password</context>
</parameter>
<parameter name="useNotifications" groupName="advancedset" type="boolean">
<label>Use Notifications</label>
<description>ON = the bridge subscribes each of its locations to receive C2C notifications upon changes on each of
its modules' status or sensors data - temperature, humidity (requires a public https endpoint has been set as "First
Reply Url" when registering the Application on Legrand's development portal); OFF = for each module connected to
this bridge, status+sensors data are requested to Smarther API gateway on a periodical basis and whenever new
settings are applied (period can be changed via module's "Status Refresh Period" parameter).</description>
<required>false</required>
<advanced>true</advanced>
<default>true</default>
</parameter>
<parameter name="statusRefreshPeriod" groupName="advancedset" type="integer" min="1" unit="min">
<label>Bridge Status Refresh Period (minutes)</label>
<description>This is the frequency the Smarther API gateway is called to update bridge status. There are limits to
the number of requests that can be sent to the Smarther API gateway. The more often you poll, the faster locations
are updated - at the risk of running out of your request quota.</description>
<required>false</required>
<advanced>true</advanced>
<unitLabel>Minutes</unitLabel>
<default>1440</default>
</parameter>
</config-description>
<!-- Config for BTicino Smarther Module -->
<config-description uri="thing-type:smarther:module">
<!-- Parameter groups -->
<parameter-group name="topology">
<label>Module Topology</label>
<description>Reference to uniquely identify the module towards the BTicino/Legrand API gateway.</description>
</parameter-group>
<parameter-group name="advancedset">
<label>Advanced Settings</label>
<description>Advanced settings of this module.</description>
</parameter-group>
<!-- Parameters -->
<parameter name="plantId" groupName="topology" type="text"
pattern="[0-9a-f]{8}[-]([0-9a-f]{4}[-]){3}[0-9a-f]{12}">
<label>Location Plant Id</label>
<description>This is the Plant Id of the location the Chronothermostat module is installed in, provided by Smarther
API.</description>
<required>true</required>
</parameter>
<parameter name="moduleId" groupName="topology" type="text"
pattern="[0-9a-f]{8}[-]([0-9a-f]{4}[-]){3}[0-9a-f]{12}">
<label>Chronothermostat Module Id</label>
<description>This is the Module Id of the Chronothermostat module, provided by Smarther API.</description>
<required>true</required>
</parameter>
<parameter name="settingsAutoupdate" groupName="advancedset" type="boolean">
<label>Module Settings Auto-Update</label>
<description>ON = the module settings are automatically updated according to the module status whenever it changes
(e.g. polling, notification, etc.). OFF = the module settings are aligned to the module status only upon module
initialization.</description>
<required>false</required>
<advanced>true</advanced>
<default>false</default>
</parameter>
<parameter name="programsRefreshPeriod" groupName="advancedset" type="integer" min="1" unit="h">
<label>Programs Refresh Period (hours)</label>
<description>This is the frequency the Smarther API gateway is called to refresh Programs list used in "automatic"
mode. There are limits to the number of requests that can be sent to the Smarther API gateway. The more often you
poll, the faster locations are updated - at the risk of running out of your request quota.</description>
<required>false</required>
<advanced>true</advanced>
<unitLabel>Hours</unitLabel>
<default>12</default>
</parameter>
<parameter name="numberOfEndDays" groupName="advancedset" type="integer" min="1" max="9">
<label>Number Of Days For End Date</label>
<description>This is the number of days to be displayed in module settings, as options list for "End Date" field in
"manual" mode (e.g. 1 = only "Today" is displayed, 5 = "Today" + "Tomorrow" + following 3 days are displayed).</description>
<required>false</required>
<advanced>true</advanced>
<default>5</default>
</parameter>
<parameter name="statusRefreshPeriod" groupName="advancedset" type="integer" min="1" unit="min">
<label>Module Status Refresh Period (minutes)</label>
<description>This is the frequency the Smarther API gateway is called to update module status and sensors data. There
are limits to the number of requests that can be sent to the Smarther API gateway. The more often you poll, the
faster locations are updated - at the risk of running out of your request quota.</description>
<required>false</required>
<advanced>true</advanced>
<unitLabel>Minutes</unitLabel>
<default>60</default>
</parameter>
</config-description>
</config-description:config-descriptions>

View File

@@ -0,0 +1,102 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="bticinosmarther"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
<!-- BTicino/Legrand Smarther API Bridge -->
<bridge-type id="bridge">
<label>BTicino Smarther Bridge</label>
<description>
<![CDATA[
This bridge represents the gateway to Smarther API in the context of one specific BTicino/Legrand developer account.<br/>
If you want to control your devices in the context of different accounts you have to register a bridge for each account.<br/>
<br/>
<b>How-To configure the bridge:</b><br/>
<ul>
<li>Sign up for a new developer account on <a href="https://developer.legrand.com/login" target="_blank">Works with Legrand website</a></li>
<li>Subscribe to "Starter Kit for Legrand APIs" from <a href="https://portal.developer.legrand.com/products/starter-kit" target="_blank">API &gt; Subscriptions</a> menu
<ul>
<li>This will generate your primary and secondary "Subscription Key"</li>
</ul>
</li>
<li>Register a new application from <a href="https://partners-mysettings.developer.legrand.com/Application/Index" target="_blank">User &gt; My Applications</a> menu
<ul>
<li>In "First Reply Url" field insert the public callback URL "https://&lt;your openHAB host&gt;:&lt;your openHAB port&gt;/smarther/connectsmarther"</li>
<li>Tick the checkbox near "comfort.read" and "comfort.write" scopes</li>
</ul>
You should receive an email from Legrand, usually within 1-2 days max, containing your application's "Client ID" and "Client Secret".
</li>
</ul>
<b>How-To authorize the bridge:</b><br/>
<ul>
<li>Create and configure a bridge Thing first, using above Subscription Key + Client ID + Client Secret, then</li>
<li>Open in your browser the public URL "https://&lt;your openHAB host&gt;:&lt;your openHAB port&gt;/smarther/connectsmarther", and</li>
<li>Follow the steps reported therein to authorize the bridge</li>
</ul>
]]>
</description>
<channel-groups>
<channel-group id="status" typeId="bridge-status"/>
<channel-group id="config" typeId="bridge-config"/>
</channel-groups>
<properties>
<property name="vendor">BTicino</property>
</properties>
<representation-property>subscriptionKey</representation-property>
<config-description-ref uri="bridge-type:smarther:bridge"/>
</bridge-type>
<!-- Channel groups -->
<channel-group-type id="bridge-status">
<label>Status</label>
<description>Current operational status of the bridge</description>
<channels>
<channel id="apiCallsHandled" typeId="status-apicallshandled"/>
<channel id="notifsReceived" typeId="status-notifsreceived"/>
<channel id="notifsRejected" typeId="status-notifsrejected"/>
</channels>
</channel-group-type>
<channel-group-type id="bridge-config">
<label>Configuration</label>
<description>Convenience configuration channels for the bridge</description>
<channels>
<channel id="fetchLocations" typeId="config-fetchlocations"/>
</channels>
</channel-group-type>
<!-- Channel types -->
<channel-type id="status-apicallshandled">
<item-type>Number</item-type>
<label>API Calls Handled</label>
<description>Total number of API calls handled by the bridge</description>
<state readOnly="true" min="0" pattern="%d"/>
</channel-type>
<channel-type id="status-notifsreceived">
<item-type>Number</item-type>
<label>Notifications Received</label>
<description>Total number of C2C notifications received by the bridge</description>
<state readOnly="true" min="0" pattern="%d"/>
</channel-type>
<channel-type id="status-notifsrejected">
<item-type>Number</item-type>
<label>Notifications Rejected</label>
<description>Total number of C2C notifications rejected by the bridge</description>
<state readOnly="true" min="0" pattern="%d"/>
</channel-type>
<channel-type id="config-fetchlocations" advanced="true">
<item-type>Switch</item-type>
<label>Fetch Locations List</label>
<description>This is a convenience switch to trigger a call to the Smarther API gateway, to manually fetch the updated
client locations list.</description>
</channel-type>
</thing:thing-descriptions>

View File

@@ -0,0 +1,222 @@
<?xml version="1.0" encoding="UTF-8"?>
<thing:thing-descriptions bindingId="bticinosmarther"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
<!-- BTicino Smarther Module Thing -->
<thing-type id="module">
<supported-bridge-type-refs>
<bridge-type-ref id="bridge"/>
</supported-bridge-type-refs>
<label>BTicino Smarther Chronothermostat</label>
<description>This thing represents a BTicino Smarther chronothermostat module.</description>
<channel-groups>
<channel-group id="measures" typeId="module-measures"/>
<channel-group id="status" typeId="module-status"/>
<channel-group id="settings" typeId="module-settings"/>
<channel-group id="config" typeId="module-config"/>
</channel-groups>
<properties>
<property name="vendor">BTicino</property>
<property name="modelId">X8000</property>
</properties>
<representation-property>moduleId</representation-property>
<config-description-ref uri="thing-type:smarther:module"/>
</thing-type>
<!-- Channel groups -->
<channel-group-type id="module-measures">
<label>Measures</label>
<description>Measures taken from the module on-board sensors</description>
<channels>
<channel id="temperature" typeId="measures-temperature"/>
<channel id="humidity" typeId="measures-humidity"/>
</channels>
</channel-group-type>
<channel-group-type id="module-status">
<label>Status</label>
<description>Current operational status of the module</description>
<channels>
<channel id="state" typeId="status-state"/>
<channel id="function" typeId="status-function"/>
<channel id="mode" typeId="status-mode"/>
<channel id="temperature" typeId="status-temperature"/>
<channel id="program" typeId="status-program"/>
<channel id="endTime" typeId="status-endtime"/>
<channel id="temperatureFormat" typeId="status-temperatureformat"/>
</channels>
</channel-group-type>
<channel-group-type id="module-settings">
<label>Settings</label>
<description>New operational settings to be applied to the module</description>
<channels>
<channel id="mode" typeId="settings-mode"/>
<channel id="temperature" typeId="settings-temperature"/>
<channel id="program" typeId="settings-program"/>
<channel id="boostTime" typeId="settings-boosttime"/>
<channel id="endDate" typeId="settings-enddate"/>
<channel id="endHour" typeId="settings-endhour"/>
<channel id="endMinute" typeId="settings-endminute"/>
<channel id="power" typeId="settings-power"/>
</channels>
</channel-group-type>
<channel-group-type id="module-config">
<label>Configuration</label>
<description>Convenience configuration channels for the module</description>
<channels>
<channel id="fetchPrograms" typeId="config-fetchprograms"/>
</channels>
</channel-group-type>
<!-- Channel types -->
<channel-type id="measures-temperature">
<item-type>Number:Temperature</item-type>
<label>Temperature</label>
<description>Indoor temperature as measured by the sensor</description>
<category>Temperature</category>
<state readOnly="true" pattern="%.1f %unit%" step="0.1"/>
</channel-type>
<channel-type id="measures-humidity">
<item-type>Number:Dimensionless</item-type>
<label>Humidity</label>
<description>Indoor humidity as measured by the sensor</description>
<category>Humidity</category>
<state readOnly="true" min="0" max="100" pattern="%.1f %unit%" step="0.1"/>
</channel-type>
<channel-type id="status-state">
<item-type>Switch</item-type>
<label>State</label>
<description>Current operational state of the module</description>
<state readOnly="true"/>
</channel-type>
<channel-type id="status-function" advanced="true">
<item-type>String</item-type>
<label>Function</label>
<description>Current operational function set on the module</description>
<state readOnly="true"/>
</channel-type>
<channel-type id="status-mode">
<item-type>String</item-type>
<label>Mode</label>
<description>Current operational mode set on the module</description>
<state readOnly="true"/>
</channel-type>
<channel-type id="status-temperature">
<item-type>Number:Temperature</item-type>
<label>Temperature</label>
<description>Current operational target temperature set on the module</description>
<category>Temperature</category>
<state readOnly="true" pattern="%.1f %unit%" step="0.1"/>
</channel-type>
<channel-type id="status-program">
<item-type>String</item-type>
<label>Program</label>
<description>Current operational program set on the module</description>
<state readOnly="true"/>
</channel-type>
<channel-type id="status-endtime">
<item-type>String</item-type>
<label>End Time</label>
<description>Current operational end time set on the module</description>
<state readOnly="true"/>
</channel-type>
<channel-type id="status-temperatureformat" advanced="true">
<item-type>String</item-type>
<label>Temperature Format</label>
<description>Current operational temperature format of the module</description>
<state readOnly="true"/>
</channel-type>
<channel-type id="settings-mode">
<item-type>String</item-type>
<label>Mode</label>
<description>New operational mode to be set on the module</description>
<state>
<options>
<option value="AUTOMATIC">Automatic</option>
<option value="MANUAL">Manual</option>
<option value="BOOST">Boost</option>
<option value="OFF">Off</option>
<option value="PROTECTION">Protection</option>
</options>
</state>
</channel-type>
<channel-type id="settings-temperature">
<item-type>Number:Temperature</item-type>
<label>Temperature</label>
<description>New operational set-point temperature to be set on the module (valid only for Mode = "Manual")</description>
<category>Temperature</category>
<state pattern="%.1f %unit%" min="7.1" max="104" step="0.1"/>
</channel-type>
<channel-type id="settings-program">
<item-type>Number</item-type>
<label>Program</label>
<description>New operational program to be set on the module (valid only for Mode = "Automatic")</description>
</channel-type>
<channel-type id="settings-boosttime">
<item-type>Number</item-type>
<label>Boost Time</label>
<description>New operational boost time to be set on the module (valid only for Mode = "Boost")</description>
<state>
<options>
<option value="30">30 min</option>
<option value="60">60 min</option>
<option value="90">90 min</option>
</options>
</state>
</channel-type>
<channel-type id="settings-enddate">
<item-type>String</item-type>
<label>End Date</label>
<description>New operational end date to be set on the module (valid only for Mode = "Manual")</description>
</channel-type>
<channel-type id="settings-endhour">
<item-type>Number</item-type>
<label>End Hour</label>
<description>New operational end hour to be set on the module (valid only for Mode = "Manual")</description>
<state pattern="%02d" min="0" max="23" step="1"/>
</channel-type>
<channel-type id="settings-endminute">
<item-type>Number</item-type>
<label>End Minute</label>
<description>New operational end minute to be set on the module (valid only for Mode = "Manual")</description>
<state pattern="%02d" min="0" max="59" step="15"/>
</channel-type>
<channel-type id="settings-power">
<item-type>Switch</item-type>
<label>Power</label>
<description>Power on, send new operational settings to the module</description>
</channel-type>
<channel-type id="config-fetchprograms" advanced="true">
<item-type>Switch</item-type>
<label>Fetch Programs List</label>
<description>This is a convenience switch to trigger a call to the Smarther API gateway, to manually fetch the updated
module programs list.</description>
</channel-type>
</thing:thing-descriptions>

View File

@@ -0,0 +1,4 @@
<div class="block${application.authorized}" id="${application.id}">
Connect to Smarther API gateway: <i>${application.name} ${application.locations}</i>
<div class="button"><p><a href=${application.authorize}>Authorize Bridge</a></p></div>
</div>

View File

@@ -0,0 +1,95 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
${pageRefresh}
<title>Authorize openHAB binding for BTicino Smarther Chronothermostats</title>
<link rel="icon" href="connectsmarther/img/favicon.ico" type="image/vnd.microsoft.icon" />
<style>
html {
font-family: "Roboto", Helvetica, Arial, sans-serif;
}
.logo {
display: block;
margin: auto;
width: 100%;
}
.block {
border: 1px solid #bbb;
background-color: white;
margin: 10px 0;
padding: 8px 10px;
}
.error {
background: #FFC0C0;
border: 1px solid darkred;
color: darkred
}
.authorized {
border: 1px solid #90EE90;
background-color: #E0FFE0;
}
.button {
margin-bottom: 10px;
}
.button a {
background: #1ED760;
border-radius: 500px;
color: white;
padding: 10px 20px 10px;
font-size: 16px;
font-weight: 700;
border-width: 0;
text-decoration: none;
}
</style>
</head>
<body>
<div style="width: 1024px; margin: auto; border: 2px solid gray; padding: 10px;">
<svg class="logo" xmlns="http://www.w3.org/2000/svg" width="290px" height="70px" style="vector-effect: non-scaling-stroke;" preserveAspectRatio="xMidYMid meet">
<g>
<path fill="#444444" d="m29.129353,5.716719c-6.284499,1.347164 -11.247366,4.122323 -15.697762,8.702682c-4.288564,4.445642 -6.93183,9.457094 -8.010714,15.249901c-0.485498,2.559612 -0.566414,8.433249 -0.161833,10.588712c0.431554,2.155463 0.863107,3.825947 1.051912,4.041493c0.107888,0.107773 0.997968,-0.619696 2.022908,-1.643541l1.834103,-1.832144l-0.296693,-1.912974c-0.404582,-2.613499 -0.377609,-4.930622 0.107888,-7.70578c1.995935,-11.423954 10.923701,-19.83026 22.440788,-21.177424c8.280435,-0.969958 17.2082,2.748215 22.386844,9.295434c4.88195,6.14307 6.716053,13.525531 5.205615,20.907992c-1.941991,9.484037 -9.170514,17.189818 -18.475889,19.6686c-3.236652,0.862185 -8.415295,0.996902 -11.651948,0.269433c-4.74709,-1.023845 -8.819877,-3.206252 -12.407166,-6.574162l-1.861075,-1.778257l-1.699242,1.697427l-1.67227,1.670484l1.699243,1.616597c4.288564,4.09538 9.332347,6.789709 15.15832,8.10993c2.643266,0.592752 9.332347,0.592752 11.921669,0c12.272306,-2.775159 21.119155,-11.693387 23.735449,-23.952583c0.620358,-2.963762 0.566414,-8.594909 -0.134861,-11.80116c-0.701275,-3.179308 -1.132828,-4.337869 -2.643266,-7.436347c-3.803066,-7.732724 -11.112505,-13.579417 -19.77055,-15.761824c-3.371513,-0.835242 -9.7639,-0.969958 -13.081469,-0.24249z"/>
<path d="m160.888066,19.727229c0,13.552474 0.026972,14.064396 0.539442,15.088241c0.296693,0.592752 1.051912,1.401051 1.67227,1.8052l1.105856,0.754412l5.90689,0.08083l5.90689,0.08083l-0.080916,-3.314024l-0.080916,-3.314024l-2.157768,-0.134716l-2.157768,-0.134716l0,-5.253941l0,-5.253941l2.238684,-0.08083l2.211712,-0.08083l0,-3.206251l0,-3.233195l-2.292629,0l-2.292629,0l0,-3.906777l0,-3.906777l-5.25956,0l-5.25956,0l0,14.01051z"/>
<path fill="#f27500" d="m132.837081,21.747976l0,15.761824l10.330315,0c5.664141,0 10.761868,-0.107773 11.328282,-0.24249c1.483466,-0.350263 2.832071,-1.347164 3.506373,-2.586556c0.566414,-1.023845 0.593386,-1.454938 0.674303,-8.621852c0.107888,-8.594909 -0.026972,-9.376264 -1.591354,-10.912032c-1.483466,-1.454938 -2.427489,-1.616597 -8.577128,-1.616597l-5.421392,0l0,-3.77206l0,-3.77206l-5.124699,0l-5.124699,0l0,15.761824zm15.589874,3.69123l-0.080916,5.200055l-2.616294,0.08083l-2.643266,0.08083l0,-5.280884l0,-5.253941l2.69721,0l2.69721,0l-0.053944,5.173111z"/>
<path d="m177.341047,25.520036l0,11.989763l5.25956,0l5.25956,0l0,-11.989763l0,-11.989763l-5.25956,0l-5.25956,0l0,11.989763z"/>
<path d="m192.850005,13.907479c-1.1598,0.484979 -2.508405,2.12852 -2.751154,3.314024c-0.107888,0.565809 -0.215777,4.472586 -0.215777,8.702682c0,7.463291 0.026972,7.70578 0.620358,8.810455c0.323665,0.646639 1.105856,1.481881 1.726214,1.88603l1.132828,0.754412l9.305375,0.08083c9.251431,0.08083 9.332347,0.053887 10.546091,-0.538866c0.701275,-0.377206 1.53741,-1.104675 2.022908,-1.778257c0.809163,-1.158561 0.809163,-1.212448 0.809163,-4.715075l0,-3.556514l-5.124699,0l-5.124699,0l-0.080916,0.673582c-0.026972,0.377206 -0.134861,1.185505 -0.215777,1.8052l-0.134861,1.158561l-2.427489,0l-2.400517,0l0,-4.984508l0,-4.984508l2.400517,0l2.400517,0l0.161833,0.835242c0.080916,0.458036 0.161833,1.266335 0.161833,1.751314l0,0.916072l5.286532,0l5.286532,0l-0.107888,-3.448741c-0.107888,-3.69123 -0.350637,-4.445643 -1.753187,-5.765864c-0.404582,-0.404149 -1.105856,-0.862185 -1.510438,-0.996902c-1.186772,-0.458036 -18.961387,-0.377206 -20.013299,0.08083z"/>
<path d="m218.068919,25.520036l0,11.989763l5.25956,0l5.25956,0l0,-11.989763l0,-11.989763l-5.25956,0l-5.25956,0l0,11.989763z"/>
<path d="m230.476086,25.520036l0,11.989763l5.25956,0l5.25956,0l0.053944,-8.433249l0.080916,-8.406306l2.508405,-0.08083l2.481433,-0.08083l0,8.514079l0,8.487136l5.25956,0l5.25956,0l0,-10.103733c0,-9.564867 -0.026972,-10.184563 -0.539442,-11.181465c-0.296693,-0.565809 -0.970996,-1.374108 -1.53741,-1.8052l-0.970996,-0.754412l-11.571031,-0.08083l-11.544059,-0.08083l0,12.016707z"/>
<path d="m261.628862,13.907479c-0.970996,0.404149 -2.481433,2.074633 -2.69721,2.936818c-0.080916,0.323319 -0.134861,4.418699 -0.080916,9.106831l0.080916,8.514079l0.782191,0.996902c1.510438,1.96686 1.834103,2.04769 12.029557,2.04769c8.199519,0 9.143542,-0.053887 10.114538,-0.511922c1.348605,-0.592752 2.454461,-1.859087 2.832071,-3.206251c0.350637,-1.320221 0.350637,-15.222958 -0.026972,-16.570122c-0.350637,-1.266335 -1.699242,-2.855989 -2.859043,-3.314024c-1.240717,-0.538866 -18.988359,-0.511922 -20.175131,0zm12.542027,11.612557l0,4.984508l-2.427489,0l-2.427489,0l0,-4.984508l0,-4.984508l2.427489,0l2.427489,0l0,4.984508z"/>
<path fill="#e23d18" d="m21.604137,34.788527l-13.459078,13.444701l0.350637,0.835242c0.188805,0.458036 0.701275,1.401051 1.132828,2.101576l0.809163,1.239391l12.164417,-12.151423c6.716053,-6.708879 12.32625,-12.178366 12.461111,-12.178366c0.134861,0 4.423425,4.149266 9.494179,9.214605c6.014778,6.008353 9.332347,9.133775 9.494179,8.972115c0.161833,-0.16166 0.620358,-1.131618 1.051912,-2.182406l0.809163,-1.912973l-10.438203,-10.427053l-10.411231,-10.400109l-13.459078,13.444701z"/>
<path d="m82.480169,33.441363c-4.477369,1.88603 -8.415295,3.556514 -8.738961,3.69123c-0.51247,0.24249 0.809163,0.862185 8.415295,4.068437l9.008682,3.77206l0.080916,-2.371009l0.080916,-2.397953l8.334379,0l8.361351,0l0,2.290179c0,1.670484 0.080916,2.290179 0.350637,2.290179c0.323665,0 17.397005,-7.139971 17.639754,-7.355518c0.107888,-0.134716 -17.316089,-7.463291 -17.72067,-7.463291c-0.161833,0 -0.269721,0.943015 -0.269721,2.290179l0,2.290179l-8.361351,0l-8.361351,0l0,-2.290179c0,-1.670484 -0.080916,-2.290179 -0.323665,-2.263236c-0.188805,0 -4.018843,1.562711 -8.496212,3.448741z"/>
<path fill="#BBBBBB" d="m138.555166,40.177185c-3.101792,1.077732 -4.666173,3.206251 -4.666173,6.412503c0,2.182406 0.350637,3.098478 1.753187,4.310926c1.078884,0.969958 2.508405,1.481881 6.230555,2.236293c4.908922,0.996902 6.338444,2.04769 6.338444,4.715075c0,3.287081 -2.616294,4.903678 -7.498244,4.661189c-2.400517,-0.107773 -4.854978,-0.943015 -6.068723,-2.020747c-0.458526,-0.431093 -0.51247,-0.404149 -1.186772,0.24249c-0.377609,0.404149 -0.620358,0.889129 -0.539442,1.077732c0.053944,0.215546 0.863107,0.754412 1.726214,1.239391c4.585257,2.424896 11.16645,2.101576 13.890632,-0.673582c1.348605,-1.374108 1.834103,-2.667386 1.834103,-4.795905c0,-3.664287 -1.753187,-5.119225 -7.821909,-6.466389c-5.340476,-1.212448 -6.473304,-2.020747 -6.473304,-4.526472c0,-1.832144 0.701275,-3.125421 2.103824,-3.906777c2.427489,-1.347164 5.852946,-1.266335 8.819877,0.215546l1.618326,0.808299l0.620358,-0.700525c0.431554,-0.511922 0.539442,-0.808299 0.350637,-1.023845c-0.431554,-0.511922 -3.047847,-1.72437 -4.36948,-2.020747c-1.888047,-0.458036 -5.070755,-0.350263 -6.662109,0.215546z"/>
<path fill="#BBBBBB" d="m233.443017,52.193891l0,12.259196l1.078884,0l1.078884,0l0,-6.14307c0,-5.415601 0.080916,-6.250843 0.51247,-7.247745c1.402549,-3.044592 6.823941,-3.044592 8.442268,0c0.566414,1.050788 0.620358,1.535767 0.701275,7.247745l0.107888,6.14307l1.078884,0l1.078884,0l-0.107888,-6.547219c-0.107888,-7.355518 -0.269721,-8.136873 -2.18474,-9.807357c-2.292629,-1.993803 -6.392388,-1.751314 -8.738961,0.511922l-0.890079,0.862185l0,-4.768962l0,-4.768962l-1.078884,0l-1.078884,0l0,12.259196z"/>
<path fill="#BBBBBB" d="m222.114735,44.380338l0,2.559612l-0.944024,0c-0.890079,0 -0.944024,0.053887 -0.944024,0.943015c0,0.889129 0.053944,0.943015 0.944024,0.943015l0.944024,0l0.026972,6.250843c0,4.122323 0.107888,6.601106 0.323665,7.220801c0.485498,1.427994 1.807131,2.155463 3.85701,2.155463l1.726214,0l0,-0.916072c0,-0.889129 -0.026972,-0.916072 -1.375577,-1.023845c-2.292629,-0.215546 -2.265656,-0.134716 -2.346573,-7.355518l-0.080916,-6.331673l1.888047,0l1.915019,0l0,-0.943015l0,-0.943015l-1.888047,0l-1.888047,0l0,-2.559612l0,-2.559612l-1.078884,0l-1.078884,0l0,2.559612z"/>
<path fill="#BBBBBB" d="m162.10181,46.913007c-1.1598,0.296376 -2.022908,0.781355 -3.020875,1.72437l-0.890079,0.835242l0,-1.266335l0,-1.266335l-1.078884,0l-1.078884,0l0,8.756569l0,8.756569l1.078884,0l1.078884,0l0,-6.14307c0,-5.846694 0.026972,-6.196956 0.620358,-7.328574c0.728247,-1.454938 1.968963,-2.155463 3.830038,-2.155463c1.888047,0 3.101792,0.673582 3.85701,2.155463c0.566414,1.131618 0.593386,1.508824 0.593386,7.328574l0,6.14307l1.051912,0l1.051912,0l0.107888,-6.14307c0.080916,-5.442544 0.161833,-6.2239 0.620358,-7.166915c0.782191,-1.562711 1.726214,-2.12852 3.72215,-2.263236c1.402549,-0.08083 1.807131,0 2.616294,0.538866c1.780159,1.185505 1.888047,1.751314 1.888047,8.756569l0,6.277786l1.240717,0l1.240717,0l-0.134861,-6.412503c-0.134861,-7.220801 -0.269721,-7.921327 -1.941991,-9.645697c-2.211712,-2.290179 -5.718085,-2.290179 -8.118602,0.026943c-0.620358,0.592752 -1.186772,1.266335 -1.267689,1.481881c-0.134861,0.323319 -0.242749,0.323319 -0.51247,-0.134716c-1.618326,-2.505726 -3.883983,-3.475684 -6.55422,-2.855989z"/>
<path fill="#BBBBBB" d="m191.177735,46.93995c-1.699242,0.350263 -3.85701,1.562711 -3.85701,2.155463c0,0.107773 0.296693,0.404149 0.674303,0.646639c0.620358,0.404149 0.701275,0.377206 1.645298,-0.16166c1.456493,-0.862185 5.016811,-0.996902 6.230555,-0.24249c1.213745,0.754412 1.699242,1.643541 1.888047,3.367911l0.161833,1.508824l-3.506373,0c-5.070755,0 -7.012746,0.754412 -7.875853,3.044592c-0.431554,1.104675 -0.350637,3.583457 0.080916,4.472586c0.64733,1.239391 2.157768,2.371009 3.668206,2.721272c1.807131,0.431093 4.801034,0.16166 6.203583,-0.538866c1.294661,-0.673582 1.348605,-0.673582 1.348605,0c0,0.458036 0.188805,0.538866 1.078884,0.538866l1.078884,0l0,-6.439446c0,-5.73892 -0.053944,-6.574162 -0.51247,-7.624951c-0.64733,-1.508824 -1.456493,-2.317123 -2.886015,-2.936818c-1.348605,-0.619696 -3.85701,-0.835242 -5.421392,-0.511922zm6.662109,11.774217c0,1.320221 -0.107888,2.505726 -0.215777,2.694329c-0.431554,0.700525 -2.211712,1.158561 -4.396452,1.158561c-3.425457,0 -4.828006,-0.916072 -4.828006,-3.179308c0,-2.559612 0.809163,-2.990705 5.745057,-3.017648l3.695178,0l0,2.344066z"/>
<path fill="#BBBBBB" d="m212.108085,47.074666c-0.674303,0.215546 -1.807131,0.889129 -2.481433,1.508824l-1.267689,1.104675l0,-1.374108l0,-1.374108l-1.078884,0l-1.078884,0l0,8.756569l0,8.756569l1.051912,0l1.078884,0l0.080916,-6.439446c0.080916,-7.086085 0.107888,-7.113028 1.915019,-8.487136c1.02494,-0.754412 3.749122,-0.916072 5.178643,-0.296376l1.078884,0.431093l0.593386,-0.754412c0.782191,-0.969958 0.782191,-1.050788 -0.215777,-1.589654c-1.186772,-0.592752 -3.371513,-0.727469 -4.854978,-0.24249z"/>
<path fill="#BBBBBB" d="m257.771852,47.155496c-3.398485,1.212448 -4.639201,3.502627 -4.639201,8.487136c0,3.448741 0.215777,4.418699 1.321633,6.170013c1.1598,1.832144 3.236652,2.775159 6.095695,2.775159c2.346573,-0.026943 4.423425,-0.700525 5.502309,-1.859087l0.566414,-0.592752l-0.620358,-0.592752l-0.593386,-0.565809l-1.591354,0.781355c-1.240717,0.619696 -1.941991,0.808299 -3.20968,0.808299c-3.101792,0 -5.016811,-1.643541 -5.448364,-4.661189l-0.188805,-1.266335l6.257527,0l6.257527,0l-0.161833,-2.101576c-0.350637,-3.825947 -1.429521,-5.927523 -3.72215,-7.086085c-1.53741,-0.781355 -4.072787,-0.916072 -5.825974,-0.296376zm5.205615,2.344066c1.321633,0.754412 1.968963,1.939917 2.211712,3.906777l0.161833,1.347164l-5.178643,0l-5.178643,0l0.161833,-1.293278c0.431554,-2.936818 2.346573,-4.634246 5.232588,-4.634246c1.078884,0 1.780159,0.188603 2.589322,0.673582z"/>
<path fill="#BBBBBB" d="m278.729174,47.074666c-0.674303,0.215546 -1.726214,0.862185 -2.346573,1.427994l-1.132828,1.050788l0,-1.320221l0,-1.293278l-1.213745,0l-1.213745,0l0,8.756569l0,8.756569l1.213745,0l1.213745,0l0,-6.439446c0,-6.2239 0.026972,-6.439446 0.620358,-7.328574c0.323665,-0.511922 1.02494,-1.131618 1.53741,-1.374108c1.294661,-0.673582 3.910955,-0.646639 5.016811,0.026943l0.863107,0.511922l0.566414,-0.754412c0.755219,-1.050788 0.728247,-1.266335 -0.269721,-1.778257c-1.186772,-0.592752 -3.371513,-0.727469 -4.854978,-0.24249z"/>
</g>
</svg>
<h3>Authorize openHAB binding for BTicino Smarther Chronothermostats</h3>
<p>On this page you can authorize your openHAB Smarther Bridge configured with the Subscription Key, Client Id and Client Secret of the Smarther Application on your developer account.</p>
<p>You have to login to your BTicino/Legrand developer account, in order to authorize this binding to access your account and connected devices.</p>
<p>To use this binding the following requirements apply:</p>
<ul>
<li>A BTicino/Legrand developer account.
<li>Subscribe to Smarther - v2.0 product, to obtain the Subscription Key
<li>Register an Application on your developer account.
</ul>
<p>
The redirect URI to use when registering an Applicaton for this openHAB installation is
<a href="${redirectUri}">${redirectUri}</a>
</p>
${error} ${authorizedBridge} ${applications}
</div>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB