Nytt Linux-alternativ till Easyweather

Generella Linux-frågor och frågor gällande Linuxmjukvara som saknar egen forumkategori skall postas i detta forum
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
Cokeman
Wannabe
Inlägg: 18
Blev medlem: 20 sep 2010, 23:40
Ort: Luleå

Nytt Linux-alternativ till Easyweather

Inlägg av Cokeman »

Hej,

Jag tänkte bara uppmärksamma det faktum att jag skrivit ett nytt program för Linux som fungerar med FineOffset-väderstationerna, dvs Proove m.m. som Clas Ohlson och Kjell&Co säljer.

Detta program är en avsevärd förbättrning från Michael Pendecs wwsr.c http://www.pendec.dk/weatherstation2007.htm.

Jag har lagt till stöd för att outputta i EasyWeather.dat-format, men det är inte riktigt helt fullständigt ännu.

Prova gärna och kom med förslag på förbättrningar.

Programmet finns här:
http://code.google.com/p/weatherpoller/
Niklas
Moderator
Inlägg: 1019
Blev medlem: 22 mar 2008, 21:13
Ort: Stockholm
Kontakt:

Re: Nytt Linux-alternativ till Easyweather

Inlägg av Niklas »

Intressant.

Funkar fint hos mig.
Jag kör dock denna http://meteolinger.lowlevel.cz/
Där kan jag bestämma output själv genom att använda detta:
-f <string> Format output to user defined string
%h - inside humidity
%H - outside humidity
%t - inside temperature
%T - outside temperature
%C - outside dew temperature
%c - outside wind chill temperature
%W - wind speed
%G - wind gust
%D - wind direction - named
%S - wind direction - slovak names
%d - wind direction - degrees
%P - pressure
%p - relative pressure
%r - rain 1h in mm/h
%f - rain 24h in mm/h
%F - rain last 24h in mm
%R - rain total from meteostation start in mm
%N - now - date/time string
Det använder jag när jag parsar informationen för att stoppa in den i databasen.
Något du skulle kunna fixa? :)
Cokeman
Wannabe
Inlägg: 18
Blev medlem: 20 sep 2010, 23:40
Ort: Luleå

Re: Nytt Linux-alternativ till Easyweather

Inlägg av Cokeman »

Hej,

Hade missat att den där fanns. Kollade igenom lite och såg att den versionen också bygger på wwsr.c, och har lite att önska i kodkvalitet. Deras uträkning av regndata är även den felaktig, eftersom de räknar med att alla har ett uppdateringsintervall på 30 minuter.

Jag la till så att man kan skriva en formatterings-sträng på samma sätt som i deras program, fast "--format" istället för "-f" används då. Samt att %N visar datumet när väderdatan lästes in av stationen, istället för att bara skriva ut dagens datum.
Nya versionen: http://code.google.com/p/weatherpoller/downloads/list

Kod: Markera allt

wsp --format "%N, %T\n" -a
Ger alltså sen lista med ute-temperaturen över all historiedata som finns i väderstationen.

Det har säkert slunkit ingenom lite buggar så testa gärna och påpeka dessa :)
Niklas
Moderator
Inlägg: 1019
Blev medlem: 22 mar 2008, 21:13
Ort: Stockholm
Kontakt:

Re: Nytt Linux-alternativ till Easyweather

Inlägg av Niklas »

Det ska jag verkligen göra. Kommer köra din version istället. :)

Det finns två filer. En wsp och en wsp.o. Varför är det två filer?

Edit:
Wind direction: 315.0 NW
Det vore bra om man kunde få bort 0:an där.

Vad är det för data jag får ut genom att köra till exempel:
./wsp --format "%N,%h"
Är det det senaste som är sparat i minnet? Det är inte helt färsk information.
Som det är nu så blir tiden alltid 2010-09-22 15:32:00.
Med den andra så hämtar den aktuell data som står nu, den som uppdateras varje minut och visas på stationens skärm. Just nu verkar den visa det senast sparade i minnet och det är ju rätt lång tid mellan?

