Neuigkeiten:

Am Sonntag den 8.12.2024 kann es ab ca. 8:00 Uhr zu kurzzeitigen Einschränkungen / Ausfällen bei den Diensten des FHEM Vereines kommen.
Die Server müssen mal gewartet und dabei neu gestartet werden ;)

Hauptmenü

Neues Modul: vitoconnect

Begonnen von andreas13, 24 November 2018, 17:42:33

Vorheriges Thema - Nächstes Thema

sepultura30

Hallo,

siehe Post 1056 da ist die Lösung für dein Problem, ich hatte das Problem auch.


Grüße

Sandro Pauka

Roger

Zitat von: 87insane am 02 Oktober 2024, 08:09:47Einige Readings haben sich geändert, was ich komisch finde.
Beispiel:
HK1_Vorlauf_Temp__C = jetzt
HK1-Vorlauftemperatur = vorher

Wie ich schrieb, habe ich Readings geändert (damit sie für mich passen).
Da meine Heizung nur HK1 hat --> habe ich mich nur mit HK1 befasst und alles andere so gelassen.

//Roger
Zotac & RPIs mit 10*FHEM
2*HM-LAN, 2*JeeLink, 2*RS485, SignalESP
HomeMatic, PCA301 Komponenten, ModBus: Stromzähler, Fronius WR, Shelly, Victron

buec65

Hallo, wenn die Readings nicht passen könnt Ihr das über UserReadings lösen.

Heizung wäre durch den eingetragenen Namen zu ersetzen

attr Heizung userReadings HK1-Vorlauftemperatur { ReadingsVal("Heizung","HK1_Vorlauf_Temp__C",0) },\
Brenner_Betriebsstunden { ReadingsVal("Heizung","Brenner_1_Betriebsstunden__h",0) }

oder man verwendet die vitoconnect_raw_readings
attr Heizung vitoconnect_raw_readings 1

und bastelt eigene Readingsbezeichnungen - https://wiki.fhem.de/wiki/UserReadings
Bezeichnung                  Wert von       Gerät        Reading
-----------------------------------------------------------------------
Kessel_Seriennummer { ReadingsVal("Heizung","device.serial.value",0) }

In meiner Installation werden die Werte nur gelesen - es kann sein das beim Setzen von Werten dann das vitoconnect_raw_reading verwendet werden muss.
Kessel_Seriennummer { ReadingsVal("Heizung","device.serial.value",0) },
Fehlermeldungen { ReadingsVal("Heizung","device.messages.errors.raw.entries",0) },
Aussentemperatur { ReadingsVal("Heizung","heating.sensors.temperature.outside.value",0) },
WE_Vorlauftemperatur { ReadingsVal("Heizung","heating.boiler.sensors.temperature.commonSupply.value",0) },
WE_Vlt_Hydr_Weiche { ReadingsVal("Heizung","heating.sensors.temperature.hydraulicSeparator.value",0) },
WE_Solltemperatur { ReadingsVal("Heizung","heating.boiler.temperature.value",0) },
BR_Status { ReadingsVal("Heizung","heating.burners.0.active",0) },
BR_Betriebsstunden { ReadingsVal("Heizung","heating.burners.0.statistics.hours",0) },
BR_Starts { ReadingsVal("Heizung","heating.burners.0.statistics.starts",0) },
BR_Modulation { ReadingsVal("Heizung","heating.burners.0.modulation.value",0) },
Heiz_Volumenstrom_l_h { ReadingsVal("Heizung","heating.sensors.volumetricFlow.allengra.value",0) },
Heizkreise_aktiv { ReadingsVal("Heizung","heating.circuits.enabled",0) },
HK1_Name { ReadingsVal("Heizung","heating.circuits.0.name",0) },
HK1_Neigung { ReadingsVal("Heizung","heating.circuits.0.heating.curve.slope",0) },
HK1_Niveau { ReadingsVal("Heizung","heating.circuits.0.heating.curve.shift",0) },
HK1_Betriebsart { ReadingsVal("Heizung","heating.circuits.0.operating.modes.active.value",0) },
HK1_aktiv { ReadingsVal("Heizung","heating.circuits.0.operating.modes.heating.active",0) },
HK1_standby { ReadingsVal("Heizung","heating.circuits.0.operating.modes.standby.active",0) },
HK1_Programmstatus { ReadingsVal("Heizung","heating.circuits.0.operating.programs.active.value",0) },
HK1_ECO_aktiv { ReadingsVal("Heizung","heating.circuits.0.operating.programs.eco.active",0) },
HK1_Programm_normal_aktiv { ReadingsVal("Heizung","heating.circuits.0.operating.programs.normal.active",0) },
HK1_Normal_Temperatur { ReadingsVal("Heizung","heating.circuits.0.operating.programs.normal.temperature",0) },
HK1_Programm_reduziert_aktiv { ReadingsVal("Heizung","heating.circuits.0.operating.programs.reduced.active",0) },
HK1_Reduziert_Temperatur { ReadingsVal("Heizung","heating.circuits.0.operating.programs.reduced.temperature",0) },
HK1_Programm_SommerEco_aktiv { ReadingsVal("Heizung","heating.circuits.0.operating.programs.summerEco.active",0) },
HK1_Programm_Standby_aktiv { ReadingsVal("Heizung","heating.circuits.0.operating.programs.standby.active",0) },
HK1_Vorlauftemperatur { ReadingsVal("Heizung","heating.circuits.0.sensors.temperature.supply.value",0) },
HK2_Name { ReadingsVal("Heizung","heating.circuits.1.name",0) },
HK2_Neigung { ReadingsVal("Heizung","heating.circuits.1.heating.curve.slope",0) },
HK2_Niveau { ReadingsVal("Heizung","heating.circuits.1.heating.curve.shift",0) },HK2_Betriebsart { ReadingsVal("Heizung","heating.circuits.1.operating.modes.active.value",0) },
HK2_aktiv { ReadingsVal("Heizung","heating.circuits.1.operating.modes.heating.active",0) },
HK2_standby { ReadingsVal("Heizung","heating.circuits.1.operating.modes.standby.active",0) },
HK2_Programmstatus { ReadingsVal("Heizung","heating.circuits.1.operating.programs.active.value",0) },
HK2_ECO_aktiv { ReadingsVal("Heizung","heating.circuits.1.operating.programs.eco.active",0) },
HK2_Programm_normal_aktiv { ReadingsVal("Heizung","heating.circuits.1.operating.programs.normal.active",0) },
HK2_Normal_Temperatur { ReadingsVal("Heizung","heating.circuits.1.operating.programs.normal.temperature",0) },
HK2_Programm_reduziert_aktiv { ReadingsVal("Heizung","heating.circuits.1.operating.programs.reduced.active",0) },
HK2_Reduziert_Temperatur { ReadingsVal("Heizung","heating.circuits.1.operating.programs.reduced.temperature",0) },
HK2_Programm_SommerEco_aktiv { ReadingsVal("Heizung","heating.circuits.1.operating.programs.summerEco.active",0) },
HK2_Programm_Standby_aktiv { ReadingsVal("Heizung","heating.circuits.1.operating.programs.standby.active",0) },
HK2_Vorlauftemperatur { ReadingsVal("Heizung","heating.circuits.1.sensors.temperature.supply.value",0) },
WW_aktiv { ReadingsVal("Heizung","heating.dhw.active",0) },
WW_Legionellenschutz { ReadingsVal("Heizung","heating.dhw.hygiene.enabled",0) },
WW_einmaliges_Aufladen { ReadingsVal("Heizung","heating.dhw.oneTimeCharge.active",0) },
WW_Betriebsart { ReadingsVal("Heizung","heating.dhw.operating.modes.active.value",0) },
WW_Modus_ausgewogen { ReadingsVal("Heizung","heating.dhw.operating.modes.balanced.active",0) },
WW_Modus_aus { ReadingsVal("Heizung","heating.dhw.operating.modes.off.active",0) },
WW_Zirkulation_Zeitprogramm { ReadingsVal("Heizung","heating.dhw.pumps.circulation.schedule.active",0) },
WW_Zirkulationspumpe_Status { ReadingsVal("Heizung","heating.dhw.pumps.circulation.status",0) },
WW_Zeitprogramm { ReadingsVal("Heizung","heating.dhw.schedule.active",0) },
WW_Solltemperatur { ReadingsVal("Heizung","heating.dhw.temperature.main.value",0) },
WW_Speichertemperatur { ReadingsVal("Heizung","heating.dhw.sensors.temperature.dhwCylinder.value",0) },
xGasverbrauch___heute { (split /,/, ReadingsVal("Heizung", "heating.gas.consumption.total.day",0))[0] },
xGasverbrauch__gestern { (split /,/, ReadingsVal("Heizung", "heating.gas.consumption.total.day",0))[1] },
xGasverbrauch_vorgestern { (split /,/, ReadingsVal("Heizung", "heating.gas.consumption.total.day",0))[2] },
xGasverbr__WW___heute { (split /,/, ReadingsVal("Heizung", "heating.gas.consumption.dhw.day",0))[0] },
xGasverbr__WW__gestern { (split /,/, ReadingsVal("Heizung", "heating.gas.consumption.dhw.day",0))[1] },
xGasverbr__WW_vorgestern { (split /,/, ReadingsVal("Heizung", "heating.gas.consumption.dhw.day",0))[2] },
xGasverbr__HZ___heute { (split /,/, ReadingsVal("Heizung", "heating.gas.consumption.heating.day",0))[0] },
xGasverbr__HZ__gestern { (split /,/, ReadingsVal("Heizung", "heating.gas.consumption.heating.day",0))[1] },
xGasverbr__HZ_vorgestern { (split /,/, ReadingsVal("Heizung", "heating.gas.consumption.heating.day",0))[2] },
xGasverbrauch_akt__Woche { (split /,/, ReadingsVal("Heizung", "heating.gas.consumption.total.week",0))[0] },
xGasverbrauch_vor__Woche { (split /,/, ReadingsVal("Heizung", "heating.gas.consumption.total.week",0))[1] },
xGasverbrauch_vorl_Woche { (split /,/, ReadingsVal("Heizung", "heating.gas.consumption.total.week",0))[2] },
xGasverbr__WW_akt__Woche { (split /,/, ReadingsVal("Heizung", "heating.gas.consumption.dhw.week",0))[0] },
xGasverbr__WW_vor__Woche { (split /,/, ReadingsVal("Heizung", "heating.gas.consumption.dhw.week",0))[1] },
xGasverbr__WW_vorl_Woche { (split /,/, ReadingsVal("Heizung", "heating.gas.consumption.dhw.week",0))[2] },
xGasverbr__HZ_akt__Woche { (split /,/, ReadingsVal("Heizung", "heating.gas.consumption.heating.week",0))[0] },
xGasverbr__HZ_vor__Woche { (split /,/, ReadingsVal("Heizung", "heating.gas.consumption.heating.week",0))[1] },
xGasverbr__HZ_vorl_Woche { (split /,/, ReadingsVal("Heizung", "heating.gas.consumption.heating.week",0))[2] }


