Securely Access Blink Electric Car Charger Outside
Back in May we purchased a 100% electric car – the Nissan Leaf (http://www.nissanusa.com/leaf-electric-car) - we no longer need to stop at gas stations to "fill up".
We charge up the Leaf using our 'Blink' (http://www.blinknetwork.com), a residential 240V charger, installed in our garage.
Bellow is our Blink 240V Residential charger and the Blink's internal web server - Main (Charging Status), Stats, Settings, Info, and more.
The Blink has a bunch of features which you can manage through a touch screen. It also has an internal web server that allows us to check the Leaf's charging status, daily and monthly stats, change its configuration, and more. The Blink runs a custom version of Linux and can be connected to a network through an Ethernet cable (LAN) or through wi-fi.
Once connected to your internal network, you can access the Blink's web server by opening a browser and pointing it to its internal IP address – in our case 192.168.7.126 (I configured our DHCP server to always give the same IP address to the Blink).
A couple of months ago, I was wondering if there was an easy way to access the Blink's web server from outside my home, for example from my office. I can easily open a hole in our firewall and access the Blink – but unfortunately, the Blink does not offer a way to password protect most of its pages – so that would be highly dangerous.
I asked a question on the excellent mynissanleaf.com forums, wondering if anyone had any ideas on how to protect the Blink's web pages so I could access it securely from outside of home -
Password protect Blink when accessing from PC on network? http://www.mynissanleaf.com/viewtopic.php?f=43&t=4152
There were a few answers, including setting up an SSH gateway and from that tunnel connect to the Blink – which is a good idea, but since I didn't have anything like that already setup, it seemed a bit too time consuming.
A couple of days ago I was researching network software and I stumbled upon CCProxy (/ccproxy/), an awesome proxy server for Windows.
From its web site, here are some of its features -
CC Proxy Server can act as an HTTP, mail, FTP, SOCKS, news and telnet proxy server. It features powerful account management functions, including Internet access control, bandwidth control, Internet web filtering, content filtering and time control. It also provides web caching, online access monitoring, access logging and bandwidth usage statistics functions. As Windows proxy software, CCProxy is compatible with Windows 7/2008/2003/XP/Vista.
I quickly downloaded the '3 user' version, which is free – and in literally minutes I had set it up so I could safely access the Blink from outside our home. Below I have additional details on how you could do the same.
How to securely access your Blink electric car charger using a proxy server (CCProxy)
I found a good way to securely access your Blink's web server through a proxy server running on windows - the details on how to set this up are below. Please note that to execute this you will need -
An understanding of how internal and external networks work.
Download and install software (as an administrator if running Windows Vista or Windows 7).
Manage your router and firewall.
Manage your DHCP server.
Manage your external dynamic IP address.
A computer that runs 24x7 – or at least runs when you're not at home when you need to access your internal resources.
If you feel uncomfortable executing any of the above items, contact a technical friend – geeks like to help.
Here's how to securely access your Blink's web server from outside your home -
1. Download CCProxy
(3 user version is free)
2. Install CCProxy
I installed it on a netbook, which consumes very little power. We use this netbook for Zwave home automation (http://www.z-wave.com), and it's always on - 24x7. Note that you'll need a computer running CCProxy to access your Blink from the outside of your house.
3. Configure CCPRoxy, the proxy server for HTTP/HTTPS requests
Enable HTTP, but turn off any protocols you won't use such as FTP, Mail, DNS, etc...
Choose a random port, like 3843
Make sure you setup authentication - username/password is a minimum, "username/password + IP or MAC address" is even better.
4. Resolve your dynamic IP
Signup for a free http://dyn.com/dns/ account, make sure you can resolve your home IP from the outside
5. Update your router/firewall
I suppose you have a router which acts as your firewall and by default you don't allow any connections to your internal computers.
Open a hole in your firewall and map port 3843 to the computer where CCProxy is running.
Update your router/firewall to update your external IP on dyndns.com (or run the windows client).
Make sure the firewall on the computer where CCProxy is running is off.
6. Test out CCProxy with Firefox
Make sure you can use your new proxy server from outside of your house
I like to use Firefox (http://www.mozilla.com/en-US/firefox/new/), since it allows me to setup a proxy just for Firefox, not for the whole operating system, which seems to be the case with Internet Explorer and Chrome.
Use your external IP address (or dyndns.org address you setup in step 5) and the port you setup in step 3.
Now here's the magic to access the Blink -
7. CCProxy awesome feature: "Port Map"
Use CCProxy's "Port Map" feature: Options > Check "Port Map" > Edit
Destination Host: 192.168.1.126 (whatever your INTERNAL Blink IP address is)
Destination Port: 80
Port Type: HTTP
Local Port: 80
Now from work, or from anywhere outside your house, setup Firefox (or any other browser) to use your home proxy - type http://192.168.1.126 in your address bar, enter the username/password you set up in step 3 - and that's it! You can now use the Blink web interface in a relative safe way from anywhere in the world!
Setting up CCProxy is not only useful to access the Blink – but also has additional advantages -
Use your home connection from anywhere – for example to access the Blink's web server, but also any other resources you may have behind your firewall – music, pictures, etc…
When in a foreign country, use your proxy server to access web sites that require a US IP address such as Hulu.com, Netflix, etc…
When accessing a public wireless network with no security, connect to your home server through SSL (HTTPS) making it harder for hackers who may snoop your credentials and other sensitive information.
Get CCProxy now –
It's free for up to 3 users!
The Main CCProxy screen -
CCPRoxy's proxy services configuration screen -
CCProxy's port map screen -
Firefox options screen > Advanced > Network
Firefox options screen > Advanced > Network > Connection > Settings
The Blink's web server, being accessed from outside my home with Firefox using CCProxy – notice that I'm accessing the Blink web server, but I am asked for a username/password.
This is different than the Blink's "Intranet Password", which only protects certain configuration screens – this is the CCProxy password you setup and it protects all Blink screens.
(but still no need to enter username/password when accessing the Blink directly from your home network, behind the firewall)
Once I'm logged in, the Blink's main screen –
Additional Blink screens
The main screen – when charging, it displays the charging status and time it has been charging the Leaf; it also displays info on your last charge, for example the start time, how long it took to charge, and how much it cost -
(there are different parameters in estimating your costs for driving an electric car – but in my case I'm seeing $15 to $20 for every 1,000 miles)
The monthly stats screen – including the total cost for the month, the average cost per charge, the CO2 saved, the number of gallons of gas saved, the price per kWh when you charged, and the total number of kWh used -
You can get stats for the current or previous month -
The settings screen – allows you to setup a schedule for charging the Leaf only during non-peak hours, setting up your utility's kWh costs, and more.
Click on 'kWh Rate(s)' and you can setup your utility's cost for one kWh, during peak and non-peak hours, during summer or winter -
Our utility is "Pacific Gas and Electric", also known as PG&E (http://www.pge.com/) – we are on the E7 tariff, which has the following rates -
Our standard or 'off-peak' rate is $0.09273 (or roughly 9 cents) per kWh -
We can then setup 'peak' rates – from May to October and between Noon to 6 PM one kWh costs $0.31550 (or roughly 30 cents) -
From November to April and between Noon to 6 PM one kWh costs $0.12294 (or roughly 30 cents) -
You can see it makes a lot of sense to setup timers on the Leaf or on the Blink, to charge our electric car during off-peak hours – it's three times cheaper!
Note: we also have a solar power system – so during off-peak hours (noon to 6 PM) we are producing energy and our meter is rolling backwards – we sell to PG&E one kWh at 30 cents, but when we use a kWh we buy it for 9 cents – it's awesome!
We actually got our blink for free, after being accepted in the "EV Project" (http://www.theevproject.com/overview.php) – a great project to develop the infrastructure for electric cars. It's managed by Ecotality (http://www.ecotality.com/) which was awarded a $99.8 million dollar grant from the US Department of Energy (http://energy.gov/) and a total of $230 million dollars. From their site -
ECOtality is deploying approximately 14,000 chargers in 18 major cities and metropolitan areas located in six states and the District of Columbia: California, Oregon, Washington, Arizona, Texas, Tennessee, and Washington, D.C. Chevrolet and Nissan North America are partners in The EV Project. Both Chevrolet Volt and Nissan LEAF drivers who qualify to participate in The EV Project receive a residential charger at no cost. In addition, most, if not all of the installation cost, are paid for by The EV Project.
Here's our new "gas pump" – except we don't use any gas, just electricity -
Our Leaf has a 240V charger and also a 480V 'fast/L3' charger that can charge the car at 80% in 20 minutes (it costs an extra $700, but we also got it for free through Ecotality!)
Quote from Emmanuel's Blog. Thanks for Emmanuel's good job!