Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
So ohne Weiteres ist das schwer zu interpretieren. Vielleicht stellst du das Log-Level mal auf 8 und triggerst den Baustein. Ein Blick in das Log hilft uns bestimmt weiter. Echt merkwürdig, dass eine der Messgrößen nicht richtig kommen soll. Der Text (lang und kurz) ist nur ne Übersetzung des WPcd1-Codes. Daher sind, wenn dann alle drei Ausgänge leer.
im Temp-Verzeichnis müsste eine Datei namens "EDOMI_LBSLBSID_MOSMIX_L_LATEST_(stationId).km l" liegen. Dort sind alle Rohinformationen drin. Wenn ich das richtig sehe, gibt es für deine Stations-ID keine Vorhersage für das signifikante Wetter:
im Temp-Verzeichnis müsste eine Datei namens "EDOMI_LBSLBSID_MOSMIX_L_LATEST_(stationId).km l" liegen. Dort sind alle Rohinformationen drin. Wenn ich das richtig sehe, gibt es für deine Stations-ID keine Vorhersage für das signifikante Wetter:
Der erste Fehler kommt aus einer Debug-Ausgabe. Wenn die temporäre Datei nicht existiert, wird trotzdem versucht das Dateidatum auszulesen.
Der zweite Fehler kommt daher, dass anscheinend der Download der Datei fehlerhaft war und die xml-Datei nicht richtig in einen JSON-String umgewandelt werden konnte. Das führt dann wiederum zu der fehlerhaften Array-Variablen.
Ich habe den Baustein jetzt so umgebaut, dass er die Fehler abfängt. Das bewirkt aber nur, dass die Fehler im LBS-Log landen und nicht im EDOMI--Log. Möglicherweise ist der DWD-Server manchmal kurz nicht erreichbar oder deine Internetverbindung gestört. Hier könnte man einen Loop bauen, der sicherstellt, dass die Datei wirklich geladen wurde. Oder man lebt mir dem Logeintrag und "hofft" dass es in der nächsten Stunde klappt.
Die Daten des DWD werden ohnehin nur drei bis vier mal am Tag aktualisiert. Ich meine mich zu erinnern, dass es 6 Uhr 12 Uhr und 18 Uhr passiert. Möglicherweise auch noch 0 Uhr. Das würde zu deinen Zeiten passen. Wenn du mit dem Stundentrigger arbeitest, wird 6 Uhr festgestellt, dass es noch keine neuen Daten gibt und 7 Uhr findet er dann neue Daten und versucht diese zu laden.
Lange Rede, kurzer Sinn: Version 0.3 im Download-Portal.
Wenn du mir Feedback geben würdest, ob die Meldungen jetzt im Log landen, würde ich die Anpassung auch für die anderen DWD-LBS vornehmen.
Wahrscheinlich kann die Datei nicht entpackt werden, die vom DWD-Server geladen wird. Hast du vielleicht mal nich einen Log-Auszug für mich (Level 8). Weiß zwar nicht, ob uns das hier weiterhilft, aber einen Blick könnten wir schon riskieren ;-)
Wahrscheinlich kann die Datei nicht entpackt werden, die vom DWD-Server geladen wird. Hast du vielleicht mal nich einen Log-Auszug für mich (Level 8). Weiß zwar nicht, ob uns das hier weiterhilft, aber einen Blick könnten wir schon riskieren ;-)
Anbei die Log-Datei ( Ich verwende den LBS 5x !) 4x Unzip fehlgeschlagen, 1x korrekt- ist das das Problem ?:
Es kann gut sein, dass bei gleichzeitigem Trigger die Datei blockiert ist und nicht entpackt werden kann. Das könntest du vielleicht mit Verzögerungs-LBS testen. Ich denke, dass hier minimale Werte reichen sollten.
Die Frage wäre, wie ich das von LBS-Seite her umgehen könnte. Man könnte x-Mal versuchen und dann erst aufgeben, aber das kann dann bei vielen LBS mit gleichzeitigem trigger auch dazu führen, dass jeder LBS die Datei lädt und entpackt. Alternativ könnte ein separater LBS sich um download und entpacken kümmern und anschließend die anderen LBS triggern. Das Problem ist also, dass aktuell alle meine DWD-LBS im Fall einer veralteten lokalen Datei bei gleichzeitigem Trigger auch gleichzeitig die neue Datei laden und diese dann mehrfach überschreiben (oder dies zumindest versuchen).
Ein Trigger-Ausgang (oder ein Wertauslöser an einem der Ausgänge) könnte auch eine Lösung sein, da man dann die Einzelabfragen kaskadieren kann und alle Folge-LBS auf die aktuellen Daten zugreifen. Vielleicht so:
Es kann gut sein, dass bei gleichzeitigem Trigger die Datei blockiert ist und nicht entpackt werden kann. Das könntest du vielleicht mit Verzögerungs-LBS testen. Ich denke, dass hier minimale Werte reichen sollten.
Ein Trigger-Ausgang (oder ein Wertauslöser an einem der Ausgänge) könnte auch eine Lösung sein, da man dann die Einzelabfragen kaskadieren kann und alle Folge-LBS auf die aktuellen Daten zugreifen. Vielleicht so:
Die Frage wäre, wie ich das von LBS-Seite her umgehen könnte.
Wie wäre ein eigener LBS der nur die Datei abholt und ablegt? Einstellbar wie oft. Alle anderen bleiben, holen aber kein File mehr ab sondern nutzen nur noch das lokale.
Wie wäre ein eigener LBS der nur die Datei abholt und ablegt? Einstellbar wie oft. Alle anderen bleiben, holen aber kein File mehr ab sondern nutzen nur noch das lokale.
Diese Idee finde ich garnicht schlecht. Sie hat aber den Makel, dass alle Nutzer daran denken müssen auch den Download-Unzip-LBS zu nutzen.
Oder der LBS prüft das Alter der heruntergeladenen Daten, und nur wenn älter als z.B 1h dann neu herunterladen. Machen die Darksky LBS auch so.
Das habe ich auch so drin. Das Problem entsteht aber, wenn mehrere Instanzen des LBS gleichzeitig getriggert werden. Wie ak68 gezeigt hat besteht das Problem nicht, wenn die LBS kaskadiert werden, da der Folge-LBS dann erkennt, dass die Datei aktuell ist. Bei gleichzeitigem Trigger kommt es eben zu Zugriffsproblemen beim Entpacken oder beim Laden der Datei.
Vielleicht wäre auch eine zufällige Verzögerung (0s - 3s) eine Lösung. Einer der LBS ist dann halt der Erste ;-)
Oder könnte man Prüfen ob ein anderer EXEC Teil des gleichen LBS-Typ gerade läuft? Dann könnte man mit einer kleinen while()-Schleife auf die anderen warten. Gibt es einen Instance-Counter o. ä.? ( gaert )
Wenn ich den Abruf aus dem EXEC-Teil raus nehme wäre die Logik-Engine kurz blockiert, wären geladen und entpackt wird und erst dann laufen die anderen LBS ab. Aber das ist möglicherweise Problematisch, wenn der Download mal lange dauert. Im EXEC Teil sind die Sachen schon gut aufgehoben.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar