Configuration of the Homematic Binding for RaspberryMatic

I use the Homematic Binding to connect Openhab 4.3.5 to the RaspberryMatic. I have installed the WeatherSensor HmIP-SWO-PL and all the values are displayed in my RaspberryMatic Installation.
In RaspberryMatic I see two values for sunshine Duration. These are “Sunshine Duration today” and “Sunshine Duration Yesterday”. Where “Sunshine Duration yesterday” accumulates the overall sunshine duration. In Openhab there is only one channel called “sunshineduration”. This channel shows the sum of the two values from RaspberryMatic “Sunshine Duration today” and “Sunshine Duration yesterday”. Therefore it is completely useless. How can I change the interface between RaspberryMatic an Openhab ? Is the binding somehow configurable ?
Is it possible to create the items by items-file and avoid the discovery. But how to adress the channels in RaspberryMatic ?

No, this value shows sunshine duration since device is up or counter reseted by HomeMatic UI.

“Sunshine Duration today” and “Sunshine Duration yesterday” are HomeMatic internal values and not accessible by Openhab.

Two possible solutions:

  1. Find out the internal name of the variables and mirror them with a HomeMatic rule to system values. These are accessible by Openhab. I have done this with my HomeMatic energy counter which has the same problem.
  2. Use OpenHab rules to calculate the daily values based on the overall counter

I have created the following Program

object chn = dom.GetObject(‘1656’);
object oSysVarSunshineCounterToday = dom.GetObject(‘svHmIPSunshineCounterToday_1656’);
object oSysVarSunshineCounterYesterday = dom.GetObject(‘svHmIPSunshineCounterYesterday_1656’);
object oSysVarRainCounterToday = dom.GetObject(‘svHmIPRainCounterToday_1656’);
object oSysVarRainCounterYesterday = dom.GetObject(‘svHmIPRainCounterYesterday_1656’);
! Namen der SysVar auf die eigenen Bedürfnisse anpassen, Typ Zahl
object oSysVarRegenGestern = dom.GetObject(‘RegenmengeGestern’);
object oSysVarRegenHeute = dom.GetObject(‘RegenmengeHeute’) ;
object oSysVarSonnenscheinGestern = dom.GetObject(‘SonnenscheinGestern’);
object oSysVarSonnenscheinHeute = dom.GetObject(‘SonnenscheinHeute’);
!
if (oSysVarSunshineCounterYesterday && oSysVarSunshineCounterToday) {oSysVarSunshineCounterYesterday.State(oSysVarSunshineCounterToday.Value());}
if (oSysVarSunshineCounterToday) {oSysVarSunshineCounterToday.State(0);}
!
if (oSysVarRainCounterYesterday && oSysVarRainCounterToday) {oSysVarRainCounterYesterday.State(oSysVarRainCounterToday.Value());}
if (oSysVarRainCounterToday) {oSysVarRainCounterToday.State(0);}
! Kopieren der internen Sysvar mit der Regenmenge des Vortages in die selbst angelegte SysVar
oSysVarRegenGestern.State(oSysVarRainCounterYesterday.Value());
oSysVarRegenHeute.State(oSysVarRainCounterToday.Value());
oSysVarSonnenscheinGestern.State(oSysVarSunshineCounterYesterday.Value());
oSysVarSonnenscheinHeute.State(oSysVarSunshineCounterToday.Value());