SMA Sunny Home Manager abfragen.

Begonnen von Brun, 07 Oktober 2014, 10:40:34

Vorheriges Thema - Nächstes Thema

blueberry63

Habe die Register-Liste schon gefunden. Aber die Implementierung scheint mir ja nicht ganz trivial zu sein. Ein Beispiel wäre da nicht schlecht...
FHEM auf BBB mit Wheezy: 1x CUL_HM_HM_SCI_3_FM, 1x INSTAR CAM3010, 1x HM-LC-SW1-PL2, 1x HM-LC-Bl1PBU-FM, 1x HM-Sen-MDIR-O, Viessmann Heizung, Gaszähler via GPIO, Klingel via HM-LC-Bl1PBU-FM an FBox, Mailcheck, AVR, XBMC, NanoCUL 433+668 an Raspi per Ethernet, Funksteckdosen (Pollin, IT), Automower

Wzut

ist hier OT aber ganz easy wenn man die SMA Register Liste hat
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

DS_Starter

So, hatte tatsächlich noch die alte widget_smaportalspg.js im contrib. Ist jetzt aktualisiert.
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

Die neue Version SMAPortal 2.4.1 befindet sich im contrib.
Diese Version ersetzt Leerzeichen in den Verbrauchernamen wie erforderlich für den Readingnamen (und die DRop-Down-Liste).
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

Xguide

Guten Morgen Heiko,

habe sowohl das fhem Modul als auch das ftui Widget aktualisiert.
Alles auf dem neuesten Stand, alles scheint wie zuvor zu laufen, zumindest in meiner Konfiguration.

Bzgl. widget_smaportalspg.js und dem Nachladen der CSS Informationen. Mir fällt auf, das ich bei einem Page-Refresh des tabui erst einmal die Icons in MEGA groß angezeigt bekomme, dann augenscheinlich das css gefunden wird und noch einmal neu gerendert wird. Kann das jemand bestätigen? Das Endergebnis ist gut, aber das Verhalten beim Laden ist eher unschön.

Habe in 76_SMAPortal.pm immer noch meine händischen Anpassungen drin, bzw. wieder eingepflegt, die den Header bei kleinen Ausgaben verkleinert und in einer Tabelle anzeigt. Ferner habe ich für tabui den Link und Last Update rausgenommen. Damit fügt es sich optisch gut in mein bestehendes tabui Layout.
Hier sollten wir aber versuchen einen generischen Ansatz zu finden und es nicht so stümperhaft implementieren wie ich es momentan tue :-)


if ($header) {
      my ($h1,$h2);
  if(AttrVal("global","language","EN") eq "DE") {
  my ($year, $month, $day, $hour, $min, $sec) = $lup =~ /(\d+)-(\d\d)-(\d\d)\s+(.*)/;
  $lup  = "$3.$2.$1 $4";
  $lupt = "letzte Aktualisierung:";
  }
  if($maxhours > 15) {
  if(AttrVal("global","language","EN") eq "DE") {
  $h1 = "Prognose [pv] - nächste 4 Stunden: $pv4h / Rest des Tages: $pvRe / Morgen: $pvTo";
  $h2 = "Prognose [co] - nächste 4 Stunden: $co4h / Rest des Tages: $coRe / Morgen: $coTo";
  } else {
  $h1 = "forecast data [pv] - next 4 hours: $pv4h / rest of day: $pvRe / tomorrow: $pvTo";
  $h2 = "forecast data [co] - next 4 hours: $co4h / rest of day: $coRe / tomorrow: $coTo";
  }
      } else { #MS: für kleine Darstellungen, Bsp. HourCount = 13 für die Anzeige im tabui
  if(AttrVal("global","language","EN") eq "DE") {
  #MS: Ansatz durch Abkürzungen
  #$h1 = "Prognose[pv]: nächste 4h:$pv4h / Rest Heute:$pvRe / Morgen:$pvTo";
  #$h2 = "Prognose[co]: nächste 4h:$co4h / Rest Heute:$coRe / Morgen:$coTo";
  #MS: Ansatz durch Tabelle
  $h1  = '<table align="center">';
  $h1 .= "<tr><td><b>[pv]</b>&nbsp;nächste&nbsp;4h:</td><td align=right>$pv4h</td><td>Rest&nbsp;Heute:</td><td align=right>$pvRe</td><td>Morgen:</td><td align=right>$pvTo</td></tr>";
  $h2  = "<tr><td><b>[co]</b>&nbsp;nächste&nbsp;4h:</td><td align=right>$co4h</td><td>Rest&nbsp;Heute:</td><td align=right>$coRe</td><td>Morgen:</td><td align=right>$coTo</td></tr>";
  $h2 .= "</table>";
  } else {
  #MS: Ansatz durch Abkürzungen
  #$h1 = '<div align="left">';
  #$h1 .= "<b>[pv]</b>&nbsp;next&nbsp;4h:$pv4h&nbsp;/ rest&nbsp;today:$pvRe&nbsp;/ tomorrow:$pvTo";
  #$h2 = "<b>[co]</b>&nbsp;next&nbsp;4h:$co4h&nbsp;/ rest&nbsp;today:$coRe&nbsp;/ tomorrow:$coTo</div>";
  #MS: Ansatz durch Tabelle
  $h1  = '<table align="center">';
  $h1 .= "<tr><td><b>[pv]</b>&nbsp;next&nbsp;4h:</td><td align=right>$pv4h</td><td>rest&nbsp;today:</td><td align=right>$pvRe</td><td>tomorrow:</td><td align=right>$pvTo</td></tr>";
  $h2  = "<tr><td><b>[co]</b>&nbsp;next&nbsp;4h:</td><td align=right>$co4h</td><td>rest&nbsp;today:</td><td align=right>$coRe</td><td>tomorrow:</td><td align=right>$coTo</td></tr>";
  $h2 .= "</table>";
  }
  }

      $lup = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;($lupt $lup)";
      if ($type eq 'pv') {
          $header = $dlink.' '.$lup.' <br/>'.$h1;
      } elsif ($type eq 'co') {
          $header = $dlink.' '.$lup.' <br/>'.$h2;
      } elsif ($type eq 'pvco') {
  $header = $dlink.' '.$lup.' <br/>'.$h1.'<br/>'.$h2;
          if ($maxhours < 15) {
$header = $h1.$h2;
  }
      } else {
          $header = $dlink.' '.$lup.' <br/>'.$h1.'<br/>'.$h2;
      }
  }


