[Modul] OpenWeatherMap

Fix zu EDIT2 ist im Modulstore/Beta,

bin nicht sicher, ob ich EDIT richtig verstanden habe, da gab es in den Versionshinweisen eine alte Benennung - war das gemeint?

ja, wahrscheinlich bin ich nur mit den Funktionen ducheinander gekommen:

Fatal error: Uncaught ArgumentCountError: Too few arguments to function OpenWeatherData_GetRawData(), 1 passed in /var/lib/symcon/scripts/39819.ips.php on line 4 and exactly 2 expected in /var/lib/symcon/scripts/__generated.inc.php:9911

Hast du noch einen Tip, wie ich Regen rausbekomme ? Das ist bei OWM ja echt Grütze, die geben bei 0mm einfach nix zurück:

$OpenWeatherOneCall_hourly=$rawarr->hourly;
$rain = get_object_vars($OpenWeatherOneCall_hourly[3]->rain)['1h'];

das fällt, falls es in 3h keinen Regen gibt, dann auf einen Fehler. Klar, kann ich alles mit IsObject & Co abfangen, aber kriege ich das mit deiner Funktion GetArrayElem nicht besser hin ?

das ist ja auch nichts anderes als geschicktes isset() (ich arbeite immer mit array‘s, also json_decode…, true).
Kannst die natürlich gern kopieren (…/libs/CommonStubs/common.php) bzw als Vorlage nehmen.

Ich habe bei mir für Scripte eine Datei mit Hilffunktionen gemacht, das ich in jedem Script include

require_once IPS_GetScriptFile(<ID von dem Hilfsscript>);
1 „Gefällt mir“

Ich spiele im Moment auch ein wenig mit dem Modul rum und hätte da eine grundsätzliche Frage:

Hat OpenWeatherData irgendeinen Vorteil oder etwas, was OpenWeatherOneCall nicht bietet?
Sprich, macht es irgendeinen Sinn eine Instanz des ersten Moduls zu erstellen, wenn ich das zweite bereits nutze?

Gruß
Slummi

OpenWeatherOneCell ist die neue API-Version und enthält alle Daten, die auch bei OpenWeatherData geholt werden.

von daher, OneCell reicht

Alles klar, danke dir!

Noch eine Frage zur Sortierung der Variablen:
Gibt es da irgendeine Logik, wie die sortiert werden? Bei mir ist das mehr oder weniger komplett durcheinander insbesondere was die Vorhersage-Variablen angeht. Ich habe an der Sortierung selbst nichts geändert. Ich habe nur einige Male die Anzahl der Vorhersageintervalle in der Instanz geändert. Vielleicht hat es damit zu tun?

Ich den schon, ich zähle die Position (glaube ich) einfach hoch, und mache da keine Blöcke.
Wenn du alle Variablen nochmal löscht, wird es wieder eine gute Voreinstellung der Position geben.

Servus Zusammen, gerade frisch aus dem Module Store geladen und beim beim erstellen egal welcher der drei Instanzen immer der gleiche Fehler:

Notice: Undefined index: Prefix in C:\ProgramData\Symcon\modules.store\demel42.openweathermap\libs\common.php(10) : eval()'d code on line 1214
(Code: -32603)

Ich nutze IPS 6.0
Kann mir jemand weiterhelfen?

ich schau mal gleich …

ok, ich habe das Modul fälschlicherweise als Kompatibel ab 6.0 eingetragen, verwende aber etwas (eben IPS_GetModule()["Präfix"]()) , das erst ab 6.1 zur Verfügung steht.

Da kann ich leider nichts machen, sorry für die fehlerhafte Kompatibilitätsangabe…

Danke für die schnelle Rückmeldung! Da werde ich dann wohl mal updaten :slight_smile:

Hallo,

was mir gefällt, das die Wetterdaten zB alle 5min aktualisiert werden und somit recht aktuell sind.

Was mir aufgefallen ist, das zB in der Vorhersage keine Schneemenge auftaucht, im aktuellen Wetter jedoch schon.

Dann habe ich das o.g Skript Mal verwendet um die HTMl Box zu erstellen mit der Vorhersage. Allerdings komme ich damit nicht zurecht, diese auf meine Bedürfnisse anzupassen.
Ich würde gerne die Schriftgröße etwas kleiner machen, schaffe dieses aber nur bei den Angaben von der min/max Temperatur und nicht bei Bewölkung, Regen und Wind.

