Namen anhand von Werten ausgeben

Begonnen von AlexMuc81, 12 September 2019, 11:23:30

Vorheriges Thema - Nächstes Thema

AlexMuc81

Hallo zusammen,

mein Regensensor meldet zuverlässig den Wert an FHEM über die aktuelle Regenmenge (z.B. 0,315)
In meiner Handy App sind das dann 3 mm/h

Ich würde die Werte gerne in Wörter übersetzen.

0 = kein Regen
0.1 - 0.5 = Nieselregen
0.6 - 2.5 = leichter Regen
2.6 - 10 = mäßiger Regen
10.1 - 50 = Starkregen

wie bekomme ich das im FHEM bzw. dann auch im FTUI abgebildet?


netatmo_moduleGarten

Readings:
rain = 0 (aktuell)


Danke

Gruß
Alex

MadMax-FHEM

#1
In Perl z.B.:


sub RegenmengeAlsText($)
{
my ($Regenmenge)  = @_;

my $RegenmengeText = "";

if($Regenmenge == 0)
{
  $RegenmengeText = "Kein Regen";
}
elsif(Regenmenge >= 0.1 and $Regenmenge <= 0.5)
{
  $RegenmengeText = "Nieselregen";
}
elsif($Regenmenge >= 0.6 and $Regenmenge <= 2.5)
{
  $RegenmengeText = "Leichter Regen";
}

...

fhem("setreading WO-SOLL-ES-LANDEN WIE-SOLL-DAS-READING-HEISSEN $RegenmengeText");
}


Oder halt anders setzen, damit es dann in FTUI (oder wo auch immer) angezeigt werden kann/wird...
...kenne allerdings FTUI nicht...

EDIT: und das dann mit z.B. einem passenden notify (z.B. wenn sich die Regenmenge ändert ;)  ) aufrufen define nRegenText notify Regenmesser:Regenmenge {RegenmengeAlsText(Regenmenge)} das musst du natürlich an deine Umgebung etc. anpassen... Regenmenge kann je nach "Ausführung" des RegEx des notify dann $EVENT oder $EVTPART1 etc. sein, da sollte ja dann der entsprechende Regenmengenwert drin stehen...

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

AlexMuc81

Danke dir!

Wo muss ich das Perl Script einfügen? In die 99_myUtils.pm?

Byte09

#3
Zitat von: AlexMuc81 am 12 September 2019, 11:40:31
Danke dir!

Wo muss ich das Perl Script einfügen? In die 99_myUtils.pm?

du kannst es auch ohne notify und 99_myutils direkt im device als userreading anlegen ( wie in Fhem fast immer führen viele Wege zum Ziel  ;) ).

wiki userreading:
https://wiki.fhem.de/wiki/UserReadings

erklärung ReadingsNum:
https://wiki.fhem.de/wiki/DevelopmentModuleAPI#ReadingsNum

raintext:rain:.* {
my $rain = ReadingsNum( $name, 'rain', 0 );
return "kein regen" if $rain ==0;
return "Starkregen" if $rain > 10;
return "mäßiger Regen" if $rain > 2.5;
return "leichter Regen" if $rain > 0.5;
return "Nieselregen" if $rain > 0;
}



dummy incl Userreading
defmod reading dummy
attr reading readingList rain
attr reading room 05_test
attr reading setList rain:slider,0,0.1,11,1
attr reading stateFormat rain\
raintext\

attr reading userReadings raintext:rain:.* {\
my $rain = ReadingsNum( $name, 'rain', 0 );;\
return "kein regen" if $rain ==0;;\
return "Starkregen" if $rain > 10;;\
return "mäßiger Regen" if $rain > 2.5;;\
return "leichter Regen" if $rain > 0.5;;\
return "Nieselregen" if $rain > 0;;\
}
attr reading webCmd rain

setstate reading 0.0\
kein regen\

setstate reading 2019-09-12 12:20:32 rain 0.0
setstate reading 2019-09-12 12:20:32 raintext kein regen

gruss Byte09

MadMax-FHEM

Zitat von: Byte09 am 12 September 2019, 12:01:43
wie in Fhem fast immer führen viele Wege zum Ziel  ;)

Damit ist alles gesagt ;)

Einfach mal lesen/anregen lassen/lernen/ausprobieren -> eigenen Weg finden (ist finde ich wichtig!)

Der eine (ich ;) ) hat mehr einen Hang zu myUtils bzw.:

alles was "Programmierung" ist -> myUtils

alles was "Konfiguration" ist -> fhem.cfg (config.db)

Ich mische ungern "Programmierung" und "Konfiguration"...
...daher tue ich mich mit DOIF auch so schwer ;)

Aber wie geschrieben: das ist "mein Weg"... Jeder seinen selbst bitte! ;)

Viel Erfolg, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

Byte09

#5
Zitat von: AlexMuc81 am 12 September 2019, 11:23:30
Hallo zusammen,
.
.
.
Gruß
Alex

Ich persönlich finde es ja immer ganz nett , wenn nochmal eine Resonanz kommt nachdem man im Forum eine Frage gestellt hat und sich User bemüht haben zu helfen ( ggf. bin ich da aber nur etwas komisch  ;) ).

Somit die Frage: Hast du es denn hinbekommen ( wie auch immer ) ?

gruss Byte09

Helmi55

Ja eine Antwort mit dem Beispiel wie umgesetzt wäre für Interessierte auch gut.
So lernen andere auch noch durch lesen.
Gruß
Helmut
System1 fhem 6.1 auf RPi 4B mit 4GB, HMUSBConfig, DS9490R-1Wire, Busware USB 868, Pool-Solarsteuerung mit FHEM. System2 fhem 6.1 auf RPi 4B mit 4GB (Bullseye) mit Busware USB 868 und 433 und HMUARTLGW für Haussteuerung

https://www.flickr.com/photos/canonhelmi/