Edit: wwsr visar:

Kod: Markera allt

time:                  2010-09-22 15:44:03
in humidity:           40 %
out humidity:          59 %
in temperature:        25.0 C
out temperature:       15.1 C
out dew temperature:   7.1 C
windchill temperature: 15.1 C
wind speed:            1.0 m/s
wind gust:             1.7 m/s
wind direction:        NW
pressure:              1014.9 hPa
rel. pressure:         1014.9 hPa
rain last hour:        0.0 mm
rain last 24h:         0.3 mm
rain total:            265.8 mm
Din visar:

Kod: Markera allt

Indoor:
  Temperature:          25.0 C
  Humidity:             40%

Outdoor:
  Temperature:          15.1 C
  Windchill:            15.1 C
  Dewpoint:             7.1 C
  Humidity:             59%
  Abs pressure:         1014.9 hPa
  Average windspeed:    1.0 m/s
  Gust windspeed:       1.0 m/s
  Wind direction:       315.0 NW
  Total rain:           265.8 mm
Sen har jag för mig att rain last 24h stämmer för den andra men din rapporterar 0.0.

Så här kör jag för att enkelt stoppa in i dbn:

Kod: Markera allt

./wsp --format "%N,%h,%H,%t,%T,%C,%c,%W,%G,%D,%d,%P,%p,%r,%f,%F,%R"
2010-09-22 15:32:00,40,60,25.0,15.2,7.5,15.2,0.7,0.7,W,270.0,1014.9,1014.9,0.0,0.0,0.0,265.8
Samma med wwsr:
2010-09-22 15:47:18,40,60,25.0,15.2,7.5,15.2,1.4,2.0,W,270,1014.9,1017.2,0.0,0.0,0.3,265.8
Cokeman
Wannabe
Inlägg: 18
Blev medlem: 20 sep 2010, 23:40
Ort: Luleå

Re: Nytt Linux-alternativ till Easyweather

Inlägg av Cokeman »

Niklas skrev: Det finns två filer. En wsp och en wsp.o. Varför är det två filer?
wsp är den enda du behöver bry dig i, att wsp.o skapas beror bara på hur jag skrivit makefilen. Är ingen make-expert precis :)
Niklas skrev: Edit:
Wind direction: 315.0 NW
Det vore bra om man kunde få bort 0:an där.
Fixat.
Niklas skrev: Vad är det för data jag får ut genom att köra till exempel:
./wsp --format "%N,%h"
Är det det senaste som är sparat i minnet? Det är inte helt färsk information.
Som det är nu så blir tiden alltid 2010-09-22 15:32:00.
Med den andra så hämtar den aktuell data som står nu, den som uppdateras varje minut och visas på stationens skärm. Just nu verkar den visa det senast sparade i minnet och det är ju rätt lång tid mellan?
Jag har varit lite osäker på hur datumet fungerade, men har nog räknat ut det nu. Det verkar som att EasyWeather till och med gör fel med tidsangivelserna. wwsr gör i alla fall fel när den anger tiden på all sparad historia. Till att börja med använder de datorns tid, inte väderstationens tid, vilket gör att alla beräkningar på när nånting sparats blir fel. När man använder "-p" för att kolla på någon tidigare data så räknar de ut datum och tid på följande sätt:

Kod: Markera allt

basictime=basictime+position*30*60;
Där basictime är datorns nuvarande tid, position är offset för historie-datan. Men här gör dom felet och räknar med 30*60, dvs att det är 30 minuter mellan varje historie-element, vilket inte stämmer, först och främst inte om man ställer om läsperioden till något annat. Och även en till felberäkning som jag inte orkar gå in på här :)
Niklas skrev: Edit: wwsr visar:

Kod: Markera allt

time:                  2010-09-22 15:44:03
in humidity:           40 %
out humidity:          59 %
in temperature:        25.0 C
out temperature:       15.1 C
out dew temperature:   7.1 C
windchill temperature: 15.1 C
wind speed:            1.0 m/s
wind gust:             1.7 m/s
wind direction:        NW
pressure:              1014.9 hPa
rel. pressure:         1014.9 hPa
rain last hour:        0.0 mm
rain last 24h:         0.3 mm
rain total:            265.8 mm
Din visar:

Kod: Markera allt

Indoor:
  Temperature:          25.0 C
  Humidity:             40%

Outdoor:
  Temperature:          15.1 C
  Windchill:            15.1 C
  Dewpoint:             7.1 C
  Humidity:             59%
  Abs pressure:         1014.9 hPa
  Average windspeed:    1.0 m/s
  Gust windspeed:       1.0 m/s
  Wind direction:       315.0 NW
  Total rain:           265.8 mm
Deras wind speed samt gust speed beräknas fel, vilket mest troligt inte märks förrän det blir väldigt höga vindhastigheter. När jag tittade på min egen kod såg jag dock att även jag gjorde det, men av andra anledningar :P Fixade det...
Sen har jag för mig att rain last 24h stämmer för den andra men din rapporterar 0.0.
Jepp det stämmer, har inte riktigt fixat det ännu. Problemet är att det inte går att räkna ut den datan om man inte läser in nog med historiedata. Det enda som sparas på enheten är totala antalet mm som det regnat hittills, all annan data som 24h osv räknas ut genom att man jämför 2 olika historie-element som det är x-antal timmar mellan. I wwsr gör de även detta på ett felaktigt sätt som är hårdkodat till 30-minuters uppdateringsintervall.
Niklas skrev: Så här kör jag för att enkelt stoppa in i dbn:

Kod: Markera allt

./wsp --format "%N,%h,%H,%t,%T,%C,%c,%W,%G,%D,%d,%P,%p,%r,%f,%F,%R"
2010-09-22 15:32:00,40,60,25.0,15.2,7.5,15.2,0.7,0.7,W,270.0,1014.9,1014.9,0.0,0.0,0.0,265.8
Samma med wwsr:
2010-09-22 15:47:18,40,60,25.0,15.2,7.5,15.2,1.4,2.0,W,270,1014.9,1017.2,0.0,0.0,0.3,265.8
Skulle du kunna ge hela commandline för wwsr också? Du får nämnligen 1017.2 som relative pressure, och detta beräknas med hjälp av höjden över havet. Antar att du satt detta också? Räknade lite och gissar på att du satt den till ~19m ?

La för övrigt till -A, --altitude så att man kan ställa in det i mitt program också.
Senast redigerad av Cokeman den 23 sep 2010, 01:30, redigerad totalt 2 gång.
Niklas
Moderator
Inlägg: 1019
Blev medlem: 22 mar 2008, 21:13
Ort: Stockholm
Kontakt:

Re: Nytt Linux-alternativ till Easyweather

Inlägg av Niklas »

Stämmer bra det.
wwsr visar samma data som skärmen till väderstationen visar (förutom att total regnmängd och sådär är lite fel). Den uppdateras ju ungefär var 48:e sekund eller vad det var.
Din verkar visa det senaste sparat i minnet eller var det bara ett beräkningsfel?

För wwsr ser det ut så här:

Kod: Markera allt

wwsr3.3 -A 19 -f "%N,%h,%H,%t,%T,%C,%c,%W,%G,%D,%d,%P,%p,%r,%f,%F,%R"
Är dina ändringar uppe på nätet? Jag checkade ut din källkod och kompilerade men -A finns inte med.
daromer
Hemautomation - det är mer än en hobby
Inlägg: 961
Blev medlem: 23 sep 2009, 09:31
Ort: Växjö

Re: Nytt Linux-alternativ till Easyweather

Inlägg av daromer »

Klarar den av att pusha datan direkt till databas?

Så man slipper extra parser :D
Cokeman
Wannabe
Inlägg: 18
Blev medlem: 20 sep 2010, 23:40
Ort: Luleå

Re: Nytt Linux-alternativ till Easyweather

Inlägg av Cokeman »

Niklas skrev:Stämmer bra det.
wwsr visar samma data som skärmen till väderstationen visar. Den uppdateras ju ungefär var 48:e sekund eller vad det var.
Din verkar visa det senaste sparat i minnet.
Jag använder samma data som wwsr. Däremot är det tidsangivelsen som skiljs åt.

Har lagt upp en ny version med en del fixar, förutom regn-datan: http://code.google.com/p/weatherpoller/downloads/list
daromer skrev:Klarar den av att pusha datan direkt till databas?

Så man slipper extra parser :D
Nix, inget jag planerar stödja heller. Kör på den gamla unix-filosofin att göra små och enkla specifika verktyg som gör en sak, och gör det bra :)
Niklas
Moderator
Inlägg: 1019
Blev medlem: 22 mar 2008, 21:13
Ort: Stockholm
Kontakt:

Re: Nytt Linux-alternativ till Easyweather

Inlägg av Niklas »

./wsp --altitude 19 ger ingen output.
./wsp -A 19 ger "Segmenteringsfel".
Cokeman
Wannabe
Inlägg: 18
Blev medlem: 20 sep 2010, 23:40
Ort: Luleå

Re: Nytt Linux-alternativ till Easyweather

Inlägg av Cokeman »

Niklas skrev:./wsp --altitude 19 ger ingen output.
./wsp -A 19 ger "Segmenteringsfel".
Jepp råkade vurpa i tanken, fixat nu. ladda ner build 21 :)
daromer
Hemautomation - det är mer än en hobby
Inlägg: 961
Blev medlem: 23 sep 2009, 09:31
Ort: Växjö

Re: Nytt Linux-alternativ till Easyweather

Inlägg av daromer »

Ahh Synd. Då fortsätter jag med wwsr och kodar klart de ja börjat med :)
Niklas
Moderator
Inlägg: 1019
Blev medlem: 22 mar 2008, 21:13
Ort: Stockholm
Kontakt:

Re: Nytt Linux-alternativ till Easyweather

Inlägg av Niklas »

wwsr räknar ju fel så det är väl inte rekommenderat att fortsätta där. ;)

Jag kör ett php-script som hämtar ut det som behövs och petar in det i DBn.
daromer
Hemautomation - det är mer än en hobby
Inlägg: 961
Blev medlem: 23 sep 2009, 09:31
Ort: Växjö

Re: Nytt Linux-alternativ till Easyweather

Inlägg av daromer »

Går ju att fixa ;)
Niklas
Moderator
Inlägg: 1019
Blev medlem: 22 mar 2008, 21:13
Ort: Stockholm
Kontakt:

Re: Nytt Linux-alternativ till Easyweather

Inlägg av Niklas »

Nu får jag inget segmenteringsfel men ingen output hur jag än skriver. :)
andreas
Tar hemautomation på allvar
Inlägg: 61
Blev medlem: 17 jan 2010, 01:06
Ort: Borås
Kontakt:

Re: Nytt Linux-alternativ till Easyweather

Inlägg av andreas »

Har provat meteolinger, men tyckte inte att data stämde riktigt, vilket jag inte var ensam om då du har hittat felen.

Provade ditt program men får Segmenteringsfel. Provade att köra samma rad som Niklas, men blir fortfarande fel.

Kod: Markera allt

./wsp -vvv --format "%N,%h,%H,%t,%T,%C,%c,%W,%G,%D,%d,%P,%p,%r,%f,%F,%R"
DEBUG: Start Reading status block
DEBUG: End Reading status block

DEBUG: Start reading history blocks
DEBUG: Index    Timestamp               Delay
DEBUG: Seconds before current event = 180
DEBUG: 4080,    2010-09-23 10:15:00,    3 minutes
DEBUG: End reading history blocks

Segmentation fault
Kör jag wws3.3 och Niclas rad så fungerar det.

Lägger jag till -a , så får jag en massa rader där tidsstämpeln är 1970-01-01

Kör på Ubuntu 9.10, 64 bit om det kan spela någon roll och mot en Proove från Kjell&co

Några idéer om vad som kan vara fel?
Skriv svar