NEWS
Test Adapter pirate-weather
-
@icebear sagte in Test Adapter pirate-weather:
ich würd dann gerne die originalen von DarkSky nehmen, die hab ich schon unter VIS-2.0 liegen
Wo gibt es diese?
-
-
Der ist noch nicht schick
das kommt im laufe der Zeit - siehe ersten Beitrag. Icons können wir da auch noch machen - kannst mir das gerne in einem issue posten, dann lade ich die (im iobroker) hoch (wenn man das zur verfügungstellen darf)
-
Hab mal hourly bissle schicker gemacht und time wird jetzt in ms umgerechnet und damit vom Admin als Datum dargestellt.
-
Hab ihn heute noch schick gemacht.
- States sollten jetzt alle ordentlich aussehen.
- Stundenanzahl ist begrenzbar
- Zeitdaten sind jetzt alle iobroker konform
- Windrichtung gibts als Kurztext
Fehlt noch der Einbau von Imperial, CA und UK - bedeutet aktuell bleibt°C
in common.unit stehen auch wenn man auf imperial umstellt. Die Werte sind in dem Fall aber Fahrenheit.EDIT: das ist jetzt auch drin
EDIT2:
- Aufnahme in latest repo beantragt
- Platzhaltericon ersetzt
-
Achtung
Ich musste den API Token absichern/verschlüsselt speichern wegen Warnungen vom Checker. Heißt ihr müsst im Admin den Token neu eingeben.
-
v0.1.3
BREAKING: cloudCover, precipProbability, humidity and moonPhase are now percentage values
-
Ist interessant...
siehe Original API von Darksky (Bereits abgeschaltet)
und
siehe Original API von Pirate-Weather
Es gab niemals eine numerische Zuordnung oder Bereitstellung eines Icon-Sets seitens Darksky (Und das wäre mir vor ein paar Tagen auch aufgefallen bei der Einbindung von Pirate-Weather ins NSPanel)...
Keine Ahnung wo das Icon-Set herkommt oder wer es erstellt hat, aber es wäre deutlich einfacher, die Icons an die API-Bezeichner anzupassen (also Bilder alphanumerisch zu benennen, anstatt im Adapter numerisch zu machen), als umgekehrt...
-
Das wäre übrigens die Übersetzung von Pirate-Weather-Icons in Material Design Icons, falls es jemanden hilft:
function GetPirateWeatherIcon (icon: string): string { try { switch (icon) { case 'cloudy': case 'mostly-cloudy-day': case 'mostly-cloudy-night': return 'weather-cloudy'; case 'fog': case 'mist': case 'smoke': return 'weather-fog'; case 'hail': return 'weather-hail'; case 'haze': return 'weather-hazy' case 'thunderstorm': return 'weather-lightning'; case 'possible-precipitation-day': case 'possible-precipitation-night': return 'weather-lightning-rainy'; case 'clear-night': case 'mostly-clear-night': return 'weather-night'; case 'partly-cloudy-night': return 'weather-night-partly-cloudy'; case 'partly-cloudy-day': return 'weather-partly-cloudy'; case 'possible-rain-day': case 'possible-rain-night': return 'weather-partly-rainy'; case 'possible-snow-night': case 'possible-snow-day': return 'weather-partly-snowy'; case 'possible-sleet-day': case 'possible-sleet-night': return 'weather-partly-snowy-rainy'; case 'rain': case 'heavy-rain': case 'precipitation': return 'weather-pouring'; case 'drizzle': case 'light-rain': return 'weather-rainy'; case 'light-snow': case 'snow': return 'weather-snowy'; case 'heavy-sleet': case 'heavy-snow': case 'flurries': return 'weather-snowy-heavy'; case 'sleet': case 'light-sleet': case 'very-light-sleet': return 'weather-snowy-rainy'; case 'clear-day': case 'mostly-clear-day': return 'weather-sunny'; case 'dangerous-wind': return 'weather-tornado'; case 'wind': return 'weather-windy'; case 'breezy': return 'weather-windy-variant'; default: return 'alert-circle-outline'; } } catch (err: any) { log('error at function GetPirateWeatherIcon: ' + err.message, 'warn'); } return ''; }
-
@ticaki sagte in Test Adapter pirate-weather:
v0.1.3
BREAKING: cloudCover, precipProbability, humidity and moonPhase are now percentage values
instance system.adapter.pirate-weather.0 in version "0.1.3" (non-npm: ticaki/ioBroker.pirate-weather#95e53a4f7fea022c9735b08b89e089b0c8381a8a) started with pid 3232 host.SmartHome 2025-08-13 04:39:55.406 info instance system.adapter.web.1 in version "7.0.9" started with pid 7656 host.SmartHome 2025-08-13 04:39:55.389 info instance system.adapter.web.0 in version "7.0.9" started with pid 13580 pirate-weather.0 2025-08-13 04:39:40.854 error Error fetching data from Pirate Weather API: {"message":"Request failed with status code 404","name":"AxiosError","stack":"AxiosError: Request failed with status code 404\n at settle (C:\\SmartHome\\node_modules\\iobroker.pirate-weather\\node_modules\\axios\\lib\\core\\settle.js:19:12)\n at Unzip.handleStreamEnd (C:\\SmartHome\\node_modules\\iobroker.pirate-weather\\node_modules\\axios\\lib\\adapters\\http.js:599:11)\n at Unzip.emit (node:events:530:35)\n at endReadableNT (node:internal/streams/readable:1698:12)\n at processTicksAndRejections (node:internal/process/task_queues:90:21)\n at Axios.request (C:\\SmartHome\\node_modules\\iobroker.pirate-weather\\node_modules\\axios\\lib\\core\\Axios.js:45:41)\n at processTicksAndRejections (node:internal/process/task_queues:105:5)\n at PirateWeather.getData (C:\\SmartHome\\node_modules\\iobroker.pirate-weather\\src\\main.ts:88:28)\n at PirateWeather.getPirateWeatherLoop (C:\\SmartHome\\node_modules\\iobroker.pirate-weather\\src\\main.ts:70:13)\n at PirateWeather.onReady (C:\\SmartHome\\node_modules\\iobroker.pirate-weather\\src\\main.ts:62:9)","config":{"transitional":{"silentJSONParsing":true,"forcedJSONParsing":true,"clarifyTimeoutError":false},"adapter":["xhr","http","fetch"],"transformRequest":[null],"transformResponse":[null],"timeout":10000,"xsrfCookieName":"XSRF-TOKEN","xsrfHeaderName":"X-XSRF-TOKEN","maxContentLength":-1,"maxBodyLength":-1,"env":{},"headers":{"Accept":"application/json, text/plain, */*","User-Agent":"axios/1.11.0","Accept-Encoding":"gzip, compress, deflate, br"},"method":"get","url":"https://api.pirateweather.net/forecastxxxxxxxxxxxxxxxxxxxxxxxxxx?units=si&icon=pirate","allowAbsoluteUrls":true},"code":"ERR_BAD_REQUEST","status":404}
-
@sigi234 sagte in Test Adapter pirate-weather:
45:41)\n at processTicksAndRejections (node:internal/process/task_queues:105:5)\n at PirateWeather.getData (C:\SmartHome\node_modules\iobroker.pirate-weather\src\main.ts:88:28)\n at PirateWeather.getPirateWeatherLoop (C:\SmartHome\node_modules\iobroker.pirate-weather\src\main.ts:70:13)\n at PirateWeather.onReady (C:\SmartHome\node_modu
sind die xxxx wirklich das token oder hast du übersehen das man ab 0.1.2 das Token einmalig neu eingeben muß, weils jetzt verschlüsselt ist?
-
@ticaki sagte in Test Adapter pirate-weather:
@sigi234 sagte in Test Adapter pirate-weather:
45:41)\n at processTicksAndRejections (node:internal/process/task_queues:105:5)\n at PirateWeather.getData (C:\SmartHome\node_modules\iobroker.pirate-weather\src\main.ts:88:28)\n at PirateWeather.getPirateWeatherLoop (C:\SmartHome\node_modules\iobroker.pirate-weather\src\main.ts:70:13)\n at PirateWeather.onReady (C:\SmartHome\node_modu
sind die xxxx wirklich das token oder hast du übersehen das man ab 0.1.2 das Token einmalig neu eingeben muß, weils jetzt verschlüsselt ist?
Nein, hab ich ersetzt, Token wurde neu eingegeben.
Ev.wegen Node 22 ?Edit:
Geht wieder, API Key noch mal einggeben.
-
@sigi234
Super! Der Adapter wird mit nodejs22 und bookworm bei mir produktiv genutzt und trixie entwickelt -
Prinzipiell funzt der Adapter super - vielen Dank dafür!
Ab und an läuft er aber auf einen Timeout
Error fetching data from Pirate Weather API: {"message":"timeout of 10000ms exceeded","name":"AxiosError","stack":"AxiosError: timeout of 10000ms exceeded
Wäre evtl. hilfreich, wenn man den Timeout in den Settings beeinflussen könnte
-
@codierknecht
sag mir was du da brauchst - 10 Sekunden heißt für mich - brauch 100 mal länger ist offline. Der ist mit 10 Sekunden schon 3 mal höher als ich maximal erwarten würde - 60 sekunden?Wenn einer scheitert, dann wird nach 1h oder was eingestellt ist wieder versucht. Ich bau da noch ein alle 10 Minuten dinges ein.
-
Na soooo wichtig ist das nicht. Läuft aktuell auf meiner Testkiste und trat heute lediglich einmal auf.
Ich werde das mal weiter beobachten und ggf. auf einer weiteren Kiste installieren.Lass erstmal gut sein. Sollte das dauerhaft auftreten, melde ich mich wieder.
-
@codierknecht
Ne, das war schon ein guter Punkt, das ich ausser der Reihe aktualisiere wenns offline ist oder so.Aber zu dem Fehler den du da hast, den fange ich ab und veröffentliche ihn nicht mehr - der kann eigentlich nur kommen wenn was in der Netzwerkverbindung klemmt und da gibts genug das mault - da braucht es nicht noch nen wetter adapter
-
0.1.4 (2025-08-15)
- (ticaki) Ignore ECONNABORTED error code
- (ticaki) In the event of an error, new connection attempt in 10 minutes
- (ticaki) missing % added
- (ticaki) Startup log message added.
-
Mache noch keine neue Version - ist aber auf github.
WORK IN PROGRESS
- (ticaki) Configuration option to enter an interval in minutes. In the event of an error, no accelerated reconnection is used here.
Für Personen die ein Abo abschließen. 5 Minuten ist minimum für einen freien Account - 3 Minuten für 2€ Accounts.
Das wird nach dem ersten Stundenwechsel auf die volle Stunde fixiert.
Beispiel: Bei 25 Minuten und start um 11:30 Uhr wären die Abfragen
11:30 - 11:55 - 12:00 - 12:25 - 12:50 - 13:00
Die Zeitpunkt sind genau bis auf einen absichtliche Varianz von + 2 Sekunden (+/- 1,5 Sekunden)
EDIT:
0.2.0 (2025-08-16)
- (ticaki) Configuration option to enter an interval in minutes. In the event of an error, no accelerated reconnection is used here.
- (ticaki) Use system language for summaries.
-
Adapter installieren und einrichten hat super geklappt. Danke!
Besteht Hoffnung, über diesen Adapter auch Globalstrahlungsprognosen zu bekommen?