Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)

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

Vorheriges Thema - Nächstes Thema

Adam

Hallo,

hier mal eine Status von mir.

olli84 und Reiner haben wohl beide ein ähnliches Problem. Einer mit USB und einer mit einer LAN Version des optolink Adapters.
Beide auf einem RPI unterwegs.

Wenn das Device disconnected ist kommt es zu keinem sauberen reconnect. FHEM hängt sich auch auf.  :o

Ich habe das eben mal im Keller bei mir mit USB und Windows getestet. Da funktioniert es.  8)

Tja habe jetzt mal versucht eine Version zu bauen, die aussieht wie andere Module auch,
mit reinen DevIO Aufrufen. (Die scheint bei Reiner auch zu funktionieren (ätere Version))

Damit habe ich auf Windows aber das Problem, dass sich mein FHEM aufhängt  :'(

Tja da scheinen die DevIO-Routinen nicht plattformunabhängig genug zu sein.

Ich werde es heute definitiv nicht schaffen da eine vernünftige Version zu bauen.
Werde mich aber in den nächsten Tagen damit weiter beschäftigen!
Sobald ich eine Version habe mit der ich glücklich bin, werde ich sie hier zum Test posten!

Gruß
Adam


olli84

Hallo Adam,

herzlichen Dank für deinen Einsatz. Super Support für dein super Modul! :)

Ansonsten bin ich gerne bereit die ältere Version, die bei Reiner funktioniert, mal zu testen.

Bis dann,
Olli

LuckyDay

#572
Hi @olli84

Bei mir läuft der Rpi mit dem Org Optolink von Vissmann seit knapp 2 Jahren mit vcontrold von openv,
am Anfang gabs Probleme mit dem Ftdi treiber, so ab mitte 2013 bis mitte 2014 hatte ich immer wieder mal so nach drei Monaten einen totalabsturz vom RPI
aktuell hab ich den Kernal 3.12.34+ laufen seit mitte Dezember mit  dem Adam seinem Modul, läuft ohne Hänger bei mir.
Das einzige Problem bei mir ist, wenn der Optolink nicht steckt, wird das Modul vom Adam nicht geladen
Zitat2014.12.14 15:35:27 3: VCONTROL: Define open DATEI 'vito.cfg'
2014.12.14 15:35:27 3: VCONTROL: open DATEI 'vito.cfg'
2014.12.14 15:35:27 3: VCONTROL: DATEI 'vito.cfg' refreshed
2014.12.14 15:35:27 3: VCONTROL opening VCONTROL device /dev/ttyUSB0
2014.12.14 15:35:27 1: define Heizung_anschaltung Heizung_anschaltung VCONTROL /dev/ttyUSB0 vito.cfg: Can't open /dev/ttyUSB0: Datei oder Verzeichnis nicht gefunden
2014.12.14 15:35:27 1: Including ./log/fhem.save
2014.12.14 15:35:27 1: configfile: Can't open /dev/ttyUSB0: Datei oder Verzeichnis nicht gefunden

2014.12.14 15:35:27 2: Error messages while initializing FHEM: configfile: Can't open /dev/ttyUSB0: Datei oder Verzeichnis nicht gefunden
2014.12.14 15:35:27 0: Server started with 8 defined entities (version $Id: fhem.pl 7124 2014-12-05 07:10:20Z rudolfkoenig $, os linux, user fhem, pid 7277)

so sieht meine dmesg aus
Zitat[    3.267108] usb 1-1.3: new full-speed USB device number 4 using dwc_otg
[    3.405193] usb 1-1.3: New USB device found, idVendor=0403, idProduct=6001
[    3.421321] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    3.439325] usb 1-1.3: Product: FT232R USB UART
[    3.445509] usb 1-1.3: Manufacturer: FTDI
[    3.466999] usb 1-1.3: SerialNumber: AE018T1F
[    3.973218] udevd[158]: starting version 175
[    5.192638] usbcore: registered new interface driver usbserial
[    5.423260] usbcore: registered new interface driver usbserial_generic
[    5.507594] usbserial: USB Serial support registered for generic
[    5.622305] usbcore: registered new interface driver ftdi_sio
[    5.798180] usbserial: USB Serial support registered for FTDI USB Serial Device
[    6.073943] ftdi_sio 1-1.3:1.0: FTDI USB Serial Device converter detected
[    6.321053] usb 1-1.3: Detected FT232RL
[    6.326556] usb 1-1.3: Number of endpoints 2
[    6.584333] usb 1-1.3: Endpoint 1 MaxPacketSize 64
[    6.654542] usb 1-1.3: Endpoint 2 MaxPacketSize 64
[    6.712854] usb 1-1.3: Setting MaxPacketSize 64
[    6.787121] usb 1-1.3: FTDI USB Serial Device converter now attached to ttyUSB0


olli84

Hallo :),

danke für deine Rückmeldung. Ich habe diesen Optolink-Adapter: http://openv.wikispaces.com/Bauanleitung+USB

Mein Kernel ist der aktuellste:

[    0.000000] Linux version 3.12.35+ (dc4@dc4-XPS13-9333) (gcc version 4.8.3 20140303 (prerelease) (crosstool-NG linaro-1.13.1+bzr2650 - Linaro GCC 2014.03) ) #730 PREEMPT Fri Dec 19 18:31:24 GMT 2014


Ansonsten gibt es ja keinen Unterschied. Mein Adapter hat exakt den gleichen Chip wie dein Originaler:


[    3.461982] usb 1-1.2: New USB device found, idVendor=0403, idProduct=6001
[    6.476213] ftdi_sio 1-1.2:1.0: FTDI USB Serial Device converter detected
[    6.484942] usb 1-1.2: Detected FT232RL


Wenn man aber mal im Web ein bisschen sucht findet man extrem viele Probleme mit FTDI Chips und dem Raspberry. Bei manchen laufen diese ohne Probleme, andere haben laufend disconnects usw.

Grüße,
Olli

Adam


olli84

Zitat von: Adam am 07 Januar 2015, 07:27:39
@Olli: Dann probier doch bitte mal folgende Version: http://forum.fhem.de/index.php/topic,20280.msg173976.html#msg173976

Herzlichen Dank! Werde ich machen sobald mir das FHEM das nächste Mal abschmiert. Hab gerade nochmal einen anderen USB-Anschluss und Aufstellungsort gewählt - jetzt läufts schon seit 8 Stunden! Juhu!  :o 8) :o

matzesworld

Hallo Leute,

ich hab ein Problem das ding ans laufen zu bekommen. evtl kann mir wer helfen.
Ich hab den USB-Optolink Adapter per UDEV regel zugewiesen:

SUBSYSTEM=="usb", ATTRS{product}=="FT232R USB UART", ATTRS{serial}=="XXXXXXX", GROUP="dialout" , NAME="vito0"

Das ganze sieht dann so aus:

root@raspi:/opt/fhem# ls -l /dev/vito0
crw-rw-r-T 1 root dialout 189, 3 Jan  1  1970 /dev/vito0


dem user "fhem" habe ich in die Gruppe "dialout" gesteckt, damit er drauf zugreifen kann.

ich habe fhem per debian paket installiert, da befand sich leider das Perl-Modul (89_VCONTROL.pm) nicht dabei, also hab ich es mir aus den "SVN" gezogen und in den Ordner "/opt/fhem/FHEM" gelegt.
dann habe ich mir die Konfig unter "/opt/fhem" erstellt: 89_VCONTROL.cfg

