Today I pushed one feature and some bug fixes. For details see the bit bucket page linked from my homepage.
The feature is something that I hope will make quite a few happy. It is a plugin that fetches and parses data from files/urls at a regular interval.
There are several way to parse the fetched data for example line and characters at that line, scanf or regular expression and even a subset of the xpath standard.
With this functionality I hope you will be able to integrate easier with other systems. I guess this will be very useful for OWFS users out there. But it will probably make it possible to download your own temperature data as well.

Good luck and good night.
Bug reports and feedback very welcome.
Johan
23/1/2013 03:43:07 am

Nice, bra jobbat! Nu hoppas jag bara på en ny leverans av DUO från Tellstick till butikerna snart.

Reply
Daniel
23/1/2013 04:37:28 am

Fantastiskt! Fungerar helt underbart tillsammans med OWFS servern! Tack!

Reply
Peter T
24/1/2013 05:28:51 am

Testade med att hämta lite yr.no data:
http://www.yr.no/sted/Sverige/Stockholm/Stockholm/forecast.xml
XPATH
/weatherdata/forecast/tabular/time[1]/pressure/@value

Men jag får Unable to fetch. Error given:IndexError: list index out of range

Testar med en xpath tester och där funkar det?

Reply
simply
25/1/2013 02:14:49 am

Jag får samma felmeddelande. Försöker lägga till en URL-fetch på lokala nätverket att bara hämta en textfil som innehåller utetemp..
IndexError: list index out of range... !?

Reply
David
26/1/2013 01:51:39 am

Hej, jag har hittat buggen men har inte tid att göra en rättning nu ikväll. Kommer så snart jag får en stund över att jobba med systemet.

Ola Palm
25/1/2013 08:40:09 am

Jag får inte detta att funka när jag försöker läsa en fil. Om jag sätter en ogiltig sökväg så får jag meddelande om att den är fel, så den tycks hitta filen som jag pekar ut när jag sätter den till den rätta sökvägen. Jag använder line, char, pos.. och har testat lite olika anternativ. Min fil (temp-ute.txt) innehåller endast värdet från tempsensor, typ -4.7, de är allt som står i filen. Finns de någon manual av något slag där man kan se exempel på hur detta är tänkt att funka?

Reply
David
25/1/2013 07:14:05 pm

Hej, det finns ingen manual. Tycker det är skitteåkigt att skriva sådant - tyvärr. Men du gör nog helt rätt. Innehåller inte filen något mer är det 0 på alla line, char, size. När detta är klart gå till /signal/index/ och slå på loggning. Efter ett tag ser du din signal med hämtad data. (hoppas jag).

Reply
simply
26/1/2013 12:57:45 am

Hej!

Det verkar vara något fuffens att hämta från en URL med "Line,Character,Length" parser med 0,0,0 konfigurerat. Jag får "List index out of range". Ändrar jag dock till FILE och sätter en Path, ändrar inget annat, så fungerar det prima.

David
26/1/2013 06:24:00 am

Jag fick lite tid över. Nu är en en buggrättning på DataFetcher från URL inne. Dock måste jag även beklaga mig över hur begränsad xpath-implementationen är i det bibliotek jag hittade som följde med python. Måste förmodligen installera något nytt paket och göra en ny image.

Reply
Matias Sjögren
27/1/2013 10:17:05 pm

Hej. Jag har testat lite med datafetcher och försökt få Xpath exemplet ovan att fungera.

Parser: XML (Xpath)
URL: http://www.yr.no/sted/Sverige/Stockholm/Stockholm/forecast.xml
Path: /weatherdata/forecast/tabular/time[1]/pressure/@value

När jag trycker spara så får jag detta felmeddelande:
Unable to parse. Error given:SyntaxError: cannot use absolute path on element.

Någon som vet vad detta kan bero på?

Reply
David
28/1/2013 12:27:57 am

För att xpath implementationen är betydligt sämre än jag trodde. Måste lösa detta genom installation av ytterligare paket för xpath hanteringen. Se dokumentationslänken om xpath, där nämns begränsningar.

David
4/8/2013 05:15:24 pm

Nu finns en uppdatering som använder lxml för xpath (om du kör senaste imagen). Denna ska vara standard compliant.

Matias Sjögren
28/1/2013 05:02:58 pm

Jag försöker lösa det med en line, char, length, istället för med xpath.
Jag vill läsa ur temperaturen från en xml feed från YR, och det är inga problem att hitta rätt line & char att börja läsa ifrån. Däremot så vet man ju inte hur många tecken temperaturen är, kan ju vara t.ex 2, 27 & -15. Jag vet att efter temperaturen kommer tecknena "/>.
Har försökt lite med scanf, men utan någon lycka.
XML feeden som jag använder är http://www.yr.no/sted/Sverige/Halland/Kungsbacka_Hede/varsel_time_for_time.xml
Jag använder line 36, char 43, lengt 0.

Någon som har någon ide på scanf sträng som kan fungera?
Alternativt något annat sätt att få temperatur från URL?

Reply
David
28/1/2013 06:41:13 pm

Hej, prova att sätta length 0 så får du resten av raden. Sedan kan du ta det med en scanf när du skapar en handler på signalen som kommer. Måste erkänna att Datafetchers är rätt otestad. Finns väldigt många fall som kan ställa till det så rapportera gärna fel om ni hittarnågra.

Reply
Riku
5/3/2013 06:16:10 am

Hey,

I'm considering getting a Tellstick and using it with your app on Raspi. I have also installed transmitters to my existing wall switches, which I need to keep for my gf.

What happens when I turn a light on with the app and she turns it off? Am I right thinking the app will still think it's on, since this is strictly one-way protocol?

Would getting a Tellstick Duo and routing every switch/transmitter through it solve this?

Reply
David
24/7/2013 07:21:30 am

Yes a tellstick Duo could togheter with automagically solve it so that the app detects your wall switch presses and changes device status, but it will not handle dimming from wall switches :-(

Reply
Johan
24/7/2013 12:06:33 am

I have tried to understand the Data Fetchers function, but I can't get it work together with xpath.

In google sheet this works =importXml("http://www.vackertvader.se/v%C3%A4derstation/b%C3%A5stad--hemmesl%C3%B6v"; "//div/div[2]/div[3]/div")

But when i use
URL: http://www.vackertvader.se/v%C3%A4derstation/b%C3%A5stad--hemmesl%C3%B6v
Xpath: //div/div[2]/div[3]/div

Automagically tells me that there are an error in line 95 column 3?

Are there more setting I need to put in this function?

And I also wonder were I can use for example the temperatur value i get to regulate some devices?

Reply
David
24/7/2013 07:19:55 am

Xpath implementation is realy crapy right now because of the built in xpath handling in python. In last image published some time ago I have added a better xpath library but implementation is not done yet. Please be patient.

Reply
PE
23/8/2013 12:11:52 am

Försöker få i gång detta med temperatur.nu men få inte till det.
I html finns temperaturen på rad 244 som ser ut så här: <span class=favoritTemp>22,8°C</span>
Vad är bästa sätt?

Reply
Anton
24/10/2013 06:10:35 pm

Lyckades du få till en lösning med temperatur.nu?

Reply
Anton
27/10/2013 05:14:51 pm

Jag får bara ett fel när jag försöker spara, HTTP Error 500 - Internal server error, men det förmodar jag inte händer er andra?




Leave a Reply.