Autor Thema: Kostal Piko MP / StecaGrid coolcept in FHEM einbinden  (Gelesen 540 mal)

Offline peter456

  • Full Member
  • ***
  • Beiträge: 126
Ich habe seit kurzem einen neuen Wechselrichter Kostal Piko MP 2000 installiert. Die Serie von Kostal Piko MP ist baugleich mit StecaGrid coolcept Wechselrichtern. Da ich aktuell kein fertiges Modul in FHEM finden konnte, habe ich meine ersten Versuche mit HTTPMOD gestartet.
Aktuell kann ich über die XML-Seite des Wechselrichters die gewünschten Werte in FHEM einlesen und in Plots visualisieren.
Ich möchte hier meine Ergebnisse einstellen mit der Hoffnung, dass eventuell noch Verbesserungsvorschläge zu diesem Code kommen könnten oder vielleicht jemand mit diesen Informationen ein FHEM-Modul programmieren könnte.


Der Aufruf der XML-Seite "http://192.168.1.32/all.xml" liefert folgendes Ergebnis:
<root>
<Device Name="PIKO 2.0 MP" NominalPower="2000" Type="Inverter" Serial="xxxxxxxxxxxxxxxxxx" BusAddress="1" NetBiosName="xxxxxxxxxxxxxx" IpAddress="192.168.1.32" DateTime="2018-06-10T13:20:52">
<Measurements>
<Measurement Value="232.3" Unit="V" Type="AC_Voltage"/>
<Measurement Value="6.014" Unit="A" Type="AC_Current"/>
<Measurement Value="1388.6" Unit="W" Type="AC_Power"/>
<Measurement Value="50.016" Unit="Hz" Type="AC_Frequency"/>
<Measurement Value="204.0" Unit="V" Type="DC_Voltage"/>
<Measurement Value="6.977" Unit="A" Type="DC_Current"/>
<Measurement Value="37.2" Unit="°C" Type="Temp"/>
<Measurement Unit="V" Type="LINK_Voltage"/>
<Measurement Value="1137.7" Unit="W" Type="GridPower"/>
<Measurement Value="0.0" Unit="W" Type="GridConsumedPower"/>
<Measurement Value="1137.7" Unit="W" Type="GridInjectedPower"/>
<Measurement Value="249.1" Unit="W" Type="OwnConsumedPower"/>
<Measurement Value="100.0" Unit="%" Type="Derating"/>
</Measurements>
<Events>
<Event Message="Energymeter Communication timeout" Severity="Error" Type="User" Start="2018-05-18T16:10:12" End="2018-05-18T16:10:16"/>
<Event Message="ENS Grid Frequency too low" Severity="Error" Type="User" Start="2018-05-18T15:54:25" End="2018-05-18T15:54:36"/>
</Events>
<Yields>
<Yield Type="Produced" Slot="Total">
<YieldValue Value="248378" TimeStamp="2018-05-11T16:09:46"/>
</Yield>
</Yields>
<Versions>
<Software Device="HMI" Name="BFAPI" Version="2.5.4"/>
<Software Device="HMI" Name="FBL" Version="2.6.0"/>
<Software Device="HMI" Name="APP" Version="2.19.0"/>
<Software Device="HMI" Name="PAR default" Version="2.0.4"/>
<Software Device="HMI" Name="OEM PIKO 2.0 MP" Version="1.0.5"/>
<Software Device="PU" Name="BFAPI" Version="2.5.4"/>
<Software Device="PU" Name="FBL" Version="1.1.2"/>
<Software Device="PU" Name="APP" Version="5.9.0"/>
<Software Device="PU" Name="PAR" Version="7.1.2"/>
<Software Device="ENS1" Name="BFAPI" Version="2.5.4"/>
<Software Device="ENS1" Name="FBL" Version="1.1.2"/>
<Software Device="ENS1" Name="APP" Version="3.63.0"/>
<Software Device="ENS1" Name="PAR" Version="22.0.7"/>
<Software Device="ENS2" Name="BFAPI" Version="2.5.4"/>
<Software Device="ENS2" Name="FBL" Version="1.1.2"/>
<Software Device="ENS2" Name="APP" Version="3.63.0"/>
<Software Device="ENS2" Name="PAR" Version="22.0.7"/>
<Hardware Device="HMI" Version="3"/>
<Hardware Device="PU" Version="2"/>
<Hardware Device="ENS2" Version="0"/>
</Versions>
<State Value="Active"/>
<Tasks>
<Task Name="TCP/IP Core" State="Pending/Timeout" Prio="2" ID="33" StackSize="320" StackUsed="178" ContextSwitches="35902161" CPULoad="0.67%" CPULoadPeak="45.93%" WaitFor="LwIP_DynQueue"/>
<Task Name="Bootloader Deploy" State="Pending" Prio="20" ID="32" StackSize="576" StackUsed="63" ContextSwitches="1" CPULoad="0.00%" CPULoadPeak="0.00%" WaitFor="Task Sem"/>
<Task Name="RS485 MasterExtern" State="Delayed" Prio="3" ID="31" StackSize="512" StackUsed="137" ContextSwitches="7949257" CPULoad="0.00%" CPULoadPeak="0.49%" WaitFor=" "/>
<Task Name="RS485 BusScheduler" State="Pending/Timeout" Prio="20" ID="30" StackSize="256" StackUsed="98" ContextSwitches="245348639" CPULoad="3.58%" CPULoadPeak="12.84%" WaitFor="Task Sem"/>
<Task Name="Derating" State="Delayed" Prio="20" ID="29" StackSize="96" StackUsed="60" ContextSwitches="2036619" CPULoad="0.00%" CPULoadPeak="0.06%" WaitFor=" "/>
<Task Name="uC/OS-III Timer Dispatcher" State="Pending" Prio="10" ID="28" StackSize="160" StackUsed="119" ContextSwitches="352" CPULoad="0.00%" CPULoadPeak="0.29%" WaitFor="Task Q"/>
<Task Name="TCP/IP INET LinkStatus" State="Suspended" Prio="29" ID="27" StackSize="256" StackUsed="16" ContextSwitches="0" CPULoad="0.00%" CPULoadPeak="0.00%" WaitFor=" "/>
<Task Name="TCP/IP LinkStatus" State="Delayed" Prio="29" ID="26" StackSize="256" StackUsed="93" ContextSwitches="21041446" CPULoad="0.08%" CPULoadPeak="0.27%" WaitFor=" "/>
<Task Name="Datalogger" State="Delayed" Prio="28" ID="25" StackSize="256" StackUsed="134" ContextSwitches="22017898" CPULoad="0.88%" CPULoadPeak="13.58%" WaitFor=" "/>
<Task Name="RTC IntervalTimer" State="Delayed" Prio="27" ID="24" StackSize="256" StackUsed="68" ContextSwitches="19851642" CPULoad="0.01%" CPULoadPeak="1.34%" WaitFor=" "/>
<Task Name="PowerLimiter" State="Pending" Prio="25" ID="23" StackSize="256" StackUsed="85" ContextSwitches="4" CPULoad="0.00%" CPULoadPeak="0.26%" WaitFor="Task Sem"/>
<Task Name="Simulation" State="Suspended" Prio="22" ID="22" StackSize="512" StackUsed="16" ContextSwitches="0" CPULoad="0.00%" CPULoadPeak="0.00%" WaitFor=" "/>
<Task Name="Analog Measurements" State="Delayed" Prio="21" ID="21" StackSize="128" StackUsed="120" ContextSwitches="2051543" CPULoad="0.00%" CPULoadPeak="0.45%" WaitFor=" "/>
<Task Name="EndOfLine Test" State="Suspended" Prio="20" ID="20" StackSize="256" StackUsed="16" ContextSwitches="0" CPULoad="0.00%" CPULoadPeak="0.00%" WaitFor=" "/>
<Task Name="MinMax" State="Delayed" Prio="18" ID="19" StackSize="256" StackUsed="204" ContextSwitches="2057447" CPULoad="0.00%" CPULoadPeak="3.08%" WaitFor=" "/>
<Task Name="OperatingHours" State="Delayed" Prio="17" ID="18" StackSize="256" StackUsed="142" ContextSwitches="4534097" CPULoad="0.00%" CPULoadPeak="57.78%" WaitFor=" "/>
<Task Name="HMI LCD" State="Pending/Timeout" Prio="16" ID="17" StackSize="512" StackUsed="296" ContextSwitches="99366467" CPULoad="1.33%" CPULoadPeak="5.78%" WaitFor="Task Q"/>
<Task Name="HMI Key" State="Delayed" Prio="15" ID="16" StackSize="256" StackUsed="74" ContextSwitches="198581971" CPULoad="0.18%" CPULoadPeak="0.23%" WaitFor=" "/>
<Task Name="HMI Buzzer" State="Delayed" Prio="1" ID="15" StackSize="64" StackUsed="44" ContextSwitches="1984817566" CPULoad="1.01%" CPULoadPeak="1.99%" WaitFor=" "/>
<Task Name="HMI Backlight" State="Pending" Prio="2" ID="14" StackSize="128" StackUsed="58" ContextSwitches="89481" CPULoad="0.00%" CPULoadPeak="0.62%" WaitFor="Backlight"/>
<Task Name="Reset" State="Suspended" Prio="1" ID="13" StackSize="160" StackUsed="16" ContextSwitches="0" CPULoad="0.00%" CPULoadPeak="0.00%" WaitFor=" "/>
<Task Name="RS485 Master" State="Pending/Timeout" Prio="3" ID="12" StackSize="512" StackUsed="176" ContextSwitches="992552035" CPULoad="0.86%" CPULoadPeak="10.19%" WaitFor="Task Sem"/>
<Task Name="RS485 Slave" State="Pending/Timeout" Prio="5" ID="11" StackSize="512" StackUsed="79" ContextSwitches="396978777" CPULoad="0.31%" CPULoadPeak="0.37%" WaitFor="RS485 Address Changed"/>
<Task Name="TCP/IP SMTPclient" State="Pending" Prio="31" ID="10" StackSize="512" StackUsed="40" ContextSwitches="1" CPULoad="0.00%" CPULoadPeak="0.00%" WaitFor="Task Q"/>
<Task Name="TCP/IP TELNETserver" State="Suspended" Prio="13" ID="9" StackSize="1024" StackUsed="16" ContextSwitches="0" CPULoad="0.00%" CPULoadPeak="0.00%" WaitFor=" "/>
<Task Name="TCP/IP TELNETinput" State="Suspended" Prio="11" ID="8" StackSize="256" StackUsed="16" ContextSwitches="0" CPULoad="0.00%" CPULoadPeak="0.00%" WaitFor=" "/>
<Task Name="TCP/IP DEBUGserver" State="Suspended" Prio="24" ID="7" StackSize="128" StackUsed="16" ContextSwitches="0" CPULoad="0.00%" CPULoadPeak="0.00%" WaitFor=" "/>
<Task Name="TCP/IP ETHinput" State="Pending/Timeout" Prio="10" ID="6" StackSize="128" StackUsed="63" ContextSwitches="24764665" CPULoad="0.01%" CPULoadPeak="2.44%" WaitFor="Task Sem"/>
<Task Name="TCP/IP HTTPclient" State="Pending" Prio="31" ID="5" StackSize="1024" StackUsed="538" ContextSwitches="224688" CPULoad="0.00%" CPULoadPeak="10.80%" WaitFor="Task Q"/>
<Task Name="TCP/IP HTTPserver" State="Ready" Prio="31" ID="4" StackSize="1024" StackUsed="822" ContextSwitches="614451" CPULoad="0.00%" CPULoadPeak="85.00%" WaitFor=" "/>
<Task Name="Event Storage" State="Delayed" Prio="7" ID="3" StackSize="256" StackUsed="122" ContextSwitches="3323" CPULoad="0.00%" CPULoadPeak="65.74%" WaitFor=" "/>
<Task Name="Event Manager" State="Pending" Prio="6" ID="2" StackSize="256" StackUsed="81" ContextSwitches="4" CPULoad="0.00%" CPULoadPeak="0.17%" WaitFor="Task Q"/>
<Task Name="Boot" State="Delayed" Prio="0" ID="1" StackSize="544" StackUsed="489" ContextSwitches="39699634" CPULoad="0.08%" CPULoadPeak="98.89%" WaitFor="Task Sem"/>
<Task Name="uC/OS-III Timer Task" State="Pending" Prio="11" ID="34" StackSize="256" StackUsed="58" ContextSwitches="198522869" CPULoad="0.12%" CPULoadPeak="0.56%" WaitFor="Task Sem"/>
<Task Name="uC/OS-III Stat Task" State="Delayed" Prio="11" ID="35" StackSize="128" StackUsed="44" ContextSwitches="19916937" CPULoad="0.43%" CPULoadPeak="0.57%" WaitFor=" "/>
<Task Name="uC/OS-III Tick Task" State="Pending" Prio="10" ID="36" StackSize="128" StackUsed="28" ContextSwitches="1997389085" CPULoad="1.34%" CPULoadPeak="100.00%" WaitFor="Task Sem"/>
<Task Name="uC/OS-III Idle Task" State="Ready" Prio="63" ID="37" StackSize="128" StackUsed="18" ContextSwitches="1917631938" CPULoad="89.04%" CPULoadPeak="93.09%" WaitFor=" "/>
</Tasks>
<Statistics>
<Statistic Name="Common">
<Value Label="Connected%20To%20Grid">2587988</Value>
<Value Label="Active">1649291</Value>
</Statistic>
<Statistic Name="Power">
<Value Label="0-500W">1004960</Value>
<Value Label="500-1000W">217785</Value>
<Value Label="1000-1500W">328552</Value>
<Value Label="1500-2000W">97981</Value>
<Value Label="2000-2500W">13</Value>
<Value Label="2500-3000W">0</Value>
<Value Label="3000-3500W">0</Value>
<Value Label="3500-4000W">0</Value>
<Value Label="4000-4500W">0</Value>
<Value Label="4500-5000W">0</Value>
<Value Label="5000-5500W">0</Value>
<Value Label="5500-6000W">0</Value>
<Value Label="%3E6000W">0</Value>
</Statistic>
<Statistic Name="AC%20Voltage">
<Value Label="%3C200V">0</Value>
<Value Label="200-230V">1938533</Value>
<Value Label="230-240V">317168</Value>
<Value Label="240-250V">1611</Value>
<Value Label="250-255V">0</Value>
<Value Label="255-260V">0</Value>
<Value Label="260-265V">0</Value>
<Value Label="%3E265V">0</Value>
</Statistic>
<Statistic Name="PV%20Voltage">
<Value Label="%3C300V">2587987</Value>
<Value Label="300-400V">1</Value>
<Value Label="400-500V">0</Value>
<Value Label="500-600V">0</Value>
<Value Label="600-700V">0</Value>
<Value Label="700-800V">0</Value>
<Value Label="800-850V">0</Value>
<Value Label="850-900V">0</Value>
<Value Label="900-950V">0</Value>
<Value Label="950-1000V">0</Value>
<Value Label="%3E1000V">0</Value>
</Statistic>
<Statistic Name="Derating">
<Value Label="Temperature">0</Value>
<Value Label="External">0</Value>
<Value Label="P(f)">0</Value>
<Value Label="Startup">201</Value>
<Value Label="UserLimit">0</Value>
<Value Label="Hardware%20Limit">183</Value>
<Value Label="Frequency%20TooHigh">4301</Value>
</Statistic>
<Statistic Name="Temp%20Ambient">
<Value Label="%3C-20%C2%B0C">0</Value>
<Value Label="-20-0%C2%B0C">0</Value>
<Value Label="0-20%C2%B0C">124336</Value>
<Value Label="20-40%C2%B0C">2463652</Value>
<Value Label="40-60%C2%B0C">0</Value>
<Value Label="60-80%C2%B0C">0</Value>
<Value Label="80-100%C2%B0C">0</Value>
<Value Label="%3E100%C2%B0C">0</Value>
</Statistic>
<Statistic Name="Temp%20T1">
<Value Label="%3C-20%C2%B0C">0</Value>
<Value Label="-20-0%C2%B0C">0</Value>
<Value Label="0-20%C2%B0C">8177</Value>
<Value Label="20-40%C2%B0C">1594963</Value>
<Value Label="40-60%C2%B0C">46151</Value>
<Value Label="60-80%C2%B0C">0</Value>
<Value Label="80-100%C2%B0C">0</Value>
<Value Label="%3E100%C2%B0C">0</Value>
</Statistic>
<Statistic Name="Temp%20T2">
<Value Label="%3C-20%C2%B0C">0</Value>
<Value Label="-20-0%C2%B0C">0</Value>
<Value Label="0-20%C2%B0C">67646</Value>
<Value Label="20-40%C2%B0C">1072103</Value>
<Value Label="40-60%C2%B0C">509542</Value>
<Value Label="60-80%C2%B0C">0</Value>
<Value Label="80-100%C2%B0C">0</Value>
<Value Label="%3E100%C2%B0C">0</Value>
</Statistic>
<Statistic Name="Temp%20T3">
<Value Label="%3C-20%C2%B0C">0</Value>
<Value Label="-20-0%C2%B0C">0</Value>
<Value Label="0-20%C2%B0C">50421</Value>
<Value Label="20-40%C2%B0C">991397</Value>
<Value Label="40-60%C2%B0C">600250</Value>
<Value Label="60-80%C2%B0C">7223</Value>
<Value Label="80-100%C2%B0C">0</Value>
<Value Label="%3E100%C2%B0C">0</Value>
</Statistic>
<Statistic Name="Temp%20T4">
<Value Label="%3C-20%C2%B0C">0</Value>
<Value Label="-20-0%C2%B0C">0</Value>
<Value Label="0-20%C2%B0C">65275</Value>
<Value Label="20-40%C2%B0C">1268474</Value>
<Value Label="40-60%C2%B0C">315542</Value>
<Value Label="60-80%C2%B0C">0</Value>
<Value Label="80-100%C2%B0C">0</Value>
<Value Label="%3E100%C2%B0C">0</Value>
</Statistic>
<Statistic Name="Temp%20Tmax">
<Value Label="%3C-20%C2%B0C">0</Value>
<Value Label="-20-0%C2%B0C">0</Value>
<Value Label="0-20%C2%B0C">8078</Value>
<Value Label="20-40%C2%B0C">1034096</Value>
<Value Label="40-60%C2%B0C">603747</Value>
<Value Label="60-80%C2%B0C">3370</Value>
<Value Label="80-100%C2%B0C">0</Value>
<Value Label="%3E100%C2%B0C">0</Value>
</Statistic>
</Statistics>
<Settings>
<PowerLimit Value="2000" Valid="true"/>
<DateTimeFormat Date="dd.mm.yyyy" Time="24h"/>
<PowerLimit Value="2000" Valid="true"/>
</Settings>
</Device>
</root>


