Gelöst: readingsGroup Homematic HM-ES-PMSw1-Pl und Fritz!DECT200

Begonnen von KNUT345, 21 Dezember 2014, 12:14:34

Vorheriges Thema - Nächstes Thema

KNUT345

Hallo Zusammen,
ich möchte gerne meine Funksteckdosen 2x Homematic HM-ES-PMSw1-Pl und 3x Fritz!DEC200 in einer readingsGroup zusammenfassen.
Prinzipiell funktioniert das auch schon mal

define Steckdosen readingsGroup <%message_socket>,<Leistung>,<Spannung>,<Energie>,<Status> Steckdose.*:power,voltage,energy,state
attr Steckdosen cellStyle {"r:1" => 'style="text-align:center"',"c:1" => 'style="text-align:left"'}
attr Steckdosen mapping { return '' if( $READING eq 'status' );; return '%ALIAS' }
attr Steckdosen room Test
attr Steckdosen valueFormat {"voltage" => " %.1f V","power" => " %.1f W","energy" => " %.0f Wh"}
attr Steckdosen valuePrefix &nbsp
attr Steckdosen valueStyle style="text-align:right"
attr Steckdosen valueSuffix &nbsp

aber es gibt da ein paar Punkte die ich noch verbessern wollte.

1) Ich würde gerne den Status der Steckdosen on/off als Icon anzeigen
-> Problem dass dies in verschiedenen Readings und bei Homematic in verschiedenen Devices steckt
2) Ich würde gerne den Status über commands on/off schaltbar haben wollen
Im Anhang mal das Bild als Original und als Fotomontage wie ich es gerne hätte.
Des weiteren auch die Readings von HM-ES-PMSw1-Pl und DECT200.

Hat mir jemand einen Tipp.

Grüße

jnewton957

Zitat1) Ich würde gerne den Status der Steckdosen on/off als Icon anzeigen
-> Problem dass dies in verschiedenen Readings und bei Homematic in verschiedenen Devices steckt

Im Abschnitt der readinggroup einfügen:
attr Steckdosen valueIcon {'state.on' => 'general_an@green', 'state.off' => 'general_aus@red'}

general_an@green kann dabei gegen jedes icon (z.B. lampenicon) und farbe getauscht werden.

FHEM6.2 auf Pi5
V 1.66 nanoCUL 433 (IT)
V 1.66 nanoCUL868 (HM)
sqlite3 LogDb
ELRO AB440, DECT200,  TFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo),tibber Pulse, Kostal Pico, cfos Wallbox, Modbus TCP

KNUT345

Mit dem Hinweis bin ich nun schon deutlich weiter gekommen.

Allerdings habe ich nun
3) ein Formatproblem, denn

attr Steckdosen valueFormat { 'power' => "%.1f W", 'voltage' => "%.0f V", 'energy' => "%.0f Wh" }

liefert mir zurecht Perl-Warnungen, da ein Teil der Werte bereits formatiert ist.
Zitat
2014.12.21 17:33:21 1: PERL WARNING: Argument "0.71 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 712.
2014.12.21 17:33:21 1: PERL WARNING: Argument "21.74 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 712.
2014.12.21 17:34:23 1: PERL WARNING: Argument "0.71 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1009.
2014.12.21 17:35:32 1: PERL WARNING: Argument "1.43 W" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1009.
2014.12.21 17:35:54 1: PERL WARNING: Argument "232.186 V" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 712.
2014.12.21 17:35:54 1: PERL WARNING: Argument "693 Wh" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 712.
2014.12.21 17:35:54 1: PERL WARNING: Argument "231.802 V" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 712.
2014.12.21 17:35:54 1: PERL WARNING: Argument "76325 Wh" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 712.
2014.12.21 17:35:54 1: PERL WARNING: Argument "229.776 V" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 712.
2014.12.21 17:35:54 1: PERL WARNING: Argument "44763 Wh" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 712.
2014.12.21 17:35:57 1: PERL WARNING: Argument "231.446 V" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1009.
2014.12.21 17:35:57 1: PERL WARNING: Argument "76326 Wh" isn't numeric in sprintf at ./FHEM/33_readingsGroup.pm line 1009.

habe schon diverse Varianten probiert, komm aber da nicht weiter

attr Steckdosen valueFormat { if ($Value=~ /W/) {substr($Value,0,-1)} {$Value}}
attr Steckdosen valueFormat { 'power' => "{ if ($VALUE=~ /W/) {$VALUE} {%.0f W}}" }

KNUT345

nach einigem rumprobieren habe ich für mich eine Lösung gefunden


attr Steckdosen valueFormat {return "%0.1f W" if ($READING eq "power" && substr($VALUE,-1,1) ne "W");;;; {return "%0.1f V" if ($READING eq "voltage" && substr($VALUE,-1,1) ne "V");;;; {return "%0.0f Wh" if ($READING eq "energy" && substr($VALUE,-2,2) ne "Wh");;;; {return sprintf("%.1f", substr($VALUE,0,-1))." W" if ($READING eq "power" && substr($VALUE,-1,1) eq "W");;;; {return sprintf("%.1f", substr($VALUE,0,-1))." V" if ($READING eq "voltage" && substr($VALUE,-1,1) eq "V");;;; return $VALUE;;;; } } } }}

KNUT345