Die Textdatei wird von WEEWX erstellt. Von der Textdatei soll z.B. in der Zeile "inTemp: 18.25" der Wert übernommen werden. Dies mache ich mit dem sub in "99_myUtils.pm" wie folgt:
sub SetMeinWetter($) {
my ($obj) = @_;
# read data from file
unless (open (my_metdata, "/opt/fhem/weewx/weewxfhem.txt")){
die ("Missing input file");
}
my @mydata = <my_metdata>;
close (my_metdata);
# get the weather data in float
my @lastread = split(/ /, $mydata[2] ,2);
my $myintemp = $lastread[1] * 1;
# allocate the data in fhem
fhem("setreading $obj inTemp $myintemp");
}
1;
In FHEM wird der Wert wie folgt angezeigt:
define MeinWetter at +*00:00:01 {SetMeinWetter("MeinWetter")}
attr MeinWetter group Meteo
attr MeinWetter room Station
attr MeinWetter sortby 2
define WetterJetzt readingsGroup MeinWetter:<%temp_temperature>,<Innentemperatur>,inTemp MeinWetter:<%temp_temperature>,<Aussentemperatur>,outTemp
attr WetterJetzt alias Wetterdaten
attr WetterJetzt valueFormat { inTemp => '%1.f ° C', outTemp => '%1.f ° C' }
attr WetterJetzt group Meteo
attr WetterJetzt room Wetter
attr WetterJetzt sortby 1
Der Haken:
- Damit beim Start schon ein Wert angezeigt wird muss die "at"-Zeit zwischen 1 bis 4 Sek liegen
- Es wird jede 1, oder 4, Sek eingelesen
Hat jemand einen Lösungsansatz bei dem der Wert
- beim Start in der "readingsGroup" angezeigt wird
und dann
- mit dem Intervall von 30Min neu angezeigt wird
Vielen Dank für die Unterstützung.
Bin kein Experte, hab das mit dem "Start" nicht ganz verstanden, aber zu
Zitat- mit dem Intervall von 30Min neu angezeigt wird
hätte ich den Vorschlag -vorausgesetzt die Datei wird nicht sekündlich von WEEWX aktualisiert- es mit inotify (https://forum.fhem.de/index.php/topic,83538.msg757621.html#msg757621) anzugehen und hiermit bei jeder Änderung der Textdatei die Daten zu holen.
Gruß
Thomas
Hallo Thomas
Danke für den Tip, aber nicht das wirkliche Problem.
Mit "start" = Start von FHEM im Browser.
Das Hauptproblem ist: wie die Werte beim Browser Start anzeigen.
Einlesen geht, nur die automatische Anzeige im Browser Dashboard nicht.
Gruss
Walter
Die Lösung gefunden:
In "99_myUtils.pm" den Rückgabewert geändert:
# allocate the data in fhem
fhem("sleep 0.1; setreading $obj inTemp $myintemp");
In fhem.cfg wie folgt angepasst
define MeinWetter CustomReadings
attr MeinWetter readingDefinitions mymetdata:{SetMeinWetter("MeinWetter")}
Nun werden die Werte beim Start eingelesen und wie gewünscht im "WetterJetzt" angezeigt.
Grüsse
Walter