Allgemeine Informationen > Termine und Veranstaltungen

Usertreffen/Erfahrungsaustausch Im Raum Braunschweig/Peine/Hannover

<< < (67/68) > >>

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