76_SolarForecast - Informationen/Ideen zu Weiterentwicklung und Support

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

Vorheriges Thema - Nächstes Thema

DS_Starter

#1095
Nabend Gisbert,

ja wie ich im verlinkten Hinweis (#1065) geschrieben hatte, kann es nötig sein die persönliche Einstellung mit dem Attr flowGraphicSize wieder anzupassen. Wenn man die Verschiebung nutzt, dann ebenfalls mit flowGraphicShift justieren.

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

Gisbert

Hallo Heiko,

danke für den Hinweis, an den ich mich in der Zwischenzeit wieder erinnert hatte. Mit beiden Attributen kann man die Größe und Position der Flow-Grafik nach seinen Wünschen anpassen.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

DS_Starter

Das Sonnensymbol wird nun nach dem Sonnenuntergang durch ein Mondphasensymbol ersetzt.
Morgen wird sich zeigen ob die Sonne wieder in der Grafik auftaucht.  ;)

Liegt im contrib.
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

kask

Die Sonne muss da eigentlich weg. Ich habe aber nix brauchbares gefunden ausser eventuell für das Haus "virtualbox" oder "virtualbox-alt" und die Sonne fand ich das "measure_photovoltaic_inst" eigentlich besser.
So ganz zufrieden bin ich aber nicht mit den vorhandenen icons.
Vieleicht kann man die anpassbar machen?

DS_Starter

#1099
ZitatVieleicht kann man die anpassbar machen?
Das ist eigentlich der Plan hinter den Ersetzungen, dass der User sich die Standardsymbole für Sonne (Mond würde ich lassen wenn es Nacht ist) und das "Haus" ersetzen kann nach seinem Gusto. Das ist im Prinzip kein Problem.
Habe beim Testen nur festgestellt, dass die Auflösungen der FHEM Icons u.U. voneinander abweichen. Das führt zu Verschiebungen der Icons innerhalb der Grafik.
Das passiert auch wenn man die Größe anpassbar gestaltet (hatten wir erst kürzlich). Auch das wäre jetzt kein Problem außer die resultierenden Lageänderungen. Weiß nicht ob/wie man das in den Griff bekommt.
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

@DS_Starter:

Falls du eine simple Datenquelle für tägliche aktuelle Tibberpreise suchst.....(Thema dynamische Strompreise)
Du benötigst hierzu keinerlei Zugangsdaten!
Dafür kommen die Daten dann auch erst am Morgen so ab 5-7 Uhr aktualisiert dort herein und es sind immer nur die vom aktuellen Tag


Gruß
300P


defmod jm_TibberohneVertrag JsonMod https://tibber.com/de/api/lookup/price-overview?postalCode=hier-deine-PLZ-eintragen
attr jm_TibberohneVertrag comment cron interval  1 Stunde  - zu jeder vollen Stunde - 0 * * * *
attr jm_TibberohneVertrag group TibberohneVertrag
attr jm_TibberohneVertrag interval 0 * * * *
attr jm_TibberohneVertrag readingList complete();;
attr jm_TibberohneVertrag room 025_Tibber
attr jm_TibberohneVertrag verbose 2
FHEM 6.3 - Raspberry Pi 3 / Pi 4 - VControl300 mit VITOVALOR 300P - SMAEM - SMAInverter - DbLog/DbRep - MariaDB/QNAP - div. HTTPMOD - div. Modbus ser+TCP - SolarForecast - keine Batterieladung mehr mit SMA-SBS25 / LG Resu10H

DS_Starter

@all,

in meinem contrib liegt eine Weiterentwicklung.
Attr setupInverterDev  -> das Icon und Farbe des Inverters kann jetzt mit dem Key icon=<Icon>[@<Farbe>] angepasst werden.

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

Gisbert

#1102
Zitat von: 300P am 05 Oktober 2024, 11:03:33@DS_Starter:

Falls du eine simple Datenquelle für tägliche aktuelle Tibberpreise suchst.....(Thema dynamische Strompreise)
Du benötigst hierzu keinerlei Zugangsdaten!
Dafür kommen die Daten dann auch erst am Morgen so ab 5-7 Uhr aktualisiert dort herein und es sind immer nur die vom aktuellen Tag


Gruß
300P


defmod jm_TibberohneVertrag JsonMod https://tibber.com/de/api/lookup/price-overview?postalCode=hier-deine-PLZ-eintragen
attr jm_TibberohneVertrag comment cron interval  1 Stunde  - zu jeder vollen Stunde - 0 * * * *
attr jm_TibberohneVertrag group TibberohneVertrag
attr jm_TibberohneVertrag interval 0 * * * *
attr jm_TibberohneVertrag readingList complete();;
attr jm_TibberohneVertrag room 025_Tibber
attr jm_TibberohneVertrag verbose 2


Hallo 300P,
echt cool, und es funktioniert (nur der Devicename des Attributs comment ist falsch).

Nur um sicherzustellen:
energy.todayHours.11.priceIncludingVatIst das der Bruttopreis (inkl. Strompreis, Netzentgelt, Steuern, ...), den man bei Tibber für die jeweilige Stunde zahlen muss (hier also 11:00 bis 12:00)?

Viele Grüße Gisbert

Edit:
Nachfrage, wie verhält es sich mit den monatlichen Grundgebühren, Zählermieter, -ablesung, ...?
Edit2:
korrigiert im Zitat von 300P: "attr jm_TibberohneVertrag comment"
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

300P

Hallo Gisbert,

Danke für den Hinweis  8) - habs korrigiert.
Bitte korrigier es besser auch im Beitrag / dem Zitat von Dir noch an dieser Stelle.


