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

mongojarle

Medlemmer
  • Innlegg

    60
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av mongojarle

  1. 23 minutes ago, OlavT said:

     

    Har du restartet den i det siste? Min ble trøblete etter et strømbrudd? Kan du teste nye connections til den?

     

    Ser serveren min har en uptime på 17 dager, så da er det vel 17 dager siden strømmen gikk. Det stemmer overens med strømforbruk-logging, og også SMS fra e-verket.
    Testet å hente ut noe data fra jobb-pcen min her nå, via modbus poll program. Det funket fint det, og nodered henter også enda ut data.

  2. Tja, jeg bruker ikke Homey, men jeg kalkulerer egne prisnivåer, 5 nivåer.

    Disse igjen viser jeg som tekst på mitt dashboard, men har også en RGB lyspære i en liten bordlampe på kjøkkenet som endrer seg etter prisnivå gjennom dagen.

     

    Uansett, jeg kalkurerer gjennomsnitt av strømprisen (blå strek), og så kalkulerer jeg standardavvik. Så har jeg definert nivående slik:

    LAVLAV (mørk grønn): Strømpris < 1,5 * standardavvik.

    LAV (lys grønn): Strømpris < 0,75 * standardavvik.

    HØY (lys rød): Strømpris > 0,75 * standardavvik.

    HØYHØY (mørk rød): Strømpris > 1,5 * standardavvik.

    MEDIUM (gul) er alt annet, som blir mellom lav og høy.

     

    Prisen jeg går utifra er inkludert alle avgifter og også differensiert nettleie (dag og natt).

     

    Tallet 0,75 og 1,5 måtte jeg prøve meg litt frem for å finne med tanke på hva jeg ville skulle skje på de forskjellige nivåene... F.eks er VVB bare på her ved LAV eller LAVLAV nivå. Varmekabler i betonggulv er av ved HØY og HØYHØY.

    Jeg kalkulerer også nivåene på nytt med en gang nye strømpriser er tilgjengelige, og tar da med begge døgnene (i dag og i morgen).

    image.thumb.png.5b9b5c9e481ef2c210e1d79e509f344f.png

     

    Dashboard:

    image.png.af4162da68d8f99bc9d3873dfb8f7738.png

  3. Jeg er mye mer komfortabel med javascript enn YAML også.

     

    Men, det kan bli rimelig uoversiktlig og rotete i nodered også altså. Dette er bare for å lade en bil... Og det er ikke ferdig, mangler noen funksjoner jeg gjerne ville hatt.

    image.thumb.png.0da091ce4da563cc23e1a279f5211ff2.png

  4. Ser i manualen til Pow-K byggesettet at det er lagt inn pads for å jumpe GPIO12 eller UART. Min Pow-K har ikke en slik.

     

    Jeg så ikke at jeg hadde 8E1 i stedenfor 8N1, men det har jeg endret nå. Fortsatt ikke noe data...

     

    edit: UART var riktig for min dings. Funker nå.

    Takk for hjelpen! Alltid skummelt å oppdatere FW over wifi sånn...

    • Like 1
  5. Hadde en gammel rPi1 som jeg brukte, så nå har jeg lagt inn aller nyeste (2.1.6), og konfigurert den på nytt. Så nå funker alt, bortsett fra data fra HAN. Jeg får ikke valgt måler i configen, den står til unknown, og ingen data kommer.

    Har Kamstrup, og den har jo fungert før. Pow-K v.1.1. Det er vel GPIO12 den mottar på?

     

    Eller var det sånn at jeg måtte vente på en heltime avlesning tro...?

     

    gpio.png

    måler.png

  6. Den har alltid hatt samme ip, selv om strømmen har gått eller jeg har restertet router. Lurer på om jeg valgte fast IP på den hvis det går... 

     

    Det lyser svakt blått litt inni den hvert sekund, og hvert tiende sekund kommer et lystog, sikkert når måler pusher data.

     

    Den har ikke startet i AP mode.

     

    Nappet den ut, ventet 1min og satte den inn igjen, fortsatt det samme.

  7. Jeg har også Agder Energi.

     

    Har jo endel spesifikt til mitt oppsett for å få dette til å fungere her. Bruker status fra Teslamate for å starte logikken når bilen lader (https://github.com/adriankumpf/teslamate). Så leser jeg ut gjennomsnitt forbruk fra InfluxDB, og leser ut momentan-forbruk fra HAN til MQTT adapteret, lagret i nodered som en global variabel (AMSleser.no). Så henter jeg spenningen til laderen direkte fra laderen som jeg henter til flow variabler fra InfluxDB.

     

    Her er alt i hvertfall:

    Spoiler

    [
        {
            "id": "379113ea02e97e88",
            "type": "mqtt in",
            "z": "6d532fdb2fbe2a2d",
            "name": "",
            "topic": "teslamate/cars/1/state",
            "qos": "1",
            "datatype": "auto",
            "broker": "",
            "nl": false,
            "rap": true,
            "rh": 0,
            "inputs": 0,
            "x": 160,
            "y": 380,
            "wires": [
                [
                    "b816cee23a4ebaf7"
                ]
            ]
        },
        {
            "id": "b816cee23a4ebaf7",
            "type": "rbe",
            "z": "6d532fdb2fbe2a2d",
            "name": "",
            "func": "rbe",
            "gap": "",
            "start": "",
            "inout": "out",
            "septopics": true,
            "property": "payload",
            "topi": "topic",
            "x": 150,
            "y": 420,
            "wires": [
                [
                    "54a71ea954e0696f"
                ]
            ]
        },
        {
            "id": "54a71ea954e0696f",
            "type": "switch",
            "z": "6d532fdb2fbe2a2d",
            "name": "",
            "property": "chargeCurrentAuto",
            "propertyType": "flow",
            "rules": [
                {
                    "t": "true"
                }
            ],
            "checkall": "true",
            "repair": false,
            "outputs": 1,
            "x": 270,
            "y": 420,
            "wires": [
                [
                    "1fd01889170ed76d"
                ]
            ]
        },
        {
            "id": "1fd01889170ed76d",
            "type": "switch",
            "z": "6d532fdb2fbe2a2d",
            "name": "",
            "property": "payload",
            "propertyType": "msg",
            "rules": [
                {
                    "t": "eq",
                    "v": "charging",
                    "vt": "str"
                },
                {
                    "t": "neq",
                    "v": "charging",
                    "vt": "str"
                }
            ],
            "checkall": "true",
            "repair": false,
            "outputs": 2,
            "x": 390,
            "y": 420,
            "wires": [
                [
                    "8bdd449d77c68dae"
                ],
                [
                    "6550cce8913244af"
                ]
            ]
        },
        {
            "id": "6550cce8913244af",
            "type": "change",
            "z": "6d532fdb2fbe2a2d",
            "name": "",
            "rules": [
                {
                    "t": "set",
                    "p": "reset",
                    "pt": "msg",
                    "to": "true",
                    "tot": "bool"
                }
            ],
            "action": "",
            "property": "",
            "from": "",
            "to": "",
            "reg": false,
            "x": 360,
            "y": 460,
            "wires": [
                [
                    "51b59363e15fa13b"
                ]
            ]
        },
        {
            "id": "c4c605e5f7e0749c",
            "type": "ui_switch",
            "z": "6d532fdb2fbe2a2d",
            "name": "amps auto",
            "label": "",
            "tooltip": "Charging current auto, also disables manual changes",
            "group": "56e3f7e8.beb4e8",
            "order": 4,
            "width": 1,
            "height": 1,
            "passthru": false,
            "decouple": "false",
            "topic": "chrgcurntauto",
            "topicType": "str",
            "style": "",
            "onvalue": "true",
            "onvalueType": "bool",
            "onicon": "fa-magic",
            "oncolor": "white",
            "offvalue": "false",
            "offvalueType": "bool",
            "officon": "fa-magic",
            "offcolor": "gray",
            "animate": true,
            "className": "",
            "x": 130,
            "y": 500,
            "wires": [
                [
                    "ac186d288849e54b"
                ]
            ]
        },
        {
            "id": "ac186d288849e54b",
            "type": "function",
            "z": "6d532fdb2fbe2a2d",
            "name": "",
            "func": "if (msg.payload == true) {\n    flow.set('chargeCurrentAuto', true)\n    msg.enabled = false;\n} else {\n    flow.set('chargeCurrentAuto', false)\n    msg.enabled = true;\n}\ndelete msg.payload;\nreturn msg;",
            "outputs": 1,
            "noerr": 0,
            "initialize": "",
            "finalize": "",
            "libs": [],
            "x": 280,
            "y": 500,
            "wires": [
                [
                    "d29cd4f5c730d6b2"
                ]
            ]
        },
        {
            "id": "d29cd4f5c730d6b2",
            "type": "ui_slider",
            "z": "6d532fdb2fbe2a2d",
            "name": "Charging A setpoint",
            "label": "",
            "tooltip": "Set maximum charging current",
            "group": "56e3f7e8.beb4e8",
            "order": 3,
            "width": 7,
            "height": 1,
            "passthru": false,
            "outs": "end",
            "topic": "current",
            "topicType": "str",
            "min": "5",
            "max": "28",
            "step": "1",
            "className": "",
            "x": 450,
            "y": 500,
            "wires": [
                [
                    "a614b7b19e6c6093"
                ]
            ]
        },
        {
            "id": "a614b7b19e6c6093",
            "type": "change",
            "z": "6d532fdb2fbe2a2d",
            "name": "",
            "rules": [
                {
                    "t": "set",
                    "p": "command",
                    "pt": "msg",
                    "to": "setChargingAmps",
                    "tot": "str"
                },
                {
                    "t": "move",
                    "p": "payload",
                    "pt": "msg",
                    "to": "commandArgs.amps",
                    "tot": "msg"
                }
            ],
            "action": "",
            "property": "",
            "from": "",
            "to": "",
            "reg": false,
            "x": 640,
            "y": 500,
            "wires": [
                [
                    "58189fee87b3d64d"
                ]
            ]
        },
        {
            "id": "51b59363e15fa13b",
            "type": "delay",
            "z": "6d532fdb2fbe2a2d",
            "name": "",
            "pauseType": "delay",
            "timeout": "30",
            "timeoutUnits": "seconds",
            "rate": "1",
            "nbRateUnits": "1",
            "rateUnits": "second",
            "randomFirst": "1",
            "randomLast": "5",
            "randomUnits": "seconds",
            "drop": false,
            "allowrate": false,
            "outputs": 1,
            "x": 560,
            "y": 460,
            "wires": [
                [
                    "8bdd449d77c68dae"
                ]
            ]
        },
        {
            "id": "8bdd449d77c68dae",
            "type": "influxdb in",
            "z": "6d532fdb2fbe2a2d",
            "influxdb": "",
            "name": "poweraverage",
            "query": "SELECT mean(\"value\") FROM \"technical\" WHERE (\"area\" = 'electricity' AND \"type\" = 'realtimePower') AND time > now() - 1h GROUP BY time(60m)",
            "rawOutput": false,
            "precision": "",
            "retentionPolicy": "",
            "org": "organisation",
            "x": 560,
            "y": 420,
            "wires": [
                [
                    "51b59363e15fa13b",
                    "743111551270fafd"
                ]
            ]
        },
        {
            "id": "743111551270fafd",
            "type": "function",
            "z": "6d532fdb2fbe2a2d",
            "name": "",
            "func": "let powerUse = global.get('realtimePower');\nlet powerUseAvg = msg.payload['1'].mean;\nlet chargerCurrent = flow.get('chargerCurrent');\nlet chargerVoltage = flow.get('chargerVoltage');\nlet chargePower = 0;\nlet chargeAmp = 0;\nlet tesla = {};\n\n// if the house average for this hour is less than limit, set max amps\n// else... max allowed power draw of house - how much is actually used\n// convert watt to amps for three phase, take the voltage at charger + 3% safety factor.\nif (powerUseAvg < 9600) {\n    chargePower = 28;\n} else {\n    chargePower = 9750 - powerUse           // 9750W = 24,4A\n    chargeAmp = Math.floor(chargePower / ((chargerVoltage * 1.03) * Math.sqrt(3)) + chargerCurrent)\n}\n\n// minimum charging amps car allows is 5A\nif (chargeAmp < 5) {\n    chargeAmp = 5;\n}\n\nmsg.powerUseAvg = powerUseAvg;\nmsg.chargerVoltage = chargerVoltage * 1.03;\nmsg.chargerCurrent = chargerCurrent;\nmsg.powerUse = powerUse;\nmsg.chargePower = chargePower;\nmsg.chargeAmp = chargeAmp;\n\n// if new charge amp is equal to previous charge amp, do not send anything\n// OR... if the difference in available wattage is +-100W, do not bother to update amps to car.\n// OR... if charge current auto not selected (then the HMI-slider will select chargecurrent)\nif ((chargeAmp == chargerCurrent) || (Math.abs(chargePower) < 100)) {\n    return [msg, null];\n}\n\n\n\ntesla.command = 'setChargingAmps';\ntesla.commandArgs = {'amps': chargeAmp};\nreturn [msg, tesla];",
            "outputs": 2,
            "noerr": 0,
            "initialize": "",
            "finalize": "",
            "libs": [],
            "x": 740,
            "y": 420,
            "wires": [
                [
                    "cdc9b580d777c9f0"
                ],
                [
                    "58189fee87b3d64d"
                ]
            ],
            "outputLabels": [
                "Logging",
                "Tesla"
            ]
        },
        {
            "id": "58189fee87b3d64d",
            "type": "tesla-api",
            "z": "6d532fdb2fbe2a2d",
            "teslaConfig": "",
            "command": "",
            "name": "",
            "vehicleID": "",
            "autoWakeUp": true,
            "x": 840,
            "y": 300,
            "wires": [
                [
                    "70e132e81558ec3d"
                ]
            ]
        },
        {
            "id": "18e3ec61a1513302",
            "type": "mqtt in",
            "z": "6d532fdb2fbe2a2d",
            "name": "",
            "topic": "teslamate/cars/1/charger_actual_current",
            "qos": "1",
            "datatype": "auto",
            "broker": "",
            "nl": false,
            "rap": true,
            "rh": 0,
            "inputs": 0,
            "x": 200,
            "y": 540,
            "wires": [
                [
                    "d29cd4f5c730d6b2"
                ]
            ]
        },
        {
            "id": "56e3f7e8.beb4e8",
            "type": "ui_group",
            "name": "Charging",
            "tab": "adafd97a.aa3488",
            "order": 1,
            "disp": true,
            "width": "8",
            "collapse": false,
            "className": ""
        },
        {
            "id": "adafd97a.aa3488",
            "type": "ui_tab",
            "name": "Tesla",
            "icon": "fa-car",
            "disabled": false,
            "hidden": false
        }
    ]

     

    Alt som har med lading av bilen å gjøre ser slik ut... Begynner å bli rimelig uoversiktlig.

     

    Screenshot 2022-07-17 154600.png

    Screenshot 2022-07-17 155034.png

  8. 15 hours ago, picnic84 said:

    TeslaJS... interessant.. Hvilket hjemmeautomasjonssystem er det du integrerer dette i, og hvordan?

     

    EDIT: Ser at man faktisk kan justere ampere via HACS integrasjonen for Tesla. Godt gjemt...

    https://github.com/alandtse/tesla/discussions/85#discussion-3646150

    ..og charging rate i ampere skal også være tilgjengelig via sensor

    https://github.com/alandtse/tesla/issues/86#issuecomment-950630178

     

    ...huff, da fant man nesten et alibi for å bestille ams leser til en tusenlapp også

    Tja, du kan vel implementere det hvor du vil da, men jeg bruker NodeRed og da bare denne noden, som igjen bruker TeslaJS: https://flows.nodered.org/node/node-red-contrib-tesla

     

    Nå har jeg forresten gjort det så jeg regner ut inneværende times gjennomsnitt strømforbruk. Så hvis jeg starter lading midt i en time, så kan jeg guffe på med max ladehastighet til snittet nærmer seg 10kW grensen, for så å sette ned strømtrekket på laderen først da. Dette for å utnytte timer med lav strømpris maksimalt (og lade raskest).

  9. Jeg har også en MY og Tesla lader v3, og jeg kan sette ladestrøm fra app, og fra API (https://github.com/mseminatore/TeslaJS).

     

    Jeg prøver nå å få totalt strømtrekk i huset til 9500W max, så laderen skal få det som gjenstår av 9500W når alt annet i huset tar sitt... Og dermed regne ut ampere tilgjengelig for lader, og sende det til bilen.

    Hvor ofte er det hensiktsmessig å sende oppdatert tilgjengelig strøm til bilen? Jeg får jo oppdatert husets strømtrekk hvert 10.sekund, men det føles veldig ofte. Noen som vet hvor ofte f.eks Tibber oppdaterer bilene når man har integrasjon mot elbillader?

     

    Grunnen til 9,5kW er jo å komme under 10kW grensen til LOS, som jo øker nettleie med nesten 375kr.

     

    edit:

    Satte oppdatering til 30sek nå foreløpig, og det fungerer selvfølgelig fint. Det betyr jo at jeg kan trekke mer enn 10kW i opptil 30sek, men det kan jo også gå andre veien, så jevner vel seg ut til å bli lavere snitt enn 10kW uansett. Kunne kanskje satt opp til 1min.

     

    Satte også opp grensen til 9,6kW, og 100W hysterese.

  10. Jeg kjører bare NodeRed for automasjon. Men da sammen med mqtt, influxdb, zigbee2mqtt og zwavejs2mqtt.

    Fungerer helt utmerket det. Prøver også å ha så mye som mulig lokalt, og ikke på Internett. Men henting av strømpris og noen API (varmepumpe og tesla) må over Internett desverre. 

    Dashboardet til NR har sine mangler, men et annet poeng med huset mitt er at ting skal skje av seg selv, og man skal i liten eller ingen grad trenge dashboard. Man skal også styre alt manuelt (lys og varme med bryter på vegg som dumhus).

    Kjører hver enkelt app som docker container på en Synology NAS. Skal jeg ha tilgang utenfor hjemmet, så må jeg koble til VPN. 

×
×
  • 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.