hacki11 / ioBroker.valloxmv

ValloxMV Air Ventilation ioBroker Adapter
MIT License
7 stars 7 forks source link

with MV510 FW 2.0.x - fan speeds cannot be controlled anymore #176

Closed n4pstarr closed 7 months ago

n4pstarr commented 7 months ago

I recently connected my MV510 the cloud again (normally offline). It fetched several updates.

Now, my scripts that change the profile and fan speed based on Co2 measurements, are not fully working anymore.

Changing ACTIVE_PROFILE and A_CYC_MODE is still working - but changing the values of A_CYC_EXTR_FAN_BALANCE_BASE and A_CYC_SUPP_FAN_BALANCE_BASE lead to no changes on the fan speeds. Also, changing those datapoints directly in the objects tab has no influence on the fan speed.

Maybe smth on the API changed with the new FW?

Versions:

hacki11 commented 7 months ago

What Vallox Software Version do you have? Mine is 2.0.14 which is pretty old but seems to be the latest: https://cloud.vallox.com/changelog.txt Do you have errors or warnings in your adapter log?

Edit: There seems to be a 2.0.20 from July 2023 https://vallox.de/service/downloads/planungstools/ https://vallox.de/wp-content/uploads/2023/09/MyVallox-SW_version_2.0.20_website_information_GER-1.pdf

Edit2: They have another changelog url now also speaking of 2.0.24: https://firmware.vallox.com/prod/changelog.html

hacki11 commented 7 months ago

@n4pstarr Can you download the following file from your machine and link it here? http://<your-vallox-ip>/js/bundle.js

n4pstarr commented 7 months ago

Thanks for the quick response, hacki!

No errors or warnings from the adapter.

Yes, 2.0.24 is running on my applicance. grafik

Pls see bundle.js. Had to zip it due to github file restrictions. bundle.zip

I already reached out to vallox whether they changed the modbus registers with 2.0.2x - no reponse, yet. Will keep you posted...

Thanks and BR Chis

hacki11 commented 7 months ago

I won't expect a response tbh. They are not developing the software on their own. I even found some HELIOS (the competitor) parameters in their software.

Is the Fan setting in their Web UI working or is even this broken?

Thank you for that file. I will diff this as it contains the Modbus parameter IDs.

n4pstarr commented 7 months ago

Changing fan speed in the UI is working. I just detected that the percentages are updated when changed via your adapter - but the speed is not changing.

WebUI before any change: grafik

Changing both percentages via UI - speed is adapted: grafik

After changing the values back via iobroker, the percentages are updated in the UI - but not the speeds: grafik

I tried this back and forth several times with different percentages. Values are sent to the appliance, visible in the UI but speed change is pending: grafik

hacki11 commented 7 months ago

New Parameters:

  (VlxDevConstants.A_CYC_EMERGENCY_STOP_IS_ACTIVATED = 4624),
  (VlxDevConstants.A_CYC_FIREPLACE_AIR_TEMP_TARGET = 20497),
  (VlxDevConstants.A_CYC_HALL_SUPP_SPEED = 46001),
  (VlxDevConstants.A_CYC_HALL_EXTR_SPEED = 46002),
  (VlxDevConstants.A_CYC_SUPPLY_AIRFLOW = 46003),
  (VlxDevConstants.A_CYC_EXTRACT_AIRFLOW = 46004),
  (VlxDevConstants.A_CYC_SUPPLY_AIRFLOW_OFFSET = 46005),
  (VlxDevConstants.A_CYC_EXTRACT_AIRFLOW_OFFSET = 46006),
  (VlxDevConstants.A_CYC_SUPPLY_AIRFLOW_MULTIPLIER = 46007),
  (VlxDevConstants.A_CYC_EXTRACT_AIRFLOW_MULTIPLIER = 46008),
  (VlxDevConstants.A_CYC_TOR_0_CONNECTED = 46009),
  (VlxDevConstants.A_CYC_TOR_0_ON = 46011),
  (VlxDevConstants.A_CYC_TOR_1_ON = 46012),
  (VlxDevConstants.A_CYC_TOR_0_TEMP = 46013),
  (VlxDevConstants.A_CYC_TOR_1_TEMP = 46014),
  (VlxDevConstants.A_CYC_TOR_0_HEATER_ON = 46015),
  (VlxDevConstants.A_CYC_TOR_1_HEATER_ON = 46016),
  (VlxDevConstants.A_CYC_SUPPLY_AIRFLOW_SETTING = 46017),
  (VlxDevConstants.A_CYC_EXTRACT_AIRFLOW_SETTING = 46018),
  (VlxDevConstants.A_CYC_MAX_CF_SCALING_SUPPLY = 46019),
  (VlxDevConstants.A_CYC_MAX_CF_SCALING_EXTRACT = 46020),
  (VlxDevConstants.A_CYC_CONSTANT_FAN_P_FACTOR = 46021),
  (VlxDevConstants.A_CYC_CF_FUNCTION_CALL_TIME = 46022),
  (VlxDevConstants.A_CYC_TOR_0_HEATER_TYPE = 46023),
  (VlxDevConstants.C_CYC_EVENT_CUSTOM = 4),
  (VlxDevConstants.C_CYC_EVENT_STANDBY = 5),

  (VlxDevConstants.WS_LOG_SUPPLY_IO = 9),
  (VlxDevConstants.WS_LOG_EXTRACT_IO = 10),
  (VlxDevConstants.WS_LOG_SUPPLY_RPM = 11),
  (VlxDevConstants.WS_LOG_EXTRACT_RPM = 12),
  (VlxDevConstants.WS_LOG_CELL_STATE = 13),
  (VlxDevConstants.WS_LOG_EXTR_REFERENCE = 14),

  (VlxDevConstants.RANGE_START_g_cyclone_extended = 46e3),
  (VlxDevConstants.RANGE_END_g_cyclone_extended = 46023);

  (VlxReadConstants.CYC_EMERGENCY_STOP_IS_ACTIVATED = 16),
  (VlxReadConstants.CYC_ANALOG_RH_SENSOR_PRSENT = 24),
  (VlxReadConstants.CYC_HELIOS_WITH_VALLOX_DEFROST = 17),
  (VlxReadConstants.CYC_FIREPLACE_AIR_TEMP_TARGET = 17),

  (VlxReadConstants.CYC_HALL_SUPP_SPEED = 1),
  (VlxReadConstants.CYC_HALL_EXTR_SPEED = 2),
  (VlxReadConstants.CYC_SUPPLY_AIRFLOW = 3),
  (VlxReadConstants.CYC_EXTRACT_AIRFLOW = 4),
  (VlxReadConstants.CYC_SUPPLY_AIRFLOW_OFFSET = 5),
  (VlxReadConstants.CYC_EXTRACT_AIRFLOW_OFFSET = 6),
  (VlxReadConstants.CYC_SUPPLY_AIRFLOW_MULTIPLIER = 7),
  (VlxReadConstants.CYC_EXTRACT_AIRFLOW_MULTIPLIER = 8),
  (VlxReadConstants.CYC_TOR_0_CONNECTED = 9),
  (VlxReadConstants.CYC_TOR_0_ON = 11),
  (VlxReadConstants.CYC_TOR_1_ON = 12),
  (VlxReadConstants.CYC_TOR_0_TEMP = 13),
  (VlxReadConstants.CYC_TOR_1_TEMP = 14),
  (VlxReadConstants.CYC_TOR_0_HEATER_ON = 15),
  (VlxReadConstants.CYC_TOR_1_HEATER_ON = 16),
  (VlxReadConstants.CYC_SUPPLY_AIRFLOW_SETTING = 17),
  (VlxReadConstants.CYC_EXTRACT_AIRFLOW_SETTING = 18),
  (VlxReadConstants.CYC_MAX_CF_SCALING_SUPPLY = 19),
  (VlxReadConstants.CYC_MAX_CF_SCALING_EXTRACT = 20),
  (VlxReadConstants.CYC_CONSTANT_FAN_P_FACTOR = 21),
  (VlxReadConstants.CYC_CF_FUNCTION_CALL_TIME = 22),
  (VlxReadConstants.CYC_TOR_0_HEATER_TYPE = 23),
  (VlxReadConstants.CYC_NUM_OF_EXT_SETTINGS = 24);

  (VlxDevConstants.EXT_FIREPLACE_AIR_TEMP_TARGET = KExtParamBase + 98),
  (VlxDevConstants.EXT_EXTRA_TIMER = KExtParamBase + 99),
  (VlxDevConstants.EXT_CYC_TOR_0_TEMP = KExtParamBase + 100);
