NEWS
Test Adapter pirate-weather
-
Aktuelle Test Version 0.0.x Veröffentlichungsdatum 09.08.2025 Github Link https://github.com/ticaki/ioBroker.pirate-weather Abruf der Wetterdaten von PirateWeather.
Dazu einen ApiToken besorgen von hier: https://docs.pirateweather.net/en/latest/
Rest sollte soweit selbsterklärend sein.
Die Datenstruktur ist so fertig
Es fehlt noch
- Ordnerbezeichungen
- Einheiten, Rolen und eventuelle Umrechnungen / Umformatierung (Datum, Windrichtung usw.)
Installation über benutzerdefinierte Githubinstallation
-
Oh, perfekt! Ich hatte mir grad ein Script gebastelt und frag damit die API ab, aber wenns dann demnächst ein Adapter gibt, umso besser.
Welche Werte fragt der Adapter denn ab?
Mit meinem Script frag ich die Werte von 'currently', 'daily (6Tage)' und 'hourly (24h)' ab. -
minutely ist optional - minimaler refresh ist 1 Stunde zur vollen Stunde. (+ zufällig bis zu 3 Sekunden) aber die aktualisierung hab ich noch nicht ordentlich getestet - da kann noch ein fix nötig sein.
EDIT - ja ist nötig - muß minute und sekunden noch nullen
(erledigt)
EDIT2: Bin gerade bei der Aktualisierung geistig hängen geblieben.
Der Adapter schreibt das maximum an Daten nieder - also 60min, 48h, 8 Tage,
Einheiten sind im Admin auswählbar - SI, Imperial, UK und CA
Noch werden die Daten einfach nur in Datenpunkte geschrieben ohne rollen usw. das ändert sich aber die kommende Woche.Anmeldung zum Repo wird höchstwahrscheinlich nächstes WE erfolgen.
-
Toll, Adpater läuft. Eine Warnung:
pirate-weather.0 2025-08-09 15:28:55.062 warn [library] Language undefined not exist! pirate-weather.0 2025-08-09 15:28:55.046 info starting. Version 0.0.7 (non-npm: ticaki/ioBroker.pirate-weather#75dcd80bdc82ee68e7faadf5c1e8d0756d8fe941) in C:/SmartHome/node_modules/iobroker.pirate-weather, node: v20.19.4, js-controller: 7.0.7 pirate-weather.0 2025-08-09 15:28:49.819 info terminating pirate-weather.0 2025-08-09 15:28:49.314 info Terminated (ADAPTER_REQUESTED_TERMINATION): Without reason pirate-weather.0 2025-08-09 15:28:49.313 info terminating pirate-weather.0 2025-08-09 15:28:49.312 info Got terminate signal TERMINATE_YOURSELF
-
@sigi234
behoben -
@ticaki sagte in Test Adapter pirate-weather:
@sigi234
behobenDas ging ja schnell.
Wichtig ist mir das man: Free plan for personal use, allowing up to 10,000 requests per month nicht überschreiten kann. -
@sigi234 sagte in Test Adapter pirate-weather:
up to 10,000 requests per month
das wäre ein Intervall von unter 5 Minuten auch in der Nacht.
ich glaube nicht, dass das wirkli h jemand braucht. -
@sigi234
Ich hab den Abfrageinterval auf min 1h gesetzt, sowie Aktualisierung nach Neustart - solange du den also nicht 13 mal pro Stunde 24/7 neustartest wird nix passieren -
Habe mal die DP durchgesehen, irgendwie fehlt mit ein DP für die Icon Anzeige für VIS:
-
Ich hätt auch noch was, könntest du bei 'daily' noch einen DP hinzufügen (oder den von 'time' nehmen) und den Zeitstempel in ein lesbares Format reinschreiben z.B. Sat Aug 09 2025 00:00:00 ?
Und vielleicht für die Zukunft den Pfad zu Wettericons, ich würd dann gerne die originalen von DarkSky nehmen, die hab ich schon unter VIS-2.0 liegen.
-
@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}