stefanru

#1083
Hi,

ich hoffe jemand kann mir hier helfen.
Ich habe eine Hybridanlage bekommen, bestehend aus
Vitocal 250 AH (Wärmepumpe) und
Vitoladens 300 C

Die Vitocall hat ein WLAN Modul womit sie angebunden ist.
Die Vitoladens hängt an einem Vitoconnect.

Nun sehe ich aber nur Daten von der Vitoladens und nicht von der Vitocal.
Während der Installation war am Anfang nur die Vitocal angeschlossen und da kamen die Daten in der API, aber seit die Vitoladens angeschlossen ist sehe ich nur noch diese Daten.

ViGuide und ViCare zeigen mir all Daten an.
Dort sind es 2 Geräte unter einer Installation.

Die XMLs kann ich gern bereitstellen wenn es hilft.

Ich wäre wirklich sehr dankbar über Hilfe.

Danke,
Stefan

P.S:
Ich habe jetzt gesehen dass im Coding immer nur der erste Gateway angesprochen wird.
$hash->{".gw"} = $items->{data}[0]->{serial};
Stimmt das so von meinem Verständniss?

Trage ich die serial des Gateways des Vitocal hart ins coding ein bekomme ich auch dessen Werte.
Das ist natürlich nicht so toll.

Ich würde mal schauen ob ich ein Loppen über Gateways implementieren kann.
Das erfordert dann aber auch eine etwas weitere Änderung da bei mir beide Wäremerzeuger ein heating.circuits.0 haben.
Der vom Vitoladens ist die externe Beheizung der WP.

Dann müsste man die Readings nach Gateway bzw. Produkt ablegen.

Mir ist auch noch aufgefallen dass bei der Wärmepumpe die WW Solltemperatur und ein paar andere Werte nicht korrekt gemappt werden.

Habe im Json gesehen dass auch die möglichen Setter zurück kommen.
Da könnte man doch eventuell aus dem Json die Setter aufbauen, dann müsste man sie nicht manuell im Coding pflegen.

Ich werde mir mal etwas überlegen, das wird aber einiges an Arbeit und etwas dauern.

Wäre aber sehr nett wenn jemand der das Modul kennt meine Annahmen bestätigen könnte.
Auch bin ich natürlich froh falls jemand eine Anregung zum Ablegen der Daten von mehreren Gateways hat.

Danke!

stefanru

#1084
Hi,
wie angekündigt habe ich mir das Modul mal vorgenommen.

WOW, da gab es einiges zu tun.

Ich habe mir Gedanken zum Mapping der RAW Readings gemacht und habe 2 Arten implementiert.
vitoconnect_mappings und vitoconnect_translations.
vitoconnect_mappings funktioniert wie das alte Mapping mit voll qualifiziertem mapping Key = Value.
vitoconnect_translations macht ein Mapping der Worte. Der RAW Key wird also zerteilt und jedes Wort übersetzt. Vorgegeben wird hier auch Key = Value. Beispiele hänge ich an.

Beides hat mir am Schluss aber nicht gefallen und ich arbeite nun mit RAW Readings: vitoconnect_raw_readings = 1.
Man kann diese ja mit stateFormat oder UserReading lesbar anzeigen. Auch hier hänge ich meine Beispiele an.

Die Setter kann ich zu RAW Readings dynamisch erstellen.
Leide ist die API von Viessmann nicht gerade durchdacht und das Mapping funktioniert nicht komplett dynamisch, einige Anteile muss man hardcode. Viessmann scheint hier im JSON eine Reihenfolge zu haben, die es aber eigentlich nicht gibt bei HASH Strukturen.
Die Namen sind nicht gleich zwischen Rückgabe Werten und Settern bzw. sind diese in getrennten JSON Strukturen.
Trotzdem habe ich eine ziemlich dynamische Lösung hinbekommen.

Ich habe mir noch nicht die Mühe gemacht bei dem dynamischen Settern auch die neuen Mappings zu implementieren.
Sollte das wirklich jemand brauchen wäre es aber wahrscheinlich einfach umzusetzen.

Die Änderungen sind abwärtskompatibel.
Das Verhalten des Moduls ändert sich nur bei Verwendung der neuen Features.

Gerne testen und bei Problemen hier bescheid geben.

Falls keine Beschwerden kommen würde ich schauen ob der Maintainer noch erreichbar ist, falls nicht mehr würde ich schauen wie wir es ins FHEM Repo bekommen.
Im Anhang hängt das neue Modul. Du darfst diesen Dateianhang nicht ansehen.

Hier mein stateFormat:
{
"Heizmodus: ".ReadingsVal("$name","heating.circuits.0.operating.programs.active.value", undef)." <br/> ".
"Heiz Puffer Temp: ".ReadingsVal("$name","heating.buffer.sensors.temperature.main.value", undef)." C°<br/>".
"Zirkulationspumpe: ".ReadingsVal("$name","heating.circuits.0.circulation.pump.status", undef)." <br/>".
"Heizkurve Niveau: ".ReadingsVal("$name","heating.circuits.0.heating.curve.shift", undef)." / ".
"Heizkurve Steigung: ".ReadingsVal("$name","heating.circuits.0.heating.curve.slope", undef)." <br/><br/>".
"Wasser Modus: ".ReadingsVal("$name","heating.dhw.operating.modes.active.value", undef)." <br/>".
"Wasser Puffer Temp: ".ReadingsVal("$name","heating.dhw.sensors.temperature.hotWaterStorage.value", undef)." C°<br/>".
"Wasser Soll Temp: ".ReadingsVal("$name","heating.dhw.temperature.main.value", undef)." C° / ".
"Wasser Hysteresis: ".ReadingsVal("$name","heating.dhw.temperature.hysteresis.switchOnValue", undef)." C°<br/><br/>".
"Kompressor aktiv: ".ReadingsVal("$name","heating.compressors.0.active", undef)." <br/>".
"Kompressor Vorlauf: ".ReadingsVal("$name","heating.boiler.sensors.temperature.commonSupply.value", undef)." C°/ ".
"Kompressor Rücklauf: ".ReadingsVal("$name","heating.sensors.temperature.return.value", undef)." C°<br/>".
"Kompressor Volumenstrom: ".ReadingsVal("$name","heating.sensors.volumetricFlow.allengra.value", undef)." <br/>".
"Kompressor hours: ".ReadingsVal("$name","heating.compressors.0.statistics.hours", undef)." / ".
"Kompressor starts: ".ReadingsVal("$name","heating.compressors.0.statistics.starts", undef)." <br/><br/>".
"Status:".ReadingsVal("$name","state", undef)." <br/>".
"Aktion Status:".ReadingsVal("$name","Aktion_Status", "keine Aktion")." <br/>"
}

Hier der Changelog Eintrag aus dem Modul:
#    2024-11-16    Änderungen für Hybrid Anlagen mit 2 Gateways und eigenem Mapping der Werte.
#                Mehrere Gateways werden abgefragt.
#                Die Readings oder gedumpen Files haben als Suffix die Gateway Serial.
#                Es kann über das neue Attribut vitoconnect_serial eine Gateway Serial festgelegt werden die fortan allein abgerufen werden soll.
#                Somit ist es möglich für jeden Gateway ein vitoconnect Device anzulegen oder alle Readings in einem Device zu verwalten.
#                Dadurch kann man z.B. ein Device Wärmepumpe und eines Brenner haben.
#                Diese können dann unterschiedliche Abfrageintervalle haben.
#                Z.b. WP die normalerweise arbeitet und alles Steuert alle 100 Sek und den Brenner nur all 300 Sek.
#                Ein eignes Mapping der Werte kann im Attribut mapping erstellt werden.
#                Das Format ist { 'Key1' => 'Value1', 'Key2' => 'Value2' }
#                Wenn angegeben ersetzt dieses Mapping das statische Standard mapping.
#                Eine eigene translation kann angegeben werden um jedes einzelne Wort zu übersetzen.
#                Das Format ist { 'Key1' => 'Value1', 'Key2' => 'Value2' }
#                Translation hat vorrang for mapping hat vorrang vor statischem mapping im modul
#                Code fixes in Bezug auf subs und Komentare
#                Error Handling überarbeitet
#                Initialisierung von installationFeatures aufgetrennt, alle subs sind nun nonBlocking
#                Attribut model entfernt, wird nicht verwendet
#                vitoconnect_gw_readings implementiert, wenn 1 werden die internen readings in readings gespeichert wenn 0 nicht
#                vitoconnect_actions_active implementiert, Setter im JSON werden als reading.setURI gespeichert
#                Set für RAW readings implementiert, so dynamisch wie möglich, VIESSMANN API ist nicht eindeutig und Reihenfolge im JSON ist wichtig, das ist großer murks
#                Beschreibungen für Attribute im WEBUI nun auch anzeigen und angepasst
#                Achtung! Keine Umlaute in Heizkreisnamen verwenden!


