Sponsored

johstacy

Well-Known Member
First Name
John
Joined
Oct 29, 2022
Threads
17
Messages
223
Reaction score
259
Location
Washington
Vehicles
R1T
Occupation
IT
I probably already know the answer to this but this API is read only we can't send automation commands to it can we?
Sponsored

 

OverZealous

Well-Known Member
Joined
Oct 19, 2021
Threads
8
Messages
581
Reaction score
1,459
Location
Louisville, Kentucky
Vehicles
2022 R1T LE, 2023 R1S Quad-Adventure
Occupation
Product Manager / Front-End Developer
Wonder if that means the wiring is still there for it.
Probably has the wiring for it just like the Frunk has the 12v wiring for the outlet that they no longer install...
Given how the integration is set up, they are mostly just pulling down any known pieces of data. There isn't a lot of sophistication on these sensors at this time, so they aren't showing whether there is or isn't a feature.

You'll also notice things like "Heated Seat 3rd Row Left" and "…Right", as well as "Liftgate", because these are available for R1S's.

The guys maintaining this plugin are amazing, and have done a ton of work trying to reverse engineer the API, mostly blindly. There's no docs and the app's commands are encrypted which makes it basically impossible to peek at while the message is on the wire.
 

johstacy

Well-Known Member
First Name
John
Joined
Oct 29, 2022
Threads
17
Messages
223
Reaction score
259
Location
Washington
Vehicles
R1T
Occupation
IT
Given how the integration is set up, they are mostly just pulling down any known pieces of data. There isn't a lot of sophistication on these sensors at this time, so they aren't showing whether there is or isn't a feature.

You'll also notice things like "Heated Seat 3rd Row Left" and "…Right", as well as "Liftgate", because these are available for R1S's.

The guys maintaining this plugin are amazing, and have done a ton of work trying to reverse engineer the API, mostly blindly. There's no docs and the app's commands are encrypted which makes it basically impossible to peek at while the message is on the wire.
I agree really amazing work I was hoping HA would get a Rivian plugin..... I wonder if the charger attached to the account will eventually have data we can pull maybe then we can pivot the data from the charger and the miles driven to automate cost projections and stuff like that
 

aw113sgte

Well-Known Member
Joined
May 11, 2021
Threads
18
Messages
270
Reaction score
491
Location
WI
Vehicles
22 R1t
I spent a few hours on this. Apparently there are different versions of home assistant, the one I got in docker didn't have addon support. Adding hacs I couldn't figure out as it seems to require ssh access but to the docker, not the NAS itself. At that point I said screw it, too many complicated steps for a solution that is likely to be broken next update.
Then I went on a trip, in 15 degrees, cold soaked battery, snow tires, 190 miles. Estimated I would have 94 miles and ended with 75. That's good enough for me.
 

Sponsored

jshaff

Well-Known Member
First Name
jason
Joined
May 4, 2022
Threads
7
Messages
87
Reaction score
62
Location
MA
Vehicles
2022 R1T
Occupation
Cybersecurity
I spent a few hours on this. Apparently there are different versions of home assistant, the one I got in docker didn't have addon support. Adding hacs I couldn't figure out as it seems to require ssh access but to the docker, not the NAS itself. At that point I said screw it, too many complicated steps for a solution that is likely to be broken next update.
Then I went on a trip, in 15 degrees, cold soaked battery, snow tires, 190 miles. Estimated I would have 94 miles and ended with 75. That's good enough for me.
Yea, i probably wouldn't go through the effort of setting up HA just for this use. But i did get an APU key from Iterno and can confirm that everything works as expected.

Will certainly make me feel better about taking trips up north where non-tesla L3 charging is sparse.
 

Zoidz

Well-Known Member
First Name
Gil
Joined
Feb 28, 2021
Threads
105
Messages
3,122
Reaction score
6,866
Location
PA
Vehicles
23 R1S Adv, Avalanche, BMWs-X3,330cic,K1200RS bike
Occupation
Engineer
Hmm, never used HA or node red, I do have a Synology Nas running at home, wonder if that would work.
Yes, HA will run on Synology, either as a VM or in a Docker container. I'm running HA in a VM on a Win 11 box. I would prefer to use a Pi but I have some weather station data logging software that only runs in Windows, so I just use it as the host for all my automation software. 🙄

I run a Universal Devices home controller. There's a Tesla Polyglot Node Server available, but nothing for Rivian yet. I've been kicking around the idea of writing a Rivian Noder Server for ISY. In my spare time, lol.
 

zefram47

Well-Known Member
First Name
Aaron
Joined
Feb 6, 2022
Threads
13
Messages
2,019
Reaction score
3,157
Location
Denver, CO
Vehicles
R1T, C6 Corvette GS
Occupation
Software Engineer
Clubs
 
I would prefer to use a Pi but I have some weather station data logging software that only runs in Windows, so I just use it as the host for all my automation software. 🙄
Not sure what weather station you have, but you ought to look into WeeWX and see if there's either native support or if someone has developed a plugin for it. I've been using it since 2019 when Acurite stopped supporting their network link and used a raw SDR plugin to grab data over the air instead. I've since switched to a WeatherFlow Tempest unit and have been happy with it so I can continue sending data to various 3rd party sites like WeatherUnderground and CWOP.
 

Zoidz

Well-Known Member
First Name
Gil
Joined
Feb 28, 2021
Threads
105
Messages
3,122
Reaction score
6,866
Location
PA
Vehicles
23 R1S Adv, Avalanche, BMWs-X3,330cic,K1200RS bike
Occupation
Engineer
Not sure what weather station you have, but you ought to look into WeeWX and see if there's either native support or if someone has developed a plugin for it. I've been using it since 2019 when Acurite stopped supporting their network link and used a raw SDR plugin to grab data over the air instead. I've since switched to a WeatherFlow Tempest unit and have been happy with it so I can continue sending data to various 3rd party sites like WeatherUnderground and CWOP.
I've got a Davis Vantage Pro 2. I'm using their Windows WeatherLink.exe to push data to WeatherLink and CWOP, and also using it to historically log data on the local drive for my farm. It's the local historical data logging that's missing from the plugins....
 

zefram47

Well-Known Member
First Name
Aaron
Joined
Feb 6, 2022
Threads
13
Messages
2,019
Reaction score
3,157
Location
Denver, CO
Vehicles
R1T, C6 Corvette GS
Occupation
Software Engineer
Clubs
 
I've got a Davis Vantage Pro 2. I'm using their Windows WeatherLink.exe to push data to WeatherLink and CWOP, and also using it to historically log data on the local drive for my farm. It's the local historical data logging that's missing from the plugins....
Not to derail the thread too much, but WeeWX does keep a local database as well.
 

Sponsored

Zoidz

Well-Known Member
First Name
Gil
Joined
Feb 28, 2021
Threads
105
Messages
3,122
Reaction score
6,866
Location
PA
Vehicles
23 R1S Adv, Avalanche, BMWs-X3,330cic,K1200RS bike
Occupation
Engineer

rivmok

Active Member
Joined
Jun 17, 2022
Threads
2
Messages
36
Reaction score
28
Location
MD
Vehicles
Audi RS3, Jeep Wrangler
Clubs
 
I spent a few hours on this. Apparently there are different versions of home assistant, the one I got in docker didn't have addon support. Adding hacs I couldn't figure out as it seems to require ssh access but to the docker, not the NAS itself. At that point I said screw it, too many complicated steps for a solution that is likely to be broken next update.
Then I went on a trip, in 15 degrees, cold soaked battery, snow tires, 190 miles. Estimated I would have 94 miles and ended with 75. That's good enough for me.
You can set it up without ssh access, the docs for HACS are pretty poor. I was able to get everything installed and configured via the UI.
 
OP
OP

mindstormsguy

Well-Known Member
Joined
Jan 3, 2021
Threads
10
Messages
303
Reaction score
623
Location
Seattle area
Vehicles
Some
Sorry for the delay. It has been a busy day or two. Here's the JSON for my Node-RED automation.

