FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: AlexMuc81 am 12 September 2019, 11:23:30

Titel: Namen anhand von Werten ausgeben
Beitrag von: AlexMuc81 am 12 September 2019, 11:23:30
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
Titel: Antw:Namen anhand von Werten ausgeben
Beitrag von: MadMax-FHEM am 12 September 2019, 11:33:06
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
Titel: Antw:Namen anhand von Werten ausgeben
Beitrag von: AlexMuc81 am 12 September 2019, 11:40:31
Danke dir!

Wo muss ich das Perl Script einfügen? In die 99_myUtils.pm?
Titel: Antw:Namen anhand von Werten ausgeben
Beitrag von: Byte09 am 12 September 2019, 12:01:43
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 (https://wiki.fhem.de/wiki/UserReadings)

erklärung ReadingsNum:
https://wiki.fhem.de/wiki/DevelopmentModuleAPI#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
Titel: Antw:Namen anhand von Werten ausgeben
Beitrag von: MadMax-FHEM am 12 September 2019, 13:56:34
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
Titel: Antw:Namen anhand von Werten ausgeben
Beitrag von: Byte09 am 14 September 2019, 09:31:39
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
Titel: Antw:Namen anhand von Werten ausgeben
Beitrag von: Helmi55 am 14 September 2019, 09:56:30
Ja eine Antwort mit dem Beispiel wie umgesetzt wäre für Interessierte auch gut.
So lernen andere auch noch durch lesen.
Gruß
Helmut