Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)

Begonnen von Adam, 15 Februar 2014, 18:17:35

Vorheriges Thema - Nächstes Thema

Adam

@darkmission:

Zitat
Ich hatte schon an Timer gedacht, leider funktioniert das bei mir gar nicht. Ich kann bei meiner Vitocal 300-G nicht nur einen Timer setzen, sondern auch den Wert auswählen, z.B. Normal, Standby, Festwert etc. Das ist bei Dir aber anscheinend gar nicht vorgesehen.

Nein das gibt es bei den 8 Byte die da bisher gelesen/gesetzt werden nicht.
Das scheinen dann auch andere Adressen zu sein?
Kannst Du mir mal eine nennen?
Weisst Du vielleicht selbst, wie das aufgebaut sein muss?

Postfach2000

Zitat von: skibby am 07 Januar 2016, 18:21:35
Hallo,
gibt es eine Adresse mit der man die Zirkulationspumpe an oder aus schalten kann?. Die ich mit SET einbauen kann?

Gruß
Lorenz

Das würde mich auch interessieren. In der Steuerung gibt es die Möglichkeit des Relais Tests, bei dem man die Zirkulationspumpe einschalten kann. Das müsste man eigentlich über ein SET ansteuern können.

Weiß jemand mehr?

VIele Grüße
Michael

StefanJoe

Hat jemand bei einer vitocal 200-s zufällig herausgefunden wie man die Stellung des 3-Wege Ventils auslesen kann und 1xWW Bereitung anstösst?

Möchte gerne einen entsprechenden Button in meinem FHEM einbauen ...

darkmission

@Adam
Das mit dem Workaround mit disable ist ne gute Idee, werde ich heute Abend mal ausprobieren.

Wie der Aufbau der Timer ist, kann ich leider nicht sagen. Anbei ein Bild von der Konfig.
Es werden im 15 Minuten Takt (0-14, 15-29, 30-44, 45-59) die verschiedenen Status gesetzt 1,2,3,4.

Mal ein paar Parameter aus meiner Montageanleitung
Für HK1 1=Standby, 2=Reduziert, 3=Normal, 4=Festwert
Raumtemperatur
A1 2000
M2 3000
M3 4000
Raumtemp reduziert
A1 2001
M2 3001
M3 4001
Schaltzeiten
A1 2002
M2 3002
M3 4002


Für HW Puffer 1=Aus, 2=Reduziert, 3=Normal, 4=Festwert
Schaltzeiten 7201.
Festtemperatur 7202.

Für WW 1=Aus, 2=Oben (Temp. am oberen Sensor), 3=Normal, 4=2.Temp (z.B Legionellenschutz 60 Grad C)
Speichertemperatur Parameter 6000.
Schaltzeiten Parameter 6001.

Schaltzeiten Zirkulationspumpe scheint unter "zusätzlicher Ausgang" zu laufen.
zus. Ausgang 1=Aus, 2=30/5 Takten, 3=15/5 Takten, 4=Ein.
Takten, z.B. alle 30 min. für 5 min. einschalten.
Schaltzeiten unter Parameter 701B.

Das sind dann wohl 4x24x7 Einstellungen, macht 672. Könnte der Parameter was damit zu tun haben?
  <EventType>
    <ID>Schaltzeiten_A1M1_HK</ID>
    <Description>@@viessmann.eventtype.Schaltzeiten_A1M1_HK.description</Description>
    <SDKDataType>ByteArray</SDKDataType>
    <ALZ>0x30B0FFFFFFFFFFFF30B0FFFFFFFFFFFF30B0FFFFFFFFFFFF30B0FFFFFFFFFFFF30B0FFFFFFFFFFFF30B0FFFFFFFFFFFF30B0FFFFFFFFFFFF</ALZ>
    <AccessMode>ReadWrite</AccessMode>
    <Conversion>NoConversion</Conversion>
    <ConversionFactor>0</ConversionFactor>
    <ConversionOffset>0</ConversionOffset>
    <Address>0x2000</Address>
    <FCRead>Virtual_READ</FCRead>
    <FCWrite>Virtual_WRITE</FCWrite>
    <Parameter>Array</Parameter>
    <BlockLength>56</BlockLength>
    <BytePosition>0</BytePosition>
    <ByteLength>56</ByteLength>
    <BitPosition>0</BitPosition>
    <BitLength>0</BitLength>
    <BlockFactor>7</BlockFactor>
    <MappingType>1</MappingType>
  </EventType>

