Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

SveinHa

Medlemmer
  • Innlegg

    1 669
  • Ble med

  • Besøkte siden sist

  • Dager vunnet

    98

Alt skrevet av SveinHa

  1. Jeg opplevde også dette nylig men la bare inn siste hovedlisens og siste vedlikeholdslisens og var oppe og gå igjen. BI lever fint offline men sjekker for oppdateringer jevnlig og det kan tydeligvis lage krøll... Du kan velge å ikke få varsel om oppdateringer...
  2. Ser hva du tenker på men det blir nå ganske mye ekstra dilldall utilgjengelig ute i vær og vind... Faren er vel kanskje størst hos de som bruker solcellene som taktekking og ikke monterer de utenpå eksisterende takpanner slik de fleste gjør ved ettermontering.
  3. Litt tidlig å konkludere men ser bra ut så langt...
  4. Har de siste 4-5 dagene blitt på en måte utlogget etter noe sånt som en halvtimes tid. Havner på dette skjermbildet: Trykker "Logg inn" så kommer jeg til forumets hovedside uten å måtte oppgi brukernavn/passord. Samme på Android og Linux med Brave browser.
  5. Fikk nylig melding fra en kjenning om at det var registrert noen ukjente personer på min adresse og ganske riktig, jeg var ikke oppført men det var både Nicolas Raoul og Gerard Julien... Har sendt melding til både 1881 og Gulesider og 1881 har rettet opp feilen men ikke Gulesider så langt. På Gulesider kan jeg endre oppføringen selv men siden jeg ikke fant meg selv så gikk det ikke... I disse tider er jo mobilnummeret blitt en nesten like god, eller i alle fall like mye brukt, personidentifikasjon som personnr og slikt og så er det tydeligvis ganske så enkelt å forfalske sin adresse... Jeg regner jo med at disse 2 herrer har en grunn til å bruke min adresse eller i alle fall å ikke bruke sin egen... Finnes der ikke noen form for kvalitetssikring på slike opplysninger?
  6. Knøttlite bilde men så vidt jeg ser er skjemaet på bryteren riktig...
  7. En har jo disse nivåbryterene som brukes i alle vaskemaskiner: En slange fra nippelen og helt ned til litt over vannpumpen burde gi et brukende signal. De finnes i analog utførelse også. Kobler til f.eks. Fibaro Smart implant.
  8. Akkurat nå har jeg: Intel NUC7i5BNK Baby Canyon Akasa Newton S7 kabinett, mål: 17,5cm (B) x 20cm (D) x 6cm (H) Samsung 960 EVO SSD M.2 2280 250GB (PCIe3.0 x4) Crucial Ballistix Sport LT DDR4 2666 MHz 8GB (2x4) Kjøpt som en brukt pakke. Har en egen Gigabyte Brix med ESXI for BlueIris da BluIris krever myyyyye CPU. Med 3 stk Linux VMer tusler den stort sett på tomgang... Brixen med 1 stk Windows 10 VM med 7 stk HD kamera har det langt tøffere... Edit: Ser jeg har havnet på en i5 i Intel NUCen mens Brix-en er Intel Core i7-10710U
  9. En dedikert server har jo lett for å støye og bruke en del strøm. Jeg kjører en i7 NUC med gratis ESXI med flere virtuelle maskiner. Synology har innebygget gratis backupprogram for VMWare så en Synology DS220+ fungerer som backup for både de virtuelle maskinene, SQL server og nettverksdisk for dokumenter o.l. Har de siste årene måttet bytte NUC flere ganger og restore av komplette virtuelle maskiner går som en lek, tar litt tid alt etter hvor stor disk den virtuelle maskinen har da... ESXI har fungert dønn stabilt men litt verre med vifte i NUCen... Den NUCen jeg kjører på nå har vifteløst hus så den bør i alle fall leve greit en stund.
  10. Fikk nettopp en Shelly EM i hus og brukte en del tid på å skjønne energidata. Etter litt jobbing fant jeg ut at topic "energy" oppdateres hvert minutt og inneholder Wh/60 for siste minutt. For å få en brukende kWh teller i NodeRed måtte jeg da til med en funksjonsblokk: Innholdet i funksjonsblokken: [{"id":"fa6012a6bf6a722f","type":"mqtt in","z":"06d71aaf3c5ec68d","name":"Shelly Solar PwrOut","topic":"shellies/Solar/emeter/1/energy","qos":"2","datatype":"json","broker":"6db118ed1b0c56de","nl":false,"rap":true,"rh":0,"inputs":0,"x":110,"y":780,"wires":[["62ce77a1861f5e97"]]},{"id":"62ce77a1861f5e97","type":"function","z":"06d71aaf3c5ec68d","name":"Calc kWh (Shelly)","func":"var kWh = context.get(\"kWh\") || 0\nvar svar = \"\";\nkWh += msg.payload/(60*1000);\ncontext.set(\"kWh\",kWh);\n\nsvar = {payload:kWh};\nreturn svar;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":320,"y":780,"wires":[["566f60d36445a0df"]]},{"id":"566f60d36445a0df","type":"show-value","z":"06d71aaf3c5ec68d","name":"","path":"","x":500,"y":780,"wires":[["3b27c97bafa0701c"]]},{"id":"6db118ed1b0c56de","type":"mqtt-broker","name":"DaleMQTT","broker":"172.16.0.94","port":"1883","clientid":"","autoConnect":true,"usetls":false,"protocolVersion":"5","keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""}] Ser ut til å funke helt fint. Tenker andre slike særheter kan dokumenteren i denne tråden. Edit: Ser ut til at jeg ble litt lurt av noe jeg leste på nett... Har nå sammenlignet med en annen måler og det ser ut til at minuttverdien skal deles på 60 for å få Wh. Har rettet i eksempelet over...
  11. Det er vel ikke særlig vanlig her på berget med så store veggbokser som den på illustrasjonen... Jeg ville vel mistenkt at den store boksen er brukt for ansvarsfraskrivelse, putter du Aquaraen inn i en mindre boks har du ikke fulgt bruksanvisningen og har deg selv å takke for evt. problemer.
  12. Inspirert av denne tråden hoppet jeg på å få litt drivstoffpriser inn i Node Red. Har på en måte ikke bruk for det siden jeg har appen på telefonen men det var nå litt gøy å lage. Det ble 2 varianter, den første er nok den som vil bli brukt for det meste: Redigert: Stasjonsnavnet får farge etter alder på prisoppdatering og prisen markeres ur fra over/under gjenomsnittspris. Variant 2 er langt mer fleksibel: Første tabellen inneholder > 2000 bensinstasjoner så der har jeg laget et søkefelt (case sensitive) for å begrense utvalget. Søker på alle felt. Klikk på en stasjon i venstre tabell flytter den over til favoritt tabellen i midten. Klikk på en stasjon i favoritt tabellen fjerner den. Alle stasjonene som befinner seg i favoritter vises i høyre tabell med alle drivstofftyper de har, pris og alder på prisdata. Hele greiene ser slik ut i Node Red: [{"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":[["d4dc462af536e73f"]]},{"id":"18ec6499f1fefde8","type":"function","z":"2447f70b5f1095ba","name":"Esso Avaldsnes","func":"var station = 'Esso Avaldsnes';\nvar msg2 = {}\nmsg.payload = msg.payload.filter((/** @type {{ discountInfo: string; }} */ e) => e.discountInfo == station);\nmsg.payload[0].stationDetails = msg.payload[0].stationDetails.filter(e => e.type == 'D');\nvar price = msg.payload[0].stationDetails[0].price;\nvar now = Number(new Date());\nvar age = (now - msg.payload[0].stationDetails[0].lastUpdated) / 3600 / 1000; //age in hours\nflow.set(\"EssoAval\", price);\n\nvar s1 = flow.get(\"EssoAval\") || 0\nvar s2 = flow.get(\"RevhStor\") || 0\nvar s3 = flow.get(\"ShelAval\") || 0\nvar s4 = flow.get(\"TankFlyp\") || 0\nvar s5 = flow.get(\"UnoXAval\") || 0\nvar s6 = flow.get(\"YX7ENorh\") || 0\nvar snitt = (s1 + s2 + s3 + s4 + s5 + s6) / 6;\nif (price < snitt) msg2.color = \"LIME\"; else msg2.color = \"RED\";\n\nmsg2.topic = station;\nmsg2.age = age.toFixed(1);\nif (age < 1) {\n msg2.stationcolor = \"LIME\";\n}\nelse if (age < 6) {\n msg2.stationcolor = \"YELLOW\";\n}\nelse if (age <= 12) {\n msg2.stationcolor = \"ORANGE\";\n}\nelse if (age > 12) {\n msg2.stationcolor = \"RED\";\n}\nmsg2.topic = station;\nmsg2.payload = price;\nreturn [msg, msg2];","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":770,"y":130,"wires":[["0e5b02362818c9c1"],["835b0df2bd3edcbb","7014c2032a87fc3b"]]},{"id":"e7e0a907d77667f2","type":"function","z":"2447f70b5f1095ba","name":"Uno-X Avaldsnes","func":"var station = 'Uno-X Avaldsnes';\nvar msg2 = {}\nmsg.payload = msg.payload.filter((/** @type {{ discountInfo: string; }} */ e) => e.discountInfo == station);\nmsg.payload[0].stationDetails = msg.payload[0].stationDetails.filter(e => e.type == 'D');\nvar price = msg.payload[0].stationDetails[0].price;\nvar now = Number(new Date());\nvar age = (now - msg.payload[0].stationDetails[0].lastUpdated) / 3600 / 1000; //age in hours\nflow.set(\"UnoXAval\", price);\n\nvar s1 = flow.get(\"EssoAval\") || 0\nvar s2 = flow.get(\"RevhStor\") || 0\nvar s3 = flow.get(\"ShelAval\") || 0\nvar s4 = flow.get(\"TankFlyp\") || 0\nvar s5 = flow.get(\"UnoXAval\") || 0\nvar s6 = flow.get(\"YX7ENorh\") || 0\nvar snitt = (s1 + s2 + s3 + s4 + s5 + s6) / 6;\nif (price < snitt) msg2.color = \"LIME\"; else msg2.color = \"RED\";\n\nmsg2.topic = station;\nmsg2.age = age.toFixed(1);\nif (age < 1) {\n msg2.stationcolor = \"LIME\";\n}\nelse if (age < 6) {\n msg2.stationcolor = \"YELLOW\";\n}\nelse if (age <= 12) {\n msg2.stationcolor = \"ORANGE\";\n}\nelse if (age > 12) {\n msg2.stationcolor = \"RED\";\n}\nmsg2.topic = station;\nmsg2.payload = price;\nreturn [msg, msg2];","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":780,"y":160,"wires":[["0e5b02362818c9c1"],["835b0df2bd3edcbb","671050bdedc0c3cb"]]},{"id":"283d51c6efeddbb7","type":"function","z":"2447f70b5f1095ba","name":"YX 7-Eleven Norheim","func":"var station = 'YX 7-Eleven Norheim';\nvar msg2 = {}\nmsg.payload = msg.payload.filter((/** @type {{ discountInfo: string; }} */ e) => e.discountInfo == station);\nmsg.payload[0].stationDetails = msg.payload[0].stationDetails.filter(e => e.type == 'D');\nvar price = msg.payload[0].stationDetails[0].price;\nvar now = Number(new Date());\nvar age = (now - msg.payload[0].stationDetails[0].lastUpdated) / 3600 / 1000; //age in hours\nflow.set(\"YX7ENorh\", price);\n\nvar s1 = flow.get(\"EssoAval\") || 0\nvar s2 = flow.get(\"RevhStor\") || 0\nvar s3 = flow.get(\"ShelAval\") || 0\nvar s4 = flow.get(\"TankFlyp\") || 0\nvar s5 = flow.get(\"UnoXAval\") || 0\nvar s6 = flow.get(\"YX7ENorh\") || 0\nvar snitt = (s1 + s2 + s3 + s4 + s5 + s6) / 6;\nif (price < snitt) msg2.color = \"LIME\"; else msg2.color = \"RED\";\n\nmsg2.topic = station;\nmsg2.age = age.toFixed(1);\nif (age < 1) {\n msg2.stationcolor = \"LIME\";\n}\nelse if (age < 6) {\n msg2.stationcolor = \"YELLOW\";\n}\nelse if (age <= 12) {\n msg2.stationcolor = \"ORANGE\";\n}\nelse if (age > 12) {\n msg2.stationcolor = \"RED\";\n}\nmsg2.topic = station;\nmsg2.payload = price;\nreturn [msg, msg2];","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":790,"y":190,"wires":[["0e5b02362818c9c1"],["835b0df2bd3edcbb","8e502b90702d3857"]]},{"id":"85dd9827b7d9a90c","type":"function","z":"2447f70b5f1095ba","name":"Tanken Helganes - Flyplassvegen","func":"var station = 'Tanken Helganes - Flyplassvegen';\nvar msg2 = {}\nmsg.payload = msg.payload.filter((/** @type {{ discountInfo: string; }} */ e) => e.discountInfo == station);\nmsg.payload[0].stationDetails = msg.payload[0].stationDetails.filter(e => e.type == 'D');\nvar price = msg.payload[0].stationDetails[0].price;\nvar now = Number(new Date());\nvar age = (now - msg.payload[0].stationDetails[0].lastUpdated) / 3600 / 1000; //age in hours\nflow.set(\"TankFlyp\", price);\n\nvar s1 = flow.get(\"EssoAval\") || 0\nvar s2 = flow.get(\"RevhStor\") || 0\nvar s3 = flow.get(\"ShelAval\") || 0\nvar s4 = flow.get(\"TankFlyp\") || 0\nvar s5 = flow.get(\"UnoXAval\") || 0\nvar s6 = flow.get(\"YX7ENorh\") || 0\nvar snitt = (s1 + s2 + s3 + s4 + s5 + s6) / 6;\nif (price < snitt) msg2.color = \"LIME\"; else msg2.color = \"RED\";\n\nmsg2.topic = station;\nmsg2.age = age.toFixed(1);\nif (age < 1) {\n msg2.stationcolor = \"LIME\";\n}\nelse if (age < 6) {\n msg2.stationcolor = \"YELLOW\";\n}\nelse if (age <= 12) {\n msg2.stationcolor = \"ORANGE\";\n}\nelse if (age > 12) {\n msg2.stationcolor = \"RED\";\n}\nmsg2.topic = station;\nmsg2.payload = price;\nreturn [msg, msg2];","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":830,"y":220,"wires":[["0e5b02362818c9c1"],["835b0df2bd3edcbb","b1eaf76d80b124b2"]]},{"id":"e577f959c4c3e385","type":"function","z":"2447f70b5f1095ba","name":"Shell Avaldsnes","func":"var station = 'Shell Avaldsnes';\nvar msg2 = {}\nmsg.payload = msg.payload.filter((/** @type {{ discountInfo: string; }} */ e) => e.discountInfo == station);\nmsg.payload[0].stationDetails = msg.payload[0].stationDetails.filter(e => e.type == 'D');\nvar price = msg.payload[0].stationDetails[0].price;\nvar now = Number(new Date());\nvar age = (now - msg.payload[0].stationDetails[0].lastUpdated) / 3600 / 1000; //age in hours\nflow.set(\"ShelAval\", price);\n\nvar s1 = flow.get(\"EssoAval\") || 0\nvar s2 = flow.get(\"RevhStor\") || 0\nvar s3 = flow.get(\"ShelAval\") || 0\nvar s4 = flow.get(\"TankFlyp\") || 0\nvar s5 = flow.get(\"UnoXAval\") || 0\nvar s6 = flow.get(\"YX7ENorh\") || 0\nvar snitt = (s1 + s2 + s3 + s4 + s5 + s6) / 6;\nif (price < snitt) msg2.color = \"LIME\"; else msg2.color = \"RED\";\n\nmsg2.topic = station;\nmsg2.age = age.toFixed(1);\nif (age < 1) {\n msg2.stationcolor = \"LIME\";\n}\nelse if (age < 6) {\n msg2.stationcolor = \"YELLOW\";\n}\nelse if (age <= 12) {\n msg2.stationcolor = \"ORANGE\";\n}\nelse if (age > 12) {\n msg2.stationcolor = \"RED\";\n}\nmsg2.topic = station;\nmsg2.payload = price;\nreturn [msg, msg2];","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":770,"y":250,"wires":[["0e5b02362818c9c1"],["835b0df2bd3edcbb","13527989f83e29d2"]]},{"id":"0e5b02362818c9c1","type":"debug","z":"2447f70b5f1095ba","name":"debug 88","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1000,"y":350,"wires":[]},{"id":"835b0df2bd3edcbb","type":"ui_chart","z":"2447f70b5f1095ba","name":"","group":"c5147f5beba7be52","order":1,"width":"23","height":"8","label":"Dieselpris (7d)","chartType":"line","legend":"true","xformat":"DD/MM HH","interpolate":"step","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":"7","removeOlderPoints":"","removeOlderUnit":"86400","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"useDifferentColor":false,"className":"","x":1150,"y":130,"wires":[["dc20c0baebcded39"]]},{"id":"dc20c0baebcded39","type":"persist in","z":"2447f70b5f1095ba","name":"Dieselpriser","storageNode":"8a6654beead70801","x":1250,"y":80,"wires":[]},{"id":"52943a1fc077d28f","type":"persist out","z":"2447f70b5f1095ba","name":"Dieselpriser","storageNode":"8a6654beead70801","x":1070,"y":80,"wires":[["835b0df2bd3edcbb"]]},{"id":"7014c2032a87fc3b","type":"ui_text","z":"2447f70b5f1095ba","group":"c5147f5beba7be52","order":2,"width":"8","height":"1","name":"","label":"<font color=\"{{msg.stationcolor}}\">{{msg.topic}} ({{msg.age}}h)","format":"<font color=\"{{msg.color}}\">Kr.{{msg.payload}}","layout":"row-spread","className":"","x":1120,"y":160,"wires":[]},{"id":"671050bdedc0c3cb","type":"ui_text","z":"2447f70b5f1095ba","group":"c5147f5beba7be52","order":3,"width":"8","height":"1","name":"","label":"<font color=\"{{msg.stationcolor}}\">{{msg.topic}} ({{msg.age}}h)","format":"<font color=\"{{msg.color}}\">Kr.{{msg.payload}}","layout":"row-spread","className":"","x":1120,"y":190,"wires":[]},{"id":"8e502b90702d3857","type":"ui_text","z":"2447f70b5f1095ba","group":"c5147f5beba7be52","order":4,"width":"8","height":"1","name":"","label":"<font color=\"{{msg.stationcolor}}\">{{msg.topic}} ({{msg.age}}h)","format":"<font color=\"{{msg.color}}\">Kr.{{msg.payload}}","layout":"row-spread","className":"","x":1120,"y":220,"wires":[]},{"id":"b1eaf76d80b124b2","type":"ui_text","z":"2447f70b5f1095ba","group":"c5147f5beba7be52","order":5,"width":"8","height":"1","name":"","label":"<font color=\"{{msg.stationcolor}}\">{{msg.topic}} ({{msg.age}}h)","format":"<font color=\"{{msg.color}}\">Kr.{{msg.payload}}","layout":"row-spread","className":"","x":1120,"y":250,"wires":[]},{"id":"13527989f83e29d2","type":"ui_text","z":"2447f70b5f1095ba","group":"c5147f5beba7be52","order":6,"width":"8","height":"1","name":"","label":"<font color=\"{{msg.stationcolor}}\">{{msg.topic}} ({{msg.age}}h)","format":"<font color=\"{{msg.color}}\">Kr.{{msg.payload}}","layout":"row-spread","className":"","x":1120,"y":280,"wires":[]},{"id":"80fadd7556b173c2","type":"ui_text","z":"2447f70b5f1095ba","group":"c5147f5beba7be52","order":8,"width":"8","height":"1","name":"Legend","label":"<font color=\"LIME\"><1h <font color=\"YELLOW\"><6h <font color=\"ORANGE\"><=12h <font color=\"RED\">>12h<font color=#43464B> . . . . . . . . . . . . <font color=\"LIME\"> < <font color=\"WHITE\">avg<font color=\"RED\"><","format":"","layout":"row-spread","className":"","x":1130,"y":380,"wires":[]},{"id":"c622a1c1b5d187fe","type":"function","z":"2447f70b5f1095ba","name":"List all stations","func":"flow.set(\"Stations\",msg.payload);\nvar arr = [];\nvar msg2 = {}\nfor (var i = 0;i < msg.payload.length;i++){\n let obj = {}\n obj.id = msg.payload[i].id;\n obj.name = msg.payload[i].name || \"-\"\n obj.brand = msg.payload[i].brand || \"-\"\n obj.discountInfo = msg.payload[i].discountInfo || \"-\"\n arr.push(obj);\n}\nmsg2.payload = arr;\nreturn msg2; ","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":330,"y":440,"wires":[["6ffebf4f1340a92e","f193882be2dc7762"]]},{"id":"32b13b757f4465ec","type":"function","z":"2447f70b5f1095ba","name":"Revheim Storbilvask","func":"var station = 'Revheim Storbilvask';\nvar msg2 = {}\nmsg.payload = msg.payload.filter((/** @type {{ discountInfo: string; }} */ e) => e.discountInfo == station);\nmsg.payload[0].stationDetails = msg.payload[0].stationDetails.filter(e => e.type == 'D');\nvar price = msg.payload[0].stationDetails[0].price;\nvar now = Number(new Date());\nvar age = (now - msg.payload[0].stationDetails[0].lastUpdated) / 3600 / 1000; //age in hours\nflow.set(\"RevhStor\",price);\n\nvar s1 = flow.get(\"EssoAval\") || 0\nvar s2 = flow.get(\"RevhStor\") || 0\nvar s3 = flow.get(\"ShelAval\") || 0\nvar s4 = flow.get(\"TankFlyp\") || 0\nvar s5 = flow.get(\"UnoXAval\") || 0\nvar s6 = flow.get(\"YX7ENorh\") || 0\nvar snitt = (s1 + s2 + s3 + s4 + s5 + s6) / 6;\nif (price < snitt) msg2.color = \"LIME\"; else msg2.color = \"RED\";\n\nmsg2.topic = station;\nmsg2.age = age.toFixed(1);\nif (age < 1) {\n msg2.stationcolor = \"LIME\";\n}\nelse if (age < 6) {\n msg2.stationcolor = \"YELLOW\";\n}\nelse if (age <= 12) {\n msg2.stationcolor = \"ORANGE\";\n}\nelse if (age > 12) {\n msg2.stationcolor = \"RED\";\n}\nmsg2.topic = station;\nmsg2.payload = price;\nreturn [msg, msg2];","outputs":2,"noerr":0,"initialize":"","finalize":"","libs":[],"x":790,"y":280,"wires":[["0e5b02362818c9c1"],["a789bc33845b6aae","835b0df2bd3edcbb"]]},{"id":"a789bc33845b6aae","type":"ui_text","z":"2447f70b5f1095ba","group":"c5147f5beba7be52","order":7,"width":"8","height":"1","name":"","label":"<font color=\"{{msg.stationcolor}}\">{{msg.topic}} ({{msg.age}}h)","format":"<font color=\"{{msg.color}}\">Kr.{{msg.payload}}","layout":"row-spread","className":"","x":1120,"y":310,"wires":[]},{"id":"28fe85a134fe0971","type":"debug","z":"2447f70b5f1095ba","name":"debug 89","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":750,"y":340,"wires":[]},{"id":"6ffebf4f1340a92e","type":"ui_table","z":"2447f70b5f1095ba","group":"0d788a3660f620b1","name":"All stations","order":4,"width":"10","height":"15","columns":[{"field":"name","title":"","width":"30%","align":"left","formatter":"plaintext","formatterParams":{"target":"_blank"}},{"field":"brand","title":"","width":"27%","align":"left","formatter":"plaintext","formatterParams":{"target":"_blank"}},{"field":"discountInfo","title":"","width":"40%","align":"left","formatter":"plaintext","formatterParams":{"target":"_blank"}}],"outputs":1,"cts":true,"x":760,"y":440,"wires":[["fc1b2554d6e80f6b"]]},{"id":"fc1b2554d6e80f6b","type":"function","z":"2447f70b5f1095ba","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,"noerr":0,"initialize":"","finalize":"","libs":[],"x":320,"y":480,"wires":[["6bfcbbe7c43dcc84"]]},{"id":"5fd3c4e366a636d6","type":"ui_table","z":"2447f70b5f1095ba","group":"0d788a3660f620b1","name":"Selected stations","order":5,"width":"10","height":"16","columns":[{"field":"name","title":"","width":"30%","align":"left","formatter":"plaintext","formatterParams":{"target":"_blank"}},{"field":"brand","title":"","width":"30%","align":"left","formatter":"plaintext","formatterParams":{"target":"_blank"}},{"field":"discountInfo","title":"","width":"40%","align":"left","formatter":"plaintext","formatterParams":{"target":"_blank"}}],"outputs":1,"cts":true,"x":780,"y":480,"wires":[["03dc6f5b94c49e02"]]},{"id":"6bfcbbe7c43dcc84","type":"function","z":"2447f70b5f1095ba","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.discountInfo = favs[i].discountInfo;\n arr.push(obj);\n}\nmsg2.payload = arr;\nreturn msg2; ","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":550,"y":480,"wires":[["5fd3c4e366a636d6","f193882be2dc7762"]]},{"id":"03dc6f5b94c49e02","type":"function","z":"2447f70b5f1095ba","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,"noerr":0,"initialize":"","finalize":"","libs":[],"x":650,"y":550,"wires":[["6bfcbbe7c43dcc84"]]},{"id":"4d95ecb3e17e80a4","type":"ui_table","z":"2447f70b5f1095ba","group":"0d788a3660f620b1","name":"Drivstoffpriser","order":6,"width":"10","height":"16","columns":[{"field":"discountInfo","title":"","width":"55%","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":770,"y":600,"wires":[[]]},{"id":"bf43e528a5851b0d","type":"function","z":"2447f70b5f1095ba","name":"List priser for favs","func":"var favs = flow.get(\"Favs\") || []\nvar stats = flow.get(\"Stations\") || []\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 for (var k = 0; k < stats[i].stationDetails.length; k++){ // bla gjennom drivstofftyper\n let obj = {}\n obj.name = stats[i].name;\n obj.brand = stats[i].brand;\n obj.discountInfo = stats[i].discountInfo;\n // fix dårlig benevning\n if (obj.brand == obj.discountInfo) obj.discountInfo = obj.discountInfo + \" \" + obj.name;\n obj.type = stats[i].stationDetails[k].type;\n obj.price = stats[i].stationDetails[k].price;\n obj.age = ((now - stats[i].stationDetails[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,"noerr":0,"initialize":"","finalize":"","libs":[],"x":560,"y":600,"wires":[["4d95ecb3e17e80a4"]]},{"id":"f193882be2dc7762","type":"delay","z":"2447f70b5f1095ba","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":310,"y":600,"wires":[["bf43e528a5851b0d"]]},{"id":"d9d0882ba114f2ae","type":"ui_text_input","z":"2447f70b5f1095ba","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":300,"y":410,"wires":[["dd937fc64214f72d"]]},{"id":"dd937fc64214f72d","type":"function","z":"2447f70b5f1095ba","name":"List selected stations","func":"var stats = flow.get(\"Stations\") || []\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.discountInfo = stats[i].discountInfo || \"-\"\n // plukk ut bare stasjoner som inneholder søkebegrepet\n if (obj.name.includes(searchText) || obj.brand.includes(searchText) || obj.discountInfo.includes(searchText)){\n arr.push(obj);\n }\n}\nmsg2.payload = arr;\nreturn msg2;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":530,"y":410,"wires":[["6ffebf4f1340a92e"]]},{"id":"13d4a47fe1d5ae74","type":"ui_text","z":"2447f70b5f1095ba","group":"0d788a3660f620b1","order":1,"width":"10","height":"1","name":"","label":"Alle stasjoner","format":"{{msg.payload}}","layout":"row-spread","className":"","x":1150,"y":430,"wires":[]},{"id":"65cdb903a6486baf","type":"ui_text","z":"2447f70b5f1095ba","group":"0d788a3660f620b1","order":2,"width":"10","height":"1","name":"","label":"Favoritter","format":"{{msg.payload}}","layout":"row-spread","className":"","x":1130,"y":460,"wires":[]},{"id":"6e102042f9d3270e","type":"ui_text","z":"2447f70b5f1095ba","group":"0d788a3660f620b1","order":3,"width":"10","height":"1","name":"","label":"Priser","format":"{{msg.payload}}","layout":"row-spread","className":"","x":1120,"y":490,"wires":[]},{"id":"d4dc462af536e73f","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":540,"y":130,"wires":[["c622a1c1b5d187fe","18ec6499f1fefde8","e7e0a907d77667f2","283d51c6efeddbb7","85dd9827b7d9a90c","e577f959c4c3e385","32b13b757f4465ec","28fe85a134fe0971"]]},{"id":"c5147f5beba7be52","type":"ui_group","name":"Wide","tab":"8b4128994ad0c3a1","order":2,"disp":false,"width":"31","collapse":false,"className":""},{"id":"8a6654beead70801","type":"persist-store","filename":"diesel.json","interval":"600"},{"id":"0d788a3660f620b1","type":"ui_group","name":"Drivstoffpriser","tab":"1083c01bcc75e66c","order":1,"disp":true,"width":"31","collapse":false,"className":""},{"id":"8b4128994ad0c3a1","type":"ui_tab","name":"Sol + vær","icon":"wb_sunny","order":4,"disabled":false,"hidden":false},{"id":"1083c01bcc75e66c","type":"ui_tab","name":"Drivstoff","icon":"local_gas_station","order":22,"disabled":false,"hidden":false}]
  13. Er dette et åpent API til fri avbenyttelse, abonnementstjeneste eller annet? Fant ikke info på drivstoffappen.no
  14. 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":[]}]
  15. Kan du dele til flowen til oss som ikke er på Fakebook?
  16. Det forklarer jo litt... Dengang jeg brukte Telldus for 5-6 år siden var supporten svært så oppegående og jeg følte at jeg fikk personlig support.
  17. Har lett litt etter en ferdig løsning for å få litt status fra "Robert" inn i NodeRed og endte opp med å ta en Gardena-løsning og modifisere litt. Legger bare ut det mest grunleggende her så kan en selv bygge videre om en vil... Du trenger brukernavn/passord (samme som i appen) og api_key og api_secret (som en finner på https://developer.husqvarnagroup.cloud/applications/) Resultatet ser slik ut: [{"id":"ec4f37957f88a213","type":"inject","z":"8603c38cd8dca9a1","name":"InitialToken","props":[],"repeat":"300","crontab":"","once":true,"onceDelay":0.1,"topic":"","x":220,"y":100,"wires":[["5a76f5f24753307f"]]},{"id":"ef52311e418fa6cd","type":"http request","z":"8603c38cd8dca9a1","name":"http request","method":"GET","ret":"obj","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","insecureHTTPParser":false,"authType":"","senderr":false,"headers":[],"x":610,"y":160,"wires":[["1c85b2910f1c6f49","d89c283dd29ecf4e","1c19f3206acd6d3f","9a8a81a102fe4394"]]},{"id":"6b818ceca37c4778","type":"function","z":"8603c38cd8dca9a1","name":"Get Mowers","func":"flow.set(\"access_token\", msg.oauth2Response.access_token);\nflow.set(\"refresh_token\", msg.oauth2Response.refresh_token);\nflow.set(\"user_id\", msg.oauth2Response.user_id)\n\nvar mytoken = flow.get(\"access_token\"); \nvar myapi = flow.get(\"api_key\"); \nvar url = \"https://api.amc.husqvarna.dev/v1/mowers\";\n\nmsg.headers = {\n\t'Authorization': 'Bearer '+mytoken,\n\t'Authorization-Provider': 'husqvarna',\n\t'X-Api-Key': myapi,\n\t'Content-Type': 'application/vnd.api+json',\n};\n\nmsg.url = url;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":440,"y":160,"wires":[["ef52311e418fa6cd"]]},{"id":"1c85b2910f1c6f49","type":"debug","z":"8603c38cd8dca9a1","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1030,"y":160,"wires":[]},{"id":"5a76f5f24753307f","type":"function","z":"8603c38cd8dca9a1","name":"Credentials","func":"flow.set(\"gard_login\", \"[email protected]\");\nflow.set(\"gard_pass\", \"xxxxxx\");\nflow.set(\"api_key\", \"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\");\nflow.set(\"api_secret\", \"zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz\");\n\n\nvar mylogin = flow.get(\"gard_login\");\nvar mypass = flow.get(\"gard_pass\"); \nvar myrefresh = flow.get(\"refresh_token\"); \nvar myapi = flow.get(\"api_key\"); \nvar mysecret = flow.get(\"api_secret\"); \n\nmsg.oauth2Request = { \n\"access_token_url\": \"https://api.authentication.husqvarnagroup.dev/v1/oauth2/token\", \n\"credentials\": {\n \"grant_type\": \"password\",\n \"username\": mylogin,\n \"password\": mypass,\n \"client_id\": myapi,\n \"client_secret\": mysecret,\n \"scope\": \"openid\"\n }\n};\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":440,"y":100,"wires":[["88e8d4ddd3a7e099"]]},{"id":"498b21e243819b76","type":"debug","z":"8603c38cd8dca9a1","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"oauth2Response","targetType":"msg","statusVal":"","statusType":"auto","x":1060,"y":100,"wires":[]},{"id":"88e8d4ddd3a7e099","type":"oauth2","z":"8603c38cd8dca9a1","name":"","container":"oauth2Response","grant_type":"set_by_credentials","access_token_url":"","authorization_endpoint":"","open_authentication":"","username":"","password":"","client_id":"","client_secret":"","scope":"","proxy":"","senderr":false,"client_credentials_in_body":true,"rejectUnauthorized":true,"headers":{},"x":660,"y":100,"wires":[["6b818ceca37c4778","498b21e243819b76"]]},{"id":"d89c283dd29ecf4e","type":"change","z":"8603c38cd8dca9a1","name":"Extract Mower activity","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload[\"data\"][0][\"attributes\"][\"mower\"].activity","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":560,"y":240,"wires":[["55ea77bc8dc2844a"]]},{"id":"0d70166c691efcee","type":"ui_text","z":"8603c38cd8dca9a1","group":"a7f439d7b1e0bbd4","order":1,"width":0,"height":0,"name":"","label":"Act:","format":"{{msg.payload}}","layout":"row-left","className":"","x":1010,"y":240,"wires":[]},{"id":"55ea77bc8dc2844a","type":"show-value","z":"8603c38cd8dca9a1","name":"","path":"","x":820,"y":240,"wires":[["0d70166c691efcee"]]},{"id":"1c19f3206acd6d3f","type":"change","z":"8603c38cd8dca9a1","name":"Extract Mower state","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload[\"data\"][0][\"attributes\"][\"mower\"].state","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":560,"y":280,"wires":[["12a6948a8805bccf"]]},{"id":"0ec1d3574e80d05f","type":"ui_text","z":"8603c38cd8dca9a1","group":"a7f439d7b1e0bbd4","order":1,"width":0,"height":0,"name":"","label":"State:","format":"{{msg.payload}}","layout":"row-left","className":"","x":1010,"y":280,"wires":[]},{"id":"12a6948a8805bccf","type":"show-value","z":"8603c38cd8dca9a1","name":"","path":"","x":820,"y":280,"wires":[["0ec1d3574e80d05f"]]},{"id":"80c2164fda5b93c9","type":"ui_table","z":"8603c38cd8dca9a1","group":"a7f439d7b1e0bbd4","name":"","order":2,"width":"8","height":"11","columns":[],"outputs":0,"cts":false,"x":1010,"y":200,"wires":[]},{"id":"9a8a81a102fe4394","type":"function","z":"8603c38cd8dca9a1","name":"2array.of.obj","func":"var newObj = {}\nlet arr = []\nvar lastDate = 0;\nvar options = { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' };\nvar lastDateFormatted = 0;\nvar system = [msg.payload.data[0].attributes.system]\nvar mower = [msg.payload.data[0].attributes.mower]\nvar battery = [msg.payload.data[0].attributes.battery]\nvar metadata = [msg.payload.data[0].attributes.metadata]\nvar planner = [msg.payload.data[0].attributes.planner]\nvar calendar = [msg.payload.data[0].attributes.calendar.tasks[0]]\n\nnewObj = { Status: \"Name: \" + system[0].name }\narr.push(newObj)\nnewObj = { Status: \"Model: \" + system[0].model }\narr.push(newObj)\nnewObj = { Status: \"Serial: \" + system[0].serialNumber }\narr.push(newObj)\n\nnewObj = { Status: \"Override: \" + planner[0].override.action }\narr.push(newObj)\n\n//Calendar\nvar cald = \"\";\nif (calendar[0].monday == true) cald = \"M\"; else cald = \"_\";\nif (calendar[0].tuesday == true) cald += \"T\"; else cald += \"_\";\nif (calendar[0].wednesday == true) cald += \"W\"; else cald += \"_\";\nif (calendar[0].thursday == true) cald += \"T\"; else cald += \"_\";\nif (calendar[0].friday == true) cald += \"F\"; else cald += \"_\";\nif (calendar[0].saturday == true) cald += \"S\"; else cald += \"_\";\nif (calendar[0].sunday == true) cald += \"S\"; else cald += \"_\";\nnewObj = { Status: \"Calendar: \" + cald }\narr.push(newObj)\n\nnewObj = { Status: \"Connected: \" + metadata[0].connected }\narr.push(newObj)\n\nlastDate = new Date(metadata[0].statusTimestamp);\nlastDateFormatted = lastDate.toLocaleDateString('nb-NO', options);\nnewObj = { Status: \"StatusTS: \" + lastDateFormatted}\narr.push(newObj)\n\nnewObj = {Status: \"Mode: \" + mower[0].mode}\narr.push(newObj)\nnewObj = { Status: \"Activity: \" + mower[0].activity}\narr.push(newObj)\nnewObj = { Status: \"State: \" + mower[0].state }\narr.push(newObj)\nnewObj = { Status: \"ErrorCode: \" + mower[0].errorCode }\narr.push(newObj)\nlastDate = new Date(mower[0].errorCodeTimestamp);\nlastDateFormatted = lastDate.toLocaleDateString('nb-NO', options);\nnewObj = { Status: \"ErrorCodeTS: \" + lastDateFormatted}\narr.push(newObj)\nnewObj = { Status: \"Battery: \" + battery[0].batteryPercent }\narr.push(newObj)\n\nnode.warn(arr)\nmsg.payload = arr\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":820,"y":200,"wires":[["80c2164fda5b93c9","1c85b2910f1c6f49"]]},{"id":"afa6c1e45f377316","type":"comment","z":"8603c38cd8dca9a1","name":"Input your credentials","info":"","x":470,"y":70,"wires":[]},{"id":"a7f439d7b1e0bbd4","type":"ui_group","name":"Status","tab":"55b4bf40cf1e815d","order":1,"disp":true,"width":"8","collapse":false,"className":""},{"id":"55b4bf40cf1e815d","type":"ui_tab","name":"Robert","icon":"android","order":21,"disabled":false,"hidden":false}]
      • 2
      • Like
  18. Har sett litt på Windy og den ser ikke bedre ut enn Storm/Yr. Windy sier 99% skyer sammenhengende fra kl 10 til kl 21 i dag mens Yr indikerer en del sol på ettermiddagen. Der ble såpass sol på ettermiddagen at jeg fikk drøyt 13 kWh fra solcellene med max på ca 7 kW av 8.1 kWp. Dette er resultatet av værvarsel for I DAG og når det bommer såpass er det neppe mer brukende for i morgen og det er det jeg trenger... Noen som har noe som er mer pålitelig?
  19. Har ikke det. Sammenlignet nå med Yr/Storm og den gir et annet bilde noen dager fram i alle fall. Det jeg har sett av Yr/Storm til nå gir lite inspirasjon til å snekre noen automatikk...
  20. Jeg sitte daglig og gjør manuelle innnstillinger på solcelle/batterianlegget mitt slik at jeg skal få maksimalt ut av solen samtidig som jeg planlegger batterilading de billigste timene når solen ikke er tilstrekkelig. Jeg vet jo der finnes ulike APIer der ute men så langt har jeg brukt manuelt de norske storm.no og yr.no. Erfaringen så langt tilsier at det ikke er aktuelt å lage noen automatikk basert på disse tjenestene fordi de stemmer katastrofalt dårlig med gjeldende vær, til og med neste time bommes det kraftig på, ikke alltid selvsagt men litt for ofte. Det blir litt for ofte jeg dropper lading de billigste timene om natten fordi der er meldt sol neste dag men opplever overskyet i stedet, og motsatt. Da jeg drev med seiling så jeg at yr.no var totalt katastrofalt på vind mens grib.us var svært pålitelig. Nå er jo ikke vind aktuelt i denne sammenhengen men er der noen som vet om en sol og/eller skytjeneste som i praksis kan stoles på? Jeg teker at en skyprosent vil bli tilnærmet omvendt proporsjonal med solstyrken.
  21. Lurer også på noen motoriserte rullegardiner for solskjerming. Har sett meg ut Jysk YNGEN gardin og Aquara E1 motor. Halv pris av f.eks. Ikea Fyrtur og litt mer hjemmemekkaktig utseende (som jeg liker).
  22. Ting som skygger for panelene? Jeg mista 1 kW da jeg satte opp flaggstangen i går... så den flytta jeg... Jeg har heller ikke så storeproduksjonen i dag, 3.5kW max fra 8.1kWp anlegget (som på gode dager gir opptil 9.6kW). Litt mer info om anlegget gjør det lettere å gi råd.
  23. Slike rør på loftet er vel gjerne bare isolert med 3 cm eller noe slikt? Og der er vel en del meter av de... Men det var jo en heftig temp.forskjell... Har du tilgang på IR-kamera så kan det gi noen svar.
×
×
  • 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.