Algemeen forum voor discussie over de website
Gebruikersavatar
Door arjang
#74195
Hallo weervrienden,

Ik ben nu enige maanden in het bezit van een Bresser (7002586) WIFI-ClearView-7in1 weerstation.
Mijn gegevens worden nu geupload naar awekas door het basis station.
Voor mijn eigen website vul ik mijn database via een API vanuit awekas.
Dit moet volgens mij veel makkelijker kunnen en zonder een tussenpartij.
Hoe kan ik mijn gegevens rechtstreeks naar mijn database sturen?
In de toekomst wil ik ook gebruik gaan maken van extra sensoren, zoals luchtkwaliteit en onweerdetectie.

Kan iemand mij advies geven? (ben wel een leek, dus graag in Jip en Janneke taal :roll: . )
#74196
‘Zonder tussenpartij’ maakt het in het algemeen niet makkelijker, want als er geen standaard-interface daarvoor beschikbaar is, dan moet je ‘eigen oplossingen’ ontwikkelen, aldanniet overgenomen uit voorbeelden van anderen.

‘Direct’ uitlezen van de PWS-data gaat alleen eenvoudig lukken als je PWS daarvoor al bewust een externe interface beschikbaar heeft.
De handleiding van je Bresser-PWS lijkt geen aangrijppunten te geven voor een andere externe interface dan via WLAN en internet voor WU, Weathercloud en AWEKAS.
Een ‘alternatieve oplossing’ is dan het zgn. Sniffen van de datastroom die vanuit je station ‘lokaal’ over je WLAN loopt in de richting van een van die 3 diensten:
dat vraagt specifieke software om passief & gericht bepaalde berichten te onderscheppen (aka 'intercepten') in de datastroom.
Even rondkijken in dit forum voor diverse voorbeelden, ook in combinatie met Bresser-PWSen.

Voor je geplande fijnstofmeting bijv. met een opzet volgens SensorCommunity (aka Luftdaten) is directe sensor-uitlezing eenvoudig mogelijk via de beschikbare JSON-interface, waarna je de bemachtigde JSON-file kunt vertalen naar je database. Ook andere fijnstof-sensoren hebben zo'n type interface beschikbaar.
Dat kan los van de bovengenoemde PWS-uitlezing.
Gebruikersavatar
Door wvdkuil
#74197
arjang schreef: 30 jun 2022, 23:28 Hallo weervrienden,

Ik ben nu enige maanden in het bezit van een Bresser (7002586) WIFI-ClearView-7in1 weerstation.
Mijn gegevens worden nu geupload naar awekas door het basis station.
Voor mijn eigen website vul ik mijn database via een API vanuit awekas.
Dit moet volgens mij veel makkelijker kunnen en zonder een tussenpartij.
Hoe kan ik mijn gegevens rechtstreeks naar mijn database sturen?
In de toekomst wil ik ook gebruik gaan maken van extra sensoren, zoals luchtkwaliteit en onweerdetectie.

Kan iemand mij advies geven? (ben wel een leek, dus graag in Jip en Janneke taal :roll: . )
Hallo Arjang,
Ik zal proberen "Jip en Janneke" taal te gebruiken, maar de uitlees via Awekas of WU is wel de meest eenvoudige manier om je data van deze type Bresser stations te krijgen.

Er zijn "andere" mogelijkheden,
Zeer technisch => af-luisteren van de 868mHz communicatie
Via Github kun je scripts vinden die de communicatie tussen de sensors en het console afluistert.
Daarmee zou je dan een eigen "ontvangst station" kunnen maken.
De investering in geld -> antenne, Raspberry o.i.d en de benodigde tijd lijkt me nogal groot.

Gemiddeld technisch => laat de Bresser direct naar je eigen webserver opladen.
Helaas heb ik geen dergelijk station om het te testen. Maar met vergelijkbare apparaten werkt dit ook.

De eerste twee keuzes op het oplaad-scherm in de Bresser hebben alleen een key/password.
Dus vast ingebouwd naar in jouw geval WU en WeatherCloud.

