76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

300P

Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast| DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP| ESP32_AI_on_the_Edge|ESP32CAM usw.

DS_Starter

#6601
Achso, dann ist es klar. Schaue ich morgen mal um die dynamischen Icons auch im Consumerpaneel einzubauen.
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

300P

Ah ---- dann ist das der "Notanker".
Ich wollte nicht das das Icon von 2 Seiten geliefert wird.
Oder oben ist das "Device" - Icon
Unten sieht man das "Status"-Icon ;)

Bei dir aber genau anders herum :)
Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast| DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP| ESP32_AI_on_the_Edge|ESP32CAM usw.

DS_Starter

Ich hatte es bisher in dem Consumerpaneel statisch belassen. Muß ich mal sehen. Es soll nur zur Orientierung dienen um einen Consumer schnell zu finden wenn viele definiert sind.

ZitatBei dir aber genau anders herum :)
Ja, die Reihenfolge kann man verändern.  ;)
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

#6604
Moin zusammen,

nochmal zurück zu den Icons im Consumerpaneel. Zur Zeit wird dort das für den Consumer angegebene Icon (Schlüssel consumerXX->icon) statisch angezeigt.
Das Icon kann ich nun ebenso wie in der Flußgrafik via opmodeIcon dynamisieren.
Wenn die dynamische Anpassung über opmodes umgesetzt wird, wären konsequenterweise auch die on/off-Zustände wie in der Flowgrafik in dem Consumerpaneel abzubilden. Also wenn statisch -> immer statisch, wenn dynamisch -> immer dynamisch.

Vorteil:
Man sieht eine Konsistenz zwischen Consumerpaneel und Flußgrafik. Da auch nicht jeder die Flußgrafik anzeigt, wird der opmode und der Gerätestatus der WP/Consumer über das Consumerpaneel sichtbar.

Nachteil:
Die beabsichtigte schnelle Identifikation des Consumers im Consumerpaneel über das Icon könnte bei dynischer Anpassung leiden, auch weil dann die Icons wie in der Flußgrafik teilweise grau dargestellt werden.


Ich selbst bin mir noch etwas unschlüssig. Um eine bessere Entscheidungsgrundlage zu haben, würde ich eine Testversion bauen, die die Icons im Consumerpaneel dynamisiert.
Wenn es gefällt lasse ich es so. Wenn nicht, bleibt es bei der aktuellen Variante.

LG,
Heiko
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

300P

Ich wär dafür das die aktuelle Lösung :

 - Keine Dynamik beim Consumerpanel
icon=sani_heating_heatpump    + evtl. Farbangabe @orange

 - Optional nutzbare Dynamik bei der Flußgrafik wenn opmodeIcons genutzt werden
opmodeIcons="heating->sani_heating_heatpump@red,
              cooling->sani_heating_heatpump@blue,
              hotwater->sani_heating_heatpump@deeppink,
              defrost->sani_cooling_temp@orange,
              off->air_water_heating_pump@grey"

so bleibt.

Einen klaren Hinweis dazu das dies optional nur bei heatpump möglich ist und auch nur für die Anzeige in der Flußgrafik wirkt

Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast| DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP| ESP32_AI_on_the_Edge|ESP32CAM usw.

DS_Starter

Danke 300P ... dennoch habe ich uns eine Testversion mit dynamisierten Consumerpaneel im contrib bereitgestellt.
Bei mir sieht man die Wirkung wie angehängt.

Vielleicht ist es ja doch hilfreich und gefällt ... ? Könnt ihr gerne mal ausprobieren.

LG,
Heiko
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

300P

PS:
Ich hab meinen Codeschnipsel für die dynamische Icons wieder entfernt. O:-)
SF-intervall-Laufzeit wird ca 0.3 -.5 Sekunden länger ->>> bei 7 "Wechselicons" und - schlimmer - SMA-WR haben Broadcast-Empfangsprobleme durch den langen Intervall...
Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast| DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP| ESP32_AI_on_the_Edge|ESP32CAM usw.

DS_Starter

Das kommt vermutlich durch die Schreibvorgänge via Setter attrKeyVal wenn diese Änderungen mit sehr kleinen Intervallen ständig durchgeführt werden, oder der Guard (gesetztes Icon ist vs. neues Icon soll) nicht funktioniert und dadurch sinnlose Änderungsprozesse durchgeführt werden.

Entweder nochmal prüfen oder auf CommandAttr zurückgehen und das rote Fragezeichen akzeptieren als Variante.
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

300P

Gruß
300P

FHEM 6.4|RPi|SMAEM|SMAInverter|SolarForecast| DbLog|DbRep|MariaDB|Buderus-MQTT_EMS|
Fritzbox|fhempy|JsonMod|HTTPMOD|Modbus ser+TCP| ESP32_AI_on_the_Edge|ESP32CAM usw.

Burny4600

#6610
Ich habe einige Fragen zu den aktuellen ICON-Definitionen und Status-Ausgaben.

1. Zur Steuerung eines Pools.
Es gibt ja die Erweiterung opmode mit pool oder poolheating. Nur gibt es dazu keinen passenden Typ, darum ist die Definition type=other.
Mit der Definition type=other funktioniert aber keine opmode Funktion.

2. Parameter consumerXX swstate.
Muss das swstate Reading state heissen? Wenn ich eine anderes Reading für den Status heranziehe, wird beim consumerXX state='unknown' ausgegeben, was zur Folge hat, dass der Status nicht angezeigt wird.
Ebenso wird bei den definierten Energiezähler, die keinen swstate Parameter benötigen, state='unknown' bei den Readings ausgegeben.

3. Bei dem consumern01 Wärmepumpe werden bei mir keine ICONS in den beiden Übersichten ausgegeben.
Das Device HZG_WPD hat die Readings
opmode für heating, off bzw. EIN und AUS
Active_Power__W
Active_Energy_Day__kW

Der Consumer ist mit
HZG_WPD:Wärmepumpe
aliasshort=Heizung-WP
auto=0
etotal=Active_Energy_Day__kWh:kWh
exconfc=2
icon=sani_heating_heatpump
off=AUS
on=EIN
opmode=HZG_WPD:opmode
opmodeIcons="heating->sani_heating_heatpump@red,
             hotwater->sani_heating_heatpump@deeppink,
             off->sani_heating_heatpum@grey"
mode=mustNot
modulation=100
pcurr=Active_Power__W:W:30
power=3000
swstate=opmode:EIN:AUS
type=heatpump
definiert.

Das Attribut ctrlUserExitFn ist für die consumerXX mit den ICONS laut Mustervorgabe definiert.
my $mySelf = "Forecast";

# 1. Die zweistellige Consumer Nummer und die Wunsch-Icons eintragen
 my @myConsumers = (
                    { num => "01", icon_off => "sani_heating_heatpump\@grey", icon_on => "sani_heating_heatpump\@orange" },
                    { num => "15", icon_off => "sani_heating_heatpump\@grey", icon_on => "sani_heating_heatpump\@cyan" },
                    { num => "16", icon_off => "sani_heating_heatpump\@grey", icon_on => "sani_heating_heatpump\@cyan" },
                    );

# 2. Schleife nutzt direkt die internen Modul-Funktionen
 foreach my $c (@myConsumers)
  {
    my $id = "consumer" . $c->{num};

    # Werte direkt via ConsumerVal aus dem Modulspeicher lesen
    my $power    = ConsumerVal($mySelf, $id, "currpower", 0);
    my $threshold = ConsumerVal($mySelf, $id, "powerthreshold", 0);
    my $current  = ConsumerVal($mySelf, $id, "icon", "");

    # Ziel-Icon anhand des gelesenen Schwellenwerts bestimmen
    my $target = ($power <= $threshold) ? $c->{icon_off} : $c->{icon_on};

    # Nur umschalten, wenn sich der Zustand tatsächlich geändert hat
    if ($current ne $target) {
                              fhem("set $mySelf attrKeyVal $id icon=$target");
                              Log3($mySelf, 2, "$mySelf - $id Icon-Wechsel auf $target (Leistung: $power W / Schwelle: $threshold W)");
    # Log später mal abschalten nicht vergessen - oder auf 3 setzen :)
                            }
  }
Wird diese Definition überhaupt noch benötigt, wenn es den Parameter opmodeIcons gibt?

Ich finde aber leider keinen Fehler für die benötigte Konfiguration.
LG Chris

Raspberry Pi 2-5 => Jessie, Bullseye, Bookworm, Trixie
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Davis, Eastron, FS20, Homematic, IT, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, SkyWind, TEK603

DS_Starter

Zitat1. Zur Steuerung eines Pools.
Es gibt ja die Erweiterung opmode mit pool oder poolheating. Nur gibt es dazu keinen passenden Typ, darum ist die Definition type=other.
Mit der Definition type=other[/ b] funktioniert aber keine opmode Funktion.
Die Betriebsmodi (opmode) beziehen sich auf Wärmepumpen, d.h. type=heatpump. Diese Geräte können einen Betriebsmodus "pool" bzw. "poolheating" haben.

ZitatMuss das swstate Reading state heissen?
Nein muß es nicht. Es kann ein anderes Reading in dem ConsumerXX-Device sein. Wenn state='unknown' ausgegeben wird, matcht weder der angebene Regex für "on" noch der Regex für "off". Die Regex wären zu überprüfen.
Oftmals werden Probleme durch Angabe von .*on.*  bzw. .*off.*  vermieden.

Zitat3. Bei dem consumern01 Wärmepumpe werden bei mir keine ICONS in den beiden Übersichten ausgegeben.
...
Das Attribut ctrlUserExitFn ist für die consumerXX mit den ICONS laut Mustervorgabe definiert.
Nimm den Code aus ctrlUserExitFn heraus. Der ist nicht nötig und war nur ein Codebeispiel von 300P. Die eingebauten Logiken bzgl. opmode-Icons brauchen diese Ergänzung nicht.
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

Burny4600

Zitat von: DS_Starter am 05 Juli 2026, 14:02:55Die Betriebsmodi (opmode) beziehen sich auf Wärmepumpen, d.h. type=heatpump. Diese Geräte können einen Betriebsmodus "pool" bzw. "poolheating" haben.......................

Danke für die Infos.
opmode war eine falsche Annahme wegen pool und poolheating da bei mir alles um den Pool Solarthermie ist, und nur die Verbraucher rund um den Pool in SF eingebunden sind.

ctrlUserExitFn hat sich erledigt. Code aus ctrlUserExitFn entfernt. Ein Leerzeichen wurde als Fehlerursache gefunden.

swstate habe ich anders als bisher gelöst, wodurch es jetzt einen eindeutigen Status gibt.

Somit ist alles benötigte nun für V2.8.1 fitt.

LG Chris

Raspberry Pi 2-5 => Jessie, Bullseye, Bookworm, Trixie
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Davis, Eastron, FS20, Homematic, IT, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, SkyWind, TEK603