Viessmann Heizungssteuerung mit vcontrold

Begonnen von dougie, 24 März 2013, 11:16:26

Vorheriges Thema - Nächstes Thema

blueberry63

Ich habe die Hardware für die Optolink-Schnittstelle inzwischen bekommen und installiert. "VControl" habe ich erfolgreich auf meine Raspberry PI installiert, aber jetzt komme ich nicht mehr weiter. Muß ich "vcontrol" permanent laufen lassen, um "vclient" zu nutzen und wenn ja, wie mache ich das? Außerdem kommt beim Aufruf von vcontrol folgende Fehlermeldung (in "vcontrol.xml" habe ich die richtige IP-Adresse gesetzt):
[1397] Fri Jul  5 10:53:33 2013 : Expandiere Kommandos fuer Device 2053
[1397] Fri Jul  5 10:53:33 2013 : protocmd Zeile: SYNC;GETADDR $addr $len;RECV $len $unit
[1397] Fri Jul  5 10:53:33 2013 :   Nach Ersetzung: SYNC;GETADDR 44 1;RECV 1 UT1
[1397] Fri Jul  5 10:53:33 2013 :    nach EXPAND:SEND 04;WAIT 05;SEND 01 CB 44 1;RECV 1 UT1
[1397] Fri Jul  5 10:53:33 2013 : Protokoll Kommando geteaddr (bei getHKPTyp) nicht definiert

Hat jemand eine Ahnung, was ich falsch mache?
Arbeitet Ihr mit den Original-Dateien "vcontrold.xml" und "vito.xml"?
Was muß in diesen Dateien geändert werden, damit alles mit meiner Steuerung funktioniert?

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), Automower

blueberry63

Hallo,

ich habe das Problem mit "vcontrold.xml" und "vito.xm" gelöst und dabei eine Datenbank gefunden, wo man individuell zu seiner Steuerung diese Dateien erstellt bekommt:

https://vito.rampro.de

UserID und Password poste ich hier nicht, die kann man aber unter

http://openv.wikispaces.com/share/view/62042248

nachlesen.

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), Automower

blueberry63

Hallo,

wenn ich den Thread richtig gelesen und verstanden habe, werden die Daten der Vitotronic in eine Fakelog-Datei geschrieben. Ich habe FHEM vor einiger Zeit auf DBLOG umgestellt und würde gerne wissen, ob das mit den Daten der Vitotronic auch möglich ist (wegen der Trennung von AKTUELLEN und HISTORY Daten)?

Was würde es bedeuten, für diese Schnittstelle ein "richtiges" FHEM Device anzulegen?

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), Automower

PeMue

Hallo Blueberry,

ich hole mir die Daten von der Vitotronic 200 KW1 mit einem Shell Skript über vclient, dieses wird zyklisch über einen cron-Job ausgeführt.
In fhem ist dann folgendes in fhem.cfg definiert:
#-----------------------------------------------------------------------------
# Viessmann Vitotronik 200 KW1
define Heizung_t_log FileLog ./log/heizung_t-%Y-%m.log fakelog
define 1_Heizung_t_wl weblink fileplot Heizung_t_log:v200kw1_t:CURRENT
attr 1_Heizung_t_wl label "V200KW1 Temperaturen: Min $data{min1}, Max $data{max1}, Aktuell $data{currval1}"
attr 1_Heizung_t_wl room Heizung
define Brenner_h_log FileLog ./log/brenner_h-%Y-%m.log fakelog
define 2_Brenner_h_wl weblink fileplot Brenner_h_log:v200kw1_h:CURRENT
attr 2_Brenner_h_wl label "V200KW1 Brennerstunden: Min $data{min1}, Max $data{max1}"
attr 2_Brenner_h_wl room Heizung

Ich denke, wenn Du dblog verwenden willst, musst Du per shell direkt in die Datenbank schreiben.
Oder ein fhem Modul entwickeln, das direkt per vclient Abfrage die Daten holt.

Was ich mir gerade für ein (wenig genutztes) Ferienhaus anschauen, ist folgendes:
- Fritz Box 7270 V2 mit UMTS Modem (soll Telefon bzw. Internet zur Verfügung stellen, da es kein DSL per Kabel gibt)
- Optolink Interface zur Gasheizung und ein
- fhem Modul, das über die USB (serielle) Schnittstelle an der Fritz Box die Daten über das Viessmann Protokoll (warten auf 0x05, etc.) abholt. Mein Ansatz ist, die Kommunikation über das serielle Modul von Perl machen. Ist aber noch ziemliche Zukunftsmusik ...

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

blueberry63

@PeMue

Ich habe es inzwischen geschafft, die Daten in die DBLog zu schreiben, möchte aber noch ein bisschen "optimieren", bevor ich es hier vorstelle.

Könnte man übrigens nicht bei folgendem Block das Schreiben in die TMP-Datei umgehen, um Schreib-/Lesezugriffe zu sparen:

Zitat$VC_PATH -h $VC_HOST -c 'getTempA,getTempWWsoll,getTempWWist,getTempKsoll,getTempKist' >$VC_TMP/temp.tmp
cat $VC_TMP/temp.tmp \
| grep "" \
| sed 's/[\t]/ /g' \
| sed 's/,/ /g' \
| sed 's/ \+/ /g' \
| sed 's/ Grad Celsius//g' \
| sed -e 's/.\{4\}$//' \
| sed 's/getTe//g' \
| sed 's/mpWWs/ Ws: /g' \
| sed 's/mpWW/ Wi: /g' \
| sed 's/mpKs/ Ks: /g' \
| sed 's/mpK/ Ki: /g' \
| sed 'N;N;N;N;N;N;N;N;N;s/\n//g' \
| sed "s/^/$date T: /" >> $tlog

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), Automower

PeMue

Hallo blueberry63,

ich denke, Du hast recht mit dem optimieren. Für mich war erste Priorität, die Sache mal prinzipiell zum Laufen zu bringen. Ich werde mal bei Gelegenheit Deine Modifikation testen und berichten (dann muss ich halt wieder bei jedem sed nachschauen, was die Zeile macht, aber nur so lernt man ...).

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

hcp65

Habe den Raspberry mit openv zum Laufen gebracht. Soweit alles gut!

Ein Problem habe ich noch mit den Temperaturen. Manchmal kommen da jede Menge Nachkommastellen - was nicht sein kann. Was ist das zu tun? Soll man diese Werte wegfallen lassen, runden oder abschneiden?`Woher kommt das?

Gruss, hcp65

PeMue

Hallo hcp65,

mit meinen Skripten schneide ich diese weg (bis auf zwei bei der Temperatur, keine für ganze Zahlen und drei bei Zeiten). Der vcontrold macht glaube ich sechs Nachkommastellen. Ich denke, zwei tun es bei der Temperatur auch ...

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

blueberry63

Hallo,
meines Wissens sind diese "Ausreisser" Kalibriernessungen. Ich schließe die Werte bei der Datenübernahme einfach aus.

Weiß eigentlich jemand, wie man die "Brennerbetriebsstunden" richtig umrechnet/darstellt?
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), Automower

PeMue

Hallo Blueberry63,

ich mache das (kurz als Demo per telnet, aber geht auch mit einem Skript) per
vctrld>getBrennerStunden1
6902.453125 Stunden

Und da bekomme ich 6902 Stunden und 0,453125 * 60 Minuten (denke ich zumindestens mal). Die Steuerung am Display zeigt aber nur ganze Zahlen an, was ich ein bisschen doof finde.

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

blueberry63

Hallo,

kann mir jemand konkret aufzeigen, wie man via FHEM den Betriebsmodus ändert? Ich bin immer noch an dem "Urlaubs-Modus" interessiert. Meistens vergesse ich nämlich, die Heizung auf "Urlaub" einzustellen und so könnte ich das per Smartphone-App von unterwegs nachholen. Optimal wäre natürlich auch das Setzen von Ab- und Anreisetag.

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), Automower

PeMue

Hallo Blueberry63,

ich habe da mal im openv Wiki die Adresse vito.ramrpo.de gefunden (genauen Link habe ich leider gerade nicht parat).
Da heißt es, dass mit
FerienbeginnA1M1 Adr. 2309 und CT
das einzustellen sei. M.E. müsste es aber eher Ferienende heißen. Ich habe es aber noch nicht probiert, es ist aber auf meiner Liste ...

Gruß
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

blueberry63

Hallo Peter,

hast Du denn mal ein Beispiel, wie man generell in einen anderen Betriebsmodus schaltet (z.Bsp. Sparmodus)?
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), Automower

PeMue

Hallo Blueberry,

noch nicht mit fhem aber per telnet <RPi>:3002 (oder welcher Port bei Dir eingestellt ist):
vctrld>commandszeigt die aktuell in der XML-Datei befindlichen Befehle an
vctrld>getBetriebArt oder vctrld>getBetriebArtM1zeigt die aktuelle Betriebsart an und
vctrld>setBetriebArt hm, das fehlt bei mir wohl noch, aber
vctrld>setBetriebPartyM1 <wert> setzt den Partymodus (wobei 0 aus und 1 an sein müsste).
Näheres siehe openv Wiki.
Sobald ich ein ensprechenden xml Eintrag habe, werde ich diesen posten.

Gruß PeMue

RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

PeMue

Hallo zusammen,

angehängt mal ein Startskript für den vcontrold:
- in das Installationsverzeichnis von vcontrold kopieren (bei mir /opt/vcontrold/ mit einem Unterverzeichnis /script/init.d
- in diesem Verzeichnis mit chmod 755 vcontrold ausführbar machen
- danach link einfügen und dem Syetem bekannt machen mitsudo ln -s /opt/vcontrold/script/init.d/vcontrold /etc/init.d/
sudo update-rc.d vcontrold remove
sudo update-rc.d vcontrold default

Dann sollte der daemon beim Start automatisch hochfahren.

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser