Viessmann Vitogate 200 mit Luftwärmepumpe (WO1C) - Fehlerwerte

Begonnen von Kohle77, 01 November 2021, 13:17:57

Vorheriges Thema - Nächstes Thema

Kohle77

Hallo,
ich möchte natürlich nicht nur fragen sondern auchmal ein paar Erfahrungen hier hinterlassen + Frage zu den Rückgabewerten.

Wir haben eine Wärmeluftpumpe bekommen, die auch von einem Viessmann Techniker installiert bzw. in Betrieb genommen wurde.
Wir wollten aber gerne noch die Meldungen der Heizung auf dem KNX BUS bekommen so das auch ein Vitogate 200 gekauft wurde.
Dies wurde aber nicht durch den Techniker in Betrieb genommen da er nur für die Heizungsanlage selbst da wäre/ist.
Wundert mich schon das eben ein Gate verkauft wurde aber dann ein Techniker kommt der dies aber nicht in Betrieb nimmt.

Naja das ist dann wohl so eben. Der link zu dem Gate: ( https://connectivity.viessmann.com/content/dam/vi-micro/CONNECTIVITY/Vitogate/Vitogate-200/7542150-KNX/Vitogate_200_Typ_KNX_Online-Hilfe.pdf/_jcr_content/renditions/original.media_file.download_attachment.file/Vitogate_200_Typ_KNX_Online-Hilfe.pdf  Stand 1. Nov 2021).
Das Gate kommuniziert nun erstmal Grunsätzlich mit der Inneneinheit über den LON Bus.
Dieser LON Bus kann man ein wenig vergleichen mit einer Strasse.
Die Anlagennummer könnte man mit der Strasse vergleichen und die Teilnehmer-Nummer ist die Hausnummer in dieser Strasse.
Nur Teilnehmer in der selben Strasse können miteinander kommunizieren dürfen aber nicht die gleiche Teilnehmer-Nummer haben.
Per default hat das Gate die Teilnehmer-Nr. 98
In der Vitotronic habe ich die 1 eingestellt.
Mehr Teilnehmer hat unsere Anlage nicht.
Soweit so gut, mit der ETS das Programm/Vorlage auf das Gate aufgespielt und dort dann über den Register "Parameter" die "Produktspezifischen Parameter" öffnen. Dort gibt es 3 Tabs. Auf einem kann man eine feste IP einstellen (wenn man das möchte).
In dem ersten Tab die Teilnehmerliste aktuallisieren. Daraufhin sollte die Heizung gefunden werden. Die gefunden Anlage auswählen und auf Anlagenkonfiguration aktuallisieren gehen. Nun wird erkannt welche Heizung dort installiert ist.
Zum Schluss dann noch Geräte, Regelung überprüfen und ihr solltet dort dann ein grünen button haben.
Leider ist es aber nun so das die rote LED auf dem Gate noch immer blinkt.

Dazu habe ich das gefunden:
https://www.viessmann-community.com/t5/Waermepumpe-Hybridsysteme/Vitogate-200-Typ-KNX/td-p/125048
und siehe da nachdem ich an der Inneneinheit Zeit senden auf 1 gestellt hatte und das Gate aus und wieder an gemacht hatte leuchtet die LED am gate auch grün.

Jetzt aber zu meinem Problem was ich jetzt noch habe.
Ich habe diesen Fehlermeldungen (Heizung, Gate und Gesammt) eine KNX Adresse zugewiesen.
Habe auch diese Links gefunden:
https://connectivity.viessmann.com/content/dam/vi-micro/CONNECTIVITY/Vitogate/Vitogate-200/7542150-KNX/Fehlercodes/Fehlercodes_fuer_Waermepumpen.pdf/_jcr_content/renditions/original.media_file.download_attachment.file/Fehlercodes_fuer_Waermepumpen.pdf
und
https://connectivity.viessmann.com/content/dam/vi-micro/CONNECTIVITY/Vitogate/Vitogate-200/7542150-KNX/Fehlertexte/Fehlertexte_Vitogate_200_Typ_KNX.pdf/_jcr_content/renditions/original.media_file.download_attachment.file/Fehlertexte_Vitogate_200_Typ_KNX.pdf

Aber irgendwie finde ich darin nicht die dpt Werte.
Hab diese jetzt mal mit dpt 12 benannt so das ich eine Zahl bekomme.
Denke das es irgendwie so ist.
Zahl 23199744 in zwei Teile 2319 Dec = 090F Hex und 9744 Dec = 2610 Hex
Ich hab aber keine Idee wie man das was auf diesen Adressen kommt decodieren kann.
Hat jemand damit schon Erfahrungen?

Gruß
Christian


Kohle77

Hello,
also ich habe jetzt mal mit der ETS mir die RAW Werte angeschaut.
Für das Gate endet das ganze mit 01 62 00 00 A5
Was das A5 am Ende bedeutet weiß ich nicht. Ich weiß aber das 01 die Anlagennummer in Hex ist.
62 in Hex ist die Teilnehmernummer was in Dezimal 98 ist.
Da ich ja das mit der roten LED hatte, als die Zeit nicht empfangen wurde und ich irgendwo notiert hatte 01 62 00 EC würde das zu dieser Beschreibung passen ( https://connectivity.viessmann.com/content/dam/vi-micro/CONNECTIVITY/Vitogate/Vitogate-200/7542150-KNX/Fehlertexte/Fehlertexte_Vitogate_200_Typ_KNX.pdf/_jcr_content/renditions/original.media_file.download_attachment.file/Fehlertexte_Vitogate_200_Typ_KNX.pdf ) den dort steht EC=Uhrzeit vom LON wird nicht empfangen.

Die Sammelstörung Heizung bring die RAW message 01 01 00 00 C7.
Ich weiß wieder nicht was das C7 bedeutet aber das erste 01 in Hex ist wieder die Anlagennummer und das zweite 01 Hex ist der Teilnehmer in der Anlage auf dem LON bus.
Wenn ich jetzt davon ausgehe das eben die letzten beiden 00 wieder zu dem Fehlertext aus dem zweiten link passt würde 00 Keine Fehler bedeutet.

Ich sehe diese Werte auch in den Devices die ich angelegt habe und zwar in KNX_RAWMSG Zeile aber ohne die Endungen C7 oder A5.

Wie kann ich den diese Raw Daten darstellen?
Habe dazu keinen passenden dpt Wert.

Gruß
Christian

erwin

Hi Christian,
das sind 5 Byte, die Frage ist: kommen diese aus dem BUS-Monitor oder aus dem GRUPPEN-Monitor?
Falls sie aus dem Bus Monitor kommen, vermute ich fast, das 5te byte ist die chksum....
die 4 byte sind vermulich ein dpt20 HVAC- ein spezieller - der nicht in FHEM implementiert ist.
Du kannst mit der ETS herausfinden, welchen dpt zu dem datenpunkt passt:
im device View einen dp anklicken, unter properties siehst du was die ETS glaubt, was der ein richtiger dpt ist...
siehe screenshot. 
ich selbst komme jetzt so nicht mehr weiter, ich hab mir zwar das vitogate in meine ETS definiert, aber bevor ich GA's zuordnen kann, will die ETS die konfig in die vitogate 200 hochladen,... und die kauf ich mir nicht... ;D
Falls es tatsächlich 4 bytes sind, finden wir eine Lösung...(Stichwort: stateCmd). Hast du dazu noch mehr variationen, was da kommt?
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Kohle77

Hallo,
sorry dauert immer ein wenig bis ich Antworte.
In der ETS sehe ich nur dpt12 4-Byte oder 13 4Byte 15.* 27.* 241.* (siehe ETS.jpg).
Sehe die RAW Daten im Bus monitor.
Gelb markiert ist die Anlagennummer und der Teilnehmer im LON Bus (ist in Hex und muss in Dezimal umgewandelt werden).
Grün markiert ist der Fehlercode der auch in HEX ist aber auch HEX bleiben soll weil die Fehlertabellen Hex codes haben.
Gruß
Christian

Kohle77

Hi,
mir würde es reichen wenn ich dpt 12 setze sehe ich in den internals:
KNX_RAWMSG

C0001cp0700401620000


Müsste dann diesen Teil 01620000 als einzelne Readings bekommen z.B.
reading1 01 (was die Anlagennummer ist)
reading2 62 (was der Teilnehmer in hex ist und dezimal 98 wäre)
reading3 00 (keine Ahnung was das ist)
reading4 00 (was der error code in Hex wäre)

Wie könnte man das hinbekommen?

Gruß
Christian

erwin

#5
Hi,
dann ist es einfach:
attr <device> stateCmd {sprintf("%02x %02x",($state & 0xFF00) >> 8, ($state & 0xFF))}
bei dem device mit dpt12 definition, dann sollten die 2 letzten bytes als hexwert dargestellt werden...
Wenn das klappt, könnte man eine "Übersetzungstabelle" bauen: errorcode -> Errortext.....
l.g. erwin

edit: post war überlappend, das war jetzt die Lösung, um das ins state reading zu bekommen...
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Kohle77

Hallo Erwin,
das funkioniert schonmal das der Hex Wert jetzt angezeigt wird. Wenn ich wieder Zeit habe mach ich mir mal Gedanken für die Übersetzung.
Inzwischen hatte ich aber eine ähnlich Idee damit dpt12 ja ein Dezimal Zahl angezeigt wird.
Habe dann die Error Codes mal ins Dezimal übersetzt und mit den Fehlermeldungen vebunden (nur für das Gate bisher).
Siehe xls im Anhang.

Gruß
Christian

Kohle77

Hi,
also ich habe jetzt einfach das Beispiel von Erwin angepasst zu:
attr <device> stateCmd {my $value;;
if ($state == 23199768)
{
    $value = "Ausfall externer Teilnehmer\\Gerät am LON"
}
elsif ($state == 23199744)
{
    $value = "Alles OK"
}
elsif ($state == 23199969)
{
    $value = "Ausfall lokale LON Verbindung"
}
elsif ($state == 23199970)
{
    $value = "DPT fehlerhaft (LON => KNX) / Konvertierungsfunktion fehlerhaft (LON => KNX) / Division durch Null ist nicht möglich (LON => KNX) "
}
elsif ($state == 23199971)
{
    $value = "Wertebereichsüberlauf (LON => KNX)"
}
elsif ($state == 23199979)
{
    $value = "Externes Speichermedium nicht nutzbar oder defekt"
}
elsif ($state == 23199980)
{
    $value = "Uhrzeit vom LON wird nicht empfangen"
}
elsif ($state == 23199981)
{
    $value = "Uhrzeit vom LON wird mehrfach empfangen"
}
elsif ($state == 23199982)
{
    $value = "DPT fehlerhaft (KNX => LON) / Konvertierungsfunktion fehlerhaft (KNX => LON) / Division durch Null ist nicht möglich (KNX => LON) "
}
elsif ($state == 23199983)
{
    $value = "Wertebereichsüberlauf (KNX => LON)"
}
elsif ($state == 23199984)
{
    $value = "Lesen fehlgeschlagen (LON)"
}
elsif ($state == 23199985)
{
    $value = "Schreiben fehlgeschlagen (LON)"
}
elsif ($state == 23199986)
{
    $value = "Keine Antwort auf Lese- oder Schreib-Anfrage erhalten (LON)"
}
elsif ($state == 23199998)
{
    $value = "Schreiben eines Teilbereiches in einem Byte ist nicht möglich (KNX => LON)"
}
else
{
    $value = "FHEM Übersetzungsfehler"
}}


Sieht dann in der GUI so aus wie im Bild im Anhang.

Gruß
Christian