Hauptmenü

Neueste Beiträge

#11
Solaranlagen / Aw: Photovoltaik Eigenverbrauc...
Letzter Beitrag von ch.eick - 19 März 2026, 14:33:43
Hallo zusammen,
ich denke ich führe hier mitlerweile gruppendynamische Selbstgespräche, aber so what...

In Vorbereitung für eventuelle Strafzahlungen für die Einspeisung zu netzundienlichen Zeiten habe ich mich mal mit der Drosselung beschäftigt.
Über den Active_P_Setpoint in Prozent kann man den Wechselrichter WR_1 mit ModBus bis auf 0 W runter regeln.
Einen Steuerkreis um dies automatisch zu machen habe ich noch nicht geschrieben, aber das kann ja noch kommen.

Active_P_Setpoint in Prozent
attr WR_1 obj-h533-len 1
attr WR_1 obj-h533-reading Active_P_Setpoint
attr WR_1 obj-h533-set 1
attr WR_1 obj-h533-unpack n

set WR_1 Active_P_Setpoint 0
Du darfst diesen Dateianhang nicht ansehen.

Dann habe ich nochmal getestet, ob es auch die Speicher Ladung unterbricht, was zum Glück nicht der Fall ist :-)
Du darfst diesen Dateianhang nicht ansehen.

Du darfst diesen Dateianhang nicht ansehen.

Wenn man nun beide WR setzt, so braucht man sich noch nicht einmal um irgend eine Regelung kümmern, das machen die Plenticore komplett alleine.
Der Speicher wird weiter geladen und auch das Haus versorgt. Ich bin begeistert :-)

set WR_1 Active_P_Setpoint 0
set WR_2 Active_P_Setpoint 0
Du darfst diesen Dateianhang nicht ansehen.
Den aktuellen Hausverbrauch sieht man bei mir in der Tabelle darunter, aber es klappt und im KSEM sieht man auch die Produktion.
Du darfst diesen Dateianhang nicht ansehen.


VG  Christian
#12
Wallboxen und E-Fahrzeuge / Aw: go-e Charger WallBox über...
Letzter Beitrag von satprofi - 19 März 2026, 14:21:54
Zitat von: fichtennadel am 19 März 2026, 09:34:02
Zitat von: Prof. Dr. Peter Henning am 12 März 2026, 17:48:30
Zitat von: betateilchen am 11 März 2026, 19:06:34Völlig egal, woher der Strom stammt.
Jein. Es ist unschön, wenn Du die Kiste am Vortag mit 40 kWh geladen hast (die zu 75% aus dem Netz stammten), und am heutigen Tag einspeisen musst, weil der Speicher voll ist.


Und damit back to topic: dazu ist die go-e WallBox über HTTPMOD perfekt geeignet.

richtig. ich habe auf "daily trip" eingestellt, zusätzlich setzt fhem die preisgrenze beim energietarif für ladung. also wird optimal geladen. angesteckt vorrausgesetzt ;-)
#13
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von Parallix - 19 März 2026, 14:11:48
Zitat von: alkazaa am 19 März 2026, 13:24:06@Parallix, Du schriebst kürzlich
Zitat von: Parallix am 24 Februar 2026, 10:15:25Vor diesem Hintergrund habe ich längere Zeit mit der Programmierung eines auf SF aufsetzenden Ladecontroller beschäftigt, der dafür sorgt, dass auch bei hohen SOC-Ständen keine Zellspannung über einem konfigurierbaren Maximalwert (bei mir mit meinem LiFePO4-System auf 3500 mV eingestellt) liegt.
...
Seit vielen Wochen betreibe ich nun diesen Controller, möchte kurz über meine Erfahrungen damit berichten und daraus ggf. ableitbare zukünftige SF-Features  mit Euch gemeinsam entwickeln.
Ich bin an diesem controller sehr interessiert, aber in SF ist er ja wohl noch nicht integriert(?). Würdest Du den code im jetztigen Zustand schon teilen wollen? (Ich habe eine BYD HVS 10.2, die einzelnen Zellspannungen sind damit auslesbar).
Aktuell ist der Controller noch sehr sehr eng auf mein Setup ausgerichtet. Sobald ich wieder etwas Luft habe, werde ich den Code überarbeiten und dann hier auch teilen.

