Hauptmenü

neue svg-Funktion: card

Begonnen von Damian, 04 April 2021, 12:58:15

Vorheriges Thema - Nächstes Thema

andies

Ich bin auf der Suche nach einer Erläuterung der Funktion colorRef. Im Wiki, in der commandref und in Google finde ich  aber nix. Kann mir jemand helfen?
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Damian

#241
Zitat von: andies am 29 Januar 2022, 21:36:12
Ich bin auf der Suche nach einer Erläuterung der Funktion colorRef. Im Wiki, in der commandref und in Google finde ich  aber nix. Kann mir jemand helfen?

Die Funktion muss zu einem beliebigen Zahlenwert einen hue-Wert zwischen 0 und 360 zurückliefern.

Ich brauchte gerade eine, die mir beim Zahlenwert 0 blau (hue 240) liefert, sonst immer rot (hue 0):


attr uiTable {
  package ui_Table;
    sub onoff_hue {
    my($redblue)=@_;
    return ($redblue == 0 ? 240 : 0); 
  }
## Tabellendefinition
...
}


angegeben wird dann \&onoff_hue als colorRef-Parameter

Ich habe bei meiner Raumübersicht (vorheriger Link) jetzt statt Feuchte, das Thermostatrelais mit der obigen Funktion realisiert, damit kann ich sehen, ob gerade bzw. wann geheizt wurde.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

andies

Noch eine Frage. Kann ich anpassen, was bei card innerhalb des Rings angezeigt wird? Ich sehe dort aktuelle Werte, würde aber gern zB Summen oder Minima/Maxima dort stehen haben. Geht das?
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Damian

Zitat von: andies am 30 Januar 2022, 20:50:31
Noch eine Frage. Kann ich anpassen, was bei card innerhalb des Rings angezeigt wird? Ich sehe dort aktuelle Werte, würde aber gern zB Summen oder Minima/Maxima dort stehen haben. Geht das?

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

andies

Kapiert. Und ein anderes Reading? Wäre das leichter umsetzbar?
FHEM 6.1 auf RaspPi3 (Raspbian:  6.1.21-v8+; Perl: v5.32.1)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Damian

Zitat von: andies am 30 Januar 2022, 20:58:36
Kapiert. Und ein anderes Reading? Wäre das leichter umsetzbar?

Man kann mehrere Readings angeben, aber aller Werte die irgendwo im Ring oder in mehreren Halbringen dargestellt werden, werden auch geplottet.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

Zitat von: Damian am 30 Januar 2022, 21:13:23
Man kann mehrere Readings angeben, aber aller Werte die irgendwo im Ring oder in mehreren Halbringen dargestellt werden, werden auch geplottet.

Man kann natürlich beliebige Daten in der Kopfzeile innerhalb der Karte in Textform einblenden, also auch beliebige Werte aus irgendwelchen Readings.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Damian

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

Damian

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

Adimarantis

