Hallo ich möchte gerne mein eigenes Modul machen, das eine HTML seite zyklisch ausliest und dann die Daten auswertet.
Daher bin ich gerade auf der Suche welches bestehende Modul ich dazu am besten verwenden soll zum Copy & Paste und dann eben umschreiben?
Es sollte halt so einfach wie möglich sein, momentan schaue ich mir gerade mal das 59_OPENWEATHER dazu an ... gibts es noch schönere/einfachere?
Das HTTPMOD möchte ich deswegen nicht verwnden, weil das zurückgegebenen HTML eher komplex ist, ich daraus erst den JSON Stirn extrahieren muss, dann habe ich eine Liste von array die ich dann sortieren muss nach einem Wert und dann die ersten 3 Einträge auslesen ....
Sehr viel einfacher als HTTPMOD wirds nicht werden, weil das Thema alles andere als trivial ist...
Also einfach "was nehmen und umschreiben" wird kaum möglich sein.
Aber, wenn wir wissen, welche Seite Du auslesen magst, kann man sich die ggf. anschauen und Dir besser helfen.
also es geht um Spritpreise (Österreich)
diese Seite enthält mitten drinnen das JSON Array
var lon = 16.3705,
lat = 48.2077,
ortsname = 'Wien Innere Stadt';
var latlng = {lat:lat,lng:lon};
var results = [{"dataID":0,"gasStationName":"SPRIT-INN","petrolStationID":"SPRIT-INN","petrolStationBrand":"SPRIT-INN","distance":1.54,"address":"Rechte Wienzeile 43","postalCode":"1050","city":"wien","longitude":"16.3587045","latitude":"48.1963317","country":"at","phone":"4315872307","serviceText":"Autoreinigung Handw\u00e4sche Innen & Au\u00dfen, Reifendienst, Neureifen, Reifenmontage und -umstecken, Reifendepot, \u00d6lwechsel Service, KFZ Service, Schnell Service, \u00a757A Vorbereitung, KFZ Batterien, KFZ Lampen, KFZ Zubeh\u00f6r Kaffeautomat Shop f\u00fcr Getr\u00e4nke, Snacks, S\u00fc\u00dfigkeiten, Zigaretten\r\n","mail":"","url":"http:\/\/www.spritinn.at","features":"48.1963317","bar":true,"kredit":"48.1963317","maestro":true,"paymentMethods":"","niceurl":"48.1963317","currency":"\u20ac","spritPrice":{"diesel":{"price":"1.079","reportedBy":18,"datetime":"23.02.2017 - 10:12","confirmed":1,"poweruser":1,"trusted":1,"superuser":0,"country":"at"},"amount":"1.079"},"openingHours":{"DO":{"beginn":"06:00","end":"20:00"},"MO":{"beginn":"06:00","end":"20:00"},"SO":{"beginn":"08:00","end":"20:00"},"SA":{"beginn":"06:00","end":"20:00"},"FR":{"beginn":"06:00","end":"20:00"},"DI":{"beginn":"06:00","end":"20:00"},"MI":{"beginn":"06:00","end":"20:00"},"FE":{"beginn":"08:00","end":"20:00"}},"lastUpdate":"2017-02-23 10:12"},{"dataID":1,"gasStationName":"Turm\u00f6l","petrolStationID":"Turm\u00f6l","petrolStationBrand":"Turm\u00f6l","distance":1.34,"address":"Margaretenstrasse 28","postalCode":"1040","city":"Wien","longitude":"16.3648216561744","latitude":"48.1962250998788","country":"at","phone":"4315872568","serviceText":"Shop,Waschanlage,Reifendienst,Auto...
Das möchte ich eben auslesen und das JSON Array formatieren...
per Javascript könnte ich das sofort hinschreiben, da wärs kein Problem, ich glaub auch das ich es per Perl schaffen werden, aus dem Text dann das zu extrahieren.
Nur das drum herum, da tue ich mir noch etwas schwer.
Hast Du schon mal das Spritpreismonitor Modul angeschaut? https://wiki.fhem.de/wiki/Spritpreismonitor
Zitat von: sn0000py am 23 Februar 2017, 10:15:11
also es geht um Spritpreise (Österreich)
diese Seite enthält mitten drinnen das JSON Array
var lon = 16.3705,
lat = 48.2077,
ortsname = 'Wien Innere Stadt';
var latlng = {lat:lat,lng:lon};
var results = [{"dataID":0,"gasStationName":"SPRIT-INN","petrolStationID":"SPRIT-INN","petrolStationBrand":"SPRIT-INN","distance":1.54,"address":"Rechte Wienzeile 43","postalCode":"1050","city":"wien","longitude":"16.3587045","latitude":"48.1963317","country":"at","phone":"4315872307","serviceText":"Autoreinigung Handw\u00e4sche Innen & Au\u00dfen, Reifendienst, Neureifen, Reifenmontage und -umstecken, Reifendepot, \u00d6lwechsel Service, KFZ Service, Schnell Service, \u00a757A Vorbereitung, KFZ Batterien, KFZ Lampen, KFZ Zubeh\u00f6r Kaffeautomat Shop f\u00fcr Getr\u00e4nke, Snacks, S\u00fc\u00dfigkeiten, Zigaretten\r\n","mail":"","url":"http:\/\/www.spritinn.at","features":"48.1963317","bar":true,"kredit":"48.1963317","maestro":true,"paymentMethods":"","niceurl":"48.1963317","currency":"\u20ac","spritPrice":{"diesel":{"price":"1.079","reportedBy":18,"datetime":"23.02.2017 - 10:12","confirmed":1,"poweruser":1,"trusted":1,"superuser":0,"country":"at"},"amount":"1.079"},"openingHours":{"DO":{"beginn":"06:00","end":"20:00"},"MO":{"beginn":"06:00","end":"20:00"},"SO":{"beginn":"08:00","end":"20:00"},"SA":{"beginn":"06:00","end":"20:00"},"FR":{"beginn":"06:00","end":"20:00"},"DI":{"beginn":"06:00","end":"20:00"},"MI":{"beginn":"06:00","end":"20:00"},"FE":{"beginn":"08:00","end":"20:00"}},"lastUpdate":"2017-02-23 10:12"},{"dataID":1,"gasStationName":"Turm\u00f6l","petrolStationID":"Turm\u00f6l","petrolStationBrand":"Turm\u00f6l","distance":1.34,"address":"Margaretenstrasse 28","postalCode":"1040","city":"Wien","longitude":"16.3648216561744","latitude":"48.1962250998788","country":"at","phone":"4315872568","serviceText":"Shop,Waschanlage,Reifendienst,Auto...
Das möchte ich eben auslesen und das JSON Array formatieren...
per Javascript könnte ich das sofort hinschreiben, da wärs kein Problem, ich glaub auch das ich es per Perl schaffen werden, aus dem Text dann das zu extrahieren.
Nur das drum herum, da tue ich mir noch etwas schwer.
Und httpmod kann auch json! https://wiki.fhem.de/wiki/HTTPMOD#Parsing_JSON
Grüße Jörg
ja ich habs shcon gesehen das es JSON kann, aber ich muss das JSON array zuvor noch sortieren usw... das wird mit den readings irgendwie extra kompliziert oder?
und das Modul kenne ich von da kommt ja meine Idee das ich das umsetzen will ...