######################################################################################
# Polling Commands
######################################################################################
#POLL,SENDCMD   , PARSE, DIVISOR, READING-NAME        , KUMULATION
######################################################################################
POLL, 01F7080002, 2ByteS, 10    , Temp-Aussen         , -
POLL, 01F7080402, 2ByteS, 10    , Temp-WarmWasser-Ist , -
POLL, 01F7630001, 1ByteU, 1     , Temp-WarmWasser-Soll, -
POLL, 01F7080202, 2ByteS, 10    , Temp-Kessel-Ist     , -
POLL, 01F7550202, 2ByteS, 10    , Temp-Kessel-Soll    , -
POLL, 01F7084201, 1ByteU, state , Brenner             , -
POLL, 01F7088A02, 2ByteU, 1     , BrennerStarts       , day
POLL, 01F7757404, 4Byte,  1000  , Oelverbrauch        , day
POLL, 01F7084601, 1ByteU, state , Zirkulationspumpe   , -
POLL, 01F7230101, mode,   10    , state               , -
POLL, 01F7230301, 1ByteU, state , state_party         , -
POLL, 01F7230201, 1ByteU, state , state_spar          , -
POLL, 01F708A704, 4Byte,  3600  , BrennerStunden      , day
POLL, 01F708AB04, 4Byte,  3600  , BrennerStunden2     , -
POLL, 01F7230601, 1ByteU, 1     , Temp-Raum-Soll      , -
POLL, 01F7572602, 2ByteU, 10    , Oelverbrauch-Codierung, -
POLL, 01F7088E08, date,   1     , SystemZeit          , -
POLL, 01F7230908, date,   1     , Urlaub-Beginn       , -
POLL, 01F7231108, date,   1     , Urlaub-Ende         , -
POLL, 01F7253501, 1ByteU, state , Urlaub-Betrieb      , -
POLL, 01F7230501, 1ByteU, 10    , Neigung             , -
POLL, 01F7230401, 1ByteS, 1     , Niveau              , -
#####################################################################################
# M1 Possible TIMER Get commands
#####################################################################################
#POLL,SENDCMD   , PARSE, DIVISOR, READING-NAME        , KUMULATION
POLL, 01F7200008, timer,  1     , TIMER_2_MO          , -
POLL, 01F7200808, timer,  1     , TIMER_3_DI          , -
POLL, 01F7201008, timer,  1     , TIMER_4_MI          , -
POLL, 01F7201808, timer,  1     , TIMER_5_DO          , -
POLL, 01F7202008, timer,  1     , TIMER_6_FR          , -
POLL, 01F7202808, timer,  1     , TIMER_0_SA          , -
POLL, 01F7203008, timer,  1     , TIMER_1_SO          , -
#####################################################################################
# M1 Possible Warm Water TIMER Get commands
#####################################################################################
#POLL,SENDCMD   , PARSE, DIVISOR, READING-NAME        , KUMULATION?
POLL, 01F7210008, timer,  1     , TIMER_WW_2_MO       , -
POLL, 01F7210808, timer,  1     , TIMER_WW_3_DI       , -
POLL, 01F7211008, timer,  1     , TIMER_WW_4_MI       , -
POLL, 01F7211808, timer,  1     , TIMER_WW_5_DO       , -
POLL, 01F7212008, timer,  1     , TIMER_WW_6_FR       , -
POLL, 01F7212808, timer,  1     , TIMER_WW_0_SA       , -
POLL, 01F7213008, timer,  1     , TIMER_WW_1_SO       , -
#####################################################################################
# M1 Possible Set commands which are complete
#####################################################################################
#SET,SETCMD    ,    SENDCMD       , CONV     , NEXT_CMD or DAY for timer
#####################################################################################
SET, WW        ,    01F423010100, state      , -
SET, HWW       ,    01F423010103, state      , -
SET, AUS       ,    01F423010105, state      , -
SET, S-OFF     ,    01F423020100, state_spar , -
SET, S-ON      ,    01F423020101, state_spar , P-OFF
SET, P-OFF     ,    01F423030100, state_party, -
SET, P-ON      ,    01F423030101, state_party, S-OFF
SET, WWTEMP    ,    01F4630001  , 1ByteU     , -
SET, K26       ,    01F4572602  , 2ByteU     , -
SET, URLON     ,    01F4230908  , date       , -
SET, URLOFF    ,    01F4231108  , date       , -
SET, SYSTIME   ,    01F4088E08  , date       , -
SET, NIVEAU    ,    01F4230401  , 1ByteS     , -
#####################################################################################
# M1 Possible TIMER Set commands prefix
#####################################################################################
SET, TIMER_2_MO,    01F4200008  , timer      , MO
SET, TIMER_3_DI,    01F4200808  , timer      , DI
SET, TIMER_4_MI,    01F4201008  , timer      , MI
SET, TIMER_5_DO,    01F4201808  , timer      , DO
SET, TIMER_6_FR,    01F4202008  , timer      , FR
SET, TIMER_0_SA,    01F4202808  , timer      , SA
SET, TIMER_1_SO,    01F4203008  , timer      , SO
######################################################################################
# M1 Possible Warm Water Timer Set commands prefix
######################################################################################
SET, TIMER_WW_2_MO, 01F4210008  , timer      , MO
SET, TIMER_WW_3_DI, 01F4210808  , timer      , DI
SET, TIMER_WW_4_MI, 01F4211008  , timer      , MI
SET, TIMER_WW_5_DO, 01F4211808  , timer      , DO
SET, TIMER_WW_6_FR, 01F4212008  , timer      , FR
SET, TIMER_WW_0_SA, 01F4212808  , timer      , SA
SET, TIMER_WW_1_SO, 01F4213008  , timer      , SO
######################################################################################