Der Code in "fhem.cfg":
################################ Wechselrichter Piko  MP #######################
define Wechselrichter_Piko HTTPMOD http://192.168.1.32/measurements.xml 300
attr Wechselrichter_Piko userattr event-min-interval event-on-change-reading reading1Name reading1Regex reading2Name reading2Regex reading3Name reading3Regex requestData.* requestHeader requestHeader.* stateFormat
attr Wechselrichter_Piko event-min-interval 600
attr Wechselrichter_Piko event-on-change-reading Leistung_PV,Verbrauch_aus_Netz,Verbrauch_aus_PV
attr Wechselrichter_Piko group Energie Haus + PV
attr Wechselrichter_Piko icon measure_photovoltaic_inst
attr Wechselrichter_Piko reading1Name Leistung_PV
attr Wechselrichter_Piko reading1Regex Measurement Value='(-?\d*\.?\d*)' Unit='W' Type='AC_Power'
attr Wechselrichter_Piko reading2Name Verbrauch_aus_Netz
attr Wechselrichter_Piko reading2Regex Measurement Value='(-?\d*\.?\d*)' Unit='W' Type='GridConsumedPower'
attr Wechselrichter_Piko reading3Name Verbrauch_aus_PV
attr Wechselrichter_Piko reading3Regex Measurement Value='(-?\d*\.?\d*)' Unit='W' Type='OwnConsumedPower'
attr Wechselrichter_Piko requestHeader.* 1
attr Wechselrichter_Piko room Photovoltaik
attr Wechselrichter_Piko verbose 0

