Hauptmenü

Nachkommastellen im Floorplan

Begonnen von Franz Tenbrock, 08 November 2013, 21:40:40

Vorheriges Thema - Nächstes Thema

Franz Tenbrock

Hallo , nachdem ich mich schon Stunden durch alle mgl Beiträge gesucht habe, meine Frage wie ich die Readings die ich in der Werteliste habe ( siehe Bild ) auf 2 Nachkommastellen justieren kann , soll halt auch schön aussehen.

Für Tips wäre ich sehr dankbar...
(//)

cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

justme1968

wenn das jeweils einzelne devices sind kannst du den STATE mit stateFormat formatieren.

du kannst dir auch mal readingsGroup anschauen. die kann solche tabellen mit zwei drei anweisungen formatieren.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Franz Tenbrock

Die entscheidenden Dinge hab ich mir im Forum zusammengesucht und auch verstanden / angepasst und es klappt ja auch. :)
Aber als Perl Analphabet versuchi ch zu verstehen ... 
mit Beispielen aus dem Forum klappt das ja auch schon,
aber aus der FHEM Reference was selbst ... :-(

Leider brauch ich noch etwasmehr Hilfe, falls mgl.

Hier meine fhem.cfg für die PV Anlage:

########################################################
#########                       Solar -Energie                                    #############
#########################################################
define ESASolar ESA2000 4675
attr ESASolar base_1 12579.1
attr ESASolar event-on-update-reading state,raw_total,actual_ticks,diff_ticks,actual,raw_total,.*_last,raw
attr ESASolar room Energie

define FileLog_ESASolar FileLog ./log/ESASolar-%Y.log ESASolar
attr FileLog_ESASolar logtype text
attr FileLog_ESASolar room Energie

define weblink_ESASolar SVG FileLog_ESASolar:esa2000:CURRENT
attr weblink_ESASolar fp_webpad 400,190,0,
attr weblink_ESASolar label "kWh"::"kW"
attr weblink_ESASolar room Energie
attr weblink_ESASolar title "ESASolar - Min $data{raw_total} Min $data{min1}, Max $data{max1}, Last $data{currval1}"

und die angepasste 99my_floorplanlist.pm

package main;
use strict;
use warnings;
use POSIX;
my @wert;
my $div_class;
sub doMakeHtml($@);
######################################################################################
sub
myFloorplanList_Initialize($$)
{
  my ($hash) = @_;
}
###################################################################################
# Define in fhem by
# define w_WertListe1 weblink htmlCode {doWertListe1()}
# attr w_WertListe1 room Listen
#
sub
doWertListe1() {
   $div_class = "WertListe";  #format in css-file using #WertListe
   
# vvvvvvvvvvvvv Change this list as needed vvvvvvvvvvvvvvv
   $wert[0] = "Strom  Zaehlerstand:"      .','.   ReadingsVal("ESAx000WZ_5f94","raw_total"," Fehler");
   $wert[1] = "Strom letzter Monat:"      .','.   ReadingsVal("ESAx000WZ_5f94","month_last"," Fehler");
        $wert[2] = "Strom akt.    Monat:"      .','.   ReadingsVal("ESAx000WZ_5f94","month"," Fehler");
        $wert[3] = "Strom       gestern:"      .','.   ReadingsVal("ESAx000WZ_5f94","day_last"," Fehler");
        $wert[4] = "Strom         heute:"      .','.   ReadingsVal("ESAx000WZ_5f94","day"," Fehler");
#
#   $wert[3] = "Strom Monat:"   .','.   ReadingsVal("ESAx000WZ_5f94","month_last"," Fehler");)."\">";
#   my $FritzTemp = `ctlmgr_ctl r power status/act_temperature` ;           # read  FritzBox internal temperature
#   $wert[8] = "FritzBoxTemp:"   .','.   $FritzTemp . "&deg";            # print FritzBox internal temperature
# ^^^^^^^^^^^^^ Change this list as needed ^^^^^^^^^^^^^^^

   return doMakeHtml($div_class, @wert);
}

###################################################################################
# Define in fhem by
# define w_WertListe2 weblink htmlCode {doWertListe2()}
# attr w_WertListe2 room Listen
#
sub
doWertListe2() {
   $div_class = "WertListe";  #format in css-file using #WertListe
#
#   
# vvvvvvvvvvvvv Change this list as needed vvvvvvvvvvvvvvv
   $wert[0] = "Solar        Zaehler:"      .','.   ReadingsVal("ESASolar","raw_total"," Fehler");
   $wert[1] = "Solar letzter Monat:"      .','.   ReadingsVal("ESASolar","month_last"," Fehler");
   $wert[2] = "Solar akt.    Monat:"      .','.   ReadingsVal("ESASolar","month"," Fehler");
   $wert[3] = "Solar       gestern:"           .','.   ReadingsVal("ESASolar","day_last"," Fehler");
   $wert[4] = "Solar         heute:"           .','.   ReadingsVal("ESASolar","day"," Fehler");
#
#   
# and so on
# ^^^^^^^^^^^^^ Change this list as needed ^^^^^^^^^^^^^^^
#
   return doMakeHtml($div_class, @wert);
}

###################################################################################
# Create html-code
#
sub
doMakeHtml($@) {
   my ($div_class, @line ) = @_;
   my $htmlcode = '<div  class="'.$div_class."\"><table>\n";
   foreach (@line) {
      my ($title, $value) = split (",",$_);
      my $cssTitle = $title;
      $cssTitle =~ s,[: -],,g;
      $htmlcode .= "<tr><td><span \"$cssTitle-title\">$title</span></td><td><span \"$cssTitle-value\">$value</span></td></tr>\n";
   }
   $htmlcode .= "</table></div>";
   return $htmlcode;
}
1;
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

justme1968

formatieren kannst du die werte z.b. so:sprintf("%.2f",ReadingsVal(ESASolar,"raw_total","Fehler"));d.h. du musst um die ReadingsVal immer noch ein sprintf(...) drum rum machen.

statt das ganze über myflorrplan zu machen ist es aber viel einfacher readingGroup zu verwenden. dann werden die werte sogar per longpoll aktualisiert.das ganze schaut dann z.b. etwa so aus:define rgStrom readingGroup ESAx000WZ_5f94:.*
attr rgStrom mapping { "raw_total" => "Strom Zaehlerstand:", "month_last" => "Strom letzter Monat:", "month" => "Strom akt.    Monat:", "day_last" => "Strom       gestern:", "day" => "Strom         heute:"}
attr rgStrom valueFormat %.2f
attr rgStrom notime 1
attr rgStrom nostate 1
und entsprechend für den anderen zähler.

in der commandref sind einige beispiele und

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Franz Tenbrock

Vielen -dank für die schnelle Hilfe,
allerdings hat die 2. Variante nicht funktioniert, da kam eine lange Fehlerliste, er hat gemeckert das er das commando readingsgroup nicht kennt ???
Dann hab ich die 1. Variante probiert, das hat auf Anhieb geklappt. Der WEg erschien mir auch irgendwie einfacher.

Nun sieht der Floorplan richtig gut aus :-)
alles schön auf 2 Stellen, verstanden hab ich es zum Glück auch.

