Allgemeine Informationen > Termine und Veranstaltungen
Usertreffen/Erfahrungsaustausch Im Raum Braunschweig/Peine/Hannover
AlexSchei:
Sind per PN unterwegs
dieter114:
Hallo Leute
ich habe massiv Performanceprobleme. Höre nur noch zu.
Schade - Schöne Grüße
Wolfdieter
dieter114:
Ich versuche mal mein Problem hier darzustellen:
Es wird mit HTTPMOD ein Datensatz an einen EspEasy gesendet welcher das auf einem LCD Modul in Farbe anzeigt.
--- Code: ---defmod Pool_Anz_1 HTTPMOD http://192.168.178.41:80/control?cmd=LCD,1,16,1,%Prozent%°C
attr Pool_Anz_1 userattr HTTPMOD HTTPMOD_map replacement01Mode:reading,internal,text,expression,key structexclude
attr Pool_Anz_1 replacement01Mode expression
attr Pool_Anz_1 replacement01Regex %Prozent%
attr Pool_Anz_1 replacement01Value { ReadingsVal("pool.water2","temperature",0);; }
attr Pool_Anz_1 room Steuerung
--- Ende Code ---
Die 1, 16, 1 bedeutet Spalte 1; Zeile 16; Farbe 1 (weiß)
Die angezeiten Werte sind dann pool.water2:temperatur also z.B. 22,5 °C
Mittels eine zweiten Replacements (Farbe) würrde ich gern die angezeigte Temperatur farbig anpassen
also >25°C = Grün oder < 24 = blau usw.
Die Farben entsprechen ganzen Zahlen von 0-7.
Nur mit diesem Replacement habe ich so meine Probleme.....
Schöne Grüße aus Peine
Wolfdieter
CoolTux:
Guten Morgen,
Leider ungetestet. Aber versuch mal
--- Code: ---{ my $temp = ReadingsVal('pool.water2','temperature',0);
return $temp > 30 ? 7
: $temp > 25 ? 6
: $temp > 20 ? 5
: $temp > 15 ? 4
: $temp > 10 ? 3
: $temp > 5 ? 2
: $temp > 0 ? 1
: 0;
}
--- Ende Code ---
Grüße
Christoph Morrison:
--- Zitat von: CoolTux am 29 März 2021, 07:15:22 ---Leider ungetestet. Aber versuch mal
--- Ende Zitat ---
So würde ich das auch machen, allerdings würde ich das als generische Funktion in die MyUtils auslagern.
--- Code: ---sub Temperature2ColourCode {
my $temperature = shift;
if (not defined $temperature) {
::Log3(undef, 1, q{Temperature2ColourCode called with missing argument});
return 0;
}
return $temperature > 30 ? 7
: $temperature > 25 ? 6
: $temperature > 20 ? 5
: $temperature > 15 ? 4
: $temperature > 10 ? 3
: $temperature > 5 ? 2
: $temperature > 0 ? 1
: 0;
}
--- Ende Code ---
Und in Pool_Anz_1 dann:
--- Code: ---defmod Pool_Anz_1 HTTPMOD http://192.168.178.41:80/control?cmd=LCD,1,16,%COLOURCODE%,%Prozent%°C
attr Pool_Anz_1 replacement01Mode expression
attr Pool_Anz_1 replacement01Regex %Prozent%
attr Pool_Anz_1 replacement01Value { ReadingsVal("pool.water2","temperature",0);; }
attr Pool_Anz_1 replacement02Mode expression
attr Pool_Anz_1 replacement02Regex %COLOURCODE%
attr Pool_Anz_1 replacement02Value { Temperature2ColourCode(ReadingsVal("pool.water2","temperature",0));; }
attr Pool_Anz_1 room Steuerung
--- Ende Code ---
Beides ungetestet.
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln