Wetteranzeige

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • @stein17, ich kenne mich mit Skin-Programmierung gar nicht aus. Gerne auch ignorieren, was ich sage, wenn ich hier das Thema verfehle ...

    Ansonsten, normalerweise funktionieren alle wichtigen Kalender-Funktionen, Zeit-Funktionen, APIs (z.B. Wetter) mit UTC (im Prinzip, was du GMT nennst). Typische "Zeitprobleme" werden normalerweise im Computer vollkommen in praktisch UTC programmiert (wobei da die interne Uhr halt zu einem bestimmten UTC-Zeitpunkt anfängt zu laufen, oft 1970-01-01 00:00), und erst bei der Darstellung für den Benutzer in die gewünschte (lokale) Zeitzone gewandelt. Häufige Fehler(die ich sah) sind beispielsweise der Versuch von Programmierern, Zeitarithmetik in lokaler Zeit zu machen - führt sehr oft zu (manchmal schwer zu findenden) Fehlern, Ein Grund ist dass (wegen Sommerzeit) die Zeitdifferenz zwischen UTC und lokaler Zeit keine Konstante ist. Auch ist die lokale Zeit nicht immer eindeutig (bei uns gibt es eine Stunde im Jahr zwischen 2 und 3 Uhr, die zweimal vorkommt), Das alles sind Gründe (bei weitem nicht die einzigen), wieso normalerweise APIs in UTC designed sind. Kurzes Googlen scheint das auch für MSN Weather zu bestätigen. Sollte auch leicht zu bestätigen sein, durch Überprüfen von Sonnenaufgang/Untergang (beim Wetter selbst merkt man sonst 2 Stunden nicht so leicht).
  • Für MSN Weather kann ich meinen Punkt nicht leicht zeigen, und möchte den auch nicht behaupten ohne Beleg. Bei einem offenen Wetter-API (open-meteo.com) eine Abfrage für Berlin (die man auch auf seinem Receiver absetzen kann, oder auf Linux oder Windows oder MAC PC):
    curl "https://api.open-meteo.com/v1/forecast?latitude=52.52&longitude=13.41¤t=temperature_2m&daily=sunrise&hourly=temperature_2m,rain"
    Mit dem Ergebnis

    Quellcode

    1. {"latitude":52.52,"longitude":13.419998,"generationtime_ms":0.05900859832763672,"utc_offset_seconds":0,"timezone":"GMT","timezone_abbreviation":"GMT","elevation":38.0,"current_units":{"time":"iso8601","interval":"seconds","temperature_2m":"°C"},"current":{"time":"2024-07-12T10:30","interval":900,"temperature_2m":24.0},"hourly_units":{"time":"iso8601","temperature_2m":"°C","rain":"mm"},"hourly":{"time":["2024-07-12T00:00","2024-07-12T01:00","2024-07-12T02:00","2024-07-12T03:00","2024-07-12T04:00","2024-07-12T05:00","2024-07-12T06:00","2024-07-12T07:00","2024-07-12T08:00","2024-07-12T09:00","2024-07-12T10:00","2024-07-12T11:00","2024-07-12T12:00","2024-07-12T13:00","2024-07-12T14:00","2024-07-12T15:00","2024-07-12T16:00","2024-07-12T17:00","2024-07-12T18:00","2024-07-12T19:00","2024-07-12T20:00","2024-07-12T21:00","2024-07-12T22:00","2024-07-12T23:00","2024-07-13T00:00","2024-07-13T01:00","2024-07-13T02:00","2024-07-13T03:00","2024-07-13T04:00","2024-07-13T05:00","2024-07-13T06:00","2024-07-13T07:00","2024-07-13T08:00","2024-07-13T09:00","2024-07-13T10:00","2024-07-13T11:00","2024-07-13T12:00","2024-07-13T13:00","2024-07-13T14:00","2024-07-13T15:00","2024-07-13T16:00","2024-07-13T17:00","2024-07-13T18:00","2024-07-13T19:00","2024-07-13T20:00","2024-07-13T21:00","2024-07-13T22:00","2024-07-13T23:00","2024-07-14T00:00","2024-07-14T01:00","2024-07-14T02:00","2024-07-14T03:00","2024-07-14T04:00","2024-07-14T05:00","2024-07-14T06:00","2024-07-14T07:00","2024-07-14T08:00","2024-07-14T09:00","2024-07-14T10:00","2024-07-14T11:00","2024-07-14T12:00","2024-07-14T13:00","2024-07-14T14:00","2024-07-14T15:00","2024-07-14T16:00","2024-07-14T17:00","2024-07-14T18:00","2024-07-14T19:00","2024-07-14T20:00","2024-07-14T21:00","2024-07-14T22:00","2024-07-14T23:00","2024-07-15T00:00","2024-07-15T01:00","2024-07-15T02:00","2024-07-15T03:00","2024-07-15T04:00","2024-07-15T05:00","2024-07-15T06:00","2024-07-15T07:00","2024-07-15T08:00","2024-07-15T09:00","2024-07-15T10:00","2024-07-15T11:00","2024-07-15T12:00","2024-07-15T13:00","2024-07-15T14:00","2024-07-15T15:00","2024-07-15T16:00","2024-07-15T17:00","2024-07-15T18:00","2024-07-15T19:00","2024-07-15T20:00","2024-07-15T21:00","2024-07-15T22:00","2024-07-15T23:00","2024-07-16T00:00","2024-07-16T01:00","2024-07-16T02:00","2024-07-16T03:00","2024-07-16T04:00","2024-07-16T05:00","2024-07-16T06:00","2024-07-16T07:00","2024-07-16T08:00","2024-07-16T09:00","2024-07-16T10:00","2024-07-16T11:00","2024-07-16T12:00","2024-07-16T13:00","2024-07-16T14:00","2024-07-16T15:00","2024-07-16T16:00","2024-07-16T17:00","2024-07-16T18:00","2024-07-16T19:00","2024-07-16T20:00","2024-07-16T21:00","2024-07-16T22:00","2024-07-16T23:00","2024-07-17T00:00","2024-07-17T01:00","2024-07-17T02:00","2024-07-17T03:00","2024-07-17T04:00","2024-07-17T05:00","2024-07-17T06:00","2024-07-17T07:00","2024-07-17T08:00","2024-07-17T09:00","2024-07-17T10:00","2024-07-17T11:00","2024-07-17T12:00","2024-07-17T13:00","2024-07-17T14:00","2024-07-17T15:00","2024-07-17T16:00","2024-07-17T17:00","2024-07-17T18:00","2024-07-17T19:00","2024-07-17T20:00","2024-07-17T21:00","2024-07-17T22:00","2024-07-17T23:00","2024-07-18T00:00","2024-07-18T01:00","2024-07-18T02:00","2024-07-18T03:00","2024-07-18T04:00","2024-07-18T05:00","2024-07-18T06:00","2024-07-18T07:00","2024-07-18T08:00","2024-07-18T09:00","2024-07-18T10:00","2024-07-18T11:00","2024-07-18T12:00","2024-07-18T13:00","2024-07-18T14:00","2024-07-18T15:00","2024-07-18T16:00","2024-07-18T17:00","2024-07-18T18:00","2024-07-18T19:00","2024-07-18T20:00","2024-07-18T21:00","2024-07-18T22:00","2024-07-18T23:00"],"temperature_2m":[19.4,19.0,18.3,18.3,18.6,18.8,19.7,19.3,20.5,20.7,22.8,25.1,25.9,25.7,23.6,22.4,22.7,22.4,21.9,21.3,20.9,20.9,20.8,20.6,20.5,18.7,17.1,15.9,15.3,14.9,14.2,14.4,15.5,17.4,19.2,20.5,21.7,22.0,22.9,22.8,22.7,22.5,21.6,20.1,18.5,17.4,16.6,16.0,15.5,15.0,14.9,14.0,13.9,14.9,16.7,18.3,20.0,21.7,23.4,24.3,24.9,25.5,25.6,25.7,25.6,25.0,24.3,23.1,21.7,20.7,20.1,19.5,18.9,18.0,17.3,16.5,16.0,16.9,19.1,21.7,23.9,25.3,26.5,27.4,28.2,28.7,28.9,29.0,28.9,28.6,27.9,26.6,25.0,23.6,22.7,22.1,21.7,21.3,21.0,20.8,20.5,20.2,20.2,20.4,20.8,21.3,22.0,22.9,23.7,24.4,25.1,25.6,25.9,25.9,25.6,24.9,23.8,22.7,21.7,20.7,19.7,18.8,17.9,17.5,17.8,18.6,19.1,20.3,20.8,21.4,22.3,23.3,24.1,24.5,24.7,24.7,24.5,24.1,23.4,22.2,20.7,19.4,18.5,17.7,17.0,16.3,15.7,15.5,16.0,17.0,18.3,19.9,21.9,23.6,24.8,25.7,26.5,27.0,27.3,27.4,27.2,26.9,26.3,25.3,24.2,23.0,21.8,20.5],"rain":[0.00,0.00,0.00,0.00,0.00,0.50,0.30,1.10,0.50,0.10,0.00,0.00,0.00,0.00,1.90,6.60,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,1.90,0.20,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.20,0.20,0.20,0.30,0.30,0.30,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00]},"daily_units":{"time":"iso8601","sunrise":"iso8601"},"daily":{"time":["2024-07-12","2024-07-13","2024-07-14","2024-07-15","2024-07-16","2024-07-17","2024-07-18"],"sunrise":["2024-07-12T02:58","2024-07-13T02:59","2024-07-14T03:01","2024-07-15T03:02","2024-07-16T03:03","2024-07-17T03:05","2024-07-18T03:06"]}}
    Man sieht, Zeitstempel sind in ISO8061 Format. ISO 8601 – Wikipedia Anfrage hatte ich kurz nach 12:30 MESZ (UTC+2:00) gemacht. Ergebnis erwartungsgemäß "time":"2024-07-12T10:30" (UTC, API würde auch Zeitverschiebung hergeben, siehe Wiki-Artikel). Sonnenaufgang auch erwartungsgemäß "2024-07-12T02:58" UTC = "2024-07-12T04:58" MESZ. In ISO Zeitformat könnte man das auch eindeutig als "2024-07-12T04:58+02:00" schreiben. "2024-07-12T04:58+02:00" und "2024-07-12T03:58" bezeichnen den identischen Zeitpunkt, anders dargestellt.

    Aber jetzt halte ich mich wieder zurück, da ich keine Ahnung habe von Skin-Programmierung (aber durchaus Erfahrung in APIs, Kalender und Zeit-Funktionen und Programmierung) und auch nicht beurteilen kann, ob das relevant ist für Skin-Programmierung.
    Übrigens läuft die interne Receiver Uhr auch (praktisch gesehen) in UTC. Für die Anzeige (z.B. date-Kommando) wird die eingestellte Zeitzone angezeigt. Systemaufrufe wie time() geben selbstverständlich Sekunden basierend auf Unix-Zeitstempel (praktisch basierend auf UTC) zurück. D.h. In England und USA und sonstwo auf der Welt zum selben Zeitpunkt den identischen Zeitstempel.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von buers () aus folgendem Grund: Tippfehler korrigiert, der genau Zeitstempel (des Sonnenaufgangs) betraf, und damit möglicherweise für die Argumentation sinnentstellend war.

  • Danke, ich habe alle möglichen py, s, die mit dem Wetterplugin zu tun haben, mir näher angeschaut.
    Ich habe von Python null Ahnung, eventuell schafft es jemand die Intervalle der Wetteraktualisierung zu verändern.
    Kann auch sein, dass es neuerdings so von MSN vorgegeben ist.

    Einmal das: MSNWeather.py aus Sources
    def getObservationTime(self):
    skey = "-1"
    if skey in weathermsn.weatherData.weatherItems:
    item = weathermsn.weatherData.weatherItems[skey]
    if item.observationtime != "":
    c = time.strptime(item.observationtime, "%H:%M:%S")
    return time.strftime("%H:%M", c)
    else:
    return _("n/a")
    else:
    return _("n/a")

    Eben habe ich das gefunden, der Pfad ist: usr/lib/enigma2/python/Components/WeatherMSN.pyc
    Wenn ich mir die py im Git anschaue, dann könnte das die richtige Stelle sein


    from enigma import eEnv, eTimer
    from Plugins.Extensions.WeatherPlugin.MSNWeather import MSNWeather


    class WeatherMSN:
    TIMER_INTERVAL = 1800

    def __init__(self):
    self.weatherData = MSNWeather()
    self.callbacks = []
    self.callbacksAllIconsDownloaded = []
    self.timer = eTimer()
    self.timer.callback.append(self.getData)

    def getData(self):
    self.timer.stop()
    self.weatherData.getDefaultWeatherData(self.callback, self.callbackAllIconsDownloaded)
    self.timer.startLongTimer(self.TIMER_INTERVAL)

    def updateWeather(self, weather, result, errortext):
    if result == MSNWeather.OK:
    self.timer.stop()
    self.weatherData = weather
    self.weatherData.callback = None
    self.weatherData.callbackShowIcon = None
    self.weatherData.callbackAllIconsDownloaded = None
    self.callback(result, errortext)
    self.callbackAllIconsDownloaded()
    self.timer.startLongTimer(self.TIMER_INTERVAL)

    Was bedeutet der Wert 1800 ?
    Mein letztes Update ist schon 2 Stunden 50 Minuten her.
    Für HD Skin habe ich es fertig, MSN und Open Meteo.
    stein17 :thumbsup:

Flag Counter