thomasgermain / pymultiMATIC

Python interface with Vaillant multiMATIC
MIT License
56 stars 11 forks source link

Water pressure + Flow temperature + Control time #9

Closed Tomasonx closed 4 years ago

Tomasonx commented 4 years ago

I have an VR 920 + VRC 700 / 5 + VR 50

1. In this picture

Pression chaudiere 1.4 bar

you have "Pression chaudiere 1.4 bar"

I can see this information on the VRC 700 app but not on home-assistant thomasgermain/home-assistant/homeassistant/components/vaillant/

Can you check this?

I will attach a print screen.

2. In the same print screen you can see "Flow temperature sensor" Can you add that too?

My print screen 2019-11-22

thomasgermain commented 4 years ago

Hi,

Any error in the log ?

The entity id should be something like: sensor.vaillant_vc_be_246_5_3_pressure and sensor.vaillant_vc_be_246_5_3_temperature where vc_be_246_5_3 is the version of my boiler, so it may differ from your entities id.

Thomas

Tomasonx commented 4 years ago

No errors and I no similar ID

Sorry 1 error

2019-11-22 09:55:42 WARNING (Recorder) [homeassistant.components.recorder] Ended unfinished session (id=1 from 2019-11-07 01:11:23.587079)

thomasgermain commented 4 years ago

Hmm, it seems like it's coming from the data from the API (I guess they are not formatted like I received mine).

The warning is not related to the vaillant component.

May I ask you to run some python script to check how data are coming for you ? So I can check where the problem is. (I still have to prepare the script)

Tomasonx commented 4 years ago

OK, no problem

Can you see "Flow temperature sensor" also?

Tomasonx commented 4 years ago

And maybe "Control time and date" from the VRC 700 app on Settings / General Settings

Can you extract this value to see when the information was updated?

thomasgermain commented 4 years ago

And maybe "Control time and date" from the VRC 700 app on Settings / General Settings

Can you extract this value to see when the information was updated?

Is it what you're looking for ?

image

This is the time the boiler status was updated. This is a state attribute of the status of the boiler, but maybe you don't have the entity neither ?

Tomasonx commented 4 years ago

Yes I think this is it. And yes I do not have this.

Tomasonx commented 4 years ago

So you have VC BE 246/5-3 I have VUW BE 240/3-5

thomasgermain commented 4 years ago

So, here is the script: https://github.com/thomasgermain/pymultiMATIC/blob/issue9/data_from_vaillant.py

It will actually do 2 calls to get data I need to create missing entities

you can download it and run:

python3 data_from_vaillant.py username password

It will print some json data I would need to add support for your boiler. There is no real private data here, but you can remove your facility number in resourceLink

Thanks,

Thomas

Tomasonx commented 4 years ago

I run homeassistant on raspberrypi3 on docker

I put in

homeassistant/custom_components

the vaillant directory from here https://github.com/thomasgermain/home-assistant/homeassistant/components/vaillant/

so when i run data_from_vaillant.py I have the next error

Traceback (most recent call last): File "data_from_vaillant.py", line 4, in <module> from pymultimatic.api import ApiConnector, urls ModuleNotFoundError: No module named 'pymultimatic'

thomasgermain commented 4 years ago

Ah yeah sorry. You can actually run the script everywhere you want, but you need to install pymultimatic dependency before running the script:

sudo pip3 install pymultimatic

Tomasonx commented 4 years ago

And now:

Traceback (most recent call last): File "data_from_vaillant.py", line 4, in from pymultimatic.api import ApiConnector, urls File "/usr/local/lib/python3.7/dist-packages/pymultimatic/api/init.py", line 3, in from .error import ApiError File "/usr/local/lib/python3.7/dist-packages/pymultimatic/api/error.py", line 6, in import attr ModuleNotFoundError: No module named 'attr'

Tomasonx commented 4 years ago

I fix this and now I have

2019-11-00 00:00:00,000:INFO:Connector: No previous session found, will try to log in with username: ABC and smartphoneId: pymultiMATIC {'body': {'devices': [{'reports': [{'unit': '°C', 'name': 'Cylinder hot water temperature', 'value': 14.0, '_id': 'DomesticHotWaterTankTemperature', 'measurement_category': 'TEMPERATURE', 'associated_device_function': 'DHW'}], '_id': 'Control_DHW', 'name': 'Domestic hot water circuit'}, {'reports': [{'unit': 'bar', 'name': 'Water pressure', 'value': 1.3, '_id': 'WaterPressureSensor', 'measurement_category': 'PRESSURE', 'associated_device_function': 'HEATING'}], '_id': 'Control_SYS_MultiMatic', 'name': 'VRC 700/5'}, {'reports': [{'unit': '°C', 'name': 'Flow temperature sensor', 'value': 15.0, '_id': 'FlowTemperatureSensor', 'measurement_category': 'TEMPERATURE', 'associated_device_function': 'HEATING'}], '_id': 'Control_CC1', 'name': 'Heating circuit 1'}]}, 'meta': {'resourceState': [{'state': 'SYNCED', 'timestamp': 0, 'link': {'rel': 'child', 'resourceLink': '/facilities/ABC/livereport/v1/devices/Control_DHW/reports/DomesticHotWaterTankTemperature'}}, {'state': 'SYNCED', 'timestamp': 0, 'link': {'rel': 'child', 'resourceLink': '/facilities/ABC/livereport/v1/devices/Control_SYS_MultiMatic/reports/WaterPressureSensor'}}, {'state': 'SYNCED', 'timestamp': 0, 'link': {'rel': 'child', 'resourceLink': '/facilities/ABC/livereport/v1/devices/Control_CC1/reports/FlowTemperatureSensor'}}]}}

{'body': {}, 'meta': {'onlineStatus': {'status': 'ONLINE'}, 'firmwareUpdateStatus': {'status': 'UPDATE_NOT_PENDING'}, 'syncState': [{'state': 'SYNCED', 'timestamp': 0, 'link': {'rel': 'self', 'resourceLink': '/facilities/ABC/hvacstate/v1/overview'}}]}}


thomasgermain commented 4 years ago

So, I spot the problem. I'm currently busy with a fix for pymultimatic module. Then I will adapt vaillant component.

The thing is, you will be able to get temperature and pressure of the boiler only. Apparently your boiler is not able to provide hvac information (model of the boiler, current mode, last update, etc.)

thomasgermain commented 4 years ago

Could you try the last version of the component ?

You should be able to get pressure and temperature for the boiler with entity sensor.vaillant_boiler_pressure and sensor.vaillant_boiler_temperature.

Let me know if there is any issue

Tomasonx commented 4 years ago

It is working, no errors.

Of course do you know that I changed: timestamp: 0 /facilities/2xxxxxxxx = /facilities/ABC

And "Control time and date"?

thomasgermain commented 4 years ago

Cool great :)

Could you show me in the app what is the "Control time and date" ? From what I think, it's just the date and time of the boiler, this is not the last update. In the multimatic app, this field is editable.

I think I cannot provide you the last update since there is no hvac information from your boiler (I mean the body is empty).

Tomasonx commented 4 years ago

Go to Settings / General settings /

there you have "Time" (the actual time) and "Control time and date" (last update time) and of course after a few seconds Time = Control time and date

1 2 3

thomasgermain commented 4 years ago

ah you're from Belgium too :)

The time displayed here is actually the current time coming from the API. Since the mobile app is quite slow to update, than you can notice a gap between the current time and time displayed in the field.

Honestly, I cannot find any interest of displaying that in HA. What could be your use case ?

Tomasonx commented 4 years ago

Yes .be,

My idea was to have a value, 10 degree from outdoor sensor, and a time to know how old is that value.

So => 10 degree 6 minutes ago

thomasgermain commented 4 years ago

Here is what you can get with HA:

image

Tomasonx commented 4 years ago

I don't know how is this working.

How I understand 10 minutes from your print screen represents how long the temperature was 8.0 degree.

In my print screen I have 8 degree from 3:44 to 4:45 so 1 h

1 2

The problem is when (most often on weekends) I can't get data in the app, because the Vaillant server is down or something.

If I understand correctly you take the data from the Vaillant server and not directly from boiler / VR 920 / VRC 700 / VR 50 (like the app). If this is right will be interesting to know how old are data.

But, how this is working on HA is perfect enough, at least for me. You did a good job :)

thomasgermain commented 4 years ago

Thanks :)

You're right with your interpretation of how home assistant works.

And you're right, i'm getting data from server (like the application does). Meaning, if your HA instance doesn't have internet access, you won't get any data from vaillant server.

I think the problem is coming from your outdoor sensor. I already had some complaints about the accuracy of the data, but I can only read what is coming from vaillant server.

You can also change the scan_interval. By default it's 5 minutes, meaning HA will fetch data every 5 minutes. You can set like this:

vaillant:
  username: xxxx
  password: xxx
  scan_interval: 
    minutes: 1

Should I considered it close ?

Anyway, let me know if you have any errors/questions/suggestions :)

Tomasonx commented 4 years ago

No errors/questions/suggestions.

Thank you!