FHEM 5.9 - Intel NUC i3 mit Proxmox im Stretch Container
HomeMatic - VCCU mit 2 x HM-LAN-CFG
Module: SMA Peripheries - Sonos - IPCam(s) - Philips Hue - Sprinkler - TabletUI - DBlog -

DS_Starter

Moin Marcel,

ZitatBzgl. widget_smaportalspg.js und dem Nachladen der CSS Informationen. Mir fällt auf, das ich bei einem Page-Refresh des tabui erst einmal die Icons in MEGA groß angezeigt bekomme, dann augenscheinlich das css gefunden wird und noch einmal neu gerendert wird. Kann das jemand bestätigen? Das Endergebnis ist gut, aber das Verhalten beim Laden ist eher unschön.
Ja, ist bei mir auch so und ist bedingt durch die Verankerung des css im js. Ich bin da jetzt nicht der Spezi. Wenn jemand weiß wie es besser geht dann bitte nicht hinter dem Berg halten.  ;)

Deine Erweiterung sehe ich mir heute Abend an und baue es konform in das Modul ein.

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

Wzut

Zitat von: Xguide am 02 Juli 2019, 09:58:48
Habe in 76_SMAPortal.pm immer noch meine händischen Anpassungen drin
ja mir ist klar das ich hier noch eine Bringschuld habe ... aber zum einen verläuft es z.Z. mit der freien Zeit nicht ganz so wie ursprünglich erwartet und dann sollte man das auch nicht an einer fixen Grenze ( wie z.B. 13 ,das mag für dich optimal passen) festmachen sondern hier müssen IMHO Zeichen gezählt werden und auf Grund der zu erwartenden Ausgabebreite die Entscheidung in die eine oder andere Richtung gelenkt werden.
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

DS_Starter

@Wzut, wollten wir die Tabelle im Header und eine Kürzung nicht generell implementieren, also unabhängig vom den anzuzeigenden Stunden /Spalten ?
Bin grad etwas verwirrt ...  ???
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

Wzut

Zitat von: DS_Starter am 02 Juli 2019, 11:40:21
@Wzut, wollten wir die Tabelle im Header und eine Kürzung nicht generell implementieren
das wäre mein Favorit, mir war aber unklar wie du dazu stehst
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

Xguide

Zitat von: Wzut am 02 Juli 2019, 11:32:09
....dann sollte man das auch nicht an einer fixen Grenze ( wie z.B. 13 ,das mag für dich optimal passen) festmachen sondern hier müssen IMHO Zeichen gezählt werden und auf Grund der zu erwartenden Ausgabebreite die Entscheidung in die eine oder andere Richtung gelenkt werden.

Da bin ich voll uns ganz bei dir, ich habe da nur keine Aktivitäten reingesteckt weil du dich der Sache annehmen wolltest. Ich habe meine Implementation extra als stümperhaft tituliert und gesagt, dass es so bei mir passt. Den Wunsch nach einem generischem Ansatz und damit meinte ich genau das "hours < 15", wurde geäussert...

Vorschlag: Vielleicht kann man ja zusätzlich ein Attribut spendieren, in dem der maximale header rowcount angegeben wird?
FHEM 5.9 - Intel NUC i3 mit Proxmox im Stretch Container
HomeMatic - VCCU mit 2 x HM-LAN-CFG
Module: SMA Peripheries - Sonos - IPCam(s) - Philips Hue - Sprinkler - TabletUI - DBlog -

DS_Starter

Also ich würde gerne generell den Header als Tabelle darstellen und entsprechend einkürzen.
Wzut sieht das auch so.
Bin der Meinung das macht Sinn und warum sollte man es komplizierter als nötig machen.
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

Xguide

Zitat von: DS_Starter am 02 Juli 2019, 12:33:46
Also ich würde gerne generell den Header als Tabelle darstellen und entsprechend einkürzen.
Wzut sieht das auch so.
Bin der Meinung das macht Sinn und warum sollte man es komplizierter als nötig machen.

Habe ich so verstanden und könne im ersten groben Entwurf so aussehen...

  if ($header) {
#modify link and update timestamp row for DE localization
if(AttrVal("global","language","EN") eq "DE") {
my ($year, $month, $day, $hour, $min, $sec) = $lup =~ /(\d+)-(\d\d)-(\d\d)\s+(.*)/;
$lup  = "$3.$2.$1 $4";
$lupt = "letzte Aktualisierung:";
}

$header = '<table align="center">';
$header .= '<tr><td colspan="2" align="left"><b>['.$dlink.']</b></td><td colspan="4" align="right">'.$lupt."&nbsp;".$lup.'</td></tr>';
if(AttrVal("global","language","EN") eq "DE") {
$header .= "<tr><td><b>[pv]</b>&nbsp;nächste&nbsp;4h:</td><td align=right>$pv4h</td><td>Rest&nbsp;Heute:</td><td align=right>$pvRe</td><td>Morgen:</td><td align=right>$pvTo</td></tr>";
$header  = "<tr><td><b>[co]</b>&nbsp;nächste&nbsp;4h:</td><td align=right>$co4h</td><td>Rest&nbsp;Heute:</td><td align=right>$coRe</td><td>Morgen:</td><td align=right>$coTo</td></tr>";
}else {
$header .= "<tr><td><b>[pv]</b>&nbsp;next&nbsp;4h:</td><td align=right>$pv4h</td><td>rest&nbsp;today:</td><td align=right>$pvRe</td><td>tomorrow:</td><td align=right>$pvTo</td></tr>";
$header .= "<tr><td><b>[co]</b>&nbsp;next&nbsp;4h:</td><td align=right>$co4h</td><td>rest&nbsp;today:</td><td align=right>$coRe</td><td>tomorrow:</td><td align=right>$coTo</td></tr>";
}
$header .= "</table>";  
  }

FHEM 5.9 - Intel NUC i3 mit Proxmox im Stretch Container
HomeMatic - VCCU mit 2 x HM-LAN-CFG
Module: SMA Peripheries - Sonos - IPCam(s) - Philips Hue - Sprinkler - TabletUI - DBlog -

DS_Starter

Hallo zusammen,

habe den Headervorshlag von Marcel leicht verändert übernommen eingebaut.
Liegt als Version 2.4.2 im contrib.

Auch die Datei widget_smaportalspg.js habe ich etwas abgeändert. Zumindest mit Chrome habe ich das etwas störende Refreshverhalten nicht mehr. Ist ebenfalls im contrib neu vorhanden.

Grüße,
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

Xguide

Zitat von: DS_Starter am 02 Juli 2019, 23:48:46
A) habe den Headervorshlag von Marcel leicht verändert übernommen eingebaut.
B) Auch die Datei widget_smaportalspg.js habe ich etwas abgeändert. Zumindest mit Chrome habe ich das etwas störende Refreshverhalten nicht mehr. Ist ebenfalls im contrib neu vorhanden.

A) Sieht gut aus, passt nun auch dreizeilig wunderbar in mein ftui. Generell könnten wir aber noch attr wie headerOrientation [left, center, right], headerDetails [pv,co,pvco,status] implementieren, oder was meint ihr? Siehe Screenshots.... Der ftui screen ist nur mal exemplarisch angefügt. Gefällt mir echt gut und das die Steckdosen von da geschaltet werden können ist mega. Meine Frau wird es lieben, noch läuft es aber nur auf dem Testsystem.
B) In der Tat stellen sich Chrome und Safari besser an als Mozilla. Zum Glück läuft mein ftui auf einem Android Tablet, das sollte also klappen :-) Mit Mozilla sieht es imho immer noch dämlich aus.

Beste Grüße

Marcel
FHEM 5.9 - Intel NUC i3 mit Proxmox im Stretch Container
HomeMatic - VCCU mit 2 x HM-LAN-CFG
Module: SMA Peripheries - Sonos - IPCam(s) - Philips Hue - Sprinkler - TabletUI - DBlog -

DS_Starter

Hi Marcel,

an die Headergestaltung muss ich eh nochmal ran.
Habe vorhin gemerkt dass auf meinem Dashboard das nicht so schön ist. D.h. vermutlich werde ich solche Attribute wie von dir geschrieben einführen.
Kann ich aber erst morgen oder Freitag machen, momentan wenig Zeit.
Vielleicht kommt Wzut ja dazu ...

Ganz allgemeine Frage. FTUI setze ich momentan nur für Test/Entwicklung ein. Ich bemerke Unterschiede in der Darstellung ob man einen PC Browser benutzt oder ein Android Tablet. D.h. was auf dem PC in eine Kachel hinein passt, kann auf einem Tablet über die Grenzen hinausgehen und man müsste die Implementierung in der index.html abändern.
Wie sind denn da deine Erfahrungen, du benutzt es ja produktiv ?

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