Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)

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

Vorheriges Thema - Nächstes Thema

Adam

#180
Hallo Gunther,

bzw. erstmal danke an Klaus für die Erklärungen.

Ich versuche es auch noch mal, falls es noch mehr User gibt, die vcontrol bisher nicht genutzt haben.

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:

Bisher implementierte Parsemethoden:

  • 1Byte              : Empfangener Wert in 1 Byte (bei Divisor state -> 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

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 letzte 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!!

Gruß
Adam

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

Adam

DANKE  ;D
Habs mal mit in der ersten Post eingetragen, kann nicht schaden!

Gunther

Danke für die ausführliche Anleitung, Adam und für Eure Hilfe hier. Grandios!

Meine Anlage ist übrigens die Ist übrigens die Vitotronic 300 KW3, falls das wichtig ist. (ID: 209C)
Keine Ahnung, ob dieses Protokoll hier für die Anlage ist (abwärtskompatibel). Scheint aber egal zu sein, da ich mit Euren Werten ja gut fahre:
http://openv.wikispaces.com/Protokoll+300
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

kvo1

ob das Protokoll abwärtskompatibel ist sein mal dahingestellt...., vermutlich aber schon.

Viel entscheidender ist ja das Du die richtigen Adresen für Deine Steuerung ansprichst.

Übrigens hier
Zitathttp://openv.wikispaces.com/Protokoll+KW
ist das Telegramm auch nochmal hut erklärt .... aber das hatte ja Adam schon gemacht !

Und für Deine ID=209C   wäre ja das KW-Protokoll eh passend, siehe hier

Zitathttp://openv.wikispaces.com/Ger%C3%A4te

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

kvo1

Hallo Adam,

da mein RPi im Keller hängt und ich dorthin kein LAN-Kabel habe,
(bisher habe ich Power-LAN genutzt) hatte ich heute mal kurzerhand einen WLAN-Stick angesteckt.
Die Verbindung ist soweit ganz gut und stabil, aber ich habe dann irgendwann
gemerkt , daß ich keine (oder wenige) Werte mehr vom Optolink-Adapter bekomme.
Es scheint hier offensicht ein Problem zu geben, wenn der Optolink
an einem und der WLAN-Stick am zweite USB Port hängt.

Vielleicht hat ja jemand eine ähnliche Konfiguration (OPTOLINK + WLAN)
und kan das mal gegenprüfen.

Ich werde nochmal paar andere Sticks besorgen und testen.

Erstmal muß ich wieder auf Power-LAN zurück, ggf. hilft mir hier die
Anbindung via XPORT LAN von RainerZ ?

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

Joachim

wenn dein Pi durch den microUSB gespeist ist, bricht Dir die Spannung ein,
Aktiven Hub dazwischen.
FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

Adam

Hi Klaus,

ich glaube auch, daß das nicht am Modul liegt.
Das wird etwas sein wie Joachim es beschreibt,
oder fhem <-> Treiber Problem o.ä.
Im Modul nutze ich ja die allgemeinen FHEM Routinen,
die in allen Modulen genutzt werden!

Sorry,
Adam

Gunther

Hallo Adam,

folgendes habe ich nun in der Modul-cfg eingetragen:
POLL, 01F7010D02, 2ByteS, 10    , WW-Oben             , -
POLL, 01F7010E02, 2ByteS, 10    , WW-unten            , -
POLL, 01F7551E01, 1Byte , state , aktuelle_Stufe      , -
POLL, 01F7088604, 4Byte , 3600  , Stunden_Stufe_1     , day
POLL, 01F708A304, 4Byte , 3600  , Stunden_Stufe_2     , day
POLL, 01F7084201, 1Byte , state , Zustand_Stufe_1     , -
POLL, 01F7084901, 1Byte , state , Zustand_Stufe_2     , -
POLL, 01F7A38F02, 2ByteU, state , Ist-Leistung        , -
POLL, 01F7A30502, 2ByteU, state , Kesselleistung      , -


Testweise habe ich nun mit
get Viessmann Stunden_Stufe_1
versucht etwas in die Readings zu bekommen.

Habe ich etwas falsch gemacht?
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

kvo1

Was steht denn da ?
vielleicht warst Du zu spät ?

Zitat8. setzt mann dann den letzte 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,


@Joachim
Zitatwenn dein Pi durch den microUSB gespeist ist, bricht Dir die Spannung ein,
Aktiven Hub dazwischen.
das scheint es gewesen zu sein .....wo Du es so sagst - das stand schon mal in einem anderen Thread ! (ich werd alt  ;)  )
DANKE

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

Gunther

#190
Hm, nun habe ich irgendwie ein Problem.
Meine Plots (Viessmann, VBUS/LAN, OWL) werden nicht mehr angezeigt.

Ich bekomme nach dem Neustart von FHEM folgende Meldung anstelle der Plots:
XML-Verarbeitungsfehler: Kein Element gefunden
Adresse: http://192.168.0.22:8083/fhem/SVG_showLog?dev=FileLog_Viessmann_AussenTemp&logdev=FileLog_Viessmann_aussen_temp&gplotfile=SVG_FileLog_Viessmann_1&logfile=CURRENT&pos=
Zeile Nr. 2, Spalte 1:

Kennt das jemand?

Beim erneuten Klick auf den Raum bekomme ich die Plots alle leer angezeigt...

Auf Linux-Ebene bekomme ich folgende Meldung zig mal angezeigt:
Use of uninitialized value in hash element at fhem.pl line 1417.
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Gunther

Jeder Boot tut gut...

RPI durchgestartet und nun geht es wieder...
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Adam

@Gunther:

ein GET ist nur programmiert für CONFIG,HZTIMER,WWTIMER!

Wenn Du Deine POLL Commandos nun in die Modul-CFG eingetragen hast,
dann musst Du entweder FHEM neustarten, oder ein get <devicename> CONFIG machen.

Beim nächsten Pollen wird dann versucht diese Werte ebenfalls aus Heizung zu lesen.
Am besten dann das verbose auf 5 setzen und im LOG mal schauen, ob Du siehst,
dass diese Adressen gesendet werden. Man sieht dann auch, was die Heizung zurückliefert
und ob sie was liefert!

sollte dann ungefähr so aussehen:


2014.03.16 19:31:53 5: VCONTROL: Setze sendstr
2014.03.16 19:31:53 5: VCONTROL: send '01F7757404'
2014.03.16 19:31:53 5: VCONTROL_READ
2014.03.16 19:31:53 5: VCONTROL: VCONTROL_Read 'eabd8000'
2014.03.16 19:31:53 5: VCONTROL: receive 'Oelverbrauch : 8437.226'



Gruß
Adam

Gunther

#193
Für folgenden CFG-Eintrag
POLL, 01F7551E01, 1Byte , state , aktuelle_Stufe      , -
bekomme ich im Log folgende Einträge:


2014.03.19 12:00:08 5: VCONTROL: Setze sendstr
2014.03.19 12:00:08 5: VCONTROL: send '01F7551E01'
2014.03.19 12:00:08 5: SW: �U
2014.03.19 12:00:08 5: VCONTROL_READ
2014.03.19 12:00:08 5: VCONTROL: VCONTROL_Read '00'
2014.03.19 12:00:08 5: VCONTROL: receive 'aktuelle_Stufe : off'
2014.03.19 12:00:08 5: Triggering Viessmann (2 changes)
2014.03.19 12:00:08 5: Notify loop for Viessmann aktuelle_Stufe: off


Ich denke, ich sollte ungefähr Stufe 1 oder Stufe 2 angezeigt bekommen.
Liegt vermutlich am "state" im cfg-Eintrag
Teste mal "1" anstelle von "state"

EDIT: habe mal auf "1" gesetzt. Sehe Werte mit "on" und welche mit "off".
FHEM@Proxmox@Nuc: TabletUI als User-Interface (4 Wandtablets) / IOs per ser2net gekapselt
Homematic: Heizung, Fenster, Bewegung | Jeelink: Temperatur | Z-Wave: Bewegung, Temperatur | FS20: Temperatur, Fenster | Viessmann-Heizung eingebunden

Adam

Die Heizung liefert halt 1Byte 00 zurück, was auch immer das bei Stufe bedeuten soll??
Da du state eingetragen hast liefert er bei 00 -> off und bei 01 -> on
Wenn Du 1 einträgst liefert er Dir die Zahlen!