vitoconnect

Aus FHEMWiki
vitoconnect
Zweck / Funktion
Steuerung von Viessmann Heizungen
Allgemein
Typ Gerätemodul
Details
Dokumentation EN / DE
Thema
Support (Forum) Heizungssteuerung/Raumklima
Modulname 98_vitoconnect.pm
Ersteller Marc (Forum /Wiki)
Wichtig: sofern vorhanden, gilt im Zweifel immer die (englische) Beschreibung in der commandref!


Vitoconnect ist die Schnittstelle zwischen Heizkessel und der App ViCare zum Bedienen von Viessmann Heizungsanlagen.

Mit dem FHEM Modul vitoconnect können die Daten, die über die Internetschnittstelle an den Herstellerserver gemeldet und von diesem über eine API zur Verfügung gestellt werden, in FHEM in Form von Readings angezeigt werden. Auch eine Steuerung der Heizung ist mit diesem Modul möglich.

Wen stört, dass die Daten in der Herstellercloud liegen, sei das Modul Vitotronic 200 (Viessmann Heizungssteuerung) empfohlen.

Die Idee zu dem Modul enstand aus dem Thread "Viessmann VitoConnect API". Es basiert auf dem PHP Modul von thetrueavatar.

X mark.svgAktuelle Entwicklung des Moduls

Das "offizielle" Modul im SVN ist derzeit "verwaist", der Maintainer (mcp) nicht mehr aktiv:

  • Ursprüngliches Forenthema (86073): geschlossen; enthält "inoffizielle" Modulupdates von verschiedenen Autoren in verschiedenen Beiträgen
  • Neues Forenthema (Vitoconnect - Verbesserte Version), Benutzer stefanru  ; dieses Forenthema wird der neue "Entwicklungsthread" zum Modul. Dort werden auch (im ersten Beitrag) die Modul-Downloads zu finden sein.
Info green.pngDisclaimer zur Ursprungsversion des Moduls

Das Modul wurde nach bestem Wissen und Gewissen programmiert. Da Änderungen an der Heizung nur über die Viessmann API erfolgen, sollte die Nutzung risikoarm sein. Allerdings kann ich keine Garantie übernehmen, dass es nicht doch zu irgendwelchen unerwünschten Nebeneffekten kommt. Nutzung auf eigene Gefahr!

Diskussionen über Fehler, Verbesserungen usw. finden im Forum im Thread "Neues Modul: vitoconnect" statt.


Einrichtung

Vorbereitung

Zur Nutzung des Moduls muss vorhanden sein:

  • Eine aktuelle FHEM Installation
  • Internet-Schnittstelle Vitoconnect 100 (Typ OPTO1)
  • Ein Viessmann ViCare Account, wie er im Rahmen der Nutzung der ViCare App erstellt wird.
  • Seit 15. Juli 2021 auch einen persönlichen API Key (=Client-ID), diesen gibts hier: https://developer.viessmann.com
  • Das Modul benötigt mindestens folgende Perl Libraries: Path::Tiny, JSON und DateTime. Diese können mit sudo apt install libtypes-path-tiny-perl libjson-perl libdatetime-perl oder via cpan. Sollten Libraries fehlen erhält man folgende Fehlermeldung "cannot load module vitoconnect". Dann bitte ins Logfile schauen, welche Lib fehlt.

Define des Devices

Dann kann das Gerät angelegt werden: define <name> vitoconnect <user> <password> <interval>

Z.B. : define vitoconnect vitoconnect user@mail.xx geheim 60

User und Passwort sind das gleiche wie in der ViCare App.

Da die Parameter, die beim Definieren des Devices angelegt werden im Klartext in der Detailansicht lesbar sind, kann man beim Definieren einfach ein falsches Passwort eingeben und das richtige später mit einem "set"-Kommando setzen. Also zum Beispiel:

define vitoconnect vitoconnect user@mail.xx fakePassword 60
set vitoconnect password correctPassword 60

Nachträgliches Ändern des Intervalls:
Man kann einfach das DEF aufrufen und dort die Parameter korrigieren (z.B. von 60 Sek. auf 180 Sek.) - dies gilt natürlich ebenso für nachträgliches Ändern des Usernamens oder Passwortes.

Betrieb

Der Zugriff auf die API von Viessmann ist aktuell auf 1450 pro Tag in der gratis Version beschränkt, daraus ergibt sich ein Maximum von ca. einer Abfrage pro Minute. Die Anzahl der Zugriffe ist im Entwicklerportal einsehbar: https://developer.viessmann.com/de/clients/history

Readings

Readings

Die Readings werden so ausgegeben, wie sie von der API geliefert werden! Alle Reading für HK1 sind auch für HK2 und HK3 verfügbar sofern die Heizung solche Readings liefert.

Name Datentyp/
Wertebereich
Bedeutung
Aktive_Heizkreise 0,1,2 Liste der aktiven Heizkreise. 0 entspricht HK1
Aussen_Status connected/notConnected Ist ein Außensensor angeschlossen?
Aussen_StatusWired connected/notConnected Ist ein Außensensor per Kabel angeschlossen? (wird seit 16.12.18 nicht mehr geliefert?)
Aussen_StatusWireless connected/notConnected Ist ein kabelloser Außensensor angeschlossen? (wird seit 16.12.18 nicht mehr geliefert?)
Aussentemperatur 2.4 Außentemperatur in °C
Brenner_Betriebsstunden 934.336944444444 Brenner Betriebsstunden
Brenner_Fehlercode 0 Brenner Fehlercode
Brenner_Modulation 11 Brenner Modulation in %
Brenner_Starts 2717 Brenner Starts
Brenner_Status ok Brenner Status
Brenner_aktiv 0,1 Brenneraktiv
Controller_Seriennummer 1234567890123456 Controller Seriennummer
Device_Time_Offset 61 ???
Fehlereinträge_Historie ErrorListChanges ??? (noch nicht implementiert)
Fehlereinträge_aktive ErrorListChanges ??? (noch nicht implementiert)
Gasverbrauch_Heizung/Jahr 3293,0,0 Liste der jährlichen Gasverbräuche Heizung in kWH (aktuelles Jahr und die letzten beiden) (bis zum 09.12.2018 lieferte die API Werte, die noch durch 8 geteilt werden mussten, um auf kWh zu kommen!

Außerdem liefert Viessmann für manche Heizungstypen (noch) keine getrennten Werte für Heizung und WW. D.h. in den Reading für WW und Heizung steht der gleiche Wert (vermutlich der Gesamtverbrauch)!

Gasverbrauch_Heizung/Monat 1078,1384,590,241,0,0,0,0,0,0,0,0,0 Liste der monatlichen Gasverbräuche Heizung in kWH
Gasverbrauch_Heizung/Tag 76,104,113,99,76,65,60,70 Liste der täglichen Gasverbräuche Heizung in kWH (aktueller und die letzten 7 Tage)
Gasverbrauch_Heizung/Woche 555,409,416,472,289,196,254,209,24,46,

183,192,49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

Liste der wöchentlichen Gasverbräuche Heizung in kWH
Gasverbrauch_WW/Jahr 235,705,0 Liste der jährlichen Gasverbräuche Warmwasser in kWH
Gasverbrauch_WW/Monat 27,208,213,193,215,84,0,0,0,0,0,0,0 Liste der monatlichen Gasverbräuche Warmwasser in kWH
Gasverbrauch_WW/Tag 2,6,0,0,0,2,9,0 Liste der täglichen Gasverbräuche Warmwasser in kWH
Gasverbrauch_WW/Woche 17,0,37,43,51,50,41,53,52,47,41,52,44,49,41,45,52,47,45,49,51,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 Liste der wöchentlichen Gasverbräuche Warmwasser in kWH
HK1-Betriebsart standby, dwh, dhwAndHeating, forcedReduced, forcedNormal Aus, Nur Warmwasser aktiv , Heizung und Warmwasser aktiv, Dauernd Reduziert, Dauernd Tagbetrieb
HK1-External_Temperatur 0 Temperatur Raumsensor?
HK1-External_aktiv 0 Raumsensor aktiv?
HK1-Frostschutz_Status on, off Frostschutz Status
HK1-Heizkurve-Niveau 0 Heizkurve-Niveau
HK1-Heizkurve-Steigung 1.4 Heizkurve-Steigung
HK1-Programmstatus standby, reduced, normal, forcedReduced, forcedNormal Programmstatus
HK1-Raum_Status error Raumsensor?
HK1-Raum_Temperatur 20 Temperatur Raumsensor? Nur vorhanden, wenn HK1-Raum_Status "ok"
HK1-Reduzierte_Temperatur_erzwungen 0,1 xxx
HK1-Solltemperatur_aktiv 0,1 Solltemperatur aktiv
HK1-Solltemperatur_comfort 22 Comfort Solltemeratur
HK1-Solltemperatur_comfort_aktiv 0,1 Comfort aktiv
HK1-Solltemperatur_eco 24 Eco Solltemperatur
HK1-Solltemperatur_eco_aktiv 0,1 Eco aktiv
HK1-Solltemperatur_erzwungen 0,1 Solltemperatur erzwungen
HK1-Solltemperatur_normal 24 Solltemperatur normal
HK1-Solltemperatur_reduziert 16 Solltemperatur reduziert
HK1-Solltemperatur_reduziert_aktiv 0,1 Reduziert aktiv
HK1-Standby_aktiv 0,1 Standby aktiv
HK1-Urlaub_Ende 2019-02-16T00:00:00.000Z Urlaubsabsenkung Ende
HK1-Urlaub_Start 2019-02-02T23:59:59.000Z Urlaubsabsenkung Start
HK1-Urlaub_aktiv 0,1 Urlaubsabsenkung aktiv
HK1-Vorlauftemperatur 81 Vorlauftemperatir
HK1-Vorlauftemperatur_aktiv connected Vorlauftemperatursensor verbunden
HK1-WW_aktiv 0,1 Modus WW (dhw) aktiv
HK1-WW_und_Heizen_aktiv 0,1 Modus WW und Heizen (dhwAndHeating) aktiv
HK1-Zeitsteuerung_Heizung

wed start:05:00 mode:normal end:08:00 position:0, mode:normal end:23:00 position:1 start:16:00, sat position:0 end:23:00 mode:normal start:06:00, thu position:0 mode:normal end:08:00 start:05:00, start:16:00 end:23:00 mode:normal position:1, sun start:06:00 position:0 end:23:00 mode:normal, mon start:05:00 position:0 end:08:00 mode:normal, start:16:00 position:1 mode:normal end:23:00, fri start:05:00 position:0 end:08:00 mode:normal, position:1 mode:normal end:23:00 start:16:00, tue position:0 mode:normal end:08:00 start:05:00, mode:normal end:23:00 position:1 start:16:00,

Zeitplan für Heizung
HK1-Zeitsteuerung_Heizung_aktiv 0,1 Zeitplan Heizung aktiv
HK1-Zeitsteuerung_Zirkulation 0,1 Zeitplan für Zirkulationspumpe. Ist irgendwann nach WW gewandert?
HK1-Zeitsteuerung_Zirkulation_aktiv 0,1 Zirkulationspumpe zeitgesteuert
HK1-Zirkulationspumpe on,off Zirkulationspumpe aktiv (neu seit 16.12.18?)
HK1-aktiv 1 HK1 aktiv
Kessel_Common_Supply error ??? (neu seit 16.12.18?)
Kessel_Status connected xxx
Kesseltemperatur 53 xxx
Kesseltemperatur_exact 53 ??? (neu seit 16.12.18?)
Mehrfamilienhaus_aktiv 0,1 xxx
Service_Betriebsstunden_seit_letzten 0 (wird seit 16.12.18 nicht mehr geliefert?)
Service_Intervall_Betriebsstunden 0 (wird seit 16.12.18 nicht mehr geliefert?)
Service_Intervall_Monate 0 ???
Service_Letzter 1970-01-01T00:00:00.000Z ???
Service_Letzter_brennerbasiert 1970-01-01T00:00:00.000Z (wird seit 16.12.18 nicht mehr geliefert?)
Service_Monate_aktiv_seit_letzten_Service 0 ???
Service_fällig 0,1 Service fällig?
Service_fällig_brennerbasiert (wird seit 16.12.18 nicht mehr geliefert?)
Stromverbrauch/Jahr 35573,66052,0 Stromverbrauch im Jahr in Wh(?) (analog Gasverbrauch) (neu seit 15.02.19?)
Stromverbrauch/Monat 11860,23713,22851,19264,17924,6013,0,0,0,0,0,0,0 Stromverbrauch im Monat(analog Gasverbrauch) (neu seit 15.02.19?)
Stromverbrauch/Tag 409,828,720,733,731,727,708,682 Stromverbrauch im Tag (analog Gasverbrauch) (neu seit 15.02.19?)
Stromverbrauch/Woche 4418,5058,5514,5802,5249,5109,5156,5702,5179,5547,4286,4710,5087,4236,

4075,4633,4307,3675,3721,4148,4594,1419,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

Stromverbrauch im Woche (analog Gasverbrauch) (neu seit 15.02.19?)
WW-Aufladung 0,1 WW Vorrat wird erhitzt (neu seit 16.12.18?)
WW-Haupttemperatur 54 ?? (neu seit 16.12.18?)
WW-Isttemperatur 56 WW Ist-Temperatur
WW-Sensoren_Auslauf_Status error ??? (neu seit 16.12.18?)
WW-Solltemperatur 53 WW Solltemperatur
WW-Temperatur_aktiv connected WW aktiv
WW-Zeitplan

fri position:0 mode:on end:22:30 start:06:30, mon start:06:30 mode:on end:22:30 position:0, sat start:06:30 position:0 mode:on end:22:30, wed end:22:30 mode:on position:0 start:06:30, thu start:06:30 position:0 mode:on end:22:30, tue position:0 mode:on end:22:30 start:06:30, sun mode:on end:22:30 position:0 start:06:30,

WW Zeitplan
WW-Zirkulationspumpe_Zeitsteuerung_aktiv 0,1 Zeitsteuerung Zirkulationspumpe aktiv(neu seit 16.12.18?)
WW-Zirkulationspumpe_Status on Status Zirkulationspumpe(neu seit 16.12.18?)
WW-Zirkulationspumpe_Zeitplan

wed start:04:30 mode:on end:22:30 position:0, mon start:04:30 position:0 end:22:30 mode:on, sun start:04:30 position:0 mode:on end:22:30, sat start:04:30 position:0 end:22:30 mode:on, thu start:04:30 end:22:30 mode:on position:0, tue start:04:30 mode:on end:22:30 position:0, fri position:0 end:22:30 mode:on start:04:30,

Zeitplan für die Zirkulationspumpe (neu seit 16.12.18?)
WW-Zirkulationspumpe_primaer off (neu seit 16.12.18?)
WW-aktiv 0,1 WW aktiv
WW-onTimeCharge_aktiv 0,1 einmaliges WW Aufladen aktiv
WW-zeitgesteuert_aktiv 0,1 WW zeitgesteuert
state ok, Login failure Status

Settings

Set Befehle

Benutzung der Set-Befehle auf eigenes Risiko!

Das Modul prüft nicht, ob ein Befehl oder die Parameter für die Heizung sinnvoll und möglich sind. Die API scheint dies mit einem Fehler quittieren.

Befehle für HK1 sind auch für HK2 und HK3 verfügbar.

Name Datentyp/
Wertebereich
Beschreibung
update löst ein Update der Reading zwischen manuell aus
clearReadings clear all readings immeadiatlely
password <passwd> String store password in key store
logResponseOnce dumps the json response of Viessmann server to entities.json, gw.json, actions.json in FHEM log directory
HK1-Heizkurve-Niveau <shift> -13 bis 40 set shift of heating curve
HK1-Heizkurve-Steigung <slope> 0.2 bis 3.5 set slope of heating curve
HK1-Betriebsart <mode> standby,dhw,dhwAndHeating,forcedReduced or forcedNormal set HK1-Betriebsart
HK1-Solltemperatur_comfort_aktiv <activate,deactivate> activate/deactivate comfort temperature
HK1-Solltemperatur_comfort <targetTemperature> set comfort target temperatur
HK1-Solltemperatur_eco_aktiv activate,deactivate activate/deactivate eco temperature
HK1-Urlaub_Start <start> 2019-02-02 (früher war das Format mal 2019-02-02T23:59:59.000Z) set holiday start time
HK1-Urlaub_Ende <end> 2019-02-16 (früher war das Format mal 2019-02-16T00:00:00.000Z) set holiday end time (geht nur, wenn schon eine Startzeit gesetzt ist)
HK1-Urlaub_unschedule remove holiday start and end time
HK1-Solltemperatur_normal <targetTemperature> 3 and 37 sets the normale target temperature
HK1-Solltemperatur_reduziert <targetTemperature> 3 and 37 sets the reduced target temperature
WW-einmaliges_Aufladen activate,deactivate activate or deactivate one time charge for hot water
WW-Zirkulationspumpe_Zeitplan <schedule> not implemented
WW-Zeitplan <schedule> not implemented
WW-Haupttemperatur <targetTemperature> 10 and 60 sets hot water main temperature to targetTemperature
WW-Solltemperatur <targetTemperature> 10 and 60 sets hot water temperature to targetTemperature

Get

Derzeit gibt es keine "get"-Kommandos.

Name Beschreibung

Attribute

Attribute

Name Datentyp/
Wertebereich
Default-Wert Beschreibung
disable 0,1 disable updates
verbose 0,1,2,3,4,5 Loglevel
vitoconnect_raw_readings 0,1 lege Reading mit dem JSON Namen wie 'heating.circuits.0.heating.curve.slope' statt der Deutschen Bezeichnungen an
vitoconnect_actions_active 0,1 erzeuge Readings for Befehle wie 'heating.circuits.0.heating.curve.setCurve'

Hilfsmittel

Attribut zum Speichern der wichtigsten Werte mittels DbLog

attr vitoconnect DbLogInclude Gasverbrauch_gestern,Gasverbrauch_Heizung/Jahr,Gasverbrauch_aktuelle_Woche,Gasverbrauch_aktueller_Monat,Gasverbrauch_heute,WW-aktiv,
HK1-Frostschutz_Status,HK1-WW_und_Heizen_aktiv,HK1-WW_aktiv,HK1-Betriebsart,HK1-Programmstatus,Aussentemperatur,HK1-Solltemperatur_normal,Brenner_aktiv,
HK1-Vorlauftemperatur,Kesseltemperatur,WW-Isttemperatur,WW-Solltemperatur

Userreadings um Reading für Einzelwerte von Gasverbräuche zu erzeugen

attr vitoconnect userReadings
Gasverbrauch_heute:Gasverbrauch_Heizung/Tag.* { (split /,/, ReadingsVal("vitoconnect", "Gasverbrauch_Heizung/Tag",0))[0] },
Gasverbrauch_gestern:Gasverbrauch_Heizung/Tag.* { (split /,/, ReadingsVal("vitoconnect","Gasverbrauch_Heizung/Tag",0))[1] },
Gasverbrauch_aktuelle_Woche:Gasverbrauch_Heizung/Woche.* { (split /,/, ReadingsVal("vitoconnect","Gasverbrauch_Heizung/Woche",0))[0] },
Gasverbrauch_letzte_Woche:Gasverbrauch_Heizung/Woche.* { (split /,/, ReadingsVal("vitoconnect","Gasverbrauch_Heizung/Woche",0))[1] },
Gasverbrauch_aktueller_Monat:Gasverbrauch_Heizung/Monat.* { (split /,/, ReadingsVal("vitoconnect","Gasverbrauch_Heizung/Monat",0))[0] },
Gasverbrauch_letzter_Monat:Gasverbrauch_Heizung/Monat.* { (split /,/, ReadingsVal("vitoconnect","Gasverbrauch_Heizung/Monat",0))[1] },
Gasverbrauch_aktuelles_Jahr:Gasverbrauch_Heizung/Jahr.* { (split /,/, ReadingsVal("vitoconnect","Gasverbrauch_Heizung/Jahr",0))[0] },
Gasverbrauch_letztes_Jahr:Gasverbrauch_Heizung/Jahr.* { (split /,/, ReadingsVal("vitoconnect","Gasverbrauch_Heizung/Jahr",0))[1] },

Gasverbrauch_WW_heute:Gasverbrauch_WW/Tag.* { (split /,/, ReadingsVal("vitoconnect", "Gasverbrauch_WW/Tag",0))[0] },
Gasverbrauch_WW_gestern:Gasverbrauch_WW/Tag.* { (split /,/, ReadingsVal("vitoconnect","Gasverbrauch_WW/Tag",0))[1] },
Gasverbrauch_WW_aktuelle_Woche:Gasverbrauch_WW/Woche.* { (split /,/, ReadingsVal("vitoconnect","Gasverbrauch_WW/Woche",0))[0] },
Gasverbrauch_WW_letzte_Woche:Gasverbrauch_WW/Woche.* { (split /,/, ReadingsVal("vitoconnect","Gasverbrauch_WW/Woche",0))[1] },
Gasverbrauch_WW_aktueller_Monat:Gasverbrauch_WW/Monat.* { (split /,/, ReadingsVal("vitoconnect","Gasverbrauch_WW/Monat",0))[0] },
Gasverbrauch_WW_letzter_Monat:Gasverbrauch_WW/Monat.* { (split /,/, ReadingsVal("vitoconnect","Gasverbrauch_WW/Monat",0))[1] },
Gasverbrauch_WW_aktuelles_Jahr:Gasverbrauch_WW/Jahr.* { (split /,/, ReadingsVal("vitoconnect","Gasverbrauch_WW/Jahr",0))[0] },
Gasverbrauch_WW_letztes_Jahr:Gasverbrauch_WW/Jahr.* { (split /,/, ReadingsVal("vitoconnect", "Gasverbrauch_WW/Jahr",0))[1] },

Stromverbrauch_heute:Stromverbrauch/Tag.* { (split /,/, ReadingsVal("vitoconnect", "Stromverbrauch/Tag",0))[0] },
Stromverbrauch_gestern:Stromverbrauch/Tag.* { (split /,/, ReadingsVal("vitoconnect", "Stromverbrauch/Tag",0))[1] },
Stromverbrauch_aktuelle_Woche:Stromverbrauch/Woche.* { (split /,/, ReadingsVal("vitoconnect", "Stromverbrauch/Woche",0))[0] },
Stromverbrauch_letzte_Woche:Stromverbrauch/Woche.* { (split /,/, ReadingsVal("vitoconnect", "Stromverbrauch/Woche",0))[1] },
Stromverbrauch_aktueller_Monat:Stromverbrauch/Monat.* { (split /,/, ReadingsVal("vitoconnect", "Stromverbrauch/Monat",0))[0] },
Stromverbrauch_letzter_Monat:Stromverbrauch/Monat.* { (split /,/, ReadingsVal("vitoconnect", "Stromverbrauch/Monat",0))[1] },
Stromverbrauch_aktuelles_Jahr:Stromverbrauch/Jahr.* { (split /,/, ReadingsVal("vitoconnect", "Stromverbrauch/Jahr",0))[0] },
Stromverbrauch_letztes_Jahr:Stromverbrauch/Jahr.* { (split /,/, ReadingsVal("vitoconnect", "Stromverbrauch/Jahr",0))[1] }

ReadingsGroup für eine kompakte Darstellung

defmod vitoconnect_rg readingsGroup
vitoconnect:Aussentemperatur
<Brenner>
vitoconnect:Brenner_Betriebsstunden
vitoconnect:Brenner_Fehlercode
vitoconnect:Brenner_Modulation
vitoconnect:Brenner_Starts
vitoconnect:Brenner_Status
vitoconnect:Brenner_aktiv
<HK1>
vitoconnect:HK1-aktiv
vitoconnect:HK1-Betriebsart

vitoconnect:HK1-Frostschutz_Status

vitoconnect:HK1-Heizkurve-Niveau
vitoconnect:HK1-Heizkurve-Steigung

vitoconnect:HK1-Programmstatus
vitoconnect:HK1-Raum_Status
vitoconnect:HK1-Reduzierte_Temperatur_erzwungen
vitoconnect:HK1-Solltemperatur_aktiv
vitoconnect:HK1-Solltemperatur_erzwungen
vitoconnect:HK1-Solltemperatur_normal
vitoconnect:HK1-Solltemperatur_reduziert
vitoconnect:HK1-Solltemperatur_reduziert_aktiv
vitoconnect:HK1-Standby_aktiv

vitoconnect:HK1-Urlaub_Ende
vitoconnect:HK1-Urlaub_Start
vitoconnect:HK1-Urlaub_aktiv

vitoconnect:HK1-Vorlauftemperatur

vitoconnect:HK1-WW_aktiv
vitoconnect:HK1-WW_und_Heizen_aktiv

vitoconnect:HK1-Zeitsteuerung_Heizung_aktiv
vitoconnect:HK1-Zeitsteuerung_Zirkulation_aktiv

vitoconnect:HK1-Zirkulationspumpe
<Kessel>
vitoconnect:Kesseltemperatur
vitoconnect:Kesseltemperatur_exact
<WW>
vitoconnect:WW-Aufladung
vitoconnect:WW-Haupttemperatur
vitoconnect:WW-Isttemperatur
vitoconnect:WW-Solltemperatur
vitoconnect:WW-Zirklationspumpe_Zeitsteuerung_aktiv
vitoconnect:WW-Zirkulationspumpe_Status
vitoconnect:WW-Zirkulationspumpe_primaer
vitoconnect:WW-aktiv
vitoconnect:WW-onTimeCharge_aktiv
vitoconnect:WW-zeitgesteuert_aktiv
attr vitoconnect_rg alias Heizung
attr vitoconnect_rg cellStyle { 
"c:0"=>'style="text-align:left"', 
"c:1"=>'style="text-align:left"', 
"r:2"=>'style="text-align:right;;;;font-weight:bold"'
}
attr vitoconnect_rg mapping {
"Aussentemperatur" => "Aussentemperatur",

"Brenner_Betriebsstunden" => "Betriebsstunden",
"Brenner_Fehlercode" => "Fehlercode",
"Brenner_Modulation" => "Modulation",
"Brenner_Starts" => "Starts",
"Brenner_Status" => "Status",
"Brenner_aktiv" => "aktiv",

"HK1-aktiv" => "aktiv",
"HK1-Betriebsart" => "Betriebsart",
"HK1-Frostschutz_Status" => "Frostschutz_Status",
"HK1-Heizkurve-Niveau" => "Heizkurve-Niveau",
"HK1-Heizkurve-Steigung" => "Heizkurve-Steigung",
"HK1-Programmstatus" => "Programmstatus",
"HK1-Raum_Status" => "Raum Status",
"HK1-Reduzierte_Temperatur_erzwungen" => "Reduzierte Temperatur erzwungen",
"HK1-Solltemperatur_aktiv" => "Solltemperatur aktiv",
"HK1-Solltemperatur_erzwungen" => "Solltemperatur erzwungen",
"HK1-Solltemperatur_normal" => "Solltemperatur normal",
"HK1-Solltemperatur_reduziert" => "Solltemperatur reduziert",
"HK1-Solltemperatur_reduziert_aktiv" => "Solltemperatur reduziert_aktiv",
"HK1-Standby_aktiv" => "Standby aktiv",
"HK1-Urlaub_Ende" => "Urlaub Ende",
"HK1-Urlaub_Start" => "Urlaub Start",
"HK1-Urlaub_aktiv" => "Urlaub aktiv",
"HK1-Vorlauftemperatur" => "Vorlauftemperatur",
"HK1-WW_aktiv" => "WW aktiv",
"HK1-WW_und_Heizen_aktiv" => "WW und Heizen aktiv",
"HK1-Zeitsteuerung_Heizung_aktiv" => "Zeitsteuerung Heizung aktiv",
"HK1-Zirkulationspumpe" => "Zirkulationspumpe",

"Kesseltemperatur" => "Kesseltemperatur",
"Kesseltemperatur_exact" => "Kesseltemperatur exact",

"WW-Aufladung" => "Aufladung",
"WW-Haupttemperatur" => "Haupttemperatur",
"WW-Isttemperatur" => "Isttemperatur",
"WW-Solltemperatur" => "Solltemperatur",
"WW-Zirklationspumpe_Zeitsteuerung_aktiv" => "Zirkulationspumpe Zeitsteuerung aktiv",
"WW-Zirkulationspumpe_Status" => "Zirkulationspumpe Status",
"WW-Zirkulationspumpe_primaer" => "Zirkulationspumpe primaer",
"WW-aktiv" => "aktiv",
"WW-onTimeCharge_aktiv" => "onTimeCharge aktiv",
"WW-zeitgesteuert_aktiv" => "zeitgesteuert aktiv"
}

attr vitoconnect_rg nostate 1
attr vitoconnect_rg notime 1
attr vitoconnect_rg room Heizung
attr vitoconnect_rg sortby 1
attr vitoconnect_rg valueFormat { "Brenner_Betriebsstunden" => "%2d" }
attr vitoconnect_rg valueIcon {'Brenner_aktiv.0' => '1px-spacer', 
'Brenner_aktiv.1' => 'icoHEIZUNG',
'HK1-Solltemperatur_reduziert_aktiv.0' => '10px-kreis-rot',
'HK1-Solltemperatur_reduziert_aktiv.1' => '10px-kreis-gruen'
}

attr vitoconnect_rg valueSuffix {
Aussentemperatur => "°C", 

Brenner_Betriebsstunden => "h",
Brenner_Modulation => "%",

'HK1-Solltemperatur_normal' => "°C",
'HK1-Solltemperatur_reduziert' => "°C",
'HK1-Vorlauftemperatur' => " °C",

Kesseltemperatur => "°C",
Kesseltemperatur_exact => "°C",

'WW-Solltemperatur' => " °C",
'WW-Isttemperatur' => " °C",

'WW-Solltemperatur' => "°C"
}


ReadingsGroup für Vitoconnect Modul 3.jpg

ReadingsGroup für eine kompakte Darstellung der Verbräuche

defmod Heizung_Verbrauch readingsGroup <>,<Periode>,<Heizung>,<Wasser>,<Strom>
vitoconnect:,<heute>,Gasverbrauch_heute,Gasverbrauch_WW_heute,Stromverbrauch_heute
vitoconnect:,<gestern>,Gasverbrauch_gestern,Gasverbrauch_WW_gestern,Stromverbrauch_gestern
vitoconnect:,<Woche>,Gasverbrauch_aktuelle_Woche,Gasverbrauch_WW_aktuelle_Woche,Stromverbrauch_aktuelle_Woche
vitoconnect:,<letzte>,Gasverbrauch_letzte_Woche,Gasverbrauch_WW_letzte_Woche,Stromverbrauch_letzte_Woche
vitoconnect:,<Monat>,Gasverbrauch_aktueller_Monat,Gasverbrauch_WW_aktueller_Monat,Stromverbrauch_aktueller_Monat
vitoconnect:,<letzter>,Gasverbrauch_letzter_Monat,Gasverbrauch_WW_letzter_Monat,Stromverbrauch_letzter_Monat
vitoconnect:,<Jahr>,Gasverbrauch_aktuelles_Jahr,Gasverbrauch_WW_aktuelles_Jahr,Stromverbrauch_aktuelles_Jahr
vitoconnect:,<letztes>,Gasverbrauch_letztes_Jahr,Gasverbrauch_WW_letztes_Jahr,Stromverbrauch_letztes_Jahr

attr Heizung_Verbrauch cellStyle { 
"r:1"=>'style="text-align:left;;;;font-weight:bold"',
"c:1"=>'style="text-align:right;;;;font-weight:bold"'
}
attr Heizung_Verbrauch mapping &nbsp;;
attr Heizung_Verbrauch nostate 1
attr Heizung_Verbrauch room Heizung
attr Heizung_Verbrauch style style="text-align:right;;;;font-size:18px"
attr Heizung_Verbrauch valueFormat {
Gasverbrauch_heute				=> "%.0f kWh",
Gasverbrauch_WW_heute			=> "%.0f kWh",
Stromverbrauch_heute			=> "%.0f kWh",
Gasverbrauch_gestern			=> "%.0f kWh",
Gasverbrauch_WW_gestern			=> "%.0f kWh",
Stromverbrauch_gestern			=> "%.0f kWh",
Gasverbrauch_aktuelle_Woche		=> "%.0f kWh",
Gasverbrauch_WW_aktuelle_Woche	=> "%.0f kWh",
Stromverbrauch_aktuelle_Woche	=> "%.0f kWh",
Gasverbrauch_letzte_Woche		=> "%.0f kWh",
Gasverbrauch_WW_letzte_Woche	=> "%.0f kWh",
Stromverbrauch_letzte_Woche		=> "%.0f kWh",
Gasverbrauch_aktueller_Monat	=> "%.0f kWh",
Gasverbrauch_WW_aktueller_Monat	=> "%.0f kWh",
Stromverbrauch_aktueller_Monat	=> "%.0f kWh",
Gasverbrauch_letzter_Monat		=> "%.0f kWh",
Gasverbrauch_WW_letzter_Monat	=> "%.0f kWh",
Stromverbrauch_letzter_Monat	=> "%.0f kWh",
Gasverbrauch_aktuelles_Jahr		=> "%.0f kWh",
Gasverbrauch_WW_aktuelles_Jahr	=> "%.0f kWh",
Stromverbrauch_aktuelles_Jahr	=> "%.0f kWh",
Gasverbrauch_letztes_Jahr		=> "%.0f kWh",
Gasverbrauch_WW_letztes_Jahr	=> "%.0f kWh",
Stromverbrauch_letztes_Jahr		=> "%.0f kWh"
}

Readuingsgroup Verbräuche aus Vitoconnect 2.jpg


SVG Graphen

Gas- und Stromverbrauch

SVG Gasverbrauch für vitoconnect Modul.jpg

Verbräuche aus Vitoconnect.jpg


weitere Graphen

Beispiel für Grafiken aus vitoconnect Daten.jpg

Speichern der wichtigsten Werte mittels FileLog und Erzeugung der entspr. SVG Plots

FileLog erstellen

Zunächst wird das FileLog mit ausgewählten Parametern erstellt. Dies ist die Voraussetzung für die SVG Plots.

define FileLog_VitoConnect FileLog ./log/VitoConnect-%Y-%m.log vitoconnect:Aussentemperatur|vitoconnect:Brenner_Modulation|vitoconnect:Brenner_aktiv|vitoconnect:Gasverbrauch_Heizung/Jahr|vitoconnect:Gasverbrauch_aktuelle_Woche|vitoconnect:Gasverbrauch_aktueller_Monat|vitoconnect:Gasverbrauch_gestern|vitoconnect:Gasverbrauch_heute|vitoconnect:HK1-Betriebsart|vitoconnect:HK1-Frostschutz_Status|vitoconnect:HK1-Programmstatus|vitoconnect:HK1-Solltemperatur_aktiv|vitoconnect:HK1-Solltemperatur_normal|vitoconnect:HK1-Solltemperatur_reduziert|vitoconnect:HK1-Solltemperatur_reduziert_aktiv|vitoconnect:HK1-Vorlauftemperatur|vitoconnect:HK1-WW_aktiv|vitoconnect:HK1-WW_und_Heizen_aktiv|vitoconnect:HK1-Zirkulationspumpe|vitoconnect:Kessel_Common_Supply_Temperatur|vitoconnect:Kesseltemperatur_exact|vitoconnect:WW-Isttemperatur|vitoconnect:WW-Sensoren_Auslauf_Wert|vitoconnect:WW-Solltemperatur|vitoconnect:WW-Zirkulationspumpe_Status|vitoconnect:WW-zeitgesteuert_aktiv
attr FileLog_VitoConnect room Log

SVG Graphen aus FileLog erstellen

Nachdem das FileLog erstellt wurde, kann aus dem Log nun der Plot von ausgewählten Werten erstellt werden.

SVG Plot für Heizkreis1

Im folgenden Beispiel werden hier verschiedene Graphen für Heizkreis1 (HK1) genommen.

Einige der Logwerte speichern "on"- oder "off"-Werte, diese müssten beispielsweise mit der Formel

$fld[3]=~"on"?1.5:0

erst in Werte (on=1.5, off=0) gewandelt werden.



SVG Plot mit Plot Editor:
SVG FileLog VitoConnect 1 HK1 Temps.png

… mit dem entsprechenden Code:

defmod SVG_FileLog_VitoConnect_1 SVG FileLog_VitoConnect:SVG_FileLog_VitoConnect_1:CURRENT
attr SVG_FileLog_VitoConnect_1 room Heizung

setstate SVG_FileLog_VitoConnect_1 initialized

SVG_FileLog_VitoConnect_1.gplot:

# Created by FHEM/98_SVG.pm, 2019-11-04 20:35:38
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 'HK1 Temps'
set ytics 
set y2tics 
set grid
set ylabel "°C"
set y2label "boolean"
set y2range [0:4]

#FileLog_VitoConnect 4:vitoconnect.Aussentemperatur\x3a::
#FileLog_VitoConnect 4:vitoconnect.HK1-Solltemperatur_normal\x3a::
#FileLog_VitoConnect 4:vitoconnect.HK1-Solltemperatur_reduziert\x3a::
#FileLog_VitoConnect 4:vitoconnect.HK1-Solltemperatur_aktiv\x3a::
#FileLog_VitoConnect 4:vitoconnect.HK1-Solltemperatur_reduziert_aktiv\x3a::
#FileLog_VitoConnect 4:vitoconnect.HK1-Vorlauftemperatur\x3a::
#FileLog_VitoConnect 4:vitoconnect.Kesseltemperatur_exact\x3a::
#FileLog_VitoConnect 4:vitoconnect.HK1-Zirkulationspumpe\x3a::$fld[3]=~"on"?1.5:0

plot "<IN>" using 1:2 axes x1y1 title 'Außentemperatur' ls l7 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Soll normal' ls l0 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Soll reduziert' ls l1 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'normal-prg' ls l0fill lw 2 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'reduziert-prg' ls l1fill lw 2 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Vorlauf' ls l2 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Kesseltemp.' ls l5 lw 1 with lines
     "<IN>" using 1:2 axes x1y2 title 'Zirk.pumpe' ls l8fill lw 2 with lines,\
SVG Plot für Warmwasser

Im folgenden Beispiel werden hier verschiedene Graphen für Warmwasser (WW) genommen.

Einige der Logwerte speichern "on"- oder "off"-Werte, diese müssten beispielsweise mit der Formel

$fld[3]=~"on"?1.5:0

erst in Werte (on=1.5, off=0) gewandelt werden.



SVG Plot mit Plot Editor:
SVG FileLog VitoConnect 2 WW Temps.png

… mit dem entsprechenden Code:

defmod SVG_FileLog_VitoConnect_2 SVG FileLog_VitoConnect:SVG_FileLog_VitoConnect_2:CURRENT
attr SVG_FileLog_VitoConnect_2 room Heizung

setstate SVG_FileLog_VitoConnect_2 initialized

SVG_FileLog_VitoConnect_1.gplot:

# Created by FHEM/98_SVG.pm, 2019-11-04 21:08:37
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 'WW Temps'
set ytics 
set y2tics 
set grid
set ylabel "°C"
set y2label "boolean"
set y2range [0:4]

#FileLog_VitoConnect 4:vitoconnect.Brenner_aktiv\x3a::
#FileLog_VitoConnect 4:vitoconnect.WW-Solltemperatur\x3a::
#FileLog_VitoConnect 4:vitoconnect.WW-Isttemperatur\x3a::
#FileLog_VitoConnect 4:vitoconnect.WW-Sensoren_Auslauf_Wert\x3a::
#FileLog_VitoConnect 4:vitoconnect.Kesseltemperatur\x3a::
#FileLog_VitoConnect 4:vitoconnect.WW-Zirkulationspumpe_Status\x3a::$fld[3]=~"on"?1.5:0

plot "<IN>" using 1:2 axes x1y2 title 'Brenner' ls l0fill lw 2 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'WW soll' ls l1 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'WW ist' ls l2 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'WW Auslaufwert' ls l3 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y1 title 'Kesseltemp.' ls l4 lw 1 with lines,\
     "<IN>" using 1:2 axes x1y2 title 'Zirk.pumpe' ls l8fill lw 2 with lines,\


Weblinks