hacki11 commented 7 months ago

May I ask why you are using the BALANCE properties and not the A_CYC_HOME_SPEED_SETTING? Do you need to change the balance of the fans with your script or do you only want to control the speed of both in the same way?

n4pstarr commented 7 months ago

By changing both the BALANCE parameters, I wanted to make sure that I always have negative pressure in the house (with positive pressure, there's the danger of mold by warm air condensating in the building enevlope).

But yeah, I get your idea ... as long as the balance is once set in a way that extraction is higher than supply, changing on the speed setting within a profile would be a sufficient workaround.

hacki11 commented 7 months ago

Can you also try the following: 1) Change BALANCE each in opposite direction via iobroker 2) Increase the fan speed of the active profile with A_CYC_<PROFILE>_SPEED_SETTING via iobroker

I just want to see if the latter triggers something in the system which updates the balance of the fans.

n4pstarr commented 7 months ago

Balance is kept.

Initial situation: grafik

after changing balance only, nothing happens. only after increasing speed setting, both fans are increased - but maintained balance is kept: grafik

hacki11 commented 7 months ago

What do you mean with maintained balance is kept? The second screen looks like the new balance is applied correctly, isn't it? One is slightly lower than the other.

That would also create a possible workaround. After setting the desired balance, we could +1 and -1 the speed to trigger the activation of the balance.

n4pstarr commented 7 months ago

Yeah, that's what I meant...

I played around a little bit with this setup. I maintained different balances that have the same ratio to another and also ones that have different ratios. After increasing/decreasing the profile speed value, the balance is always adapted within the individual fan speeds.

So, that's a totally sufficient workaround for my requirements.

Thanks a lot for your help!!!

hacki11 commented 7 months ago

I'm glad it works for you. I still wonder if we can or need to adapt something. Perhaps @danielbayerlein, author of the vallox-api lib has some thoughts or ideas how to analyze that topic.

hacki11 commented 7 months ago

@n4pstarr would you help analyzing this issue doing the following? 1) Open Chrome + go to vallox web page + go to "Spezielle Einstellungen" tab 2) Strg + Shift + I (Open dev console) 3) Switch to "console" tab in dev console 4) type toggleConsoles("a") and hit return

15:14:22.753 toggleConsoles("a")
15:14:22.781 console.info() was enabled. bundle.js:28:322
15:14:22.781 console.warn() was enabled. bundle.js:28:322
15:14:22.781 console.error() was enabled.

5) Change a balance entry by changing the number in the text box 6) Click somewhere else (white background) to get the change sent to the device 7) The console should print debug messages 8) Right click in the console log, "Save all messages to file" 9) Provide the log here

Hopefully we can then see, what the web page is sending to the device and compare this to the vallox-api call and also to the 2.0.14 web page.

It should look like that: image

n4pstarr commented 7 months ago

Here you are.

mv510-1707722739973.log