Code:
[
    {
        "id": "0a240ace5f73b97b",
        "type": "tab",
        "label": "Rivian HA to ABRP",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "c454216dc2556369",
        "type": "debug",
        "z": "0a240ace5f73b97b",
        "name": "debug 1",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 1080,
        "y": 1200,
        "wires": []
    },
    {
        "id": "14022a8a7c8ddd12",
        "type": "api-current-state",
        "z": "0a240ace5f73b97b",
        "name": "",
        "server": "a32a31f29e50c3e6",
        "version": 3,
        "outputs": 2,
        "halt_if": "0",
        "halt_if_type": "num",
        "halt_if_compare": "is_not",
        "entity_id": "sensor.rivian_energy_storage_charger_adjusted_soc",
        "state_type": "num",
        "blockInputOverrides": false,
        "outputProperties": [
            {
                "property": "soc",
                "propertyType": "msg",
                "value": "",
                "valueType": "entity"
            }
        ],
        "for": "0",
        "forType": "num",
        "forUnits": "minutes",
        "override_topic": false,
        "state_location": "payload",
        "override_payload": "msg",
        "entity_location": "data",
        "override_data": "msg",
        "x": 300,
        "y": 220,
        "wires": [
            [
                "a440d83de0c8e2af"
            ],
            [
                "a440d83de0c8e2af"
            ]
        ]
    },
    {
        "id": "7a1610ae1d247444",
        "type": "inject",
        "z": "0a240ace5f73b97b",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 100,
        "y": 40,
        "wires": [
            [
                "4ead270d32eb384d"
            ]
        ]
    },
    {
        "id": "b05ee18031c7316a",
        "type": "api-current-state",
        "z": "0a240ace5f73b97b",
        "name": "",
        "server": "a32a31f29e50c3e6",
        "version": 3,
        "outputs": 2,
        "halt_if": "0",
        "halt_if_type": "num",
        "halt_if_compare": "is_not",
        "entity_id": "device_tracker.rivian_telematics_gnss_position",
        "state_type": "num",
        "blockInputOverrides": false,
        "outputProperties": [
            {
                "property": "gnss_pos",
                "propertyType": "msg",
                "value": "",
                "valueType": "entity"
            }
        ],
        "for": "0",
        "forType": "num",
        "forUnits": "minutes",
        "override_topic": false,
        "state_location": "payload",
        "override_payload": "msg",
        "entity_location": "data",
        "override_data": "msg",
        "x": 280,
        "y": 320,
        "wires": [
            [
                "90d82bfaaf202136"
            ],
            [
                "90d82bfaaf202136"
            ]
        ]
    },
    {
        "id": "7a5419607ca5a690",
        "type": "api-current-state",
        "z": "0a240ace5f73b97b",
        "name": "",
        "server": "a32a31f29e50c3e6",
        "version": 3,
        "outputs": 2,
        "halt_if": "on",
        "halt_if_type": "str",
        "halt_if_compare": "is",
        "entity_id": "binary_sensor.rivian_energy_storage_charger_vehicle_charger_state",
        "state_type": "str",
        "blockInputOverrides": false,
        "outputProperties": [
            {
                "property": "charger_state",
                "propertyType": "msg",
                "value": "",
                "valueType": "entity"
            }
        ],
        "for": "0",
        "forType": "num",
        "forUnits": "minutes",
        "override_topic": false,
        "state_location": "payload",
        "override_payload": "msg",
        "entity_location": "data",
        "override_data": "msg",
        "x": 350,
        "y": 420,
        "wires": [
            [
                "2b541098e215ebf0"
            ],
            [
                "f351f1c74cba3687"
            ]
        ]
    },
    {
        "id": "2bbdf70f71bf9e1f",
        "type": "api-current-state",
        "z": "0a240ace5f73b97b",
        "name": "",
        "server": "a32a31f29e50c3e6",
        "version": 3,
        "outputs": 2,
        "halt_if": "park",
        "halt_if_type": "str",
        "halt_if_compare": "is",
        "entity_id": "sensor.rivian_dynamics_propulsion_status_prndl",
        "state_type": "str",
        "blockInputOverrides": false,
        "outputProperties": [
            {
                "property": "pndrl",
                "propertyType": "msg",
                "value": "",
                "valueType": "entity"
            }
        ],
        "for": "0",
        "forType": "num",
        "forUnits": "minutes",
        "override_topic": false,
        "state_location": "payload",
        "override_payload": "msg",
        "entity_location": "data",
        "override_data": "msg",
        "x": 370,
        "y": 800,
        "wires": [
            [
                "b167da69e56601b9"
            ],
            [
                "528037b5d00342c8"
            ]
        ]
    },
    {
        "id": "2e84984fea4471cd",
        "type": "api-current-state",
        "z": "0a240ace5f73b97b",
        "name": "",
        "server": "a32a31f29e50c3e6",
        "version": 3,
        "outputs": 2,
        "halt_if": "0",
        "halt_if_type": "num",
        "halt_if_compare": "is_not",
        "entity_id": "sensor.rivian_dynamics_odometer_value",
        "state_type": "num",
        "blockInputOverrides": false,
        "outputProperties": [
            {
                "property": "odometer",
                "propertyType": "msg",
                "value": "",
                "valueType": "entity"
            }
        ],
        "for": "0",
        "forType": "num",
        "forUnits": "minutes",
        "override_topic": false,
        "state_location": "payload",
        "override_payload": "msg",
        "entity_location": "data",
        "override_data": "msg",
        "x": 340,
        "y": 900,
        "wires": [
            [
                "75ef08d69eb660a2"
            ],
            [
                "75ef08d69eb660a2"
            ]
        ]
    },
    {
        "id": "e4c6f1202963fef4",
        "type": "api-current-state",
        "z": "0a240ace5f73b97b",
        "name": "",
        "server": "a32a31f29e50c3e6",
        "version": 3,
        "outputs": 2,
        "halt_if": "0",
        "halt_if_type": "num",
        "halt_if_compare": "is_not",
        "entity_id": "sensor.rivian_energy_storage_vehicle_energy_vehicle_range",
        "state_type": "num",
        "blockInputOverrides": false,
        "outputProperties": [
            {
                "property": "range",
                "propertyType": "msg",
                "value": "",
                "valueType": "entity"
            }
        ],
        "for": "0",
        "forType": "num",
        "forUnits": "minutes",
        "override_topic": false,
        "state_location": "payload",
        "override_payload": "msg",
        "entity_location": "data",
        "override_data": "msg",
        "x": 410,
        "y": 1000,
        "wires": [
            [
                "0c3d67e44a777549"
            ],
            [
                "0c3d67e44a777549"
            ]
        ]
    },
    {
        "id": "a440d83de0c8e2af",
        "type": "change",
        "z": "0a240ace5f73b97b",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "abrp.soc",
                "pt": "msg",
                "to": "soc.state",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 750,
        "y": 220,
        "wires": [
            [
                "b05ee18031c7316a"
            ]
        ]
    },
    {
        "id": "90d82bfaaf202136",
        "type": "change",
        "z": "0a240ace5f73b97b",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "abrp.lat",
                "pt": "msg",
                "to": "gnss_pos.attributes.latitude",
                "tot": "msg"
            },
            {
                "t": "set",
                "p": "abrp.lon",
                "pt": "msg",
                "to": "gnss_pos.attributes.longitude",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 740,
        "y": 320,
        "wires": [
            [
                "7a5419607ca5a690"
            ]
        ]
    },
    {
        "id": "2b541098e215ebf0",
        "type": "change",
        "z": "0a240ace5f73b97b",
        "name": "abrp.is_charging true",
        "rules": [
            {
                "t": "set",
                "p": "abrp.is_charging",
                "pt": "msg",
                "to": "true",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 800,
        "y": 400,
        "wires": [
            [
                "cfe681d3b9c224e6"
            ]
        ]
    },
    {
        "id": "f351f1c74cba3687",
        "type": "change",
        "z": "0a240ace5f73b97b",
        "name": "abrp.is_charging flase",
        "rules": [
            {
                "t": "set",
                "p": "abrp.is_charging",
                "pt": "msg",
                "to": "false",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 180,
        "y": 700,
        "wires": [
            [
                "c4716e5dedb1f833"
            ]
        ]
    },
    {
        "id": "b167da69e56601b9",
        "type": "change",
        "z": "0a240ace5f73b97b",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "abrp.is_parked",
                "pt": "msg",
                "to": "true",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 910,
        "y": 780,
        "wires": [
            [
                "2e84984fea4471cd"
            ]
        ]
    },
    {
        "id": "528037b5d00342c8",
        "type": "change",
        "z": "0a240ace5f73b97b",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "abrp.is_parked",
                "pt": "msg",
                "to": "false",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 910,
        "y": 820,
        "wires": [
            [
                "2e84984fea4471cd"
            ]
        ]
    },
    {
        "id": "75ef08d69eb660a2",
        "type": "function",
        "z": "0a240ace5f73b97b",
        "name": "mi to km (odo)",
        "func": "msg.abrp.odometer = 1.60934 * msg.odometer.state;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 880,
        "y": 900,
        "wires": [
            [
                "e4c6f1202963fef4"
            ]
        ]
    },
    {
        "id": "0c3d67e44a777549",
        "type": "function",
        "z": "0a240ace5f73b97b",
        "name": "mi to km (range)",
        "func": "msg.abrp.est_battery_range = 1.60934 * msg.range.state;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 880,
        "y": 1000,
        "wires": [
            [
                "e796a7b0516dfeee"
            ]
        ]
    },
    {
        "id": "abd7d01f161fbb41",
        "type": "function",
        "z": "0a240ace5f73b97b",
        "name": "Set time",
        "func": "msg.abrp.utc = parseInt(msg.payload / 1000);\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 700,
        "y": 100,
        "wires": [
            [
                "b1d22d718b934e36"
            ]
        ]
    },
    {
        "id": "e796a7b0516dfeee",
        "type": "json",
        "z": "0a240ace5f73b97b",
        "name": "build json",
        "property": "abrp",
        "action": "str",
        "pretty": false,
        "x": 180,
        "y": 1120,
        "wires": [
            [
                "59e29f544e2021e1"
            ]
        ]
    },
    {
        "id": "5530d4dedffbb2c1",
        "type": "function",
        "z": "0a240ace5f73b97b",
        "name": "build request",
        "func": "msg.method = \"get\";\nmsg.url = \"https://api.iternio.com/1/tlm/send?api_key=\" + msg.api_key + \"&token=\" + msg.token + \"&tlm=\" + msg.abrp;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 650,
        "y": 1120,
        "wires": [
            [
                "d451af60021e9b68"
            ]
        ]
    },
    {
        "id": "d451af60021e9b68",
        "type": "http request",
        "z": "0a240ace5f73b97b",
        "name": "",
        "method": "use",
        "ret": "txt",
        "paytoqs": "ignore",
        "url": "",
        "tls": "",
        "persist": false,
        "proxy": "",
        "insecureHTTPParser": false,
        "authType": "",
        "senderr": false,
        "headers": [],
        "x": 870,
        "y": 1120,
        "wires": [
            [
                "c454216dc2556369"
            ]
        ]
    },
    {
        "id": "c3d9961fc33c39af",
        "type": "server-state-changed",
        "z": "0a240ace5f73b97b",
        "name": "",
        "server": "a32a31f29e50c3e6",
        "version": 4,
        "exposeToHomeAssistant": false,
        "haConfig": [
            {
                "property": "name",
                "value": ""
            },
            {
                "property": "icon",
                "value": ""
            }
        ],
        "entityidfilter": "rivian",
        "entityidfiltertype": "substring",
        "outputinitially": true,
        "state_type": "str",
        "haltifstate": "",
        "halt_if_type": "str",
        "halt_if_compare": "is",
        "outputs": 1,
        "output_only_on_state_change": false,
        "for": "0",
        "forType": "num",
        "forUnits": "minutes",
        "ignorePrevStateNull": false,
        "ignorePrevStateUnknown": false,
        "ignorePrevStateUnavailable": false,
        "ignoreCurrentStateUnknown": false,
        "ignoreCurrentStateUnavailable": false,
        "outputProperties": [
            {
                "property": "payload",
                "propertyType": "msg",
                "value": "",
                "valueType": "date"
            },
            {
                "property": "data",
                "propertyType": "msg",
                "value": "",
                "valueType": "eventData"
            },
            {
                "property": "topic",
                "propertyType": "msg",
                "value": "",
                "valueType": "triggerId"
            }
        ],
        "x": 120,
        "y": 100,
        "wires": [
            [
                "e03464546451ac49"
            ]
        ]
    },
    {
        "id": "e03464546451ac49",
        "type": "delay",
        "z": "0a240ace5f73b97b",
        "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": 360,
        "y": 100,
        "wires": [
            [
                "4ead270d32eb384d"
            ]
        ]
    },
    {
        "id": "1d65b486bac7ea2f",
        "type": "comment",
        "z": "0a240ace5f73b97b",
        "name": "Wait for all data before polling ",
        "info": "Wait a second for all the data to be parsed by HA",
        "x": 380,
        "y": 40,
        "wires": []
    },
    {
        "id": "63ed731a41f823e9",
        "type": "comment",
        "z": "0a240ace5f73b97b",
        "name": "Rate limit",
        "info": "Per https://documenter.getpostman.com/view/7396339/SWTK5a8w, the desired update rate is once ever 5 second, but no greater.",
        "x": 840,
        "y": 40,
        "wires": []
    },
    {
        "id": "4ead270d32eb384d",
        "type": "change",
        "z": "0a240ace5f73b97b",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "abrp.utc",
                "pt": "msg",
                "to": "0",
                "tot": "num"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 530,
        "y": 100,
        "wires": [
            [
                "abd7d01f161fbb41"
            ]
        ]
    },
    {
        "id": "59e29f544e2021e1",
        "type": "credentials",
        "z": "0a240ace5f73b97b",
        "name": "token",
        "props": [
            {
                "value": "token",
                "type": "msg"
            }
        ],
        "x": 330,
        "y": 1120,
        "wires": [
            [
                "16454682fa7ca495"
            ]
        ]
    },
    {
        "id": "16454682fa7ca495",
        "type": "credentials",
        "z": "0a240ace5f73b97b",
        "name": "api_key",
        "props": [
            {
                "value": "api_key",
                "type": "msg"
            }
        ],
        "x": 480,
        "y": 1120,
        "wires": [
            [
                "5530d4dedffbb2c1"
            ]
        ]
    },
    {
        "id": "b1d22d718b934e36",
        "type": "function",
        "z": "0a240ace5f73b97b",
        "name": "Rate Limiter",
        "func": "var interval = (5000); // minimum interval between messages (ms)\ncontext.lastTime = context.lastTime || 0;\n\nvar now = Date.now();\n\nif (now-context.lastTime > interval) {\n  context.lastTime = now;\n  return msg;\n} else {\n  return null;\n}",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 870,
        "y": 100,
        "wires": [
            [
                "14022a8a7c8ddd12",
                "7f5bd5c5cdd0048e"
            ]
        ]
    },
    {
        "id": "cfe681d3b9c224e6",
        "type": "api-current-state",
        "z": "0a240ace5f73b97b",
        "name": "",
        "server": "a32a31f29e50c3e6",
        "version": 3,
        "outputs": 2,
        "halt_if": "on",
        "halt_if_type": "str",
        "halt_if_compare": "is",
        "entity_id": "binary_sensor.rivian_energy_storage_charger_status_vehicle_charger_status",
        "state_type": "str",
        "blockInputOverrides": false,
        "outputProperties": [
            {
                "property": "charger_status",
                "propertyType": "msg",
                "value": "",
                "valueType": "entity"
            }
        ],
        "for": "0",
        "forType": "num",
        "forUnits": "minutes",
        "override_topic": false,
        "state_location": "payload",
        "override_payload": "msg",
        "entity_location": "data",
        "override_data": "msg",
        "x": 700,
        "y": 620,
        "wires": [
            [
                "f2325791a7154198",
                "c28447f3c67b3e41"
            ],
            [
                "c28447f3c67b3e41"
            ]
        ]
    },
    {
        "id": "c4716e5dedb1f833",
        "type": "change",
        "z": "0a240ace5f73b97b",
        "name": "abrp.is_dcfc flase",
        "rules": [
            {
                "t": "set",
                "p": "abrp.is_dcfc",
                "pt": "msg",
                "to": "false",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 410,
        "y": 700,
        "wires": [
            [
                "2bbdf70f71bf9e1f"
            ]
        ]
    },
    {
        "id": "7f5bd5c5cdd0048e",
        "type": "debug",
        "z": "0a240ace5f73b97b",
        "name": "debug 2",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 1140,
        "y": 60,
        "wires": []
    },
    {
        "id": "f2325791a7154198",
        "type": "debug",
        "z": "0a240ace5f73b97b",
        "name": "debug 3",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 1140,
        "y": 500,
        "wires": []
    },
    {
        "id": "c28447f3c67b3e41",
        "type": "function",
        "z": "0a240ace5f73b97b",
        "name": "infer DCFC",
        "func": "msg.abrp.is_dcfc = (msg.charger_status.attributes.value != \"chrgr_sts_connected_charging\");\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1150,
        "y": 620,
        "wires": [
            [
                "2bbdf70f71bf9e1f"
            ]
        ]
    },
    {
        "id": "a32a31f29e50c3e6",
        "type": "server",
        "name": "Home Assistant",
        "version": 5,
        "addon": false,
        "rejectUnauthorizedCerts": true,
        "ha_boolean": "y|yes|true|on|home|open",
        "connectionDelay": true,
        "cacheJson": true,
        "heartbeat": false,
        "heartbeatInterval": "30",
        "areaSelector": "friendlyName",
        "deviceSelector": "friendlyName",
        "entitySelector": "friendlyName",
        "statusSeparator": ": ",
        "statusYear": "hidden",
        "statusMonth": "short",
        "statusDay": "numeric",
        "statusHourCycle": "default",
        "statusTimeFormat": "h:m",
        "enableGlobalContextStore": false
    }
]
 

Yellow Buddy

Well-Known Member
Joined
Apr 10, 2022
Threads
22
Messages
843
Reaction score
1,271
Location
Behind You
Vehicles
Rivian R1T, F-150 Lightning Pro, Model S, Model X
Occupation
Smart Ass
Just one clarification, the flow goes like this:
  • Truck sends data Rivian Servers
  • HA plugin to grab the data from Rivian (so that I don't have to maintain my own code to talk to the ever-changing Rivian API)
  • Node Red plugin to pull sensor data from HA (so that I don't have to learn how to write my own direct HA plugin)
  • Node Red HTTP GET call to publish the data to ABRP
All of that is just running on a server at my house, so it magically chugs away without any interaction by me. At that point, I can open ABRP anywhere on any device and it will have live data from my truck.

Eventually, if Rivian releases the rumored web browser, this could even work with a UI right on the main screen. It would just be a really indirect path the information being displayed 😅. But given how they said the browser is delayed while they figure out the security model to isolate the browser so it's not an attack vector, I doubt anything more direct would be possible.
I know you’re trying to help dumb it down, but after 2 pages here’s what I gathered.

To enable ABRP on my truck, I first need to…call you.

I will then head to my local post office and mail you my flip phone. You will mail it back to me where it will then magically work. I’ll be more than happy to pay you for it, is a money order ok?
 

Yellow Buddy

Well-Known Member
Joined
Apr 10, 2022
Threads
22
Messages
843
Reaction score
1,271
Location
Behind You
Vehicles
Rivian R1T, F-150 Lightning Pro, Model S, Model X
Occupation
Smart Ass
Sorry for the delay. It has been a busy day or two. Here's the JSON for my Node-RED automation.

Code:
[
    {
        "id": "0a240ace5f73b97b",
        "type": "tab",
        "label": "Rivian HA to ABRP",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "c454216dc2556369",
        "type": "debug",
        "z": "0a240ace5f73b97b",
        "name": "debug 1",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 1080,
        "y": 1200,
        "wires": []
    },
    {
        "id": "14022a8a7c8ddd12",
        "type": "api-current-state",
        "z": "0a240ace5f73b97b",
        "name": "",
        "server": "a32a31f29e50c3e6",
        "version": 3,
        "outputs": 2,
        "halt_if": "0",
        "halt_if_type": "num",
        "halt_if_compare": "is_not",
        "entity_id": "sensor.rivian_energy_storage_charger_adjusted_soc",
        "state_type": "num",
        "blockInputOverrides": false,
        "outputProperties": [
            {
                "property": "soc",
                "propertyType": "msg",
                "value": "",
                "valueType": "entity"
            }
        ],
        "for": "0",
        "forType": "num",
        "forUnits": "minutes",
        "override_topic": false,
        "state_location": "payload",
        "override_payload": "msg",
        "entity_location": "data",
        "override_data": "msg",
        "x": 300,
        "y": 220,
        "wires": [
            [
                "a440d83de0c8e2af"
            ],
            [
                "a440d83de0c8e2af"
            ]
        ]
    },
    {
        "id": "7a1610ae1d247444",
        "type": "inject",
        "z": "0a240ace5f73b97b",
        "name": "",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": false,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 100,
        "y": 40,
        "wires": [
            [
                "4ead270d32eb384d"
            ]
        ]
    },
    {
        "id": "b05ee18031c7316a",
        "type": "api-current-state",
        "z": "0a240ace5f73b97b",
        "name": "",
        "server": "a32a31f29e50c3e6",
        "version": 3,
        "outputs": 2,
        "halt_if": "0",
        "halt_if_type": "num",
        "halt_if_compare": "is_not",
        "entity_id": "device_tracker.rivian_telematics_gnss_position",
        "state_type": "num",
        "blockInputOverrides": false,
        "outputProperties": [
            {
                "property": "gnss_pos",
                "propertyType": "msg",
                "value": "",
                "valueType": "entity"
            }
        ],
        "for": "0",
        "forType": "num",
        "forUnits": "minutes",
        "override_topic": false,
        "state_location": "payload",
        "override_payload": "msg",
        "entity_location": "data",
        "override_data": "msg",
        "x": 280,
        "y": 320,
        "wires": [
            [
                "90d82bfaaf202136"
            ],
            [
                "90d82bfaaf202136"
            ]
        ]
    },
    {
        "id": "7a5419607ca5a690",
        "type": "api-current-state",
        "z": "0a240ace5f73b97b",
        "name": "",
        "server": "a32a31f29e50c3e6",
        "version": 3,
        "outputs": 2,
        "halt_if": "on",
        "halt_if_type": "str",
        "halt_if_compare": "is",
        "entity_id": "binary_sensor.rivian_energy_storage_charger_vehicle_charger_state",
        "state_type": "str",
        "blockInputOverrides": false,
        "outputProperties": [
            {
                "property": "charger_state",
                "propertyType": "msg",
                "value": "",
                "valueType": "entity"
            }
        ],
        "for": "0",
        "forType": "num",
        "forUnits": "minutes",
        "override_topic": false,
        "state_location": "payload",
        "override_payload": "msg",
        "entity_location": "data",
        "override_data": "msg",
        "x": 350,
        "y": 420,
        "wires": [
            [
                "2b541098e215ebf0"
            ],
            [
                "f351f1c74cba3687"
            ]
        ]
    },
    {
        "id": "2bbdf70f71bf9e1f",
        "type": "api-current-state",
        "z": "0a240ace5f73b97b",
        "name": "",
        "server": "a32a31f29e50c3e6",
        "version": 3,
        "outputs": 2,
        "halt_if": "park",
        "halt_if_type": "str",
        "halt_if_compare": "is",
        "entity_id": "sensor.rivian_dynamics_propulsion_status_prndl",
        "state_type": "str",
        "blockInputOverrides": false,
        "outputProperties": [
            {
                "property": "pndrl",
                "propertyType": "msg",
                "value": "",
                "valueType": "entity"
            }
        ],
        "for": "0",
        "forType": "num",
        "forUnits": "minutes",
        "override_topic": false,
        "state_location": "payload",
        "override_payload": "msg",
        "entity_location": "data",
        "override_data": "msg",
        "x": 370,
        "y": 800,
        "wires": [
            [
                "b167da69e56601b9"
            ],
            [
                "528037b5d00342c8"
            ]
        ]
    },
    {
        "id": "2e84984fea4471cd",
        "type": "api-current-state",
        "z": "0a240ace5f73b97b",
        "name": "",
        "server": "a32a31f29e50c3e6",
        "version": 3,
        "outputs": 2,
        "halt_if": "0",
        "halt_if_type": "num",
        "halt_if_compare": "is_not",
        "entity_id": "sensor.rivian_dynamics_odometer_value",
        "state_type": "num",
        "blockInputOverrides": false,
        "outputProperties": [
            {
                "property": "odometer",
                "propertyType": "msg",
                "value": "",
                "valueType": "entity"
            }
        ],
        "for": "0",
        "forType": "num",
        "forUnits": "minutes",
        "override_topic": false,
        "state_location": "payload",
        "override_payload": "msg",
        "entity_location": "data",
        "override_data": "msg",
        "x": 340,
        "y": 900,
        "wires": [
            [
                "75ef08d69eb660a2"
            ],
            [
                "75ef08d69eb660a2"
            ]
        ]
    },
    {
        "id": "e4c6f1202963fef4",
        "type": "api-current-state",
        "z": "0a240ace5f73b97b",
        "name": "",
        "server": "a32a31f29e50c3e6",
        "version": 3,
        "outputs": 2,
        "halt_if": "0",
        "halt_if_type": "num",
        "halt_if_compare": "is_not",
        "entity_id": "sensor.rivian_energy_storage_vehicle_energy_vehicle_range",
        "state_type": "num",
        "blockInputOverrides": false,
        "outputProperties": [
            {
                "property": "range",
                "propertyType": "msg",
                "value": "",
                "valueType": "entity"
            }
        ],
        "for": "0",
        "forType": "num",
        "forUnits": "minutes",
        "override_topic": false,
        "state_location": "payload",
        "override_payload": "msg",
        "entity_location": "data",
        "override_data": "msg",
        "x": 410,
        "y": 1000,
        "wires": [
            [
                "0c3d67e44a777549"
            ],
            [
                "0c3d67e44a777549"
            ]
        ]
    },
    {
        "id": "a440d83de0c8e2af",
        "type": "change",
        "z": "0a240ace5f73b97b",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "abrp.soc",
                "pt": "msg",
                "to": "soc.state",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 750,
        "y": 220,
        "wires": [
            [
                "b05ee18031c7316a"
            ]
        ]
    },
    {
        "id": "90d82bfaaf202136",
        "type": "change",
        "z": "0a240ace5f73b97b",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "abrp.lat",
                "pt": "msg",
                "to": "gnss_pos.attributes.latitude",
                "tot": "msg"
            },
            {
                "t": "set",
                "p": "abrp.lon",
                "pt": "msg",
                "to": "gnss_pos.attributes.longitude",
                "tot": "msg"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 740,
        "y": 320,
        "wires": [
            [
                "7a5419607ca5a690"
            ]
        ]
    },
    {
        "id": "2b541098e215ebf0",
        "type": "change",
        "z": "0a240ace5f73b97b",
        "name": "abrp.is_charging true",
        "rules": [
            {
                "t": "set",
                "p": "abrp.is_charging",
                "pt": "msg",
                "to": "true",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 800,
        "y": 400,
        "wires": [
            [
                "cfe681d3b9c224e6"
            ]
        ]
    },
    {
        "id": "f351f1c74cba3687",
        "type": "change",
        "z": "0a240ace5f73b97b",
        "name": "abrp.is_charging flase",
        "rules": [
            {
                "t": "set",
                "p": "abrp.is_charging",
                "pt": "msg",
                "to": "false",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 180,
        "y": 700,
        "wires": [
            [
                "c4716e5dedb1f833"
            ]
        ]
    },
    {
        "id": "b167da69e56601b9",
        "type": "change",
        "z": "0a240ace5f73b97b",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "abrp.is_parked",
                "pt": "msg",
                "to": "true",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 910,
        "y": 780,
        "wires": [
            [
                "2e84984fea4471cd"
            ]
        ]
    },
    {
        "id": "528037b5d00342c8",
        "type": "change",
        "z": "0a240ace5f73b97b",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "abrp.is_parked",
                "pt": "msg",
                "to": "false",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 910,
        "y": 820,
        "wires": [
            [
                "2e84984fea4471cd"
            ]
        ]
    },
    {
        "id": "75ef08d69eb660a2",
        "type": "function",
        "z": "0a240ace5f73b97b",
        "name": "mi to km (odo)",
        "func": "msg.abrp.odometer = 1.60934 * msg.odometer.state;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 880,
        "y": 900,
        "wires": [
            [
                "e4c6f1202963fef4"
            ]
        ]
    },
    {
        "id": "0c3d67e44a777549",
        "type": "function",
        "z": "0a240ace5f73b97b",
        "name": "mi to km (range)",
        "func": "msg.abrp.est_battery_range = 1.60934 * msg.range.state;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 880,
        "y": 1000,
        "wires": [
            [
                "e796a7b0516dfeee"
            ]
        ]
    },
    {
        "id": "abd7d01f161fbb41",
        "type": "function",
        "z": "0a240ace5f73b97b",
        "name": "Set time",
        "func": "msg.abrp.utc = parseInt(msg.payload / 1000);\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 700,
        "y": 100,
        "wires": [
            [
                "b1d22d718b934e36"
            ]
        ]
    },
    {
        "id": "e796a7b0516dfeee",
        "type": "json",
        "z": "0a240ace5f73b97b",
        "name": "build json",
        "property": "abrp",
        "action": "str",
        "pretty": false,
        "x": 180,
        "y": 1120,
        "wires": [
            [
                "59e29f544e2021e1"
            ]
        ]
    },
    {
        "id": "5530d4dedffbb2c1",
        "type": "function",
        "z": "0a240ace5f73b97b",
        "name": "build request",
        "func": "msg.method = \"get\";\nmsg.url = \"https://api.iternio.com/1/tlm/send?api_key=\" + msg.api_key + \"&token=\" + msg.token + \"&tlm=\" + msg.abrp;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 650,
        "y": 1120,
        "wires": [
            [
                "d451af60021e9b68"
            ]
        ]
    },
    {
        "id": "d451af60021e9b68",
        "type": "http request",
        "z": "0a240ace5f73b97b",
        "name": "",
        "method": "use",
        "ret": "txt",
        "paytoqs": "ignore",
        "url": "",
        "tls": "",
        "persist": false,
        "proxy": "",
        "insecureHTTPParser": false,
        "authType": "",
        "senderr": false,
        "headers": [],
        "x": 870,
        "y": 1120,
        "wires": [
            [
                "c454216dc2556369"
            ]
        ]
    },
    {
        "id": "c3d9961fc33c39af",
        "type": "server-state-changed",
        "z": "0a240ace5f73b97b",
        "name": "",
        "server": "a32a31f29e50c3e6",
        "version": 4,
        "exposeToHomeAssistant": false,
        "haConfig": [
            {
                "property": "name",
                "value": ""
            },
            {
                "property": "icon",
                "value": ""
            }
        ],
        "entityidfilter": "rivian",
        "entityidfiltertype": "substring",
        "outputinitially": true,
        "state_type": "str",
        "haltifstate": "",
        "halt_if_type": "str",
        "halt_if_compare": "is",
        "outputs": 1,
        "output_only_on_state_change": false,
        "for": "0",
        "forType": "num",
        "forUnits": "minutes",
        "ignorePrevStateNull": false,
        "ignorePrevStateUnknown": false,
        "ignorePrevStateUnavailable": false,
        "ignoreCurrentStateUnknown": false,
        "ignoreCurrentStateUnavailable": false,
        "outputProperties": [
            {
                "property": "payload",
                "propertyType": "msg",
                "value": "",
                "valueType": "date"
            },
            {
                "property": "data",
                "propertyType": "msg",
                "value": "",
                "valueType": "eventData"
            },
            {
                "property": "topic",
                "propertyType": "msg",
                "value": "",
                "valueType": "triggerId"
            }
        ],
        "x": 120,
        "y": 100,
        "wires": [
            [
                "e03464546451ac49"
            ]
        ]
    },
    {
        "id": "e03464546451ac49",
        "type": "delay",
        "z": "0a240ace5f73b97b",
        "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": 360,
        "y": 100,
        "wires": [
            [
                "4ead270d32eb384d"
            ]
        ]
    },
    {
        "id": "1d65b486bac7ea2f",
        "type": "comment",
        "z": "0a240ace5f73b97b",
        "name": "Wait for all data before polling ",
        "info": "Wait a second for all the data to be parsed by HA",
        "x": 380,
        "y": 40,
        "wires": []
    },
    {
        "id": "63ed731a41f823e9",
        "type": "comment",
        "z": "0a240ace5f73b97b",
        "name": "Rate limit",
        "info": "Per https://documenter.getpostman.com/view/7396339/SWTK5a8w, the desired update rate is once ever 5 second, but no greater.",
        "x": 840,
        "y": 40,
        "wires": []
    },
    {
        "id": "4ead270d32eb384d",
        "type": "change",
        "z": "0a240ace5f73b97b",
        "name": "",
        "rules": [
            {
                "t": "set",
                "p": "abrp.utc",
                "pt": "msg",
                "to": "0",
                "tot": "num"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 530,
        "y": 100,
        "wires": [
            [
                "abd7d01f161fbb41"
            ]
        ]
    },
    {
        "id": "59e29f544e2021e1",
        "type": "credentials",
        "z": "0a240ace5f73b97b",
        "name": "token",
        "props": [
            {
                "value": "token",
                "type": "msg"
            }
        ],
        "x": 330,
        "y": 1120,
        "wires": [
            [
                "16454682fa7ca495"
            ]
        ]
    },
    {
        "id": "16454682fa7ca495",
        "type": "credentials",
        "z": "0a240ace5f73b97b",
        "name": "api_key",
        "props": [
            {
                "value": "api_key",
                "type": "msg"
            }
        ],
        "x": 480,
        "y": 1120,
        "wires": [
            [
                "5530d4dedffbb2c1"
            ]
        ]
    },
    {
        "id": "b1d22d718b934e36",
        "type": "function",
        "z": "0a240ace5f73b97b",
        "name": "Rate Limiter",
        "func": "var interval = (5000); // minimum interval between messages (ms)\ncontext.lastTime = context.lastTime || 0;\n\nvar now = Date.now();\n\nif (now-context.lastTime > interval) {\n  context.lastTime = now;\n  return msg;\n} else {\n  return null;\n}",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 870,
        "y": 100,
        "wires": [
            [
                "14022a8a7c8ddd12",
                "7f5bd5c5cdd0048e"
            ]
        ]
    },
    {
        "id": "cfe681d3b9c224e6",
        "type": "api-current-state",
        "z": "0a240ace5f73b97b",
        "name": "",
        "server": "a32a31f29e50c3e6",
        "version": 3,
        "outputs": 2,
        "halt_if": "on",
        "halt_if_type": "str",
        "halt_if_compare": "is",
        "entity_id": "binary_sensor.rivian_energy_storage_charger_status_vehicle_charger_status",
        "state_type": "str",
        "blockInputOverrides": false,
        "outputProperties": [
            {
                "property": "charger_status",
                "propertyType": "msg",
                "value": "",
                "valueType": "entity"
            }
        ],
        "for": "0",
        "forType": "num",
        "forUnits": "minutes",
        "override_topic": false,
        "state_location": "payload",
        "override_payload": "msg",
        "entity_location": "data",
        "override_data": "msg",
        "x": 700,
        "y": 620,
        "wires": [
            [
                "f2325791a7154198",
                "c28447f3c67b3e41"
            ],
            [
                "c28447f3c67b3e41"
            ]
        ]
    },
    {
        "id": "c4716e5dedb1f833",
        "type": "change",
        "z": "0a240ace5f73b97b",
        "name": "abrp.is_dcfc flase",
        "rules": [
            {
                "t": "set",
                "p": "abrp.is_dcfc",
                "pt": "msg",
                "to": "false",
                "tot": "bool"
            }
        ],
        "action": "",
        "property": "",
        "from": "",
        "to": "",
        "reg": false,
        "x": 410,
        "y": 700,
        "wires": [
            [
                "2bbdf70f71bf9e1f"
            ]
        ]
    },
    {
        "id": "7f5bd5c5cdd0048e",
        "type": "debug",
        "z": "0a240ace5f73b97b",
        "name": "debug 2",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 1140,
        "y": 60,
        "wires": []
    },
    {
        "id": "f2325791a7154198",
        "type": "debug",
        "z": "0a240ace5f73b97b",
        "name": "debug 3",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 1140,
        "y": 500,
        "wires": []
    },
    {
        "id": "c28447f3c67b3e41",
        "type": "function",
        "z": "0a240ace5f73b97b",
        "name": "infer DCFC",
        "func": "msg.abrp.is_dcfc = (msg.charger_status.attributes.value != \"chrgr_sts_connected_charging\");\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1150,
        "y": 620,
        "wires": [
            [
                "2bbdf70f71bf9e1f"
            ]
        ]
    },
    {
        "id": "a32a31f29e50c3e6",
        "type": "server",
        "name": "Home Assistant",
        "version": 5,
        "addon": false,
        "rejectUnauthorizedCerts": true,
        "ha_boolean": "y|yes|true|on|home|open",
        "connectionDelay": true,
        "cacheJson": true,
        "heartbeat": false,
        "heartbeatInterval": "30",
        "areaSelector": "friendlyName",
        "deviceSelector": "friendlyName",
        "entitySelector": "friendlyName",
        "statusSeparator": ": ",
        "statusYear": "hidden",
        "statusMonth": "short",
        "statusDay": "numeric",
        "statusHourCycle": "default",
        "statusTimeFormat": "h:m",
        "enableGlobalContextStore": false
    }
]
So is this feeding back to ABRP to improve their data? Or is it just for you to consume right now?
Sponsored

 
 




Top