Eine Alternative wäre, nur EINEN LBS zu verwenden und z.B. 10 DWD-Werte auf 10 Eingängen selbst zu definieren (evtl. mit Zusatz wie sum, max ..) Ich glaube mich zu Erinnern, dies hast Du bei einer der ersten Versionen bereits so vorgesehen ?!
Ankündigung
Einklappen
Keine Ankündigung bisher.
DWD Wettervorhersage
Einklappen
X
-
Naja genau deshalb ist ja die Einzelabfrage entstanden, da jeder andere Infos für jede Messgröße möchte. Die "Standardinfos" gibt es ja schon mit diesem LBS. Das sind Tageswerte, die vom DWD ermittelt werden. Da gibt es also in den Rohdaten des DWD nur einen (oder zwei) Datenpunkte für 24h. (LBS19000937)
Der LBS für die Einzelabfrage kann die Messgrößen, die "nur" als Stundendaten vorliegen kumulieren (min, max, sum) oder einen spezifischen Stundenwert auslesen. Wenn man den jetzt auf mehrere Größen aufbohren will, bekommt man doppelt so viele Eingänge wie Messgrößen, da zu jeder Messgröße die Kumulation oder die Stunde angegeben werden muss (E4 + E5) x Anzahl der Messgrößen.
Oder ich nutze ein Trennzeichen, um beides in eine Input-Zelle zu bekommen (z.B. PPPP|max). Aber das ist auch nicht gerade schön.
Aber das Grundproblem bleibt ja bestehen. Wenn einer dann mal mehr als 10 Einzelabfragen machen will, muss eine zweite Instanz her und dann ist das "Problem" wieder da.
Ich denke die Kaskadierung ist eine gute Lösung. Vielleicht finde ich noch eine Möglichkeit, dass die Instanzen erkennen, dass bereits eine Instanz läuft und dann wartet. Vielleicht eine art Lock-Datei o. ä. Dann wäre der Nutzer völlig frei von Kaskadierung oder Verzögerung.Gruß
Stefan
Kommentar
-
Lock-Datei wäre doch eine Lösung, oder ein Flag in der DB. Allerdings fände ich nach wie vor die Idee mit dem einzelnen LBS, welcher sich nur um den Download kümmert, am einfachsten und sinnvollsten. Warum sollte das kompliziert sein für den Anwender, viele LBS setzen andere voraus (Beschattung z.B. den Sonnenstand usw.) oder gar die Installation von Linux-Diensten. Hier genügt doch ein deutlicher Hinweis in der Hilfe. Damit hast du die Datei garantiert lokal liegen und das auch nur in dem Rhytmus, der benötigt wird. Prüfung von laufenden Prozessen dagegen sind recht undurchsichtig, wer weiß ob der gerade laufende denn eine Datei lädt und sicher entpackt, evtl. hängt der sich auch einmal auf usw.
Kommentar
-
@MrIcemanLE:
Für den(LBS19000937) existiert der Ausgang A5 "Stunde".
Kannst du das mal kurz erklären, was dort genau ausgegeben wird?
Ich verstehe es aktuell so, dass dort die nächsten 10 Werte der nächsten 10 Stunden ausgegeben werden. Wenn ich also den ersten Wert nehme habe ich den Wert für die aktuelle Stunde.
Korrekt?
Kommentar
-
Du meinst sicher den *939 Einzelwertabfrage? Denn der 937 hat keinen Stundenausgang.
Bei der Einzelwertabfage kann man die Daten für einen Tag "zusammenfassen" lassen. Da ja nur ein Wert pro Tag ausgegeben wird, muss man sich bei manchen Werten entscheiden, wie man diesen ermitteln will. Beispiel: Luftfeuchtigkeit. Den einen interessiert das Maximum, den anderen der Wert zu einer bestimmten Uhrzeit etc.
Wenn man jetzt also das Maximum der Luffeuchtigkeit haben will, liefert der DWD Stundenwerte zurück und der Ausgang enthält dann die Stunde des Tages in der das gesuchte Maximum auftreten wird.
Noch ein Besipiel ist die Höchsttemperatur. Hier gibt es zwei Möglichkeiten. Zum einen gib es Vorhersagewerte im Stundentakt vom DWD. Da kann man mit der max-Funktion des LBS die "maximale" Stunde ermitteln. Unter einer anderen Messgröße (Tx [glaube ich]) bekommt man vom DWD genau zwei Werte für einen Vorhersagetag. Das Maximum von 18Uhr bis 6Uhr und das Maximum von 6Uhr bis 18Uhr. Diese Werte werden vom DWD immer in die 6Uhr und 18Uhr "Spalte" geschrieben. Daher geht hier die Info über die maximale Stunde verloren. Dafür bekommt man über diesen Weg die maximale vorhergesagte Temperatur. Diese wird in der Regel höher sein, also die die man mit dem maximum der einzelnen Stundenwerte ermitteln könnte.
Lange Rede kurzer Sinn: A5 gibt die Stunde aus in der das Min/Max am jeweiligen Tag in den Vorhersagedaten gefunden wurde.Gruß
Stefan
Kommentar
-
Würde vielleicht jemand mal ein Beispiel der Logik zeigen, wie man das mit den Wettersymbolen macht?
Beim DWD bekommt man ja auch Wettericons, welche Dateinamen aus Zahlen besitzen.
Die vom LBS ausgegebenen Zahlen an A16 enthalten aber z.B. aktuell Zahlen, welche als Wettericon gar nicht vorhanden sind...
Kommentar
-
Zitat von Glotzkowski Beitrag anzeigenDie vom LBS ausgegebenen Zahlen an A16 enthalten aber z.B. aktuell Zahlen, welche als Wettericon gar nicht vorhanden sind...
Tabellenblatt "Zuordnung von Symbolen"Gruß David
Kommentar
-
Zitat von Glotzkowski Beitrag anzeigenDie vom LBS ausgegebenen Zahlen an A16 enthalten aber z.B. aktuell Zahlen, welche als Wettericon gar nicht vorhanden sind...
Dieser nutzt die Icons, die auch der WU LBS genutzt hat: https://erikflowers.github.io/weather-icons
Gruß
Stefan
Kommentar
-
Habe einmal eine Frage. Bei mir ist der Wochentag kurz bei der Vorhersage auf Englisch und bei den Einzelwerten auf Deutsch. Woran liegt dass und wie kann ich es generell auf Deutsch stellen? Danke und Gruß. PS Die Beisteine sind super.
deutsch-englisch.png
Kommentar
-
Zitat von MrIcemanLE Beitrag anzeigenWerde das in der nächsten Version mit ändern.
- Likes 1
Kommentar
-
Zitat von wintermute Beitrag anzeigenSollte man sowas nicht nur im EXEC Teil tun und sonst tunlichst unterlassen?
LBS 19000937 Sprache funktioniert nicht:
Code:###[LBS]### <?php function LB_LBSID($id) { if ($E = logic_getInputs($id)) { setLogicElementVar($id, 103, $E[20]['value']); //set loglevel to #VAR 103 if (logic_getStateExec($id) == 0) { if ($E[1]['refresh'] == 1 && $E[1]['value'] != 0 && (!isEmpty($E[2]['value']))) { logic_setInputsQueued($id, $E); logic_callExec(LBSID, $id); } } else { logic_setInputsQueued($id, $E); } } } ?> ###[/LBS]### ###[EXEC]### <?php require(dirname(__FILE__) . "/../../../../main/include/php/incl_lbsexec.php"); set_time_limit(300); sql_connect(); [COLOR=#c0392b]setlocale(LC_TIME, "de_DE.utf8");[/COLOR]
Code:###[LBS]### <?php [COLOR=#c0392b]setlocale(LC_TIME, "de_DE.utf8");[/COLOR] function LB_LBSID($id) { if ($E = logic_getInputs($id)) { setLogicElementVar($id, 103, $E[10]['value']); //set loglevel to #VAR 103 if (logic_getStateExec($id) == 0) { if ($E[1]['refresh'] == 1 && $E[1]['value'] != 0 && (!isEmpty($E[2]['value']))) { logic_setInputsQueued($id, $E); setLogicElementVar($id, 1, $E[3]['value']); logic_callExec(LBSID, $id); } } else { logic_setInputsQueued($id, $E); } } } ?> ###[/LBS]### ###[EXEC]### <?php require(dirname(__FILE__) . "/../../../../main/include/php/incl_lbsexec.php"); set_time_limit(300); sql_connect(); [COLOR=#c0392b]setlocale(LC_TIME, "de_DE.utf8");[/COLOR]
Gruß
Stefan
Kommentar
Kommentar