Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)

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

Vorheriges Thema - Nächstes Thema

EIB-Fan

#1185
Hallo srxp,

bezüglich der Programmierung des Spar- & Party-Modus bin ich einen Schritt weiter.

Über die Auswahlliste funktioniert es. Ich habe das aktuell so programmiert:

SET,     2330,      1ByteU,         state, Modus-Party       , -
SET,     2331,      1ByteU,         state, Modus-Spar        , -


In der VCONTROL300-Hilfe steht, dass bei Spar-ON Party-OFF geschalten werden soll (und umgekehrt).

ZitatGibt man in dieser Spalte einen anderen konfigurierten SETNAME an, so wird dies anschließend ausgeführt.
Beispiel: nach dem Spar Modus (S-ON) gesetzt wurde, muss der Party Modus (P-OFF) ausgeschaltet werden

Ich möchte den Party-Modus z.B. aus einem DOIF heraus schalten.

Habe das jetzt so programmiert:

SET,   233000,      1ByteU,             1, P-OFF             , -
SET,   233100,      1ByteU,             1, S-OFF             , -
SET,   233101,      1ByteU,             1, S-ON              , P-OFF
SET,   233001,      1ByteU,             1, P-ON              , S-OFF


Hier kommt aber ein Fehler:
2017.01.05 18:55:26 2: VCONTROL300: Error! Set value for parameter '233001' is empty!
2017.01.05 18:55:26 2: VCONTROL300: Error! Set value for parameter '233100' is empty!


Was mache ich falsch? :-\

Gruß Jens

srxp

Hi Jens,
Du machst gar keinen fehler, ist ein Bug. Es kommt nachher eine neue Version.

Lg

srxp

Hallo zusammen,
hier wieder eine neue Version.
Hab ein paar Bugs behoben und Verbesserungen durchgeführt.
@mmi: deine benutzerdefinierte setlist sollte nun funken
@jens: auch das mit deinem spar bzw. party mode. musste den typnamen für die HOxx etwas ändern...bitte neu auswählen.
@manfredc: probierst es bitte mit dieser version nochmal

lg

stephan

ManfredC

Hallo Stephan,

Zitat von: srxp am 05 Januar 2017, 19:49:36
@manfredc: probierst es bitte mit dieser version nochmal

Danke, geht. Super Arbeit!


Grüße,

Manfred

Tobias

Hi,
ist denn hier die Idee, für jede Poll-Adresse unterschiedliche Pollzeiten angeben zu können schon mit drin?
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

ManfredC

#1190
Hallo Stephan,

letzte Nacht gab es zwei Ausreißer bei der Warmwasser Soll-Temperatur, die den Graphen "versauen":

Zitat2017-01-06_03:15:14 Heizung Temp-WarmWasser-Soll: 5
2017-01-06_04:33:12 Heizung Temp-WarmWasser-Soll: 5

Das ist für den Wert nicht tragisch, schlimmer wäre es bei aktuellen Temperaturen.

Leider habe ich gestern Abend noch verbose=5 rausgenommen und kann keine weiteren Details liefern. Habs wieder auf 5 gesetzt und werde weiter beobachten.


Grüße,

Manfred

EIB-Fan

Hallo srxp,

zu allererst muss ich mich ManfredC anschließen!
ZitatSuper Arbeit!

Habe die neue Version bezüglich des Spar- und Party-Modus getestet. Es funktioniert wie gewünscht.

SET,     2323,      1ByteU,          mode, Betriebsart       , -
SET,   232300,      1ByteU,             1, AUS               , -
SET,   232301,      1ByteU,             1, WW                , -
SET,   232302,      1ByteU,             1, WW+HZ             , -
SET,     6300,      1ByteU,             1, WWTEMP            , -
SET,     2330,      1ByteU,         state, Modus-Party       , -
SET,     2331,      1ByteU,         state, Modus-Spar        , -
SET,   233000,      1ByteU,             1, P-OFF             , -
SET,   233001,      1ByteU,             1, P-ON              , S-OFF
SET,   233100,      1ByteU,             1, S-OFF             , -
SET,   233101,      1ByteU,             1, S-ON              , P-OFF


Beim testen sind mir noch zwei Punkte aufgefallen.

1. Bei fehlerhafter Eingabe von set-Befehlen hängt sich Fhem komplett auf.
richtig:
set Viessmann WW+HZ
falsch (nur als Beispiel):
set Viessmann HZ+WW

2. Laut Hilfe kann 0 / 1 durch on /off ersetzt werden.
ZitatZusätzlich hat man hier bei Werten, die nur 0 oder 1 liefern die möglich state einzutragen.
Dies führt dazu, dass das Reading mit off (0) und on (1) belegt wird, statt mit dem Wert.

POLL,     A38F, 2ByteU_1stByte,         1, Brenner-Leistung         , -
POLL,     A38F, 2ByteU_2ndByte,     state, Brennerstatus            , -


Beim Brennerstatus hängt das Modul. Der UpdateStatus bleibt immer aktiv. :o
Es erfolgt keine Aktualisierung der Readings.

Ist das noch ein Bug oder habe ich es falsch programmiert?

Gruß Jens

srxp

Hallo zusammen,
@tobias: nein leider noch nicht. Ich merk es mir aber vor ;+)
@manfred: weiß das Problem schon, beheb ich
@jens:muss ich mir anschauen..Log wäre toll wenn es sich aufhängt.

Lg

srxp

so, hier eine neue version mit den behobenen bugs.

lg

stephan

mmi

Hi Stephan,

vielen Dank fürs Update. Setlists funktionieren nun wie gewünscht.