Ein Einbau in SF ist grundsätzlich denkbar, widerspricht meines Erachtens aber dem Ansatz von SF, was perfekt zu Steuerung geeignet ist, ggf. auch zur Regelung, dann aber mit einer sehr geringen Abtastfrequenz.

Der Controller muss insb. in den Grenzbereichen, in denen sich der Innenwiderstand der Zellen stark variiert, recht schnell sein, sodass er beim Ausbrechen einer Zelle sofort die Ladeleistung reduzieren oder gar auf Null setzen kann. Das passiert bei mir in einem DOIF, hauptsächlich mit folgendem Codeschnipsel:
if( $maxCellmVoltage > $lowerTermVoltage + $voltageOffset ) {
  $current *= 1.0 - ($maxCellmVoltage - $lowerTermVoltage) / $termVoltageRange;

  $current = $current < $batMinChgCurrent ? $batMinChgCurrent : $current;
     
  if( $maxCellmVoltage > $upperTermVoltage ) {
    $current = 0.0;
  }
}

Hier auch gleich eine kurze Beschreibung der Variablen:
  • current: Ladestrom, aus der von SF angegeben Ladeleistung und der akt. BAT-Spannung abgeleitet
  • maxCellmVoltage: Größte aktuelle Zellspannung der Batterie
  • lowerTermVoltage: Zellspannung, ab der der Controller die Ladestrom im Controller verändert wird
  • upperTermVoltage: Höchste Zellspannung, oberhalb derer keine weitere Ladung mehr erfolgt
  • voltageOffset: Spannungsabfall am Innenwiderstand der Zelle für ein SOC in [20,90] andernfalls voltageOffset=0
  • termVoltageRange = upperTermVoltage - lowerTermVoltage
  • batMinChgCurrent: Kleinster am Wechselrichter einstellbarer Ladestrom

Wichtig:
  • upperTermVoltage muss deutlich unterhalb der Ladeschlussspannung der in der BAT verbauten Zellen liegen. Andernfalls muss darauf geachtet werden, dass mit current ein geeigneter Ladeschlussstrom in der Ladeschlussphase vorliegt.
  • SF setzt Battery_ChargeOptTargetPower_XX auf pinmax, sofern Battery_ChargeUnrestricted_XX == 1. Wenn pinmax nicht so eingestellt wird, dass in diesem Fall mit deutlich weniger als 1C geladen wird, muss current, insb. für der Ladeschlussphase, reduziert werden.

Bei meinem LiFePO4-BAT verwende ich
  • lowerTermVoltage = 3375
  • upperTermVoltage = 3475
wobei diese Angaben natürlich in mV sind.

PS: Mit ist bewusst, dass die Variablennamen noch nicht ganz konsistent gewählt wurden. ;-)
#14
Anfängerfragen / Aw: Structure, <struct_type>_m...
Letzter Beitrag von Aurel_B - 19 März 2026, 13:58:57
Hallo Dan,

ahhh jetzt ist klar, habe ich überlesen (wer lesen kann ist klar im Vorteil und so :-). Danke dir, jetzt leuchtet mir das ein und FHEM akzeptiert das attr. Der Rest funktioniert noch nicht wie gewollt, da schaue ich mal weiter und poste eventuell die Lösung.
#15
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von alkazaa - 19 März 2026, 13:24:06
@Parallix, Du schriebst kürzlich
Zitat von: Parallix am 24 Februar 2026, 10:15:25Vor diesem Hintergrund habe ich längere Zeit mit der Programmierung eines auf SF aufsetzenden Ladecontroller beschäftigt, der dafür sorgt, dass auch bei hohen SOC-Ständen keine Zellspannung über einem konfigurierbaren Maximalwert (bei mir mit meinem LiFePO4-System auf 3500 mV eingestellt) liegt.
...
Seit vielen Wochen betreibe ich nun diesen Controller, möchte kurz über meine Erfahrungen damit berichten und daraus ggf. ableitbare zukünftige SF-Features  mit Euch gemeinsam entwickeln.
Ich bin an diesem controller sehr interessiert, aber in SF ist er ja wohl noch nicht integriert(?). Würdest Du den code im jetztigen Zustand schon teilen wollen? (Ich habe eine BYD HVS 10.2, die einzelnen Zellspannungen sind damit auslesbar).
#16
Unterstützende Dienste / Aw: Statistics Modul, Stunden ...
Letzter Beitrag von chrisse111179 - 19 März 2026, 13:02:38
Hallo Zusammen, danke für eure rege Beteiligung!
@Wzut hatte Recht, der Stromzähler hatte keine Events geworfen.

Ich hatte im Device Stromzaehler
attr event-on-change-reading KwhLastHour,KwhLastDay,KwhLastMonth,KwhLastYear,CostLastHour,CostLastDay,CostLastMonth,CostLastYeargesetzt, und aus irgendeinem Grund haben gar keine Readings mehr einen Event ausgelöst.

EDIT:
Und eben wird mir auch klar warum! Ich hatte das Attribut event-on-change-reading völlig falsch verstanden...

Danke euch!
Christian
#17
Automatisierung / Aw: DBLOG: sqlite Another oper...
Letzter Beitrag von Hadl - 19 März 2026, 12:44:10
Hallo Heiko,
ich hab nun gemessen ohne dem Attribut "insertMode", mit insertMode=0 und insertMode=1
Die Messwerte von background_processing_time und sql_processing_time bewegen sich beide immer im Bereich zwischen 1.0s und 1.8s
Einen update dieser Werte und damit warscheinlich ein echtes Schreiben bekomme ich ca. alle 90-120s
Das ganze sieht sehr stabil aus und ich sehe keine Ausreiser.

Da sollte eigentlich auch genug "Luft" sein mal die doppelte Menge schreiben zu können. Mit der Performance bin ich so zufrieden.
Als es blockiert hatte habe ich auch weder eine hohe CPU Last, noch eine hohe SSD Last feststellen können.

Ich hab mir mal ein Filelog dafür erstellen lassen, aber scheinbar kommen da nur beim Schreiben Events. Damit ist CacheUsage immer fast leer, obwohl ich beobachtet hatte das das Schreiben aufgrund von mehr als 1000 Einträgen erfolgt ist.

2026-03-19_12:38:42 logdb background_processing_time: 1.8071
2026-03-19_12:38:42 logdb sql_processing_time: 1.7977
2026-03-19_12:38:42 logdb CacheUsage: 2

Der Fehler tritt auch selten auf und ich weiß nicht wie ich ihn provozieren kann.
#18
Solaranlagen / Aw: Modul für Ecoflow-Komponen...
Letzter Beitrag von phantom - 19 März 2026, 12:29:32
für Anwender von STREAM ULTRA & STREAM ACPRO habe ich 2 kleine Korrekturen zur Ansteuerung der Relais der Ausgänge:

- beim STREAM UP muss die Zeile für das 2. Relais so lauten:
    "cfgRelay3Onoff" => { "cmdId" => 17, "cmdFunc" => 254, "dirDest" => 1, "dirSrc" => 1, "needAck" => "true", "dest" => 2, "params.cfgRelay3Onoff" => "a[2]"},

