The sensor.vicare_heatcurve_target_temperature seems to not cope well with None-values, which occur when there was no update from the servers yet.
The template can be written differently. Once I find some time I’ll upload some better yaml examples for monitoring with individual sensors.
So far so good, on the custom component, 24hours with scan_interval: 60
and no ban from VSMN.
Same here. Works good so far…
I created a PR towards the next home assistant release. So expect this to be integrated soon.
I also documented the scan_interval feature explaining a little bit Viessman’s rate limits and the consequences here:
Good work , thank you !!
Just letting you know ; something went wrong with the formatting of the Configuration chapter on the Github docs page.
I cant get the sensors to show up i used the config:
sensor:
platform: template
sensors:
vicare_outside_temperature:
friendly_name: "Vanjska Temperatura"
unit_of_measurement: '°C'
value_template: "{{ state_attr('climate.vicare_heating', 'outside_temperature') }}"
vicare_inside_temperature:
friendly_name: "unutrasnja Temperatura"
unit_of_measurement: '°C'
value_template: "{{ state_attr('climate.vicare_heating', 'temperature') }}"
type is:
heating_type: heatpump
No logs, no errors just gets stuck on no data. Any idea what i could have done wrong?
Temparature display works without problems and heating pump also… so no idea what i am missing.
I can just write you for vicare. They kicked me out (maybe you too ?)
4 weeks ago they wrote me an email that they will check the API IFC because to many calls -_- 1 week ago they said they gonna turn it down.
we all got that email, no one got permanently banned. 24 hour ban is the max they handed out.
@Sangoku , do you have the vicare:
integration configured ?
ofc.
How water and hearing are working.
only part that remains broken is the template.
Update. Just checked error logs and we have some winners. here is whole log.
Here is in text form. makes more sense
2020-03-29 17:05:44 WARNING (SyncWorker_4) [ViCare] Token expired, renewing
2020-03-29 17:05:44 WARNING (SyncWorker_0) [ViCare] Token expired, renewing
2020-03-29 18:05:47 WARNING (SyncWorker_2) [ViCare] Token expired, renewing
2020-03-29 18:05:47 WARNING (SyncWorker_4) [ViCare] Token expired, renewing
2020-03-29 19:05:51 WARNING (SyncWorker_2) [ViCare] Token expired, renewing
2020-03-29 19:05:51 WARNING (SyncWorker_3) [ViCare] Token expired, renewing
2020-03-29 20:05:54 WARNING (SyncWorker_0) [ViCare] Token expired, renewing
2020-03-29 20:05:54 WARNING (SyncWorker_1) [ViCare] Token expired, renewing
2020-03-29 21:05:57 WARNING (SyncWorker_3) [ViCare] Token expired, renewing
2020-03-29 22:06:01 WARNING (SyncWorker_4) [ViCare] Token expired, renewing
2020-03-29 22:06:01 WARNING (SyncWorker_1) [ViCare] Token expired, renewing
2020-03-29 23:06:05 WARNING (SyncWorker_0) [ViCare] Token expired, renewing
2020-03-29 23:06:05 WARNING (SyncWorker_3) [ViCare] Token expired, renewing
2020-03-30 00:06:09 WARNING (SyncWorker_2) [ViCare] Token expired, renewing
2020-03-30 00:06:09 WARNING (SyncWorker_0) [ViCare] Token expired, renewing
2020-03-30 01:06:13 WARNING (SyncWorker_1) [ViCare] Token expired, renewing
2020-03-30 01:06:13 WARNING (SyncWorker_0) [ViCare] Token expired, renewing
2020-03-30 02:06:15 WARNING (SyncWorker_1) [ViCare] Token expired, renewing
2020-03-30 03:06:19 WARNING (SyncWorker_0) [ViCare] Token expired, renewing
2020-03-30 04:06:23 WARNING (SyncWorker_1) [ViCare] Token expired, renewing
2020-03-30 05:06:27 WARNING (SyncWorker_3) [ViCare] Token expired, renewing
2020-03-30 05:06:27 WARNING (SyncWorker_0) [ViCare] Token expired, renewing
2020-03-30 06:06:31 WARNING (SyncWorker_2) [ViCare] Token expired, renewing
2020-03-30 06:06:31 WARNING (SyncWorker_3) [ViCare] Token expired, renewing
2020-03-30 07:06:35 WARNING (SyncWorker_3) [ViCare] Token expired, renewing
2020-03-30 07:06:35 WARNING (SyncWorker_2) [ViCare] Token expired, renewing
2020-03-30 08:06:39 WARNING (SyncWorker_1) [ViCare] Token expired, renewing
2020-03-30 08:06:39 WARNING (SyncWorker_0) [ViCare] Token expired, renewing
2020-03-30 09:06:42 WARNING (SyncWorker_4) [ViCare] Token expired, renewing
2020-03-30 09:06:42 WARNING (SyncWorker_3) [ViCare] Token expired, renewing
2020-03-30 10:06:45 WARNING (SyncWorker_0) [ViCare] Token expired, renewing
2020-03-30 10:06:45 WARNING (SyncWorker_2) [ViCare] Token expired, renewing
2020-03-30 11:06:48 WARNING (SyncWorker_2) [ViCare] Token expired, renewing
2020-03-30 11:06:48 WARNING (SyncWorker_0) [ViCare] Token expired, renewing
2020-03-30 12:06:51 WARNING (SyncWorker_1) [ViCare] Token expired, renewing
2020-03-30 13:06:55 WARNING (SyncWorker_3) [ViCare] Token expired, renewing
2020-03-30 13:06:55 WARNING (SyncWorker_1) [ViCare] Token expired, renewing
2020-03-30 13:21:56 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 284, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 327, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/water_heater/__init__.py", line 179, in state_attributes
self.precision,
File "/usr/src/homeassistant/homeassistant/helpers/temperature.py", line 23, in display_temp
raise TypeError(f"Temperature is not a number: {temperature}")
TypeError: Temperature is not a number: error
2020-03-30 13:36:57 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 284, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 327, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/water_heater/__init__.py", line 179, in state_attributes
self.precision,
File "/usr/src/homeassistant/homeassistant/helpers/temperature.py", line 23, in display_temp
raise TypeError(f"Temperature is not a number: {temperature}")
TypeError: Temperature is not a number: error
2020-03-30 13:51:58 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 284, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 327, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/water_heater/__init__.py", line 179, in state_attributes
self.precision,
File "/usr/src/homeassistant/homeassistant/helpers/temperature.py", line 23, in display_temp
raise TypeError(f"Temperature is not a number: {temperature}")
TypeError: Temperature is not a number: error
2020-03-30 14:06:59 WARNING (SyncWorker_0) [ViCare] Token expired, renewing
2020-03-30 14:06:59 WARNING (SyncWorker_1) [ViCare] Token expired, renewing
2020-03-30 14:07:00 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 284, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 327, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/water_heater/__init__.py", line 179, in state_attributes
self.precision,
File "/usr/src/homeassistant/homeassistant/helpers/temperature.py", line 23, in display_temp
raise TypeError(f"Temperature is not a number: {temperature}")
TypeError: Temperature is not a number: error
2020-03-30 14:22:00 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 284, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 327, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/water_heater/__init__.py", line 179, in state_attributes
self.precision,
File "/usr/src/homeassistant/homeassistant/helpers/temperature.py", line 23, in display_temp
raise TypeError(f"Temperature is not a number: {temperature}")
TypeError: Temperature is not a number: error
2020-03-30 14:37:01 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 284, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 327, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/water_heater/__init__.py", line 179, in state_attributes
self.precision,
File "/usr/src/homeassistant/homeassistant/helpers/temperature.py", line 23, in display_temp
raise TypeError(f"Temperature is not a number: {temperature}")
TypeError: Temperature is not a number: error
2020-03-30 14:52:02 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 284, in async_update_ha_state
self._async_write_ha_state()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 327, in _async_write_ha_state
attr.update(self.state_attributes or {})
File "/usr/src/homeassistant/homeassistant/components/water_heater/__init__.py", line 179, in state_attributes
self.precision,
File "/usr/src/homeassistant/homeassistant/helpers/temperature.py", line 23, in display_temp
raise TypeError(f"Temperature is not a number: {temperature}")
TypeError: Temperature is not a number: error
And here is the config from viessman, all of it:
vicare:
username: !secret viessman_email
password: !secret viessman_password
name: Grijanje
heating_type: heatpump
sensor:
platform: template
sensors:
vicare_outside_temperature:
friendly_name: "Vanjska Temperatura"
unit_of_measurement: '°C'
value_template: "{{ state_attr('climate.vicare_heating', 'outside_temperature') }}"
vicare_inside_temperature:
friendly_name: "unutrasnja Temperatura"
unit_of_measurement: '°C'
value_template: "{{ state_attr('climate.vicare_heating', 'temperature') }}"
Hello,
I have a vitoconnect 100 wifi.
Did you manage to get the preset_mode to work ?
I choose eco or comfort from the lovelace thermostat or service set_preset_mode nothing happens.
thanks you
Doesn´t work for me either.
your config is very similar to mine,
notable differences are you have a Name in the vicare integration, and you have no water_heater configured.
Here’s mine, that works just fine these last days :
vicare:
username: !secret vicare_email
password: !secret vicare_password
heating_type: gas
scan_interval: 120
#
water_heater:
platform: vicare
#
sensor:
- platform: template
sensors:
vicare_outside_temperature:
friendly_name: "Vicare outside"
unit_of_measurement: '°C'
value_template: "{{ state_attr('climate.vicare_heating', 'outside_temperature') }}"
vicare_desired_temperature:
friendly_name: "Vicare target"
unit_of_measurement: '°C'
value_template: "{{ state_attr('climate.vicare_heating', 'temperature') }}"
vicare_heatcurve_target_temperature:
friendly_name: "Vicare heatcurve target "
unit_of_measurement: '°C'
value_template: "{{ state_attr('climate.vicare_heating', 'temperature') + state_attr('climate.vicare_heating', 'heating_curve_shift') - state_attr('climate.vicare_heating', 'heating_curve_slope') * (state_attr('climate.vicare_heating', 'outside_temperature') - state_attr('climate.vicare_heating', 'temperature')) * (1.4347 + 0.021 * (state_attr('climate.vicare_heating', 'outside_temperature') - state_attr('climate.vicare_heating', 'temperature')) + 247.9 * 0.000001 * (state_attr('climate.vicare_heating', 'outside_temperature') - state_attr('climate.vicare_heating', 'temperature')) * (state_attr('climate.vicare_heating', 'outside_temperature') - state_attr('climate.vicare_heating', 'temperature'))) }}"
metno_outside_temperature:
friendly_name: "Met.no outside"
unit_of_measurement: '°C'
value_template: "{{ state_attr('weather.home', 'temperature') }}"
Perhaps try to adjust those 2 main differences ?
thank you Tommmii
I’ve just integrated your settings, but nothing changes for me.
@April:
It could be that the preset modes are named differently for your specific device.
You can use https://pypi.org/project/PyViCare/ to get the list of supported presets:
t=GazBoiler("email@domain","password","token.save")
print(t.getPrograms())
Thanks oischinger, but I’m too much of a beginner home assistant to understand how to retrieve the data and integrate it.
My settings are called for Vitodens-222w :
– Economy mode
– Party mode
humm… I have the same Vitodens-222w (which works fine with the config posted earlier). I never did the PyViCare installation to grab the list of presets.
@oischinger wouldn’t identical devices use the same presets, or does the device’s language setting play a role ?
the problem doesn’t seem to come from home assistant because I don’t have the magic wand down left in vicare.
I must have a problem on my installation, but I switch eco/comfort on a vitotrol200a.
for people who don’t have eco/comfort modes do you have the magic wand in vicare ?
You’re right @Tommmii. @April so does that mean that you also cannot set the eco mode in the ViCare app?
The problem seems rather to come from the vitodens 222w + vitoconnect100 because on the site https://vitoguide.viessmann.com in the settings of the heating the mode eco and comfort are grayed out.
In the same way that the magic wand on vicare is missing.
On the other hand, the vitodens 222w + vitotrol 200 I have at home, eco/comfort is working well.
If the smartphone app doesn’t function, then neither will the integration. And, in that case, you have a Viessmann issue…unfortunately.