Auch bräuchte ich dort die Vorhersage ‚Aktuell‘ und ‚Heute‘ nicht. Mir würde die reine Vorhersage ab morgen reichen.
Auch wäre es schön die Angaben Bewölkung, Regen,Wind rechtsbündig darzustellen.

Hat da jemand eine Ahnung von, was man dort am Skript ändern muss?

Hallo,
ich versuche das Modul bei mir zum Laufen zu bringen, scheitere aber.
Ich habe keine eigene Wetterstation, sondern möchte lediglich die Temperatur, Windstärke etc. an meinem Standort abrufen.
Hierfür habe ich mich kostenlos auf der openweather Homepage registriert und mir einen API Key generiert. In IPS habe ich die Instanz „OpenWeatherMap - OneCall-Datenabruf“ gewählt und hier den API-Key eingetragen.
Leider bleiben seit gestern Nachmittag die Werte auf „0“. Dabei ist es egal, ob ich die Location Daten manuell oder über das Modul „Location“ hole.

Wenn ich die Daten manuell aktualisiere, gibt der Debug folgenden Fehler aus:

Hier im Thread steht, dass der Fehler 401 auf einen vielleicht noch nicht aktivierten Key hinweisen kann. Allerdings müsste er doch seit gestern Nachmittag schon aktiviert worden sein.
Habe ich noch vergessen etwas einzustellen oder grundlegendes nicht beachtet?

Viele Grüße
Marvin

Die Meldung ist ja klar „Invalid API Key“, da scheint etwas nicht zu passen. Den solltest du aus dem BIld entfernen/schwärzen :wink: , wobei er ja eh nicht komplett ist.

Hast du in den Grundeinstellungen etwas eingetragen
grafik

bzw. im Location Control von Symcon, sonst gibt es keinen Ort, den das Modul verwenden kann.

Hallo Ralf, danke für die Info des sichtbaren Keys.
Ich habe im Location Control, als auch manuell im OpenWeather Modul meinen Wohnsitz angegeben. Dies hat leider keine positiven Auswirkungen.

Im Modul steht der Fehler "Instanz ist inaktiv (HTTP-Fehler).

Muss denn im API-Key Fenster noch etwas anderes als der Key der Homepage eingetragen werden?

Ich lese auch oft diesen Befehl: https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&appid={API key}

Weis nicht, welche Key du genau meinst, aber das ist dieser API-Key, um den es geht

Hier passt du den API beantragen: Pricing - OpenWeatherMap

Genau, ich habe den Free-Plan genommen und diesen Key kopiert. :confused:

Ich habe heute auch mal auf den OneCall-Datenabruf umgestellt.
Was mir noch nicht ganz klar ist, ist das der gleiche API-Key oder muss man einen neuen erzeugen?
Daten kömmen mit dem alten erstmal an, weiss nur nicht ob das so richtig ist?

… und, hat einer ggf. schon per Script eine hübsche HTML-Box ggf. auch mit anderen Icons erstellt, die er hier gerne Teilen möchte?
Bei dem Standardscript ist im WF doch schon alles recht klein und nicht passend angeordnet.
HTML ist hier auch eher etwas, mit dem ich mich noch nicht wirklich beschäftigt habe.

Viele Grüße,
Doc

Ich habe mit dem gleiche Key weiter gemacht. Das ist zwar schon eine Weile her, aber ich kann mich da an keine Besonderheit erinnern.

Welche API nutzt du denn für OneCall? Bulk?

Scheint nicht (mehr) Teil des „Freemium plan“ zu sein.

Zu „One Call“ sollte doch gehen bzw. etwas anderes sein
grafik

Auf der Seite von OpenWeather (wo auch der API-Key zu feinden ist)
a) steht neben dem APIKey „Status=active“?
b) es gibt den TAB „Services“: steht da „das richtige“?
c) es gibt einen Tab „Block log“

es ist wirklich zu lange her, das ich mich daran erinnern könnte (und auch zuviel passiert), aber das war schon unproblematisch. 24h Wartezeit wäre m.E. ok, aber mehr eher ungewöhnlich.

Sonst kannst Du mal ein Debug in der Instanz machen und mir schicken (demel42@web.de), dann kann ich mal versuchen das aufzurufen.
Deinen API-Key kannst du ja bei Bedarf danach ersetzen, indem du einen Neune generierst und den alten löscht