Hauptmenü

neue svg-Funktion: hcard

Begonnen von Damian, 13 September 2026, 20:07:19

Vorheriges Thema - Nächstes Thema

Damian

Da die Parameterliste der card-Funktion recht lang und dadurch unhandlich ist, habe ich eine neue Funktion namens hcard (h wie hash) programmiert.

Diese ist kompatibel zu der bisherigen, allerdings erhält sie nur einen Hash-Parameter. Dadurch ist der Aufruf der Funktion benutzerfreundlicher, weil man unnötige Angaben weglassen kann und die angegebenen erhalten einen Schlüssel-Namen. Die Reihenfolge der Angaben ist im Gegensatz zu Parametern unerheblich.

Die Schlüsselbezeichnungen des Hashes entsprechen weitgehend den bisherigen Bezeichnungen der Parameter und werden im Wiki einzeln beschrieben.

So sieht die Definition für einen CO2-Sensor:

hcard({collect=>[MQTT2_DVES_D90D08:MHZ19B_CarbonDioxide:col1d],
       min=>400,max=>1200,
       decimalPlaces=>0,
       icon=>"air",
       yScaling=>"fixedscaling",
       colorRef=>[(600,120,1000,60,1200,0)],
       rInnerRing=>"innerring"})

Da es sich um Perl-Syntax handelt, musste kein neuer Parser gebaut werden und die Aufrufe sind genauso performant wie bei card.


Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Mit einem weiteren Schlüssel z.B. "model" könnte man typische Werte für bestimmte Sensoren vordefinierten, die man einzeln übersteuern könnte. Dann würde man mit folgendem Aufruf bereits auskommen:

hcard({collect=>[MQTT2_DVES_D90D08:MHZ19B_CarbonDioxide:col1d],model=>"co2"})
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

appi

Hi Damian
hört sich sehr gut an. Wo ist die Funktion zu finden?

Damian

Ich bin dabei die hcard noch zu verfeinern, so dass anschließend alle erdenklichen bisherigen card-Definitionen mit hcard elegant lösbar sind. Wenn ich sie fertig programmiert habe, werde ich eine vollständige Wiki-Dokumentation zu hcard verfassen und die bisherige Wiki-Dokumentation zu card auslagern.

Langfristig soll die hcard die card-Funktion ersetzen, weil sie viel intuitiver zu benutzen ist. Die card-Funktion wird sich nicht verändern und weiterhin wie bisher funktionieren, alleine deswegen, weil hcard intern die card-Funktion aufruft, allerdings soll die card-Funktion für FHEM-Anwender in den Hintergrund rücken.

Wenn ich fertig bin, werde ich es hier verkünden - das wird aber noch ein paar Tage dauern.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF