hjemmedude Skrevet 19. april 2023 Skrevet 19. april 2023 Hei - noen som har fÄtt inn drivstoffpriser fra drivstoffappen i HA? Jeg prÞver med denne; Home Assistant - Hente billigste bensin · GitHub Via facebook ser jeg diverse lÞsninger i Node Red, prÞver Ä unngÄ node red siden jeg ikke bruker det. Per nÄ trÞbler det litt for prisen for 98 og 95 vises og ikke prisen for diesel. Fant alle bensinstasjoner her; https://api.drivstoffappen.no/api/stations?stationType=0&countryCode=NO 1 Siter
VikingOy Skrevet 19. april 2023 Skrevet 19. april 2023 Har du en link til Facebook som du viser til ? Siter
hjemmedude Skrevet 19. april 2023 Forfatter Skrevet 19. april 2023 VikingOy skrev (23 minutter siden): Har du en link til Facebook som du viser til ? Home Assistant Norge | Facebook Innlegg 12. april , klarte ikke finne direktelink Siter
MrE Skrevet 19. april 2023 Skrevet 19. april 2023 (endret) Det er enkelt Ä fÄ til uten node-red. Jeg har ferdig konfigurasjon til dette, men utilgjengelig grunnet systemkrasj.  Du henter priser via REST, lager template sensor for hvert drivstoff pr stasjon. Endret 19. april 2023 av MrE Siter
Hillmar Skrevet 19. april 2023 Skrevet 19. april 2023 17 minutes ago, MrE said: Det er enkelt Ä fĂ„ til uten node-red. Jeg har ferdig konfigurasjon til dette, men utilgjengelig grunnet systemkrasj.  Du henter priser via REST, lager template sensor for hvert drivstoff pr stasjon. Alt er enkelt nĂ„r man kan det đ Legg gjerne ut noen hint til oss andre nĂ„r systemet ditt er oppe Ă„ gĂ„r igjen. Siter
VikingOy Skrevet 19. april 2023 Skrevet 19. april 2023 Jeg la inn NodeRed Flow'en som lÄ pÄ FaceBook, og det fungerte helt greit. Siter
hjemmedude Skrevet 20. april 2023 Forfatter Skrevet 20. april 2023 MrE skrev (16 timer siden): Det er enkelt Ä fĂ„ til uten node-red. Jeg har ferdig konfigurasjon til dette, men utilgjengelig grunnet systemkrasj.  Du henter priser via REST, lager template sensor for hvert drivstoff pr stasjon. NĂ„r du er tilbake fra krĂŠsj ser jeg gjerne lĂžsningen din ogsĂ„ đ Koden over henter via curl oppdatering hver time og jeg merker pĂ„ HA at alt blir tregt under Development tools og states siden den skal laste inn alle stasjoner i Norge. For min og sikkert de fleste er det kun 4-6 stasjoner i nĂŠrheten som er aktuelle. I tillegg sliter jeg med 98 bensin pris og ikke diesel selv om jeg ser i koden at det bes om price_diesel Siter
VikingOy Skrevet 20. april 2023 Skrevet 20. april 2023 Etter Ä ha juster litt pÄ utvalget, endte jeg opp med dette i HA: Jeg opplever ingen forsinkelser eller pÄvirkning av andre funksjoner hverken i HA eller pÄ annen programmvare som kjÞrer.  Siter
SveinHa Skrevet 20. april 2023 Skrevet 20. april 2023 VikingOy skrev (13 timer siden): Jeg la inn NodeRed Flow'en som lÄ pÄ FaceBook, Kan du dele til flowen til oss som ikke er pÄ Fakebook? Siter
VikingOy Skrevet 20. april 2023 Skrevet 20. april 2023 (endret) Slettet. Endret 20. april 2023 av VikingOy Siter
SveinHa Skrevet 20. april 2023 Skrevet 20. april 2023 Takker og bukker @VikingOy  Mye bedre Ä dele NodeRed flows som compact JSON tagget som "Kode" slik som dette: [{"id":"9103052baf82e5d0","type":"inject","z":"2447f70b5f1095ba","name":"Hvert 10 min","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"600","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":360,"y":130,"wires":[["687284b792794184"]]},{"id":"687284b792794184","type":"http request","z":"2447f70b5f1095ba","name":"","method":"GET","ret":"obj","paytoqs":"ignore","url":"https://api.drivstoffappen.no/api/stations?stationType=0&countryCode=NO","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[{"keyType":"other","keyValue":"Content-Type","valueType":"other","valueValue":"application/json"},{"keyType":"other","keyValue":"X-API-KEY","valueType":"other","valueValue":"2CD114509703F6E0A976C32FCB79C4F62966EEC6"},{"keyType":"other","keyValue":"User-Agent","valueType":"other","valueValue":"Drivstoffappen/1.3.8 (com.raskebiler.drivstoff.appen; build:130; iOS 15.2.1) Alamofire/5.4.4"}],"x":550,"y":130,"wires":[["18ec6499f1fefde8","e7e0a907d77667f2","283d51c6efeddbb7","85dd9827b7d9a90c"]]},{"id":"18ec6499f1fefde8","type":"function","z":"2447f70b5f1095ba","name":"Esso Avaldsnes","func":"msg.payload = msg.payload.filter((/** @type {{ discountInfo: string; }} */ e) => e.discountInfo == 'Esso Avaldsnes');\nmsg.payload[0].stationDetails = msg.payload[0].stationDetails.filter(e => e.type == '95' || e.type == 'D' )\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":770,"y":130,"wires":[["0e5b02362818c9c1"]]},{"id":"e7e0a907d77667f2","type":"function","z":"2447f70b5f1095ba","name":"Uno-X Avaldsnes","func":"msg.payload = msg.payload.filter(e => e.discountInfo == 'Uno-X Avaldsnes');\nmsg.payload[0].stationDetails = msg.payload[0].stationDetails.filter(e => e.type == '95' || e.type == 'D' )\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":780,"y":190,"wires":[["0e5b02362818c9c1"]]},{"id":"283d51c6efeddbb7","type":"function","z":"2447f70b5f1095ba","name":"YX 7-Eleven Norheim","func":"msg.payload = msg.payload.filter(e => e.discountInfo == 'YX 7-Eleven Norheim');\nmsg.payload[0].stationDetails = msg.payload[0].stationDetails.filter(e => e.type == '95' || e.type == 'D' )\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":790,"y":250,"wires":[["0e5b02362818c9c1"]]},{"id":"85dd9827b7d9a90c","type":"function","z":"2447f70b5f1095ba","name":"Tanken Helganes - Flyplassvegen","func":"msg.payload = msg.payload.filter(e => e.discountInfo == 'Tanken Helganes - Flyplassvegen');\nmsg.payload[0].stationDetails = msg.payload[0].stationDetails.filter(e => e.type == '95' || e.type == 'D' )\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":830,"y":310,"wires":[["0e5b02362818c9c1"]]},{"id":"0e5b02362818c9c1","type":"debug","z":"2447f70b5f1095ba","name":"debug 88","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1090,"y":130,"wires":[]}]  Siter
VikingOy Skrevet 20. april 2023 Skrevet 20. april 2023 Ja, selvsagt - det gikk litt fort i den svingen đ Â Siter
Moskus Skrevet 20. april 2023 Skrevet 20. april 2023 hjemmedude skrev (PĂ„ 19.4.2023 den 9.04): Fant alle bensinstasjoner her; https://api.drivstoffappen.no/api/stations?stationType=0&countryCode=NO Supert! Takk! đ Â Siter
SveinHa Skrevet 20. april 2023 Skrevet 20. april 2023 Er dette et Äpent API til fri avbenyttelse, abonnementstjeneste eller annet? Fant ikke info pÄ drivstoffappen.no Siter
VikingOy Skrevet 20. april 2023 Skrevet 20. april 2023 Min forstÄelse er at dette API'et ikke er Äpent og fritt tilgjengelig. Det er nok en eller annen IT-dyktig luring som har funnet det og gjort en eksperimentell reverse engineering. Det kan bety at API'et nÄr som helt kan forandres og slutte Ä virke. Det er en del av gamet.  Men, sÄ er det gjerne slik at selskapet bak ofte velger Ä se gjennom fingrene med at det alltid vil vÊre noen som "finner" frem til slike API'er fordi de som bruker slike for det fÞrste ofte er i veldig fÄtall (nerdene som oss), og dernest sÄ er all markedsfÞring, god markedsfÞring. Vi er med Ä sprer info om eksistensen til Drivstoffappen.no. Og sist, men ikke minst - vi bidrar nok ogsÄ med en del verdifull tilbakemelding dersom Drivstoffappen.no gidder Ä ta seg bryet med fÞlge litt med pÄ forumene vÄre. Kall oss gjerne gratis betatestere. 3 Siter
hjemmedude Skrevet 21. april 2023 Forfatter Skrevet 21. april 2023 Appen er og en del data er gratis Ä bruke i appen, med betaltjenestene i app unlockes en del ekstra. Var nok ikke deres intensjon at datane kunne brukes av oss, men enn sÄ lenge er det Äpent. Siter
MrE Skrevet 21. april 2023 Skrevet 21. april 2023 (endret) Hei,  Her er slik jeg har gjort det, uten bruk av Node-Red etc. Jeg bruker Auto-Entities kortet i HA, og sorterer pĂ„ pris lavest - hĂžyest. Ett kort for bensin, og ett for diesel. Jeg hadde en del planer for hvordan jeg skulle ha dette, blant annet med bilde som ikon, kart som viste de forskjellige stasjonene, legge inn nĂ„r den ble sist oppdatert etc.. Tiden strekker dessverre ikke til, sĂ„ det har blitt lagt pĂ„ is inntil videre. Anyways, her er det jeg har sĂ„ langt:  I configuration.yaml har jeg lagt inn restsensor som henter stasjoner fra json filen som ble linket til lenger oppe. Tipset for Ă„ fĂ„ den lett leselig er Ă„ legge den inn i en JSON formatter, da blir filen mye renere Ă„ lese. Edit: Noen ganger nĂ„r man gĂ„r inn pĂ„ JSON filen uten Ă„ bruka api-key, fĂ„r man authorization denied. Da mĂ„ man bruke Postman API explorer og X-API-KEY for Ă„ hente JSON filen.  JSON filen ligger vedlagt.  Jeg bruker Notepad++ og brukte sĂžkefunksjon for Ă„ finne stasjonene jeg vil ha inn i oppsettet.  For Ă„ legge til stasjonen du Ăžnsker gjĂžr du fĂžlgende:  1. Finner stasjonen i JSON filen 2. Kopierer DiscountInfo navnet som du finner i JSON filen 3. endrer 3 ting under rest-sensor i configuration.yaml  - Name - Valgfritt navn, men legg merke til at navnet har bensin i seg. Det er fordi value_template henter bensin-prisen  - json attributes path discount info mĂ„ endres til stasjonsnavnet slik den stĂ„r i JSON filen.  - og value_template mĂ„ endres til samme navnet som du valgte pĂ„ Ăžverste linje.   Under template sensor mĂ„ du endre navn pĂ„ sensor (valgfritt), men state_attr mĂ„ henvise til sensor som du har laget under rest-sensor.  Shell bryne diesel henter altsĂ„ dieselprisen fra sensoren som heter shell bryne bensin...   Nedenfor er YAMLkoden for REST og for template sensor. Begge skal i configuration.yaml (ihvertfall hos meg đđ ) I RESTsensoren er det name: som sier hva sensoren skal hette, og value_template er verdien til sensoren som blir opprettet. Sensorene som ligger i restsensoren blir da bensinprisen (pĂ„ grunn av [0] i value template). Hvis det Ăžnskes diesel her sĂ„ mĂ„ du sjekke hva som stĂ„r i JSON fila. [0] er Ăžverste avsnitt, [1] blir neste osv.. Se utklipp nedenfor, kanskje det ga mer mening.   configuration.yaml  rest:  - scan_interval: 600   method: GET   headers:     Content-Type: application/json     X-API-KEY: 2CD114509703F6E0A976C32FCB79C4F62966EEC6     User-Agent: Drivstoffappen/1.3.8 (com.raskebiler.drivstoff.appen; build:130; iOS 15.2.1) Alamofire/5.4.4     Accept-Language: nb-NO;q=1.0, en-GB;q=0.9     Accept-Encoding: br;q=1.0, gzip;q=0.9, deflate;q=0.8     Connection: keep-alive   resource: https://api.drivstoffappen.no/api/stations?stationType=0&countryCode=NO   sensor:    - name: "Shell Bryne Bensin"     json_attributes_path: "$..[?(@.discountInfo=='Shell Bryne')]"     value_template: "{{ state_attr('sensor.shell_bryne_bensin', 'stationDetails')[0].price }}"     force_update: true     json_attributes:      - "id"      - "location"      - "latitude"      - "longitude"      - "pictureUrl"      - "discountInfo"      - "lastUpdated"      - "stationDetails"     - name: "Circle K LagĂ„rdsveien Bensin"     json_attributes_path: "$..[?(@.discountInfo=='Circle K LagĂ„rdsveien')]"     force_update: true     value_template: "{{ state_attr('sensor.circle_k_lagardsveien_bensin', 'stationDetails')[0].price }}"     json_attributes:      - "id"      - "location"      - "latitude"      - "longitude"      - "pictureUrl"      - "discountInfo"      - "lastUpdated"      - "stationDetails"     - name: "Uno-X Bryne Bensin"     json_attributes_path: "$..[?(@.discountInfo=='Uno-X Bryne')]"     force_update: true     value_template: "{{ state_attr('sensor.uno_x_bryne_bensin', 'stationDetails')[0].price }}"     json_attributes:      - "id"      - "location"      - "latitude"      - "longitude"      - "pictureUrl"      - "discountInfo"      - "lastUpdated"      - "stationDetails"     - name: "Esso Bryne Bensin"     json_attributes_path: "$..[?(@.discountInfo=='Esso Bryne')]"     force_update: true     value_template: "{{ state_attr('sensor.esso_bryne_bensin', 'stationDetails')[0].price }}"     json_attributes:      - "id"      - "location"      - "latitude"      - "longitude"      - "pictureUrl"      - "discountInfo"      - "lastUpdated"      - "stationDetails"     - name: "Circle K Klepp Bensin"     json_attributes_path: "$..[?(@.discountInfo=='Circle K Klepp')]"     force_update: true     value_template: "{{ state_attr('sensor.circle_k_klepp_bensin', 'stationDetails')[0].price }}"     json_attributes:      - "id"      - "location"      - "latitude"      - "longitude"      - "pictureUrl"      - "discountInfo"      - "lastUpdated"      - "stationDetails"   For Ă„ lage diesel sensorene er det hentet samme sensor, men brukt neste avsnitt i JSON fila ( [1] ). Noen ganger har stasjonene avgiftsfri diesel eller 98 bensin pĂ„ 2. avsnitt, sĂ„ da mĂ„ det brukes [2] eller [3] alt etter hvordan JSON ser ut pĂ„ aktuell stasjon.  Merk at sensorene henter attribut fra sensor.shell_bryne_bensin. Det er fordi i restsensoren henter vi bensinprisen, og hele stasjonen som vi henter inn i HA blir da kalt for shell bryne bensin. For Ă„ hente dieselpris bruker vi altsĂ„ attribute under bensinsensoren, hvis det ga mening.  Her er for Ă„ hente diesel pĂ„ de samme stasjonene:   template:  - sensor:  ########## DIESELPRISER ############################    - name: Shell Bryne Diesel    state: "{{ state_attr('sensor.shell_bryne_bensin', 'stationDetails')[1].price }}"    device_class: monetary    unit_of_measurement: NOK    - name: Circle K LagĂ„rdsveien Diesel    state:  "{{ state_attr('sensor.circle_k_lagardsveien_bensin', 'stationDetails')[1].price }}"    device_class: monetary    unit_of_measurement: NOK    - name: Uno-X Bryne Diesel    state: "{{ state_attr('sensor.uno_x_bryne_bensin', 'stationDetails')[1].price }}"    device_class: monetary    unit_of_measurement: NOK    - name: Esso Bryne Diesel    state:  "{{ state_attr('sensor.esso_bryne_bensin', 'stationDetails')[1].price }}"    device_class: monetary    unit_of_measurement: NOK    - name: Circle K Klepp Diesel    state:  "{{ state_attr('sensor.circle_k_klepp_bensin', 'stationDetails')[1].price }}"    device_class: monetary    unit_of_measurement: NOK   Blir altsĂ„ mye manuelt arbeid, men er forholdsvis enkelt. Knotet en del med dette fĂžr jeg fikk det til. HĂ„per det fungerer for dere ogsĂ„ đ  Slik ser kortet ut i HA:    Hvor konfigurasjonen til auto-entities kortet for diesel ser slik ut:  type: custom:auto-entities card:  type: entities  title: Diesel - sortert pĂ„ pris filter:  include:   - name: '*Diesel*'  exclude: [] sort:  method: state  numeric: true   DS appen.json Endret 24. april 2023 av MrE 2 1 Siter
stigvi Skrevet 21. april 2023 Skrevet 21. april 2023 (endret) MrE skrev (23 minutter siden): Hei,  Her er slik jeg har gjort det, uten bruk av Node-Red etc. Jeg bruker Auto-Entities kortet i HA, og sorterer pĂ„ pris lavest - hĂžyest. Ett kort for bensin, og ett for diesel. Jeg hadde en del planer for hvordan jeg skulle ha dette, blant annet med bilde som ikon, kart som viste de forskjellige stasjonene, legge inn nĂ„r den ble sist oppdatert etc.. Tiden strekker dessverre ikke til, sĂ„ det har blitt lagt pĂ„ is inntil videre. Anyways, her er det jeg har sĂ„ langt: FYI: Har en ukvalifisert oppfatning av at Uno-X pĂ„ Orstad / Ăksnevad ville sortert hĂžyt opp pĂ„ listen din. Det er kanskje interessant siden den ligger i det samme omrĂ„det som de andre du har. Endret 21. april 2023 av stigvi 1 Siter
hjemmedude Skrevet 21. april 2023 Forfatter Skrevet 21. april 2023 (endret) For Ăžyeblikket ingen data, noen som opplever det samme? "You are not authorized" đ Endret 21. april 2023 av hjemmedude Siter
MrE Skrevet 22. april 2023 Skrevet 22. april 2023 (endret) hjemmedude skrev (20 timer siden): For Ăžyeblikket ingen data, noen som opplever det samme? "You are not authorized" đ Da antar jeg du mĂ„ endre X-api-key. Du finner ny ved hjelp av Postman API explorer  2CD114509703F6E0A976C32FCB79C4F62966EEC6  Edit: X-API-KEY fungerer hos meg, sĂ„ da tenker jeg den skal fungere hos deg ogsĂ„.  Edit2:   hjemmedude skrev (20 timer siden): For Ăžyeblikket ingen data, noen som opplever det samme? "You are not authorized" đ hvor fĂ„r du den feilmeldingen? Endret 22. april 2023 av MrE 1 Siter
hjemmedude Skrevet 24. april 2023 Forfatter Skrevet 24. april 2023 (endret) Takk skal prĂžve med postman api explorer, har ikke brukt det fĂžr men har konto nĂ„. NĂ„r jeg trykker pĂ„ linken til drivstoppappen.no/api sĂ„ fĂ„r jeg det som tilbakemelding, you are not authorized. đ edit: Ok, la inn data i postman og da returneres informasjon som Ăžnsket, sĂ„ da er det kanskje bare hos meg det klusser. La koden din rett i configuration.yaml og da spiller det fint, sĂ„ er noe jeg klusser til, tydeligvis đ  Det blir opprettet flere _bensin sensorer ettervhert som tiden gĂ„r, er oppe i 7 stk pĂ„ Bryne per nĂ„. Skjer dette hos deg? Endret 24. april 2023 av hjemmedude Siter
Moskus Skrevet 24. april 2023 Skrevet 24. april 2023 Jeg fĂ„r en fĂžlelse at noen leser her pĂ„ forumet. đ Fair det. Men mer praktisk om de delte. đ  Siter
MrE Skrevet 24. april 2023 Skrevet 24. april 2023 Jeg har redigert mitt innlegg noe, og har inkludert JSON filen.  @hjemmedude Nei du skal ikke fĂ„ mange flere av samme sensor plutselig. REST sensor oppretter 1 sensor for 1 stasjon. Template sensor henter dieselpris fra samme stasjon. Har du utklipp av hvordan det ser ut hos deg?  VedrĂžrende not authorized har dette skjedd fra tid til annen, uten at jeg vet hvorfor. Jeg bruker Postman med api key, da kommer json fila med en gang đ Siter
hjemmedude Skrevet 24. april 2023 Forfatter Skrevet 24. april 2023 @MrEdet var kanskje i en testperiode at det ble generert nye sensorer for hver yaml restart, nĂ„ er det 2-3 sensorer (development tools -> states ) for hver stasjon, det er nok riktig đ Takk for god hjelp! NĂ„ kan jeg spore prisen og virkelig handle fuel pĂ„ rett tid og sted đ  Siter
VikingOy Skrevet 24. april 2023 Skrevet 24. april 2023 (endret) Det virker litt "overkill" Ä lage en sensor for hver eneste besinstasjon. Jeg har isteden gjort alt ferdig i NodeRed med bruk av JavaScript og ender opp med kun en enkel sensor som jeg sÄ sender til Home Assistant. Enkelt, rent og ryddig. FÞrst trekkes alle de Þnskede stasjonene ut og samles i en felles array (eksempelet her har kun 3 stasjoner):  var stasjoner = []; var temp = msg.payload.filter(e => e.discountInfo == 'Shell Marienlyst'); temp[0].stationDetails = temp[0].stationDetails.filter(e => e.type == 'D'); temp[0].stationDetails = temp[0].stationDetails[0]; stasjoner[0] = temp[0]; var temp = msg.payload.filter(e => e.discountInfo == 'Shell Frogner'); temp[0].stationDetails = temp[0].stationDetails.filter(e => e.type == 'D'); temp[0].stationDetails = temp[0].stationDetails[0]; stasjoner[1] = temp[0]; var temp = msg.payload.filter(e => e.discountInfo == 'Shell Vinderen'); temp[0].stationDetails = temp[0].stationDetails.filter(e => e.type == 'D'); temp[0].stationDetails = temp[0].stationDetails[0]; stasjoner[2] = temp[0]; msg.payload = stasjoner; return msg;  Deretter sorteres tabellen og den billigste trekkes ut:  var billigst = msg.payload[0]; msg.payload.forEach(FinnBilligst); function FinnBilligst(stasjon){   if(stasjon.stationDetails.price < billigst.stationDetails.price) {     billigst = stasjon;   } } msg.payload = billigst; return msg;  Resultatet sendes til HA som én sensor:  Og presenteres i Lovelace: Endret 25. april 2023 av VikingOy Siter
Anbefalte innlegg
Bli med i samtalen
Du kan publisere innhold nÄ og registrere deg senere. Hvis du har en konto, logg inn nÄ for Ä poste med kontoen din.