Hier ein Beispiel für vitoconnect_mappings:
{  'device.serial.value' => 'device_serial',
   'heating.boiler.sensors.temperature.main.status' => 'status',
   'heating.boiler.sensors.temperature.main.value' => 'haupt_temperatur',
  #'heating.boiler.serial.value' => 'brenner_serial',
   'heating.boiler.temperature.value' => 'ziel_temperatur',
  
   'heating.burners.0.active' => 'brenner_aktiv',
   'heating.burners.0.modulation.value' => 'brenner_modulierung',
   'heating.burners.0.statistics.hours' => 'brenner_stunden',
   'heating.burners.0.statistics.starts' => 'brenner_starts',
   'heating.burners.enabled' => 'brenner_berechtigt',
  
   'heating.circuits.0.active' => 'HK1_aktiv',
   'heating.circuits.0.circulation.pump.status' => 'HK1_pumpe_status',
   'heating.circuits.0.frostprotection.status' => 'HK1_frostschutz_status',
   'heating.circuits.0.heating.curve.shift' => 'HK1_niveau',
   'heating.circuits.0.heating.curve.slope' => 'HK1_neigung',
   'heating.circuits.0.heating.schedule.active' => 'HK1_zeitplan_aktiv',
   'heating.circuits.0.heating.schedule.entries' => 'HK1_zeitplan',
   'heating.circuits.0.name.name' => 'HK1_name',
   'heating.circuits.0.operating.modes.active.value' => 'HK1_betriebsart',
   'heating.circuits.0.operating.modes.forcedNormal.active' => 'HK1_normalbetrieb_aktiv',
   'heating.circuits.0.operating.modes.forcedReduced.active' => 'HK1_reduzierterbetrieb_aktiv',
   'heating.circuits.0.operating.modes.heating.active' => 'HK1_nur_heizen_aktiv',
   'heating.circuits.0.operating.modes.standby.active' => 'HK1_standby_aktiv',
   'heating.circuits.0.operating.programs.active.value' => 'HK1_aktives_programm',
   'heating.circuits.0.operating.programs.comfort.active' => 'HK1_komfort_aktiv',
   'heating.circuits.0.operating.programs.comfort.demand' => 'HK1_komfort_anfrage',
   'heating.circuits.0.operating.programs.comfort.temperature' => 'HK1_komfort_temperatur',
   'heating.circuits.0.operating.programs.eco.active' => 'HK1_eco_aktiv',
   'heating.circuits.0.operating.programs.eco.temperature' => 'HK1_eco_temperatur',
   'heating.circuits.0.operating.programs.external.active' => 'HK1_extern_aktiv',
   'heating.circuits.0.operating.programs.external.temperature' => 'HK1_extern_temperatur',
   'heating.circuits.0.operating.programs.normal.active' => 'HK1_normal_aktiv',
   'heating.circuits.0.operating.programs.normal.demand' => 'HK1_normal_anfrage',
   'heating.circuits.0.operating.programs.normal.temperature' => 'HK1_normal_temperatur',
   'heating.circuits.0.operating.programs.reduced.active' => 'HK1_reduziert_aktiv',
   'heating.circuits.0.operating.programs.reduced.demand' => 'HK1_reduziert_anfrage',
   'heating.circuits.0.operating.programs.reduced.temperature' => 'HK1_reduziert_temperatur',
   'heating.circuits.0.operating.programs.standby.active' => 'HK1_standby_aktiv',
   'heating.circuits.0.sensors.temperature.supply.status' => 'HK1_vorlauf_status',
   'heating.circuits.0.sensors.temperature.supply.value' => 'HK1_vorlauf_temperatur',
   'heating.circuits.0.type' => 'HK1_heizkreis_typ',
   'heating.circuits.enabled' => 'heizkreise_aktiv',
   'heating.controller.serial.value' => 'heizcontroler_serial',
   'heating.operating.programs.holiday.active' => 'ferienprogramm_aktiv',
   'heating.operating.programs.holiday.end' => 'ferienprogramm_ende',
   'heating.operating.programs.holiday.start' => 'ferienprogramm_start',
   'heating.sensors.temperature.outside.status' => 'aussentemperturfühler_status',
   'heating.sensors.temperature.outside.value' => 'aussentemperatur'
}

Hier eins für vitoconnect_transaltions:
(
    'device' => 'gerät',
    'messages' => 'nachrichten',
    'errors' => 'fehler',
    'raw' => 'roh',
    'entries' => 'einträge',
    'productIdentification' => 'produktIdentifikation',
    'product' => 'produkt',
    'serial' => 'seriennummer',
    'value' => 'wert',
    'heating' => 'heizung',
    'boiler' => 'kessel',
    'sensors' => 'sensoren',
    'temperature' => 'temperatur',
    'commonSupply' => 'gemeinsamerVorlauf',
    'status' => 'status',
    'buffer' => 'puffer',
    'bufferCylinder' => 'pufferspeicher',
    'circuits' => 'kreise',
    'name' => 'name',
    'operating' => 'betriebs',
    'programs' => 'programme',
    'comfortCoolingEnergySaving' => 'komfortKühlEnergieSparen',
    'demand' => 'bedarf',
    'reason' => 'grund',
    'comfortEnergySaving' => 'komfortEnergieSparen',
    'comfortHeating' => 'komfortHeizung',
    'temperature' => 'temperatur',
    'fixed' => 'fest',
    'forcedLastFromSchedule' => 'erzwungenLetzterAusZeitplan',
    'frostprotection' => 'frostschutz',
    'normalCoolingEnergySaving' => 'normalKühlEnergieSparen',
    'normalEnergySaving' => 'normalEnergieSparen',
    'normalHeating' => 'normalHeizung',
    'reducedCoolingEnergySaving' => 'reduziertKühlenEnergieSparen',
    'reducedEnergySaving' => 'reduziertEnergieSparen',
    'reducedHeating' => 'reduziertHeizung',
    'summerEco' => 'sommerEco',
    'levels' => 'stufen',
    'max' => 'max',
    'min' => 'min',
    'zone' => 'zone',
    'mode' => 'modus',
    'compressors' => 'kompressoren',
    'phase' => 'phase',
    'statistics' => 'statistiken',
    'hours' => 'stunden',
    'starts' => 'starts',
    'enabled' => 'aktiviert',
    'variant' => 'variante',
    'dhw' => 'warmwasser',
    'hygiene' => 'hygiene',
    'oneTimeCharge' => 'einmaligeLadung',
    'modes' => 'modi',
    'comfort' => 'komfort',
    'eco' => 'eco',
    'efficient' => 'effizient',
    'efficientWithMinComfort' => 'effizientMitMinKomfort',
    'off' => 'aus',
    'schedule' => 'zeitplan',
    'entries' => 'einträge',
    'hotWaterStorage' => 'warmwasserspeicher',
    'hysteresis' => 'hysterese',
    'switchOffValue' => 'ausschaltwert',
    'switchOnValue' => 'einschaltwert',
    'default' => 'standard',
    'main' => 'haupt',
    'holidayAtHome' => 'urlaubZuhause',
    'end' => 'ende',
    'start' => 'start',
    'power' => 'leistung',
    'consumption' => 'verbrauch',
    'day' => 'tag',
    'dayValueReadAt' => 'tagWertGelesenAm',
    'month' => 'monat',
    'monthValueReadAt' => 'monatWertGelesenAm',
    'week' => 'woche',
    'weekValueReadAt' => 'wocheWertGelesenAm',
    'year' => 'jahr',
    'yearValueReadAt' => 'jahrWertGelesenAm',
    'summary' => 'zusammenfassung',
    'currentDay' => 'aktuellerTag',
    'currentMonth' => 'aktuellerMonat',
    'currentYear' => 'aktuellesJahr',
    'lastMonth' => 'letzterMonat',
    'lastSevenDays' => 'letzteSiebenTage',
    'lastYear' => 'letztesJahr',
    'total' => 'gesamt',
    'primaryCircuit' => 'primärkreis',
    'secondaryCircuit' => 'sekundärkreis',
    'return' => 'rücklauf',
    'volumetricFlow' => 'volumenstrom',
    'allengra' => 'allengra',
    'burners' => 'brenner',
    'modulation' => 'modulation',
    'circulation' => 'zirkulation',
    'pump' => 'pumpe',
    'curve' => 'kurve',
    'shift' => 'verschiebung',
    'slope' => 'neigung',
    'geofencing' => 'geofencing',
    'forcedNormal' => 'erzwungenNormal',
    'forcedReduced' => 'erzwungenReduziert',
    'standby' => 'standby',
    'external' => 'extern',
    'fixed' => 'fest',
    'holiday' => 'urlaub',
    'room' => 'raum',
    'supply' => 'zufuhr',
    'controller' => 'steuerung',
    'outside' => 'außen',
    'unit' => 'einheit',
    'time' => 'zeit',
    'offset' => 'offset',
    'automatic' => 'automatisch',
    'errorCode' => 'fehlercode',
    'current' => 'aktuell',
    'power' => 'leistung',
    'production' => 'produktion',
    'demandCoverage' => 'bedarfsdeckung',
    'productionCoverage' => 'produktionsdeckung',
    'purchase' => 'kauf',
    'sold' => 'verkauft',
    'pressure' => 'druck',
    'output' => 'ausgang',
    'statusWired' => 'statusVerkabelt',
    'statusWireless' => 'statusDrahtlos',
    'service' => 'wartung',
    'timeBased' => 'zeitbasiert',
    'serviceDue' => 'wartungFällig',
    'serviceIntervalMonths' => 'wartungsintervallMonate',
    'activeMonthSinceLastService' => 'aktiveMonateSeitLetzterWartung',
    'lastService' => 'letzteWartung',
    'burnerBased' => 'brennerbasiert',
    'serviceIntervalBurnerHours' => 'wartungsintervallBrennerstunden',
    'activeBurnerHoursSinceLastService' => 'aktiveBrennerstundenSeitLetzterWartung',
    'solar' => 'solar',
    'pumps' => 'pumpen',
    'circuit' => 'kreis',
    'rechargeSuppression' => 'aufladungsunterdrückung',
    'collector' => 'kollektor',
    'availabilityRate' => 'verfügbarkeitsrate',
    'insertions' => 'einsätze',
    'operationHours' => 'betriebsstunden',
    'productionHours' => 'produktionsstunden',
    'productionStarts' => 'produktionsstarts',
    'fuelCell' => 'brennstoffzelle',
    'ecological' => 'ökologisch',
    'economical' => 'wirtschaftlich',
    'heatControlled' => 'wärmegesteuert',
    'maintenance' => 'wartung',
    'phase' => 'phase',
    'gas' => 'gas',
    'consumption' => 'verbrauch',
    'fuelCell' => 'brennstoffzelle',
    'heat' => 'wärme',
    'unit' => 'einheit'
)

