Viessmann Component

I use 2 automations, 1 for night & 1 for day.
Also, there’s a cleaner way to define the action part of the automation :

 - alias: Update_ViCare_night
    id: f55447777455126
    description: Update Vicare Entities every 30 minutes
    initial_state: on
    trigger:
      - platform: time_pattern
        minutes: /30
    condition:
      alias: "Time 0000~0630"
      condition: time
      after: "00:00:10"
      before: "06:30:00"
    action:
      - service: homeassistant.update_entity
        data:
          entity_id: "{{ integration_entities('vicare') }}"
    mode: single
  #
  - alias: Update_ViCare_day
    id: b5544e7774d512
    description: Update Vicare Entities every 3 minutes
    initial_state: on
    trigger:
      - platform: time_pattern
        minutes: /3
    condition:
      alias: "Time 0631~2357"
      condition: time
      after: "06:31:00"
      before: "23:57:00"
    action:
      - service: homeassistant.update_entity
        data:
          entity_id: "{{ integration_entities('vicare') }}"
    mode: single
2 Likes

Agree, the second approach is more concise, I used individual entities to restrict the polling to the ones I am interested in - part of the attempt to keep the database size in check, but not sure how much of a difference it really makes

here’s the difference it makes in the Viessmann api database :astonished:

1 Like

Great idea! By saving some calls at night I can increase frequency during the day. Have to try it out and have it more often than the standard 1 minute with which I’m not hitting the limit at all.

I have one question though: Do you really need to specify all of the vicare entities? Isn’t it enough to specify just one e.g. the climate one and it will update anyway all of them?

just remember the dual rate limit :

Limit 1: 120 calls for a time window of 10 minutes
Limit 2: 1450 calls for a time window of 24 hours
And take into account the calls added by opening the app on your mobile phone.

Do you really need to specify all of the vicare entities?

I honestly don’t know.

2 Likes

So everything already works in vitoguide. I have two questions.

  1. If one query is counted, does it matter whether all entities are queried at once, or one query per entity is counted, so that 15 queries are deleted in one call?
  2. What does the option AUTO in heating mean? I don’t have that option in the Vicare settings. After turning it on, I see that it is to start continuous daily operation.
    Thanks for the answers.

In my case Auto is DHW & Heating mode or DHW only mode and it means that the heating is controlled by the Viessmann controller. The other modes are off, forcedReduced and forcedNormal. Those two forced modes are overriding any scheduling of Vitotrol controller.

For those who are disappointed with the reduction of the precision and rate frequency (and their tiers), consider adding a comment on their form e.g. here.

The vicare mobile app requests do not count towards the 1450 limit.

2 Likes

Thanks for sharing your automation! But how to disable the automatic synchronization of the vicare integration?

Under Settings - integration - vicare - the menu behind the three dots, there system options - deactivate slider

image

1 Like

@verandy & @Tommmii thx!

1 Like

Hi, I have the modbus data-points. I don’t know how to attach them. I just wanted to know, having a configuration similar to yours at home, if you think by integrating my vitovent with vitocal I will be able to manage the speed of my VMC via HA with the official integration. Regards.

I don’t think so. According to the docs the Viessmann integration only supports heating and water heater devices. Just check the services listed in the documentation. Ventilation isn’t mentioned anywhere.

Thanks, I got confused looking at this link: Gelöst: Benötigt wird dazu die Anschlussleitung mit der Be... - Viessmann Community
From the link it looks like the Vicare app is reporting the data but I’m not sure.

Hello,
really nice.
I will do the same.
Can you share how did you manage to save automatically in the excell ?
thanks,

Hi guys,
has one of you tried to anticipate the moment to start the heating regarding outside temperature or the current temperature ?
and which settings did you put in your vitotronic?
mine :
90: 12->2h average outside temp
B0: 3 ->current temp taken into account
B2: 64->fully driven by current temp
B5: 5-> pump stop at ordered temp +1 and start at ordered temp
A5: 0->increase of supply temp when changing from low to high temp.
which are settings recommended to use with Tado
Thanks

Hello mistertix,
actually, it’s not Excel but Google Sheets… Anyway, I use the following service in an automation (triggered by whatever event is relevant for you):

service: google_sheets.append_sheet
data:
  config_entry: [your_token]
  worksheet: Rohdaten
  data:
    Datum: "{{ now().strftime(\"%d.%m.%Y\") }}"
    Uhrzeit: "{{ now().strftime(\"%H:%M:%S\") }}"
    Load intensity: "{{ states.sensor.vicare_load_intensity.state }}"
    Zaehlerstand: "{{ states.input_number.input_number_gas_meter.state }}"

This relies on the Google Sheets integration.

Hth, jan

1 Like

Thanks @meyerjh2001 ,

Finally, I did a bit different than you.
I go directly from modulation to power of the heater.
and after a Riemann integrale for kWh.

I did that because normally we have to deal with normal square meter “M³(N)” and this value change over time (atmospheric pressure, temperature,…). I can have this value from my Network company but after and not in an API. so my result is only an idea and not a correct value. but I can compare the consumption at different moment.

with that I had an issue, if the modulation didn’t change for some time, the integrale didn’t recalculate and so some consumption were affected to wrong hour:


to solve that, I changed the power sensor template to add a trigger :

  - trigger:
    - platform: time_pattern
      minutes: "/1"
    sensor:
    - name: "Puissance chaudière"
      unit_of_measurement: 'kW'
      device_class: "power"
      state_class: measurement
      state: "{{ (states('sensor.vicare_burner_modulation') | float) * 19 / 100 | round(3) }}"
      attributes:
        timestamp: "{{ now() }}"

Maybe should be better to do that only once per hour and not every minutes. don’t know.