Skip to content

Commit

Permalink
[siemenshvac] Initial contribution (openhab#14263)
Browse files Browse the repository at this point in the history
Signed-off-by: Laurent ARNAL <laurent@clae.net>
  • Loading branch information
lo92fr committed Jun 29, 2024
1 parent 0786bfd commit 80bd5bf
Show file tree
Hide file tree
Showing 58 changed files with 7,087 additions and 0 deletions.
5 changes: 5 additions & 0 deletions bom/openhab-addons/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1626,6 +1626,11 @@
<artifactId>org.openhab.binding.shelly</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.openhab.addons.bundles</groupId>
<artifactId>org.openhab.binding.siemenshvac</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.openhab.addons.bundles</groupId>
<artifactId>org.openhab.binding.siemensrds</artifactId>
Expand Down
20 changes: 20 additions & 0 deletions bundles/org.openhab.binding.siemenshvac/NOTICE
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
This content is produced and maintained by the openHAB project.

* Project home: https://www.openhab.org

== Declared Project Licenses

This program and the accompanying materials are made available under the terms
of the Eclipse Public License 2.0 which is available at
https://www.eclipse.org/legal/epl-2.0/.

== Source Code

https://github.com/openhab/openhab-addons

== Third-party Content

RuntimeTypeAdapterFactory
* License: Apache License, Version 2.0
* Project: https://github.com/google/gson
* Source: https://github.com/google/gson/blob/main/extras/src/main/java/com/google/gson/typeadapters/RuntimeTypeAdapterFactory.java
98 changes: 98 additions & 0 deletions bundles/org.openhab.binding.siemenshvac/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
# SiemensHVAC Binding

This binding provides support for the Siemens HVAC controller ecosystem, and the Web Gateway interface OZW672.
A typical system is composed of:

![Diagram](doc/Diagram.png)

There's a lot of different HVAC controllers depending on model in lot of different PAC constructors.
Siemens RVS41.813/327 inside a Atlantic Hybrid Duo was used for the development, and is fully supported and tested.

Siemens have a complete set of controller references under the name "Siemens Albatros".
Here is a picture of such device.
You can also find this device in other types of heating systems: boiler or solar based.

![](doc/Albatros.jpg)

You will find some information about the OZW672.01 gateway on the Siemens web site:

[OZW 672 Page](https://hit.sbt.siemens.com/RWD/app.aspx?rc=FR&lang=fr&module=Catalog&action=ShowProduct&key=BPZ:OZW672.01)

With this binding, you will be able to:

- Consult the different parameters of your system, like temperature, current heating mode, water temperature, and many more.
- Modify the functioning mode of your device: temperature set point, heating mode, and others.

The OZW672 gateway supports many different languages (about 16).
The binding should work with all language choices, but is currently tested more thoroughly with French and English as configured language.
If you use another language, and find some issues, you can report them on the openHAB forum.

## Discovery

Discovery of Gateway can be done using UPnP.
Just switch off/on your gateway to make it annonce itself on the network.
The gateway should appear in the Inbox a few minutes after.
Be aware what you will have to modify the password in Gateway parameters just after the discovery to make it work properly.
Be also aware that first initialization is a little long because the binding needs to read all the metadata from the device.

Currently test was done with the OZW672.x series.
No test was conducted using the OZW772.x series, the code will currently not handle initialization of an OZW772 gateway.
You can request support in the community forum, if you have the gateway model and want it to be supported.

Discovery of HVAC device inside your PAC (controller of type RVS...) have to be done through the Scan button inside the binding.
Go to the Thing page, click on the "+" button, select the SiemensHVAC binding, and then click Scan.
Your device should appear on the page after a few seconds.
Only test in real conditions with RVS41.813/327 have been done, but it should work with all other types as the API interface is standard.

## Bridge Configuration

Parameter | Required | Default | Description
----------------|----------------|----------------|------------------
baseUrl | yes | | The address of the OZW672 devices
userName | yes | Administrator | The user name to log into the OZW672
userPass | yes | | The user password to log into the OZW672

## Channels

Channels are auto-discovered, you will find them on the RVS things.
They are organized the same way as the LCD screen of your PAC device, by top level menu functionality, and sub-functionalities.
Each channel is strongly typed, so for example, for heating mode, openHAB will provide you with a list of choices supported by the device.

Channel | Description | Type | Unit | Security Access Level | ReadOnly | Advanced
--------------------------------|---------------------------------------------------------------------------------------------------|-------------------------------|----------|-------------------------|-----------|----------
1724#1725-optgmode-hc1 | Set Operating mode heat circuit 1 (`Automatic`, `Comfort`, `Reduced`, `Protection`) | operating-mode-hc | | | R/W | true
1724#1726-roomtemp-comfsetp-hc1 | Romm temperature comfort setpoint HC1 | room-temp-comfort-setpoint-hc | | | R/W | true

## Full Example

Things file `.things`

```java
Bridge siemenshvac:ozw:ozw672_FF00F445 "Ozw672" [ baseUrl="https://192.168.254.42/", userName="Administrator", userPassword="mypass" ]
{
Thing rvs41-813-327 00770000756A "RVS41.813/327" [ ]
{
Type room-temp-comfort-setpoint-hc : testChannelTemperature "TestChannelTemperature" [ id="1726" ]
Type operating-mode-hc : testChannelCC1 "TestChannelCC1" [ id="1725" ]
}
}
```


Items file `.items`

```java
Contact Boiler_State_Pump_HWSb "HWS Pump State [%s]" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:2237#2259-ppechargeecs" }
Number Boiler_State_HWS "HWS State [%s]" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:2032#2035-etat-ecs" }
Number:Temperature Flow_Temperature_Real "Flow Temparature Real [%.1f °C]" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:2237#2248-valreelletempdep-cc1" }
Number:Temperature Flow_Temperature_Setpoint "Flow Temperature Setpoint [%.1f °C]" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:2237#2249-constdepresultcc1" }
Number Hour_fct_HWS "HWS Hour function" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:2237#2263-heuresfoncpompeecs" }
Number Nb_Start_HWS "HWS Number of start [%.1f]" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:2237#2266-comptdemarresel-ecs" }
Number:Temperature Thermostat_Temperature "Thermostat tempeature [%.1f °C]" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:2237#2246-tambact-cc1" }
Number:Temperature Thermostat_Setpoint "Thermostat setpoint [%.1f °C]" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:1724#1726-consconfort-ta-cc1" }
Number Heat_Mode "Heat mode [%s]" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:1724#1725-regime-cc1" }

Number:Temperature Thermostat_Setpoint_bis "Temperature [%.1f °C]" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:testChannelTemperature " }
Number Heat_Mode_bis "Heat mode [%s]" { channel = "siemenshvac:rvs41-813-327:ozw672_FF00F445:00770000756A:testChannelCC1" }

```
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
38 changes: 38 additions & 0 deletions bundles/org.openhab.binding.siemenshvac/pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<parent>
<groupId>org.openhab.addons.bundles</groupId>
<artifactId>org.openhab.addons.reactor.bundles</artifactId>
<version>4.2.0-SNAPSHOT</version>
</parent>

<artifactId>org.openhab.binding.siemenshvac</artifactId>

<name>openHAB Add-ons :: Bundles :: SiemensHvac Binding</name>

<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>add-source</goal>
</goals>
<phase>generate-sources</phase>
<configuration>
<sources>
<source>src/3rdparty/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Loading

0 comments on commit 80bd5bf

Please sign in to comment.