Das mit dem Sonnenuntergang klappt nun auch mit Hilfe der Beiträge hier...

auch wenn es manchmal mühsam ist, mit der Hilfe hier klappt es dann doch, das WE ist gerettet
;)

Was kommt jetzt?
Entweder neuen Cul433 kaufen und Revolt 5461 loggen, wurde hier im Forum ja schon beschrieben
oder
1Wire Temperatur loggen, für meine thermische Solaranlage, Dank einem Forumsmitglied hab ich einen tip bekommen, etwas weiter gesucht und das hier gefunden
www.aliexpress.com/store/product/Free-shipping-1-wire-miniLAN-thermometer-4channels-digital-thermometer-system/101171_433179945.html
soll problemlos mit fritzbox klappen
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

justme1968

es muss auch readingsGroup heißen. sorry mein fehler.

wenn du die anzahl an zeilen vergleichst und welche möglichkeiten es noch damit gibt ist auf jeden fall die readingsGroup einfacher und besser. ich habe auch mal myFloorplan verwendet und dann readingsGroup gebaut. es gibt kein vergleich :)

aber wenn du eine lösung hast die geht ist ja alles gut.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Franz Tenbrock

tja
wenn die syntax nicht 100% stimmt
kleiner Fehler große Wirkung.

zur Vollständigkeit halber hab ich es gleich ausprobiert, damit auhc andere davon profitieren
cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi