-
Innlegg
1 757 -
Ble med
-
Besøkte siden sist
-
Dager vunnet
112
Innholdstype
Profiler
Forum
Blogger
Nedlastninger
Artikler
Regler
Hendelser
Galleri
Store
Alt skrevet av SveinHa
-
Har brukt LastPass i årevis og gått over til Bitwarden for et år siden og er helt avhengig av slike program men så er det disse gangene at en setter opp en ny PC, jobber på en annens PC, internetkafè e.l. og trenger et eller annet fra f.eks. dette forumet og plutselig sitter du i fengsel for et kvarter...
-
Tittelen sier vel det meste... Dette er ikke verdensbankens gullbeholdning en logger inn på så en kan vel lempe litt på sikkerheten... Nå er jo passord blitt såpass vanskelige at jeg har endt opp på 16 tegn passord med store/små bokstaver, tall og spesialtegn på alle mine interne enheter og på eksterne greier har jeg et par standard passord som samtlige modifiseres etter noen relativt faste regler (som må endres i ny og ne) så å huske alle er ikke alltid like enkelt og dermed blir der lett noen bommerter...
-
Fibaro Wall Plug har bare et vanlig rele til å slå på/av strømmen, akkurat samme funksjon som den vanlige lysbryteren ved siden av døren, så har vondt for å tro at den kan påvirke pæren med mindre den står og går på/av hurtig men det vil du høre... LED pærer i dag varer på ingen måte evig selv om klassiske lysdioder (ca 5mm i diameter og bare fantes i fargen rød i starten) faktisk varer tilnærmet evig.
- 1 svar
-
- 1
-
-
GPS-Tracker for robotklipper med ESP32/uPython, NEO-6 GPS og Node-RED
SveinHa svarte på SveinHa sitt emne i Ditt system
Dumpet borti et litt uventet problem. Tenkte å redusere datamengden over WiFi/MQTT ved å ikke logge posisjon før klipperen hadde beveget seg f.eks mer enn 1 meter eller dreid mer enn 45 grader men på breddegrader mistet jeg litt for mye presisjon ved å konvertere string fra GPS til float. 2 desimaler forsvant og det ble litt i meste laget for dette bruket. Kan nok omgå problemet med litt triksing men skulle jo helst hatt double presisjon da... Quick-and-dirty løsning ble å bare logge hver femte GPRMC setning fra GPS og de ga et ganske tilfredsstillende resultat: -
GPS-Tracker for robotklipper med ESP32/uPython, NEO-6 GPS og Node-RED
SveinHa svarte på SveinHa sitt emne i Ditt system
Ca 35 minutt med klipping (4000 gps posisjoner i loggen) med "nyeklipperen" (Ambrogio L75 Evolution fra 2013): ...med GPS piggyback: Pr. i dag sender jeg alle mottatte GPS-posisjoner inn til Node-RED men har en liten plan om å redusere slik at klipperen må bevege seg f.eks >1 meter eller endre kurs mer enn 45 grader før en ny posisjon sendes. Nå koster jo ikke datatrafikken noe men en reduksjon kan uansett være greit. -
Da var L75 Evolution oppe og går. Ser at de store pigghjulene tar godt tak i plenen så dette lover godt. Spiralklipping er langt mer presis enn det L15 klarer med sine gummihjul og svært kort akselavstand: Mer lyd enn de fleste mer moderne klippere men jeg synes nå at mekanisk leamikk skal lagt litt lyd, ikke bråke men at det høres er greit... Kniven er nok justert et par cm lavere enn på L15 som har holdt plenen i sjakk de siste ukene... Litt hektisk i dag så litt mer senere...
-
...og kursen dreide enda en gang... Dumpet over et par 2-hjulinger fra Ambrogio som ble overtatt for en fornuftig sum, en L75 Evolution fra 2013 og en L85 Deluxe fra 2015. 75en er oppe og går men tar ikke til seg lading, 85en er tatt av lynet men reparert uten at den er oppe og går så det blir muligens en delemaskin. Blir nok litt mekking uti neste uke...
-
GPS-Tracker for robotklipper med ESP32/uPython, NEO-6 GPS og Node-RED
SveinHa publiserte et emne i Ditt system
Når en har en meget komplisert plen på 750 m2 og robotklipper uten sporing så dukker der jo fort opp behov for litt snekring på gutterommet... Har hatt meg en del turer rundt i hagen for å lete etter klipperen som har satt seg fast en eller annen plass så litt hjelp til å lete og, ikke minst, se hvilke områder som klippes er ganske greit... Nå har jeg jobbet noe tid med dette og det er på tide å dokumentere litt av prosessen i tilfelle andre vil gjøre noe lignende... 1: Skaffe kart over hagen. Her har jeg brukt kommunekart.com og "Tegn i kart" for å lage et omriss av plenen. Etter omrisset er laget lagres det til fil i kml format. For enkelhets skyld konverterer jeg denne til .geojson format i online konverteringsprogram. Pr i dag ser omrisset slik ut i kommunekart.com: .geojson filen importeres manuelt i Node-RED. Dette er jo en mer eller mindre engangs sak... 2: Innhente GPS-data og sende til MQTT. ESP32 med NEO-6 GPS koster "next to nothing" og er en grei løsning for dette bruket. Har slitt en del med Arduino-IDE så derfor havnet jeg på MicroPython denne gang. Siden jeg har 2 separate prosesser gående samtidig har jeg valgt å bruke uasyncio for multitasking. Task#1: Innhente data fra GPS og lagre posisjonsdata i fil. Task#2: På gitte intervall, pt hvert 30 sek, koble på wlan og sende data fra datafilen til MQTT broker. I hagen min er der noen wlan dødsoner og derfor nyttig å gjøre opplasting litt i rykk og napp når wlan er tilgjengelig. 3: Behandle GPS-data i Node-RED. Etterhvert som data mottas fra MQTT lagres de i et array of objects i flow-variabel og deretter tegnes det opp i en chart node. Array med data begrenses til et passende antall posisjoner, pt. 3000. Eldre data slettes automatisk. Prototype GPS-tracker: Første sporing: Node-RED: [{"id":"7b7be9e90c83eaff","type":"group","z":"c0e718067b85a8cc","name":"Lagre GPS-data","style":{"label":true},"nodes":["43d583213bfaa02f","2218191fe090798b","55b21eb55f283b61","8c73af56d7fdc323","36f55a2e222b2326","c466d510d0476f0e","93ac548a0bcda12d"],"x":24,"y":779,"w":832,"h":192},{"id":"43d583213bfaa02f","type":"mqtt in","z":"c0e718067b85a8cc","g":"7b7be9e90c83eaff","name":"","topic":"Ambrogio/Robertino/pos","qos":"2","datatype":"auto-detect","broker":"6db118ed1b0c56de","nl":false,"rap":true,"rh":0,"inputs":0,"x":160,"y":830,"wires":[["2218191fe090798b","55b21eb55f283b61","36f55a2e222b2326"]]},{"id":"2218191fe090798b","type":"show-value","z":"c0e718067b85a8cc","g":"7b7be9e90c83eaff","name":"","path":"","x":160,"y":880,"wires":[[]]},{"id":"55b21eb55f283b61","type":"function","z":"c0e718067b85a8cc","g":"7b7be9e90c83eaff","name":"GPS Tracker position","func":"let xMax = 5.229248;\nlet xMin = 5.228394;\nlet yMax = 59.392793;\nlet yMin = 59.392350;\nconst numpos = 4000;\nlet arr = flow.get(\"Robertino\") || []\nlet arr2 = []\n//node.warn(msg.payload);\nlet data = msg.payload;\n//var temp=data.split(\",\");\nlet msg2 = {}\n//node.warn(data);\n\n// lon/lat har format ddmm.mmmmmm\nlet lat = Number(data.lat) / 100;\n//node.warn(lat)\nlet intpart = parseInt(lat);\nlet fractpart = lat - intpart;\nlat = intpart + (fractpart * 1.666667);\n//node.warn(lat)\n\nlet lon = Number(data.lon) / 100;\nintpart = parseInt(lon);\nfractpart = lon - intpart;\nlon = intpart + (fractpart * 1.666667);\n\nlet time = data.utc;\n//node.warn(lat);\n//node.warn(lon);\n\n// Ignorer verdier utenfor kartet\nif (lat < yMax && lat > yMin && lon < xMax && lon > xMin) arr.push({\"lat\": lat, \"lon\": lon, \"UTC\": time});\n\n// Remove old positions\nlet n = arr.length;\n//node.warn(n);\narr2 = arr.slice(n - numpos);\n\n//node.warn(arr);\n//node.warn(arr2);\nflow.set(\"Robertino\", arr2);\nmsg.payload = \" \";\nmsg2.topic = \"Robertino\";\nmsg2.payload = time;\nreturn [msg, msg2];","outputs":2,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":410,"y":830,"wires":[["c466d510d0476f0e"],["8c73af56d7fdc323"]]},{"id":"8c73af56d7fdc323","type":"ui_text","z":"c0e718067b85a8cc","g":"7b7be9e90c83eaff","group":"a7f439d7b1e0bbd4","order":9,"width":"8","height":"1","name":"Robertino last track","label":"{{msg.topic}} last trck","format":"<font size=6>{{msg.payload}}<font size=3> UTC","layout":"row-spread","className":"","style":false,"font":"","fontSize":16,"color":"#000000","x":740,"y":870,"wires":[]},{"id":"36f55a2e222b2326","type":"debug","z":"c0e718067b85a8cc","g":"7b7be9e90c83eaff","name":"debug 180","active":true,"tosidebar":false,"console":false,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"","statusType":"counter","x":160,"y":930,"wires":[]},{"id":"c466d510d0476f0e","type":"function","z":"c0e718067b85a8cc","g":"7b7be9e90c83eaff","name":"Reset delay","func":"//msg.delay = 600000;\nvar m1 = {reset:true};\nreturn [[m1,msg]];","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":610,"y":820,"wires":[["93ac548a0bcda12d"]]},{"id":"93ac548a0bcda12d","type":"delay","z":"c0e718067b85a8cc","g":"7b7be9e90c83eaff","name":"","pauseType":"delay","timeout":"2","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":770,"y":820,"wires":[["3f628673e320b6ef"]]},{"id":"6db118ed1b0c56de","type":"mqtt-broker","name":"DaleMQTT","broker":"172.16.0.94","port":"1883","clientid":"34567890","autoConnect":true,"usetls":false,"protocolVersion":"4","keepalive":"60","cleansession":false,"autoUnsubscribe":true,"birthTopic":"","birthQos":"0","birthPayload":"","birthMsg":{},"closeTopic":"","closeQos":"0","closePayload":"","closeMsg":{},"willTopic":"","willQos":"0","willPayload":"","willMsg":{},"userProps":"","sessionExpiry":""},{"id":"a7f439d7b1e0bbd4","type":"ui_group","name":"Status","tab":"55b4bf40cf1e815d","order":2,"disp":true,"width":"8","collapse":false,"className":""},{"id":"55b4bf40cf1e815d","type":"ui_tab","name":"Ambrogios","icon":"android","order":23,"disabled":false,"hidden":false},{"id":"af4caa710bbb0c2a","type":"group","z":"c0e718067b85a8cc","name":"Presenter GPS data i chart","style":{"label":true},"nodes":["8e291ee416e96572","597d06bd03195022","6969dbab26c1048b","51404847151e1696","3f628673e320b6ef"],"x":24,"y":999,"w":742,"h":112},{"id":"8e291ee416e96572","type":"inject","z":"c0e718067b85a8cc","g":"af4caa710bbb0c2a","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":true,"onceDelay":"10","topic":"","payload":"","payloadType":"date","x":140,"y":1050,"wires":[["3f628673e320b6ef"]]},{"id":"597d06bd03195022","type":"function","z":"c0e718067b85a8cc","g":"af4caa710bbb0c2a","name":"Read temp positions & parse","func":"//let poss = flow.get(\"temp\");\nlet poss = flow.get(\"Robertino\") || []\nvar data = []\nvar data0 = []\nvar data1 = []\nvar data2 = []\nvar data3 = []\nlet j = 0;\n//for (let i in poss.data[0].attributes.positions){\n// data0.push({x: poss.data[0].attributes.positions[i].longitude,y:poss.data[0].attributes.positions[i].latitude});\nfor (let i in poss){\n if (poss[i].lat > 59 && poss[i].lon > 5) data0.push({x: poss[i].lon,y:poss[i].lat});\n// node.warn(poss.data[0].attributes.positions[i].longitude);\nj = i;\n}\n// Ta vare på siste pos for oransje markering plott (nåværende pos)\n//data2.push({x: poss.data[0].attributes.positions[0].longitude,y:poss.data[0].attributes.positions[0].latitude});\n//data2.push({x: poss.data[0].attributes.positions[1].longitude,y:poss.data[0].attributes.positions[1].latitude});\ndata2.push({x: poss[j-3].lon,y:poss[j-3].lat});\ndata2.push({x: poss[j-2].lon,y:poss[j-2].lat});\ndata2.push({x: poss[j-1].lon,y:poss[j-1].lat});\ndata2.push({x: poss[j].lon,y:poss[j].lat});\n\n// Omriss av plenen\ndata1 = flow.get(\"plen\");\n// Omriss av elendom\ndata3 = flow.get(\"eiendom\");\n\n\ndata[1] = data1; // Lawnlimits\ndata[3] = data3; // Lawnlimits\ndata[2] = data0; // Track\ndata[0] = data2; // Last track\n//node.warn(data[2]);\n\nmsg.payload = [{\n \"series\": [\"A\",\"B\",\"C\",\"D\"],\n \"xAxisID\": 'custom-x-axis',\n \"yAxisID\": 'custom-y-axis',\n \"data\": data,\n \"labels\": [\"\"]\n}]\n\nreturn msg;\n","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":450,"y":1040,"wires":[["51404847151e1696"]]},{"id":"6969dbab26c1048b","type":"function","z":"c0e718067b85a8cc","g":"af4caa710bbb0c2a","name":"modify chart options","func":"/*let centX = 5.1372;//2285;\nlet xW = 0.0005;\nlet xH = 0.0005;\nlet centY = 59.2355;//3924;\nlet xMax = centX + xW;\nlet xMin = centX - xW;\nlet yMax = centY + xH;\nlet yMin = centY - xH;\n*/\nlet xMax = 5.229248;\nlet xMin = 5.228394;\nlet yMax = 59.392793;\nlet yMin = 59.392350;\n\n\nlet gridcolors = 'rgba(255, 160, 0, 0.3)'\nmsg.ui_control = {\n options: {\n legend: {\n display: false\n },\n tooltips: {\n enabled: false\n },\n scales: {\n xAxes: [{\n type: 'linear',\n id: 'custom-x-axis',\n position:'bottom',\n padding:100,\n gridLines:{\n color:gridcolors,\n zeroLineColor:'rgba(123, 113, 113, 0.75)',\n tickMarkLength:7,\n drawTicks:false\n },\n ticks: {\n fontColor:\"#ccc\",\n max: xMax,\n min: xMin,\n stepSize: 0.0001\n \n }\n }],\n yAxes: [{\n id: 'custom-y-axis',\n \n gridLines:{\n color:gridcolors,\n zeroLineColor:'red',\n tickMarkLength:5,\n drawTicks:false\n },\n ticks: {\n fontColor:\"#ccc\",\n max: yMax,\n min: yMin,\n stepSize: 0.0001\n }\n }]\n }\n }\n}\ndelete msg.payload\nreturn msg;","outputs":1,"timeout":"","noerr":0,"initialize":"","finalize":"","libs":[],"x":430,"y":1070,"wires":[["51404847151e1696"]]},{"id":"51404847151e1696","type":"ui_chart","z":"c0e718067b85a8cc","g":"af4caa710bbb0c2a","name":"Plen","group":"7ab0161dbb92ab3f","order":3,"width":"30","height":"20","label":"","chartType":"line","legend":"false","xformat":"auto","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":"1","removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"useUTC":false,"colors":["#ff7f00","#00ff00","#8585fa","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"outputs":1,"useDifferentColor":false,"className":"","x":690,"y":1040,"wires":[[]]},{"id":"3f628673e320b6ef","type":"junction","z":"c0e718067b85a8cc","g":"af4caa710bbb0c2a","x":280,"y":1050,"wires":[["597d06bd03195022","6969dbab26c1048b"]]},{"id":"7ab0161dbb92ab3f","type":"ui_group","name":"Map","tab":"55b4bf40cf1e815d","order":3,"disp":true,"width":"32","collapse":false,"className":""},{"id":"f51cf63d67a5a2e5","type":"group","z":"c0e718067b85a8cc","name":"Les geojson fil og lagre koordinater i flow.plen","style":{"label":true},"nodes":["7a8aba7d1b2233c3","c3ac6155687bd8b2","7a3a31186dd532c5","65861ab97117862e"],"x":24,"y":1139,"w":1012,"h":82},{"id":"7a8aba7d1b2233c3","type":"json","z":"c0e718067b85a8cc","g":"f51cf63d67a5a2e5","name":"","property":"payload","action":"","pretty":false,"x":670,"y":1180,"wires":[["c3ac6155687bd8b2"]]},{"id":"c3ac6155687bd8b2","type":"function","z":"c0e718067b85a8cc","g":"f51cf63d67a5a2e5","name":"Plukk ut pos fra fil og lagre i flow","func":"var plen = []\nvar eiendom = []\n\nfor (var i in msg.payload.features[0].geometry.coordinates){\n let tempobj = {x: msg.payload.features[0].geometry.coordinates[i][0] ,y: msg.payload.features[0].geometry.coordinates[i][1]};\n plen.push(tempobj);\n}\n//payload.features[1].geometry.coordinates[0][0]\n//payload.features[1].geometry.coordinates[0][9]\n//payload.features[1].geometry.coordinates[0][9][0]\n//payload.features[1].geometry.coordinates[0][9][1]\nfor (var i in msg.payload.features[1].geometry.coordinates[0]) {\n let tempobj = { x: msg.payload.features[1].geometry.coordinates[0][i][0], y: msg.payload.features[1].geometry.coordinates[0][i][1] };\n eiendom.push(tempobj);\n}\n//node.warn(plen);\nflow.set(\"plen\", plen);\nflow.set(\"eiendom\", eiendom);\nreturn msg;","outputs":1,"timeout":0,"noerr":0,"initialize":"","finalize":"","libs":[],"x":880,"y":1180,"wires":[["3f628673e320b6ef"]]},{"id":"7a3a31186dd532c5","type":"file in","z":"c0e718067b85a8cc","g":"f51cf63d67a5a2e5","name":"","filename":"/home/nodered/PlenV4Eiendom.geojson","filenameType":"str","format":"utf8","chunk":false,"sendError":false,"encoding":"none","allProps":false,"x":390,"y":1180,"wires":[["7a8aba7d1b2233c3"]]},{"id":"65861ab97117862e","type":"inject","z":"c0e718067b85a8cc","g":"f51cf63d67a5a2e5","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":130,"y":1180,"wires":[["7a3a31186dd532c5"]]}] uPython programmet: import ubinascii import machine from umqtt.simple import MQTTClient from machine import UART import network, utime, machine import os import uasyncio import json uart = UART(2, 9600) SSID = "WLAN-SSID" SSID_PASSWORD = "WLAN-PWD" filenum = 0 SERVER = "172.16.0.94" CLIENT_ID = ubinascii.hexlify(machine.unique_id()) TOPIC = "Ambrogio/Robertino/pos" gps_target = "$GPGGA" gps_target = gps_target.encode('ASCII') async def readAndSend(): global filenum while True: await uasyncio.sleep_ms(1000 * 30) #Run every 30 sec sta_if = network.WLAN(network.STA_IF) if not sta_if.isconnected(): print('connecting to network...') sta_if.active(True) sta_if.connect(SSID, SSID_PASSWORD) while not sta_if.isconnected(): print("Attempting to connect....") await uasyncio.sleep_ms(1000) print('Connected! Network config:', sta_if.ifconfig()) mqttClient = MQTTClient(CLIENT_ID, SERVER, keepalive=60) mqttClient.connect() print(f"Connected to MQTT Broker: {SERVER}") locfilenum = filenum # Store current filenumber filenum = filenum + 1 # New filenumber for logging filename = 'data'+str(locfilenum)+'.txt' if filename in os.listdir(): print('Found '+ filename) f = open(filename, 'r') line = f.readline() while line != "": print(filename+", MQTT:"+line.strip()) mqttClient.publish(TOPIC, str(line)) await uasyncio.sleep_ms(500) line = f.readline() print("file finished") print("Removing ", filename) os.remove(filename) mqttClient.disconnect() print("Disconnect from wlan") sta_if.disconnect() def left(s, amount): return s[:amount] async def main(): global filenum print("Cleanup old files...") # Delete all existing data files on startup for f in os.listdir(): if left(f, 4) == "data": print("Deleting: ", f) os.remove(f) print("All data files deleted.") while True: if uart.any() > 0: await uasyncio.sleep_ms(100) gps_msg = uart.readline() if len(gps_msg) >= 60: gps_type = left(gps_msg, 6) if gps_type == gps_target: utc = gps_msg[7:13] lat = gps_msg[17:27] lon = gps_msg[30:41] newmsg = {} newmsg['utc'] = utc newmsg['lat'] = lat newmsg['lon'] = lon jmsg = json.dumps(newmsg) # Create JSON object for datafile #if lat >= '5923' and lat <= '5924' and lon >= '513' and lon <= '514': filename = 'data'+str(filenum)+'.txt' print(filename+", GPS:"+jmsg) f = open(filename, 'a') f.write(jmsg) f.write("\r\n") f.close() await uasyncio.sleep_ms(200) # Start hele sulamitten event_loop = uasyncio.get_event_loop() event_loop.create_task(main()) event_loop.create_task(readAndSend()) event_loop.run_forever() ESP32 forsynes pt via USB fra en batteribank og GPS forsynes fra Vin og GND pinnene på ESP32. GPS-TX går til ESP-RX2, GPS-RX til ESP-TX2. Har sett i minst ett eksempel på nett at NEO6 GPSen forsynes fra 3.3V men spec sier at NEO6 skal ha 3.7-5V. Prøvde først med 3.3V og det virket men fikk en del mangelfulle setninger fra GPS så med 5V gikk det myyyyye bedre... Så langt ha jeg brukt en 10Ah batteribank og den holder liv i greiene i mange døgn men skal hacke meg inn på strømforsyningen i klipperen etterhvert...- 14 svar
-
- 5
-
-
Vært ute og lekt litt med prototype ESP32 GPS tracker på plenklipperen... ESP32 med NEO6 GPS. GPS blir logget til fil og hvert minutt kobles opp til wlan og laster filen opp linje for linje til MQTT. Deretter tar Node-RED over og plotter i en chartnode slik: Dette er første kjøring og selv om jeg mente å ta hensyn til wlan dødsoner så har det ikke virket så en smule fingjennomgang av uPython programmet må til. Jeg får også litt for ofte noen GPS-setninger som inneholder feil data så det må sjekkes opp i også... Men som et første forsøk så ser det bra ut, akkurat slik som tenkt før klipperen havnet i en wlan dødsone så tok den ikke opp igjen kommunikasjonen da den var ute av sonen...
-
Har slitt såpass mye med Arduino IDE siste året (noen bibliotek jeg enten ikke har eller har dobbelt opp av) selv etter full sletting og reinstallering at jeg så meg nødt til å bruke MicroPython på mitt siste ESP32 prosjekt... MicroPython/Thonny er nok en del mer begrenset men det funker i alle fall fint til MQTT o.l....
-
Morsomme disse her politikerne...: Også Enova har nemlig redusert støtteordningene til solkraft. – Vi har ikke gjort endringer som gjør det mer uattraktivt å produsere strøm selv, sier energiminister Terje Aasland. – Enova sine støtteordninger har jo gått ned? – Men den er fremdeles til stede, sier han. Aasland mener regjeringen er godt i gang med å legge til rette for solkraft. Dette her tror han ikke på selv en gang... Sakset herfra: https://www.nrk.no/vestfoldogtelemark/mdg-mener-regjeringens-solenergipolitikk-er-en-fiasko-1.17037497
-
Da tok denne saken en litt annen retning enn jeg hadde tenkt... igjen... L250 klipperen jeg hadde kjøpt klarte Posten å rote til slik at Finn kansellerte handelen og selger solgte til en annen i stedet... Der var en annen brukt Ambrogio klipper på Finn og den fikk jeg til en SVÆRT god pris så får vi se om Posten klarer jobben denne gang... Det ble en Ambrogio L200 Basic denne gang. Ikke på noen måte førstevalget da den ikke har GPS/GPRS men jeg har nå en liten plan om å snekre meg en ESP32-GPS-tracker slik at jeg kan holde litt øye med den... Men hvor lenge var Adam i Eva? Mens jeg skrev dette innlegget fikk jeg melding fra selger om at klipperen var forsvunnet... Andre klipperen jeg har kjøpt og ikke fått på 1 uke...
-
Du kan legge til og slette brukere (pinkoder) samt låse/låse opp fra Zigbee og det er vel alt... Håper de tar for seg resten av listen din, @Helgemor, så blir det bra.
-
Skiftet ut Yale v2n med en brukt Heimgard HT-SLM-2 dørlås i håp om å få litt mer pålitelig kontroll på låsen. Låsen ser i utgangspunktet helt super ut, poppet opp i Zigbee2MQTT på første forsøk og kan legge inn koder og styre låsen. Så langt alt vel... Men jeg liker å ha døren opplåst på dagtid når jeg springer ut og inn hele tiden og gjerne automatisk låsing om natten. Jeg kan jo programmere låsing i Node-RED på en enkel måte men problemet er at når jeg slår av automatisk låsing så KAN DEN IKKE låses manuelt innefra uten via zigbee. Der er en knapp på innsiden som det ville vært naturlig at låste låsen men den låser bare det innvendige håndtaket, døren er like ulåst i det utvendige håndtaket. Jeg ser et poeng i å låse det innvendige håndtaket som barne/hundesikring men det blir en litt sær funksjon i forhold til å kunne låse døren på begge sider. Det utvendige håndtaket kan jo låses utenfra men det hjelper ikke når jeg er inne... Det blir i overkant dumt å sette opp en egen fjernkontroll via Node-RED kun for å låse døren men det er det jeg må gjøre pr. i dag. Automatisk låsing kan oppheves for en time ved å holde knappen på innsiden inne i 15 sekund. Så lang tid er for en funksjon som bare sjelden skal brukes... Et kort trykk burde låse døren fra begge siden i mitt hode. Har jeg misforstått noe vesentlig her eller har låsen blitt konstruert på en veeeeeeldig sen lørdagskveld?
-
Skiftet ut Yale Doorman v2n med så-som-så Verisure integrasjon med Heimgard HT-SLM-02. Gikk rett inn i Zigbee2MQTT på første forsøk og enkel å styre og programmere brukere direkte fra Node-RED. Kjøpte låsen brukt på Finn og der fulgte med Heimgard HUB men hva kan jeg bruke den til? Regner med jeg han styre låsen fra app men kan den brukes samtidig som jeg bruker Zigbee2MQTT?
-
Merker meg i videosnutten over at der er tydelig "klippelyd" men den er tilnærmet lydløs i praksis. En ser jo også i videoen at gresset er både høyt og vått så det kan være det som ga litt ekstra lyd. Så langt har L15 gjort en god jobb men jeg ser at den blir litt snau for min 750m2 og ganske kompliserte plen så der er en brukt 2018 modell Ambrogio L250 Elite på vei i posten. Denne er specet til 3200m2 så det skal holde...: L15 fikk firmware oppgradering (fra ver 44xx til ver 70xx) i går og det ga en merkbart mer pålitelig klipping. Det er lett å undervurdere L15 siden den er så knøtttliten men den er spesifisert for 600m2 og selv om den ble litt snau for min plen så står den ikke langt tilbake for Husqvarna 315x som er specet til 1600m2. Hadde en stopp i noen dager på Husqvarnaen i sommer og det gjorde at gresset vokste litt i overkant mye. Da den var i gang igjen la den etter seg en masse striper med klippet gress som etterhvert ble gult. Den brukte over en mnd før dette var borte igjen. Ambrogio driver med kompostklipping og det er svært uvanlig at den legger igjen synlige spor etter høyt gress. Har måttet jobbe en del med kantledning, litt fordi Ambrogio og Husqvarna forholder seg litt forskjellig til kantledningen og litt fordi hagen er blitt ganske overgrodd utenfor ledningen samt at jeg har hatt ønske om å optimalisere klippingen flere steder men har sett at 315x ikke vil klare å kjøre de stedene jeg vil. En litt fancy sak med Ambrogio er at en kan "programmere" klipperens oppførsel med kantledningen: Ved å legge en loop ut fra kantledningen i en lengde av 1-2 meter med 5 cm avstand 90 grader ut fra kantldn. vil det gi klipperen beskjed om å følge kantledningen slavisk de neste ca 10 metrene dersom den er i "følg kantledning"-modus. Dette er nyttig når den skal gjennom trange passasjer og også i sammenheng med neste "program". Legg kantledningen i en trekant der kortsidene er 40cm og langsiden er 50cm så vil det få klipperen til å dreie 90 grader, kjøre rett fram til den treffer kantledningen på andre siden og på den måten kjøre forbi "unødvendige" deler av plenen når den er på vei til ladestasjonen. Har tegnet inn noen slike "programmer" her: I utgangspunktet går alltid klipperen med klokken langs kantledningen for å finne ladestasjon. Denne programmeringen vil kunne spare mye unødvendig kjøretid. Ellers har jeg helt sluttet med å legge kantledning oppå plenen og feste med teltplugger. Nå skjærer jeg en fure med 5" vinkelsliper og dytter ledningen nedi med dette lille verktøyet jeg fant på printables.com:
- 21 svar
-
- 2
-
-
Shelly Plug S Vanligvis styres saker og ting via MQTT med et topic som <Topic>/status/switch:0/set men Shelly har sine egne ideer: Status: <Topic>/status/switch:0 Styring: Send on/off til: <Topic>/command/switch:0
-
Da er omsider den nye Ambrogio L15 Deluxe oppe og går. Helt ny og ubrukt maskin kjøpt for en meeeeget god pris på finn.no. Ble litt startvansker men importør i Notodden var behjelpelig. Min maskin er bygget i 2019 og en oppdatering av app i starten av dette året gjorde at jeg ikke fikk kontakt. Installerte en app fra i fjor og da ordnet det seg. Så langt har jeg ikke klart å oppgradere firmware i klipperen men i nøden er der et servicesenter få mil herfra som kan bistå. Skal være mulig med oppgradering direkte fra app men det litt store spranget fra 2019 ti 2024 uten oppdateringer lager nok litt krøll... Første kjøring i meeeeget vått gress: Litt ledninger som ikke er nedgravd bak ladestasjonen så jeg måtte manuelt holde den unna... Bare 1 cm mose der så ikke så lett å grave ned kantledningen...
- 21 svar
-
- 1
-
-
Prediksjon av sol opp i mot strømpriser.
SveinHa svarte på Decibel sitt emne i Strømsparing og strøm-overvåkning
Første bud må jo være å ha et solvarsel som er til å stole på. Jeg har 2 soltjenester som jeg prøver å styre etter (forecast.solar og solcast.com.au) men resultatet er nå ganske så som så... Ideelt sett skulle der vært små avvik men når jeg har en max produksjon på rundt 90 kWh og avvikene mellom varsel og reell produksjon er helt opptil 90 kWh i verste fall så er det ikke mye brukende... Antar yr/storm også har tilsvarende tjenester men når jeg manuelt dobbeltsjekker med de så er de ikke noe mer imponerende så jeg har ikke lagt arbeid i å implementere de... For å kunne planlegge evt strømkjøp neste døgn er disse verdiene lagret kl 22:00 -
Etter begge enheter er koblet opp mot kontroller skal du kunne sette assosiasjoner/bindinger direkte mellom enhetene og det mener jeg skal funke utenom kontrolleren. Vet ikke nøyaktig hvordan det gjøres i HA men det kan sikkert andre her svare på.
- 34 svar
-
- 1
-
-
Hva skjer med innestående kWh på strømkontoen ved skifte?