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
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
Danke dir!
Wo muss ich das Perl Script einfügen? In die 99_myUtils.pm?
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 (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
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
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
Ja eine Antwort mit dem Beispiel wie umgesetzt wäre für Interessierte auch gut.
So lernen andere auch noch durch lesen.
Gruß
Helmut