Hauptmenü

Syntax für SVG-Function

Begonnen von odie13690, 07 Juli 2015, 15:24:12

Vorheriges Thema - Nächstes Thema

odie13690

Hallo,

ich versuche gerade in einem Plot die Zustände (an:100/aus:0) dreier Geräte abzubilden. Prinzipiell funktioniert das ja ohne Probleme. Zur besseren Übersichtlichkeit habe ich über die Function ein Gerät um 10 ($fld[3]-10) und das Andere um 20 ($fld[3]-20) reduziert. Auch das funktioniert. Leider wird der Balken auch unter 0 geschoben. Im Fall von -20 sogar außerhalb des Plot-Rahmens.
Weitere Überlegung war, irgendwie nur den "an"-Wert um 10 bzw. 20 zu reduzieren. Leider komme ich an dieser Stelle nicht weiter. Habe es mit (if($fld[3]==100) {$fld[3]=90}) versucht. Beim Speichern des Plot's bleibt nur der erste Teil des if erhalten.

Ist meine Überlegung mit den FHEM-Mitteln überhaupt umsetzbar? Gibt es einen anderen Weg der Darstellung?

odie13690

odie13690

Hat niemand eine Idee, wie sich das umsetzen ließe :-\

odie13690

JoWiemann

Probier doch mal ein "inline" if:

$fld[3]==100? $fld[3]=90 : $fld[3]=90

Grüße Jörg
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

Otto123

Hallo odie13690,

ich denke if geht an der Stelle nicht siehe hier

Leider bin ich auch nicht so der RegExp Experte  ::)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

JoWiemann

Der Diskussion folgend müsste das aber gehen. Was ich nciht richtig gemaacht habe ist die Zuweisung. Sollte also so lauten:

$fld[3]==100? 90 : $fld[3]

Grüße Jörg

Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

justme1968

es dürfen keine leerzeichen vorkommen. also alles direkt aneinander schreiben.

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

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

Mario67

Hallo,
mit Konstrukten wie
#FileLog 4:Buderus_EMSClient.heateractive\x3a:0:$fld[3]eq"on"?5:20
verschiebe ich einzelne Signalverläufe in kombinierten Plots.

Gruß,
Mario
FHEM auf Raspberry Pi 4 mit CUL868, WMBUS,
FS20 ST, FS20 AS4-3, FS20 SU-2, FS20 DF, 1-Wire + RS-232: AB Electronics Com Pi RS232, Brandmelder + Fenster: AB Electronics IO Pi 32
BUDERUS GB142 über EMS/AVR-NET-IO, WESTAFLEX WAC250 über RS232, MySensors
mit fhem.cfg & includes glücklich

odie13690

Zitat von: JoWiemann am 08 Juli 2015, 10:54:08
Der Diskussion folgend müsste das aber gehen. Was ich nciht richtig gemaacht habe ist die Zuweisung. Sollte also so lauten:

$fld[3]==100? 90 : $fld[3]

Grüße Jörg
Zitat von: justme1968 am 08 Juli 2015, 11:04:09
es dürfen keine leerzeichen vorkommen. also alles direkt aneinander schreiben.

gruss
  andre

Hey, super. Damit klappt es! Vielen Dank!

odie13690

odie13690

Hallo,

hat noch jemand eine Lösung um für ein HM-WDS30-T-O Temperatur und Batteriestatus in einem Plot darzustellen. Eine alternative Umsetzung mit wie oben (Bezug zur Temperatur), klappt wohl nicht.

$fld[3]~="ok"?("Temperatur"):$fld[3]

Der Ansatz: der Batteriestatus "ok" soll immer auf Höhe der aktuellen Temperatur abgebildet werden.

odie13690

justme1968

den aktuellen wert aus einem anderen plot bekommt du mit $data{currvalX} wobei X die laufende nummer des plots ist. du kannst nur auf vorherige werte zugreifen.

aber welchen sinn soll es machen ok auf höhe der aktuellen temperatur anzuzeigen?

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

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

odie13690

Zitat von: justme1968 am 08 Juli 2015, 19:23:00aber welchen sinn soll es machen ok auf höhe der aktuellen temperatur anzuzeigen?

Dann ist die Range der Y-Achse nicht so groß. D. h. sie wird von der Temperatur vorgegeben.

Als Syntax für meinen Ansatz müsste ich also $fld[3]~="ok"?$data{currval1}:$fld[3] für Zeile 1 des SVG nutzen? Klappt nicht...

odie136990

justme1968

ja. so in etwa sollte es gehen.

aber es geht noch viel einfacher. du kannst mehr als eine y-achse haben. für die temperatur eine und für die batterie eine.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

odie13690

Zitat von: justme1968 am 08 Juli 2015, 20:22:09
ja. so in etwa sollte es gehen.

Klappt aber leider nicht. Muss ich wohl noch ein bisschen probieren...

Zitat von: justme1968 am 08 Juli 2015, 20:22:09
aber es geht noch viel einfacher. du kannst mehr als eine y-achse haben. für die temperatur eine und für die batterie eine.

Meinst du die rechte und linke y-Achse? Oder gibt es noch einen anderen Trick?

odie13690

justme1968

du kannst konfigurieren wie viele achsen rechts vom plot sein sollen, wie viele links sein sollen und wie viele darüber hinaus unsichtbar aber trotzdem verwendbar sind.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

odie13690

Zitat von: justme1968 am 08 Juli 2015, 21:04:55
du kannst konfigurieren wie viele achsen rechts vom plot sein sollen, wie viele links sein sollen und wie viele darüber hinaus unsichtbar aber trotzdem verwendbar sind.

Wo kann ich das nachlesen? Commandref? FhemWiki?

odie13690