Siemens Webserver ozw672

My heatpump is a Fujitsu and uses the Siemens OEM controler. I also have an Siemens Websterver attached to it, so it can be controled in the following ways:

  1. directly (webinterface on the server exposed to the Internet),

  2. through a mobile app (for iOS & Android - really old looking) or

  3. via the https://www.climatixic.com/ website

or even as a KNX device

The documentation states, that the webserver also responds to web API calls. And someone at https://forum.fhem.de/index.php?topic=32866.0 already made a script and even a module for that platform. The way I understand there are bunch of JSON calls involved.

My development skills are rather limited, but I would like to connect the heatpump to my HA setup.

Iā€™m willing to provide my server as a test enviroment. Is there someone willing to help me out or at least point me into the right direction?

Hi, i have the same request.
Webserver OZW672 with climaticix.com for Brƶtje BGB 38E
Do you have some solution with Home Assistant?
Thank you

Hi,
it seems that someone already tried to use OZW672 API in https://github.com/NextDom/plugin-ozw672/blob/e4d1fdfeb0b76372b3a95f9da593bac60af342cb/doc/fr_FR/api.asciidoc. Its in french, but the examples seems usable.
I am planning to incorporate it into Home Assistant somehow, but no eta.

For example, my Baxi boiler with LMS15 regulator has Boiler temp with datapoint id 1323:
curl -sk ā€˜https://10.0.0.193/api/menutree/datapoint_desc.json?SessionId=&Id=1323ā€™|jq .Description.Value
ā€œ30.765625ā€

I saw this solution too, but i am only "end user " and this is too hard for me. From Siemens i have full description for API Interface (and how connect it for web ā€œwww.siemens-syncoic.comā€ or ā€œclimatixIC.comā€ via API), For me, it would be enough to use only the existing cloud from Siemens, but control and see it in HA. This API Interface in PDF has (85 sites). If are there some better Programmers via Addons Home Assistent, Iā€™m very happy to provide this PDF Api Document some Developer. :blush:

@venca.kratky
I dont have time for proper integration (or maybe much later), but it shouldnt take much time to prepare some widgets for reading temperature and setting some basic stuff via the REST API. Depends on what exactly you expect to measure/control over Home Assistant. Just to set temp, control on/off for heating is ok, setting the proper equitherm curve over HA would be bit harder. Brƶtje BGB 38E seems to be using same Siemens regulator LMS15 as my Baxi boiler, so the datapoints should be Ā± same, probably depending on the accessory (DWH, sensors, ā€¦). I dont think I need 85 PDF for that, when I can just list all items via the API and just pick what I need :slight_smile:

Hi @venca.kratky. I would like to give it a shot with using the REST Sensor component. Would you be so kind and share the pdf with me? Also what is the version of OWZ firmware that your document refers to?

Hi Tilen, thank you for reply. I send PDF per Message. About OZW, i have Firmware OZW672.1 on Build 07.00.21.52. In this moment, i am connecting to Cloud on https://www.siemens-syncoic.com, but in HA it would be better :slight_smile:

Hi Venco !

here is my solution using REST platform :

- platform: rest
  resource: http://192.168.x.x/api/auth/login.json?user=xxx&pwd=xxx
  name: sid_token
  value_template: '{{ value_json.SessionId }}'
  scan_interval: 3600
    
- platform: rest
  resource_template: http://192.168.x.x/api/menutree/read_datapoint.json?SessionId={{ states.sensor.sid_token.state }}&Id=8833
  name: HotJet venkovnĆ­ teplota
  value_template: '{{ value_json.Data.Value | float }}'
  unit_of_measurement: "Ā°C"
  device_class: temperature

Hoping it will help.

P.S.: May I ask you to send me OZW API Description, please ?

Hi @wewerk,

thanks for this. Exactly what I needed to continue. You have the pdf in a personal message.

Best

Thank you, Hoping it will help.

I finally got around implementing this. Worked as expected. My code:

  - platform: rest
    resource: http://192.168.1.3/api/auth/login.json?user=XXXX&pwd=XXXXX
    name: sid_token
    value_template: '{{ value_json.SessionId }}'
    scan_interval: 86400
      
  - platform: rest
    name: Fujitsu Outside Temperature
    resource_template: http://192.168.1.3/api/menutree/read_datapoint.json?SessionId={{ states.sensor.sid_token.state }}&Id=1065
    value_template: '{{ value_json.Data.Value | float }}'
    unit_of_measurement: "Ā°C"
    device_class: temperature

  - platform: rest
    name: Fujitsu HC1 Status
    resource_template: http://192.168.1.3/api/menutree/read_datapoint.json?SessionId={{ states.sensor.sid_token.state }}&Id=448
    value_template: '{{ value_json.Data.Value }}'

2 Likes

Hi all, after few Months i had time for little playing with OZW672 webserver and my Brƶtje.
I discovered an amazing thing ā€œwebapiā€ on webserver (only in local network)


You need login to webserver OZW and change ā€œsection=webapiā€. In webapi interface you can read all Values from ā€œmenutreeā€ and other things.
So my code for OZW672 with my Brƶtje BGB 38E looks like this: (configuration.yaml)

- platform: rest
    resource: http://192.168.X.X/api/auth/login.json?user=XXXXXX&pwd=XXXXXX
    name: sid_token
    value_template: '{{ value_json.SessionId }}'
    scan_interval: 86400
    
  - platform: rest
    name: kotel_komfortni_zadana_teplota
    resource_template: http://192.168.X.X/api/menutree/read_datapoint.json?SessionId={{ states.sensor.sid_token.state }}&Id=2011
    value_template: '{{ value_json.Data.Value | float }}'
    unit_of_measurement: "Ā°C"
    device_class: temperature
  - platform: rest
    name: kotel_utlumova_zadana_teplota
    resource_template: http://192.168.X.X/api/menutree/read_datapoint.json?SessionId={{ states.sensor.sid_token.state }}&Id=2012
    value_template: '{{ value_json.Data.Value | float }}'
    unit_of_measurement: "Ā°C"
    device_class: temperature
  - platform: rest
    name: kotel_topna_krivka
    resource_template: http://192.168.X.X/api/menutree/read_datapoint.json?SessionId={{ states.sensor.sid_token.state }}&Id=2014
    value_template: '{{ value_json.Data.Value | float }}'
    device_class: temperature
  - platform: rest
    name: kotel_modulace_horaku
    resource_template: http://192.168.X.X/api/menutree/read_datapoint.json?SessionId={{ states.sensor.sid_token.state }}&Id=2402
    value_template: '{{ value_json.Data.Value | float }}'
    unit_of_measurement: "%"
    device_class: temperature
  - platform: rest
    name: kotel_stav_horaku
    resource_template: http://192.168.X.X/api/menutree/read_datapoint.json?SessionId={{ states.sensor.sid_token.state }}&Id=2386
    value_template: '{{ value_json.Data.Value }}'
    device_class: temperature
  - platform: rest
    name: kotel_teplota_kotle
    resource_template: http://192.168.X.X/api/menutree/read_datapoint.json?SessionId={{ states.sensor.sid_token.state }}&Id=2535
    value_template: '{{ value_json.Data.Value | float }}'
    unit_of_measurement: "Ā°C"
    device_class: temperature
  - platform: rest
    name: kotel_druh_provozu
    resource_template: http://192.168.X.X/api/menutree/read_datapoint.json?SessionId={{ states.sensor.sid_token.state }}&Id=2010
    value_template: '{{ value_json.Data.Value }}'
  - platform: rest
    name: kotel_stav_kotle
    resource_template: http://192.168.X.X/api/menutree/read_datapoint.json?SessionId={{ states.sensor.sid_token.state }}&Id=2550
    value_template: '{{ value_json.Data.Value }}'
  - platform: rest
    name: kotel_teplota_zpatecky
    resource_template: http://192.168.X.X/api/menutree/read_datapoint.json?SessionId={{ states.sensor.sid_token.state }}&Id=2398
    value_template: '{{ value_json.Data.Value | float }}'
    unit_of_measurement: "Ā°C"
    device_class: temperature
  - platform: rest
    name: kotel_teplota_prostoru
    resource_template: http://192.168.X.X/api/menutree/read_datapoint.json?SessionId={{ states.sensor.sid_token.state }}&Id=2533
    value_template: '{{ value_json.Data.Value | float }}'
    unit_of_measurement: "Ā°C"
    device_class: temperature
  - platform: rest
    name: kotel_venkovni_teplota
    resource_template: http://192.168.X.X/api/menutree/read_datapoint.json?SessionId={{ states.sensor.sid_token.state }}&Id=2536
    value_template: '{{ value_json.Data.Value | float }}'
    unit_of_measurement: "Ā°C"
    device_class: temperature


First step (only read Value) is finish, but i would like to next step, change Values per Api (URL).
If i test send some Values via webapi, its working - URL and ā€œwrite_datapoint.jsonā€
My idea is have some ā€œGeneric Thermostatā€ in ā€œlovelaceā€ and value send per button (this url must have format like this):
./api/menutree/write_datapoint.json?SessionId=XXXXXXXXXXXXX&Id=2011&Type=Numeric&Value=18 // Value from Thermostat in lovelace