De derde keuze kan voor iedere webserver gebruikt worden. Niet verplicht naar Awekas.
Je kunt daar een eigen ip-adres of website link invoeren.
Vul ook twee verschillende waardes met eenvoudige tekens in voor key / password, b.v. AAAAAA 1234567
Je plaatst in de map waar de link naar verwijst een klein index.php script .
Elke keer dat het script aangeroepen wordt plaats het script de $_REQUEST data in een tekst bestand.

De inhoud van het bestand, vermoedelijk een json array moet je zien te "kraken" maar dat is in het algemeen zeer eenvoudig. Bijna alle weerstations gebruiken het WU oplaad protocol via HTTP-GET met een eenvoudige veldnaam-data array. Ook AQ sensors zoals Luftdaten, Purpleair werken op een vergelijkbare manier.
Een HTTP-PUT wordt gebruikt voor meer complexe geneste data structuren.
Maar dat zie je snel in het tekst-bestand.
Dan kan je met dat bestand als voorbeeld een echt ontvangst-script maken en de data direct naar je data base laden.
Let wel, de data die wordt opgeladen vanuit je weerstation bevat geen hoog-laag waardes.
Dat moet via je eigen database gebeuren.

Succes,
Wim
Gebruikersavatar
Door arjang
#74198
bedankt voor jullie reacties Toulon7559 en Wim.

Wim, het is me duidelijk. Werk aan de winkel.
Ik ga voor 'Gemiddeld technisch => laat de Bresser direct naar je eigen webserver opladen.'

Ik ga me verdiepen in dergelijke 'index.php scripts'
Zal vast wel wat te vinden zijn op internet hierover.
Soms moet je alleen wel even weten waar je naar zoekt.

Nogmaals bedankt

Gr. Arjan
Gebruikersavatar
Door wvdkuil
#74199
arjang schreef: 02 jul 2022, 12:33 bedankt voor jullie reacties Toulon7559 en Wim.

Wim, het is me duidelijk. Werk aan de winkel.
Ik ga voor 'Gemiddeld technisch => laat de Bresser direct naar je eigen webserver opladen.'

Ik ga me verdiepen in dergelijke 'index.php scripts'
Zal vast wel wat te vinden zijn op internet hierover.
Soms moet je alleen wel even weten waar je naar zoekt.

Nogmaals bedankt

Gr. Arjan
Er zijn heel veel voorbeelden ook op dit forum.
De meest simpele bijgevoegd.

Als je de Bresser een file hebt laten opladen, dan ben ik wel geinteresseerd in een kopei van zo'n oplaad.
Dan kan ik zien of die ook voor andere templates bruikbaar is.
Zoals ik nu de ecowitt, ambient, purpleair, luftdaten e.d. al op dezelfde manier ondersteun.

M.v.g.
Wim

Bijgevoegde .zip uitpakken
Zet de hele map op je webserver
Laat de Bresser verwijzen naar jouw-website/voorbeeld/
kijk wat er in /voorbeeld/testfile.txt terecht komt

Mijn testjes zien er zo uit:
Code: Selecteer alles
Sat, 02 Jul 2022 11:11:23 +0000 = 
a:0:{}
Sat, 02 Jul 2022 11:15:49 +0000 = 
a:2:{s:1:"a";s:1:"1";s:1:"b";s:3:"xyz";}
Telkens een regel met een datum en een regel met de data
11:11:23 had geen data
11:15:49 een paar velden als resultaat van deze aanroep . . ./voorbeeld/index.php?a=1&b=xyz

Als het script aanpast, gebruik dan eerst even de browser met . . . /voorbeeld/test.php
Dan worden de eventuele PHP type-fouten meteen getoond.
Bijlagen
(3.64 KiB) 17 keer gedownload
Gebruikersavatar
Door arjang
#74201
Er zijn heel veel voorbeelden ook op dit forum.
De meest simpele bijgevoegd.

Als je de Bresser een file hebt laten opladen, dan ben ik wel geinteresseerd in een kopei van zo'n oplaad.
Dan kan ik zien of die ook voor andere templates bruikbaar is.
Zoals ik nu de ecowitt, ambient, purpleair, luftdaten e.d. al op dezelfde manier ondersteun.

M.v.g.
Wim
***********************************
Hallo Wim,

Ik heb je map op mijn server gezet en mijn bresser ingesteld naar mijnsite/voorbeeld, maar krijg geen enkele reactie binnen. de testfile.txt blijft leeg.

gr. Arjan
Gebruikersavatar
Door wvdkuil
#74202
1. Werkt het script?
In de browser . . ./voorbeeld/?a=1
Bestand
Code: Selecteer alles
Mon, 04 Jul 2022 13:45:18 +0000 = 
a:1:{s:1:"a";s:1:"1";}
=> Dus ontvangst script werkt

2. Gebruik je HTTPS?
Een weerstation en de meeste AQ sensors kunnen geen https aan.
Daarvoor is het "vermogen " van de gebruikte scripts te klein.

Dus om te testen eerst de omleiding http=>https in je server uit zetten

De manual pagina 26/27 gebruikt ook een http:WAC.com als server adres.
punt 11: Weiteren Wetterdienst hinzufügen (z.B. AWEKAS).
En er staat duidelijk dat ook andere weer-diensten op deze manier door dit station aangeroepen kunnen worden.
Dat geeft hoop voor de toekomst.

=== VRAAG:
Zoals gezegd, ik heb zelf geen access tot een dergelijk station, dus ik kan het niet testen.
Plaats daarom een schermafdruk van de instellingen pagina van je weerstation.
De gevoelige gegevens van WU en WC hebben blijkbaar sterretjes, dus een schermafdruk kan geen kwaad.

Gebruik ALTIJD eenvoudige userid en passwords voor het testen naar je eigen server.
Speciale tekens zoals @, &, ;, verstoren de aanroep.
Dus om te testen gebruik je iets als AAAA en 123456

Succes, Wim

=== TER INFO
@ALLEN Let op: Bij een 301 omleiding in .htaccess van http=> https wordt alle user-data verwijderd.
Dus hel lijkt alsof er bij de aanroep geen data is meegestuurd, maar de "voorschriften" bij https ontvangst verplicht de webservers de "onveilige" http GET/PUT/INPUT data te verwijderen.
Dus moet je in de .htaccess een HTTP toegang gegeven voor die mappen met ontvangst scripts.
Voorbeeld van een .htaccess die HTTP toegang doorlaat naar de map /voorbeeld/
Code: Selecteer alles
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/voorbeeld/
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Hier staat
RewriteCond er wordt geen https gebruikt
RewriteCond er wordt NIET de map /voorbeeld/ benaderd
RewriteRule Als alle voorstaande condities geldig zijn, zet de link om naar https.
Omdat de links naar ons ontvangst script wel de map /voorbeeld/ gebruikt wordt de rule niet uitgevoerd.
En gaat de http aanroep naar het script.

Sommige (vaak niet apache) web-hosts gebruiken andere manieren om http door te laten.
Dus dan moet je met dit voorbeeld aan de support-medewerkers vragen hoe je dat dan moet oplossen.
Bijlagen
Schermafbeelding 2022-07-04 om 16.05.50.png
Schermafbeelding 2022-07-04 om 16.05.50.png (271.47 KiB) 466 keer bekeken
Gebruikersavatar
Door wvdkuil
#74204
arjang schreef: 05 jul 2022, 08:14 Hallo Wim,

Bedankt voor de extra info, ga ik zeker proberen.

Op vraag 1 (In de browser . . ./voorbeeld/?a=1) krijg ik:

Array
(
[a] => 1
)
Dat is dus correct
De aanroep /voorbeeld/?a=1
Wordt ontvangen door het script index.php in de map voorbeeld/
Het script vindt de variabele met de naam a en met de waarde 1
Omdat er nog getest wordt print het script naar de browser alle waardes die het gevonden heeft m.b.v. een print_r php instructie. Daardoor weten we zeker dat het script werkt.

===
Ik ben twee weken "off-the-grid" van af morgen. Geen computer, alleen een iPad die het om de paar dagen kan doen.
Ik hoor het wel na 22 juli.

Wim