define FileLogVerbrauch_Haus FileLog /media/usbstick/log/FileLog_PV-%Y-%m.log Verbrauch_Haus|Wechselrichter_Piko:(Leistung_PV:|Verbrauch_aus_Netz:|Verbrauch_aus_PV:).*|Ertrag_Piko
attr FileLogVerbrauch_Haus group Statistikwerte
attr FileLogVerbrauch_Haus logtype text

define Ertrag_Piko HTTPMOD http://192.168.1.32/yields.xml 300
attr Ertrag_Piko userattr event-min-interval event-on-change-reading reading1Name reading1Regex requestData.* requestHeader requestHeader.* stateFormat
attr Ertrag_Piko event-min-interval 600
attr Ertrag_Piko event-on-change-reading Ertrag_PV
attr Ertrag_Piko group Energie Haus + PV
attr Ertrag_Piko icon measure_photovoltaic_inst
attr Ertrag_Piko reading1Name Ertrag_PV
attr Ertrag_Piko reading1Regex YieldValue Value='(-?\d*)'
attr Ertrag_Piko requestHeader.* 1
attr Ertrag_Piko room Photovoltaik
attr Ertrag_Piko verbose 0


define myStatDevice_PV statistics Ertrag_Piko
attr myStatDevice_PV deltaReadings Ertrag_PV
attr myStatDevice_PV room Photovoltaik
attr myStatDevice_PV singularReadings Ertrag_Piko:Ertrag_PV:Delta:Hour|Ertrag_Piko:Ertrag_PV:Delta:Day|Ertrag_Piko:Ertrag_PV:Delta:Month|Ertrag_Piko:Ertrag_PV:Delta:Year

