FHEM Forum

FHEM => Frontends => SVG / Plots / logProxy => Thema gestartet von: Magratheus am 26 Dezember 2020, 00:21:53

Titel: plotReplace: ReadingsVal und Text im Diagrammtitel kombinieren [gelöst]
Beitrag von: Magratheus am 26 Dezember 2020, 00:21:53
Hallo zusammen,

für eine Steckdose mit Leistungsmessung habe ich ein ein userReading erstellt, das die Energiekosten für das angeschlossene Gerät zeigt:
Für die Steckdose gibt es auch einen SVG Plot, der die Energie in kWh sowie die Leistung des Geräts darstellt.

Als Titel des SVG Plots würde ich nun gerne die bisher angefallenen Energiekosten sowie zusätzlichen Text anzeigen.
Mit Hilfe von plotReplace gelingt es mir die Energiekosten in den Diagrammtiel zu bringen:

attr SVG_FileLog_Steckdose_Terrarium_Messkanal_1 plotReplace title={ReadingsVal("Steckdose_Terrarium_Messkanal","energyCostRound",0)}

Das funktioniert und der der Zahlenwert der Kosten wird als Diagrammtitel angezeigt. z.B. 50

Was mir nicht gelingt ist, diesen Zahlenwert mit Text zu kombinieren
Wünschenswert wäre ein Diagrammtitel wie: "kumulierte Energiekosten: 50 €"

Wie müsste denn der Syntax des plotReplace Attributs sein damit vor und nach dem durch den ReadingsVal Ausdruck dargestellten Zahlenwert der gewünschte Text dargestellt wird.

Vielen Dank schonmal!
Titel: Antw:plotReplace: ReadingsVal und Text im Diagrammtitel kombinieren
Beitrag von: OdfFhem am 26 Dezember 2020, 10:32:13
@Magratheus

Eine Lösung könnte so aussehen:

  title={"abc ".ReadingsVal("Steckdose_Terrarium_Messkanal","energyCostRound",0)." xyz"}
Titel: Antw:plotReplace: ReadingsVal und Text im Diagrammtitel kombinieren
Beitrag von: Magratheus am 26 Dezember 2020, 11:24:20
@OdfFhem

vielen Dank, das klappt. Ich hab alles ausprobiert nach, bzw. vor dem Text in Anführungszeichen. Nur keine Punkte.

Gruß
Titel: Antw:plotReplace: ReadingsVal und Text im Diagrammtitel kombinieren [gelöst]
Beitrag von: rudolfkoenig am 26 Dezember 2020, 12:46:26
ZitatIch hab alles ausprobiert nach, bzw. vor dem Text in Anführungszeichen. Nur keine Punkte.
Den Syntax einer Sprache durch Probieren rauszufinden ist nicht immer die schnellste Loesung.
Punkt (.) ist in Perl der "Text-Addition-Operator", eine Alternative ohne Punkt waere
title={ sprintf("abc %0.2f xyz", ReadingsNum("Steckdose_Terrarium_Messkanal","energyCostRound",0) ) }
womit man z.Bsp die Nachkommastellen der Ausgabe regeln kann.
Titel: Antw:plotReplace: ReadingsVal und Text im Diagrammtitel kombinieren [gelöst]
Beitrag von: Magratheus am 26 Dezember 2020, 14:33:45
Das stimme ich Dir zu.
Ausprobieren ist eine denkbar schlechte Methode.
Trotzdem hat man als Autodidakt manchmal einfach einen Hänger und weiß weder weiter, noch nach was man suchen muss.
Aus diesem Grund bin ich auch sehr dankbar für dieses Forum, ohne dass die komplette Automatisierung meines Hauses sicher nicht geklappt hätte.
Und wenn dann doch mal eine Frage auftaucht, die durch Recherche nicht zu beantworten ist (was selten vorkommt) ist es schön, das auch "basics" beantwortet werden.