@Postfach2000
Zirkulationspumpe einschalten scheint nur über die Schaltzeiten zu funktionieren. Habe jedenfalls keine anderen Parameter gefunden.
In der ecnEventType.xm steht sowas wie "Zirkulationspumpe~0x6515", scheint aber nur eine Statusabfrage zu sein.

@StefanJoe
3 Wege Ventil
POLL, 01F7041401, 1ByteU, state,        Status_Umschaltventil_HZ/WW                     , -

WW Speicherladung
Einmalige Nachladung geht ja auf die 2. Solltemperatur. In Meiner Anleitung ist kein Parameter dazu, aber in der ecnEventType.xml steht:
WPR3_WW_Einmal~0xB020


Raspberry 2x PiB, 2x Pi2, 2x Pi3, 2xPi0, CUL, HM-LC-DIM1T-FM, LW12FC, Intertechno Funksteckdosen, OSMC, Viessmann Heizungssteuerung, eigene Photovoltaik Anbindung ( Effekta ), eigener "Powermeter" (3 x LED, 1 x Ferraris), AVR Steuerung, IR, Harmony Hub, SIGNALduino433/868, Dooya Rolladensteuerung...

StefanJoe

Zitat von: darkmission am 08 Januar 2016, 10:05:57
@StefanJoe
3 Wege Ventil
POLL, 01F7041401, 1ByteU, state,        Status_Umschaltventil_HZ/WW                     , -

WW Speicherladung
Einmalige Nachladung geht ja auf die 2. Solltemperatur. In Meiner Anleitung ist kein Parameter dazu, aber in der ecnEventType.xml steht:
WPR3_WW_Einmal~0xB020

Das liefert mir 24/7 "on", leider kein einziges Mal off, auch wenn Warmwasser zwischendurch für 45 min erzeugt wird und die Abfrage alle 5 min stattfindet ... irgendwas scheint da also nicht zu stimmen ..

darkmission

@StefanJoe
Ja das scheint so. Wie ich schon geschrieben hatte, habe ich eine "alte" Vitocal 300-G Sole Wärmepumpe mit 3W Ventil. Ich habe mal gehört, dass die neuen kein 3 Wege Ventil mehr haben, sondern zwei Verdichter und darum kein 3W Ventil mehr benötigen. Ob das stimmt weiß ich aber nicht.

Wenn ich das richtig gelesen habe, hast Du eine Vitocal 200 S, Luftwärmepumpe mit Splittgerät, oer so ähnlich  ;D .
Darin scheint, lt. Internetauskunft , die Vitotronic 200 verbaut zu sein. Wenn man jetzt mal Google benutzt und "vitotronic 200 3 wege ventil parameter" eingibt, erscheint u.A. eine "Fachkraft Serviceanleitung". Da stehen ganz viele Parameter drin, u.A. 730D, wo anscheinend erstmal drin steht, ob überhaupt ein 3 Wege Ventil verbaut wurde.

Wenn dem so ist, dann gibt es in der ecnEventType.xml mehrer Einträge zu dem 3W_Ventil:
WPR_RelaisZustand_3W_VentilHeizen_WW1~0x0414
WPR_RelaisZustand_3W_VentilHeizen_WW2~0x0415

WPR_RelaisZyklen_3W_VentilHeizen_WW1~0x0514
WPR_RelaisZyklen_3W_VentilHeizen_WW2~0x0515

WPR_RelaisLaufzeiten_3W_VentilHeizen_WW1~0x0594
WPR_RelaisLaufzeiten_3W_VentilHeizen_WW2~0x0595

