Modul zur Anbindung Viessmann Heizung (Vitotronic 200 KW1)

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

Vorheriges Thema - Nächstes Thema

ojb

FHEM unter Debian auf Asus EEBox: KNX (Wetterstation, Rollläden, Beleuchtung), Maple-CUN (Temperatur und Feuchte über 1-Wire, Intertechno-Funksteckdosen), PV-Anlage mit Plenticore und BYD, Viessmann Wärmepumpe, 1-Wire (Temperatur, Feuchte, Stromverbrauch), Husquarna-Automower, ...

ffdec

Gas- und Energieverbrauch anzeigen:

Hallo, hat de jemand ne Idee wie man das abbilden kann: Zeit * rel. Leistung usw. ??? :D
HMUARTLGW HMLAN Alarmanlage ZPumpe VCONTROL Viessmann 333-F MySensors CO2 Floorplan IT Raspberry 3 CC1101 Firmata Arduino nanoCUL868

PeMue

Zitat von: ffdec am 06 Oktober 2015, 19:58:58
Gas- und Energieverbrauch anzeigen:
Hallo, hat de jemand ne Idee wie man das abbilden kann: Zeit * rel. Leistung usw. ??? :D
Was hättest Du denn gerne? Ich habe realisiert, dass ich über die Laufzeit bzw. den Pumpendruck und die Brennerdüse den Ölverbrauch bzw. den aktuellen Tankstand berechne ...
Bei Bedarf kann ich das gerne 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

ffdec

#813
Ja, gern nehme ich das. Ist das halbwegs genau, weil ja die Zeit nie exakt ist, wegen der periodischen Datenerfassung.  Mich würde die Leistung in kWh und der Gasverbrauch in m³ pro Tag interessieren. Das müsste man doch einfach aus der Brennerlaufzeit * rel. Leistung von der Gesamtleistung (19kW).

Beispiel: Derzeit läuft mein Brenner in der kleinsten Stufe mit 19,5 %, d. h. ca. 4 kW * Brenndauer am Tag ca. 3 Stunden = 12 kWh/a entspricht bei Erdgas ca 1 m³ Verbrauch. Wirkungsgrad lassen wir mal außer acht.

Dementsprechend müssten dann bei Brennermodulation die Werte mit den Zeiten multipliziert werden. Das kriegt man ja über das Log raus.
HMUARTLGW HMLAN Alarmanlage ZPumpe VCONTROL Viessmann 333-F MySensors CO2 Floorplan IT Raspberry 3 CC1101 Firmata Arduino nanoCUL868

Omega

Wahrscheinlich hast du schon mal geschaut, ob du deinen Gaszähler auswerten kannst, aber falls nicht...
http://voizchat.de/gaszaehler-verbrauch-erfassen-mit-fhem-und-raspberry-gpio/

Ist eine einfache, leicht zu realisierende Lösung. Als Reedkontakt habe ich mir bei ebay kostengünstig folgende besorgt: ,,Reedkontakt 13mm x 2mm Miniatur Reedschalter" (10 Stück ca. 5€).
Laufen seit mehreren Monaten völlig problemlos. Ich habe keine zusätzlichen Widerstände oder ähnliches löten müssen. Einfach Reedkontakt an die Ausbuchtung vom Gaszähler und auf der anderen Seite an den Raspi.
Und da ich über das tolle Modul von Adam auch meine Speicherladepumpe abfragen kann, habe ich zusätzlich eine Differenzierung meines Gasverbrauchs nach Warmwasser und Heizbetrieb.  ;D

Gruß
Holger
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

ffdec

#815
Klingt gut. Ich habe auch davon gelesen. Aber leider habe ich keinen PI sondern einen Ubuntu-Server. Gibt es da nicht etwas, zum Auswerten der Impulse? Irgend eine Hardware brauche ich dennoch. Da scheint mir der Aufwand wahrscheinlich zu hoch. Aber ich lasse mich auch gern überzeugen.

Hab schon ne brauchbare Hardware gefunden: AVR NET-IO von Pollin
http://forum.fhem.de/index.php?topic=14968.0
HMUARTLGW HMLAN Alarmanlage ZPumpe VCONTROL Viessmann 333-F MySensors CO2 Floorplan IT Raspberry 3 CC1101 Firmata Arduino nanoCUL868

kvo1

@ffdec:  ich habe her einen reedkontakt an einem HM - Funkinterface , bei der Umdrehung funkt mir das einen Impuls zum Fhem/CUL ! (Lösung deshalb weil keine Kabel möglich und Entfernung recht groß)

@Omega
ZitatUnd da ich über das tolle Modul von Adam auch meine Speicherladepumpe abfragen kann, habe ich zusätzlich eine Differenzierung meines Gasverbrauchs nach Warmwasser und Heizbetrieb.
das würde mich interessieren , würdest Du mir die Lösung bereitstellen !?

Danke
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

Omega

#817
GPIO (Reedkontakt) einrichten, wie im Link (voizchat) in meinem vorigen Beitrag beschrieben.

HourCounter Erweiterung implementiert, um Tages-/Wochen-/Monats-/Jahreswerte zu erfassen (s.a. http://www.fhemwiki.de/wiki/HourCounter )

Um zunächst den kompletten Gasverbrauch festzuhalten, genügt

define Gasverbrauch HourCounter GPIOGaszaehler:on GPIOGaszaehler:off
define FileLog_Gasverbrauch FileLog ./log/Gasverbrauch-%Y-%m.log Gasverbrauch:countsOverall:.*|Gasverbrauch:countsPerDay:.*|Gasverbrauch:state:.*


Deinen aktuellen Zählerstand erfasst du mit

set Gasverbrauch countsOverall 3711916
      <--- entspricht 37.119,16


HourCounter Erweiterung aktivieren

define nf.Gasverbrauch.EVENT notify Gasverbrauch:tick.* { appHCNotify("%NAME","%EVTPART0","%EVTPART1");;}
attr Gasverbrauch event-on-change-reading .*
attr Gasverbrauch event-min-interval tick.*:0,.*:3600


Damit nicht zu viele Ereignisse in den Log-Dateien landen, kann man diese sinnvoll einschränken, so daß nur Änderungen das Feuern von Events auslösen.
Wenn sich nun jedoch über Stunden und Tage nichts ändert, sieht man in den Charts keine Daten mehr. Mit dieser Anweisung wird erreicht, daß alle Readings nach Aktualisierung spätesten nach 1 Stunden einen Event feuern, auch wenn sich der Wert nicht ändert. Eine Ausnahme hiervon sollen machen die tick*-Readings, deren Events sollen immer sofort gefeuert werden, wenn sie aktualisiert werden.


Archiv für Tages-/Wochen-/Monats-/Jahreswerte anlegen

define Filelog_Gasverbrauch.FileDay FileLog ./log/Gasverbrauch-Day-%Y.log Gasverbrauch:app\w+(Utilization|PerHour|PerDay|PerWeek|PerMonth|PerYear)(?!Temp).*

Plots habe ich noch nicht so schöne und zusätzlich muss ich mich auch noch in LogProxy einlesen. Daher lasse ich das mal außen vor

Soweit der Gesamtverbrauch.

Und nun zum Gasverbrauch für die Warmwassererzeugung:
Wenn an meinem Kessel die Warmwasseraufbereitung läuft, ist immer die Speicherladepumpe eingeschaltet.
Vitocrossal ist der Name meiner Heizung, die Regelung ist eine Vitotronic 200 KW6B. Für meine Speicherladepumpe habe ich folgenden Eintrag in der cfg-Datei (Basis ist VScotHO1):

POLL, 01F7651301, 1ByteU, state , Speicherladepumpe   , -


Da ich am Gaszähler ja nur einen Reedkontakt habe, brauche ich einen 2. Zähler (ein Dummy genügt dafür). Über ein Notify schalte ich diesen Dummy immer dann, wenn der GPIO-Zähler schaltet UND gleichzeitig die Speicherladepumpe angeschaltet ist

define d.Gaszaehler_WW dummy
attr d.Gaszaehler_WW setList state:on,off

define nf.d.Gaszaehler_WW notify GPIOGaszaehler {
if ($EVENT eq "on" && ReadingsVal("Vitocrossal","Speicherladepumpe","") eq "on") {
fhem "set d.Gaszaehler_WW on"
} else {
fhem "set d.Gaszaehler_WW off"
}
}


Auch hier definiere ich einen 2. HourCounter inkl. der Erweiterung

define Gasverbrauch_WW HourCounter d.Gaszaehler_WW:on d.Gaszaehler_WW:off
attr Gasverbrauch_WW event-min-interval tick.*:0
attr Gasverbrauch_WW event-on-change-reading .*

define nf.Gasverbrauch_WW.EVENT notify Gasverbrauch_WW:tick.* { appHCNotify("%NAME","%EVTPART0","%EVTPART1");;}


Dazu passende Logs (ich schreibe in's gleiche Log wie beim Gesamtgasverbrauch, damit beide Werte besser auswertbar/anzeigbar sind)

define FileLog_Gasverbrauch_WW FileLog ./log/Gasverbrauch_WW-%Y-%m.log Gasverbrauch_WW:countsOverall:.*|Gasverbrauch_WW:countsPerDay:.*|Gasverbrauch_WW:state:.*
define Filelog_Gasverbrauch_WW.FileDay FileLog ./log/Gasverbrauch-Day-%Y.log Gasverbrauch_WW:app\w+(Utilization|PerDay|PerWeek|PerMonth|PerYear)(?!Temp).*


Ich hoffe, nichts vergessen zu haben.

Gruß
Holger
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

kvo1

Hallo Holger,

FETTEN DANK !, echt super , da ist der Freitag abend gerettet  ;)

ZitatIch hoffe, nichts vergessen zu haben.
Wenn ich mir noch "unverschämter Weise " die Plots .... wünschen dürfte ? :-[

Danke
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

Omega

#819
Ich halte den Plot ja nicht für besonders gelungen, aber dennoch gerne:

Meine Definition (+ Attribute) sieht folgendermaßen aus:

define SVG_Filelog_Gasverbrauch.FileDay_1 SVG Filelog_Gasverbrauch.FileDay:SVG_Filelog_Gasverbrauch.FileDay_1:CURRENT
attr SVG_Filelog_Gasverbrauch.FileDay_1 captionLeft 1
attr SVG_Filelog_Gasverbrauch.FileDay_1 fixedrange month
attr SVG_Filelog_Gasverbrauch.FileDay_1 label "Gasverbrauch pro Tag in m³ und €: Min $data{min1}, Max $data{max1}, Durchschnitt $data{avg1} Summe € Monat $data{sum3}"
attr SVG_Filelog_Gasverbrauch.FileDay_1 plotsize plotsize 1024,420



Und die Plotdatei selber:

# Created by FHEM/98_SVG.pm, 2015-10-06 09:30:36
set terminal png transparent size <SIZE> crop
set output '<OUT>.png'
set xdata time
set timefmt "%Y-%m-%d_%H:%M:%S"
set xlabel " "
set title '<L1>'
set ytics
set y2tics
set grid y2tics
set ylabel ""
set y2label "Gasverbrauch in m³"
set yrange [0:8]
set y2range [0:6]

#Filelog_Gasverbrauch.FileDay 4:Gasverbrauch.appCountsPerDay\x3a::$fld[3]/=100
#Filelog_Gasverbrauch.FileDay 4:Gasverbrauch_WW.appCountsPerDay\x3a::$fld[3]/=100
#Filelog_Gasverbrauch.FileDay 4:Gasverbrauch.appCountsPerDay\x3a::$fld[3]=$fld[3]*9.4585275*0.0532

plot "<IN>" using 1:2 axes x1y2 title 'Verbrauch gesamt' ls l0 lw 3 with bars,\
     "<IN>" using 1:2 axes x1y2 title 'Verbrauch WW-Erzeugung' ls l2fill lw 1 with bars,\
     "<IN>" using 1:2 axes x1y1 title 'Verbrauch in €' ls l1fill lw 3 with lines



Die Formel bei "Verbrauch in €" ($fld[3]=$fld[3]*9.4585275*0.0532) hat bei mir folgende Bedeutung (Gaszustandszahl und Brennwert müssten in deiner letzten Gasrechnung stehen, die Werte sind je nach Region sehr unterschiedlich):
Konstante für die Berechnung der Tageskosten:
Umrechnung von m³ in kWh: m³ * Gaszustandszahl * Brennwert = kWh
Gaszustandszahl:         0,9627
Brennwert:            9,8250
Faktor (Gaszustand * Brennwert) = 9.4585275
mein aktueller Gaspreis:   0,0532 €/kWh

Viel Spaß damit
Holger

P.S. Fehler gefunden, schnell korrigiert. Du solltest dich auf meinen Plot nur bedingt verlassen. Lieber noch einmal selber rechnen.
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

ffdec

#820
Hm, ich hab n Problem mit der Party:

setList WW HWW AUS NIVEAU P-ON P-OFF WWTEMP

Set Heizung P-ON


Was mache ich falsch? Kann es sein, dass die Party-Temp gesetzt sein muss?
HMUARTLGW HMLAN Alarmanlage ZPumpe VCONTROL Viessmann 333-F MySensors CO2 Floorplan IT Raspberry 3 CC1101 Firmata Arduino nanoCUL868

Gunther

Hallo Ihr Viessmänner,

hat sich schon einer an das Umsetzen einer schönen Oberfläche mit FHEM Tablet UI getraut?
(Link: http://forum.fhem.de/index.php/topic,34233.0.html)

Klasse wäre hier natürlich eine Seite für Timer und Einstellungen sowie Statuswerte.
Ich starte gerade mit einer neuen UI für meine Tablets. Wenn schon etwas da ist, würde ich gerne aufspringen.
Wenn nicht werde ich mich da mal selbst reinfuchsen.

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

argonaut

Hallo zusammen,

ich verfolge den Thread jetzt  bereits eine Weile. Erst einmal Danke und Lob für die gute Arbeit bei diesem Projekt!
Da ich demnächst auch meine Viessmann-Heizung über einen RaspPi und FHEM steuern möchte meine Frage: gibt es mit dem Modul derzeit auch die Möglichkeit einen direkt per GPIO an den RasPi angeschlossenen OPTOLINK-Adapter auszulesen? Scheint mir die hardwaretechnisch einfachste Möglichkeit, doch habe ich PERL bis jetzt nur am Horizont gesehen ;)

https://openv.wikispaces.com/Bauanleitung+RaspberryPi

Vielen Dank,
argonaut

Gunther

Ich kann Dir die Frage leider nicht direkt beantworten.

Was spricht gegen einen USB-Optolink-Adapter. Das klappt wunderbar.
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

PeMue

Zitat von: argonaut am 12 Oktober 2015, 16:56:48
Da ich demnächst auch meine Viessmann-Heizung über einen RaspPi und FHEM steuern möchte meine Frage: gibt es mit dem Modul derzeit auch die Möglichkeit einen direkt per GPIO an den RasPi angeschlossenen OPTOLINK-Adapter auszulesen? Scheint mir die hardwaretechnisch einfachste Möglichkeit, doch habe ich PERL bis jetzt nur am Horizont gesehen ;)

https://openv.wikispaces.com/Bauanleitung+RaspberryPi
Hallo Argonaut,

der Optolink Adapter ist dann nicht an irgendeinem GPIO angeschlossen, sondern an der seriellen Schnittstelle, die musst Du freischalten und dann müsstes Du Adam's Modul per /dev/ttyAMA0 ansprechen. Aus meiner Sicht spricht nichts dagegen, dass es nicht funktionieren sollte. Die Kabel zum Raspberry Pi sollten nicht allzu lang sein, da der Pegel  nur 3,3 V ist ...

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