Modul-Fingerübung: Spritpreis

Begonnen von pjakobs, 11 Januar 2017, 11:07:36

Vorheriges Thema - Nächstes Thema

mumpitzstuff

Eine ID kann man nur mit set und nicht mit get hinzufügen. Der Aufruf lautet dann:

set <device> add id <id>

Wenn man das über die Oberfläche macht, muss man tatsächlich eingeben: id 831548ca-4b4e-4879-b671-a7fc4c0a2431

Das Modul zerlegt das noch mal intern...

mahowi

#76
Ich hatte in der Tat das "id" vergessen. Aber ich habe es jetzt auch nochmal über die Befehlszeile eingegeben und bekomme die Fehlermeldung:
set Benzin add id 831548ca-4b4e-4879-b671-a7fc4c0a2431
2018.04.25 10:03:38.352 3 : Benzin: get Benzin add id
2018.04.25 10:03:38.353 3 : Benzin: please provide a valid apikey, you can get it from https://creativecommons.tankerkoenig.de/#register. This function can't work without it


Edit: Der API-Key ist definitiv richtig. Ich habe mir gerade mal das Log auf Tankerkönig für den Key runtergeladen. Als einzigen Eintrag gibt es was von heute morgen um 8:08 Uhr, das müsste mein "get test" gewesen sein:
93.244.4.151 - - [25/Apr/2018:08:08:47 +0200] "GET /json/prices.php?ids=12121212-1212-1212-1212-121212121212&apikey=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx HTTP/1.0" 200 135 "-" "fhem" 0.005
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

pc1246

Moin
Ich erinnere mich, dass das mit den id's sehr seltsam war. Ich weiss aber nicht mehr, wie ich es hinbekommen habe!
Gruss Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

mahowi

Wenn ich die Seite https://creativecommons.tankerkoenig.de/json/prices.php?ids=831548ca-4b4e-4879-b671-a7fc4c0a2431&apikey=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx direkt im Browser aufrufe, bekomme ich auch die Preise ohne Fehlermeldung als JSON zurück:
{"ok":true,"license":"CC BY 4.0 -  https:\/\/creativecommons.tankerkoenig.de","data":"MTS-K","prices":{"831548ca-4b4e-4879-b671-a7fc4c0a2431":{"status":"open","e5":1.379,"e10":1.359,"diesel":1.189}}}
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

pula

Mal so eine Frage. Hat das auch jemand mit spritpreisrechner.at in Betrieb?
Wäre nett, wenn jemand die def posten könnte...
Cheers,
Pula
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

mumpitzstuff

defmod SPRITPREISE HTTPMOD https://creativecommons.tankerkoenig.de/json/prices.php?ids=f56514c7-2dc9-46b7-ae45-4b812022a43f,51d4b4d6-a095-1aa0-e100-80009459e03a&apikey=<api Key> 900
attr SPRITPREISE enableControlSet 1
attr SPRITPREISE extractAllJSON 1
attr SPRITPREISE room TRAFFIC
attr SPRITPREISE stateFormat E5 (Di): prices_f56514c7-2dc9-46b7-ae45-4b812022a43f_e5€ / E5 (Fe): prices_51d4b4d6-a095-1aa0-e100-80009459e03a_e5€


Bei mir läuft das hier seit Monaten anstandslos. Den api Key oben müsst ihr ersetzen, falls ihr das verwendet.

pula

Danke sehr! Das ist aber leider für tankerkoenig und nicht für spritpreisrechner.at... :-(
cheers,
Pula
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

mumpitzstuff

#82
https://api.e-control.at/sprit/1.0/doc/index.html?url=https://api.e-control.at/sprit/1.0/api-docs%3Fgroup%3Dpublic-api

Guckst du:

defmod SPRITPREISE_AT HTTPMOD https://api.e-control.at/sprit/1.0/search/gas-stations/by-address?latitude=48.092431&longitude=16.287927&fuelType=DIE&includeClosed=false 900
attr SPRITPREISE_AT enableControlSet 1
attr SPRITPREISE_AT extractAllJSON 1
attr SPRITPREISE_AT room TRAFFIC


fuelType kannst du auf DIE, SUP oder GAS setzen. Die Koordinaten musst du anpassen.

pula

Super, vielen Dank! Hat auf Anhieb funktioniert!
Da das leider nicht die Abfrage einer einzelnen Tankstelle unterstützen, wird das wieder gepfriemel, die eine, die ich möchte rauszusuchen.
Ist aber trotzdem sehr lässig und einfach per HTTPMOD....
Cheers,
Pula
fhem (debian auf proxmox), HM-LAN und wired, MySensors, FritzBoxes, Kodi, vdr, Onkyo, squeezeplayers, nanoCUL, wifilight (Ethernet-Bridge), Heizungssteuerung (python/vncdotool), doorpi, ESP/Arduinos/MQTT, Alexa, HomeConnect, Sonoff/Tasmota, espRGBWW, esphome, Telegram

jkriegl

lief bislang wunderbar, habe gestern eine FHEM-update gemacht und jetzt wird nicht mehr aktualisiert.
im Log steht2019.07.04 22:18:34 3: tanke: get tanke update
2019.07.04 22:18:34 4: tanke: called Spritpreis_Tankerkoenig_updateAll
2019.07.04 22:18:34 5: tanke: i: 1, j: 1, id: 51d4b71e-a095-1aa0-e100-80009459e03a
2019.07.04 22:18:34 5: tanke: i: 2, j: 2, id: 8185cb0e-6dcf-42ad-a5e9-c63209564c96
2019.07.04 22:18:34 4: tanke: called https://creativecommons.tankerkoenig.de/json/prices.php?ids=67693691-5653-44b1-9c0f-1151ddc9ea40,51d4b71e-a095-1aa0-e100-80009459e03a,8185cb0e-6dcf-42ad-a5e9-c63209564c96&apikey=
2019.07.04 22:18:34 4: tanke(update all): Set ending at 3 IDList=67693691-5653-44b1-9c0f-1151ddc9ea40,51d4b71e-a095-1aa0-e100-80009459e03a,8185cb0e-6dcf-42ad-a5e9-c63209564c96
2019.07.04 22:18:34 4: tanke: updateAll set timer for 1562272414.17234 delay 900
2019.07.04 22:18:34 4: tanke: got PricesForLocation reply
2019.07.04 22:18:34 5: tanke: got data {"status":"error","ok":false,"message":"parameter error"}



2019.07.04 22:18:34 5: tanke: stations:$VAR1 = undef;

2019.07.04 22:18:34 4: tanke: checking ID 67693691-5653-44b1-9c0f-1151ddc9ea40
2019.07.04 22:18:34 4: tanke: checking ID 51d4b71e-a095-1aa0-e100-80009459e03a
2019.07.04 22:18:34 4: tanke: checking ID 8185cb0e-6dcf-42ad-a5e9-c63209564c96

Was muss ich anpassen?
Rpi 3, Fhem, Cul 868, HM-CC-RT-DN, HM-Sec-Sco, HM-ES-PMSw1-Pl, ebus (Vaillant), ECMD, Telegram, HTTPMOD, Xiaomi, Shelly

hjgode

Da würde ich mal die Adresse manuel im Borwser eingeben:

https://creativecommons.tankerkoenig.de/json/prices.php?ids=67693691-5653-44b1-9c0f-1151ddc9ea40,51d4b71e-a095-1aa0-e100-80009459e03a,8185cb0e-6dcf-42ad-a5e9-c63209564c96&apikey=

Natürlich um den API Key ergänzt.

An alle, bei denen das Modul nicht geladen wird: es verwendet einen unnötigen use Eintrag:
     use Time::HiRes qw(usleep nanosleep);

den einfach mal auskommentieren:
     #use Time::HiRes qw(usleep nanosleep);

Weder usleep noch nanosleep werden vom Modul genutzt. Diese beiden Funktionen stehen nicht in allen Perl Versionen und auf alle Rechnern zur Verfügung.
Debian SID mit aktuellem FHEM, nanoCUL 866, JeeLink EC3000, fhemduino, SIGNALduino,
3 x TFA TH Sensor, 1 x TFA TH Arduino Sender, 3 x EC3000, 4 x Elro Schaltsteckdosen, ESA2000
offline: Wibo Funkthermostat, 2 x ELV Funkthermostat FHT80, 2 FS20 ST4 Funksteckdose

Christoph Morrison

Hab mal einen Pull Request dafür aufgemacht.

pjakobs

Zitat von: Christoph Morrison am 15 Januar 2020, 19:04:50
Hab mal einen Pull Request dafür aufgemacht.

Hi Christoph,

danke für den PR, ich hab ihn gemerged.

Leider ist das Modul bei mir ein bisschen in Vergessenheit geraten - und war sowieso ursprünglich eher als "Fingerübung" gedacht, um ein Modul from Scratch zu schreiben.
Ich würde mich freuen, wenn jemand es "in Pflege" nehmen könnte, denn ich komm vermutlich in Zukunft auch nicht dazu, mich anständig darum zu kümmern.
Grüße

pj

mahowi

Könntest Du das "controls"-File bitte noch updaten? Sonst schlägt das Update leider fehl:
2020.01.16 09:35:13.402 1:  spritpreis
2020.01.16 09:35:13.906 1:  UPD FHEM/72_Spritpreis.pm
2020.01.16 09:35:14.107 1:  Got 29923 bytes for FHEM/72_Spritpreis.pm, expected 29961
2020.01.16 09:35:14.109 1:  aborting.


Danke!
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee