Anbindung Viessmann Heizung mit VCONTROL300

Begonnen von srxp, 23 Februar 2017, 13:15:51

Vorheriges Thema - Nächstes Thema

Patrik.S

Hallo andies,

sicher, das dein Mapping past?
Meine Anlage (Vitodens 300W Typ WB3D) meldet sich bei der Abfrage als Geräte "20CB" zurück. Ich hab also ein  HO1x Gerät laut vcontrold / openv Projekt.
Setze ich die einzelnen Zustände, bekomme ich dieses entsprechende Mapping, Der Text ist also an den Displaywert angepasst:
MAPPING, OPERATIONSTATE, 00, Abschaltbetrieb (komplett aus), - , -
MAPPING, OPERATIONSTATE, 01, Nur Warmwasseraufbereitung, - , -
MAPPING, OPERATIONSTATE, 02, Heizen und Warmwasser eingeschaltet, - , -


Partybetrieb und Frostschutz hab ich nicht probiert.

Meine HO1x passt jedoch nicht zu deiner HO1x Konfiguration, denn bei Dir ist Warmwasser und Heizen der Wert 03 und der Abschaltbetrieb (beides Aus) der Wert 05

Zitat von: andies am 23 November 2017, 05:24:19
hat laut Unterlagen

$modus_200_HO1x{'00'} = 'Nur_Warmwasser';
$modus_200_HO1x{'01'} = 'Reduziert'; # "Ferienbetrieb"; auswählbar, wird bei mir aber nicht angezeigt
$modus_200_HO1x{'02'} = 'Normal'; # vermutlich "Partybetrieb"; bei mir händisch auswählbar, wird aber nicht angezeigt
$modus_200_HO1x{'03'} = 'Heizen_und_Warmwasser';
$modus_200_HO1x{'04'} = 'Frostschutz';
$modus_200_HO1x{'05'} = 'Abschaltbetrieb';


andies

Also ich habe die Daten aus der vcontrold.xml und früher mal überprüft (momentan nur Fernzugriff, bin nicht vor Ort). Und da sah das so aus:
        <unit name='BetriebsArt'>
           <abbrev>BA</abbrev>
           <type>enum</type>
           <enum bytes='00' text='WW'/>
           <enum bytes='01' text='RED'/>
           <enum bytes='02' text='NORM'/>
           <enum bytes='04' text='H+WW FS'/>
           <enum bytes='03' text='H+WW'/>
           <enum bytes='05' text='ABSCHALT'/>
           <enum text='UNKNOWN'/>
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Absolute Beginner

#182
Meine Heizungsanlage: Vitodens 222-W mit Regelung Vitotronic 200, Typ HO1B. Ich habe meine bisherige funktionierende Installation (89_VCONTROL.pm + VScotHO1.cfg) umstellen auf 89_VCONTROL300.pm + VScotHO1_300.cfg.
Könnt Ihr mir bitte helfen: nach dem Neustart sehe ich diese Fehlermeldungen

2017.12.26 12:22:17 3: Heizung device opened
2017.12.26 12:22:19 2: VCONTROL300: Error while requesting data! Maybe address '08A2' or expected data length '1' is wrong!!!
2017.12.26 12:22:19 2: VCONTROL300: Error while requesting data! Maybe address '08A2' or expected data length '1' is wrong!!!
2017.12.26 12:22:19 2: VCONTROL300: Error while requesting data! Maybe address '08A2' or expected data length '1' is wrong!!!
2017.12.26 12:22:19 2: VCONTROL300: Error while requesting data! Maybe address '08A2' or expected data length '1' is wrong!!!
2017.12.26 12:22:19 2: VCONTROL300: Error while requesting data! Maybe address '08A2' or expected data length '1' is wrong!!!
2017.12.26 12:22:19 2: VCONTROL300: Retry limit for parameter 08A2 reached! Aborting!
2017.12.26 12:22:20 2: VCONTROL300: Error while requesting data! Maybe address '2335' or expected data length '1' is wrong!!!
2017.12.26 12:22:20 2: VCONTROL300: Error while requesting data! Maybe address '2335' or expected data length '1' is wrong!!!
2017.12.26 12:22:20 2: VCONTROL300: Error while requesting data! Maybe address '2335' or expected data length '1' is wrong!!!
2017.12.26 12:22:20 2: VCONTROL300: Error while requesting data! Maybe address '2335' or expected data length '1' is wrong!!!
2017.12.26 12:22:20 2: VCONTROL300: Error while requesting data! Maybe address '2335' or expected data length '1' is wrong!!!
2017.12.26 12:22:20 2: VCONTROL300: Retry limit for parameter 2335 reached! Aborting!
2017.12.26 12:22:20 3: VCONTROL300: USB device closed
2017.12.26 12:23:06 2: VCONTROL300: Error! Set name 'HWW' does not exist!
2017.12.26 12:23:06 1: VCONTROL300: attr 'vitotronicType' not set correctly, using internal default value '200_HOxx' which might not match to your heater!
2017.12.26 12:23:06 3: VCONTROL300: USB connection opened
2017.12.26 12:23:06 3: Opening Heizung device /dev/ttyUSB0
2017.12.26 12:23:06 3: Setting Heizung serial parameters to 4800,8,E,2
2017.12.26 12:23:06 3: Heizung device opened
2017.12.26 12:23:08 2: VCONTROL300: Error while sending command for parameter 7660 (Status 0x15) : Retry 0!!!
2017.12.26 12:23:08 2: VCONTROL300: Error while sending command for parameter 7660 (Status 0x15) : Retry 1!!!
2017.12.26 12:23:09 2: VCONTROL300: Error while requesting data! Maybe address '08A2' or expected data length '1' is wrong!!!
2017.12.26 12:23:09 2: VCONTROL300: Error while requesting data! Maybe address '08A2' or expected data length '1' is wrong!!!
2017.12.26 12:23:09 2: VCONTROL300: Error while requesting data! Maybe address '08A2' or expected data length '1' is wrong!!!
2017.12.26 12:23:09 2: VCONTROL300: Error while requesting data! Maybe address '08A2' or expected data length '1' is wrong!!!
2017.12.26 12:23:09 2: VCONTROL300: Error while requesting data! Maybe address '08A2' or expected data length '1' is wrong!!!
2017.12.26 12:23:09 2: VCONTROL300: Retry limit for parameter 08A2 reached! Aborting!
2017.12.26 12:23:10 2: VCONTROL300: Error while requesting data! Maybe address '2335' or expected data length '1' is wrong!!!
2017.12.26 12:23:10 2: VCONTROL300: Error while requesting data! Maybe address '2335' or expected data length '1' is wrong!!!
2017.12.26 12:23:10 2: VCONTROL300: Error while requesting data! Maybe address '2335' or expected data length '1' is wrong!!!
2017.12.26 12:23:10 2: VCONTROL300: Error while requesting data! Maybe address '2335' or expected data length '1' is wrong!!!
2017.12.26 12:23:10 2: VCONTROL300: Error while requesting data! Maybe address '2335' or expected data length '1' is wrong!!!
2017.12.26 12:23:10 2: VCONTROL300: Retry limit for parameter 2335 reached! Aborting!
2017.12.26 12:23:11 3: VCONTROL300: USB device closed


edit:
Nachdem ich die Adresse 08A2 gegen 0A82 getauscht (wohl Fehler in Andies' VScotHO1_300.cfg) und die Adresse 2335 ausgeklammert habe läuft die Konfiguration durch. Es gibt nach wie vor diesen Hinweis:
VCONTROL300: attr 'vitotronicType' not set correctly, using internal default value '200_HOxx' which might not match to your heater!


und die Statusmeldung 'HWW' taucht komischwerweise auch immer noch auf. Dankbar bin ich deshalb für Beispielsdefinitionen und speziell auch für die Möglichkeit, Fehlermeldungen anzuzeigen.

edit2:
wer lesen kann ist klar im Vorteil... 'vitronicType' in Attributes eingepflegt - und auch diese Fehlermeldung ist verschwunden. Dafür tauchen nun diese merkwürdigen Einträge im Logfile auf:
2017.12.26 17:25:47 1: PERL WARNING: Use of uninitialized value $mybuf in unpack at ./FHEM/89_VCONTROL300.pm line 1295.
2017.12.26 17:25:47 1: Timeout for VCONTROL300_DoUpdate reached, terminated process 29129
2017.12.26 17:25:49 1: Timeout for VCONTROL300_DoUpdate reached, terminated process 29131
2017.12.26 17:25:49 1: PERL WARNING: Use of uninitialized value in concatenation (.) or string at ./FHEM/89_VCONTROL300.pm line 1161.


edit 3:
und nach Modifikation der anderen Attribute und Neustart sind auch die letzten Fehlermeldungen weg. Ich bin glücklich.
Raspberry Pi 3 - CUL868 - Jessie - FHEM5.8 - MQTT - Node-RED
HM-TC-IT-WM-W-EU, HM-LC-BI1PBU-FM, HM-Sec-SCo, HM-WDS30-0T2-SM, SOMFY, Echo, ESP, SonOff

Absolute Beginner

Die letzten Tage habe ich mich mit der Konfigurationsdatei VScotHO1.cfg für die VCONTROL300 beschäftigt. Macht Spaß, weil Änderungen sofort sichtbar sind und evtl. korrigiert werden können. Ich habe meine Version hier angehängt.

Die Readings sind sehr schnell verfügbar. Ich habe leider keinen Weg gefunden, sie hier darzustellen. Unklar ist mir, welche Inhalte 'state' und auf 55D3 'Brenner' haben. Sind immer 0 bei mir. Außerdem tauchen in den Readings 'UpdateStatus' und 'UpdateTime' auf - keine Ahnung, wo die herkommen.

Guten Rutsch heute abend!
Werner
Raspberry Pi 3 - CUL868 - Jessie - FHEM5.8 - MQTT - Node-RED
HM-TC-IT-WM-W-EU, HM-LC-BI1PBU-FM, HM-Sec-SCo, HM-WDS30-0T2-SM, SOMFY, Echo, ESP, SonOff

crispyduck

#184
Hallo und alles Gute im neuen Jahr!

Hat jetzt doch ein bisschen länger gedauert bis ich mir das neue Modul von Patrik.S angeschaut habe.

Als erstes einmal gleich eine Stunde gesucht warum bei der letzten hochgeladenen Version die Hilfe nicht funktioniert und nach langem Herumprobieren dann herausgefunden das das File wohl nicht als UTF-8 abgespeichert wurde.

Habe mir da ich mein cfg File weiterhin in der DB speichern will das Modul wieder so angepasst, das es auch mit configDB funktioniert.
Wenn configDB eingesetzt wird, muss das cfg File auch in der DB gespeichert werden, wenn nicht, ändert sich eigentlich nichts und das cfg File liegt einfach irgendwo am Filesystem.

Die Betriebsarten meiner WO1C habe ich mir jetzt nur mal kurz angesehen, also Aus, nur WW und WW+Heizen funktionieren mal genau so wie ich sie auch bei der Steuerung direkt einstellen kann. Normal, Abgesenkt und Abschaltbetrieb zeigen mir am Display der Steuerung nur "Externes Programm" an. Bei Absenk und Normalbetrieb wird zumindest richtig der Mond oder die Sonne mit angezeigt, was der Abschaltbetrieb genau ist weiß ich jetzt nicht, muss ich mir erst genauer ansehen.
Anbei die letzte Modul Version von Patrik.S + meine Änderungen für die configDB.

Lg,
crispyduck

Newbie

Hallo crispyduck,

hab deine Version von gestern installiert, läuft ohne Probleme - wobei ich nur Daten der Heizung auslese
aber keine Einstellungsänderungen per FHEM vornehme.

danke & vg Jens

P.S.: cfg in DB
fhem-6.1 (configDB+DbLog)  auf ODROID-XU4

crispyduck

Danke für die Rückmeldung.

Ja, lese eigentlich auch nur aus. Bei der Betriebsart dürfte bei meiner WO1C (204D) aber wohl auch noch der Spar und Partymodus dazu gehören.

Zumindest verwenden wir seit heuer zum ersten mal des öfteren den Sparmodus und das dürfte Betriebsart 82 sein.

Muss mal schauen ob ich vielleicht irgendwo eine bessere Datenpunktliste für meine Anlage finde.

Lg,
crispyduck


Patrik.S

@Absolute Beginner:
A) Es könnte sein, das durch Copy&Paste quer durchs Internet die Adresse 55D3 als Brenner Status gehandelt wird.
B) Falls es Anlagen gibt, bei der die Adresse 55D3 versorgt wird, kann es den Brennerstatus anzeigen oder die Auslastung des Brenner in Prozent (Modulierung????)
Zumindest ließ dir mal das durch: https://github.com/openv/openv/issues/314
Es kann nämlich auch sein, das bei einigen Steuerungen diese Adresse so etwas wie die Prozenzauslastung des Brenners ausgibt. Sieht sehr danach aus.

Versuche mal den Flammenstatus mit der Adresse 55DE auszulesen.
Die 55D3 als state zu interpretieren, hat bei mir auch immer Dauerhaft nur "Aus (0)" ausgegeben, da das Modul nicht die Bitmaske interpretiert.

Ich habe jetzt diese Zeilen drinnen seit einer Stunde:

POLL, 55D3, 1ByteU, 1       , HZ-BrennerAuslastung   , -
POLL, 55DE, 1ByteU, state , HZ-Brenner             , -


Meine Adresse 55DE bekommt immer ein 003C = Bits 0000 wenn die Flamme aus ist und ein 0B47 =Bits 1011, wenn der Brenner läuft
Ich musss also mal demnächst ein weiteres Update im Modul für den DIVISOR=state machen, damit die Bits richtig erkannt werden als Status oder der Wert "00" ist aus und alles was broßer 00 ist, bedeutet "An".

@crispyduck:
Der Spar und Partymodus dürfte nicht in der Betriebsart auftauchen als eigener mapbarer Wert "82".

Die Datenpunktdatei von Viessmann sagt dazu das jeder Heizkreis seine Betriebsart hat und zusätzlich diese Adressen, die den Zustand über Partybetrieb & Sparbetrieb der Heizkreise ausgeben:
Partybetrieb A1M1 0x2303 / 0=Aus,1=Ein
Partybetrieb M2     0x3303 / 0=Aus,1=Ein
Partybetrieb M3     0x4303 / 0=Aus,1=Ein

Sparbetrieb A1M1  0x2302 / 0=Aus,1=Ein
Sparbetrieb M2      0x3302 / 0=Aus,1=Ein
Sparbetrieb M3      0x4302 / 0=Aus,1=Ein

Und dann noch:
Zustand Partybetrieb A1M1 0x2330 / 0=Aus,1=Ein / Zustand Partybetrieb
Zustand Partybetrieb M2   0x3330 / 0=Aus,1=Ein / Zustand Partybetrieb
Zustand Partybetrieb M3   0x4330 / 0=Aus,1=Ein / Zustand Partybetrieb
Zustand Sparbetrieb A1M1 0x2331 / 0=Aus,1=Ein / Zustand Sparbetrieb
Zustand Sparbetrieb M2   0x3331 / 0=Aus,1=Ein / Zustand Sparbetrieb
Zustand Sparbetrieb M3   0x4331 / 0=Aus,1=Ein / Zustand Sparbetrieb

crispyduck

#188
Hallo Patrik.S,

Ja das hätte ich mir eigentlich auch immer erwartet.

Bei der WO1C dürfte es aber auch über den Betriebsstatus (0xB000) ausgegeben werden.
82 Heizen+WW+ Sparbetrieb, 42 Heizen+WW+Partybetrieb, 41 nur WW+Partybetrieb,....

Habe gerade eben zufällig eine Datenpunktliste für Vitogate 200 Typ EIB VT200WO1C gefunden, und da wird dies auch so oder so ähnlich beschrieben. Zumindest ist Sparbetrieb und Partiybetrieb auch 0xB000, wieso daraus dann dezimal 42 oder 82 wird kann zumindest ich nicht aus dem Dokument lesen.

Lg,
crispyduck

gero112233

Hallo Leute,

es ist ein Wahnsinn, was ihr da leistet!

kurze Anmerkungen zu vorigen Meldungen:

  • @AbsolutBeginner: vielen Dank für die Datei VScotHO1_300.cfg!
    Ich habe diese heute getestet und bin begeistert! Super Arbeit.
    Ein kleiner Fehler: Niveau kann auch negativ sein (ist bei mir -1). Dar Datentyp muss somit 1ByteS sein.
  • @crispyduck: Das pdf Datenpunkte Vitogate 200 EIB bei Verwendung Vitotronic 200 W01C.pdf hat 0 Bytes. Da ist etwas schief gegangen.

Und jetzt zu meinem Problem: gibt es weitere fertige cfg Dateien? Ich benötige die cfg für V050HK3W (20AB).

Ich habe das Problem, dass ich zwei Steuerungen für eine Gastherme für ein Einfamilienhaus habe.

  • Die Steuerung VScotHO1 (20CB) ist in der Gastherme verbaut und kümmert sich um

    • Warmwasser
    • einen Badezimmer-Handtuch-Heizkörper mit 50° aufwärts(ohne Mischer)
  • Die Steuerung V050HK3W (20AB) ist mit LON mit der Gastherme verbunden und kümmert sich um

    • die Fußbodenheizung nur im Badezimmer (mit Mischer)
    • Fußbodenheizung Rest des Hauses (mit Mischer)


Ich benötige also für zwei Heizkreise so etwas wie Vorlauf soll, Vorlauf ist, MischerStati, PumpenStati.Raumtemeraturen ist/soll, .. für die Steuerung VScotHO1 (20CB).

Alle Kesselinformationen kommen aus der Steuerung VScotHO1.

Ich hoffe, ihr könnt mir helfen!

Beste Grüße,
Gero

postfux_at

#190
Hallo Gero

Ich habe 2 Heizkreise mit Mischer an der 20CB mit diesen Adressen:

Habe aber noch die Version "89_VCONTROL300.pm   11340 2017-01-09 23:16:00Z srxp" in Verwendung.

Zu den Mischern: ich glaube da gibt es nur Auf, Zu  oder Regelbetrieb, habe ich aber nicht in Verwendung.
Würde auch gerne die Position der Mischer in % wissen.

POLL, A38F, 2ByteU_1stByte, 2  , Brenner Leistung        , -
POLL, A38F, 2ByteU_2ndByte, state, Brenner Status  , -
POLL, 55D3, 2ByteU_1stByte, 1, Brenner Leistung2     , -

POLL, 3301, 1ByteU ,  mode   , state-M2                , -
POLL, 4301, 1ByteU ,  mode   , state-M3                , -

POLL, 3906, 1ByteU, state , Pumpe-M2           , -
POLL, 4906, 1ByteU, state , Pumpe-M3           , -

POLL, 080C, 2ByteU, 10  , Temp-Vorlauf        , -
POLL, 3900, 2ByteU, 10  , Temp-Vorlauf-M2  , -
POLL, 4900, 2ByteU, 10  , Temp-Vorlauf-M3  , -
POLL, 3544, 2ByteU, 10  , Temp-Vorlauf-Soll-M2   , -
POLL, 4544, 2ByteU, 10  , Temp-Vorlauf-Soll-M3   , -

POLL, 0898, 2ByteS, 10  , Temp-RaumM2         , -
POLL, 089A, 2ByteS, 10  , Temp-RaumM3         , -

