Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon! 🥇🥈🥉

SveinHa

Medlemmer
  • Innlegg

    1 753
  • Ble med

  • Besøkte siden sist

  • Dager vunnet

    112

Alt skrevet av SveinHa

  1. Jeg bruker mye Tapo, synes de gir mye for pengene selv om de ikke er veeeeldig avanserte...Vet ikke hvordan de integreres i HA men har brukt de med både BlueIris, Frigate og AgentDVR. Bruker gratisapp for oppsett og du får tilgang fra hele verden i appen.
  2. Det er for så vidt et poeng. Jeg fikk støtte for bl.a. solcelleanlegget og det går på størrelsen av anlegget, altså et grunnbeløp og tillegg pr kWp installert uavhengig av hvem som installerer. Jeg har gjort hele installasjonen selv og dermed spart rundt kr 50.000 men det påvirket ikke støtten, kun totalprisen. Varmepumpe med bereder, energimåler og gulvvarme fikk jeg støtte for. Hele automasjonsbiten min unngikk støtte. Prøvde meg med støtte for innkjøp av automasjonskomponenter men ble blankt avvist...
  3. Det er sant og det er jo der Staten BURDE komme inn med nye og bedre støtteordninger i stedet for å redusere støtten slik de gjør... Akkurat det koker jo ned til om Staten virkelig VIL at vi skal spare strøm eller om de bare vil ha pengne våre... Edit: Solcelleanlegget mitt ligger an til å ha tjent seg inn på 8-9 år og da regner jeg kun solkraft * strømpris time for time. Den strømmen jeg kjøper er jo alltid i de billigste timene så der er jo også en fortjeneste men det regner jeg ikke med. Akkurat det regnestykket kan settes opp på mange måter alt etter hvilket resultat en vil ha så jeg har bare tenkt på det som en skjult bonus...
  4. Inspirert av denne artikkelen: https://www.nrk.no/norge/kraftkrise_-staten-har-brukt-18-ganger-mer-pa-stromstotte-enn-stromsparing-1.17337796 Hva gjør eller ønsker dere? Både egne tiltak og statlige... Nå er der jo en lang tråd om hva jeg har gjort men veldig kort har mitt ikke så veldig store hus fra 1840 har siden 2017 gjennomgått føgende: Krypkjeller fylt med 10m3 lecakuler, isopor og støpt gulv med vannbåren varme. Vegger delvis etterisolert innefra. Alle vinduer nye. Det meste av kledning skiftet og installert ny vindsperre. 17.6kWp solceller med 54kWh lithiumbatteri, off-grid anlegg slik at jeg ikke KAN selge strøm men lagrer overskuddet i batteri. Dette er gunstig for meg med 28m3 saltvannsbasseng som bruker mye strøm i sommerhalvåret. Strømlager i skyen vil neppe kunne svare seg i lengden... Resultatet på strømregningen er 2-delt: Bare ved å bruke hodet, tenke strømsparing, kartlegge hva som bruker strøm, fire på komfortkravene (f.eks. ikke alltid ha 27 grader i badegulvet og tillate berederen å gå ned i under 50 grader) o.l. reduserte vi forbruket fra ca 33.000 kWh til 16.000 kWh Med solceller og batteri er strømforbruket kommet ned i 6.000 kWh. Denne strømmen er i all hovedsak kjøpt i tidsrommet nov-feb og skyldes selvsagt lite og lav sol der trær og annet skygger for solen ganske mye i vintermånedene. Jeg har 5-6 trær der jeg kan og vil ta ned ca halvparten men de som tar mest sol vil jeg la stå...i alle fall inntil videre... Som det står i artikkelen så har det kostet staten 18 ganger mer i strømstøtte enn i strømspareordninger men akkurat den saken har nå en del flere sider enn som så... Den "dyre" strømstøtteordningen er jo en melkeku av dimensjoner for staten selv om de prøver å få det til å se ut som om Staten er "snill" og betaler ut millioner... Men dette er nå egentlig et sidesprang i denne tråden: Tenker mer på å komme opp med gode ideer for å kunne takle strømprisene men kanskje aller mest strømforbruket.
  5. Tror jeg begynner å skjønne litt hva som skjer... Siden diste innlegg har jeg fått meg enda en laptop (brukt), HP Elitebook 850 G7 denne gang. Også med denne opplever jeg solid heng flere ganger daglig med Linux Mint 21/22... Etter en del leting på nett finner jeg at der er en del modellspesifikke heng men de gjør seg ofte gjeldende under installasjon eller er veldig konsekvente i sin oppførsel. Hos meg kan alt gå helt supert i alle fall en halv dag og hengene er litt varierende som at de løser seg selv etter et par minutt til full heng med hard reset. Finner etterhvert ut at Linux, i alle fall Linux Mint, ikke er særlig bakoverkompatibel... Linux Mint 21 ble lansert i midten av 2022 og det er jo etter begge HP maskinene ble produsert men muligens før Asus 415x... Asusen ble i alle fall kjøpt ny i begynnelsen av 2024. Okke som, jeg har installert Linux Mint 20 og har ikke opplevd heng etterpå... Inntil videre ser problemet løst ut... Og når jeg tenker tilbake så var det nok da jeg oppgraderte fra Linux Mint 20 at problemene begynte... Linux Mint er jo tungt basert på Ubuntu så hardware kompatibelitet er jo Ubuntus "ansvar". Noen som opplever lignende problem med Ubuntu?
  6. Enig i den. Kablet nett er alltid bedre men det er jo praktisk med WiFi i mange sammenhenger. Der jeg sitter med laptopen i godstolen har jeg kablet nett så jeg slipper å ha radiosender i 100 i fanget hele dagen. Unngår i alle fall litt elektrosmog...
  7. ...og så kan det jo være greit å ha i bakhånd litt top-notch medisinsk verneutstyr i tilfelle media slipper ut et nytt virus som vi må beskytte oss mot:
  8. Nå vil jeg påstå at det aller meste av den 3D printingen jeg gjør har en vesentlig nytteverdi men noe som er bare for gøy gjør jeg selvsagt også . Tenkte denne tråden kunne samle en del av det mindre seriøse vi 3D printere driver med. For å starte en plass så har jeg irritert meg litt på fløyten i plystrekjelen, lite og varierende lyd... Dette MÅ jo kunne fikses enkelt tenkte jeg og lastet ned og printet noen fløyter. Ikke alle var på langt nær gode nok men spesielt EN utmerket seg med tydelig lyd med ganskje beskjeden "vind". Laget meg et adapter til kjelen etter mål fra den utvalgte fløyten i Onshape og gjorde et forsøk. INGEN lyd... Blåste i den og den virket helt fint... Fant en spesiallaget fløyte som skulle være designet for akkurat dette bruket, justerbar til og med, men lite hell med den også... Etterhvert ble den en del forsøk men varierende hell (litt pent språk for "elendig") og endte opp med bl.a. disse her: Den store oransje er "spesialdesignet" og de 2 mindre er mine modifikasjoner som hadde en smule nedsmelting pga feil materiale... Den røde til høyre er første forsøk med ferdigfløyte fra nett og resten er nå diverse forsøk... De svarte nede til venstre er Tsjernobyl utgavene, total nedsmelting, ikke på kjelen men i 3D printeren... PC-FR er ikke helt enkelt i bruk men tåler temperatur opp i rundt 150 grader uten deformering... Har nå laget en mengde seljefløyter så dette burde jo ikke være såååå vanskelig... Er endt opp slik: Ikke veeeeeldig imponerende men i alle fall bedre enn utgangspunktet...
  9. Omsider fått litt system på Piene mine. Fant ikke noe jeg likte på nett så laget selv... https://www.printables.com/model/1220361-rpi-5-nvme-poe-cabinet-and-rack Og når jeg først var i seget så fixet jeg automatisk backup til Synology etter denne oppskriften...
  10. Hele gårsdagen gik med til å flytte Node-RED installasjonen fra ProxMox/Linux Mint til RPi 5. Jeg har hatt 3 stk identiske Gigabyte BRIX microPCer i ProxMox cluster men på senhøsten i fjor begynte den ene å rote det til ved å dø. Strøm av/på og den var i live igjen men den døde jevnlig, kunne gå uker mellom eller minutter... Virker som et varmeproblem for med kort av-tid dør den veldig raskt igjen. Åpnet opp og blåst ren uten at der var noe synlig støv og viften virker fint, hører den justerer seg opp og ned så jeg aner ikke hva som egentlig er feil... Uansett, denne ble erstattet av en annen microPC uten ProxMox grunnet ytelse på videoovervåking. For 2-3 uker siden begynte neste ProxMox maskin å rote på samme måten. Denne kjører Node-RED så den er jo kritisk mht. hjemmeautomasjon... Med bare 1.5 maskin i ProxMox cluster hadde det vært bedre med ren ProxMox uten cluster... Så i går trakk jeg pusten og flyttet Node-RED til en RPi 5 med 500GB NVMe disk. Selve flyttingen av 5700 noder, etter at Node-RED er installert, tar jo bare få sekunder men der blir en mengde opprydding etterpå fordi installasjonen havnet i annen mappe/bruker på nye maskinen (litt standardisering i heimen skader ikke) og diverse passord for SQL, sftp og annet følger ikke med (heldigvis er disse bare definert en plass selv om de er brukt et utall steder). Også en del andre ting som strømprisdata (en masse tomme registre som må fylles opp for å unngå en masse feilmeldinger), lysmode (Dag/Kveld/Natt som i utgangspunktet er blank som også gir en mengde feilmeldinger), Dashboard themes som ikke følger med samt litt konfigurering som avviker fra standarden så er hele greiene oppe og går. Tar litt tid å finne alle disse småfellene... En litt uventet effekt er at jeg har et inntrykk av at Node-RED Dashboard er mer responsivt nå selv om jeg nå kjører på en mindre CPU, antar ProxMox som mellomledd struper litt mer enn jeg ville tro. Virtualiseringsteknologier er jo spesifikt IKKE anbefalt for videoovervåking av ytelsesgrunner. Edit: Jeg startet med NVMe disken i et USB-kabinett og hadde merkbart bedre ytelse enn tidligere med så flyttet jeg disken til et Pimoroni NVMe base og da fikk jeg merkbare enda bedre ytelse. Anbefales!!! Edit2: Og midt i dette hadde jeg ny brukt laptop som jeg holdt på å få i gang med Linux Mint og div installering... Så det ble en litt hektisk dag...
  11. Vet det ble en duplisering nå men tanken er å ta bort de gamle på litt sikt. Nå har jeg begge deler, både den gamle teite varianten og den nye riktigere...
  12. Gjort en quick and dirty fix... Legg inn denne: i stedet for den opprinnelige: [{"id":"c622a1c1b5d187fe","type":"function","z":"2447f70b5f1095ba","name":"List all stations & create flow.stations","func":"var brands = flow.get(\"brands\");\nvar statsRaw = flow.get(\"stationsRaw\");\n//flow.set(\"Stations\",msg.payload);\n//node.warn( \"pl.length: \" + statsRaw.length);\nvar arr = [];\nvar arr2 = [];\nvar obj2 = {}\nvar msg2 = {}\nvar i = 0;\nvar j = 0;\nfor (i = 0;i < statsRaw.length;i++){\n let obj = {}\n //if (i == 2150)i++;\n //if (i == 2302)i++;\n //if (i == 2305)i++;\n //if (i == 3512)i++;\n obj.id = statsRaw[i].id;\n obj.name = statsRaw[i].name || \"-\"\n // Find brand from brandId\n for (j = 0;j < brands.length;j++){\n if (Number(statsRaw[i].brandId) == Number(brands[j].id)){\n obj.brand = brands[j].name || \"-\"\n obj.logo = brands[j].pictureUrl || \"-\"\n //node.warn(i + \" \" + j + \" \" + brands[j].name);\n break;\n }\n }\n obj.location = statsRaw[i].location || \"-\"\n // Add prices, some stations miss prices, skip these\n var obj3 = {}\n let objFt = []\n let ftidStr = \"\";\n if (statsRaw[i].hasOwnProperty(\"prices\")){ // skip no-price stations\n for (j = 0;j < statsRaw[i].prices.length;j++){\n var ftid = statsRaw[i].prices[j].fuelTypeId;\n if (ftid == 1) ftidStr = \"D\";\n else if (ftid == 2) ftidStr = \"B95\";\n else if (ftid == 3) ftidStr = \"B98\";\n else if (ftid == 4) ftidStr = \"FD\";\n else ftidStr = \"-\";\n // New pricestructure 02.03.25\n objFt.push({\"fuelTypeID\":statsRaw[i].prices[j].fuelTypeId,\"type\":ftidStr,\"price\":statsRaw[i].prices[j].price,\"lastUpdated\":statsRaw[i].prices[j].lastUpdated});\n obj3.new = objFt;\n\n if (ftid == 1 && statsRaw[i].prices[j].price != 0){ \n obj3.D = {}\n obj3.D.price = statsRaw[i].prices[j].price;\n obj3.D.lastUpdated = statsRaw[i].prices[j].lastUpdated;\n obj3.D.type = \"D\";\n }\n if (ftid == 2 && statsRaw[i].prices[j].price != 0){ \n obj3.B95 = {}\n obj3.B95.price = statsRaw[i].prices[j].price;\n obj3.B95.lastUpdated = statsRaw[i].prices[j].lastUpdated;\n obj3.B95.type = \"B95\";\n } \n if (ftid == 3 && statsRaw[i].prices[j].price != 0){\n obj3.B98 = {}\n obj3.B98.price = statsRaw[i].prices[j].price;\n obj3.B98.lastUpdated = statsRaw[i].prices[j].lastUpdated;\n obj3.B98.type = \"B98\";\n }\n if (ftid == 4 && statsRaw[i].prices[j].price != 0){\n obj3.FD = {}\n obj3.FD.price = statsRaw[i].prices[j].price;\n obj3.FD.lastUpdated = statsRaw[i].prices[j].lastUpdated;\n obj3.FD.type = \"FD\";\n }\n }\n }//skip to here\n// console.log(obj3);\n obj.prices = obj3;\n\n \n arr.push(obj);\n}\nmsg2.payload = arr;\nflow.set(\"stationsPrepd\",arr);\nreturn msg2;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":280,"y":560,"wires":[["ee9831abc8e3a182"]]}] Dette gir noen nye felt i flow.stationsPrepd som du igjen kan hente ut med denne: [{"id":"eeb0ef3e1e4c1567","type":"inject","z":"2447f70b5f1095ba","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"[2088,25148,2263]","payloadType":"json","x":620,"y":1220,"wires":[["0d4e5a87fd3822c7"]]},{"id":"0d4e5a87fd3822c7","type":"function","z":"2447f70b5f1095ba","name":"List valgte stasjoner","func":"let selected = msg.payload;\nlet stats = flow.get(\"stationsPrepd\");\nlet arr = []\n\nfor (let i in selected){\n for (let j in stats){\n if (stats[j].id == selected[i]){\n for (let k in stats[j].prices.new){\n// node.warn(stats[j].name);\n// node.warn(stats[j].prices.new[k].type);\n// node.warn(stats[j].prices.new[k].price);\n// let dt = new Date(stats[j].prices.new[k].lastUpdated);\n// node.warn(dt.toLocaleString(\"nb-NO\"));\n }\n arr.push(stats[j]);\n }\n \n }\n}\n\nmsg.payload = arr;\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":860,"y":1220,"wires":[["88658fb3f9f8c6ae"]]},{"id":"88658fb3f9f8c6ae","type":"debug","z":"2447f70b5f1095ba","name":"debug 14","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1050,"y":1220,"wires":[]}] ...og hvis du fjerner kommentar (//) fra de 5 linjene i "List valgte stasjoner" så kommer resultatet direkte i loggen også... Edit#2: Da skal de være oppegående... Ser Esso Mandalskrysset har en del priser som ikke dukker opp i drivstoffappen, sannsynligvis strøm...
  13. Supert. Jeg ser der henger igjen noe litt hårete programmering fra gamle dager... Skal fikse litt opp i det om litt...
  14. Hvis du har "Drivstoffpriser" bildet oppe og går (Kun i Dash1.0) så finner du alle priser der. Søk i alle felt nederst i første tabell, klikk på stasjonen i venstre tabell så legger den seg i favoritter (midtre tabell) og viser alle priser i høyre tabell. Klikk i favoritt for å fjerne fra favoritt.
  15. Jeg har laget dette spesifikt for diesel så bensin har jeg ikke tatt hensyn til men om du går inn i subDrivstoffPris og endrer "prices.D" til "prices.B95" eller "prices.B98" så burde det virke. Strengt tatt vil du vel klare deg med dette: og hente ut de aktuelle stasjonene og priser fra flow.stationsPrepd: Ganske mye av koden min er jo kun for å gi farger slik at det hele blir mer visuelt...
  16. Har nok småputlet og fixet litt nå og da. Pr i dag ser det slik ut hos meg (med både Dash1.0 og Dash 2.0 noder": [{"id":"c622a1c1b5d187fe","type":"function","z":"2447f70b5f1095ba","name":"List all stations & create flow.stations","func":"var brands = flow.get(\"brands\");\nvar statsRaw = flow.get(\"stationsRaw\");\n//flow.set(\"Stations\",msg.payload);\n//node.warn( \"pl.length: \" + statsRaw.length);\nvar arr = [];\nvar arr2 = [];\nvar obj2 = {}\nvar msg2 = {}\nvar i = 0;\nvar j = 0;\nfor (i = 0;i < statsRaw.length;i++){\n let obj = {}\n //if (i == 2150)i++;\n //if (i == 2302)i++;\n //if (i == 2305)i++;\n //if (i == 3512)i++;\n obj.id = statsRaw[i].id;\n obj.name = statsRaw[i].name || \"-\"\n // Find brand from brandId\n for (j = 0;j < brands.length;j++){\n if (Number(statsRaw[i].brandId) == Number(brands[j].id)){\n obj.brand = brands[j].name || \"-\"\n obj.logo = brands[j].pictureUrl || \"-\"\n //node.warn(i + \" \" + j + \" \" + brands[j].name);\n break;\n }\n }\n obj.location = statsRaw[i].location || \"-\"\n // Add prices, some stations miss prices, skip these\n //node.warn(\"Add prices\");\n var obj3 = {}\n //console.log(statsRaw[i].prices.length);\n if (statsRaw[i].hasOwnProperty(\"prices\")){ // skip no-price stations\n for (j = 0;j < statsRaw[i].prices.length;j++){\n //node.warn(\"Add prices: \" + i + \" \" + j);\n var ftid = statsRaw[i].prices[j].fuelTypeId;\n if (ftid == 1 && statsRaw[i].prices[j].price != 0){ \n obj3.D = {}\n obj3.D.price = statsRaw[i].prices[j].price;\n obj3.D.lastUpdated = statsRaw[i].prices[j].lastUpdated;\n obj3.D.type = \"D\";\n }\n if (ftid == 2 && statsRaw[i].prices[j].price != 0){ \n obj3.B95 = {}\n obj3.B95.price = statsRaw[i].prices[j].price;\n obj3.B95.lastUpdated = statsRaw[i].prices[j].lastUpdated;\n obj3.B95.type = \"B95\";\n } \n if (ftid == 3 && statsRaw[i].prices[j].price != 0){\n obj3.B98 = {}\n obj3.B98.price = statsRaw[i].prices[j].price;\n obj3.B98.lastUpdated = statsRaw[i].prices[j].lastUpdated;\n obj3.B98.type = \"B98\";\n }\n if (ftid == 4 && statsRaw[i].prices[j].price != 0){\n obj3.FD = {}\n obj3.FD.price = statsRaw[i].prices[j].price;\n obj3.FD.lastUpdated = statsRaw[i].prices[j].lastUpdated;\n obj3.FD.type = \"FD\";\n }\n }\n }//skip to here\n// console.log(obj3);\n obj.prices = obj3;\n\n \n arr.push(obj);\n}\nmsg2.payload = arr;\nflow.set(\"stationsPrepd\",arr);\nreturn msg2;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":260,"y":550,"wires":[["ee9831abc8e3a182"]]},{"id":"6d9e547c291b0fbc","type":"delay","z":"2447f70b5f1095ba","name":"+1 gang","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":460,"y":150,"wires":[["920c8e464a11c598"]]},{"id":"e6a31dc9dfb2064d","type":"change","z":"2447f70b5f1095ba","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"stationsPrepd","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":470,"y":100,"wires":[["920c8e464a11c598","92ef0335f61a9718","6d9e547c291b0fbc"]]},{"id":"ee9831abc8e3a182","type":"junction","z":"2447f70b5f1095ba","x":530,"y":880,"wires":[["6ffebf4f1340a92e","e6a31dc9dfb2064d","f193882be2dc7762"]]},{"id":"1187eef693a5d073","type":"group","z":"2447f70b5f1095ba","name":"Hent drivstoffpriser fra Drivstoffappen","style":{"label":true,"color":"#000000"},"nodes":["9103052baf82e5d0","08c3e48feae420a1","5301761a12ee53d3"],"x":14,"y":39,"w":239,"h":152},{"id":"9103052baf82e5d0","type":"inject","z":"2447f70b5f1095ba","g":"1187eef693a5d073","name":"Hvert 15 min","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"*/15 6-23 * * *","once":false,"onceDelay":"5","topic":"","payload":"","payloadType":"date","x":140,"y":80,"wires":[["ad3a3a41bdece374"]]},{"id":"08c3e48feae420a1","type":"inject","z":"2447f70b5f1095ba","g":"1187eef693a5d073","name":"Hvert 60 min","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"0 0-5 * * *","once":false,"onceDelay":"5","topic":"","payload":"","payloadType":"date","x":140,"y":110,"wires":[["ad3a3a41bdece374"]]},{"id":"5301761a12ee53d3","type":"ui_button","z":"2447f70b5f1095ba","g":"1187eef693a5d073","name":"","group":"c5147f5beba7be52","order":23,"width":"3","height":"2","passthru":false,"label":"Oppdater","tooltip":"","color":"","bgcolor":"","className":"","icon":"","payload":"","payloadType":"str","topic":"topic","topicType":"msg","x":120,"y":150,"wires":[["fb25d94b.139e78"]]},{"id":"c5147f5beba7be52","type":"ui_group","name":"Wide","tab":"8b4128994ad0c3a1","order":2,"disp":false,"width":"40","collapse":false,"className":""},{"id":"8b4128994ad0c3a1","type":"ui_tab","name":"Dieselpriser","icon":"drive_eta","order":24,"disabled":false,"hidden":false},{"id":"77e67d4e89c2c546","type":"group","z":"2447f70b5f1095ba","name":"Vis utvalgte dieselpriser m/trend","style":{"label":true,"color":"#000000"},"nodes":["dc20c0baebcded39","52943a1fc077d28f","7014c2032a87fc3b","671050bdedc0c3cb","8e502b90702d3857","b1eaf76d80b124b2","13527989f83e29d2","a789bc33845b6aae","28fe85a134fe0971","dfb010ed7eafaf57","f10d3ac86fabfb52","920c8e464a11c598","80fadd7556b173c2","a25c248dc4ebd8e1","4845524c229e5de4","4bc7a1bfe0edbd3d","a0ed1589c7578ebc","313d717f04abb611","df6111373c9fcb74","9115f8c79d2fb5bf","bb875534cb2f1287","ef238c7de03c89ba","342412d6ccffa890","deb634361ea88282","7d2c0b671fe55eb5","73f01377bb3987bb","2ca32bed009a91c7","c4e4ad48e1be3967","fedddf6d961e47e1","f004caf9b1859658","f280cce61136ea5f","35afefb923880a86","13a80ea70008ef69","de080617e02b76c0","efb09c551659ae8e","c9be417364a0636a","c1e1c529d2ebbbe3","ba85ec803b447086","575ebc0b7826b668","a5b30e2c9a5b185b","5cdf4a4e44ba3e96","7907e0a5a1ff80b6","ee11d26aa7381961","c6597ae705c493fd","197fde062f906fe2","d3117ab9bbdc344d","a76caa7a16bac95c","99fbdbd6f1247a74","f41e2331b0b830d3","98ad46a8c1cec362","b4db27ab8e1249f9","211a49ea39c47dbf","345e2bc8bcaeeffd","f3a5b1da15641fda","f82266bbecc5f929","7ec8a975f4e62ea5","b4c42883c0d1b421","89f905a2a16a5653","bd92fd80ba8708f5","919354dd3a9d85e1","af920dde227a02ba","42965b35532dc0a6","198ea5a17cf29258","591771770c56781a","72b2d1bb06c9fd47","835b0df2bd3edcbb","69d3c375167219d4","e329d720082ab3ca","494289de7de6d7f1","26ccfdd89731f3a7","1e1b7ff7040d7b80","9b2dcbd582073b91","836292a9fd69e76b","bcc37ebceee47007","a05d8f5407d2cdb1","900c5206972e6c86","0d6ee42acdd37ff2","dfd2ccaa5bc1b57f","f69279700d78497e","23f00bc1a8a74fa9","335994ff4485b3ec","42b492a395c7e579","3c9ceafdd8c29bf3","a01f5e223eb1c084","ea45b82d3dbb59a7","2b1034676d5cf0ad","edda9c63ecdd3aa5","9b8a839f4476974a","211cc02ca79c120b","b17af5ca3a29fb12","f3a4d2156cdcdab6","dce9b94037817b13","d1d4e9dece7df913","c34edf432a785f77","88e00589654790f5","a83908819ec381b2","93aeb62e57c14023","ee43915933528bfa","89afa177a44ffbc5","85512989de4690f3","6024725ae75382fb","419d1e6e4e82482e","1ea7fb4b20337450","7a0bc26925236777","86b7aca3b73895f5","13a4afa74f1e8be6","a5989d0a9b6bbaeb"],"x":644,"y":9,"w":1682,"h":812},{"id":"2835c4be2e0c346c","type":"subflow","name":"subDrivstoffpris","info":"","category":"","in":[{"x":60,"y":80,"wires":[{"id":"629ced2da13dc595"}]}],"out":[{"x":440,"y":50,"wires":[{"id":"629ced2da13dc595","port":0}]},{"x":440,"y":110,"wires":[{"id":"629ced2da13dc595","port":1}]}],"env":[{"name":"station","type":"str","value":""},{"name":"statInt","type":"str","value":""},{"name":"statInt_Prev","type":"str","value":""}],"meta":{"version":"1.0","author":"SveinHa"},"color":"#DDAA99","outputLabels":["Trend","Skilt"]},{"id":"629ced2da13dc595","type":"function","z":"2835c4be2e0c346c","name":"Hjernen ;-)","func":"var ts = new Date();\nlet sid = msg.id;\nvar station = msg.station;\nvar statInt = msg.statInt;\n//var statInt_Prev = statInt_Prev;\n\nvar prev = 0;\nvar diff = 0;\nvar msg2 = {}\n//console.log(msg.payload);\n//msg.payload = msg.payload.filter((/** @type {{ id: string; }} */ e) => e.id == sid);\nmsg.payload = msg.payload.filter((e) => e.id == sid);\n//console.log(msg.payload[0].brandId);\n//node.warn(msg);\n\n//msg.payload = msg.payload.filter((/** @type {{ discountInfo: string; }} */ e) => e.discountInfo == station); \n//console.log(msg.payload[0].prices.D.type);\n//msg.payload[0].type = msg.payload[0].prices.D.type;//.filter(e => e.type == 'D');\nvar price = msg.payload[0].prices.D.price;\n//console.log(price);\nvar now = Number(new Date());\nvar age = (now - msg.payload[0].prices.D.lastUpdated) / 3600 / 1000; //age in hours\nvar diffSymbol = \"\";\nflow.set(\"$parent.\" + statInt, price);\nprev = flow.get(\"$parent.\" + statInt + \"_Prev\") || 0\n\n//node.warn(\"ID: \" + msg.payload[0].id + \", name: \" + msg.payload[0].name + \", brand: \" + msg.payload[0].brand );\n\nvar snitt = flow.get(\"$parent.AvgPrice\");\nvar min = flow.get(\"$parent.MinPrice\");\nvar max = flow.get(\"$parent.MaxPrice\");\nvar lolim = snitt - ((max - min)/6);\nvar hilim = snitt + ((max - min)/6);\nif (price < lolim) msg2.color = \"LIME\";\nelse if (price > hilim) msg2.color = \"RED\";\nelse msg2.color = \"YELLOW\";\n//node.warn(min + \"-\" + lolim + \"-\" + snitt + \"-\" + hilim + \"-\" + max);\n\nif (price != prev) {\n var ts = new Date();\n flow.set(\"$parent.\" + statInt + \"_Diff\", Number((price - prev).toFixed(2)));\n flow.set(\"$parent.\" + statInt + \"_Prev\", price);\n flow.set(\"$parent.\" + statInt + \"_PrevT\", Number(ts));\n}\n\ndiff = flow.get(\"$parent.\" + statInt + \"_Diff\") || \"-\"\nvar tss = flow.get(\"$parent.\" + statInt + \"_PrevT\") || 0\nvar ageD = Number((Number(now) - Number(tss))) / 3600 / 1000; //age in hours\nif (ageD > 999.9) ageD = 999.9;\n\nif (diff >= 0) diffSymbol = \"<font color=RED> \" + diff;//.toFixed(2);\nelse diffSymbol = \"<font color=LIME> \" + diff;//.toFixed(2);\nflow.set(\"$parent.\" + statInt + \"_DiffS\", diffSymbol);\n\ndiffSymbol = flow.get(\"$parent.\" + statInt + \"_DiffS\") || \"-\"\nmsg2.payload = \"<font size=6>\" + price.toFixed(2) + \"<font size=2>\" + diffSymbol + \"(\" + ageD.toFixed(1) + \"h)\";\nmsg2.topic = station.slice(0,15); //Forkort for lange navn\nmsg2.age = age.toFixed(1);\nif (age < 1) { msg2.stationcolor = \"LIME\"; }\nelse if (age < 6) { msg2.stationcolor = \"YELLOW\"; }\nelse if (age <= 12) { msg2.stationcolor = \"ORANGE\"; }\nelse if (age > 12) { msg2.stationcolor = \"RED\"; }\n\n//node.warn(msg2.topic + \"Price: \" + price + \" Prev: \" + prev + \"Diff: \" + diff);\nmsg2.pri = flow.get(\"$parent.\" + statInt + \"_Pri\") \n//node.send([null,msg2]);\n//node.warn(\"$parent.\" + statInt + \"-\" + msg2.pri);\nmsg2.src = msg.payload[0].logo;\n\n\nmsg2.label = \"<font color=\" + msg2.stationcolor + \">\" + msg2.topic + \" (\" + msg2.age + \"h)\";\nmsg2.payload= \"<font color=\" + msg2.color + \">Kr.\" + msg2.payload;\n//msg2.ui_update = true;\n\nmsg.payload = Number(price.toFixed(2));\nmsg.topic = station;\n\nvar te = new Date();\n//console.log(station + \": \" + (Number(te) - Number(ts)))\nreturn [msg, msg2];","outputs":2,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":220,"y":80,"wires":[[],[]]},{"id":"dc20c0baebcded39","type":"persist in","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"Dieselpriser","storageNode":"8a6654beead70801","x":1830,"y":680,"wires":[]},{"id":"52943a1fc077d28f","type":"persist out","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"Dieselpriser","storageNode":"8a6654beead70801","x":1460,"y":670,"wires":[["835b0df2bd3edcbb"]]},{"id":"7014c2032a87fc3b","type":"ui_text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","order":5,"width":"6","height":"2","name":"Price 1","label":"{{msg.label}}","format":"{{msg.payload}}","layout":"col-center","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1970,"y":150,"wires":[]},{"id":"671050bdedc0c3cb","type":"ui_text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","order":15,"width":"6","height":"2","name":"Price 6","label":"{{msg.label}}","format":"{{msg.payload}}","layout":"col-center","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1970,"y":450,"wires":[]},{"id":"8e502b90702d3857","type":"ui_text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","order":17,"width":"6","height":"2","name":"Price 7","label":"{{msg.label}}","format":"{{msg.payload}}","layout":"col-center","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1970,"y":510,"wires":[]},{"id":"b1eaf76d80b124b2","type":"ui_text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","order":13,"width":"6","height":"2","name":"Price 5","label":"{{msg.label}}","format":"{{msg.payload}}","layout":"col-center","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1970,"y":390,"wires":[]},{"id":"13527989f83e29d2","type":"ui_text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","order":3,"width":"6","height":"2","name":"Price 0","label":"{{msg.label}}","format":"{{msg.payload}}","layout":"col-center","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1970,"y":90,"wires":[]},{"id":"a789bc33845b6aae","type":"ui_text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","order":9,"width":"6","height":"2","name":"Price 3","label":"{{msg.label}}","format":"{{msg.payload}}","layout":"col-center","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1970,"y":270,"wires":[]},{"id":"28fe85a134fe0971","type":"debug","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"debug 89","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":790,"y":600,"wires":[]},{"id":"dfb010ed7eafaf57","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"Last update","func":"msg.label = \"Siste oppdatering\";\n//var d = new Date(msg.headers.date);\nvar d = new Date();\n//node.warn(d);\nmsg.payload = d.toLocaleString('nb-NO' );//.slice(0,16);\n//node.warn(msg.payload);\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":980,"y":530,"wires":[["f10d3ac86fabfb52","a25c248dc4ebd8e1"]]},{"id":"f10d3ac86fabfb52","type":"ui_text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","order":24,"width":"6","height":"2","name":"Siste oppdat","label":"{{msg.label}}","format":"{{msg.payload}}","layout":"row-left","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1300,"y":530,"wires":[]},{"id":"920c8e464a11c598","type":"junction","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","x":670,"y":130,"wires":[["28fe85a134fe0971","313d717f04abb611","efb09c551659ae8e","c1e1c529d2ebbbe3","7d2c0b671fe55eb5","9115f8c79d2fb5bf","bb875534cb2f1287","ef238c7de03c89ba","342412d6ccffa890","deb634361ea88282","73f01377bb3987bb","7907e0a5a1ff80b6","72b2d1bb06c9fd47","dfb010ed7eafaf57"]]},{"id":"80fadd7556b173c2","type":"ui_text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","order":25,"width":"6","height":"1","name":"Legend","label":"<font color=\"LIME\"><1h <font color=\"YELLOW\"><6h <font color=\"ORANGE\"><=12h <font color=\"RED\">>12h<font color=#43464B>","format":"","layout":"row-left","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1290,"y":600,"wires":[]},{"id":"a25c248dc4ebd8e1","type":"change","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"flow.get.AvgPrice","rules":[{"t":"set","p":"payload","pt":"msg","to":"AvgPrice","tot":"flow"}],"action":"","property":"","from":"","to":"","reg":false,"x":980,"y":600,"wires":[["80fadd7556b173c2","4845524c229e5de4","575ebc0b7826b668"]]},{"id":"4845524c229e5de4","type":"change","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"","rules":[{"t":"set","p":"topic","pt":"msg","to":"Snitt","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":1300,"y":570,"wires":[[]]},{"id":"4bc7a1bfe0edbd3d","type":"ui_text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","order":7,"width":"6","height":"2","name":"Price 2","label":"{{msg.label}}","format":"{{msg.payload}}","layout":"col-center","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1970,"y":210,"wires":[]},{"id":"a0ed1589c7578ebc","type":"ui_text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","order":11,"width":"6","height":"2","name":"Price 4","label":"{{msg.label}}","format":"{{msg.payload}}","layout":"col-center","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1970,"y":330,"wires":[]},{"id":"313d717f04abb611","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"Esso Avaldsnes","func":"//console.log(\"Dieselpriser start\");\nmsg.id = 203; // StasjonsID fra Drivstoffappen. Finnes i generelt \"Drivstoff\" tab.\nmsg.station = 'Esso Avaldsnes'; // Visningsnavn. Kan tilpasses da stasjonsnavn i drivstoffappen ikke alltid er like beskrivende\nmsg.statInt = 'EssoAval'; // Unikt kortnavn, 8 tegn, for bruk i flow-variabler\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":990,"y":130,"wires":[["df6111373c9fcb74"]]},{"id":"df6111373c9fcb74","type":"subflow:2835c4be2e0c346c","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"","x":1310,"y":130,"wires":[["69d3c375167219d4"],["e329d720082ab3ca"]]},{"id":"9115f8c79d2fb5bf","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"Uno-X Avaldsnes","func":"msg.id = 137; // StasjonsID fra Drivstoffappen. Finnes i generelt \"Drivstoff\" tab.\nmsg.station = 'Uno-X Avaldsnes'; // Visningsnavn. Kan tilpasses da stasjonsnavn i drivstoffappen ikke alltid er like beskrivende\nmsg.statInt = 'UnoXAval'; // Unikt kortnavn, 8 tegn, for bruk i flow-variabler\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1000,"y":210,"wires":[["c4e4ad48e1be3967"]]},{"id":"bb875534cb2f1287","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"Uno-X Norheim","func":"msg.id = 269; // StasjonsID fra Drivstoffappen. Finnes i generelt \"Drivstoff\" tab.\nmsg.station = 'Uno-X Norheim'; // Visningsnavn. Kan tilpasses da stasjonsnavn i drivstoffappen ikke alltid er like beskrivende\nmsg.statInt = 'UnoXNorh'; // Unikt kortnavn, 8 tegn, for bruk i flow-variabler\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":990,"y":250,"wires":[["fedddf6d961e47e1"]]},{"id":"ef238c7de03c89ba","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"Tanken Helganes - Flyplassv.","func":"msg.id = 1546; // StasjonsID fra Drivstoffappen. Finnes i generelt \"Drivstoff\" tab.\nmsg.station = 'Tanken Helganes - Flyplassvegen'; // Visningsnavn. Kan tilpasses da stasjonsnavn i drivstoffappen ikke alltid er like beskrivende\nmsg.statInt = 'TankFlyp'; // Unikt kortnavn, 8 tegn, for bruk i flow-variabler\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1030,"y":290,"wires":[["f004caf9b1859658"]]},{"id":"342412d6ccffa890","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"Cirkle K Kvala","func":"msg.id = 187; // StasjonsID fra Drivstoffappen. Finnes i generelt \"Drivstoff\" tab.\nmsg.station = 'Circle K Kvala'; // Visningsnavn. Kan tilpasses da stasjonsnavn i drivstoffappen ikke alltid er like beskrivende\nmsg.statInt = 'CirKKval'; // Unikt kortnavn, 8 tegn, for bruk i flow-variabler\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":990,"y":330,"wires":[["f280cce61136ea5f"]]},{"id":"deb634361ea88282","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"Revheim Storbilvask","func":"msg.id = 22828; // StasjonsID fra Drivstoffappen. Finnes i generelt \"Drivstoff\" tab.\nmsg.station = 'Revheim Storbilvask'; // Visningsnavn. Kan tilpasses da stasjonsnavn i drivstoffappen ikke alltid er like beskrivende\nmsg.statInt = 'RevhStor'; // Unikt kortnavn, 8 tegn, for bruk i flow-variabler\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1010,"y":370,"wires":[["35afefb923880a86"]]},{"id":"7d2c0b671fe55eb5","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"Esso Raglamyr","func":"msg.id = 216; // StasjonsID fra Drivstoffappen. Finnes i generelt \"Drivstoff\" tab.\nmsg.station = 'Esso Raglamyr'; // Visningsnavn. Kan tilpasses da stasjonsnavn i drivstoffappen ikke alltid er like beskrivende\nmsg.statInt = 'EssoRagl'; // Unikt kortnavn, 8 tegn, for bruk i flow-variabler\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":990,"y":170,"wires":[["2ca32bed009a91c7"]]},{"id":"73f01377bb3987bb","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"Shell Norheim","func":"msg.id = 1342; // StasjonsID fra Drivstoffappen. Finnes i generelt \"Drivstoff\" tab.\nmsg.station = 'Shell Norheim'; // Visningsnavn. Kan tilpasses da stasjonsnavn i drivstoffappen ikke alltid er like beskrivende\nmsg.statInt = 'ShelNorh'; // Unikt kortnavn, 8 tegn, for bruk i flow-variabler\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":990,"y":410,"wires":[["13a80ea70008ef69"]]},{"id":"2ca32bed009a91c7","type":"subflow:2835c4be2e0c346c","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"","x":1310,"y":170,"wires":[["69d3c375167219d4"],["e329d720082ab3ca"]]},{"id":"c4e4ad48e1be3967","type":"subflow:2835c4be2e0c346c","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"","x":1310,"y":210,"wires":[["69d3c375167219d4"],["e329d720082ab3ca"]]},{"id":"fedddf6d961e47e1","type":"subflow:2835c4be2e0c346c","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"","x":1310,"y":250,"wires":[["69d3c375167219d4"],["e329d720082ab3ca"]]},{"id":"f004caf9b1859658","type":"subflow:2835c4be2e0c346c","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"","x":1310,"y":290,"wires":[["69d3c375167219d4"],["e329d720082ab3ca"]]},{"id":"f280cce61136ea5f","type":"subflow:2835c4be2e0c346c","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"","x":1310,"y":330,"wires":[["69d3c375167219d4"],["e329d720082ab3ca"]]},{"id":"35afefb923880a86","type":"subflow:2835c4be2e0c346c","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"","x":1310,"y":370,"wires":[["69d3c375167219d4"],["e329d720082ab3ca"]]},{"id":"13a80ea70008ef69","type":"subflow:2835c4be2e0c346c","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"","x":1310,"y":410,"wires":[["69d3c375167219d4"],["e329d720082ab3ca"]]},{"id":"de080617e02b76c0","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"Beregn snittpris","func":"var sum = 0;\nvar temp = 0;\nvar antall = 0;\nvar minPrice = 999;\nvar maxPrice = 0;\n\nflow.keys().forEach(function(element) {\n// if(element.substring(element.length -5,element.length)!=\"_Prev\"){\n if(element.slice(-5) == \"_Prev\"){\n temp = flow.get(element.slice(0, element.length -5));\n sum += temp;\n antall += 1;\n if (temp > maxPrice) maxPrice = temp;\n if (temp < minPrice) minPrice = temp;\n //node.warn(element.slice(0,element.length -5) + \" Sum: \" + sum + \" Antall: \" + antall + \" temp: \" + temp);\n }\n})\nmsg.payload = (sum / antall).toFixed(2);\nflow.set(\"AvgPrice\", Number(msg.payload));\nflow.set(\"MaxPrice\", Number(maxPrice));\nflow.set(\"MinPrice\", Number(minPrice));\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":980,"y":670,"wires":[["ba85ec803b447086"]]},{"id":"efb09c551659ae8e","type":"delay","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":790,"y":670,"wires":[["de080617e02b76c0"]]},{"id":"c9be417364a0636a","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"Sorter på pris, store in flow","func":"var statList = []\nvar i = 0;\nvar temp = \"\";\n// Hent alle stasjoner of pris\nflow.keys().forEach(function(element) {\n if(element.slice(-5) == \"_Prev\"){\n temp = flow.get(element.slice(0, element.length -5));\n var name = element.slice(0, element.length - 5);\n var value = flow.get(element.slice(0, element.length - 5));\n statList.push({ name, value });\n }\n})\n// Sort lav->høy pris\nstatList.sort( (A,B) => A.value - B.value ) \n//node.warn((statList));\nstatList.forEach(function(element) {\n flow.set(element.name + \"_Pri\", i);\n i++;\n// node.warn(element);\n})","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1020,"y":720,"wires":[[]]},{"id":"c1e1c529d2ebbbe3","type":"delay","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"","pauseType":"delay","timeout":"100","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":800,"y":720,"wires":[["c9be417364a0636a"]]},{"id":"ba85ec803b447086","type":"debug","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"Snittpris","active":true,"tosidebar":false,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":1290,"y":670,"wires":[]},{"id":"575ebc0b7826b668","type":"ui_text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","order":26,"width":"6","height":"1","name":"Legend price","label":"","format":"<font color=\"LIME\" size=5>1/3 < <font color=\"YELLOW\">{{msg.payload}}<font color=\"RED\">< 1/3","layout":"row-left","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1300,"y":630,"wires":[]},{"id":"a5b30e2c9a5b185b","type":"ui_text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","order":19,"width":"6","height":"2","name":"Price 8","label":"{{msg.label}}","format":"{{msg.payload}}","layout":"col-center","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1970,"y":570,"wires":[]},{"id":"5cdf4a4e44ba3e96","type":"ui_text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","order":21,"width":"6","height":"2","name":"Price 9","label":"{{msg.label}}","format":"{{msg.payload}}","layout":"col-center","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1970,"y":630,"wires":[]},{"id":"7907e0a5a1ff80b6","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"CircleK Hafrsfjord","func":"msg.id = 3691; // StasjonsID fra Drivstoffappen. Finnes i generelt \"Drivstoff\" tab.\nmsg.station = 'CircleK Hafrsfjord'; // Visningsnavn. Kan tilpasses da stasjonsnavn i drivstoffappen ikke alltid er like beskrivende\nmsg.statInt = 'CirKHafr'; // Unikt kortnavn, 8 tegn, for bruk i flow-variabler\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1000,"y":450,"wires":[["ee11d26aa7381961"]]},{"id":"ee11d26aa7381961","type":"subflow:2835c4be2e0c346c","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"","x":1310,"y":450,"wires":[["69d3c375167219d4"],["e329d720082ab3ca"]]},{"id":"c6597ae705c493fd","type":"subflow:2835c4be2e0c346c","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"","x":1310,"y":490,"wires":[["69d3c375167219d4"],["e329d720082ab3ca"]]},{"id":"197fde062f906fe2","type":"ui_media","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","name":"Brand 0","width":"2","height":"2","order":2,"category":"","file":"","layout":"adjust","showcontrols":false,"loop":false,"onstart":false,"scope":"local","tooltip":"","x":1970,"y":60,"wires":[[]]},{"id":"d3117ab9bbdc344d","type":"ui_media","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","name":"Brand 1","width":"2","height":"2","order":4,"category":"","file":"","layout":"adjust","showcontrols":false,"loop":false,"onstart":false,"scope":"local","tooltip":"","x":1970,"y":120,"wires":[[]]},{"id":"a76caa7a16bac95c","type":"ui_media","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","name":"Brand 2","width":"2","height":"2","order":6,"category":"","file":"","layout":"adjust","showcontrols":false,"loop":false,"onstart":false,"scope":"local","tooltip":"","x":1970,"y":180,"wires":[[]]},{"id":"99fbdbd6f1247a74","type":"ui_media","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","name":"Brand 3","width":"2","height":"2","order":8,"category":"","file":"","layout":"adjust","showcontrols":false,"loop":false,"onstart":false,"scope":"local","tooltip":"","x":1970,"y":240,"wires":[[]]},{"id":"f41e2331b0b830d3","type":"ui_media","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","name":"Brand 4","width":"2","height":"2","order":10,"category":"","file":"","layout":"adjust","showcontrols":false,"loop":false,"onstart":false,"scope":"local","tooltip":"","x":1970,"y":300,"wires":[[]]},{"id":"98ad46a8c1cec362","type":"ui_media","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","name":"Brand 5","width":"2","height":"2","order":12,"category":"","file":"","layout":"adjust","showcontrols":false,"loop":false,"onstart":false,"scope":"local","tooltip":"","x":1970,"y":360,"wires":[[]]},{"id":"b4db27ab8e1249f9","type":"ui_media","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","name":"Brand 6","width":"2","height":"2","order":14,"category":"","file":"","layout":"adjust","showcontrols":false,"loop":false,"onstart":false,"scope":"local","tooltip":"","x":1970,"y":420,"wires":[[]]},{"id":"211a49ea39c47dbf","type":"ui_media","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","name":"Brand 7","width":"2","height":"2","order":16,"category":"","file":"","layout":"adjust","showcontrols":false,"loop":false,"onstart":false,"scope":"local","tooltip":"","x":1970,"y":480,"wires":[[]]},{"id":"345e2bc8bcaeeffd","type":"ui_media","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","name":"Brand 8","width":"2","height":"2","order":18,"category":"","file":"","layout":"adjust","showcontrols":false,"loop":false,"onstart":false,"scope":"local","tooltip":"","x":1970,"y":540,"wires":[[]]},{"id":"f3a5b1da15641fda","type":"ui_media","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"c5147f5beba7be52","name":"Brand 9","width":"2","height":"2","order":20,"category":"","file":"","layout":"adjust","showcontrols":false,"loop":false,"onstart":false,"scope":"local","tooltip":"","x":1970,"y":600,"wires":[[]]},{"id":"f82266bbecc5f929","type":"junction","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","x":1870,"y":80,"wires":[["13527989f83e29d2","197fde062f906fe2","900c5206972e6c86","edda9c63ecdd3aa5"]]},{"id":"7ec8a975f4e62ea5","type":"junction","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","x":1870,"y":140,"wires":[["7014c2032a87fc3b","d3117ab9bbdc344d","0d6ee42acdd37ff2","b17af5ca3a29fb12"]]},{"id":"b4c42883c0d1b421","type":"junction","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","x":1870,"y":200,"wires":[["4bc7a1bfe0edbd3d","a76caa7a16bac95c","dfd2ccaa5bc1b57f","dce9b94037817b13"]]},{"id":"89f905a2a16a5653","type":"junction","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","x":1870,"y":260,"wires":[["a789bc33845b6aae","99fbdbd6f1247a74","f69279700d78497e","c34edf432a785f77"]]},{"id":"bd92fd80ba8708f5","type":"junction","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","x":1870,"y":310,"wires":[["a0ed1589c7578ebc","f41e2331b0b830d3","23f00bc1a8a74fa9","a83908819ec381b2"]]},{"id":"919354dd3a9d85e1","type":"junction","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","x":1870,"y":370,"wires":[["b1eaf76d80b124b2","98ad46a8c1cec362","335994ff4485b3ec","ee43915933528bfa"]]},{"id":"af920dde227a02ba","type":"junction","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","x":1870,"y":430,"wires":[["b4db27ab8e1249f9","671050bdedc0c3cb","42b492a395c7e579","85512989de4690f3"]]},{"id":"42965b35532dc0a6","type":"junction","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","x":1870,"y":500,"wires":[["8e502b90702d3857","211a49ea39c47dbf","3c9ceafdd8c29bf3","419d1e6e4e82482e"]]},{"id":"198ea5a17cf29258","type":"junction","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","x":1870,"y":560,"wires":[["a5b30e2c9a5b185b","345e2bc8bcaeeffd","a01f5e223eb1c084","7a0bc26925236777"]]},{"id":"591771770c56781a","type":"junction","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","x":1870,"y":620,"wires":[["5cdf4a4e44ba3e96","f3a5b1da15641fda","ea45b82d3dbb59a7","13a4afa74f1e8be6"]]},{"id":"72b2d1bb06c9fd47","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"Uno-X Tananger","func":"msg.id = 3589; // StasjonsID fra Drivstoffappen. Finnes i generelt \"Drivstoff\" tab.\nmsg.station = 'Uno-X Tananger'; // Visningsnavn. Kan tilpasses da stasjonsnavn i drivstoffappen ikke alltid er like beskrivende\nmsg.statInt = 'UnoXTana'; // Unikt kortnavn, 8 tegn, for bruk i flow-variabler\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":990,"y":490,"wires":[["c6597ae705c493fd"]]},{"id":"835b0df2bd3edcbb","type":"ui_chart","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"","group":"c5147f5beba7be52","order":1,"width":"32","height":"20","label":"Dieselpris (6u).","chartType":"line","legend":"true","xformat":"DD dd hh:mm","interpolate":"step","nodata":"No data...","dot":false,"ymin":"","ymax":"","removeOlder":"6","removeOlderPoints":"","removeOlderUnit":"604800","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#f9fafa","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#0501f9","#9467bd","#f5ed00"],"outputs":1,"useDifferentColor":false,"className":"","x":1660,"y":630,"wires":[["494289de7de6d7f1","dc20c0baebcded39"]]},{"id":"69d3c375167219d4","type":"junction","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","x":1450,"y":640,"wires":[["835b0df2bd3edcbb","a5989d0a9b6bbaeb"]]},{"id":"e329d720082ab3ca","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"pri-pens","func":"switch (msg.pri){\n case 0:\n return [msg,null,null,null,null,null,null,null,null,null]\n case 1:\n return [null,msg,null,null,null,null,null,null,null,null]\n case 2:\n return [null,null,msg,null,null,null,null,null,null,null]\n case 3:\n return [null,null,null,msg,null,null,null,null,null,null]\n case 4:\n return [null,null,null,null,msg,null,null,null,null,null]\n case 5:\n return [null,null,null,null,null,msg,null,null,null,null]\n case 6:\n return [null,null,null,null,null,null,msg,null,null,null]\n case 7:\n return [null,null,null,null,null,null,null,msg,null,null]\n case 8:\n return [null,null,null,null,null,null,null,null,msg,null]\n case 9:\n return [null,null,null,null,null,null,null,null,null,msg]\n}\n","outputs":10,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1710,"y":320,"wires":[["f82266bbecc5f929"],["7ec8a975f4e62ea5"],["b4c42883c0d1b421"],["89f905a2a16a5653"],["bd92fd80ba8708f5"],["919354dd3a9d85e1"],["af920dde227a02ba"],["42965b35532dc0a6"],["198ea5a17cf29258"],["591771770c56781a"]]},{"id":"494289de7de6d7f1","type":"change","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"to flow.test","rules":[{"t":"set","p":"test","pt":"flow","to":"payload","tot":"msg"},{"t":"delete","p":"payload[0].data[10]","pt":"msg"},{"t":"delete","p":"payload[0].data[11]","pt":"msg"},{"t":"delete","p":"payload[0].series[10]","pt":"msg"},{"t":"delete","p":"payload[0].series[11]","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":1980,"y":660,"wires":[[]]},{"id":"26ccfdd89731f3a7","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"Change data for chart","func":"/*for (var i in msg.payload[0].series){\n if (msg.payload[0].series[i] == \"YX 7-Eleven Norheim\") msg.payload[0].series[i] = \"Uno-X Norheim\";\n //node.warn(msg.payload[0].series[i]);\n}*/\nfor (var i in msg.payload[0].data[6]){\n// console.log(msg.payload[0].data[6][i].y);\n if (msg.payload[0].data[6][i].y == 29.99){\n node.warn(\"Old data: \" + msg.payload[0].data[6][i].y);\n msg.payload[0].data[6][i].y = 18.99;\n }\n}\n\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1680,"y":740,"wires":[["9b2dcbd582073b91","835b0df2bd3edcbb"]]},{"id":"1e1b7ff7040d7b80","type":"inject","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"flow.test","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"test","payloadType":"flow","x":1480,"y":740,"wires":[["26ccfdd89731f3a7"]]},{"id":"9b2dcbd582073b91","type":"debug","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"debug 160","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":2000,"y":740,"wires":[]},{"id":"836292a9fd69e76b","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"Change stationname for chart","func":"for (var i in msg.payload[0].series){\n if (msg.payload[0].series[i] == \"YX 7-Eleven Norheim\") msg.payload[0].series[i] = \"Uno-X Norheim\";\n //node.warn(msg.payload[0].series[i]);\n}\n\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1610,"y":520,"wires":[["835b0df2bd3edcbb"]]},{"id":"bcc37ebceee47007","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"Console log ferdig","func":"console.log(\"Dieselpriser innhenting ferdig\");\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":2020,"y":780,"wires":[[]]},{"id":"a05d8f5407d2cdb1","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"console.log Diesel End","func":"console.log(\"Dieselpriser slutt\");\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":1090,"y":640,"wires":[[]]},{"id":"900c5206972e6c86","type":"ui-text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"110556e0baae6953","order":2,"width":"2","height":"1","name":"Price0","label":"","format":"{{msg.payload}}","layout":"col-center","style":false,"font":"","fontSize":16,"color":"#717171","wrapText":false,"className":"","x":2120,"y":80,"wires":[]},{"id":"0d6ee42acdd37ff2","type":"ui-text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"110556e0baae6953","order":4,"width":"2","height":"1","name":"Price1","label":"","format":"{{msg.payload}}","layout":"col-center","style":false,"font":"","fontSize":16,"color":"#717171","wrapText":false,"className":"","x":2120,"y":140,"wires":[]},{"id":"dfd2ccaa5bc1b57f","type":"ui-text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"110556e0baae6953","order":6,"width":"2","height":"1","name":"Price2","label":"","format":"{{msg.payload}}","layout":"col-center","style":false,"font":"","fontSize":16,"color":"#717171","wrapText":false,"className":"","x":2120,"y":190,"wires":[]},{"id":"f69279700d78497e","type":"ui-text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"110556e0baae6953","order":8,"width":"2","height":"1","name":"Price3","label":"","format":"{{msg.payload}}","layout":"col-center","style":false,"font":"","fontSize":16,"color":"#717171","wrapText":false,"className":"","x":2120,"y":250,"wires":[]},{"id":"23f00bc1a8a74fa9","type":"ui-text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"110556e0baae6953","order":10,"width":"2","height":"1","name":"Price4","label":"","format":"{{msg.payload}}","layout":"col-center","style":false,"font":"","fontSize":16,"color":"#717171","wrapText":false,"className":"","x":2120,"y":310,"wires":[]},{"id":"335994ff4485b3ec","type":"ui-text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"110556e0baae6953","order":12,"width":"2","height":"1","name":"Price5","label":"","format":"{{msg.payload}}","layout":"col-center","style":false,"font":"","fontSize":16,"color":"#717171","wrapText":false,"className":"","x":2120,"y":370,"wires":[]},{"id":"42b492a395c7e579","type":"ui-text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"110556e0baae6953","order":14,"width":"2","height":"1","name":"Price6","label":"","format":"{{msg.payload}}","layout":"col-center","style":false,"font":"","fontSize":16,"color":"#717171","wrapText":false,"className":"","x":2120,"y":440,"wires":[]},{"id":"3c9ceafdd8c29bf3","type":"ui-text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"110556e0baae6953","order":16,"width":"2","height":"1","name":"Price7","label":"","format":"{{msg.payload}}","layout":"col-center","style":false,"font":"","fontSize":16,"color":"#717171","wrapText":false,"className":"","x":2120,"y":500,"wires":[]},{"id":"a01f5e223eb1c084","type":"ui-text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"110556e0baae6953","order":18,"width":"2","height":"1","name":"Price8","label":"","format":"{{msg.payload}}","layout":"col-center","style":false,"font":"","fontSize":16,"color":"#717171","wrapText":false,"className":"","x":2120,"y":560,"wires":[]},{"id":"ea45b82d3dbb59a7","type":"ui-text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"110556e0baae6953","order":20,"width":"2","height":"1","name":"Price9","label":"","format":"{{msg.payload}}","layout":"col-center","style":false,"font":"","fontSize":16,"color":"#717171","wrapText":false,"className":"","x":2120,"y":620,"wires":[]},{"id":"2b1034676d5cf0ad","type":"ui-text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"110556e0baae6953","order":1,"width":"2","height":"1","name":"Label0","label":"","format":"{{msg.payload}}","layout":"row-center","style":false,"font":"","fontSize":16,"color":"#717171","wrapText":false,"className":"","x":2250,"y":50,"wires":[]},{"id":"edda9c63ecdd3aa5","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"lab2pl","func":"msg.payload = msg.label;\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":2120,"y":50,"wires":[["2b1034676d5cf0ad"]]},{"id":"9b8a839f4476974a","type":"inject","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":1730,"y":70,"wires":[["e6a31dc9dfb2064d"]]},{"id":"211cc02ca79c120b","type":"ui-text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"110556e0baae6953","order":3,"width":"2","height":"1","name":"Label1","label":"","format":"{{msg.payload}}","layout":"row-center","style":false,"font":"","fontSize":16,"color":"#717171","wrapText":false,"className":"","x":2250,"y":110,"wires":[]},{"id":"b17af5ca3a29fb12","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"lab2pl","func":"msg.payload = msg.label;\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":2120,"y":110,"wires":[["211cc02ca79c120b"]]},{"id":"f3a4d2156cdcdab6","type":"ui-text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"110556e0baae6953","order":5,"width":"2","height":"1","name":"Label2","label":"","format":"{{msg.payload}}","layout":"row-center","style":false,"font":"","fontSize":16,"color":"#717171","wrapText":false,"className":"","x":2250,"y":170,"wires":[]},{"id":"dce9b94037817b13","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"lab2pl","func":"msg.payload = msg.label;\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":2120,"y":170,"wires":[["f3a4d2156cdcdab6"]]},{"id":"d1d4e9dece7df913","type":"ui-text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"110556e0baae6953","order":7,"width":"2","height":"1","name":"Label3","label":"","format":"{{msg.payload}}","layout":"row-center","style":false,"font":"","fontSize":16,"color":"#717171","wrapText":false,"className":"","x":2250,"y":220,"wires":[]},{"id":"c34edf432a785f77","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"lab2pl","func":"msg.payload = msg.label;\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":2120,"y":220,"wires":[["d1d4e9dece7df913"]]},{"id":"88e00589654790f5","type":"ui-text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"110556e0baae6953","order":9,"width":"2","height":"1","name":"Label4","label":"","format":"{{msg.payload}}","layout":"row-center","style":false,"font":"","fontSize":16,"color":"#717171","wrapText":false,"className":"","x":2250,"y":280,"wires":[]},{"id":"a83908819ec381b2","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"lab2pl","func":"msg.payload = msg.label;\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":2120,"y":280,"wires":[["88e00589654790f5"]]},{"id":"93aeb62e57c14023","type":"ui-text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"110556e0baae6953","order":11,"width":"2","height":"1","name":"Label5","label":"","format":"{{msg.payload}}","layout":"row-center","style":false,"font":"","fontSize":16,"color":"#717171","wrapText":false,"className":"","x":2250,"y":340,"wires":[]},{"id":"ee43915933528bfa","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"lab2pl","func":"msg.payload = msg.label;\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":2120,"y":340,"wires":[["93aeb62e57c14023"]]},{"id":"89afa177a44ffbc5","type":"ui-text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"110556e0baae6953","order":13,"width":"2","height":"1","name":"Label6","label":"","format":"{{msg.payload}}","layout":"row-center","style":false,"font":"","fontSize":16,"color":"#717171","wrapText":false,"className":"","x":2250,"y":400,"wires":[]},{"id":"85512989de4690f3","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"lab2pl","func":"msg.payload = msg.label;\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":2120,"y":400,"wires":[["89afa177a44ffbc5"]]},{"id":"6024725ae75382fb","type":"ui-text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"110556e0baae6953","order":15,"width":"2","height":"1","name":"Label7","label":"","format":"{{msg.payload}}","layout":"row-center","style":false,"font":"","fontSize":16,"color":"#717171","wrapText":false,"className":"","x":2250,"y":470,"wires":[]},{"id":"419d1e6e4e82482e","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"lab2pl","func":"msg.payload = msg.label;\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":2120,"y":470,"wires":[["6024725ae75382fb"]]},{"id":"1ea7fb4b20337450","type":"ui-text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"110556e0baae6953","order":17,"width":"2","height":"1","name":"Label8","label":"","format":"{{msg.payload}}","layout":"row-center","style":false,"font":"","fontSize":16,"color":"#717171","wrapText":false,"className":"","x":2250,"y":530,"wires":[]},{"id":"7a0bc26925236777","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"lab2pl","func":"msg.payload = msg.label;\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":2120,"y":530,"wires":[["1ea7fb4b20337450"]]},{"id":"86b7aca3b73895f5","type":"ui-text","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"110556e0baae6953","order":19,"width":"2","height":"1","name":"Label9","label":"","format":"{{msg.payload}}","layout":"row-center","style":false,"font":"","fontSize":16,"color":"#717171","wrapText":false,"className":"","x":2250,"y":590,"wires":[]},{"id":"13a4afa74f1e8be6","type":"function","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","name":"lab2pl","func":"msg.payload = msg.label;\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":2120,"y":590,"wires":[["86b7aca3b73895f5"]]},{"id":"a5989d0a9b6bbaeb","type":"ui-chart","z":"2447f70b5f1095ba","g":"77e67d4e89c2c546","group":"deae7d4f0db6abd8","name":"","label":"Dieselpris (6u)","order":1,"chartType":"line","category":"topic","categoryType":"msg","xAxisLabel":"","xAxisProperty":"","xAxisPropertyType":"timestamp","xAxisType":"time","xAxisFormat":"","xAxisFormatType":"auto","xmin":"","xmax":"","yAxisLabel":"","yAxisProperty":"payload","yAxisPropertyType":"msg","ymin":"","ymax":"","bins":10,"action":"append","stackSeries":false,"pointShape":"false","pointRadius":4,"showLegend":true,"removeOlder":"6","removeOlderUnit":"604800","removeOlderPoints":"","colors":["#0095ff","#ff0000","#ff7f0e","#2ca02c","#a347e1","#d62728","#ff9896","#9467bd","#c5b0d5"],"textColor":["#f6f5f4"],"textColorDefault":false,"gridColor":["#e5e5e5"],"gridColorDefault":true,"width":"8","height":"14","className":"","interpolation":"step","x":1760,"y":590,"wires":[[]]},{"id":"8a6654beead70801","type":"persist-store","filename":"persist-diesel.json","interval":"900"},{"id":"110556e0baae6953","type":"ui-group","name":"Priser","page":"fdfb3f185ed18988","width":"4","height":"1","order":3,"showTitle":true,"className":"","visible":"true","disabled":"false","groupType":"default"},{"id":"deae7d4f0db6abd8","type":"ui-group","name":"Chart","page":"fdfb3f185ed18988","width":"8","height":"1","order":2,"showTitle":true,"className":"","visible":"true","disabled":"false","groupType":"default"},{"id":"fdfb3f185ed18988","type":"ui-page","name":"Dieselpriser","ui":"44c64ce8a980fc91","path":"/dieselpriser","icon":"home","layout":"grid","theme":"29f0478829dcd961","breakpoints":[{"name":"Default","px":"0","cols":"3"},{"name":"Tablet","px":"576","cols":"6"},{"name":"Small Desktop","px":"768","cols":"9"},{"name":"Desktop","px":"1024","cols":"12"}],"order":6,"className":"","visible":true,"disabled":false},{"id":"44c64ce8a980fc91","type":"ui-base","name":"Vale Cottage","path":"/dashboard","appIcon":"","includeClientData":true,"acceptsClientConfig":["ui-notification","ui-control","ui-iframe"],"showPathInSidebar":false,"headerContent":"page","navigationStyle":"fixed","titleBarStyle":"hidden","showReconnectNotification":true,"notificationDisplayTime":"5","showDisconnectNotification":true},{"id":"29f0478829dcd961","type":"ui-theme","name":"Dark","colors":{"surface":"#241f31","primary":"#3d997d","bgPage":"#241f31","groupBg":"#241f31","groupOutline":"#9a9996"},"sizes":{"density":"compact","pagePadding":"6px","groupGap":"6px","groupBorderRadius":"4px","widgetGap":"6px"}},{"id":"516b853f82e2fd07","type":"group","z":"2447f70b5f1095ba","name":"Vis universalliste drivstoffpriser i egen tab","style":{"label":true,"color":"#000000"},"nodes":["6ffebf4f1340a92e","fc1b2554d6e80f6b","5fd3c4e366a636d6","6bfcbbe7c43dcc84","03dc6f5b94c49e02","4d95ecb3e17e80a4","bf43e528a5851b0d","f193882be2dc7762","d9d0882ba114f2ae","dd937fc64214f72d","13d4a47fe1d5ae74","65cdb903a6486baf","6e102042f9d3270e","92ef0335f61a9718"],"x":644,"y":839,"w":912,"h":292},{"id":"6ffebf4f1340a92e","type":"ui_table","z":"2447f70b5f1095ba","g":"516b853f82e2fd07","group":"0d788a3660f620b1","name":"All stations","order":4,"width":"12","height":"21","columns":[{"field":"name","title":"","width":"26%","align":"left","formatter":"plaintext","formatterParams":{"target":"_blank"}},{"field":"brand","title":"","width":"27%","align":"left","formatter":"plaintext","formatterParams":{"target":"_blank"}},{"field":"location","title":"","width":"31%","align":"left","formatter":"plaintext","formatterParams":{"target":"_blank"}},{"field":"id","title":"id","width":"13%","align":"left","formatter":"plaintext","formatterParams":{"target":"_blank"}}],"outputs":1,"cts":true,"x":1210,"y":920,"wires":[["fc1b2554d6e80f6b"]]},{"id":"fc1b2554d6e80f6b","type":"function","z":"2447f70b5f1095ba","g":"516b853f82e2fd07","name":"add to favs","func":"var favs = flow.get(\"Favs\") || []\nvar pl = msg.payload;\nvar arr = [];\nvar exists = false;\narr = favs;\n\nfor (var i = 0;i < favs.length;i++){\n if (favs[i].id == pl.id) exists = true;\n}\nif (exists == false) arr.push(pl);\n\nflow.set(\"Favs\", arr);\nreturn msg; ","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":740,"y":960,"wires":[["6bfcbbe7c43dcc84"]]},{"id":"5fd3c4e366a636d6","type":"ui_table","z":"2447f70b5f1095ba","g":"516b853f82e2fd07","group":"0d788a3660f620b1","name":"Selected stations","order":5,"width":"14","height":"22","columns":[{"field":"name","title":"name","width":"30%","align":"left","formatter":"plaintext","formatterParams":{"target":"_blank"}},{"field":"brand","title":"brand","width":"30%","align":"left","formatter":"plaintext","formatterParams":{"target":"_blank"}},{"field":"location","title":"location","width":"30%","align":"left","formatter":"plaintext","formatterParams":{"target":"_blank"}},{"field":"id","title":"id","width":"10%","align":"left","formatter":"plaintext","formatterParams":{"target":"_blank"}}],"outputs":1,"cts":true,"x":1230,"y":960,"wires":[["03dc6f5b94c49e02"]]},{"id":"6bfcbbe7c43dcc84","type":"function","z":"2447f70b5f1095ba","g":"516b853f82e2fd07","name":"List fav stations","func":"var favs = flow.get(\"Favs\") || []\nvar arr = []\nvar msg2 = {}\nfor (var i = 0;i < favs.length;i++){\n let obj = {}\n obj.id = favs[i].id;\n obj.name = favs[i].name;\n obj.brand = favs[i].brand;\n obj.location = favs[i].location;\n arr.push(obj);\n}\nmsg2.payload = arr;\nreturn msg2; ","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":970,"y":960,"wires":[["5fd3c4e366a636d6","f193882be2dc7762"]]},{"id":"03dc6f5b94c49e02","type":"function","z":"2447f70b5f1095ba","g":"516b853f82e2fd07","name":"Remove station from fav","func":"var i,j = 0;\nvar favs = flow.get(\"Favs\") || []\nvar favs2 = []\nvar remove = msg.payload;\nvar arr = []\nvar msg2 = {}\nfor (i = 0;i < favs.length;i++){\n if (favs[i].id != remove.id){\n favs2[j] = favs[i];\n j++;\n }\n}\nflow.set(\"Favs\", favs2)\nreturn msg; ","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":1180,"y":1030,"wires":[["6bfcbbe7c43dcc84"]]},{"id":"4d95ecb3e17e80a4","type":"ui_table","z":"2447f70b5f1095ba","g":"516b853f82e2fd07","group":"0d788a3660f620b1","name":"Drivstoffpriser","order":6,"width":"14","height":"22","columns":[{"field":"brand","title":"","width":"20%","align":"left","formatter":"plaintext","formatterParams":{"target":"_blank"}},{"field":"name","title":"","width":"25%","align":"left","formatter":"plaintext","formatterParams":{"target":"_blank"}},{"field":"type","title":"","width":"15%","align":"right","formatter":"plaintext","formatterParams":{"target":"_blank"}},{"field":"price","title":"Kr","width":"15%","align":"right","formatter":"plaintext","formatterParams":{"target":"_blank"}},{"field":"age","title":"hrs.","width":"15%","align":"right","formatter":"plaintext","formatterParams":{"target":"_blank"}}],"outputs":1,"cts":true,"x":1220,"y":1090,"wires":[[]]},{"id":"bf43e528a5851b0d","type":"function","z":"2447f70b5f1095ba","g":"516b853f82e2fd07","name":"List priser for favs","func":"var favs = flow.get(\"Favs\") || []\nvar stats = flow.get(\"stationsPrepd\") || []\nvar arr = []\nvar msg2 = {}\nvar now = Number(new Date());\nvar age = 0;\n\nfor (var i = 0;i < stats.length;i++){ //bla gjennom alle stasjoner\n for (var j = 0;j < favs.length;j++){ // bla gjennom favoritter\n if (stats[i].id == favs[j].id){ //er gjeldende stasjon i favoritter?\n// console.log(stats[i].prices);\n// for (var k = 0; k < stats[i].prices.length; k++){ // bla gjennom drivstofftyper\n for (var k in stats[i].prices){ // bla gjennom drivstofftyper\n// console.log(stats[i].id);\n let obj = {}\n obj.name = stats[i].name;\n obj.brand = stats[i].brand;\n obj.location = stats[i].location;\n obj.type = stats[i].prices[k].type;\n obj.price = stats[i].prices[k].price;\n obj.age = ((now - stats[i].prices[k].lastUpdated) / 3600 / 1000).toFixed(1);// + \"h\"; //age in hours\n arr.push(obj);\n }\n }\n }\n}\nmsg2.payload = arr;\nreturn msg2;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":980,"y":1090,"wires":[["4d95ecb3e17e80a4"]]},{"id":"f193882be2dc7762","type":"delay","z":"2447f70b5f1095ba","g":"516b853f82e2fd07","name":"","pauseType":"delay","timeout":"500","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":770,"y":1090,"wires":[["bf43e528a5851b0d"]]},{"id":"d9d0882ba114f2ae","type":"ui_text_input","z":"2447f70b5f1095ba","g":"516b853f82e2fd07","name":"","label":"Søk...","tooltip":"","group":"0d788a3660f620b1","order":7,"width":"10","height":"1","passthru":true,"mode":"text","delay":300,"topic":"topic","sendOnBlur":true,"className":"","topicType":"msg","x":720,"y":880,"wires":[["dd937fc64214f72d"]]},{"id":"dd937fc64214f72d","type":"function","z":"2447f70b5f1095ba","g":"516b853f82e2fd07","name":"List selected stations","func":"var stats = flow.get(\"stationsPrepd\") || []\nvar searchText = msg.payload;\nvar arr = [];\nvar msg2 = {}\nfor (var i = 0;i < stats.length;i++){\n let obj = {}\n obj.id = stats[i].id;\n obj.name = stats[i].name || \"-\"\n obj.brand = stats[i].brand || \"-\"\n obj.location = stats[i].location || \"-\"\n // plukk ut bare stasjoner som inneholder søkebegrepet\n if (obj.name.includes(searchText) || obj.brand.includes(searchText) || obj.location.includes(searchText)){\n arr.push(obj);\n }\n}\nmsg2.payload = arr;\nreturn msg2;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":990,"y":880,"wires":[["6ffebf4f1340a92e"]]},{"id":"13d4a47fe1d5ae74","type":"ui_text","z":"2447f70b5f1095ba","g":"516b853f82e2fd07","group":"0d788a3660f620b1","order":1,"width":"12","height":"1","name":"","label":"Alle stasjoner","format":"{{msg.payload}}","layout":"row-spread","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1450,"y":890,"wires":[]},{"id":"65cdb903a6486baf","type":"ui_text","z":"2447f70b5f1095ba","g":"516b853f82e2fd07","group":"0d788a3660f620b1","order":2,"width":"14","height":"1","name":"","label":"Favoritter","format":"{{msg.payload}}","layout":"row-spread","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1430,"y":920,"wires":[]},{"id":"6e102042f9d3270e","type":"ui_text","z":"2447f70b5f1095ba","g":"516b853f82e2fd07","group":"0d788a3660f620b1","order":3,"width":"13","height":"1","name":"","label":"Priser","format":"{{msg.payload}}","layout":"row-spread","className":"","style":false,"font":"","fontSize":"","color":"#000000","x":1420,"y":950,"wires":[]},{"id":"92ef0335f61a9718","type":"delay","z":"2447f70b5f1095ba","g":"516b853f82e2fd07","name":"","pauseType":"delay","timeout":"500","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":740,"y":1000,"wires":[["6bfcbbe7c43dcc84"]]},{"id":"0d788a3660f620b1","type":"ui_group","name":"Drivstoffpriser","tab":"1083c01bcc75e66c","order":1,"disp":true,"width":"40","collapse":false,"className":""},{"id":"1083c01bcc75e66c","type":"ui_tab","name":"Drivstoff","icon":"local_gas_station","order":25,"disabled":false,"hidden":false},{"id":"66fed02de14cd5a7","type":"group","z":"2447f70b5f1095ba","name":"Hente \"brands\" fra drivstoffappen","style":{"label":true,"color":"#000000"},"nodes":["372632c4f60d8424","77f438e4db6a6f68","82d67472bd4bb8a0","bd7bfcedba0b2323","0b4991ca32c4cf40"],"x":24,"y":589,"w":232,"h":242},{"id":"372632c4f60d8424","type":"http request","z":"2447f70b5f1095ba","g":"66fed02de14cd5a7","name":"API Request","method":"GET","ret":"txt","paytoqs":"ignore","url":"https://api.drivstoffappen.no/api/v1/brands?stationTypeId=1","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[{"keyType":"other","keyValue":"X-API-KEY","valueType":"msg","valueValue":"md5Hash"},{"keyType":"other","keyValue":"X-CLIENT-ID","valueType":"other","valueValue":"com.raskebiler.drivstoff.appen.ios"}],"x":140,"y":710,"wires":[["77f438e4db6a6f68"]]},{"id":"77f438e4db6a6f68","type":"json","z":"2447f70b5f1095ba","g":"66fed02de14cd5a7","name":"","property":"payload","action":"","pretty":false,"x":120,"y":750,"wires":[["82d67472bd4bb8a0"]]},{"id":"82d67472bd4bb8a0","type":"change","z":"2447f70b5f1095ba","g":"66fed02de14cd5a7","name":"set flow.brands","rules":[{"t":"set","p":"brands","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":150,"y":790,"wires":[[]]},{"id":"bd7bfcedba0b2323","type":"inject","z":"2447f70b5f1095ba","g":"66fed02de14cd5a7","name":"Once a day","props":[{"p":"payload"}],"repeat":"","crontab":"03 12 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"token2","payloadType":"flow","x":140,"y":670,"wires":[[]]},{"id":"0b4991ca32c4cf40","type":"change","z":"2447f70b5f1095ba","g":"66fed02de14cd5a7","name":"set.flow.token2","rules":[{"t":"set","p":"token2","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":150,"y":630,"wires":[["372632c4f60d8424"]]},{"id":"19e9dd7c0992a4db","type":"group","z":"2447f70b5f1095ba","name":"Hente \"stations\" fra drivstoffappen","style":{"label":true,"color":"#000000"},"nodes":["fb25d94b.139e78","9b28d83a.0226d","bc5b206f4b80b029","36db2ee7d9dbc9dc","09f4eac7c81a8f68","029b804564b2042d","ad3a3a41bdece374"],"x":14,"y":199,"w":252,"h":322},{"id":"fb25d94b.139e78","type":"http request","z":"2447f70b5f1095ba","g":"19e9dd7c0992a4db","name":"Get Token","method":"GET","ret":"txt","paytoqs":"ignore","url":"https://api.drivstoffappen.no/api/v1/authorization-sessions","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":110,"y":280,"wires":[["9b28d83a.0226d"]]},{"id":"9b28d83a.0226d","type":"function","z":"2447f70b5f1095ba","g":"19e9dd7c0992a4db","name":"Process Token","func":"//console.log(\"Dieselpriser innhentes\");\nmsg.token = JSON.parse(msg.payload).token;\nmsg.tokenBytes = Buffer.from(msg.token);\nmsg.shiftedBytes = Buffer.concat([msg.tokenBytes.slice(1), msg.tokenBytes.slice(0, 1)]);\nmsg.shiftedToken = msg.shiftedBytes.toString();\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":120,"y":320,"wires":[["bc5b206f4b80b029"]]},{"id":"bc5b206f4b80b029","type":"md5","z":"2447f70b5f1095ba","g":"19e9dd7c0992a4db","name":"MD5","fieldToHash":"shiftedToken","fieldTypeToHash":"msg","hashField":"md5Hash","hashFieldType":"msg","x":90,"y":360,"wires":[["09f4eac7c81a8f68","0b4991ca32c4cf40"]]},{"id":"36db2ee7d9dbc9dc","type":"json","z":"2447f70b5f1095ba","g":"19e9dd7c0992a4db","name":"","property":"payload","action":"","pretty":false,"x":90,"y":440,"wires":[["029b804564b2042d"]]},{"id":"09f4eac7c81a8f68","type":"http request","z":"2447f70b5f1095ba","g":"19e9dd7c0992a4db","name":"API Request","method":"GET","ret":"txt","paytoqs":"ignore","url":"https://api.drivstoffappen.no/api/v1/stations?stationTypeId=1","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[{"keyType":"other","keyValue":"X-API-KEY","valueType":"msg","valueValue":"md5Hash"},{"keyType":"other","keyValue":"X-CLIENT-ID","valueType":"other","valueValue":"com.raskebiler.drivstoff.appen.ios"}],"x":110,"y":400,"wires":[["36db2ee7d9dbc9dc"]]},{"id":"029b804564b2042d","type":"change","z":"2447f70b5f1095ba","g":"19e9dd7c0992a4db","name":"set flow.stationsRaw","rules":[{"t":"set","p":"stationsRaw","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":140,"y":480,"wires":[["c622a1c1b5d187fe"]]},{"id":"ad3a3a41bdece374","type":"delay","z":"2447f70b5f1095ba","g":"19e9dd7c0992a4db","name":"","pauseType":"delay","timeout":"4","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":100,"y":240,"wires":[["fb25d94b.139e78"]]}]
  17. Filen heter "persist-diesel.json" og ligger /home/nodered (der "nodered" er brukernavnet på min maskin). Det beste er nok å slette de 2 persist-nodene før du deployer og heller legge de inn igjen senere, evt. trykke "+" i persist noden og legge til din egen fil: Både "Name" og "Store" må være identiske i et par av Persist-In og Persist-Out noder for at dette skal virke.
  18. Persist er bare for å beholde data gjennom Node-RED omstart og er ikke kritisk i det hele tatt. Du må nok opprette filen selv i persist-noden. Jeg har satt opp chart noden til å vise drivstoffdata i 6 uker så det er en smule irriterende å miste denne historikken med et lite blink i lyset, derfor persist-nodene for å ta vare på og gjenopprette historikken ved restart...
  19. Foreløpig har jeg kommet hit med overgangen til Dash2.0: Men en må ha bildet "Drivstoff" for mer detaljer og finne stasjons-ID og det har jeg ikke tatt meg tid til enda... Dash2.0 har fremdeles en del begrensinger og ikke minst en "skjerm-størrelsesenhet" som gjør det veldig vanskelig å putte mye info inn på ett bilde... Virker som om det er en grafisk designer som har fått mer makt enn de praktiske designerene... Men der har skjedd en god del positivt med Dash2.0 siden vi snakket om det på BP for en tid siden.
  20. @Mastiff Jeg har ikke tilpasset den til Dash2.0 enda men jobber med saken. Der har dukket opp noen svenske stasjoner i Drivstoffapp databasen som helt mangler prisinformasjon, det feltet er der bare ikke, og det får flowen min til å krasje. I denne funksjonsblokken: må der legges inn disse 2 linjene: Tror jeg fikk med meg de fleste versjonene her: Du kan godt installere Dashboard 1.0 samtidig med 2.0 for å se hvordan det virker...
  21. Jeg tror nok dette er en smule utenfor komfortsonen min. Ikke det at jeg tviholder på komfortsonen, det er jo ikke noe gøy, men jeg vil heller legge jobb i andre ting... Etter å ha lett litt på nett ser det ut til at HP kun har optimalisering av batterilevetid på laptoper for bedriftsmarkedet og ikke hjemmemarkedet. Proffene har en setting i BIOS som aktiverer dette og hjemmelaptoper har en helt annen BIOS (ser helt forskjellig ut og mangler bl.a. det saliggjørende valget). Litt begrenset hva en legger av jobb i en velbrukt laptop til kr 2000 også. Får se etter en proffmaskin neste gang.
  22. Ser jeg ikke har "charge_control_*":
  23. Supert, da har jeg litt mer å jobbe med. Har som nevnt prøvd noen alternative programmer men ingen klarte å gjøre noe på min laptop.
  24. Dette her fungerte jo helt som tenkt men ikke helt ideelt likevel for nå brukes batteriet aktivt (tømmes) rundt halve tiden og så lades opp igjen. Li-Ion batterier har vel noe sånt som 800 sykler tilgjengelig... Det beste hadde jo vært å lade batteriet opp til 80% og så gå over til å kjøre laptopen på direktestrøm uten batterilading men det vet jeg ikke hvordan jeg skal få til... Får gruble litt eller kanskje noen har tips?
×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.