added migrated 2.x add-ons
Signed-off-by: Kai Kreuzer <kai@openhab.org>
This commit is contained in:
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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 > 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 > My Applications</a> menu
|
||||
<ul>
|
||||
<li>In "First Reply Url" field insert the public callback URL "https://<your openHAB host>:<your openHAB port>/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://<your openHAB host>:<your openHAB port>/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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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 |
Reference in New Issue
Block a user