POLL, 3306, 1ByteU, 1   , Soll-Temp-Raum-M2   , -
POLL, 4306, 1ByteU, 1   , Soll-Temp-Raum-M3   , -
POLL, 3307, 1ByteU, 1   , Soll-Red-Temp-RaumM2         , -
POLL, 4307, 1ByteU, 1   , Soll-Red-Temp-RaumM3         , -


Schau mal ob es klappt

LG Markus

gero112233

Servus postfux_at,

vielen Dank! Werde ich gleich morgen ausprobieren.

Es wird auch spannend VCONTROL 2 mal laufen zu haben. Wie unterscheide ich die zwei USB-Devices.

Kannst du vielleicht gleich die Datei als Anlage schicken?

LG,
Gero

crispyduck

Hallo,

habe die Datei nochmal hochgeladen.

USB Devices solltest du mit der device-id einbinden, dann ist die Zuordnung auch eindeutig.

ls -l /dev/serial/by-id
gibt dir die id der usb devices aus,
und dann das device so anlegen:
define VCONTROL300 Heizung1 /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AL00AKYZ-if00-port0 ./FHEM/89_VCONTROL300.cfg 90

Ob es irgend welche Probleme mit mehreren VCONTROL300 devices gibt weiß ich leider nicht.

Lg,
crispyduck

gero112233

Hallo Leute,

mein Status schaut nicht gut aus.

zuerst zum USB-Device:
Ich habe zwei USB-Verbindungen: eine zu VScot, die andere zu V050HK3W.
Die ID's der Devices sind ident: usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0
Ich wollte jetzt die Namen per PATH definieren:
/dev/serial/by-path/platform-3f980000.usb-usb-0:1.2:1.0-port0
/dev/serial/by-path/platform-3f980000.usb-usb-0:1.4:1.0-port0
ABER: der Doppelpunkt im Namen bewirkt, dass eine TCP/IP Verbindung aufgebaut wird, was natürlich nicht funktionieren kann.
Ich musste also die Devices als /dev/ttyUSB definieren.

Meine Definitionen:
define Viessmann_Kessel VCONTROL300 /dev/ttyUSB2 /opt/fhem/FHEM/VScotHO1_300.cfg
define Viessmann_Steuerung VCONTROL300 /dev/ttyUSB3 /opt/fhem/FHEM/V050HK3W_300.cfg  180 KW


Im ersten Moment schaut alles gut aus, aber in Wirklichkeit scheint nur eine Config-Datei aktiv zu sein:
entweder VScotHO1_300.cfg oder V050HK3W_300.cfg

Es schaut für mich so aus, als wenn die letzte gelesene Konfiguration zieht und das Modul VCONTROL300 nicht für zwei Devices arbeiten kann. Schade.
Ich verstehe von Perl und FHEM viel zu wenig, um abzuschätzen, was alles geändert werden müsste, um zwei Devices korrekt abzuarbeiten.

Da die Steuerung V050HK3W sowieso das 300er Protokoll nicht beherrscht, wäre es einen Versuch wert, die Steuerung V050HK3W mit dem Modul VCONTROL abzuarbeiten. Da aber die Konfiguration von diesem Modul anders ausschaut, glaube ich nicht, dass ich mir das antue.

Vielleicht ließt ein Profi diese Zeilen und kann mir helfen.

Auf jeden Fall vielen Dank für die Unterstützung, die ihr bereits geleistet habt!

Beste Grüße,
Gero

crispyduck

Hallo,

das problem das bei : TCP genommen wird sollte recht einfach behoben werden können.
Habe das zwar nicht getestet, aber in Zeile 222 aus:

#Determine if USB device or TCP Connection is used
if (index($dev, ':') >= 0) {


foldendes machen:

#Determine if USB device or TCP Connection is used
if (index($dev, '/') = -1) {


dann sollte nur tcp genommen werden wenn kein / im device ist.

Bezüglich config file, welche VCONTROL300 Version verwendest du? Also speziell mit den Änderungen für configdb oder ohne?

Ein verbose 5 vom laden der config wäre auch interessant.

Lg,
crispyduck