Now I need your better experience how to send values via this URL API links and use ā€œwrite_datapoint.jsonā€ in OZW672 :slight_smile:
Thank you all and have a nice day

1 Like

There i send my solution for Remote control (send values) to OZW672 (in my case Brƶtje with LMS14.002A100):
First i created in config -> helpers -> new input_number and input_select entities with Values: Comfort, Automatic, Reduced


add rest_command to configuration.yaml:

rest_command:
  odeslatdokotleteplotu:
    url: 'http://192.168.X.X/api/menutree/write_datapoint.json?SessionId={{ states.sensor.sid_token.state }}&Id=2011&Type=Numeric&Value={{ states.input_number.nastaveni_teploty_kotle.state }}'
  odeslatdokotleutlumovouteplotu:
    url: 'http://192.168.X.X/api/menutree/write_datapoint.json?SessionId={{ states.sensor.sid_token.state }}&Id=2012&Type=Numeric&Value={{ states.input_number.utlumova_teplota_kotle.state }}'

With send Value ā€œType of Operationā€ is little more complicated, beceause you need ā€œtranslateā€ text string to ā€œenumeration valueā€

  odeslatdokotle_druhprovozu:
    url: >
         {% if is_state("input_select.kotel_druh_provozu", "ƚtlum") %}
           http://192.168.X.X/api/menutree/write_datapoint.json?SessionId={{ states.sensor.sid_token.state }}&Id=2010&Type=Enumeration&Value=2
         {%-elif is_state("input_select.kotel_druh_provozu", "AutomatickĆ½") %}  
           http://192.168.X.X/api/menutree/write_datapoint.json?SessionId={{ states.sensor.sid_token.state }}&Id=2010&Type=Enumeration&Value=1
         {%-elif is_state("input_select.kotel_druh_provozu", "KomfortnĆ­") %} 
           http://192.168.X.X/api/menutree/write_datapoint.json?SessionId={{ states.sensor.sid_token.state }}&Id=2010&Type=Enumeration&Value=3
         {% else %}
              none
         {% endif %}

Now you need start this rest_command services in automations.yaml:

- id: '1589750127952'
  alias: odeslat_teplotu_do_kotle
  description: Odeslat teplotu do kotle
  trigger:
  - entity_id: input_number.nastaveni_teploty_kotle
    platform: state
  condition: []
  action:
  - data: {}
    service: rest_command.odeslatdokotleteplotu
- id: odeslat_druhprovozu_dokotle
  alias: Odeslat druh provozu do kotle
  trigger:
  - entity_id: input_select.kotel_druh_provozu
    platform: state
  action:
  - data: {}
    service: rest_command.odeslatdokotle_druhprovozu
- id: odeslat_utlumovouteplotu_dokotle
  alias: Odeslat Ćŗtlumovou teplotu do kotle
  trigger:
  - entity_id: input_number.utlumova_teplota_kotle
    platform: state
  action:
  - data: {}
    service: rest_command.odeslatdokotleutlumovouteplotu


If you like this Solution, you can donate me on PayPal (joke) :slight_smile: :laughing:

1 Like

Great job, Venca !

1 Like

I own a CTA heat pump with a siemens RVS61.843. Iā€™ve just installed the OZW672 server and updated it to last version (10.0). Iā€™m able to connect it with HA and get the token address.
I can access to the webapi page (on OWZ672 webserver) that venca.kratky was referering to in a previous post.

But is there a way to find all the id avalaible from device connected to the OZW672 (RVS61.843 in my case) ?

It is possible (from the webapi page on the server) to enter a random id and write the corresponding value in an excel file for exemple, but it will take a hell as this process has to be done one by one idā€¦

Thank you

Hi, after firmware update to Version 10 you have to enable http access in OZW672- Setup- Communications - Services -
And there Web Access via HTTP
After upgrading is this again disabled

Thank you for your reply.

I have already activated http access and Iā€™m able to access to the webapi page.

But my question is just to know where do you find the Id resource in the webserver OZW672 ?
For example, where do you find that the Id=2536 is corresponding to kotel_venkovni_teplota

Thank you !

There i try images manual ā€¦




Wow Itā€™s clear and everything is working nicely !

Big thank you to have taken the time to answer me !!

Very big thanks to you.
I begin in HA and thanks to you I made my first automation, my first rest command, I discovered powerful Siemens WebApi and now my HeatPump Atlantic work in HA.

2 Likes