- beim STREAM AC gibts auch 2 Relais, daher sollte die gleichen Sets und SetCmdCodes drin sein:
        "STREAM AC" => {
                "Adjustments" => {},
                "Gets" => {
                        "SolarGeneratedPower" => "",
                        "EnergyIndependence" => "",
                        "EnvironmentalImpact" => "",
                        "TotalSolarEnergySavings" => "",
                        "ElectricityConsumption" => "",
                        "Grid" => "",
                        "BatteryChargingDischargingPower" => ""
                },
                "Sets" => {
                        "cfgRelay2Onoff" => ":true,false",
                        "cfgRelay3Onoff" => ":true,false",
                        "cfgBackupReverseSoc"=> ":slider,3,1,95",
                        "cfgEnergyStrategyOperateMode.operateSelfPoweredOpen" => ":true",
                        "cfgEnergyStrategyOperateMode.operateIntelligentScheduleModeOpen" => ":true",
                        "cfgFeedGridMode" => ":1,2"
                },
                "GetCmdCodes" => {
                        "SolarGeneratedPower" =>                { "params.beginTime" => "a[1] a[2]" , "params.endTime" => "a[3] a[4]", "params.code" => "BK621-App-HOME-SOLAR-ENERGY-FLOW-solor-line-NOTDISTINGUISH-MASTER_DATA" },
                        "EnergyIndependence"  =>                { "params.beginTime" => "a[1] a[2]" , "params.endTime" => "a[3] a[4]", "params.code" => "BK621-App-HOME-INDEPENDENCE-PERCENT-FLOW-indep-progress_bar-NOTDISTINGUISH-MASTER_DATA" },
                        "EnvironmentalImpact" =>                { "params.beginTime" => "a[1] a[2]" , "params.endTime" => "a[3] a[4]", "params.code" => "BK621-App-HOME-CO2-WEIGHT-FLOW-impact-progress_arc-NOTDISTINGUISH-MASTER_DATA" },
                        "TotalSolarEnergySavings" =>            { "params.beginTime" => "a[1] a[2]" , "params.endTime" => "a[3] a[4]", "params.code" => "BK621-App-HOME-SAVING-CURRENCY-FLOW-earnings-progress_arc-NOTDISTINGUISH-MASTER_DATA" },
                        "ElectricityConsumption" =>             { "params.beginTime" => "a[1] a[2]" , "params.endTime" => "a[3] a[4]", "params.code" => "BK621-App-HOME-LOAD-ENERGY-FLOW-consumption-prop_arc-NOTDISTINGUISH-MASTER_DATA" },
                        "Grid" =>                               { "params.beginTime" => "a[1] a[2]" , "params.endTime" => "a[3] a[4]", "params.code" => "BK621-App-HOME-GRID-ENERGY-FLOW-grid_prop_bar-NOTDISTINGUISH-MASTER_DATA"},
                        "BatteryChargingDischargingPower" =>    { "params.beginTime" => "a[1] a[2]" , "params.endTime" => "a[3] a[4]", "params.code" => "BK621-App-HOME-SOC-ENERGY-FLOW-battery-prop_bar-NOTDISTINGUISH-MASTER_DATA"},
                },
                "SetCmdCodes" => {
                        "cfgRelay2Onoff" => { "cmdId" => 17, "cmdFunc" => 254, "dirDest" => 1, "dirSrc" => 1, "needAck" => "true", "dest" => 2, "params.cfgRelay2Onoff" => "a[2]"},
                        "cfgRelay3Onoff" => { "cmdId" => 17, "cmdFunc" => 254, "dirDest" => 1, "dirSrc" => 1, "needAck" => "true", "dest" => 2, "params.cfgRelay3Onoff" => "a[2]"},
                        "cfgBackupReverseSoc" => { "cmdId" => 17, "cmdFunc" => 254, "dirDest" => 1, "dirSrc" => 1, "dest" => 2, "needAck" => "true", "params.cfgBackupReverseSoc" => "a[2]" },
                        "cfgEnergyStrategyOperateMode.operateSelfPoweredOpen" => { "cmdId" => 17, "cmdFunc" => 254, "dirDest" => 1, "dirSrc" => 1, "dest" => 2, "needAck" => "true", "params.cfgEnergyStrategyOperateMode.operateSelfPoweredOpen" => "a[2]"},
                        "cfgEnergyStrategyOperateMode.operateIntelligentScheduleModeOpen" => { "cmdId" => 17, "cmdFunc" => 254, "dirDest" => 1, "dirSrc" => 1, "dest" => 2, "needAck" => "true", "params.cfgEnergyStrategyOperateMode.operateIntelligentScheduleModeOpen" => "a[2]"},
                        "cfgFeedGridMode" => { "cmdId" => 17, "cmdFunc" => 254, "dirDest" => 1, "dirSrc" => 1, "dest" => 2, "needAck" => "true", "params.cfgFeedGridMode" => "a[2]"}
                }
 
#19
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von peterboeckmann - 19 März 2026, 12:18:10
Hallo Heiko,

ich erinnere mich dunkel, dass man früher mal max. 16 Consumer definieren konnte. Aktuell können 20 Consumer definiert werden.
Gibt es einen technischen Grund für diese Begrenzung oder ließe sich die Grenze auch auf 30 erhöhen?

Wem die Flussgrafik oder die Legende damit zu unübersichtlich wird, der kann die Consumer dort ja einzeln ein- oder ausblenden.

Zitatnoshow   Verbraucher bzw. bestimmte Elemente ausblenden oder einblenden (optional). Die Werte können kombiniert werden (siehe Beispiel).
0 - der Verbraucher wird eingeblendet (default)
1 - der Verbraucher wird ausgeblendet
2 - der Verbraucher wird in der Verbraucherlegende ausgeblendet
3 - der Verbraucher wird in der Flußgrafik ausgeblendet
9 - das Schaltelement des Verbrauchers wird in der Verbraucherlegende ausgeblendet
[Device:]Reading - Reading im Verbraucher oder (optional) einem alternativen Device.
Hat das Reading den Wert 0 oder ist nicht vorhanden, wird der Verbraucher eingeblendet.
Die Wirkung der möglichen Readingwerte 1, 2 und 3 ist wie beschrieben.

Viele Grüße,
Peter
#20
Sonstige Systeme / Aw: FHEM-Integration von Tapo ...
Letzter Beitrag von Prof. Dr. Peter Henning - 19 März 2026, 12:16:36
Die Kamera gefällt mir immer besser. Ich hab damit wirklich einen ganzen Tag lang herumgespielt, jetzt kann ich alles Mögliche setzen.
Wie man die entsprechende Python-Umgebung einrichtet, steht schon im Wiki. Anbei eine Zahl von Python-Skripten, um Detektion, Motorsteuerung, Licht und Privatmodus zu steuern. Wichtig ist tapo_credentials.py, dort muss natürlich die eigene IP-Adresse der Kamera und das Cloud-Passwort hinein.

Das bash-Skript für die Snapshots steht komplett im Wiki.

Die Integration in FHEM ist eigentlich ganz easy, ich muss nur noch überlegen, wie ich die Readings sinnvoll benenne.

Ein Skript für Alarm etc. kommt noch

Na, und wenn dann alles läuft und ausgetestet ist, kann ich aus dem Python-Zeug die passenden Methoden abgreifen und direkt über HTTPMOD gehen. Das sind nämlich alles nur REST-Calls. Dafür muss nur jeweils spätestens all 10 Minuten eine neue login-Prozedur auf der Kamera ausgeführt werden, um ein aktuelles Token zu holen, das bei den REST-Calls mit übergeben wird.

LG

pah

Zitat von: CQuadrat am 19 März 2026, 08:41:42Aber dann darf die Kamera nur noch im eigenen Netz bleiben.
Das "darf" kannst Du ja mit den chinesischen Herstellern besprechen...