Wäre es möglich, die Readings wieder in der Reihenfolge auszugeben, in der sie im Config File angegeben sind? Ich denke, es hängt mit der Umstellung auf hashes zusammen, seit dem werden die Readings ungeordnet z.B. ins Filelog wegeschrieben. Das ist mehr kosmetischer Natur (macht es aber einfacher, Änderungen nachzuverfolgen).

Ein Problem ist dies aber für userreadings, bei denen mehrere Readings zusamengefasst werden (bei mir alle Fehlerregister):

2017-01-06_13:20:29 Heizung Fehler05: 00
2017-01-06_13:20:29 Heizung Fehler09: 00
2017-01-06_13:20:30 Heizung Fehler03: 00
2017-01-06_13:20:30 Heizung Fehler01: 00
2017-01-06_13:20:30 Heizung Fehler08: 00
2017-01-06_13:20:30 Heizung Fehler10: 00
2017-01-06_13:20:30 Heizung Fehlerspeicher: 01:00 02:00 03:00 04:00 05:00 06:00 07:00 08:00 09:00 10:00
2017-01-06_13:20:30 Heizung Fehler07: 00
2017-01-06_13:20:30 Heizung Fehler02: 00
2017-01-06_13:20:30 Heizung Fehler06: 00
2017-01-06_13:20:31 Heizung Fehler04: 00


Ich bin mir nicht sicher, ob Register 7,2,6 und 4 mit berücksichtigt werden.  Mein Userreading reagiert auf den Empfang von Fehler10, was zuvor zuverlässig zuletzt kam.

Fehlerspeicher:Fehler10.* {
"01:" . ReadingsNum('Heizung','Fehler01','') . " " .
"02:" . ReadingsNum('Heizung','Fehler02','') . " " .
"03:" . ReadingsNum('Heizung','Fehler03','') . " " .
"04:" . ReadingsNum('Heizung','Fehler04','') . " " .
"05:" . ReadingsNum('Heizung','Fehler05','') . " " .
"06:" . ReadingsNum('Heizung','Fehler06','') . " " .
"07:" . ReadingsNum('Heizung','Fehler07','') . " " .
"08:" . ReadingsNum('Heizung','Fehler08','') . " " .
"09:" . ReadingsNum('Heizung','Fehler09','') . " " .
"10:" . ReadingsNum('Heizung','Fehler10','') . " " ;}

EIB-Fan

Hallo Stephan,

habe deine aktuelle Version auf die von mir geschilderten Probleme getestet.

Der BrennerStatus wird mit "state" jetzt mit "on/off" angezeigt.

Bei einer set-Fehleingabe läuft Fhem normal weiter und es wird ein entsprechender Log-Eintrag generiert.

Zitat2017.01.06 13:24:27 2: VCONTROL300: Error! Set name 'HZ+WW' does not exist!

Perfekt!!!

Vielen Dank!

Gruß jens

Tom0711

Hallo,

ich habe mir einen Optolink-Adapter (RS232) gebaut, um meine Vitocal-200S Wärmepumpe anzubinden. Die Anbindung funktioniert soweit. Es handelt sich um eine vitotronic200 WO1A. Ich habe die config-datei für die WO1B verwendet, die gepollten readings stimmen soweit. Leider habe ich es bisher nicht geschafft, Werte zu setzen.

Was muss ich denn dafür alles gewährleisten?
Ich habe beispielsweise "Einstellung_Raumtemperatur" ins attribut setList geschrieben.
Ich kann daraufhin im Webinterface unter Set diesen Wert auswählen und es wird mir auch der Momentanwert angezeigt, was darauf hinweist, dass die Adresse wohl stimmt. Ich habe die Adresse auch mit der Liste http://connectivity.viessmann.com/content/dam/vi-micro/CONNECTIVITY/Vitogate/Vitogate-200/7452573/EN/vt200wo1ab_wpr300en.pdf/_jcr_content/renditions/original.media_file.download_attachment.file/vt200wo1ab_wpr300en.pdf abgeglichen, stimmt auch.

Ich kann diesen dann ändern und auf SET klicken, der Wert springt dann aber wieder auf den Ausgangswert zurück. Was habe ich übersehen?

Mit freundlichem Gruß, Thomas

srxp

Hi Thomas,
Du musst im config file auch die Sets anlegen.
Am besten kopierst du ne Poll Zeile und schreibst statt Poll dann Set hin. Die benutzerdefinierte setlist brauchst net zwingend, ausser du willst Spezial Dinge. Aber fürs erste lass die Mal weg.

Lg

Tom0711

Hallo srxp,

erstmal danke für die prompte Reaktion.
In der cfg sind bereits sets angelegt.


...
POLL, 01F7200002, 2ByteS, 10,           Einstellung_Raumtemperatur                      , -
...

...
SET,    Einstellung_Raumtemperatur,                     01F4200002, 2ByteS              , -
...


Allein POLL durch SET zu ersetzen reicht auch deshalb nicht, weil im KW-Protokoll ja F4 für write statt F7 stehen muss. Die Reihenfolge des Readingnames und der Kommunikationszeichenfolge ist im cfg-file, das ich habe, auch umgekehrt.
Das SET-pulldown im Webinterface ist bei mir auch leer.

Habe ich eventuell eine ältere Version?
89_VCONTROL.pm    11776 2016-07-10 13:57:22Z adamwit



srxp

Hi Thomas,
Achso ich dachte du verwendest das Modul von mir Vcontrol300. Für das Vcontrol modul stimmt es so wie du es hast.
Stell Mal auf verbose 5, probier die Raumtemperatur zu setzen und stell das Log hier rein.
Hast du für die Raumtemperatur wenn du 22 Grad setzen willst eh 220 geschrieben? (Nachdem du beim Set keinen Multiplikator von 10 angegeben hsst)

Lg