Forum waar weeramateurs nieuws, storingen en updates van hun eigen weerstation kunnen melden.
Gebruikersavatar
Door Toulon7559
#75961
Heel variabel melden momenteel diverse stations met een WU-interface voor HWA dat ze uitval zien van de vertoning aan HWA-kant.
Het verschijnsel treedt echter niet op bij alle stations met die configuratie, en ook niet op dezelfde tijdstippen van de dag.
Nog vreemder is dat bij uitval van de HWA-vertoning meestal wel een goede uitlezing van dat WU-station beschikbaar blijft via de WU-App voor Android cq. iPad, maar soms weer niet op PC&browser.

Even gedoken in de uitlezing van o.a. Appelscha daar in de HWA-file komend vanuit het HWA-script (origineel van Wim_vdKuil) een foutmelding gevonden, die er op wijst dat er 'iets' niet klopt in de binnenkomende WU-datafile:
<b>Warning</b>: array_key_exists() expects parameter 2 to be array, null given in <b>/home/hwa/domains/hetweeractueel.nl/public_html/data/wu/WUtoHWA.php</b> on line <b>73</b>

Zie ook af en toe een wegval bij Hengelo-Noord die een vergelijkbare WU-uitlezing heeft maar m.b.v. Meteotemplate.

Heeft iemand inzichten OF/WAT aan WU-kant aan de hand kan zijn?
Gebruikersavatar
Door wvdkuil
#75963
Bij de originele script-versie kan deze fout "array_key_exists() expects parameter 2 to be array, null given" voor komen als er geen data vanuit WU ter beschikking wordt gesteld.

Ervan uitgaande dat het station nog steeds actief is:
Dan kan deze fout voorkomen als het maximale aantal WU-API accesses is overschreden.
En vooral als de stations-eigenaar meerdere weerstations oplaadt onder hetzelfde account.
Het maximale aantal WU-API accesses geldt per WU-account, dus niet per weerstation in dat account.

-------------------
De zelfde boodschap "array_key_exists() expects parameter 2 to be array, null given" kan ook voorkomen als de Hoog-Laag data op de HWA-server verstoord is. Maar dat lijkt me onwaarschijnlijk.

Succes,
Wim
Gebruikersavatar
Door Toulon7559
#75964
@Wim,

Voorzover mij bekend zijn alle HWA-stations-met-WU-interface die storing ondervinden, enkelvoudige uploader naar WU voor 1 account/station, vaak met gebruik van een software meegeleverd met de PWS, zoals EasyWeather, ingebouwde firmware of een 'standaard' meteosoftware:
bij toepassing van zulke software m.i. geen mogelijkheid tot instellen van frequenties e.d.
Dat de WU-App voor Android en voor iPad de hele tijd goed lijkt te werken, duidt er m.i. op dat de invoer naar WU geen probleem lijkt.
De HWA-server heeft bewust een beperkte snelheid voor uitlezings-calls naar de WU-API.

Als er overschrijding van aantal toegestane uploads cq. API-calls (of de som daarvan) van toepassing zou zijn, dan zou je kunnen verwachten dat vanaf 00:00 tot aan bereiken van de limiet alles goed zou lopen, maar niets is minder waar, want het startpunt van correcte API-uitlezing lijkt per betroffen station een willekeurig tijdstip in de dag, en het blokkeren en herstarten idem.
Ook niet herkenbaar of er na bereiken van een limiet een gedefinieerde ‘dode tijd’ van toepassing zou zijn.

Blijft dus nog even ‘heel vaag’ ……..
Gebruikersavatar
Door wvdkuil
#75965
Normaal staat er een foutboodschap in de response van WU die aangeeft waarom er geen data wordt geleverd.
Het lijkt raadzaam een error-incident-log in te bouwen voor mislukte aan roepen.
Als alleen de laatst foutieve data wordt bewaard kunnen we wellicht zien waar het probleem is.

Deze fout komt dus blijkbaar vaker voor bij HWA als ik het goed begrijp.
Station Appelscha is al 30 uur off-line en zonder WU-station-kode kan ik het niet testen.
- - -
Ik heb de PWS_Dashboard gebruikers die ook de WU-data gebruiken afgelopen, maar zie daar geen "stalled" or "old" data.

Succes,
Wim
Gebruikersavatar
Door Toulon7559
#75967
@Wim,

De volgende 4 WU-stations hebben m.i. op willekeurige tijden herhalende storingen.

