76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

Begonnen von DS_Starter, 11 Februar 2024, 14:11:00

Vorheriges Thema - Nächstes Thema

peterboeckmann

Hallo Heiko,

wäre dann folgendes auch denkbar, damit der Skimmer bis max. 19 Uhr läuft?

attr SolarForecast consumer16 HM_56E0D2_Sw_02
type=other
power=40
on=on
off=off
auto=Automatik
icon=debian
mode=can
mintime=570
interruptable=1
notbefore=09:30
locktime=300:300

viele Grüße,
Peter
MQTT,Modbus,HTTPMod,DbLog,LaCrosse,SolarForecast,TelegramBot,Twilight,vitoconnect,withings
fhem,fhempy,debmatic
Debian
RaspberryPi5,HomeMatic,HomeMaticIP,Shelly,JeeLink,SignalDuino,ZWDongle,SONOS,alexa,Hue,tradfri,MobileAlerts,Siemens Home Connect,Roborock S50,Wallbox,Harmony,Tuya Smartlife

DS_Starter

Das erfüllt deine Bedingung nicht unbedingt.
notbefore=09:30 bedeutet auch eine mögliche Einplanung erst ab 11:00 je nach Lage.

Wenn 19:00 ein fester Anschlag ist, dann stelle ihn ein wie vorhin gezeigt und setze noch den Schüssel swoffcond. Ist die Bedingung erfüllt, stoppt der Consumer vorfristig.
Ich kann dir noch einen Vorschlag machen wie er definiert werden könnte, aber erst heute Abend.

LG
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

@Peter, ich hatte doch schon etwas Zeit. Hier wäre ein Ansatz.

Wir brauchen zuerst ein Steuerreading für den Abbruch des Consumers.
Diesen kleinen Code fügst du in Attr ctrlUserExitFn ein:

{
  my $dt   = timestringsFromOffset ($name, time, 0);
  my $hour = int $dt->{hour};
  my $val  = 0;
 
  if ($hour >= 19) { $val = 1;}
 
  storeReading ('userFn_Stop19', $val);
}


In deinem SF-Device wird damit ein Reading userFn_Stop19 angelegt mit dem Inhalt "0" vor 19:00 und mit "1" ab 19:00 bis 24:00.
timestringsFromOffset ist eine Funktion in SF, die hier die aktuelle Stunde (nicht Stunde des Tages) zurückgibt, also 16 wenn es gerade 16:25 ist.

Jetzt setzt du in dem Consumer zusätzlich diesen Schlüssel:

 swoffcond=SF-Device:userFn_Stop19:1
 
SF-Device ist der Name deines SF-Devices.
Sobald das geprüfte Reading userFn_Stop19 den Wert "1" enthält, stoppt der Zyklus des Consumers unabhängig wie lange er ohne diese Stopp-Condition noch hätte laufen sollen.
Das kann man auch noch mit Minuten verfeinern, nur erstmal das Prinzip.
Damit hast du immer ein festes Ende.
Proxmox+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

peterboeckmann

Hallo Heiko,

dankeschön dafür!

Noch eine Rückfrage: notafter kann dann raus, notbefore bleibt aber drin?

HM_56E0D2_Sw_02
type=other
power=40
on=on
off=off
auto=Automatik
icon=debian
mode=can
mintime=SunPath:60:-60
interruptable=1
notbefore=09:30
locktime=300:300
swoffcond=SolarForecast:userFn_Stop19:1

Oder soll notafter wie vorher auf 19:00 stehen?

Viele Grüße,
Peter
MQTT,Modbus,HTTPMod,DbLog,LaCrosse,SolarForecast,TelegramBot,Twilight,vitoconnect,withings
fhem,fhempy,debmatic
Debian
RaspberryPi5,HomeMatic,HomeMaticIP,Shelly,JeeLink,SignalDuino,ZWDongle,SONOS,alexa,Hue,tradfri,MobileAlerts,Siemens Home Connect,Roborock S50,Wallbox,Harmony,Tuya Smartlife