1 <?xml version=
"1.0" encoding=
"utf-8"?>
2 <rss version='
2.0' xmlns:lj='http://www.livejournal.org/rss/lj/
1.0/'
>
4 <title>Petter Reinholdtsen - Entries tagged drivstoffpriser
</title>
5 <description>Entries tagged drivstoffpriser
</description>
6 <link>http://people.skolelinux.org/pere/blog/
</link>
10 <title>Litt informasjon om Bitfactorys Bensinpris-API
</title>
11 <link>http://people.skolelinux.org/pere/blog/Litt_informasjon_om_Bitfactorys_Bensinpris_API.html
</link>
12 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Litt_informasjon_om_Bitfactorys_Bensinpris_API.html
</guid>
13 <pubDate>Mon,
28 May
2012 23:
55:
00 +
0200</pubDate>
14 <description><p
>I fjor lanserte Bitfactory en
15 <a href=
"http://www.bitfactory.no/bensinpris.html
">mobilapp for å få
16 tilgang til bensinpriser
</a
> på landets bensinstasjoner ved å samle
17 inn prisene på dugnad ved hjelp av mobilapp-ens brukere.
18 Informasjonen app-ens brukere har samlet inn har så langt kun vært
19 tilgjengelig for brukerne av app-ene, og API for å hente ut
20 informasjonen fra andre plattformer har ikke vært publisert. Da
21 løsningen kom spurte jeg utviklerne om de kunne publisere
22 API-dokumentasjon og de skulle se på saken, men det har ikke skjedd så
23 langt. Jeg antar de har vært for travelt opptatt til å publisere
24 API-dokumentasjon.
</p
>
26 <p
>Utrolig nok er det i følge
27 <a href=
"http://www.dn.no/energi/article2194526.ece
">Dagens
28 Næringsliv
</a
> og
29 <a href=
"http://www.finnmarkdagblad.no/nyheter/article5323140.ece
">Finnmark
30 Dagblad
</a
> bensinstasjoner som nekter å oppgi prisene sine på
31 telefon, slik at det ikke finnes en fornuftig måte å få tak i prisene
32 på uten å samle dem inn på stedet. Flere har dugnader på gang for å
33 samle inn prisinformasjon om bensin, men så vidt jeg kan se er det kun
34 <a href=
"http://www.dinside.no/php/oko/bensin/vis_prisliste.php
">dinside.no
</a
>
35 og Bitfactorys App som får regelmessige oppdateringer. Dinsides
36 oversikt er tilgjengelig på web for de som vil følge med, mens
37 bitfactorys informasjon ikke er like enkelt tilgjengelig.
<p
>
39 <p
>Jeg tok meg derfor litt tid for å revers-utvikle protokollen for
40 Bitfactorys mobilapp for å gjøre den innsamlede informasjonen mer
41 tilgjengelig for flere. Protokollen bruker HTTP og normal
42 forms-notasjon for POST. Jeg lot en telefon koble seg til mitt
43 trådløsnett, og satte opp tcpdump til å samle all trafikken mot
44 www.bitfactory.no, og deretter tittet på alle HTTP-kallene ved hjelp
45 av wireshark. Her er API-kallene jeg har identifisert så langt.
</p
>
47 <p
><b
>stasjonsDatabaseUpdateStamp
</b
></p
>
49 <p
><tt
>GET http://www.bitfactory.no/Bensin/ver1.1.stasjonsDatabaseUpdateStamp
</tt
></p
>
51 <p
>Vet ikke helt hva dette API-kallet gjør, men navnet gjør at jeg
52 tror den rapporterer når listen over stasjoner sist ble endret.
53 Returverdien er et tall som pr.
2011-
12-
09 er
1319145491 og
54 pr.
2012-
05-
28 er
1336420693. Mitt gjett er at dette er sekunder
55 siden
1. januar
1970 ala det en finner på Linux, som kan konverteres
56 til en leselig dato med
<tt
>perl -e
'print
57 scalar(localtime(
1319145491)),
"\n
"'</tt
>. Den første verdien
58 konverterer da til
"Thu Oct
20 23:
18:
11 2011", mens den andre
59 konverteres til
"Mon May
7 21:
58:
13 2012".
</p
>
61 <p
><b
>GetXMLDatabase
</b
></p
>
63 <p
><tt
>echo password=XYZXYZXYZXYZX | POST http://www.bitfactory.no/Bensin/GetXMLDatabase.php
</tt
></p
>
65 <p
>Henter ned listen med stasjoner på XML-format. Argumentet er
66 password som muligens følger med i programpakken og eventuelt
67 genereres av app-en. Nedlasting med samme passord flere ganger ser
68 ikke ut til å fungere. Innholdet er ca.
1600 stasjoner, men manglet
69 bensinstasjonen i min hjemkommune Ballangen da jeg sjekket, så den er
70 ikke komplett. Formatet på selve listen ser slik ut (klippet):
</p
>
73 &lt;?xml version=
"1.0" encoding=
"UTF-
8"?
&gt;
74 &lt;STASJONSDATABASE
&gt;
75 &lt;STASJON
&gt;
76 &lt;NAME
&gt;
&lt;/NAME
&gt;
77 &lt;ADDRESS
&gt;
&lt;/ADDRESS
&gt;
78 &lt;ID
&gt;
0&lt;/ID
&gt;
79 &lt;LATITUDE
&gt;
0.000000&lt;/LATITUDE
&gt;
80 &lt;LONGITUDE
&gt;
0.000000&lt;/LONGITUDE
&gt;
81 &lt;COMPANY
&gt;
&lt;/COMPANY
&gt;
82 &lt;/STASJON
&gt;
83 &lt;STASJON
&gt;
84 &lt;NAME
&gt;Statoil Best Eidsvoll Verk
&lt;/NAME
&gt;
85 &lt;ADDRESS
&gt;Gamle Trondheimsvei
339 2074 Eidsvoll Verk
&lt;/ADDRESS
&gt;
86 &lt;ID
&gt;
1&lt;/ID
&gt;
87 &lt;LATITUDE
&gt;
60.303902&lt;/LATITUDE
&gt;
88 &lt;LONGITUDE
&gt;
11.168100&lt;/LONGITUDE
&gt;
89 &lt;COMPANY
&gt;Best
&lt;/COMPANY
&gt;
90 &lt;/STASJON
&gt;
92 &lt;STASJON
&gt;
93 &lt;NAME
&gt;Esso Andenes
&lt;/NAME
&gt;
94 &lt;ADDRESS
&gt;Falcksgate
9,
8480 Andenes
&lt;/ADDRESS
&gt;
95 &lt;ID
&gt;
1822&lt;/ID
&gt;
96 &lt;LATITUDE
&gt;
69.320999&lt;/LATITUDE
&gt;
97 &lt;LONGITUDE
&gt;
16.118700&lt;/LONGITUDE
&gt;
98 &lt;COMPANY
&gt;Esso
&lt;/COMPANY
&gt;
99 &lt;/STASJON
&gt;
100 &lt;/STASJONSDATABASE
&gt;
101 </pre
></p
>
103 <p
><b
>GetBanStatus
</b
></p
>
105 <p
><tt
>echo UDID=Android-
123456789012345 | POST http://www.bitfactory.no/Bensin/ver1.1.GetBanStatus.php
</tt
></p
>
107 <p
>Vet heller ikke helt hva dette API-kallet gjør. Navnet gjør at jeg
108 tror den rapporterer om telefonen med UDID oppgitt som argument er
109 bannlyst fra tjenesten. Bannlysning gjør antagelig at telefonen ikke
110 kan brukes til å registrere bensinpriser, men det er også mulig det
111 blokkerer for å se på priser. Eneste POST-argument er UDID, som ser
112 ut til å være den unike ID-en til en mobil-enhet. Returnverdi er
'NO
'
113 for alle UDID-verdier jeg har testet. Gjetter på at alternativ
114 returverdi er
'YES
', men har ikke sett en slik verdi så langt.
</p
>
116 <p
><b
>PriserVedStasjoner
</b
></p
>
118 <p
><tt
>echo
'stasjoner=
810,
364&day=
0' | POST http://www.bitfactory.no/Bensin/ver1.1.PriserVedStasjoner.php
</tt
></p
>
120 <p
>Dette kallet henter ut priser registrert på en eller flere
121 bensinstasjoner. Den tar to POST-argumenter,
"stasjoner
" som er
122 kommaseparert liste over stasjons-IDer (numeriske), og
"day
" som bør
123 settes til
"0" for å få ut informasjon om priser. Usikker på hva
124 day-tallet betyr, men mistenker det har med hvor langt tilbake i tid
125 det skal hentes ut informasjon.
</p
>
127 <p
>Resultatet som kommer tilbake er en kommaseparert liste for hver
128 enkelt stasjon, med
&lt;br
&gt; som skillemarkør mellom hver stasjon.
129 Ikke helt sikker på hva alle feltene er. Her er mine gjett:
</p
>
131 <p
><table
>
132 <tr
><ht
>Felt
</ht
><ht
>Beskrivelse
</ht
></tr
>
133 <tr
><td
>1</td
><td
>Bensinstasjons-ID
</td
></tr
>
134 <tr
><td
>2</td
><td
>Pris for blyfri
95 oktan, flyttall med punktum som desimalskille.
</td
></tr
>
135 <tr
><td
>3</td
><td
>Klokkeslett da prisen ble oppdatert, format HH:MM.
</td
></tr
>
136 <tr
><td
>4</td
><td
>Telefon-ID på formen Android-
123456789012345 eller hex-kodet streng/MD5-sum
</td
></tr
>
137 <tr
><td
>5</td
><td
>tall, uviss betydning. muligens relatert til day-verdien.
<b
>Oppdatering
2012-
06-
02: Denne verdien er antall bekreftelse en gitt pris har fått.
</td
></tr
>
138 <tr
><td
>6</td
><td
>Pris for blyfri
98-oktan?
</td
></tr
>
139 <tr
><td
>7</td
><td
>samme som felt
3</td
></tr
>
140 <tr
><td
>8</td
><td
>samme som felt
4</td
></tr
>
141 <tr
><td
>9</td
><td
>samme som felt
5</td
></tr
>
142 <tr
><td
>10</td
><td
>Pris for disel
</td
></tr
>
143 <tr
><td
>11</td
><td
>Samme som felt
3</td
></tr
>
144 <tr
><td
>12</td
><td
>Samme som felt
4</td
></tr
>
145 <tr
><td
>13</td
><td
>Samme som felt
5</td
></tr
>
146 </table
></p
>
148 <p
>En stasjonsoppføring består dermed av av bensinstasjons-ID og
149 deretter tre blokker for
95-oktan bensin,
98-oktan bensin og
152 <p
><b
>PriserVedStasjon
</b
></p
>
154 <p
><tt
>echo
'id=
736&day=
0' | POST http://www.bitfactory.no/Bensin/ver1.1.PriserVedStasjon.php
</tt
></p
>
156 <p
>Ser ut til å returnere informasjon for en enkelt bensinstasjon.
157 Formatet er dato på formen
"08_12_2011
" for
2011-
12-
08, og noe som ser
158 ut som samme format som fra PriserVedStasjoner. For stasjoner der
159 intet er registrert returnerer den
"NO RESULTS
".
</p
>
161 <p
><b
>AllePriser
</b
></p
>
163 <p
><tt
>echo day=
0 | POST http://www.bitfactory.no/Bensin/ver1.1.AllePriser.php
</tt
></p
>
165 <p
>Returnere liste med av alle stasjoner det er registrert oppdaterte
166 priser på siste
24 timer (eller er det fra ca. midnatt dagen før?).
167 Returnerer
"NO RESULTS
" når listen er tom. Ellers returnerer den en
168 dato på formen
"Thursday_09_12_2011
" fulgt av
&lt;br
&gt; og deretter
169 en liste med stasjoner på samme format som PriserVedStasjoner.
</p
>
174 <title>Database over bensinpriser fra dinside.no
</title>
175 <link>http://people.skolelinux.org/pere/blog/Database_over_bensinpriser_fra_dinside_no.html
</link>
176 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Database_over_bensinpriser_fra_dinside_no.html
</guid>
177 <pubDate>Wed,
30 May
2012 14:
30:
00 +
0200</pubDate>
178 <description><p
>En god og offentlig kilde til bensinpriser i Norge er
179 <a href=
"http://www.dinside.no/
1931/her-faar-du-billigst-bensin-diesel
">dinside.no
180 sin prisoversikt
</a
> samlet inn på dugnad fra frivillige over hele
181 landet. Den har ikke like mange priser rapportert inn som Bitfactorys
182 mobil-app, men informasjonen som samles inn er enkelt offentlig
183 tilgjengelig på web. Dessverre forsvinner prisene fra web etter noen
184 dager, så for å kunne lage analyser og se trender må en lage en
185 database ved å hente ut informasjon fra dinside.no sine nettsider over
186 en lengre periode. Jeg startet for litt over en uke siden en
187 innsamlingstjeneste som gjør nettopp dette. Jeg har de siste ukene
188 lært meg å bruke
<a href=
"http://www.scraperwiki.com/
">Scraperwiki
</a
>,
189 et nytt og nyttig verktøy for å hente ut og strukturere informasjon
190 tilgjengelig fra nettsider, PDF-er og andre kilder og som trenger
191 strukturering. Hvis du vil se hvordan prisene har utviklet seg, ta en
193 <a href=
"https://scraperwiki.com/scrapers/dinside-bensinpriser/
">scraperwiki-siden
194 med databasen
</a
> over bensinpriser. Den henter ned priser fra
195 dinside.no hver time. Hvis du vil bidra til å bedre oversikt over
196 bensinprisene i Norge
197 <a href=
"http://www.dinside.no/php/int/vis_endre.php?ny=
1">registrer
198 deg
</a
> hos dinside.no og legg inn prisene fra dine lokale
199 bensinstasjoner.
</p
>
201 <p
>Jeg har kun gjort dette med informasjonen fra dinside.no og ikke
202 informasjonen fra Bitfactory pga. bekymring rundt opphavsrettslige
203 problemstillinger. Faktainformasjonen samlet inn av brukerene av
204 dinside.no nettsider er åpenbart publisert offentlig, mens jeg
205 mistenker det er en juridisk gråsone om det samme gjelder
206 informasjonen samlet inn av brukerne av bitfactorys mobilapp. Derfor
207 bidrar jeg med å samle inn priser hos dinside.no, og anbefaler andre å
208 gjøre det samme. Jeg prioriterer å bidra hos de som forstår verdien
209 av å dele informasjon med andre uten bruksbegresninger.
</p
>
214 <title>Hvor samles det inn bensinpriser for Norge?
</title>
215 <link>http://people.skolelinux.org/pere/blog/Hvor_samles_det_inn_bensinpriser_for_Norge_.html
</link>
216 <guid isPermaLink=
"true">http://people.skolelinux.org/pere/blog/Hvor_samles_det_inn_bensinpriser_for_Norge_.html
</guid>
217 <pubDate>Thu,
31 May
2012 13:
30:
00 +
0200</pubDate>
218 <description><p
>Det finnes i følge de som har talt ca.
1600 bensinstasjoner i
219 Norge. Daglig innsamling av informasjon fra alle disse vil antagelig
220 kreve noen tusen frivillige. Dugnadsbasert innsamling av bensinpriser
221 for å gjøre det enklere å sammenligne priser og dermed bedre
222 konkurransen i bensinmarkedet er en idé som mange har gjennomført de
223 siste årene. Her er et forsøk på en oversikt over de som finnes i
228 <dt
>Dinside.no nettside
</dt
>
230 <dd
>Nettavisen dinside startet for noen år siden en dugnad for å
231 <a href=
"http://www.dinside.no/
1931/her-faar-du-billigst-bensin-diesel
">samle
232 inn drivstoffpriser
</a
>. Tjenesten samler inn med et nettsideskjema
233 der en må registrere seg for å delta. En SMS-tjeneste har visst
234 eksistert tidligere, men er ute av drift
2012-
05-
31. Listen over
235 bensinstasjoner er kun tilgjengelig for registrerte brukere, og
236 mangler geografiske koordinater for fremvisning på kart. Listen over
237 innsamlede bensinpriser er tilgjengelig som nettside i litt over
24
238 timer etter registrering. Antall innsamlede priser pr. dag ligger i
239 området
10-
35, og jeg har startet på
240 <a href=
"https://scraperwiki.com/scrapers/dinside-bensinpriser/
">en
241 database over de publiserte prisene
</a
> hos Scraperwiki.
</dd
>
243 <dt
>Bitfactorys mobilapp
</dt
>
245 <dd
>I fjor lanserte
246 <a href=
"http://www.bitfactory.no/bensinpris.html
">selskapet Bitfactory
247 sin landsdekkende mobilapp
</a
> (først for iphone, siden også for
248 Android) for å samle inn drivstoffpriser og gjøre det enkelt å finne
249 billigste stasjon i nærområdet ved hjelp av smarttelefon. Den
250 innsamlede informasjonen er ikke publisert på web, men dagens priser
251 kan hentes ut ved hjelp av et
252 <a href=
"http://people.skolelinux.org/pere/blog/Litt_informasjon_om_Bitfactorys_Bensinpris_API.html
">web-API
253 som jeg har dokumentert med reversutvikling
</a
>. Stasjonslisten
254 inneholder geografiske koordinater for fremvisning på kart. Antall
255 innsamlede priser pr. dag ser ut til å ligge rundt
200.
</dd
>
259 <dt
>NAF Bergens nettside og iphone-app
</dt
>
261 <dd
>I år lanserte NAF Bergen
<a href=
"http://www.drivstoffpriser.no/
">en
262 landsdekkende iphone-app
</a
> koblet til NAF Bergens tjeneste for å
263 samle inn og varsle brukerne om bensinpriser. Nettstedet har
264 publisert listen over bensinstasjoner, men ikke en komplett oversikt
265 over innsamlede priser. De har interessant statistikk over
266 prisutviklingen som går tilbake til
2009.
268 <dt
>bensinpris.net
</dt
>
270 <dd
>Nettside med prisinformasjon for Trondheimsområdet. Informasjonen
271 registreres via web og SMS, og krever ikke registrering. Nettsiden
272 viser de tre siste prisene registret for bensin og disel. Har liste
273 over kjente stasjoner tilgjengelig. Svært lite oppdatert for
278 <p
>I tillegg er jeg kjent med drivstoffguiden.no som ser ut til å være
279 nedlagt, og at SSB som del av beregningen av konsumprisindeksen samler
280 inn driftstoffpriser hver måned og
281 <a href=
"http://www.ssb.no/petroleumsalg/
">legger dem ut i
282 PDF-format
</a
>.
</p
>
284 <p
>Det jeg ikke forstår er hvorfor det stadig opprettes nye nett- og
285 mobiltjenester for å samle inn bensinpriser, i stedet for å samarbeide
286 med de eksisterende løsninger for å gjøre de gode nok til nye
287 bruksområder. Jobben med å samle inn priser er formidabel, og hvis
288 målet er bedre konkurranse på bensinmarkedet ville jeg tro det beste
289 var om kundene samlet seg om _ett_ nettsted og samlet alle prisene
290 der, i stedet for å spre innsatsen på mange nettsteder. Jeg mistenker
291 årsaken ligger i at de aktørene som har satt opp tjenester så langt
292 ikke har lagt opp til deling og samarbeid på like vilkår med andre
293 aktører, og dermed gjort det vanskelig å legge til funksjonalitet som
294 presentasjon på kart, statistisk analyse eller kvalitetssikring av
295 bensinstasjonslisten og prisinformasjonen.
</p
>
300 <th
>Tjeneste
</th
>
301 <th
>Offentlig stasjons-liste
</th
>
302 <th
>Publisert stasjons-geopunkt
</th
>
303 <th
>Publisert API for inn-legging
</th
>
304 <th
>Publisert API for ut-henting
</th
>
305 <th
>Publisert alle priser
</th
>
306 <th
>Publisert database
</th
>
307 <th
>Lands-dekkende
</th
>
311 <td
>Dinside
</td
>
312 <td
>(ja)
</td
>
313 <td
>nei
</td
>
314 <td
>nei
</td
>
315 <td
>nei
</td
>
316 <td
>ja
</td
>
317 <td
>(ja)
</td
>
318 <td
>ja
</td
>
322 <td
>Bitfactorys mobilapp
</td
>
323 <td
>nei
</td
>
324 <td
>ja
</td
>
325 <td
>(ja)
</td
>
326 <td
>(ja)
</td
>
327 <td
>nei
</td
>
328 <td
>nei
</td
>
329 <td
>ja
</td
>
333 <td
>drivstoffpriser.no
</td
>
334 <td
>ja
</td
>
335 <td
>ja
</td
>
336 <td
>nei
</td
>
337 <td
>nei
</td
>
338 <td
>nei
</td
>
339 <td
>nei
</td
>
340 <td
>ja
</td
>
344 <td
>bensinpris.net
</td
>
345 <td
>ja
</td
>
346 <td
>nei
</td
>
347 <td
>nei
</td
>
348 <td
>nei
</td
>
349 <td
>nei
</td
>
350 <td
>nei
</td
>
351 <td
>nei
</td
>
356 <p
>Dinside mangler dugnadsbasert kvalitetssikring av stasjonslista,
357 georeferert informasjon og API for innlegging og uthenting av
358 informasjon. Bitfactory mangler publisering av all innsamlet
359 informasjon, dugnadsbasert kvalitetssikring av stasjonslista og
360 dokumentert API for innlegging og uthenting av informasjon. NAFs
361 løsning mangler publisering av all innsamlet informasjon og API for
362 innlegging og uthenting av informasjon.
</p
>
364 <p
>Jeg har nylig spurt folkene bak dinside.nos oversikt og
365 drivstoffpriser.no om de er villige til å gi ut sine innsamlede data
366 uten bruksbegresninger og tilby et dokumentert og publisert API for å
367 legge inn og hente ut informasjon. Så får vi se hva de sier.
</p
>