Ich probiere gerade das neue global encoding=unicode aus (siehe https://forum.fhem.de/index.php/topic,126088.0.html ) und habe da Probleme mit den Cards
Wenn ich versuche eine uiTable Definition zu speichern (ohne Sonderzeichen!) kommt:
PERL WARNING: Bareword found where operator expected at (eval 1222) line 2, near "'error Unrecognized character \x{2424}; marked by <-- HERE after  ui_Table;<-- HERE near column 18 at (eval 1221) line 1.
in expression: ␤card(::ReadingValDoIf($hash,'HMIP_PSM_XXX"
  (Might be a runaway multi-line '' string starting on line 1)
2022.02.19 12:41:43.367 1: stacktrace:
2022.02.19 12:41:43.367 1:     main::__ANON__                      called by (eval 1222) (2)
2022.02.19 12:41:43.367 1:     (eval)                              called by ./FHEM/98_DOIF.pm (706)
2022.02.19 12:41:43.368 1:     main::DOIF_RegisterEvalAll          called by ./FHEM/98_DOIF.pm (757)
2022.02.19 12:41:43.368 1:     main::DOIF_detailFn                 called by ./FHEM/01_FHEMWEB.pm (1560)
2022.02.19 12:41:43.368 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1194)
2022.02.19 12:41:43.368 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (604)
2022.02.19 12:41:43.368 1:     main::FW_Read                       called by fhem.pl (3929)
2022.02.19 12:41:43.369 1:     main::CallFn                        called by fhem.pl (780)
2022.02.19 12:41:43.369 1: PERL WARNING:        (Missing operator before HMIP_PSM_XXX?)
2022.02.19 12:41:43.369 1: stacktrace:
2022.02.19 12:41:43.369 1:     main::__ANON__                      called by (eval 1222) (2)
2022.02.19 12:41:43.369 1:     (eval)                              called by ./FHEM/98_DOIF.pm (706)
2022.02.19 12:41:43.370 1:     main::DOIF_RegisterEvalAll          called by ./FHEM/98_DOIF.pm (757)
2022.02.19 12:41:43.370 1:     main::DOIF_detailFn                 called by ./FHEM/01_FHEMWEB.pm (1560)
2022.02.19 12:41:43.370 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1194)
2022.02.19 12:41:43.370 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (604)
2022.02.19 12:41:43.370 1:     main::FW_Read                       called by fhem.pl (3929)
2022.02.19 12:41:43.371 1:     main::CallFn                        called by fhem.pl (780)
Wide character in subroutine entry at ./FHEM/93_DbLog.pm line 2406.

Danach friert FHEM ein und startet sich nach einer Weile neu (ob das jetzt an DOIF oder DbLog liegt ist scher zu sagen)

Außerdem werden die "Pfeile" falsch kodiert (siehe Bild). Um DOIF fit für Unicode zu machen, sind wahrscheinlich noch Anpassungen nötig.
Sonderzeichen (Umlaute, € scheinen aber grundsätzlich zu gehen)


Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Damian

Zitat von: Adimarantis am 19 Februar 2022, 12:50:04
Ich probiere gerade das neue global encoding=unicode aus (siehe https://forum.fhem.de/index.php/topic,126088.0.html ) und habe da Probleme mit den Cards
Wenn ich versuche eine uiTable Definition zu speichern (ohne Sonderzeichen!) kommt:
PERL WARNING: Bareword found where operator expected at (eval 1222) line 2, near "'error Unrecognized character \x{2424}; marked by <-- HERE after  ui_Table;<-- HERE near column 18 at (eval 1221) line 1.
in expression: ␤card(::ReadingValDoIf($hash,'HMIP_PSM_XXX"
  (Might be a runaway multi-line '' string starting on line 1)
2022.02.19 12:41:43.367 1: stacktrace:
2022.02.19 12:41:43.367 1:     main::__ANON__                      called by (eval 1222) (2)
2022.02.19 12:41:43.367 1:     (eval)                              called by ./FHEM/98_DOIF.pm (706)
2022.02.19 12:41:43.368 1:     main::DOIF_RegisterEvalAll          called by ./FHEM/98_DOIF.pm (757)
2022.02.19 12:41:43.368 1:     main::DOIF_detailFn                 called by ./FHEM/01_FHEMWEB.pm (1560)
2022.02.19 12:41:43.368 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1194)
2022.02.19 12:41:43.368 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (604)
2022.02.19 12:41:43.368 1:     main::FW_Read                       called by fhem.pl (3929)
2022.02.19 12:41:43.369 1:     main::CallFn                        called by fhem.pl (780)
2022.02.19 12:41:43.369 1: PERL WARNING:        (Missing operator before HMIP_PSM_XXX?)
2022.02.19 12:41:43.369 1: stacktrace:
2022.02.19 12:41:43.369 1:     main::__ANON__                      called by (eval 1222) (2)
2022.02.19 12:41:43.369 1:     (eval)                              called by ./FHEM/98_DOIF.pm (706)
2022.02.19 12:41:43.370 1:     main::DOIF_RegisterEvalAll          called by ./FHEM/98_DOIF.pm (757)
2022.02.19 12:41:43.370 1:     main::DOIF_detailFn                 called by ./FHEM/01_FHEMWEB.pm (1560)
2022.02.19 12:41:43.370 1:     main::FW_doDetail                   called by ./FHEM/01_FHEMWEB.pm (1194)
2022.02.19 12:41:43.370 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (604)
2022.02.19 12:41:43.370 1:     main::FW_Read                       called by fhem.pl (3929)
2022.02.19 12:41:43.371 1:     main::CallFn                        called by fhem.pl (780)
Wide character in subroutine entry at ./FHEM/93_DbLog.pm line 2406.

Danach friert FHEM ein und startet sich nach einer Weile neu (ob das jetzt an DOIF oder DbLog liegt ist scher zu sagen)

Außerdem werden die "Pfeile" falsch kodiert (siehe Bild). Um DOIF fit für Unicode zu machen, sind wahrscheinlich noch Anpassungen nötig.
Sonderzeichen (Umlaute, € scheinen aber grundsätzlich zu gehen)

DOIF reicht alle Zeichen durch, ohne Behandlung. Das Zeichen \x{2424} scheint beim Perlinterpreter Probleme zu bereiten.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Adimarantis

\x{2424} ist das newline welches im neuen Modus von FHEMWEB wohl so geliefert wird und womit Perl tatsächlich Probleme hat. Das lässt sich mit einem einfachen stateFormat mit Perl code und Zeilenumbruch auch nachstellen (allerdings friert dann FHEM nicht ein). Das melde ich mal im anderen Thread an Rudi - wird langsam doch komplex die Sache.

Wenn ich alle Zeilenumbrüche rausnehme, geht es bis auf die Pfeile. Da wäre im neuen Modus evtl. ein decode_utf8 oder encode_utf8 nötig.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Damian

Zitat von: Adimarantis am 19 Februar 2022, 14:50:23
\x{2424} ist das newline welches im neuen Modus von FHEMWEB wohl so geliefert wird und womit Perl tatsächlich Probleme hat. Das lässt sich mit einem einfachen stateFormat mit Perl code und Zeilenumbruch auch nachstellen (allerdings friert dann FHEM nicht ein). Das melde ich mal im anderen Thread an Rudi - wird langsam doch komplex die Sache.

Wenn ich alle Zeilenumbrüche rausnehme, geht es bis auf die Pfeile. Da wäre im neuen Modus evtl. ein decode_utf8 oder encode_utf8 nötig.

solange die Sache mit dem neuen Modus nicht ausgereift ist, möchte ich nichts ändern.
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

xenos1984

Die Pfeile könnte man auch als &xUUUU; angeben - dann hat man reines ASCII und das Encoding ist egal.

hajo23

#254
Ich möchte gern die Y-Achse fixieren. D.h. alle Werte > y-max und < y-min sollen ignoriert werden. Derzeit übernimmt offenbar die automatische Skalierung, wenn z.B. y-max überschritten wird. Meine Lösung ist ein entsprechendes Userreading, aber könntest Du es nicht als Variante in card einbauen?