Viele Grüße,
Stefan

sepultura30

Hallo Stefan,

super Arbeit hast du gemacht, aber warum hasst du nicht die alten Reading Namen behalten ?

Alt: "heating.sensors.temperature.outside.value" => "Aussentemperatur",
Neu: "heating.sensors.temperature.outside.value" => "Temp_aussen__C",

klaro kann ich das mit dem Mapping ändern, dafü muss ich aber die Bezeichnung vom alten Namen wissen.
Wie gesagt, ich spreche da nur für mich, ich habe das Modul von Anfang an im Einsatz und habe keine Lust
mir ein neues Mapping anzulegen.

Dann passt set HK1_Betriebsart nicht, da müssen diese Sachen mit rein -> "HK1-Betriebsart:active,standby,heating,dhw,dhwAndHeating,forcedReduced,forcedNormal "

mehr ist mir nicht aufgefallen, sonsten super Arbeit.

Grüße

Sandro

stefanru

#1086
Hi sepultura30,

vielen Dank!

Das alte Mapping habe ich nicht angefasst.
Ich habe aber auf die Version von Roger aufgesetzt.
Ich denke diese vom 8. November (https://forum.fhem.de/index.php?msg=1292441).
Vielleicht hatte er schon Anpassungen gemacht.

Wie gesagt ich verwende das alte Mapping nicht und arbeite nur mit Raw Readings.
Dann funktionieren auch alle Setter.

Es ist Top Feedback zu erhalten und ich baue gerne noch Dinge um so dass es auch für die Leute mit altem Mapping besser passt.
Eventuell auch eine Möglichkeit Raw + alte Mapping zur selben Zeit.
Dann hättet ihr die Vorteile der neuen Setter auch.

Wenn du mir genau sagen kannst was du brauchst baue ich das gerne noch ein.
Geht es bei dir nur um dieses Reading?
Alt: "heating.sensors.temperature.outside.value" => "Aussentemperatur",
Neu: "heating.sensors.temperature.outside.value" => "Temp_aussen__C",
Dann könnte ich, da es jetzt wohl beide Versionen gibt, auch einfach beides füllen damit es abwärts kompatibel bleibt.

Des weiteren habe ich vor mich nochmal an die Energy Readings zu machen.
Auch wenn sie nur sehr unregelmäßig kommen könnte ich sie eventuell in Readings schreiben die man verwenden kann.

Gruß,
Stefan

sepultura30

#1087
         Das alte Mapping habe ich nicht angefasst.
         Ich habe aber auf die Version von Roger aufgesetzt.
         Ich denke diese vom 8. November (https://forum.fhem.de/index.php?msg=1292441).
         Vielleicht hatte er schon Anpassungen gemacht.


OK, ich benutze diese Version -> https://svn.fhem.de/trac/browser/trunk/fhem/FHEM/98_vitoconnect.pm




        Wenn du mir genau sagen kannst was du brauchst baue ich das gerne noch ein.
         Geht es bei dir nur um dieses Reading?
         Alt: "heating.sensors.temperature.outside.value" => "Aussentemperatur",
         Neu: "heating.sensors.temperature.outside.value" => "Temp_aussen__C",
         Dann könnte ich, da es jetzt wohl beide Versionen gibt, auch einfach beides füllen damit es abwärts kompatibel bleibt.


Ne, alles gut, wenn dein Modul ins SVN kommt, werde ich alles umbauen.

Grüße

Sandro


stefanru

Hi Sandro,

ah ok, danke.

Ich hatte mir die offizielle Version gar nicht angeschaut, da ich dachte diese könnte mit der V2 API gar nicht umgehen.
Das stimmt nicht ganz, das ist nur für Setter usw wahr.
Ich könnte auch das mapping der offiziellen Version fortführen.

Da wäre jetzt die Frage was die Mehrheit benutzt. Die offizielle oder die letzte von Roger.

Was du aber mal machen kannst wäre mal das Mapping der alten bei mir in das attribut vitoconnect_mapping einzutragen, dann sollten die Readings stimmen.
Wenn du dies eingibst sollte alles passen:
{
    "heating.boiler.serial.value"      => "Kessel_Seriennummer",
    "heating.boiler.temperature.value" => "Kessel_Solltemperatur",
    "heating.boiler.sensors.temperature.commonSupply.status" =>
      "Kessel_Common_Supply",
    "heating.boiler.sensors.temperature.commonSupply.unit" =>
      "Kessel_Common_Supply_Temperatur/Einheit",
    "heating.boiler.sensors.temperature.commonSupply.value" =>
      "Kessel_Common_Supply_Temperatur",
    "heating.boiler.sensors.temperature.main.status" => "Kessel_Status",
    "heating.boiler.sensors.temperature.main.unit" =>
      "Kesseltemperatur/Einheit",
    "heating.boiler.sensors.temperature.main.value" => "Kesseltemperatur",
    "heating.boiler.temperature.unit" => "Kesseltemperatur/Einheit",

    "heating.burner.active"              => "Brenner_aktiv",
    "heating.burner.automatic.status"    => "Brenner_Status",
    "heating.burner.automatic.errorCode" => "Brenner_Fehlercode",
    "heating.burner.current.power.value" => "Brenner_Leistung",
    "heating.burner.modulation.value"    => "Brenner_Modulation",
    "heating.burner.statistics.hours"    => "Brenner_Betriebsstunden",
    "heating.burner.statistics.starts"   => "Brenner_Starts",

    "heating.burners.0.active"            => "Brenner_1_aktiv",
    "heating.burners.0.modulation.unit"   => "Brenner_1_Modulation/Einheit",
    "heating.burners.0.modulation.value"  => "Brenner_1_Modulation",
    "heating.burners.0.statistics.hours"  => "Brenner_1_Betriebsstunden",
    "heating.burners.0.statistics.starts" => "Brenner_1_Starts",

    "heating.circuits.enabled"                   => "Aktive_Heizkreise",
    "heating.circuits.0.active"                  => "HK1-aktiv",
    "heating.circuits.0.type"                    => "HK1-Typ",
    "heating.circuits.0.circulation.pump.status" => "HK1-Zirkulationspumpe",
    "heating.circuits.0.circulation.schedule.active" =>
      "HK1-Zeitsteuerung_Zirkulation_aktiv",
    "heating.circuits.0.circulation.schedule.entries" =>
      "HK1-Zeitsteuerung_Zirkulation",
    "heating.circuits.0.frostprotection.status" => "HK1-Frostschutz_Status",
    "heating.circuits.0.geofencing.active"      => "HK1-Geofencing",
    "heating.circuits.0.geofencing.status"      => "HK1-Geofencing_Status",
    "heating.circuits.0.heating.curve.shift"    => "HK1-Heizkurve-Niveau",
    "heating.circuits.0.heating.curve.slope"    => "HK1-Heizkurve-Steigung",
    "heating.circuits.0.heating.schedule.active" =>
      "HK1-Zeitsteuerung_Heizung_aktiv",
    "heating.circuits.0.heating.schedule.entries" =>
      "HK1-Zeitsteuerung_Heizung",
    "heating.circuits.0.name"                         => "HK1-Name",
    "heating.circuits.0.operating.modes.active.value" => "HK1-Betriebsart",
    "heating.circuits.0.operating.modes.dhw.active"   => "HK1-WW_aktiv",
    "heating.circuits.0.operating.modes.dhwAndHeating.active" =>
      "HK1-WW_und_Heizen_aktiv",
    "heating.circuits.0.operating.modes.dhwAndHeatingCooling.active" =>
      "HK1-WW_und_Heizen_Kuehlen_aktiv",
    "heating.circuits.0.operating.modes.forcedNormal.active" =>
      "HK1-Solltemperatur_erzwungen",
    "heating.circuits.0.operating.modes.forcedReduced.active" =>
      "HK1-Reduzierte_Temperatur_erzwungen",
    "heating.circuits.0.operating.modes.heating.active" => "HK1-heizen_aktiv",
    "heating.circuits.0.operating.modes.normalStandby.active" =>
      "HK1-Normal_Standby_aktiv",
    "heating.circuits.0.operating.modes.standby.active" => "HK1-Standby_aktiv",
    "heating.circuits.0.operating.programs.active.value" =>
      "HK1-Programmstatus",
    "heating.circuits.0.operating.programs.comfort.active" =>
      "HK1-Solltemperatur_comfort_aktiv",
    "heating.circuits.0.operating.programs.comfort.demand" =>
      "HK1-Solltemperatur_comfort_Anforderung",
    "heating.circuits.0.operating.programs.comfort.temperature" =>
      "HK1-Solltemperatur_comfort",
    "heating.circuits.0.operating.programs.eco.active" =>
      "HK1-Solltemperatur_eco_aktiv",
    "heating.circuits.0.operating.programs.eco.temperature" =>
      "HK1-Solltemperatur_eco",
    "heating.circuits.0.operating.programs.external.active" =>
      "HK1-External_aktiv",
    "heating.circuits.0.operating.programs.external.temperature" =>
      "HK1-External_Temperatur",
    "heating.circuits.0.operating.programs.fixed.active" => "HK1-Fixed_aktiv",
    "heating.circuits.0.operating.programs.forcedLastFromSchedule.active" =>
      "HK1-forcedLastFromSchedule_aktiv",
    "heating.circuits.0.operating.programs.holidayAtHome.active" =>
      "HK1-HolidayAtHome_aktiv",
    "heating.circuits.0.operating.programs.holidayAtHome.end" =>
      "HK1-HolidayAtHome_Ende",
    "heating.circuits.0.operating.programs.holidayAtHome.start" =>
      "HK1-HolidayAtHome_Start",
    "heating.circuits.0.operating.programs.holiday.active" =>
      "HK1-Urlaub_aktiv",
    "heating.circuits.0.operating.programs.holiday.start" => "HK1-Urlaub_Start",
    "heating.circuits.0.operating.programs.holiday.end"   => "HK1-Urlaub_Ende",
    "heating.circuits.0.operating.programs.normal.active" =>
      "HK1-Solltemperatur_aktiv",
    "heating.circuits.0.operating.programs.normal.demand" =>
      "HK1-Solltemperatur_Anforderung",
    "heating.circuits.0.operating.programs.normal.temperature" =>
      "HK1-Solltemperatur_normal",
    "heating.circuits.0.operating.programs.reduced.active" =>
      "HK1-Solltemperatur_reduziert_aktiv",
    "heating.circuits.0.operating.programs.reduced.demand" =>
      "HK1-Solltemperatur_reduziert_Anforderung",
    "heating.circuits.0.operating.programs.reduced.temperature" =>
      "HK1-Solltemperatur_reduziert",
    "heating.circuits.0.operating.programs.summerEco.active" =>
      "HK1-Solltemperatur_SummerEco_aktiv",
    "heating.circuits.0.operating.programs.standby.active" =>
      "HK1-Standby_aktiv",
    "heating.circuits.0.zone.mode.active" => "HK1-ZoneMode_aktive",
    "heating.circuits.0.sensors.temperature.room.status" => "HK1-Raum_Status",
    "heating.circuits.0.sensors.temperature.room.value" =>
      "HK1-Raum_Temperatur",
    "heating.circuits.0.sensors.temperature.supply.status" =>
      "HK1-Vorlauftemperatur_aktiv",
    "heating.circuits.0.sensors.temperature.supply.unit" =>
      "HK1-Vorlauftemperatur/Einheit",
    "heating.circuits.0.sensors.temperature.supply.value" =>
      "HK1-Vorlauftemperatur",
    "heating.circuits.0.zone.mode.active" => "HK1-ZoneMode_aktive",

    "heating.circuits.1.active"                  => "HK2-aktiv",
    "heating.circuits.1.type"                    => "HK2-Typ",
    "heating.circuits.1.circulation.pump.status" => "HK2-Zirkulationspumpe",
    "heating.circuits.1.circulation.schedule.active" =>
      "HK2-Zeitsteuerung_Zirkulation_aktiv",
    "heating.circuits.1.circulation.schedule.entries" =>
      "HK2-Zeitsteuerung_Zirkulation",
    "heating.circuits.1.frostprotection.status" => "HK2-Frostschutz_Status",
    "heating.circuits.1.geofencing.active"      => "HK2-Geofencing",
    "heating.circuits.1.geofencing.status"      => "HK2-Geofencing_Status",
    "heating.circuits.1.heating.curve.shift"    => "HK2-Heizkurve-Niveau",
    "heating.circuits.1.heating.curve.slope"    => "HK2-Heizkurve-Steigung",
    "heating.circuits.1.heating.schedule.active" =>
      "HK2-Zeitsteuerung_Heizung_aktiv",
    "heating.circuits.1.heating.schedule.entries" =>
      "HK2-Zeitsteuerung_Heizung",
    "heating.circuits.1.name"                         => "HK2-Name",
    "heating.circuits.1.operating.modes.active.value" => "HK2-Betriebsart",
    "heating.circuits.1.operating.modes.dhw.active"   => "HK2-WW_aktiv",
    "heating.circuits.1.operating.modes.dhwAndHeating.active" =>
      "HK2-WW_und_Heizen_aktiv",
    "heating.circuits.1.operating.modes.dhwAndHeatingCooling.active" =>
      "HK2-WW_und_Heizen_Kuehlen_aktiv",
    "heating.circuits.1.operating.modes.forcedNormal.active" =>
      "HK2-Solltemperatur_erzwungen",
    "heating.circuits.1.operating.modes.forcedReduced.active" =>
      "HK2-Reduzierte_Temperatur_erzwungen",
    "heating.circuits.1.operating.modes.heating.active" => "HK2-heizen_aktiv",
    "heating.circuits.1.operating.modes.normalStandby.active" =>
      "HK2-Normal_Standby_aktiv",
    "heating.circuits.1.operating.modes.standby.active" => "HK2-Standby_aktiv",
    "heating.circuits.1.operating.programs.active.value" =>
      "HK2-Programmstatus",
    "heating.circuits.1.operating.programs.comfort.active" =>
      "HK2-Solltemperatur_comfort_aktiv",
    "heating.circuits.1.operating.programs.comfort.demand" =>
      "HK2-Solltemperatur_comfort_Anforderung",
    "heating.circuits.1.operating.programs.comfort.temperature" =>
      "HK2-Solltemperatur_comfort",
    "heating.circuits.1.operating.programs.eco.active" =>
      "HK2-Solltemperatur_eco_aktiv",
    "heating.circuits.1.operating.programs.eco.temperature" =>
      "HK2-Solltemperatur_eco",
    "heating.circuits.1.operating.programs.external.active" =>
      "HK2-External_aktiv",
    "heating.circuits.1.operating.programs.external.temperature" =>
      "HK2-External_Temperatur",
    "heating.circuits.1.operating.programs.fixed.active" => "HK2-Fixed_aktiv",
    "heating.circuits.1.operating.programs.forcedLastFromSchedule.active" =>
      "HK2-forcedLastFromSchedule_aktiv",
    "heating.circuits.1.operating.programs.holidayAtHome.active" =>
      "HK2-HolidayAtHome_aktiv",
    "heating.circuits.1.operating.programs.holidayAtHome.end" =>
      "HK2-HolidayAtHome_Ende",
    "heating.circuits.1.operating.programs.holidayAtHome.start" =>
      "HK2-HolidayAtHome_Start",
    "heating.circuits.1.operating.programs.holiday.active" =>
      "HK2-Urlaub_aktiv",
    "heating.circuits.1.operating.programs.holiday.start" => "HK2-Urlaub_Start",
    "heating.circuits.1.operating.programs.holiday.end"   => "HK2-Urlaub_Ende",
    "heating.circuits.1.operating.programs.normal.active" =>
      "HK2-Solltemperatur_aktiv",
    "heating.circuits.1.operating.programs.normal.demand" =>
      "HK2-Solltemperatur_Anforderung",
    "heating.circuits.1.operating.programs.normal.temperature" =>
      "HK2-Solltemperatur_normal",
    "heating.circuits.1.operating.programs.reduced.active" =>
      "HK2-Solltemperatur_reduziert_aktiv",
    "heating.circuits.1.operating.programs.reduced.demand" =>
      "HK2-Solltemperatur_reduziert_Anforderung",
    "heating.circuits.1.operating.programs.reduced.temperature" =>
      "HK2-Solltemperatur_reduziert",
    "heating.circuits.1.operating.programs.summerEco.active" =>
      "HK2-Solltemperatur_SummerEco_aktiv",
    "heating.circuits.1.operating.programs.standby.active" =>
      "HK2-Standby_aktiv",
    "heating.circuits.1.sensors.temperature.room.status" => "HK2-Raum_Status",
    "heating.circuits.1.sensors.temperature.room.value" =>
      "HK2-Raum_Temperatur",
    "heating.circuits.1.sensors.temperature.supply.status" =>
      "HK2-Vorlauftemperatur_aktiv",
    "heating.circuits.1.sensors.temperature.supply.unit" =>
      "HK2-Vorlauftemperatur/Einheit",
    "heating.circuits.1.sensors.temperature.supply.value" =>
      "HK2-Vorlauftemperatur",
    "heating.circuits.1.zone.mode.active" => "HK2-ZoneMode_aktive",

    "heating.circuits.2.active"                  => "HK3-aktiv",
    "heating.circuits.2.type"                    => "HK3-Typ",
    "heating.circuits.2.circulation.pump.status" => "HK3-Zirkulationspumpe",
    "heating.circuits.2.circulation.schedule.active" =>
      "HK3-Zeitsteuerung_Zirkulation_aktiv",
    "heating.circuits.2.circulation.schedule.entries" =>
      "HK3-Zeitsteuerung_Zirkulation",
    "heating.circuits.2.frostprotection.status" => "HK3-Frostschutz_Status",
    "heating.circuits.2.geofencing.active"      => "HK3-Geofencing",
    "heating.circuits.2.geofencing.status"      => "HK3-Geofencing_Status",
    "heating.circuits.2.heating.curve.shift"    => "HK3-Heizkurve-Niveau",
    "heating.circuits.2.heating.curve.slope"    => "HK3-Heizkurve-Steigung",
    "heating.circuits.2.heating.schedule.active" =>
      "HK3-Zeitsteuerung_Heizung_aktiv",
    "heating.circuits.2.heating.schedule.entries" =>
      "HK3-Zeitsteuerung_Heizung",
    "heating.circuits.2.name"                         => "HK3-Name",
    "heating.circuits.2.operating.modes.active.value" => "HK3-Betriebsart",
    "heating.circuits.2.operating.modes.dhw.active"   => "HK3-WW_aktiv",
    "heating.circuits.2.operating.modes.dhwAndHeating.active" =>
      "HK3-WW_und_Heizen_aktiv",
    "heating.circuits.2.operating.modes.dhwAndHeatingCooling.active" =>
      "HK3-WW_und_Heizen_Kuehlen_aktiv",
    "heating.circuits.2.operating.modes.forcedNormal.active" =>
      "HK3-Solltemperatur_erzwungen",
    "heating.circuits.2.operating.modes.forcedReduced.active" =>
      "HK3-Reduzierte_Temperatur_erzwungen",
    "heating.circuits.2.operating.modes.heating.active" => "HK3-heizen_aktiv",
    "heating.circuits.2.operating.modes.normalStandby.active" =>
      "HK3-Normal_Standby_aktiv",
    "heating.circuits.2.operating.modes.standby.active" => "HK3-Standby_aktiv",
    "heating.circuits.2.operating.programs.active.value" =>
      "HK3-Programmstatus",
    "heating.circuits.2.operating.programs.comfort.active" =>
      "HK3-Solltemperatur_comfort_aktiv",
    "heating.circuits.2.operating.programs.comfort.demand" =>
      "HK3-Solltemperatur_comfort_Anforderung",
    "heating.circuits.2.operating.programs.comfort.temperature" =>
      "HK3-Solltemperatur_comfort",
    "heating.circuits.2.operating.programs.eco.active" =>
      "HK3-Solltemperatur_eco_aktiv",
    "heating.circuits.2.operating.programs.eco.temperature" =>
      "HK3-Solltemperatur_eco",
    "heating.circuits.2.operating.programs.external.active" =>
      "HK3-External_aktiv",
    "heating.circuits.2.operating.programs.external.temperature" =>
      "HK3-External_Temperatur",
    "heating.circuits.2.operating.programs.fixed.active" => "HK3-Fixed_aktiv",
    "heating.circuits.2.operating.programs.forcedLastFromSchedule.active" =>
      "HK3-forcedLastFromSchedule_aktiv",
    "heating.circuits.2.operating.programs.holidayAtHome.active" =>
      "HK3-HolidayAtHome_aktiv",
    "heating.circuits.2.operating.programs.holidayAtHome.end" =>
      "HK3-HolidayAtHome_Ende",
    "heating.circuits.2.operating.programs.holidayAtHome.start" =>
      "HK3-HolidayAtHome_Start",
    "heating.circuits.2.operating.programs.holiday.active" =>
      "HK3-Urlaub_aktiv",
    "heating.circuits.2.operating.programs.holiday.start" => "HK3-Urlaub_Start",
    "heating.circuits.2.operating.programs.holiday.end"   => "HK3-Urlaub_Ende",
    "heating.circuits.2.operating.programs.normal.active" =>
      "HK3-Solltemperatur_aktiv",
    "heating.circuits.2.operating.programs.normal.demand" =>
      "HK3-Solltemperatur_Anforderung",
    "heating.circuits.2.operating.programs.normal.temperature" =>
      "HK3-Solltemperatur_normal",
    "heating.circuits.2.operating.programs.reduced.active" =>
      "HK3-Solltemperatur_reduziert_aktiv",
    "heating.circuits.2.operating.programs.reduced.demand" =>
      "HK3-Solltemperatur_reduziert_Anforderung",
    "heating.circuits.2.operating.programs.reduced.temperature" =>
      "HK3-Solltemperatur_reduziert",
    "heating.circuits.2.operating.programs.summerEco.active" =>
      "HK3-Solltemperatur_SummerEco_aktiv",
    "heating.circuits.2.operating.programs.standby.active" =>
      "HK3-Standby_aktiv",
    "heating.circuits.2.sensors.temperature.room.status" => "HK3-Raum_Status",
    "heating.circuits.2.sensors.temperature.room.value" =>
      "HK3-Raum_Temperatur",
    "heating.circuits.2.sensors.temperature.supply.status" =>
      "HK3-Vorlauftemperatur_aktiv",
    "heating.circuits.2.sensors.temperature.supply.unit" =>
      "HK3-Vorlauftemperatur/Einheit",
    "heating.circuits.2.sensors.temperature.supply.value" =>
      "HK3-Vorlauftemperatur",
    "heating.circuits.2.zone.mode.active" => "HK2-ZoneMode_aktive",

    "heating.circuits.3.geofencing.active" => "HK4-Geofencing",
    "heating.circuits.3.geofencing.status" => "HK4-Geofencing_Status",
    "heating.circuits.3.operating.programs.summerEco.active" =>
      "HK4-Solltemperatur_SummerEco_aktiv",
    "heating.circuits.3.zone.mode.active" => "HK4-ZoneMode_aktive",

    "heating.compressor.active"                     => "Kompressor_aktiv",
    "heating.configuration.multiFamilyHouse.active" => "Mehrfamilenhaus_aktiv",
    "heating.configuration.regulation.mode"         => "Regulationmode",
    "heating.controller.serial.value"  => "Controller_Seriennummer",
    "heating.device.time.offset.value" => "Device_Time_Offset",
    "heating.dhw.active"               => "WW-aktiv",
    "heating.dhw.status"               => "WW-Status",
    "heating.dhw.charging.active"      => "WW-Aufladung",

    "heating.dhw.charging.level.bottom" => "WW-Speichertemperatur_unten",
    "heating.dhw.charging.level.middle" => "WW-Speichertemperatur_mitte",
    "heating.dhw.charging.level.top"    => "WW-Speichertemperatur_oben",
    "heating.dhw.charging.level.value"  => "WW-Speicherladung",

    "heating.dhw.oneTimeCharge.active" => "WW-einmaliges_Aufladen",
    "heating.dhw.pumps.circulation.schedule.active" =>
      "WW-Zirkulationspumpe_Zeitsteuerung_aktiv",
    "heating.dhw.pumps.circulation.schedule.entries" =>
      "WW-Zirkulationspumpe_Zeitplan",
    "heating.dhw.pumps.circulation.status" => "WW-Zirkulationspumpe_Status",
    "heating.dhw.pumps.primary.status"     => "WW-Zirkulationspumpe_primaer",
    "heating.dhw.sensors.temperature.outlet.status" =>
      "WW-Sensoren_Auslauf_Status",
    "heating.dhw.sensors.temperature.outlet.unit" =>
      "WW-Sensoren_Auslauf_Wert/Einheit",
    "heating.dhw.sensors.temperature.outlet.value" =>
      "WW-Sensoren_Auslauf_Wert",
    "heating.dhw.temperature.main.value"       => "WW-Haupttemperatur",
    "heating.dhw.temperature.hysteresis.value" => "WW-Hysterese",
    "heating.dhw.temperature.temp2.value"      => "WW-Temperatur_2",
    "heating.dhw.sensors.temperature.hotWaterStorage.status" =>
      "WW-Temperatur_aktiv",
    "heating.dhw.sensors.temperature.hotWaterStorage.unit" =>
      "WW-Isttemperatur/Einheit",
    "heating.dhw.sensors.temperature.hotWaterStorage.value" =>
      "WW-Isttemperatur",
    "heating.dhw.temperature.value" => "WW-Solltemperatur",
    "heating.dhw.schedule.active"   => "WW-zeitgesteuert_aktiv",
    "heating.dhw.schedule.entries"  => "WW-Zeitplan",

    "heating.errors.active.entries"  => "Fehlereintraege_aktive",
    "heating.errors.history.entries" => "Fehlereintraege_Historie",

    "heating.flue.sensors.temperature.main.status" => "Abgassensor_Status",
    "heating.flue.sensors.temperature.main.unit" =>
      "Abgassensor_Temperatur/Einheit",
    "heating.flue.sensors.temperature.main.value" => "Abgassensor_Temperatur",

    "heating.fuelCell.operating.modes.active.value" => "Brennstoffzelle_Mode",
    "heating.fuelCell.operating.modes.ecological.active" =>
      "Brennstoffzelle_Mode_Ecological",
    "heating.fuelCell.operating.modes.economical.active" =>
      "Brennstoffzelle_Mode_Economical",
    "heating.fuelCell.operating.modes.heatControlled.active" =>
      "Brennstoffzelle_wärmegesteuert",
    "heating.fuelCell.operating.modes.maintenance.active" =>
      "Brennstoffzelle_Wartung",
    "heating.fuelCell.operating.modes.standby.active" =>
      "Brennstoffzelle_Standby",
    "heating.fuelCell.operating.phase.value" => "Brennstoffzelle_Phase",
    "heating.fuelCell.power.production.day" =>
      "Brennstoffzelle_Stromproduktion/Tag",
    "heating.fuelCell.power.production.month" =>
      "Brennstoffzelle_Stromproduktion/Monat",
    "heating.fuelCell.power.production.unit" =>
      "Brennstoffzelle_Stromproduktion/Einheit",
    "heating.fuelCell.power.production.week" =>
      "Brennstoffzelle_Stromproduktion/Woche",
    "heating.fuelCell.power.production.year" =>
      "Brennstoffzelle_Stromproduktion/Jahr",
    "heating.fuelCell.sensors.temperature.return.status" =>
      "Brennstoffzelle_Temperatur_Ruecklauf_Status",
    "heating.fuelCell.sensors.temperature.return.unit" =>
      "Brennstoffzelle_Temperatur_Ruecklauf/Einheit",
    "heating.fuelCell.sensors.temperature.return.value" =>
      "Brennstoffzelle_Temperatur_Ruecklauf",
    "heating.fuelCell.sensors.temperature.supply.status" =>
      "Brennstoffzelle_Temperatur_Vorlauf_Status",
    "heating.fuelCell.sensors.temperature.supply.unit" =>
      "Brennstoffzelle_Temperatur_Vorlauf/Einheit",
    "heating.fuelCell.sensors.temperature.supply.value" =>
      "Brennstoffzelle_Temperatur_Vorlauf",
    "heating.fuelCell.statistics.availabilityRate" =>
      "Brennstoffzelle_Statistic_Verfügbarkeit",
    "heating.fuelCell.statistics.insertions" =>
      "Brennstoffzelle_Statistic_Einschub",
    "heating.fuelCell.statistics.operationHours" =>
      "Brennstoffzelle_Statistic_Bestriebsstunden",
    "heating.fuelCell.statistics.productionHours" =>
      "Brennstoffzelle_Statistic_Produktionsstunden",
    "heating.fuelCell.statistics.productionStarts" =>
      "Brennstoffzelle_Statistic_Produktionsstarts",

    "heating.gas.consumption.dhw.day"   => "Gasverbrauch_WW/Tag",
    "heating.gas.consumption.dhw.week"  => "Gasverbrauch_WW/Woche",
    "heating.gas.consumption.dhw.month" => "Gasverbrauch_WW/Monat",
    "heating.gas.consumption.dhw.year"  => "Gasverbrauch_WW/Jahr",
    "heating.gas.consumption.dhw.dayValueReadAt" =>
      "Gasverbrauch_WW/Tag_gelesen_am",
    "heating.gas.consumption.dhw.weekValueReadAt" =>
      "Gasverbrauch_WW/Woche_gelesen_am",
    "heating.gas.consumption.dhw.monthValueReadAt" =>
      "Gasverbrauch_WW/Monat_gelesen_am",
    "heating.gas.consumption.dhw.yearValueReadAt" =>
      "Gasverbrauch_WW/Jahr_gelesen_am",
    "heating.gas.consumption.dhw.unit" => "Gasverbrauch_WW/Einheit",

    "heating.gas.consumption.heating.day"   => "Gasverbrauch_Heizung/Tag",
    "heating.gas.consumption.heating.week"  => "Gasverbrauch_Heizung/Woche",
    "heating.gas.consumption.heating.month" => "Gasverbrauch_Heizung/Monat",
    "heating.gas.consumption.heating.year"  => "Gasverbrauch_Heizung/Jahr",
    "heating.gas.consumption.heating.dayValueReadAt" =>
      "Gasverbrauch_Heizung/Tag_gelesen_am",
    "heating.gas.consumption.heating.weekValueReadAt" =>
      "Gasverbrauch_Heizung/Woche_gelesen_am",
    "heating.gas.consumption.heating.monthValueReadAt" =>
      "Gasverbrauch_Heizung/Monat_gelesen_am",
    "heating.gas.consumption.heating.yearValueReadAt" =>
      "Gasverbrauch_Heizung/Jahr_gelesen_am",
    "heating.gas.consumption.heating.unit" => "Gasverbrauch_Heizung/Einheit",
    "heating.gas.consumption.total.day"    => "Gasverbrauch_Total/Tag",
    "heating.gas.consumption.total.month"  => "Gasverbrauch_Total/Monat",
    "heating.gas.consumption.total.unit"   => "Gasverbrauch_Total/Einheit",
    "heating.gas.consumption.total.week"   => "Gasverbrauch_Total/Woche",
    "heating.gas.consumption.total.year"   => "Gasverbrauch_Total/Jahr",
    "heating.gas.consumption.total.dayValueReadAt" =>
      "Gasverbrauch_Total/Tag_gelesen_am",
    "heating.gas.consumption.total.monthValueReadAt" =>
      "Gasverbrauch_Total/Woche_gelesen_am",
    "heating.gas.consumption.total.weekValueReadAt" =>
      "Gasverbrauch_Total/Woche_gelesen_am",
    "heating.gas.consumption.total.yearValueReadAt" =>
      "Gasverbrauch_Total/Jahr_gelesen_am",

    "heating.gas.consumption.fuelCell.day" =>
      "Gasverbrauch_Brennstoffzelle/Tag",
    "heating.gas.consumption.fuelCell.week" =>
      "Gasverbrauch_Brennstoffzelle/Woche",
    "heating.gas.consumption.fuelCell.month" =>
      "Gasverbrauch_Brennstoffzelle/Monat",
    "heating.gas.consumption.fuelCell.year" =>
      "Gasverbrauch_Brennstoffzelle/Jahr",
    "heating.gas.consumption.fuelCell.unit" =>
      "Gasverbrauch_Brennstoffzelle/Einheit",

    "heating.heat.production.day"   => "Wärmeproduktion/Tag",
    "heating.heat.production.month" => "Wärmeproduktion/Woche",
    "heating.heat.production.unit"  => "Wärmeproduktion/Einheit",
    "heating.heat.production.week"  => "Wärmeproduktion/Woche",
    "heating.heat.production.year"  => "Wärmeproduktion/Jahr",

    "heating.operating.programs.holiday.active" => "Urlaub_aktiv",
    "heating.operating.programs.holiday.end"    => "Urlaub_Ende",
    "heating.operating.programs.holiday.start"  => "Urlaub_Start",

    "heating.operating.programs.holidayAtHome.active" => "holidayAtHome_aktiv",
    "heating.operating.programs.holidayAtHome.end"    => "holidayAtHome_Ende",
    "heating.operating.programs.holidayAtHome.start"  => "holidayAtHome_Start",

    "heating.power.consumption.day"   => "Stromverbrauch/Tag",
    "heating.power.consumption.month" => "Stromverbrauch/Monat",
    "heating.power.consumption.week"  => "Stromverbrauch/Woche",
    "heating.power.consumption.year"  => "Stromverbrauch/Jahr",
    "heating.power.consumption.unit"  => "Stromverbrauch/Einheit",

    "heating.power.consumption.dhw.day"   => "Stromverbrauch_WW/Tag",
    "heating.power.consumption.dhw.month" => "Stromverbrauch_WW/Monat",
    "heating.power.consumption.dhw.week"  => "Stromverbrauch_WW/Woche",
    "heating.power.consumption.dhw.year"  => "Stromverbrauch_WW/Jahr",
    "heating.power.consumption.dhw.unit"  => "Stromverbrauch_WW/Einheit",

    "heating.power.consumption.heating.day"   => "Stromverbrauch_Heizung/Tag",
    "heating.power.consumption.heating.month" => "Stromverbrauch_Heizung/Monat",
    "heating.power.consumption.heating.week"  => "Stromverbrauch_Heizung/Woche",
    "heating.power.consumption.heating.year"  => "Stromverbrauch_Heizung/Jahr",
    "heating.power.consumption.heating.unit" =>
      "Stromverbrauch_Heizung/Einheit",

    "heating.power.consumption.total.day"   => "Stromverbrauch_Total/Tag",
    "heating.power.consumption.total.month" => "Stromverbrauch_Total/Monat",
    "heating.power.consumption.total.week"  => "Stromverbrauch_Total/Woche",
    "heating.power.consumption.total.year"  => "Stromverbrauch_Total/Jahr",
    "heating.power.consumption.total.dayValueReadAt" =>
      "Stromverbrauch_Total/Tag_gelesen_am",
    "heating.power.consumption.total.monthValueReadAt" =>
      "Stromverbrauch_Total/Monat_gelesen_am",
    "heating.power.consumption.total.weekValueReadAt" =>
      "Stromverbrauch_Total/Woche_gelesen_am",
    "heating.power.consumption.total.yearValueReadAt" =>
      "Stromverbrauch_Total/Jahr_gelesen_am",
    "heating.power.consumption.total.unit" => "Stromverbrauch_Total/Einheit",

    "heating.power.production.current.status" =>
      "Stromproduktion_aktueller_Status",
    "heating.power.production.current.value" => "Stromproduktion",

    "heating.power.production.demandCoverage.current.unit" =>
      "Stromproduktion_Bedarfsabdeckung/Einheit",
    "heating.power.production.demandCoverage.current.value" =>
      "Stromproduktion_Bedarfsabdeckung",
    "heating.power.production.demandCoverage.total.day" =>
      "Stromproduktion_Bedarfsabdeckung_total/Tag",
    "heating.power.production.demandCoverage.total.month" =>
      "Stromproduktion_Bedarfsabdeckung_total/Monat",
    "heating.power.production.demandCoverage.total.unit" =>
      "Stromproduktion_Bedarfsabdeckung_total/Einheit",
    "heating.power.production.demandCoverage.total.week" =>
      "Stromproduktion_Bedarfsabdeckung_total/Woche",
    "heating.power.production.demandCoverage.total.year" =>
      "Stromproduktion_Bedarfsabdeckung_total/Jahr",

    "heating.power.production.day"   => "Stromproduktion_Total/Tag",
    "heating.power.production.month" => "Stromproduktion_Total/Monat",
    "heating.power.production.productionCoverage.current.unit" =>
      "Stromproduktion_Produktionsabdeckung/Einheit",
    "heating.power.production.productionCoverage.current.value" =>
      "Stromproduktion_Produktionsabdeckung",
    "heating.power.production.productionCoverage.total.day" =>
      "Stromproduktion_Produktionsabdeckung_Total/Tag",
    "heating.power.production.productionCoverage.total.month" =>
      "Stromproduktion_Produktionsabdeckung_Total/Monat",
    "heating.power.production.productionCoverage.total.unit" =>
      "Stromproduktion_Produktionsabdeckung_Total/Einheit",
    "heating.power.production.productionCoverage.total.week" =>
      "Stromproduktion_Produktionsabdeckung_Total/Woche",
    "heating.power.production.productionCoverage.total.year" =>
      "Stromproduktion_Produktionsabdeckung_Total/Jahr",
    "heating.power.production.unit" => "Stromproduktion_Total/Einheit",
    "heating.power.production.week" => "Stromproduktion_Total/Woche",
    "heating.power.production.year" => "Stromproduktion_Total/Jahr",

    "heating.power.purchase.current.unit"  => "Stromkauf/Einheit",
    "heating.power.purchase.current.value" => "Stromkauf",
    "heating.power.sold.current.unit"      => "Stromverkauf/Einheit",
    "heating.power.sold.current.value"     => "Stromverkauf",
    "heating.power.sold.day"               => "Stromverkauf/Tag",
    "heating.power.sold.month"             => "Stromverkauf/Monat",
    "heating.power.sold.unit"              => "Stromverkauf/Einheit",
    "heating.power.sold.week"              => "Stromverkauf/Woche",
    "heating.power.sold.year"              => "Stromverkauf/Jahr",

    "heating.sensors.pressure.supply.status" => "Drucksensor_Vorlauf_Status",
    "heating.sensors.pressure.supply.unit"   => "Drucksensor_Vorlauf/Einheit",
    "heating.sensors.pressure.supply.value"  => "Drucksensor_Vorlauf",

    "heating.sensors.power.output.status" => "Sensor_Stromproduktion_Status",
    "heating.sensors.power.output.value"  => "Sensor_Stromproduktion",

    "heating.sensors.temperature.outside.status"      => "Aussen_Status",
    "heating.sensors.temperature.outside.statusWired" => "Aussen_StatusWired",
    "heating.sensors.temperature.outside.statusWireless" =>
      "Aussen_StatusWireless",
    "heating.sensors.temperature.outside.unit"  => "Aussentemperatur/Einheit",
    "heating.sensors.temperature.outside.value" => "Aussentemperatur",

    "heating.service.timeBased.serviceDue" => "Service_faellig",
    "heating.service.timeBased.serviceIntervalMonths" =>
      "Service_Intervall_Monate",
    "heating.service.timeBased.activeMonthSinceLastService" =>
      "Service_Monate_aktiv_seit_letzten_Service",
    "heating.service.timeBased.lastService" => "Service_Letzter",
    "heating.service.burnerBased.serviceDue" =>
      "Service_fällig_brennerbasiert",
    "heating.service.burnerBased.serviceIntervalBurnerHours" =>
      "Service_Intervall_Betriebsstunden",
    "heating.service.burnerBased.activeBurnerHoursSinceLastService" =>
      "Service_Betriebsstunden_seit_letzten",
    "heating.service.burnerBased.lastService" =>
      "Service_Letzter_brennerbasiert",

    "heating.solar.active"               => "Solar_aktiv",
    "heating.solar.pumps.circuit.status" => "Solar_Pumpe_Status",
    "heating.solar.rechargeSuppression.status" =>
      "Solar_Aufladeunterdrueckung_Status",
    "heating.solar.sensors.power.status" => "Solar_Sensor_Power_Status",
    "heating.solar.sensors.power.value"  => "Solar_Sensor_Power",
    "heating.solar.sensors.temperature.collector.status" =>
      "Solar_Sensor_Temperatur_Kollektor_Status",
    "heating.solar.sensors.temperature.collector.value" =>
      "Solar_Sensor_Temperatur_Kollektor",
    "heating.solar.sensors.temperature.dhw.status" =>
      "Solar_Sensor_Temperatur_WW_Status",
    "heating.solar.sensors.temperature.dhw.value" =>
      "Solar_Sensor_Temperatur_WW",
    "heating.solar.statistics.hours" => "Solar_Sensor_Statistik_Stunden",

    "heating.solar.power.cumulativeProduced.value" =>
      "Solarproduktion_Gesamtertrag",
    "heating.solar.power.production.month" => "Solarproduktion/Monat",
    "heating.solar.power.production.day"   => "Solarproduktion/Tag",
    "heating.solar.power.production.unit"  => "Solarproduktion/Einheit",
    "heating.solar.power.production.week"  => "Solarproduktion/Woche",
    "heating.solar.power.production.year"  => "Solarproduktion/Jahr"
}

Mit den Settern bekommst du dann aber Probleme da ich kein Rückmappen eingebaut habe.
Das wäre aber machbar wenn gewünscht, oder was ich für besser halte wäre Raw Setter zu ermöglichen.
Da kannst du mir ja mal sagen wie dir das am besten gefallen würde.

Gruß,
Stefan

sepultura30

Hallo Stefan,

also mir ist das egal, wollen wir mal schauen was die Mehrheit dazu sagt.

Hast du das schon gefixt -> "HK1_Betriebsart:active,standby,heating,dhw,dhwAndHeating,forcedReduced,forcedNormal "


Grüße

Sandro

buec65

Hallo Stefan,
gut das Du dich um das Modul kümmerst.
Hab das jetzt mal bei mir ersetzt - funktioniert prima.

Danke

stefanru

Hi Sandro,

wie gesagt das alte Mapping hatte ich nicht angefasst und bin da auf eure Hilfe angewiesen wenn Verbesserungen gewünscht sind am alten Mapping.
Ich benutze ausschließlich Raw Readings und dadurch Raw setter die dynamisch erstellt werden und nicht fix gepflegt.

Ich habe mir HK1_Betriebsart für dich angeschaut und es von:
HK1_Betriebsart:active,standby
auf
HK1_Betriebsart:active,standby,heating,dhw,dhwAndHeating,forcedReduced,forcedNormal

Die Änderung ist ja auch unkritisch da es sie abwärtskompatibel ist.

Im Anhang die geänderte Version.
Gib mir kurz bescheid ob das dein Problem löst, Danke.

Alle anderen gern bescheid geben in welche Richtung es mit dem alten Mapping gehen soll, das ist mir völlig egal und ich kann das Mapping einbauen das ihr bevorzugt, oder ich baue beide ein.
Wäre dann Mapping Orig und Mapping Roger. Aber das bläht das Modul unnötig auf.

Gruß,
Stefan

Newbie

Hallo Stefan,

super Arbeit von Dir. Ich habe hier Readings die nicht übesetzt werden:

heating.burners.enabled

heating.circuits.0.name.name

heating.circuits.0.operating.modes.dhw.active

heating.circuits.0.operating.modes.dhwAndHeating.active

heating.solar.power.production.dayValueReadAt

heating.solar.power.production.monthValueReadAt

heating.solar.power.production.weekValueReadAt

heating.solar.power.production.yearValueReadAt

HK1_External_Temp

HK1_External_aktiv

Pflegst du die ein, oder soll ich das über userreading machen?

Gruß Jens


fhem-6.1 (configDB+DbLog)  auf ODROID-XU4

stefanru

#1093
Hi Jens,

das heißt du benutzt das Modul mit den internen alten Mapping?
Also du setzt weder vitoconnect_mappings, noch vitoconnect_translations?

Wenn ja ist das der Teil den ich nicht angepasst habe, aber wenn du willst kann ich die Readings einpflegen.
2 Readings deiner Liste sind aber schon übersetzt:
HK1_External_Temp   
HK1_External_aktiv
Was passt die daran nicht?

Zu den anderen würde ich vorschlagen:
heating.burners.enabled              = Brenner_1_enabled (da es activ schon gibt und enabled schon bei dhw verwendet wird)
   
heating.circuits.0.name.name         = Brenner_1_name (es gibt oft aus der API sowohl .name als auch .name.name enthält aber immer das selbe)
   
heating.circuits.0.operating.modes.dhw.active      = HK1_WW_aktiv
   
heating.circuits.0.operating.modes.dhwAndHeating.active = HK1_WW_und_Heizen_aktiv
   
heating.solar.power.production.dayValueReadAt  = Solarproduktion_Tageswert_geslesen_am
   
heating.solar.power.production.monthValueReadAt = Solarproduktion_Monatswert_geslesen_am
   
heating.solar.power.production.weekValueReadAt = Solarproduktion_Wochenwert_geslesen_am
   
heating.solar.power.production.yearValueReadAt = = Solarproduktion_Jahresswert_geslesen_am

Gib kurz bescheid ob so ok dann bau ichs ein.

An alle bitte unterscheidet das alte Mapping von meiner Weiterentwicklung.
Ich passe euch gerne auch das alte Mapping an, aber da müsst ihr mir helfen.
Das ist nicht mein Augenmerk oder Ziel bei dem Modul.
Bitte gebt mir solch eine Liste und am besten gleich die Übersetzung die ihr euch vorstellt.

Gruß und Danke,
Stefan


stefanru

Da ich eh noch eine Änderung für mich zu tun hatte habe ich nun alles eingepflegt.
GEändert ist dass beim setzen eines Readings mit ok, dieses gleich im Device gesetzt wird.
Somit ändert sich der Wert direkt, z.B. für Tablet UI controls.

Ihr könnt das file von meinem GIT holen (https://github.com/StefanRu1/FHEM/tree/main) ich habe es aber auch angehängt.

Gruß,
Stefan