KS300 readings für Floorplan, Dashboard usw. formatieren

Begonnen von dadoc, 18 August 2014, 10:18:25

Vorheriges Thema - Nächstes Thema

dadoc

Guten Tag zusammen,
ich stehe mal wieder vor einer grundsätzlichen, aber vermutlich einfach lösbaren Frage: Was ist der richtige/beste Weg, um die Werte des KS300-Wettersensors auf dem Floorplan und auch sonst zu formatieren?
Im Floorplan habe ich ja entweder die Ausgabe
T: 17.0 H: 61 W: 3.8 R: 244.5 IR: no Wi: 1
oder, wenn man Darstellungsoption 4 missbraucht, eine schön formatierte, die aber nur Temp und Hum anzeigt.

Mein Versuch, das in 95_FLOORPLAN.pm so (fp_windvalue...) zu erweitern, schlug fehl
$txt = "<span class='fp_tempvalue' display=inline><span informId=$d-temperature>".$1."</span>&deg;C</span><BR><span class='fp_humvalue'><span informId=$d-humidity>".$2."</span>%</span><BR><span class='fp_windvalue'><span informId=$d-wind>".$3."</span>kmh</span>";

In 13_KS300.pm kann ich natürlich die folgende Zeile modifizieren und mit HTML-Tags versehen, aber das geht ja dann auch so ins Log, so dass ich vermute, dieser brachiale Weg ist nicht ideal.
# For logging/summary
    my $val = "T: $v[4]  H: $v[3]  <BR>WW: $v[2]  R: $v[1]  IR: $v[5]  Wi: $v[9]";

Könnt Ihr mir aufs Pferd helfen?
Danke & Grüße
Martin
Standort 1: FS20 mit CUL und FHEM auf Raspi. HM-Komponenten (Heizung, Rollladen, Schalter). HM IP über Raspimatic (testweise)
Standort 2: Homematic (Wired) über CCU2 und PocketHome HD
3 x Raspi3 mit piCorePlayer/Kodi für Multiroom Audio (+ Tablets/iPeng/iPods

clumsy

Hallo

Hatte eben das selbe problem. 2 kleine Änderungen an 95_FLOORPLAN.pm und im entsprechenden stylesheet haben bei mir das gewünschte Resultat ergeben (sicher noch nicht komplett).

95_FLOORPLAN.pm (ab Zeile 607) die if-Bedingung ersetzen durch:

            if ($style == 4 ) {
                if ($txt =~ /T: ([\-0-9\.]+)[ ]+H: ([\-0-9\.]+)[ ]+W: ([\-0-9\.]+).*/) {               # KS300-specific
                  $txt = "<span class='fp_tempvalue' display=inline><span informId=$d-temperature>".$1."</span>&deg;C</span><BR><span class='fp_humvalue'><span informId=$d-humidity>".$2."</span>%</span><BR><span class='fp_windvalue'><span informId=$d-wind>".$3."</span>m/sec</span>";
                } elsif ($txt =~ /T: ([\-0-9\.]+)[ ]+H: ([\-0-9\.]+).*/) {               # S300TH-specific
                  $txt = "<span class='fp_tempvalue' display=inline><span informId=$d-temperature>".$1."</span>&deg;C</span><BR><span class='fp_humvalue'><span informId=$d-humidity>".$2."</span>%</span>";
                } elsif ($txt =~ /T: ([\-0-9\.]+).*/) {               # S300T-specific
                  $txt = "<span class='fp_tempvalue' display=inline><span informId=$d-temperature>".$1."</span>&deg;C</span>";
                }
            }


im entsprechenden CSS dann noch die fp_windvalue dazufügen:

.fp_windvalue            {color:yellow; font-size:20px; }

(z.b. nach fp_humvalue)

So funktioneirt das ganze auch für S300T und KS300 Sensoren...

Evtl. liest ja der Maintainer mit und kann den Patch einchecken?