Allen,
Het is lang geleden dat ik dit forum weer eens heb opgezocht. Meestal werk ik zelf de uitdagingen wel uit, maar in dit geval zit ik een beetje in de knoop.
Wat is de situatie:
Ik heb een weerstation en wil de gegevens publiceren op het internet. Nu schrijft dit weerstation zijn data weg in een log bestand en om de 5 minuten wordt die data verwerkt in een sql database. Mijn originele idee was om die data te gebruiken om te publiceren. Er zijn echter weer sites die hun data live publiceren. Ik denk dat dit via AJAX gaat, maar ik wil me eerst concentreren op het verkrijgen van de juiste gegevens.
Wat heb ik tot nu toe:
Voor het live weer moet ik die log bestanden in kunnen lezen en daar de juiste (laatste) gegevens uit halen. Het systeem laat een log oplopen tot een aantal Kb en dan vindt er een turnover plaats. Bijvoorbeeld: weerstation.log wordt gerenamed naar weerstation.log.1 en er is een lege weerstation.log die weer gevuld wordt met recente data. Om te voorkomen dat je met een leeg bestand zit moet je deze 2 logfiles dus achterelkaar plakken. So far so good, je kan hier zien hoe de 2 achterelkaar geplakte logfiles eruit zien.
waarschuwing: LET NIET op de clock regels in de logfiles, dit weerstation wordt alleen geleverd met windows software en doordat ik gebruik maak van alternatieve linux software kan ik de ontvanger niet "programmeren", de timestamp is dus leading
De uitdaging:
uit deze data wil ik de laatste (zie timestamp) gegevens verkrijgen van:
Temperature th1
-Temp (in graden celcius)
-Trend (steady/rising/falling)
-Humidity (relatief in %)
-Dew Point (in graden celcius)
Barometer
-Forecast (Cloudy/PartiallyCloudy/Rainy/Sunny/Snowy)
-Absolute pressure (mb)
Wind
-batteryOk (true/false)
-direction (0 t/m 15)
-gust (m/s)
-avg. speed (m/s)
Rain
-batteryOk (true/false)
-This Day (mm)
de "Temperature thInt" sensor wordt overgeslagen, dit is de interne temperatuur sensor in de woonkamer en betekent niets voor het weer ;)
Waar zit ik vast:
Het lukt me om beide bestanden onder elkaar te zetten (zie voorbeeld)
Het lukt me om alleen de laatste regel te tonen van de hele file, maar daar heb ik natuurlijk niets aan omdat dit slechts 1 bericht is van 1 sensor, terwijl ik het laatste bericht van iedere (temp out,baro,wind,rain) sensor wil hebben.
Het lukt me ook om via explode de gegevens van de sensoren te splitsen, ik krijg dan alleen nog steeds een hele lijst van alle timestamps.
Hopelijk zijn jullie php experts bereid mij een beetje te "spoonfeeden" :o)
Groetjes!
4.593 views