Der Rest ist zwar hier OT...:
OT ON:
In dem jeweiligen Reading "energy.todayHours.xy.priceIncludingVat" ist alles enthalten was je kWh in dieser Stunde und für diese PLZ bei Tibber berechnet werden würde.
In den Reading "monthlyFees.price....." erklärt sich was (für diese PLZ) so an monatlichen Zuschlägen erfolgen würde.
Auch die anderen Readings (alles auf die jeweilige PLZ bezogen) zeigen dir nach Namen gruppiert in etwa wofür "sie" stehen.(inklusive Jahrespreisvergleich mit 3 anderen Stromlieferanten  ;D )
OT OFF:

Gruß
300P
FHEM 6.3 - Raspberry Pi 3 / Pi 4 - VControl300 mit VITOVALOR 300P - SMAEM - SMAInverter - DbLog/DbRep - MariaDB/QNAP - div. HTTPMOD - div. Modbus ser+TCP - SolarForecast - keine Batterieladung mehr mit SMA-SBS25 / LG Resu10H

DS_Starter

#1104
@kask,
wegen der FHEM Icon-Größen. Ich habe mir mal drei relevante SVG Icon Vertreter angeschaut.
Alle drei haben verschiedene Größen für width und height in ihrem Code. (Anhang)
Ich habe aktuell keine Ahnung wie man es auf ein identisches Level bringen könnte. Man müßte im Prinzip im SVG-Code des Icons selbst eine Anpassung vornehmen.
Vllt. geht sowas, habe aber keine Idee.
Vllt. doch, die SVG-Datei kann man ja als Text lesen.

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

kask

Du mustest die skalierung anpassen anhand der Icon größe. Hier 0.15 = 15%.

So ca. Zeile 14102
          $ret .= '<g id="producer_'.$prnxnum.'" fill="grey" transform="translate('.$pos_left.',0),scale(0.15)">';
          $ret .= "<title>$palias</title>".FW_makeImage($picon, '');



Du Könntest dir aus dem dem generierten Text der FW_makeImage Funktion die Größe extrahieren und dann die skalierung jedesmal auf das icon abstimmen.

so um den dreh:

          my $icontxt = FW_makeImage($picon, '');   

          my $iconscale = meine_super_func_um_die_img_size_zu_extrahieren($icontxt, desired_width, desired_heigth); //regex liegt dir mehr wie mir.
     
          $ret .= '<g id="producer_'.$prnxnum.'" fill="grey" transform="translate('.$pos_left.',0),scale('.$iconscale.')">';
          $ret .= "<title>$palias</title>".$icontxt;



kask

Ich hab mir das mal angeguggt.

Man müßte auf eine Höhe von 470px am icon kommen. Davon 10% im flow. Also skalierung 0.1.

Bei einem 250px hohen Icon wäre das: (470/250)*0.1 = 0.19
Bei einem 500px hohen icon wäre das: (470/500)*0.1 = 0.09

sollte so ca. passen.


DS_Starter

Das wäre ein Ansatz.
Leider haben die Icons ganz unterschiedliche Einheiten, es gibt px, pt und auch mm.
Ich hatte mir vorgestelt es gäbe in SVG eine css Funktonalität nicht nur für viewBox, sondern auch für <g> Elemente. Scheint aber nicht so zu sein.
Experimentiere gerade mit foreignObject, klappt aber auch nicht so wie ich es erwarte.

Ich schau mal ob ich mit deiner Variante weiterkomme.
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

Gisbert

Hallo Heiko,

mir ist noch eine kleine Ungereimtheit bei der Tabelle aufgefallen.
Oberhalb der Tabelle ist verhältnismäßig viel ungenutzer Platz.
Der Bereich scheint aus 2 Teilfeldern zu bestehen. Ich hab 2 Screenshots angehängt, hoffentlich kann man halbwegs erkennen, was ich meine.
Am liebsten wäre mir, wenn dieser Bereich minimal klein gehalten werden könnte.

Viele Grüße Gisbert

Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | tuya local | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY | DEYE | JK-BMS | ESPHome

kask

ich probiere auch gerade, so funktioniert es mit pt values.

für pt:
sub geticonscale($) {
  my ($svgstr) = @_;
  if ($svgstr =~ /height="(\d+)pt"/) {
    return sprintf("%.2f", 47/$1);
  } else {
    return 0.1;
  }
}

im sub _flowGraphic  call
  if ($flowgprods) {
      if ($producercount % 2) {
          $producer_start = 350 - ($consDist  * (($producercount -1) / 2));
      }
      else {
          $producer_start = 350 - (($consDist / 2) * ($producercount-1));
      }

      $pos_left = $producer_start + 25;
     
      for my $prnxnum (@producers) {
          my $palias = CurrentVal ($hash, 'aliasp'.$prnxnum, 'Producer'.$prnxnum);
          my $picon  = __substituteIcon ( { hash  => $hash,                                    # Icon des Producerdevices
                                            name  => $name,
                                            pn    => $prnxnum,
                                            pcurr => $ppcurr->{$prnxnum}
                                          }
                                        );
          $icontxt = FW_makeImage($picon, '');
          $iconscale = geticonscale($icontxt);
          ##$iconscale = 0.15;
          $ret .= '<g id="producer_'.$prnxnum.'" fill="grey" transform="translate('.$pos_left.',0),scale('.$iconscale.')">';
          $ret .= "<title>$palias</title>".$icontxt;
          $ret .= '</g> ';

          $pos_left += $consDist;
      }
  }