Autor Thema: Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)  (Gelesen 190850 mal)

Offline Adam

  • Developer
  • Full Member
  • ****
  • Beiträge: 371
UPDATE 09.12.2014
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ACHTUNG  ACHTUNG  ACHTUNG  ACHTUNG  ACHTUNG  ACHTUNG  ACHTUNG  ACHTUNG  ACHTUNG  ACHTUNG  ACHTUNG
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Das Modul ist nun im allgemeinen FHEM Update Prozess

Das Modul musste leider umbenannt werden in 89_VCONTROL, da 99_* nicht commited werden konnte.

Wer das Modul also per Update einspielt muss das alte Modul aus dem FHEM Verzeichnis löschen!!!

Ich habe das Modul somit hier aus dem ersten Post entfernt!!!

Es gibt nun eine Wiki Seite:
http://www.fhemwiki.de/wiki/Vitotronic_200_(Viessmann_Heizungssteuerung)

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ACHTUNG  ACHTUNG  ACHTUNG  ACHTUNG  ACHTUNG  ACHTUNG  ACHTUNG  ACHTUNG  ACHTUNG  ACHTUNG  ACHTUNG
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
UPDATE ENDE

Hier möchte ich mein neues Modul zur Anbindung meiner Viessmann Heizung (Vitotronic 200 KW1) einmal vorstellen.

Hintergrund:
Ich habe bereits aus anderen Threads hier im Forum gelesen, dass es bereits mehrere Fhem User gibt,
die versuchen Ihre Viessmann Heizung anzubinden.
Die meisten nutzen wohl wie ich einen Optolink-Adapter wie er hier http://openv.wikispaces.com/ beschrieben ist.
Ebenfalls nutzen die meisten die Tools vcontrol und vclient von dieser Seite.
Diese können zwar von Fhem aus aufgerufen werden, müssen dann aber über Outputdateien mühsam ausgewertet werden.
Da ich Fhem auf Windows betreibe musste ich auch noch cygwin nutzen, um diese Tools zu benutzen.

Das Modul:

Das neue Modul pollt nun direkt auf der Seriellen Schnittstelle über USB die Heizung
und schreibt die Werte in die Readings des Devices.
Als Adressen für die Schnittstelle/Protokoll wird die Belegung von http://openv.wikispaces.com/
aus der Spalte V200KW2 genutzt.

Bisher nutze ich das Tool wie bereits geschrieben auf Windows,
Ich hoffe, dass es auf Linux ohne weiteres lauffähig ist.

Update 09.03.2014:
Das Modul ist bereits mehrfach auf Linux lauffähig und auch eine Anbindung des LAN Moduls ist mittlerweile möglich.
Deshalb hier eine Aktualisierung, damit neue User auch das aktuelle Modul schnell finden.
Viele User haben bereits geholfen das Modul runder zu gestalten ( DANKE  :D )

So wird das Modul genutzt: ( Stand 24.05.14 V2.7)
(mein Konfigfile ebenfalls als Beispiel angehängt!):

Define:
define <name> VCONTROL <serial-device/LAN-Device:port> <configfile> [<intervall>]

Beispiele:
#serielle Schnittstelle über com4
#alle 3 Minuten wird gepollt
#configfile heisst 99_VCONTROL.cfg und liegt im fhem root Verzeichnis

define Heizung VCONTROL com4 99_VCONTROL.cfg 180

#auf Linux muss das dann wohl so aussehen
define Heizung  VCONTROL /dev/ttyUSB3 99_VCONTROL.cfg 180

Attribute:
closedev 0,1 : Wenn das Attribut closedev mit 1 gesetzt ist,
                      wird die Verbindung nach jedem Poll Intervall kurz geschlossen.


Details:
<serial-device/LAN-Device:port>    USB Port (z.B. com4, /dev/ttyUSB3) oder aber TCPIP:portnummer
<intervall>          Anzahl Sekunden wie oft die Heizung ausgelesen werden soll
                          (default 180)
<configfile>         Pfad wo die Konfigurationsdatei für das Modul zu finden ist


Im configfile hat man nun folgende Möglichkeiten:

- Zeilen die mit # beginnen sind Kommentar!
- Polling Commandos (POLL) zum Lesen von Werten können konfiguriert werden.
- Set Commandos (SET) zum setzen von Werten können konfiguriert werden.

Polling Commandos haben den folgenden Aufbau:

POLL, ADDRESSE, PARSEMETHODE, DIVISOR, READING-NAME, KUMULATION

Beispiel:
POLL, 01F7080402, 2ByteS, 10    , Temp-WarmWasser-Ist , -
POLL, 01F7088A02, 2ByteU, 1      , BrennerStarts               , day

Bisher mögliche Parsemethoden:
1ByteU        : Empfangener Wert in 1 Byte ohne Vorzeichen (wenn Spalte Divisor state ist -> nur 0 / 1 also off / on)
1ByteS        : Empfangener Wert in 1 Byte mit Vorzeichen (wenn Spalte Divisor state ist -> nur 0 / 1 also off / on)
2ByteS        : Empfangener Wert in 2 Byte mit Vorzeichen
2ByteU        : Empfangener Wert in 2 Byte ohne Vorzeichen
2BytePercent  : Empfangener Wert in 2 Byte als Prozent Wert
4Byte         : Empfangener Wert in 4 Byte
mode          : Empfangener Wert ist der Betriebsstatus
timer         : Empfangener Wert ist ein 8 Byte Timer Werte
date          : Empfangener Wert ist ein 8 Byte Zeitstempel

Bei den Polling Commandos mit dem Wert day bei der Spalte KUMULATION werden Tageswerte Kumuliert.
Es werden dann jeweils nach 00:00 Uhr die Werte des letzten Tages ebenfalls als Readings im Device eingetragen,
so dass man die Werte pro Tag auch plotten oder auswerten kann.
Beim Readingnamen wird dann jeweils: DayStart,Today und LastDay angehangen!

POLL Commandos die die Parsemethode timer enthalten werden nicht ständig gelesen,
sondern müssen mit einem GET Commando geholt werden
(bzw. in die Readings geschrieben werden):

GET <devicename> TIMER


Set Commandos haben den folgenden Aufbau:

SET,SETCMD, ADRESSE, CONV, NEXT_CMD or DAY for timer

Beispiel:
SET, WW              ,  01F423010100, state          , -
SET, S-ON             ,  01F423020101, state_spar , P-OFF
SET, WWTEMP      ,  01F4630001    , 1ByteU        , -
SET, TIMER_2_MO,  01F4200008  , timer      , MO

Die SETCMD sind die Commandos die man in FHEM zum setzen angeben muss
z.B. SET <devicename> WW zum setzen auf den Status nur Warm Wasser Aufbereitung

Bei den SETCMD bei denen man einen Wert mit angeben muss,
wie z.B. die Warm Wasser Temperatur muss man eine Conv Methode angeben,
wie die Heizung diesen Wert erwartet.

Bisher mögliche Convmethoden:

1ByteU        : Zu sendender Wert in 1 Byte ohne Vorzeichen (wenn Spalte Divisor state ist -> nur 0 / 1 also off / on)
1ByteS        : Zu sendender Wert in 1 Byte mit Vorzeichen (wenn Spalte Divisor state ist -> nur 0 / 1 also off / on)
2ByteS        : Zu sendender Wert in 2 Byte mit Vorzeichen
2ByteU        : Zu sendender Wert in 2 Byte ohne Vorzeichen
timer         : Zu sendender Wert ist ein 8 Byte Timer Werte
date          : Zu sendender Wert ist ein 8 Byte Zeitstempel

Beispiele:

1)
SET <devicename> TIMER_2_MO <times>

<times> 8 Uhrzeiten mit Komma getrennt.  (AN1,AUS1,AN2,AUS2,AN3,AUS3,AN4,AUS4)
       Keine Uhrzeit muss als -- angegeben werden.
       Minuten der Uhrzeiten dürfen nur 00,10,20,30,40 oder 50 sein

2)
SET <devicename> SYSTIME 21.03.2014_21:35:00

(Bei date muss das Format DD.MM.YYYY_HH:MM:SS eingehalten werden)

3)
SET <devicename> WWTEMP 55


###Update 18.03.2014

Es fehlte noch eine Beschreibung für User, die bisher vcontrol als Linux Tool von http://openv.wikispaces.com/ nicht benutzt haben,
Ihr Poll-Werte jedoch selber in der Konfi-Datei konfigurieren wollen:

Auf der Seite http://openv.wikispaces.com/Adressen gibt es für die verschiedenen Heizungstypen diverse Adressen.
Diese sind aus meiner Sicht ohne Gewähr, aber was anderes gibt es nicht. Bei mir funktionieren auch nicht alle dokumentierten.

Wie bekomme ich die nun in das Modul, bzw. in die Konfig Datei ?

Ein Beispiel:

In der Tabelle steht:

Name     Addr       Values
Factor         
Bytes     
WW Oben ( Brauchwasser)     0x010d   /102

Dann muss man das als Poll-Wert wie folgt umsetzen:

1. Die Zeile muss mit POLL beginnen
2. Die folgende Adresse muss mit 01F7 beginnen
3. danach folgt die Addr aus der Tabelle ohne den Präfix 0x, also 01F7010D
4. danach muss die Anzahl der Bytes noch an die Adresse angehängt werden, d.h. 02 für 2 , macht dann zusammen 01F7010D02
5. Es muss die entsprechende Parse Methode genutzt werden, falls vorhanden (siehe oben)
(Wenn nichts dabei ist muss man es erst implementieren  :-\ )
6. Danach setzt man aus der Spalte Values/Factor den Divisor, d.h. \10 ,macht dann 10
Sind nur Werte 0 und 1 erlaubt, wie z.B. beim Brennerstatus, kann man als Divisor state angeben.
Dann wird im Reading bei 0 ein off und bei 1 ein on geschrieben!
7. Man sucht sich einen passenden/gewünschten Readingnamen aus z.b. WW-Oben
8. setzt mann dann den letzten Wert auf day werden Tageswerte Kumuliert.
Es wird dann jeweils nach 00:00 Uhr die Werte des letzten Tages ebenfalls als Readings im Device eingetragen,
so dass man die Werte pro Tag auch plotten oder auswerten kann.
Beim Readingnamen wird dann jeweils: DayStart,Today und LastDay angehangen!
Wenn nicht gewünscht dann - eintragen

Das macht dann also zusammen:

POLL, 01F7010D02, 2ByteS, 10, WW-Oben, -

Wahrscheinlich sind nicht für alle Typen Parsemethoden implementiert, da meine Heizung diese nicht liefert.
Wenn Ihr da noch was benötigt und es selber rausgefunden habt, kann ich das in das Modul übernehmen!!

###Update Ende

###Update 24.03.2014

  • In der Konfigdatei kann man nun auch selber SET Befehle konfigurieren

    - Die Zeile muss mit SET beginnen.
    - Danach kommt der Name den man bei einem set Befehl nutzen möchte.
    - Danach kommt die Adresse der Heizung, die mit 01F4 beginnen muss,
      gefolgt von den 2 Byte der eigentlichen Adresse
      und 1 Byte Angabe wieviel Byte der zu setzende Wert hat
    - Danach kommt die Angabe einer der Conv Methoden 1ByteConv,2ByteConv,DateConv
      je nach Typ -> 1Byte oder 2Byte oder date
    - Die letzte Spalte wird nicht genutzt und muss mit - angeben werden

    So zwei Beispiele:

    1. Setzen der Warm Wasser Soll Temperatur

    Konfigdatei:
    SET, WWTEMP  , 01F4630001  , 1Byte      , -

    Aufruf in Fhemweb:
    set <devicename> WWTEMP 55

    2. Setzen der Systemzeit

    Konfigdatei:
    SET, SYSTIME , 01F4088E08  , date       , -

    Aufruf in Fhemweb:
    set <devicename> SYSTIME 21.03.2014_21:35:00

    (Bei date muss das Format DD.MM.YYYY_HH:MM:SS eingehalten werden)

  • Der Monat in der Update-Time war bisher falsch, habe ich korrigiert

###Ende Update

###Update 24.07.2014
In der angehängten Datei Viessmann-Software-Config.zip sind XML Dateien der original Viessmann-Software enthalten.
Diese können nützlich sein, um Adressen für den eigenen Heizungstyp zu finden.

So wie ich die Dateien verstehe müsst Ihr wie folgt vorgehen:

In der Datei ecnEventTypeGroup.xml in der Spalte DataPointTypeID Euren Anlagen Typ finden. Also z.B. VPlusHO1

Dann mit teilen aus Spalte ID oder EventTypeID in der zweiten Datei ecnEventType.xml suchen.
1:1 findet man die Sachen leider nicht

###Ende Update

### Update 01.11.2014

Habe nun noch 3 Beipsiel CFG Dateien für verschiedene Heizungstypen angehängt.
Diese sind natürlich nicht vollständig, sondern nur mit allen bisher erarbeiteten Adressen gefüllt.
Für den Anfang spart es aber sicherlich dem einen oder anderen viel Zeit!

### Ende Update
Gruß
Adam
« Letzte Änderung: 09 Dezember 2014, 21:39:36 von Adam »

Offline Adam

  • Developer
  • Full Member
  • ****
  • Beiträge: 371
Antw:Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)
« Antwort #1 am: 15 Februar 2014, 20:17:39 »
Ach ja, vcontrol darf natürlich nicht parallel laufen,
sonst bekommt fhem den Port nicht geöffnet.

Offline kvo1

  • Hero Member
  • *****
  • Beiträge: 1456
  • FHEMonaut
Antw:Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)
« Antwort #2 am: 15 Februar 2014, 20:39:16 »
Hallo Adam,

das hört sich gut an, wenn ich mit meinen RPI soweit bin , das ich diesen FTDI Treiber uns
Unix sauber zum laufen bekommen, dann teste ich das :-)

Gruß 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

Offline Adam

  • Developer
  • Full Member
  • ****
  • Beiträge: 371
Antw:Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)
« Antwort #3 am: 16 Februar 2014, 14:14:28 »
Ich habe noch einen Fehler gefunden, wenn die Heizung auf "ABSCHALT" steht.

Da dies intern mit 0x05 wie das Synchronisations Byte abgebildet ist,
wurde das noch falsch interpretiert und das Poll Intervall wurde nicht sauber beendet.

(Konnte das erst heute testen als die Familie nicht da war
und nicht meckern konnte, dass die Heizung nicht läuft ;) )

Korrektur in der angehängten Version!
Adam
« Letzte Änderung: 01 März 2014, 17:14:14 von Adam »

Offline Adam

  • Developer
  • Full Member
  • ****
  • Beiträge: 371
Antw:Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)
« Antwort #4 am: 16 Februar 2014, 14:19:59 »
Sorry in der Version davor habe ich die Log Level runter gedreht,
damit ich debuggen konnte.  8)

Hier jetzt die eigentliche Version, die nicht so viel unnötige Logs bei Normal Betrieb schreibt.
« Letzte Änderung: 01 März 2014, 17:13:52 von Adam »

Offline Lars

  • Full Member
  • ***
  • Beiträge: 169
Antw:Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)
« Antwort #5 am: 16 Februar 2014, 21:37:46 »
Hallo Adam,

es wäre gut, wenn du die Adressen entweder in einem config file auslagerst oder - noch besser, aber wesentlich aufwendiger - im Modul das Heizungsmodell verändert werden kann und dann die jeweiligen Adressen für die set und get Kommandos automatisch angepasst werden. Dabei muss natürlich berücksichtigt werden, dass je nach Modell und Art unterschiedliche Parameter gelten ( Eine Wärmepumpe hat z.b. Logischerweise keinen Brenner).

Solltest du dein Modul in das offizielle FHEM Release einbinden wollen wäre das aus meiner Sicht notwendig.

Ich werde dein Modul mal die Tage ausprobieren und auf meine Adressen und Funktionen (habe eine Wärmepumpe) anpassen.

Gruß
Lars

FHEM Hauptsystem auf ESXi VM | dblog | 3 rPi für Nebensysteme | 2 Beaglebone Black Test- / Integrationssystem

Offline Adam

  • Developer
  • Full Member
  • ****
  • Beiträge: 371
Antw:Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)
« Antwort #6 am: 17 Februar 2014, 07:57:36 »
Hallo Lars,

danke für das Feedback.
Ja mein Modul ist erstmal nach meinen Bedürfnissen mit Adressen bestückt.
Andere kann ich bei mir nicht testen ( Ich habe z.B. keine Wärmepumpe).
Ausserdem war ich schon froh mit meinen Anfänger Perl Kenntnissen überhaupt was zum Laufen zu bekommen.
Und das ohne vcontrol und vclient, die mal gar nicht in die FHEM Welt passen.

Es befindet sich, um es tatsächlich ins FHEM Release einbinden zu können, noch im Beta Stadium.
- Es fehlt die Erfahrung ob es auch auf anderen Systemen läuft,  ich habe es bisher nur auf Windows laufen.
- Es fehlen sicherlich noch mehr Adressen, um mehr Heizungen abzudecken.
- Es fehlt die Doku ;-)
- Die Readings sind auf deutsch, ist für FHEM auch unüblich was ich bisher gesehen habe
  (Fand ich für mein System aber schöner  :D )


Ich habe zwar bereits versucht durch die Konfigurierbare Möglichkeit, welche Befehle/Adressen genutzt werden
es etwas zu verallgemeinern. ( siehe <poll_commands> in dem oberen Eintrag )

Man könnte relativ einfach die weiteren Adressen in die get_cmd_list aufnehmen,
und derjenige der sie braucht definiert sie dazu oder lässt sie weg!
Sollte dann in der Doku beschrieben werden, welcher Befehl welche Heizung bisher unterstützt!
(Man muss jedoch dann noch Prüfen, ob es bereits eine Parse Routine für das Ergebnis gibt)

Aber vielleicht reicht das noch nicht aus. Dann könnte man auch Typen definieren,
die man konfiguriert und das "Set" an Befehlen wird dann in die get_cmd_list dynamisch übernommen.
Sollte auch nicht so schwer sein.

Ich denke ich bin auf Eure Hilfe und auch auf Euer Perl Know How angewiesen,
um daraus ein ganz allgemeines Modul zu stricken.

Vielleicht schaffen wir es gemeinsam, wenn es erstmal auf einem anderen System zum laufen gebracht wurde
und wir unsere Ergebnisse zusammen werfen.
(z.B. welche Adressen funktionieren bei welcher Heizung oder muss der Ablauf vielleicht doch geändert werden,
weil es nur bei mir funktioniert????)

Zumal so auch der Zeitaufwand auf mehrere Köpfe verteilt ist!
(Das Modul bis dahin hat schon einiges an der Familienzeit abgeknabbert ;) )

Adam

Offline kvo1

  • Hero Member
  • *****
  • Beiträge: 1456
  • FHEMonaut
Antw:Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)
« Antwort #7 am: 17 Februar 2014, 09:05:16 »
Hallo Adam,

ich finde das ziemlich gut was Du da bisher gemacht hast, auch wenn ich noch nicht zum Testen gekommen bin.
Das muß man erst mal nachmachen 800 Zeilen Perl-Code.

Hoffe das ich die nächsten Tage (ups Abend/Nächste) etwas Zeit finde um mal auf/mit RPi zu testen.

bis denne

Gruß
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

Offline stevestrong

  • New Member
  • *
  • Beiträge: 44
Antw:Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)
« Antwort #8 am: 17 Februar 2014, 13:21:36 »
hi Adam,
ich finde auch dass du ein sehr guten job gemacht hast. ich finde ganz toll dass es vcontrol/vclient unabhängig ist :)
wie auch Lars erwähnt hat, würde ich aber auch eine separate config datei für die auslagerung der user-spezifischen constanten benutzen.
ausserdem wäre vielleicht auch sinnvol die kommunikationsschnittstellen zu erweitern (ethernet, serial). ich persönlich werde die daten über telnet übetragen.
dies bitte nicht als kritik betrachten, sondern einfach als konstruktive erweiterungsmöglichkeit.
leider sind aber meine perl kenntnisse sehr stark begrenzt, vom fhem generell ganz zu schweigen :|.
ich werde trotzdem versuchen dein modul für meine zwecke (ethernet) anzupassen (grundlage: http://forum.fhem.de/index.php?topic=19617.new;topicseen#new), dann werde ich es testen. hoffentlich komme ich noch diese woche dazu, und dann melde ich mich wieder.
lg
steve
FHEM 5.5 auf FB-7240
Vitotronic 200 (WO1B) <-> Optolink (self-made) <-> ATtiny (2xUART, +Volkszähler) <-> UART_2_WiFi (HLK-RM04) <-> Fritzy (telnet)
todo: Volkszähler

Offline blueberry63

  • Sr. Member
  • ****
  • Beiträge: 541
Antw:Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)
« Antwort #9 am: 17 Februar 2014, 16:51:40 »
Hallo Adam,

das ist ja eine geniale Sache. Tolle Arbeit. Mein FHEM läuft auf einem Raspberry PI, ich lese die Daten der Heizung aber von einem NAS aus, um das Schreiben auf die SD-Karte des Raspi zu vermeiden. Von FHEM lese ich die Werte dann aus einer NAS-MySQL-DB. Aber DAS hier ist natürlich noch besser. Bin schon gespannt, wann das Modul auch auf einem RasPi läuft.

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT)

Offline blueberry63

  • Sr. Member
  • ****
  • Beiträge: 541
Antw:Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)
« Antwort #10 am: 26 Februar 2014, 11:38:38 »
Hallo,

ich hatte den Thread nicht richtig gelesen. Natürlich läuft das Modul auf dem Raspi! Allerdings bekomme ich bei meiner "Vitotronic 200 KW2" nicht alle Readings geliefert. Das Protokoll und die Adressen sind doch bei KW1+KW2 gleich, oder?

Hat jemand eine Idee?
(ich habe das Gerät in FHEM genauso angelegt, wie im o.g. Beispiel)

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT)

Offline Adam

  • Developer
  • Full Member
  • ****
  • Beiträge: 371
Antw:Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)
« Antwort #11 am: 26 Februar 2014, 11:52:23 »
Hi Blueberry63,

das ist ja schon mal schön zu hören, dass das Modul auf einen Rpi läuft.

Ich habe auch gedacht, dass die Adressen KW1 und KW2 gleich sind!?

Du könntest zwei Sachen machen:

  • Fhem mit Loglevel 5 starten, dann spuckt das Modul im Log aus, was es sendet und was es empfängt
  • Wenn Du die Werte per vcontrol bekommst mit dem Modul aber nicht, müsstest Du mal ein Port Monitor Programm nutzen
    d.h. mit vcontrol den Befehl senden und mit dem Monitor Programm auf deinem USB Port mitschneiden,
    was hingeschickt und was gesendet wird.

Welches Reading funktioniert denn nicht und welche xml Dateien für vcontrol nutzt Du?
Da könnte man auch noch reinschauen, ob die Adressen anders gesetzt sind!

Gruß
Adam

Offline blueberry63

  • Sr. Member
  • ****
  • Beiträge: 541
Antw:Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)
« Antwort #12 am: 26 Februar 2014, 13:07:22 »
Hallo Adam,

hier sind meine Definition des Gerätes und die Readings:
Zitat
define Vito200 VCONTROL /dev/ttyUSB0
attr Vito200 event-on-change-reading state,BrennerStunden,BrennerStunden-Heute,BrennerStundenTagesStart,BrennerStartsZaehler,BrennerStarts-Heute,BrennerTagesStart,Oelzaehler,Oelverbrauch-Heute,OelTagesStart,Oelstand,state_party,state_spar,BrennerStunden-Tag,BrennerStarts-Tag,Oelverbrauch-Tag
attr Vito200 event-on-update-reading Temp-Aussen,Temp-WarmWasser-Ist,Temp-WarmWasser-Soll,Temp-Kessel-Ist,Temp-Kessel-Soll,Brenner,Zirkulationspumpe,UpdateTime
attr Vito200 room Heizung
attr Vito200 setList state:AUS,HWW,WW,P-ON,P-OFF,S-ON,S-OFF
attr Vito200 webCmd state:


Readings:
Brenner on 2014-02-26 12:51:10
Temp-WarmWasser-Soll 52 2014-02-26 12:51:01
Zirkulationspumpe off 2014-02-26 12:51:19
state H+WW 2014-02-26 12:51:22
state_party off 2014-02-26 12:51:25
state_spar off 2014-02-26 12:51:29

Das Auslesen der Timer funktioniert nicht, anden Readings ändert sich nichts

Die XML-Dateien hänge ich hier an.

Wenn ich heute noch Zeit habe, mache ich einen Test mit "verbose=5"

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT)

Offline blueberry63

  • Sr. Member
  • ****
  • Beiträge: 541
Antw:Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)
« Antwort #13 am: 26 Februar 2014, 13:14:22 »
Hallo Adam,

doch noch schnell einen Test mit "verbose=5" gemacht und folgende Zeilen sind mir aufgefallen, weil sie so häufig vorkommen:

Zitat
2014.02.26 13:12:21 5: VCONTROL_READ
2014.02.26 13:12:21 5: VCONTROL: VCONTROL_Read '05'
2014.02.26 13:12:23 5: VCONTROL_READ
2014.02.26 13:12:23 5: VCONTROL: VCONTROL_Read '05'
2014.02.26 13:12:25 5: VCONTROL_READ
2014.02.26 13:12:25 5: VCONTROL: VCONTROL_Read '05'
2014.02.26 13:12:28 5: VCONTROL_READ
2014.02.26 13:12:28 5: VCONTROL: VCONTROL_Read '05'
2014.02.26 13:12:30 5: VCONTROL_READ
2014.02.26 13:12:30 5: VCONTROL: VCONTROL_Read '05'
2014.02.26 13:12:32 5: VCONTROL_READ
2014.02.26 13:12:32 5: VCONTROL: VCONTROL_Read '05'

Gruß
Blueberry63
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT)

Offline Adam

  • Developer
  • Full Member
  • ****
  • Beiträge: 371
Antw:Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)
« Antwort #14 am: 26 Februar 2014, 13:26:54 »
Jaja, das passt schon, das Modul öffnet den Port und hält Ihn offen.
Wie auf der openv Seite beschrieben sendet die Vitotronic dann auf diesem Port
alle 2 bis 3 Sekunden dieses Sync Byte 0x05. 
(Das sind dann leider ziemlich viele Log Meldungen, sind aber ja nur für DEBUG Zwecke gedacht)

Nach Erhalt dieses Bytes kann man direkt eine Anfrage Senden.

Wenn das Poll Intervall im Modul erreicht ist, müssten im  Log auch Meldungen der folgenden Art zu finden sein:

Beispiel für getTempKist:
VCONTROL: send '01F7080202'

Und danach wird es spannend, ob es auch Meldungen der folgenden Art gibt:

VCONTROL: receive 'getTempKist : $value'";

$value dann mit dem erhaltenen Wert.

Wenn immer nur 0x05 zurück kommt dann liefert die Heizung nichts für die Anfrage.

Zumindest für getTempKist ist die Adresse in Deiner XML Datei und meiner gleich.
Vielleicht mal mit vcontrold das Kommando getTempKist ausführen, ob es einen Wert zurück liefert?
Dann liegt es nicht am Modul.