Kannst ja selber mal nachsehen und ein bischen Testen. Den Eintrag den ich vorher aus meiner Config gepostet habe, funktioniert bei mir wunderbar.
Raspberry 2x PiB, 2x Pi2, 2x Pi3, 2xPi0, CUL, HM-LC-DIM1T-FM, LW12FC, Intertechno Funksteckdosen, OSMC, Viessmann Heizungssteuerung, eigene Photovoltaik Anbindung ( Effekta ), eigener "Powermeter" (3 x LED, 1 x Ferraris), AVR Steuerung, IR, Harmony Hub, SIGNALduino433/868, Dooya Rolladensteuerung...

Adam

@ darkmission:

Nein diese Adresse ist so codiert wie ich sie als Timer realisiert habe.

<ALZ>0x30B0FFFFFFFFFFFF30B0FFFFFFFFFFFF30B0FFFFFFFFFFFF30B0FFFFFFFFFFFF30B0FFFFFFFFFFFF30B0FFFFFFFFFFFF30B0FFFFFFFFFFFF</ALZ>

Das sind 7 (Tage) mal 3 Pärchen on / off Uhrzeiten.

Ich glaube der Richtige Wert bei Dir müsste folgender sein:

WPR_Tagesprogramm_HK1~0x9000
ReadWrite 0x9000
Virtual_READ
Virtual_WRITE
Array 168 0 168 0 0
@@viessmann.eventtype.WPR_Tagesprogramm_HK1.description
ByteArray
NoConversion
0 0
NoLogging 7 2 0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA


Ich denke das wird wie folgt codiert sein

168 Byte / 7 (Tage) -> 24 Byte pro Tag

Dann müsste man sich mal anschauen was da so im Log bei Verbose 5 von der Heizung zurück kommt.
Also am Besten mal probieren:

POLL, 01F7900008, timer,  1     , TIMER_2_MO          , -


Da wird zwar immer noch kein Timer bei rumkommen, da wir für diesen Timer-Typ einen eigenen Parser brauchen,
aber man kann sehen was die Heizung für erste 8 Bytes an der Adresse stehen hat und das müsste man mit Deiner Heizung
0 -14 vergleichen.
Vielleicht kannst Du ab 0 Uhr zum Test mal jede 15 minuten einen anderen Wert setzen.

Gruß
Adam

darkmission

Leider nix, oder ich sehe es nicht aber ff sieht nach nix aus.

2016.01.09 22:39:54 5: VCONTROL: Setze sendstr
2016.01.09 22:39:54 5: VCONTROL: send '01F7900008'
2016.01.09 22:39:54 5: SW: 01f7900008
2016.01.09 22:39:54 5: VCONTROL_READ
2016.01.09 22:39:54 5: VCONTROL: VCONTROL_Read 'ff'
2016.01.09 22:39:54 5: VCONTROL: VCONTROL_Read receive_len < 16, ff
2016.01.09 22:39:54 5: VCONTROL_READ
2016.01.09 22:39:54 5: VCONTROL: VCONTROL_Read 'ff'
2016.01.09 22:39:54 5: VCONTROL: VCONTROL_Read receive_len < 16, ffff
2016.01.09 22:39:54 5: VCONTROL_READ
2016.01.09 22:39:54 5: VCONTROL: VCONTROL_Read 'ff'
2016.01.09 22:39:54 5: VCONTROL: VCONTROL_Read receive_len < 16, ffffff
2016.01.09 22:39:54 5: VCONTROL_READ
2016.01.09 22:39:54 5: VCONTROL: VCONTROL_Read 'ff'
2016.01.09 22:39:54 5: VCONTROL: VCONTROL_Read receive_len < 16, ffffffff
2016.01.09 22:39:54 5: VCONTROL_READ
2016.01.09 22:39:54 5: VCONTROL: VCONTROL_Read 'ff'
2016.01.09 22:39:54 5: VCONTROL: VCONTROL_Read receive_len < 16, ffffffffff
2016.01.09 22:39:54 5: VCONTROL_READ
2016.01.09 22:39:54 5: VCONTROL: VCONTROL_Read 'ff'
2016.01.09 22:39:54 5: VCONTROL: VCONTROL_Read receive_len < 16, ffffffffffff
2016.01.09 22:39:54 5: VCONTROL_READ
2016.01.09 22:39:54 5: VCONTROL: VCONTROL_Read 'ff'
2016.01.09 22:39:54 5: VCONTROL: VCONTROL_Read receive_len < 16, ffffffffffffff
2016.01.09 22:39:54 5: VCONTROL_READ
2016.01.09 22:39:54 5: VCONTROL: VCONTROL_Read 'ff'
2016.01.09 22:39:54 5: VCONTROL: receive 'HK1_Timer_2_MO : -----/-----/-----/-----/'

