THZ Tecalor (LWZ Stiebel Eltron) module support and code improvement.

Begonnen von immi, 02 Februar 2015, 11:42:16

Vorheriges Thema - Nächstes Thema

immi

Zitat von: godmorgon am 14 Februar 2015, 16:04:36
The register you are looking for is 0a05dd. It accepts a short integer with the desired fan stage (0, 1, 2, 3). Writing to that register starts the unscheduled ventilation. After the specified time elapsed the register keeps the value unchanged but the unscheduled ventilation stops.
thanks for sharing. I will have a look.
I am now curious: how have you found out?
immi

godmorgon

Zitat von: immi am 14 Februar 2015, 16:16:55
I am now curious: how have you found out?
Set the fan stage for unscheduled ventilation to 1.
Perform register scan.
Set the fan stage for unscheduled ventilation to 2.
Perform register scan.
Run diff and check for changes 1->2.

Cheers,
godmorgon

immi

Zitat von: godmorgon am 14 Februar 2015, 16:29:20
Set the fan stage for unscheduled ventilation to 1.
Perform register scan.
Set the fan stage for unscheduled ventilation to 2.
Perform register scan.
Run diff and check for changes 1->2.
the old school :)

willybauss

Zitat von: mlb am 14 Februar 2015, 15:42:35
Thanks Willy, this explains a lot. Still, it sounds like the ventilation could be activated by additional command that could be sent independently to parameters write command. Are you saying that if we had CAN interface attached to RPi (for example http://skpang.co.uk/catalog/pican-canbus-board-for-raspberry-pi-p-1196.html) - we would be able to read the complete sequence?
Yes, that's what I believe. But it's no more necessary after godmorgon's

« Antwort #59 am: Heute um 16:04:36 »

@godmorgon:
you're fantastic - that's what we've been looking for since last spring. Thanks a lot.

@immi:
You already know how my question to looks like  :) ...
FHEM auf Raspberry Pi B und 2B; THZ (THZ-303SOL), CUL_HM, TCM-EnOcean, SamsungTV, JSONMETER, SYSMON, OBIS, STATISTICS

immi

Zitat von: godmorgon am 14 Februar 2015, 16:04:36
The register you are looking for is 0a05dd. It accepts a short integer with the desired fan stage (0, 1, 2, 3). Writing to that register starts the unscheduled ventilation. After the specified time elapsed the register keeps the value unchanged but the unscheduled ventilation stops.
it is working. Deploy this night with 2 other small things.

for people scared to age the the epprom
--button: 60 min off --> 2 writes to the eeprom
--unscheduled ventilation --> probably 3 writes to the eeprom

mlb

Zitat von: godmorgon am 14 Februar 2015, 16:04:36
The register you are looking for is 0a05dd. It accepts a short integer with the desired fan stage (0, 1, 2, 3). Writing to that register starts the unscheduled ventilation. After the specified time elapsed the register keeps the value unchanged but the unscheduled ventilation stops.

Simply fantastic!  ;D

Zitat von: immi am 14 Februar 2015, 18:59:26
--unscheduled ventilation --> probably 3 writes to the eeprom

Why would you say so? Writing to register would not necessarily mean eeprom operation.
LWZ 403SOL, FHEM + HomeAssistant

godmorgon

Zitat von: immi am 14 Februar 2015, 18:59:26
--button: 60 min off --> 2 writes to the eeprom
--unscheduled ventilation --> probably 3 writes to the eeprom
How so?

immi

Zitat von: mlb am 13 Februar 2015, 19:42:50
I just did a test: started unscheduled ventilation, and after a while I switched the heatpump off. After starting it again the ventilation did not restart.

I wrote probably because I was not sure how to interprete the above experiment: following info missing
old condition
-fan moving at speed 0123?
-unscheduled ventilation setting 0123?
unscheduled ventilation activated to 0123?
-fan moving at speed 0123?
-unscheduled ventilation setting 0123?
after reset
-fan moving at speed 0123?
-unscheduled ventilation setting 0123?

mlb

After heatpump restart the fan is not started again, that's why I think when you start unscheduled ventilation from control panel - there are two actions performed:

  • Setting a value of one of parameters P43 to P46 (duration of unscheduled ventilation for mode 0-4). Those are written to eeprom because after heatpump restart I can still see the new value of unscheduled ventilation time for the mode that was adjusted. Here I am not sure if those parameters are written to eeprom each time, or only if duration of unscheduled ventilation is altered.
  • Triggering the start of the ventilation. This is started by writing new value [0..3] to register 0a05dd. The content of this register is not restored after heatpump restart, that's why I assumed this register is only kept in volatile memory. This would actually make sense since unscheduled ventilation is a single event, triggered upon user demand only.

Thanks to godmorgon effort it seems we could just trigger second action, without need of updating P43-46 parameters each time the ventilation is started :)
LWZ 403SOL, FHEM + HomeAssistant

immi

v 0132 uploaded; tomorrow you can update
- added p99startUnschedVent
- splitting of big register implemented; this is needed for writing in old 206 firmware.
- vertical range in the heating curve changed to 15..35°C as requested.

@all I changed lots of code for the splitting, update only if you need.
@all with old firmware, wait for Andre testing!!
@Andre:please comment out line 797. Can you test the writing in the old firmware? No actual writing takes place. I didn´t finish subTHZ_Set: just 50%. I want your feedback before going on.

immi

mlb

Thanks!

Zitat von: immi am 14 Februar 2015, 21:38:52
- added p99startUnschedVent

Yes I can see the new parameter, but I cannot change it and also ventilation does not start when I try to set it to something different than 0. I'm just wondering if that's because I'm still on 4.38 firmware and it works fine for others? When I start unscheduled ventilation from control panel - yes I can see non-zero value for p99startUnschedVent, so reading works fine.

Zitat von: immi am 14 Februar 2015, 21:38:52
- vertical range in the heating curve changed to 15..35°C as requested.

Could the upper limit be defined by a parameter? My heating curve actually goes above 40°C, and now the graph looks strange...
Of course I could stop using this graph, just it's pretty cool to see it.
LWZ 403SOL, FHEM + HomeAssistant

immi

Zitat von: mlb am 15 Februar 2015, 00:01:16
Thanks!

Yes I can see the new parameter, but I cannot change it and also ventilation does not start when I try to set it to something different than 0. I'm just wondering if that's because I'm still on 4.38 firmware and it works fine for others? When I start unscheduled ventilation from control panel - yes I can see non-zero value for p99startUnschedVent, so reading works fine.
interesting, it worked for me with 0 but have not tested other numbers
@godmorgon: how is a 1  implemented in the register 0a05dd0100 or 0a05dd0001?

Zitat
Could the upper limit be defined by a parameter? My heating curve actually goes above 40°C, and now the graph looks strange...
Of course I could stop using this graph, just it's pretty cool to see it.
I will provide a parameter by next release.
You are perfectly right.
----
In the meanwhile you can play with function_heatSetTemp($$)
it provides the data on the curve: e.g. outside temp from -15 to 30, you use function_heatSetTemp(-15,30)
you can create a personalized .gplot with logproxy


godmorgon

Zitat von: immi am 15 Februar 2015, 09:39:23
interesting, it worked for me with 0 but have not tested other numbers
@godmorgon: how is a 1  implemented in the register 0a05dd0100 or 0a05dd0001?
IIRC the heat pump uses big endian for most registers. So a short int would correspond to 00 01. Didn't you do a read check first? ;-)

mlb

Zitat von: immi am 15 Februar 2015, 09:39:23
interesting, it worked for me with 0 but have not tested other numbers

Yes, 0 works for me too, in my case it stops unscheduled event. Just anything above 0 gives no heatpump reaction, so godmorgon sounds right about incorrect bits order.
LWZ 403SOL, FHEM + HomeAssistant

immi

Zitat von: godmorgon am 15 Februar 2015, 10:15:22
IIRC the heat pump uses big endian for most registers. So a short int would correspond to 00 01.
and this is how it was implemented 0a05dd0001

@mlb
the register is strange:
I made a few tests: sometime I have to set it 2 times before it is activated.