Anschließend in der fhem.cfg folgendes eingefügt:

# Heizung
define Heizung  VCONTROL /dev/vito0 89_VCONTROL.cfg 180


beim starten erhalte ich folgende Fehlermeldung:

2015.01.09 09:02:24 3: VCONTROL: Define open DATEI '89_VCONTROL.cfg'
2015.01.09 09:02:24 3: VCONTROL: open DATEI '89_VCONTROL.cfg'
2015.01.09 09:02:24 3: VCONTROL: DATEI '89_VCONTROL.cfg' refreshed
2015.01.09 09:02:24 3: VCONTROL opening VCONTROL device /dev/vito0
2015.01.09 09:02:24 1: define Heizung Heizung  VCONTROL /dev/vito0 89_VCONTROL.cfg 180: Can't open /dev/vito0: Inappropriate ioctl for device
2015.01.09 09:02:24 1: Including ./log/fhem.save
2015.01.09 09:02:24 1: configfile: Can't open /dev/vito0: Inappropriate ioctl for device

2015.01.09 09:02:24 2: Error messages while initializing FHEM: configfile: Can't open /dev/vito0: Inappropriate ioctl for device
2015.01.09 09:02:24 0: Server started with 4 defined entities (version $Id: fhem.pl 6913 2014-11-08 10:32:44Z rudolfkoenig $, os linux, user fhem, pid 1759)


Kann mir hier wer weiter helfen ? was fehlt ?

kvo1

RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

matzesworld

Viele Dank für den Tip !

Ich hab die Konfig von der Seite http://openv.wikispaces.com/vcontrold+mit+Raspberry+Pi "" übernommen, dass war der Fehler!
Er hat mir zwar sauber das Device "/dev/vito0" angelegt, aber es funktioniert nicht!
Geprüft hab ich das mit:

root@raspi:/etc/udev/rules.d# ls -l /dev/serial/{by-path,by-id}/*
lrwxrwxrwx 1 root root 13 Jan  1  1970 /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A702J956-if00-port0 -> ../../ttyUSB0
lrwxrwxrwx 1 root root 13 Jan  1  1970 /dev/serial/by-path/platform-bcm2708_usb-usb-0:1.3:1.0-port0 -> ../../ttyUSB0


Ich habe jetzt die UDEV - Regel umgeschrieben:

SUBSYSTEM=="tty", ATTRS{product}=="FT232R USB UART", ATTRS{serial}=="A702J956", SYMLINK+="vito0"


Jetzt wird mir ein Link auf den aktuellen USB-Device gelegt:

root@raspi:/opt/fhem# ls -l /dev/vito0
lrwxrwxrwx 1 root root 7 Jan  1  1970 /dev/vito0 -> ttyUSB0


und siehe da!!! es klappt.  ;)
Vielen Dank nochmal.

Adam

Hallo zusammen,

mit Reiners Hilfe habe ich nun eine neue Version eingecheckt.

Diese hat nun ein korrektes Verhalten beim Reconnect mit LAN-Adapter auf Rpi und USB unter Windows!

Olli könnte nun auch noch mal Bitte testen, ob seine Reconnect Probleme damit behoben sind.

Ganz großen Dank an Reiner, der mir die Arbeit abgenommen hat!!!

Adam

ReinerZ

Gerne :-)

Läuft bei mir jetzt problemlos.

Verstehe nur noch nicht, warum beim Abstecken / Ausschalten vom Adapter das ca. 2h dauert, bis die disconnected Meldung im Log kommt ...

Gruß

Reiner

kvo1

Zitat von: Adam am 11 Januar 2015, 18:23:43
Diese hat nun ein korrektes Verhalten beim Reconnect mit LAN-Adapter auf Rpi und USB unter Windows!
Olli könnte nun auch noch mal Bitte testen, ob seine Reconnect Probleme damit behoben sind.
Adam

Hallo Adam,
gilt das auch für RPI und USB ?

gruss
klaus
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB

Adam


Prof. Dr. Peter Henning

Habe nur durch Zufall das mit den 2 Std. Latenz gelesen.

Falls sich das auf die Nutzung des Serial Ports auf einem Raspberry bezieht: Ist ein bekanntes Problem.

LG

pah

Adam