Raspberry 2x PiB, 2x Pi2, 2x Pi3, 2xPi0, CUL, HM-LC-DIM1T-FM, LW12FC, Intertechno Funksteckdosen, OSMC, Viessmann Heizungssteuerung, eigene Photovoltaik Anbindung ( Effekta ), eigener "Powermeter" (3 x LED, 1 x Ferraris), AVR Steuerung, IR, Harmony Hub, SIGNALduino433/868, Dooya Rolladensteuerung...

darkmission

@StefanJoe

Habe gerade noch auf der openv Seite geblättert. Da steht die Vitocal200S in der ersten Spalte.
Angeblich ist der Status des 3W Ventils unter der Adresse 0x494 zu finden.
Raspberry 2x PiB, 2x Pi2, 2x Pi3, 2xPi0, CUL, HM-LC-DIM1T-FM, LW12FC, Intertechno Funksteckdosen, OSMC, Viessmann Heizungssteuerung, eigene Photovoltaik Anbindung ( Effekta ), eigener "Powermeter" (3 x LED, 1 x Ferraris), AVR Steuerung, IR, Harmony Hub, SIGNALduino433/868, Dooya Rolladensteuerung...

Adam

@darkmission:

ja das sieht so aus als wäre da nix, die Heizung liefert ja auch immer nur ein Byte zurück!?
Schade ...

Du hast aus Deiner Benienungsanleitung noch geschrieben:
Zitat
Schaltzeiten 7201.
Festtemperatur 7202.

.....

Speichertemperatur Parameter 6000.
Schaltzeiten Parameter 6001.

Da gibt es auch Adressen:

WPR_HeizSpeicher_SollTemp_Heizspeicher~0x7202 SInt 2 Byte
WPR_HeizSpeicher_Wtimer_Puffer~0x7201 SInt 2 Byte


WPR_WW_Temp_soll~0x6000 SInt 2 Byte
WPR_WW_WTimer~0x6001 SInt 2 Byte

2 Byte sind zwar ein bischen wenig, aber man kann ja mal schauen, was da zurück kommt.

Das hier wären auch noch Kandidaten:

Array 24Byte

vielleicht mal versuchen hier ein paar bytes zu lesen ....

WPR_Tagesprogramm_HK1_Di~0x9001
WPR_Tagesprogramm_HK1_Do~0x9003
WPR_Tagesprogramm_HK1_Fr~0x9004
WPR_Tagesprogramm_HK1_Mi~0x9002
WPR_Tagesprogramm_HK1_Mo~0x9000
WPR_Tagesprogramm_HK1_Sa~0x9005
WPR_Tagesprogramm_HK1_So~0x9006

KarlHeinz2000

Zitat von: Adam am 07 Januar 2016, 18:22:37
@darkmission

Ich habe eine Lösung ohne das Modul zu ändern  8)

Bevor man die SETs abschickt, setzt man den POLL auf Pause durch das Attribut disable

Also:



attr Heizung disable 1

set Heizung ......

set Heizung ......

set Heizung .......

attr Heizung disable 0



Hat bei mir funktioniert  ;D

