Please visit github repository for the lastest updates.
My main goal is to integrate my MG4 in Node-red to use car's data with my automation workflow. Moreover, SAIC's ISmart mobile app is limited that why I have developed this dashboard.
- Support of Multi-language supported (default: French)
- Dashboard with car's components status
- Localization of my car on a map (daily, weekly, monthly and custom journeys)
- Compute charge cost and duration using electricity pricing limplementation (EDF in France)
- Override Saic MQTT gateway configuration
- Charts for:
- Tyres pressure
- Battery voltage
- Consumption + cost
- Temperature
- Battery capacity
- Charge calendar
- Remote actions
- set remote temperature, A/C mode, target SOC
- enable A/C, lock, boot ...
- Manage MQTT SAIC Gateway instance.
These features are not includes in theses flows but they have been integrated:
- Alerting (opened windows or doors at night, tyres pressure ...)
- Closing automatically car at night
- Starting automatically A/C
- Integration with Google Home
Ok Google MG4 -> Your car is in the avenue Champs-Elyseés, 7 near Mc Donalds restaurant
...
I use Saic MQTT gateway project to query data from MG's car.
Dashboard integrates:
- MQTT input to query data from local Moquitto
- nodered-dashboard-ui providing ui components
- node-red-contrib-web-worldmap as map provider
- node-red-contrib-ui-svg to integrate MG top view from official MG website
- EDF pricing data file to compute cost
- Persistance in SQLite database (in beta, to remove for production)
No warrantly, No support, No security requirements
- Install Mosquitto
- Install from source the latest python version
# Slow process
https://raw.githubusercontent.com/tvdsluijs/sh-python-installer/main/python.sh | sudo bash -s 3.xx.x
- Install Saic MQTT gateway
# Default folder: /home/dietpi/.node-red/saic/
mkdir /home/dietpi/.node-red/
git clone --depth 1 https://github.com/SAIC-iSmart-API/saic-python-mqtt-gateway.git
mv saic-python-mqtt-gateway saic
cd saic
pip3 install -r requirements.txt
- Launch manually SAIC Gateway for testing
# Launch gateway
python mqtt_gateway.py -m tcp://localhost:1883 -u "${saic email}" -p "${saic password}" --mqtt-user "mosquitto" --mqtt-password "${mqtt password}"
- Use MQTT Explorer to get path of data (ex: saic/xxx/vehicles/yyy)
- xxx: account ID
- yyy: vehicule ID
- Install Nodejs
dietpi-software install 9
# or
dietpi-software reinstall 9
- Install NodeRed
- Enable Saving context data to the file-system
- Import flow.json:
Dash-MG4
- Import flow_gateway.json:
MG4 Gateway
to manage SAIC Gateway instance in NodeRed - Configuration:
- open SAICMQTTFx/credentialsSAIC node:
server: https://tap-eu.soimt.com (for europe)
gateway: https://gateway-eu.soimt.com (for europe)
email: (email address of your MG ISmart account)
password: (password of your MG ISmart account)
ABRP_TOKEN: (bxxxx-xxx-xxx-xx-xxxx see ABRP integration)
ABRP_API_KEY: (xxx-xx-xx-xxx-xxxxx see ABRP integration)
GATEWAY_FOLDER: (absolute path of your gateway installation folder)
VIN: (vin of your vehicle)
- open SAICMQTTFx/credentialMQTTFx node:
MQTT_URL: (xxxxxx:1883)
MQTT_USER: (mqtt user)
MQTT_PASSWORD: (mqtt password)
MQTT_CLIENTID: (mqtt client id)
- Deploy them
- Watch Saic MQTT gateway outputs & see debug trace in Nodered
- you have to see before MQTT gateway events
- after that MQTT input in NodeRed will integrates data
- Open http://${ip}:1880/ui/
This flow is provided as it.
Feel free:
- to improve it
- to fix some bugs
- to share your work ;)
Disseminating knowledge is the human duty, sharing it about so that all can benefit.
- Edit saicInternationalFx subflow
- Duplicate actionFR and rename actionXX
- Translate everything in XX
- Implement electricity functions
- Edit label node and add XX in global.get("saic").language_supported (ex: XX=ES for spanish)
-
Test, test and test
-
Share with me actionXX && global.get("saic").language_supported contents
-
I will release a new version of this dashboard and you are the official maintainer of this language
-
Well done !
GNU GPLv3
Hi @Purclewan
Regarding your last comment , I have changed documentation and flows:
....