Bij deze 3 wordt het voor HWA zichtbaar bij aanroep van de WU_API t.b.v. HWA m.b.v. van het PHP_script van jouw hand:
- Appelscha = IFRIESLA51, een Davis VP2, met WU gevoed vanuit WeatherDisplay
- Delden(GC Lage Mors) = IDELDE16, een Alecto WS5500, met WU gevoed vanuit EasyWeather
- Hengelo-Noord2 = IHENGE112, een TFA_Nexus, met WU gevoed vanuit Meteobridge.
Deze Meteobridge voedt o.a. ook (zonder problemen) naar o.a. VWK, PWSW en CWOP.

Vergelijkbaar, onregelmatig, frequent storing optredend voor dit (Test)station voor HWA-uitlezing m.b.v. Meteotemplate's WU_API-interface:
- Hengelo_Noord = IHENGE108, een Tempest, met WU gevoed vanuit de Weatherflow-server
Dit Teststation heeft opzettelijk een lang traject tussen sensor en HWA, om daarvan de effecten te bekijken.

Heb je voor jouw kant van het speurwerk nog meer WU-stationsinfo nodig,
stuur dan even een PB of Email.

NB. Zoals eerder geschreven:
probleemloze uitlezing van de andere, aangewezen WU-stations door de HWA-server met het PHP-script.
Je kunt (n.a.v. jouw opmerking over de foutmelding) de vraag daarom misschien ook anders formuleren:
welke afwijking hebben de genoemde 4 WU-stations zodat niet altijd een output beschikbaar komt via de WU_API?

MVG, Anton
Gebruikersavatar
Door wvdkuil
#75968
Dit is de fout uit het eerste bericht van dit onderwerp:
Code: Selecteer alles
<b>Warning</b>: array_key_exists() expects parameter 2 to be array, 
null given in <b>/home/hwa/domains/hetweeractueel.nl/public_html/data/wu/WUtoHWA.php</b> 
on line <b>73</b>
Dit is de bron: https://pwswd.be/hwa_fe/?id=IHENGE112&sce=view
In mijn versie is er geen regel 73 die een dergelijke fout kan weergeven.
Dit zijn mijn regels 65-73 die de controle uitvoeren
Code: Selecteer alles
# ------------------ these parts should be there
        if (!is_array ($ct) || !array_key_exists('observations',$ct) 
         || !array_key_exists(0,$ct['observations']) ) 
             {  $arr    = false;} // no correct data
        else {  $mes    = $ct['observations'][0]['metric'];
                unset ($ct['observations'][0]['metric']);
                $arr = array_merge ($ct['observations'][0],$mes);
                unset($ct , $mes);}
        } // eo load new data
Er zijn nog meer controles mogelijk in mijn script, version 00 date: 2022-05-03
Bijvoorbeeld vervang mijn regel 67 door zoiets als
Code: Selecteer alles
       ||  !is_array ($ct['observations']) || !array_key_exists(0,$ct['observations']) ) 
Helaas is de HWA aangepaste versie WUtoHWA.php niet meer uitgerust met sce=view dus ik kan niet zien waar de scripts verschillen of waar nog meer controles ingevoerd kunnen worden.

- - -

Maar de oorzaak van de foutboodschap vindt ik veel interessanter.
Ik heb nu in mijn versie een log ingebouwd die de laatste foutieve WU-informatie per gebruiker in een tekst-bestandje bewaart.

Nu maar wachten tot er een fout optreedt.

M.v.g.
Wim van der Kuil

P.S.-1 Het zou makkelijker zijn om de sce=view altijd in ieder script beschikbaar te laten

P.S.-2 Een log inbouwen om zelf de fout in de data te vinden is wellicht ook een idee.
Gebruikersavatar
Door Toulon7559
#75969
@Wim,

Je PHP-script voor WU-uitlezing is bij plaatsing op de HWA-server door Luc aangepast om in te passen in zijn ‘PHP-bouwwerk’:
dit zal een van die stukjes zijn.

M.i. zinvolle hint om iets meer geteste checks blijvend in te bouwen, want je weet nooit wanneer extra info nodig:
baat het niet, het schaadt zelden.
Ben dat zelf ook gewend bij scripting, want anders bij uitval/foutmeldingen soms eindeloos zoeken en knutselen met foutzoekfuncties die alsnog moeten worden ingebouwd met alle bijkomende testerij vandien …..
Als je hun deelname wil besturen, dan zou je ingebouwde foutzoekfuncties e.d. ook via de scriptsettings met een DEBUG-vlaggetje kunnen in- of uitschakelen.