Bei mir geht es so leider (noch) nicht  :(

Adam

Geht es etwas detaillierter  ;D

Was versuchst Du? Wie sieht das Log mit verbose 5 dazu aus?

Adam

KarlHeinz2000

Der Versuch Do und Fr zusammen zu setzen (mit disable=1):

2016.01.14 23:00:05 5: VCONTROL: DEBUG SET <-> SET / TIMER_5_DO <-> WW
2016.01.14 23:00:05 5: VCONTROL: DEBUG SET <-> SET / TIMER_5_DO <-> HWW
2016.01.14 23:00:05 5: VCONTROL: DEBUG SET <-> SET / TIMER_5_DO <-> AUS
2016.01.14 23:00:05 5: VCONTROL: DEBUG SET <-> SET / TIMER_5_DO <-> S-OFF
2016.01.14 23:00:05 5: VCONTROL: DEBUG SET <-> SET / TIMER_5_DO <-> S-ON
2016.01.14 23:00:05 5: VCONTROL: DEBUG SET <-> SET / TIMER_5_DO <-> P-OFF
2016.01.14 23:00:05 5: VCONTROL: DEBUG SET <-> SET / TIMER_5_DO <-> P-ON
2016.01.14 23:00:05 5: VCONTROL: DEBUG SET <-> SET / TIMER_5_DO <-> WWTEMP
2016.01.14 23:00:05 5: VCONTROL: DEBUG SET <-> SET / TIMER_5_DO <-> K26
2016.01.14 23:00:05 5: VCONTROL: DEBUG SET <-> SET / TIMER_5_DO <-> URLON
2016.01.14 23:00:05 5: VCONTROL: DEBUG SET <-> SET / TIMER_5_DO <-> URLOFF
2016.01.14 23:00:05 5: VCONTROL: DEBUG SET <-> SET / TIMER_5_DO <-> SYSTIME
2016.01.14 23:00:05 5: VCONTROL: DEBUG SET <-> SET / TIMER_5_DO <-> NIVEAU
2016.01.14 23:00:05 5: VCONTROL: DEBUG SET <-> SET / TIMER_5_DO <-> Temp-Raum-Soll
2016.01.14 23:00:05 5: VCONTROL: DEBUG SET <-> SET / TIMER_5_DO <-> Temp-Raum-Soll-red
2016.01.14 23:00:05 5: VCONTROL: DEBUG SET <-> SET / TIMER_5_DO <-> TIMER_2_MO
2016.01.14 23:00:05 5: VCONTROL: DEBUG SET <-> SET / TIMER_5_DO <-> TIMER_3_DI
2016.01.14 23:00:05 5: VCONTROL: DEBUG SET <-> SET / TIMER_5_DO <-> TIMER_4_MI
2016.01.14 23:00:05 5: VCONTROL: DEBUG SET <-> SET / TIMER_5_DO <-> TIMER_5_DO
2016.01.14 23:00:06 5: VCONTROL: DEBUG SET <-> SET / TIMER_6_FR <-> WW
2016.01.14 23:00:06 5: VCONTROL: DEBUG SET <-> SET / TIMER_6_FR <-> HWW
2016.01.14 23:00:06 5: VCONTROL: DEBUG SET <-> SET / TIMER_6_FR <-> AUS
2016.01.14 23:00:06 5: VCONTROL: DEBUG SET <-> SET / TIMER_6_FR <-> S-OFF
2016.01.14 23:00:06 5: VCONTROL: DEBUG SET <-> SET / TIMER_6_FR <-> S-ON
2016.01.14 23:00:06 5: VCONTROL: DEBUG SET <-> SET / TIMER_6_FR <-> P-OFF
2016.01.14 23:00:06 5: VCONTROL: DEBUG SET <-> SET / TIMER_6_FR <-> P-ON
2016.01.14 23:00:06 5: VCONTROL: DEBUG SET <-> SET / TIMER_6_FR <-> WWTEMP
2016.01.14 23:00:06 5: VCONTROL: DEBUG SET <-> SET / TIMER_6_FR <-> K26
2016.01.14 23:00:06 5: VCONTROL: DEBUG SET <-> SET / TIMER_6_FR <-> URLON
2016.01.14 23:00:06 5: VCONTROL: DEBUG SET <-> SET / TIMER_6_FR <-> URLOFF
2016.01.14 23:00:06 5: VCONTROL: DEBUG SET <-> SET / TIMER_6_FR <-> SYSTIME
2016.01.14 23:00:06 5: VCONTROL: DEBUG SET <-> SET / TIMER_6_FR <-> NIVEAU
2016.01.14 23:00:06 5: VCONTROL: DEBUG SET <-> SET / TIMER_6_FR <-> Temp-Raum-Soll
2016.01.14 23:00:06 5: VCONTROL: DEBUG SET <-> SET / TIMER_6_FR <-> Temp-Raum-Soll-red
2016.01.14 23:00:06 5: VCONTROL: DEBUG SET <-> SET / TIMER_6_FR <-> TIMER_2_MO
2016.01.14 23:00:06 5: VCONTROL: DEBUG SET <-> SET / TIMER_6_FR <-> TIMER_3_DI
2016.01.14 23:00:06 5: VCONTROL: DEBUG SET <-> SET / TIMER_6_FR <-> TIMER_4_MI
2016.01.14 23:00:06 5: VCONTROL: DEBUG SET <-> SET / TIMER_6_FR <-> TIMER_5_DO
2016.01.14 23:00:06 5: VCONTROL: DEBUG SET <-> SET / TIMER_6_FR <-> TIMER_6_FR


Wenn ich nur einen Tag  (hier Mi (erfolgreich)) setze, sieht das log identisch aus (disable=0):

2016.01.14 22:59:52 5: VCONTROL: DEBUG SET <-> SET / TIMER_4_MI <-> WW
2016.01.14 22:59:52 5: VCONTROL: DEBUG SET <-> SET / TIMER_4_MI <-> HWW
2016.01.14 22:59:52 5: VCONTROL: DEBUG SET <-> SET / TIMER_4_MI <-> AUS
2016.01.14 22:59:52 5: VCONTROL: DEBUG SET <-> SET / TIMER_4_MI <-> S-OFF
2016.01.14 22:59:52 5: VCONTROL: DEBUG SET <-> SET / TIMER_4_MI <-> S-ON
2016.01.14 22:59:52 5: VCONTROL: DEBUG SET <-> SET / TIMER_4_MI <-> P-OFF
2016.01.14 22:59:52 5: VCONTROL: DEBUG SET <-> SET / TIMER_4_MI <-> P-ON
2016.01.14 22:59:52 5: VCONTROL: DEBUG SET <-> SET / TIMER_4_MI <-> WWTEMP
2016.01.14 22:59:52 5: VCONTROL: DEBUG SET <-> SET / TIMER_4_MI <-> K26
2016.01.14 22:59:52 5: VCONTROL: DEBUG SET <-> SET / TIMER_4_MI <-> URLON
2016.01.14 22:59:52 5: VCONTROL: DEBUG SET <-> SET / TIMER_4_MI <-> URLOFF
2016.01.14 22:59:52 5: VCONTROL: DEBUG SET <-> SET / TIMER_4_MI <-> SYSTIME
2016.01.14 22:59:52 5: VCONTROL: DEBUG SET <-> SET / TIMER_4_MI <-> NIVEAU
2016.01.14 22:59:52 5: VCONTROL: DEBUG SET <-> SET / TIMER_4_MI <-> Temp-Raum-Soll
2016.01.14 22:59:52 5: VCONTROL: DEBUG SET <-> SET / TIMER_4_MI <-> Temp-Raum-Soll-red
2016.01.14 22:59:52 5: VCONTROL: DEBUG SET <-> SET / TIMER_4_MI <-> TIMER_2_MO
2016.01.14 22:59:52 5: VCONTROL: DEBUG SET <-> SET / TIMER_4_MI <-> TIMER_3_DI
2016.01.14 22:59:52 5: VCONTROL: DEBUG SET <-> SET / TIMER_4_MI <-> TIMER_4_MI

Oder gehört noch mehr aus dem Log zum Setzen?

Adam

Ja das ist zu wenig, man sieht ja nicht was und ob überhaupt etwas an die Heizung gesendet wird und was sie antwortet.
Am besten mal den ganzen Log per Textdatei anhängen.....

KarlHeinz2000