define PV_Ertrag dummy
attr PV_Ertrag group Statistikwerte
attr PV_Ertrag room Photovoltaik
#attr PV_Ertrag event-on-change-reading state
define notify_PV_Ertrag notify Ertrag_Piko:Ertrag_PV.*  { \
my $a = ReadingsVal("Ertrag_Piko","Ertrag_PV",0) ;; \
my $b = $a/1000 ;; \
my $text = "$b" ;; \
fhem ("set PV_Ertrag $text") ;; \
}

define FileLog2_PV_Ertrag FileLog /media/usbstick/log/FileLog_PV_Ertrag-%Y-%m.log PV_Ertrag
attr FileLog2_PV_Ertrag group Statistikwerte
attr FileLog2_PV_Ertrag logtype text

define Piko_Ertrag statistics PV_Ertrag
attr Piko_Ertrag deltaReadings state
attr Piko_Ertrag singularReadings PV_Ertrag:state:Delta:Day|PV_Ertrag:state:Delta:Month|PV_Ertrag:state:Delta:Year
attr Piko_Ertrag specialDeltaPeriods PV_Ertrag:state:Hour:24,PV_Ertrag:state:Day:31,PV_Ertrag:state:Month:12

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5869
Antw:Kostal Piko MP / StecaGrid coolcept in FHEM einbinden
« Antwort #1 am: 11 Juni 2018, 10:29:13 »
Prima - aber was sollte ein spezifisches Modul da an Verbesserungen bringen ? HTTPMOD kann alles liefern was man möchte.

LG

pah

Offline peter456

  • Full Member
  • ***
  • Beiträge: 126
Antw:Kostal Piko MP / StecaGrid coolcept in FHEM einbinden
« Antwort #2 am: 11 Juni 2018, 13:29:50 »
Ein fertiges Modul sollte keine Verbesserungen bringen. Es ging mir nur darum, dass bei einem FHEM-Modul alle möglichen Variablen schon für alle Nutzer vorbereitet wären (die Fließarbeit müsste nur ein Mal gemacht werden) und die Bezeichnungen der Variablen bei allen Nutzern identisch wären (so kann man sich besser über Probleme oder Optimierungsmöglichkeiten unterhalten).

Offline Prof. Dr. Peter Henning

  • Developer
  • Hero Member
  • ****
  • Beiträge: 5869
Antw:Kostal Piko MP / StecaGrid coolcept in FHEM einbinden
« Antwort #3 am: 12 Juni 2018, 15:18:45 »
Das ist Käse, pardon. Man muss nur einmal die HTTPMOD-Lösung im WIki dokumentieren, dort steht sie allen zur Verfügung.

LG

pah

Offline peter456

  • Full Member
  • ***
  • Beiträge: 126
Antw:Kostal Piko MP / StecaGrid coolcept in FHEM einbinden
« Antwort #4 am: 12 Juni 2018, 23:07:08 »
Vielleicht finden sich auch noch andere Meinungen zu diesem Thema. Wie schon geschrieben, ich habe hier keine vollständigen Käse eingestellt. Der Käse muss noch weiter entwickelt werden.

 

decade-submarginal