[{"id":"6d1c55e.b7501ac","type":"http request","z":"46ae342b.998d5c","name":"","method":"use","ret":"txt","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","authType":"","x":450,"y":120,"wires":[["6647e070.9d76d"]]},{"id":"d1743c63.d9337","type":"inject","z":"46ae342b.998d5c","name":"2min","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":true,"onceDelay":"5","topic":"","payload":"","payloadType":"date","x":110,"y":120,"wires":[["963e4dbc.401cd"]]},{"id":"99da97c9.113f48","type":"debug","z":"46ae342b.998d5c","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1110,"y":40,"wires":[]},{"id":"f9b0a4ce.328ce8","type":"function","z":"46ae342b.998d5c","name":"Status","func":"msg.headers = {\n Cookie : \"ovmsapisession=\"+msg.responseCookies.ovmsapisession.value + \"; id=\"+msg._msgid.replace('.',''),\n Accept : \"*/*\",\n \"User-Agent\" : \"curl/7.58.0\",\n Host : flow.get(\"Server\"),\n //connection : \"keep-alive\"\n}\n\nvar SendString = \"https://\" + flow.get(\"Server\") + \"/api/status/\" + flow.get(\"VehicleName\");\nmsg.topic = \"Status\";\nmsg.method = 'GET';\nmsg.url = SendString;\nmsg.payload = SendString;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":670,"y":160,"wires":[["ee3125c3.0b4598"]]},{"id":"2791a88f.130558","type":"api-call-service","z":"46ae342b.998d5c","name":"HA-Service","server":"4b66b686.9fc358","version":1,"debugenabled":false,"service_domain":"","service":"","entityId":"","data":"","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":1410,"y":160,"wires":[[]]},{"id":"86f57ff2.e68db","type":"inject","z":"46ae342b.998d5c","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":true,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":130,"y":40,"wires":[["3423df35.e836"]]},{"id":"ee3125c3.0b4598","type":"http request","z":"46ae342b.998d5c","name":"","method":"use","ret":"obj","paytoqs":"ignore","url":"","tls":"","persist":false,"proxy":"","authType":"","x":930,"y":120,"wires":[["99da97c9.113f48","ffd78a9a.2aa848"]]},{"id":"963e4dbc.401cd","type":"function","z":"46ae342b.998d5c","name":"Cookie","func":"//If not enabled do not run the api call\nif(flow.get(\"OVMSenable\")){\n var SendString = \"https://\" + flow.get(\"Server\") + \"/api/cookie?username=\" + flow.get(\"Login\")+ \"&password=\" + flow.get(\"Password\");\n msg.topic = \"GetCookie\";\n msg.method = 'GET';\n msg.url = SendString;\n msg.payload = SendString;\n \n return msg;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","x":280,"y":120,"wires":[["6d1c55e.b7501ac"]]},{"id":"320b369c.7d0a3a","type":"debug","z":"46ae342b.998d5c","name":"","active":false,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1410,"y":220,"wires":[]},{"id":"2d2d21bd.b3932e","type":"function","z":"46ae342b.998d5c","name":"Location","func":"msg.headers = {\n Cookie : \"ovmsapisession=\"+msg.responseCookies.ovmsapisession.value + \"; id=\"+msg._msgid.replace('.',''),\n Accept : \"*/*\",\n \"User-Agent\" : \"curl/7.58.0\",\n Host : flow.get(\"Server\"),\n //connection : \"keep-alive\"\n}\n\nvar SendString = \"https://\" + flow.get(\"Server\") + \"/api/location/\" + flow.get(\"VehicleName\");\nmsg.topic = \"Location\";\nmsg.method = 'GET';\nmsg.url = SendString;\nmsg.payload = SendString;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":680,"y":200,"wires":[["ee3125c3.0b4598"]]},{"id":"bc62beb9.8efa3","type":"function","z":"46ae342b.998d5c","name":"Charge","func":"msg.headers = {\n Cookie : \"ovmsapisession=\"+msg.responseCookies.ovmsapisession.value + \"; id=\"+msg._msgid.replace('.',''),\n Accept : \"*/*\",\n \"User-Agent\" : \"curl/7.58.0\",\n Host : flow.get(\"Server\"),\n //connection : \"keep-alive\"\n}\n\nvar SendString = \"https://\" + flow.get(\"Server\") + \"/api/charge/\" + flow.get(\"VehicleName\");\nmsg.topic = \"Charge\";\nmsg.method = 'GET';\nmsg.url = SendString;\nmsg.payload = SendString;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":680,"y":240,"wires":[["ee3125c3.0b4598"]]},{"id":"fe30a699.4829e8","type":"function","z":"46ae342b.998d5c","name":"tpms","func":"msg.headers = {\n Cookie : \"ovmsapisession=\"+msg.responseCookies.ovmsapisession.value + \"; id=\"+msg._msgid.replace('.',''),\n Accept : \"*/*\",\n \"User-Agent\" : \"curl/7.58.0\",\n Host : flow.get(\"Server\"),\n //connection : \"keep-alive\"\n}\n\nvar SendString = \"https://\" + flow.get(\"Server\") + \"/api/tpms/\" + flow.get(\"VehicleName\");\nmsg.topic = \"tpms\";\nmsg.method = 'GET';\nmsg.url = SendString;\nmsg.payload = SendString;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":670,"y":280,"wires":[["ee3125c3.0b4598"]]},{"id":"6647e070.9d76d","type":"function","z":"46ae342b.998d5c","name":"protocol","func":"msg.headers = {\n Cookie : \"ovmsapisession=\"+msg.responseCookies.ovmsapisession.value + \"; id=\"+msg._msgid.replace('.',''),\n Accept : \"*/*\",\n \"User-Agent\" : \"curl/7.58.0\",\n Host : flow.get(\"Server\"),\n //connection : \"keep-alive\"\n}\n\nvar SendString = \"https://\" + flow.get(\"Server\") + \"/api/protocol/\" + flow.get(\"VehicleName\");\nmsg.topic = \"protocol\";\nmsg.method = 'GET';\nmsg.url = SendString;\nmsg.payload = SendString;\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":680,"y":120,"wires":[["ee3125c3.0b4598"]]},{"id":"892bd269.4806b","type":"ha-entity","z":"46ae342b.998d5c","name":"OVMS State","server":"4b66b686.9fc358","version":1,"debugenabled":false,"outputs":1,"entityType":"sensor","config":[{"property":"name","value":"OVMS State"},{"property":"device_class","value":"car"},{"property":"icon","value":"mdi:car"},{"property":"unit_of_measurement","value":""}],"state":"payload.d.2","stateType":"msg","attributes":[{"property":"doors1","value":"payload.d.0","valueType":"msg"},{"property":"doors2","value":"payload.d.1","valueType":"msg"},{"property":"lockunlock","value":"payload.d.2","valueType":"msg"},{"property":"tpem","value":"payload.d.3","valueType":"msg"},{"property":"tmotor","value":"payload.d.4","valueType":"msg"},{"property":"tbattery","value":"payload.d.5","valueType":"msg"},{"property":"trip","value":"payload.d.6","valueType":"msg"},{"property":"odometer","value":"payload.d.7","valueType":"msg"},{"property":"speed","value":"payload.d.8","valueType":"msg"},{"property":"parktimer","value":"payload.d.9","valueType":"msg"},{"property":"ambient","value":"payload.d.10","valueType":"msg"},{"property":"doors3","value":"payload.d.11","valueType":"msg"},{"property":"staletemps","value":"payload.d.12","valueType":"msg"},{"property":"staleambient","value":"payload.d.13","valueType":"msg"},{"property":"vehicle12v","value":"payload.d.14","valueType":"msg"},{"property":"doors4","value":"payload.d.15","valueType":"msg"},{"property":"vehicle12v_ref","value":"payload.d.16","valueType":"msg"},{"property":"doors5","value":"payload.d.17","valueType":"msg"},{"property":"tcharger","value":"payload.d.18","valueType":"msg"},{"property":"ovms_version","value":"payload.f.0","valueType":"msg"},{"property":"car_vin","value":"payload.f.1","valueType":"msg"},{"property":"net_sq","value":"payload.f.2","valueType":"msg"},{"property":"can_write","value":"payload.f.3","valueType":"msg"},{"property":"car_type","value":"payload.f.4","valueType":"msg"},{"property":"gsmcops","value":"payload.f.5","valueType":"msg"},{"property":"latitude","value":"payload.l.0","valueType":"msg"},{"property":"longitude","value":"payload.l.1","valueType":"msg"},{"property":"direction","value":"payload.l.2","valueType":"msg"},{"property":"altitude","value":"payload.l.3","valueType":"msg"},{"property":"gpslock","value":"payload.l.4","valueType":"msg"},{"property":"stalegps","value":"payload.l.5","valueType":"msg"},{"property":"lspeed","value":"payload.l.6","valueType":"msg"},{"property":"ltrip","value":"payload.l.7","valueType":"msg"},{"property":"drivemode","value":"payload.l.8","valueType":"msg"},{"property":"power","value":"payload.l.9","valueType":"msg"},{"property":"energyused","value":"payload.l.10","valueType":"msg"},{"property":"energyrecd","value":"payload.l.11","valueType":"msg"},{"property":"motor_power","value":"payload.l.12","valueType":"msg"},{"property":"inv_efficiency","value":"payload.l.13","valueType":"msg"},{"property":"soc","value":"payload.s.0","valueType":"msg"},{"property":"units","value":"payload.s.1","valueType":"msg"},{"property":"linevoltage","value":"payload.s.2","valueType":"msg"},{"property":"chargecurrent","value":"payload.s.3","valueType":"msg"},{"property":"chargestate","value":"payload.s.4","valueType":"msg"},{"property":"chargemode","value":"payload.s.5","valueType":"msg"},{"property":"idealrange","value":"payload.s.6","valueType":"msg"},{"property":"estimatedrange","value":"payload.s.7","valueType":"msg"},{"property":"chargelimit","value":"payload.s.8","valueType":"msg"},{"property":"chargeduration","value":"payload.s.9","valueType":"msg"},{"property":"chargeb4","value":"payload.s.10","valueType":"msg"},{"property":"chargekwh","value":"payload.s.11","valueType":"msg"},{"property":"chargesubstate","value":"payload.s.12","valueType":"msg"},{"property":"chargestateN","value":"payload.s.13","valueType":"msg"},{"property":"chargemodeN","value":"payload.s.14","valueType":"msg"},{"property":"chargetimer","value":"payload.s.15","valueType":"msg"},{"property":"chargestarttime","value":"payload.s.16","valueType":"msg"},{"property":"cac100","value":"payload.s.17","valueType":"msg"},{"property":"charge_etr_full","value":"payload.s.18","valueType":"msg"},{"property":"charge_etr_limit","value":"payload.s.19","valueType":"msg"},{"property":"charge_limit_range","value":"payload.s.20","valueType":"msg"},{"property":"charge_limit_soc","value":"payload.s.21","valueType":"msg"},{"property":"cooldown_active","value":"payload.s.22","valueType":"msg"},{"property":"cooldown_tbattery","value":"payload.s.23","valueType":"msg"},{"property":"cooldown_timelimit","value":"payload.s.24","valueType":"msg"},{"property":"charge_estimate","value":"payload.s.25","valueType":"msg"},{"property":"charge_etr_range","value":"payload.s.26","valueType":"msg"},{"property":"idealrange_max","value":"payload.s.27","valueType":"msg"},{"property":"chargetype","value":"payload.s.28","valueType":"msg"},{"property":"chargepower","value":"payload.s.29","valueType":"msg"},{"property":"battvoltage","value":"payload.s.30","valueType":"msg"},{"property":"soh","value":"payload.s.31","valueType":"msg"},{"property":"chargepower_input","value":"payload.s.32","valueType":"msg"},{"property":"charger_efficiency","value":"payload.s.33","valueType":"msg"},{"property":"fr_pressure","value":"payload.w.0","valueType":"msg"},{"property":"fr_temperature","value":"payload.w.1","valueType":"msg"},{"property":"rr_pressure","value":"payload.w.2","valueType":"msg"},{"property":"rr_temperature","value":"payload.w.3","valueType":"msg"},{"property":"fl_pressure","value":"payload.w.4","valueType":"msg"},{"property":"fl_temperature","value":"payload.w.5","valueType":"msg"},{"property":"rl_pressure","value":"payload.w.6","valueType":"msg"},{"property":"rl_temperature","value":"payload.w.7","valueType":"msg"},{"property":"staletpms","value":"payload.w.8","valueType":"msg"},{"property":"wrec_time","value":"payload.w.9","valueType":"msg"}],"resend":true,"outputLocation":"","outputLocationType":"none","inputOverride":"allow","x":1510,"y":100,"wires":[[]]},{"id":"52488416.bda5ec","type":"join","z":"46ae342b.998d5c","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"","count":"5","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":1330,"y":100,"wires":[["892bd269.4806b"]]},{"id":"fa79d39c.696d2","type":"debug","z":"46ae342b.998d5c","name":"all.csv","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1310,"y":280,"wires":[]},{"id":"ffd78a9a.2aa848","type":"function","z":"46ae342b.998d5c","name":"ProtocolSplit","func":"if (msg.topic == \"protocol\"){\n\n var msgd,msgf,msgl,msgs,msgw;\n var length = msg.payload.length;\n \n for (i = 0; i < length; i++) {\n if(msg.payload[i].m_code == \"F\"){\n msgf = { \"topic\": \"f\",\n \"payload\" : msg.payload[i].m_msg.split(',')};\n }\n \n if(msg.payload[i].m_code == \"S\"){\n msgs = { \"topic\": \"s\",\n \"payload\" : msg.payload[i].m_msg.split(',')};\n }\n \n if(msg.payload[i].m_code == \"D\"){\n msgd = { \"topic\": \"d\",\n \"payload\" : msg.payload[i].m_msg.split(',')};\n \n msgd.payload[6] = msgd.payload[6]/10;\n msgd.payload[7] = msgd.payload[7]/10;\n }\n \n if(msg.payload[i].m_code == \"L\"){\n msgl = { \"topic\": \"l\",\n \"payload\" : msg.payload[i].m_msg.split(',')};\n \n \n \n \n \n \n }\n \n if(msg.payload[i].m_code == \"W\"){\n msgw = { \"topic\": \"w\",\n \"payload\" : msg.payload[i].m_msg.split(',')};\n \n msgw.payload[0] = (msgw.payload[0]/14.5037).toFixed(3);\n msgw.payload[2] = (msgw.payload[2]/14.5037).toFixed(3);\n msgw.payload[4] = (msgw.payload[4]/14.5037).toFixed(3);\n msgw.payload[6] = (msgw.payload[6]/14.5037).toFixed(3);\n }\n \n \n }\n \n var Soc = Number(msgs.payload[0]).toFixed(0);\n var msgLoc = { \n payload: {\"domain\" : \"device_tracker\",\n \"service\" : \"see\",\n \"data\" : { \"dev_id\" : flow.get(\"VehicleName\"),\n \"host_name\" : flow.get(\"VehicleName\"),\n //\"location_name\":\"home\",\n \"gps\" :[ msgl.payload[0],\n msgl.payload[1]],\n \"gps_accuracy\": 20,\n \"battery\" : Soc\n }\n }\n }\n \n return [msgd,msgf,msgl,msgs,msgw,msgLoc,msg];\n\n\n}","outputs":7,"noerr":0,"initialize":"","finalize":"","x":1130,"y":120,"wires":[["52488416.bda5ec"],["52488416.bda5ec"],["52488416.bda5ec"],["52488416.bda5ec"],["52488416.bda5ec"],["2791a88f.130558","320b369c.7d0a3a"],["fa79d39c.696d2"]]},{"id":"3423df35.e836","type":"credentials","z":"46ae342b.998d5c","name":"","props":[{"value":"Login","type":"flow"},{"value":"Password","type":"flow"},{"value":"VehicleName","type":"flow"},{"value":"Server","type":"flow"}],"x":310,"y":40,"wires":[[]]},{"id":"4b66b686.9fc358","type":"server","name":"Home Assistant","legacy":false,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":false,"cacheJson":true}]