Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enel X migrating from JuiceNet to JuicePass #86588

Open
W0GER opened this issue Jan 25, 2023 · 147 comments
Open

Enel X migrating from JuiceNet to JuicePass #86588

W0GER opened this issue Jan 25, 2023 · 147 comments
Assignees

Comments

@W0GER
Copy link

W0GER commented Jan 25, 2023

The problem

Enel X is migrating from JuiceNet to JuicePass.

Received email stating:

To provide you with the best user experience and new functionalities, we are transitioning to a new and improved platform for charging management. Your charging station will be migrated to the new JuicePass app (Enel X Way app). The EV JuiceNet app along with web browser access to your charger via home.juice.net will no longer be supported after February 20, 2023. Configurability and control of your chargers must be done via the new JuicePass app (Enel X Way app) which can be downloaded on iOS or Android.

since migrating my account, the JuiceNet app shows “disconnected” while their new app JuicePass shows the current data.

Is there a plan to update the Home Assistant core JuiceNet integration to work with JuicePass?

What version of Home Assistant Core has the issue?

2022.12.5

What was the last working version of Home Assistant Core?

2022.12.5

What type of installation are you running?

Home Assistant OS

Integration causing the issue

No response

Link to integration documentation on our website

No response

Diagnostics information

No response

Example YAML snippet

No response

Anything in the logs that might be useful for us?

No response

Additional information

No response

@Githubthings
Copy link

I have the same issue with Home Assistant.
The EV JuiceNet app is also showing “disconnected” as well as the browser web login at home.juice.net/Portal

@Dystaxia
Copy link

Dystaxia commented Jan 25, 2023

Confirmed. Same situation.

Edit: The app is absolute garbage.

😆

@jesserockz
Copy link
Member

Yeah I received an email notification from them saying they are shutting down the Juicenet portal and the Juicenet App which I assume meant the API that Home Assistant is using.
Considering the API is mostly undocumented and I started this integration based on reverse engineering, I don't think it will be easy to migrate/update to use their new API.

I myself also do not use (or even have) a juicenet charger any more so I am not going to be of any use here.

  • Jesse

@home-assistant
Copy link

@MrDrew514
Copy link

Let's hope that a developer was using this integration and will be updating it to the new api #fingerscrossed

@michaelwoods
Copy link

I took a look using a SSL/MITM proxy and couldn't make much sense of the APIs used. They seem to issue POSTs with no response and then possibly receive (gRPC?) data over Google APIs, maybe a firebase offering. I can't see too much further as the SSL isn't transparent between Google Play Services and their servers.

@aravindtri
Copy link

Having the same issue and the new app is terrible

@barrymichels
Copy link

Spoke with support and they confirmed the API is going away and they have no plans in offering a similar product. I asked if they could submit a suggestion/request for one in the future
This is one of the reasons I went with a JuiceBox. 😢

@MrDrew514
Copy link

I'm guessing no API doesn't mean no integration. Is there still hope for this?

@barrymichels
Copy link

At this point, no. I hope enough customers request this feature so they see the demand and bring a new API online.

@MrDrew514
Copy link

image

Reached the support and sent a complaint for the API removal.

@barrymichels
Copy link

My chat with support on Jan 30th:

(09:37:31 PM) *** Spencer Simpson joined the chat ***
(09:40:53 PM) Spencer Simpson: Hello Barry,

Your devices not connecting to home.juice.net is normal, and the phantom device in your app is a common product of the migration. After JuiceBoxes are moved to the server, they cease all communications with the home.juice.net server, and we are still moving on a timeline of completely shuttering it from Feb. 20th on. We can resolve the phantom JuicePass box by removing the unit from your home.juice.net account, leaving only the entry for your JuicePass account.
(09:41:35 PM) Barry Michels: Ok. thank you.
(09:42:24 PM) Barry Michels: So, is home.juice.net going away? I'm using that API to integrate the data into my Home Assistant server to log/monitor the energy delivered to my car.
(09:43:01 PM) Spencer Simpson: Yes, it is going away, and there is definitely not a planned browser/web-based dashboard replacement. As for the status of a general residential user API, I am not able to confirm whether it is a planned feature at this time.

@MrDrew514
Copy link

A decrease in the features will certainly affect customers experience, I contacted them to know if they plan on working on it since I primary bought it for that case and if they are offering a refund regarding this problem.

@owen2
Copy link
Contributor

owen2 commented Feb 8, 2023

We also lost the ability to manage load groups, so I complained about that and the API being unavailable. I was about to buy a 2nd charger and wire it to the same circuit. In the old system, it would limit the total amperage of the group to the rated amperage through software, and that isn't a feature in the new app... so fire risk, tripped breakers if you had that setup during the migration? yikes.

@aravindtri
Copy link

We also lost the ability to manage load groups, so I complained about that and the API being unavailable. I was about to buy a 2nd charger and wire it to the same circuit. In the old system, it would limit the total amperage of the group to the rated amperage through software, and that isn't a feature in the new app... so fire risk, tripped breakers if you had that setup during the migration? yikes.

I lost the ability to control charge current via juice pro but figured out a way to control it from Tesla.

@wmoss
Copy link

wmoss commented Feb 11, 2023

Got this today, so they don't seem to have their story straight but maybe there is hope.

image

@dtrop1
Copy link

dtrop1 commented Feb 13, 2023

I hope they re-enable this. The new app is garbage.

@CharlieDelta6
Copy link

We have a load group of 2 JB40 and still seem to be on the old system. Haven't received any migration email yet.

I did copy source locally and hard code max amp value at 40. That value was not being fetched correctly and would error (unable to set, valid range 6-0). Didn't want to dig too deep and fix properly due to the unknown status of the API.

@niharmehta
Copy link

If you have been impacted by this change, you can request support move you back to the old platform. It took a few weeks and requires a new token. It appears they know this migration has been a huge issue for their customers and they offered to move my system back. Not only did the new app/platform break the API, but it's TOU scheduling is broken, as well as load sharing capability doest not exist anymore either.

@tomayac
Copy link

tomayac commented Apr 28, 2023

I started a reverse-engineering effort of the new Enel X Way API and have put my findings in a public Gist. Help is very much welcome! So far I have the endpoints, but need to understand authentication, potentially request signing, etc.

@MrDrew514
Copy link

I started a reverse-engineering effort of the new Enel X Way API and have put my findings in a public Gist. Help is very much welcome! So far I have the endpoints, but need to understand authentication, potentially request signing, etc.

Looks promising, is there a way to request an API after the migration?

@tomayac
Copy link

tomayac commented May 1, 2023

[I]s there a way to request an API after the migration?

Not that I know of. It’s all private.

I don’t want to share their code, since it’s probably copyrighted, but what I did was download the app’s .apk, and then decompiled it with an online tool. I think it’s written in Flutter, so more targeted techniques could potentially reveal better results, but I didn’t get to that yet.

@cgraf
Copy link

cgraf commented May 17, 2023

Any update on this one? I just got forced to the Enel X Way app and lost JuiceNet access including the mobile app, webapp, and HA integration.

Happy to help contribute if I can. Wondering if there is any additional understanding of the auth component. I believe JuiceNet creds work for the Enel X app, so wondering if the JuiceNet tokens still work with Enel X. Enel X appears to have their own account system at my.enelx.com but the JuiceNet creds don't work there, and there's no apparent way to create an account. It would seem at first glance like the Enel X Way app is still using JuiceNet for auth, but I have not really looked at it all. Just at the point of realizing I got migrated and everything broke.

@Scott8586
Copy link

I don't know if this is helpful, but port 2000 is open for telnet to the Gecko OS of the JuiceBox - I tried to expose the web server on the wlan interface, and reboot, but the Juicebox seems to reset it to the softap/default on reboot. Maybe someone more industrious can figure out a way to expose something useful?
I suspect you could really screw things up if you tried, so play around at your own risk...

$ telnet 192.168.35.xxx 2000
Trying 192.168.35.xxx...
Connected to gecko_os-afb.xxx.net.
Escape character is '^]'.
EMWERK-JB201-1.0.46, Gecko_OS-STANDARD-4.2.7-11064, WGM160P
> get ht s i
get ht s i
default
> set ht s i wlan
set ht s i wlan
Set OK
> network_restart -i wlan
network_restart -i wlan
Connection closed by foreign host.

@wmoss
Copy link

wmoss commented May 21, 2023

I played around with Gecko as well, but I don't think it's going to get you anywhere. The Gecko OS itself is only aware of the GPIO pins on the Gecko chip, what matters is the custom software that Enel is running under Gecko OS and how that's interacting with the GPIO pins and the data that it's sending up to the cloud. Even if you could reverse engineer that piece of software, I doubt you could run something on the Gecko system to monitor it.

@cgraf
Copy link

cgraf commented May 30, 2023

FWIW, I was told by Enel X support that I could no longer request to be switched back to JuiceNet once I switch to the new app. I decided to sell my charger, and get one that remains open for integrations, but soon found that in Enel X Way there is no longer a way to transfer ownership of a device. I wrote to support again and asked that they remove my ownership of the device so that I could resell it, at which point they were nice enough to move me back to JuiceNet.

kindly note that I have been successful in motivating that you be migrated back to EV JuiceNet so that you can continue using the web platform home.juice.net and API functions as you normally did, at least up unit the Enel X Way app is updated to support these features.

So there is hope. I busted out a new automation that automatically sets the amperage of my charger based on the remaining charge of my Powerwall. Works great except that charge_now off does not seem to work. It toggles in HA, but does not actually turn off. Oh well. Glad to have this much of an integration working so that car charging does not burn through my battery overnight or on cloudy days.

@emilecantin
Copy link

It looks like I've been moved automatically to the new platform. I never even installed their new app, the charger just started showing "unavailable" a few days ago.

@cgraf I just got off the chat with support, and they told me they ended the contract with the provider for the old platform. I would assume they'll probably force everyone on the new platform in the next few weeks.

This is very frustrating, as I bought that device specifically for the Home Assistant integration... I imagine I'm not the only one in that situation.

@philipkocanda
Copy link

philipkocanda commented Mar 14, 2024

@rtw819 thanks for confirming, I've also had to reset my Juicebox (an old one from 2018) to factory settings. I did so using the telnet interface by issuing the factory_reset command. I then proceeded to setup as a new Juicebox, which took a while but at least I can use it again. The new app is lacking the scheduled charging features, which is why I'd like to have API control again so I can automate that from HomeAssistant.

For some reason your gist link didn't work for me, but this one does so sharing it here again: https://gist.github.com/tomayac/754284dd79e20147f482d932ed89f2a1

I like the idea of reversing their Cloud API, but I'd much prefer reversing the local API so we never have to go through the cloud in the first place (so we don't end up in this same situation in a few years time again). I'm successfully using juicepassproxy to get live data from the Juicebox, but that doesn't allow control yet. There's an issue open for that though, and some folks are in the process of reversing the commands for starting/stopping charging. I might have a crack at that myself soon when I have the time.

@gkwok1
Copy link

gkwok1 commented Mar 14, 2024

@rtw819 thanks for confirming, I've also had to reset my Juicebox (an old one from 2018) to factory settings. I did so using the telnet interface by issuing the factory_reset command. I then proceeded to setup as a new Juicebox, which took a while but at least I can use it again. The new app is lacking the scheduled charging features, which is why I'd like to have API control again so I can automate that from HomeAssistant.

For some reason your gist link didn't work for me, but this one does so sharing it here again: https://gist.github.com/tomayac/754284dd79e20147f482d932ed89f2a1

I like the idea of reversing their Cloud API, but I'd much prefer reversing the local API so we never have to go through the cloud in the first place (so we don't end up in this same situation in a few years time again). I'm successfully using juicepassproxy to get live data from the Juicebox, but that doesn't allow control yet. There's an issue open for that though, and some folks are in the process of reversing the commands for starting/stopping charging. I might have a crack at that myself soon when I have the time.

I issued a factory_reset command on my Juicebox 40 and now it won't even give a softAP on startup. How did you get yours to working again?

@rtw819
Copy link

rtw819 commented Mar 15, 2024

I like the idea of reversing their Cloud API, but I'd much prefer reversing the local API so we never have to go through the cloud in the first place (so we don't end up in this same situation in a few years time again).

While I also would much prefer a locally available access method, unfortunately, the local telnet interface to the JuiceBox devices do not have access to any of the actual charging detail information, sensors, controls, etc. It's effectively a supervisory interface module which doesn't have interpreted access to any of the underlying EVSE componentry. There is no local API through that interface.

I highly suspect without coming up with a way to somehow revise that supervisory module firmware -- if such a feat is even feasible or possible, a direct locally accessible API is not likely possible. It would be nice, though.

@rtw819
Copy link

rtw819 commented Mar 15, 2024

I issued a factory_reset command on my Juicebox 40 and now it won't even give a softAP on startup. How did you get yours to working again?

Against my wishes and desires, both my EVSE migrated themselves individually and independently, at different times of day, to the new JuicePass app earlier this week. I didn't have to "do" anything. It might be worth opening a support ticket to Enel X at least try to get yourself some functionality back?

@mdcollins05
Copy link

Against my wishes and desires, both my EVSE migrated themselves individually and independently, at different times of day, to the new JuicePass app earlier this week. I didn't have to "do" anything. It might be worth opening a support ticket to Enel X at least try to get yourself some functionality back?

I wish you luck. I've had a ticket open with Enel support since late December and things have only gotten worse for me. My two Juicebox 32s won't load share or even charge on a schedule any more. I've asked them for a refund multiple times and they tell me a supervisor will get back to me on that, yet I hear nothing. I'm now disputing the charge with my bank but because I bought them early last year, that is going slow.

Even if they somehow fix the issues, I don't want these chargers. I plan on replacing them with the Tesla wall connectors because those seem to have a local polling option and can load share without a 3rd party server on the Internet.

Sorry for the rant. Thanks to those who worked on the Juicenet integration. It was awesome while it lasted.

@gkwok1
Copy link

gkwok1 commented Mar 15, 2024

Against my wishes and desires, both my EVSE migrated themselves individually and independently, at different times of day, to the new JuicePass app earlier this week. I didn't have to "do" anything. It might be worth opening a support ticket to Enel X at least try to get yourself some functionality back?

I had them open a ticket with their tier 2 support on why my SoftAP is not coming back up so I can at least do local polling with juicepassproxy but I am also relief that it's not phoning home anymore. It;s just a dumb charger now which I am sort of okay with it.

@FalconFour
Copy link

Oh, hey - wow, what a thread so far. Well, y'all have gotten a lot further than I have on ripping the cloud portion apart, but I can help with bits of the embedded part. Of course I wouldn't recommend a JuiceBox 2.x (grey plastic case, purple front, LED bar), but I would love to keep the older ones going. The JB1.x series was my baby, in a sense. I keep them going with replacement relays and guides thereof, but I really wish I could contribute some of my protocol knowledge to a community that wants to rip it apart.

First off, don't do a "factory_reset" on any unit that doesn't have ZAP firmware! That includes any JuiceBox with v8.12.x board or earlier (pre-historic, nearing kickstarter era), as doing a factory reset is resetting it to Zentri's factory - not eMW's! That was never a feature meant for anyone to fiddle with, and doing a factory reset will make it default to the wrong baud rate, no longer able to communicate with the JB's processor, and thus never able to be told to go to setup mode to recover it. Always be extremely cautious with factory_reset. If it's running the ZAP (no password for the "JuiceNet" network), then it's safer to do.

If there's no tackling this from the API end, then maybe there's hope to getting it working on the internal network instead. I know the Zentri ZAP performs a DNS lookup to find the end point and the directory server, so that makes some network hackery necessary. From there, I could help decode the raw UDP protocol it's sending on port 8042 (typically - but also port 8047 more recently, is that right?). Wonder what all we could get done together with more collab :)

@philipkocanda
Copy link

@FalconFour I guess I was lucky with mine as I have the ZAP firmware (old style juicebox). Your help is very much needed, we’re busy trying to decode the UDP protocol but not much luck so far: snicker/juicepassproxy#39

@carrel-gr
Copy link

Could juicepassproxy be made into an HA add-on? I was looking at the Ring-MQTT add-on and it seems to be performing a similar function. I like that it would become more of a part of HA and not require a separate docker server.

@jon6fingrs
Copy link

jon6fingrs commented Mar 25, 2024 via email

@niharmehta
Copy link

I have not set up the proxy yet, but I have converted an existing docker container to an HA in the past using these instructions.
https://developers.home-assistant.io/docs/add-ons/tutorial/

Another great resource:
https://github.com/alexbelgium/hassio-addons/wiki/Building-an-addon

@FalconFour
Copy link

FYI, over in juicepassproxy (linked above), there is promising development to taking JuiceBox fully local - surprisingly, I seem to have found the missing piece to get working checksums. Might need some refactoring to build the report/response system (vs. just parsing status messages today), and send commands back to the box (with or without talking to Enel servers). With a bit more effort on it, it may soon fully "exist" as a turnkey solution for local control & automation that runs circles around the capabilities, API (or lack thereof), & unreliability of the original servers. Just needs some more contributors and packaging!

@Derdzyan
Copy link

Guys, thanks for all the efforts I'm really waiting for a local reliable power-sharing tool. If there’s anything working please share it with us.
Off-top. There is a new app version ( https://emotorwerks.zendesk.com/hc/en-us/articles/24966999878939-Version-4-3-48 ) coming in the US with scheduling added)) As I use 2.01 models I hope there’ll be something coming connected with power-sharing as well because as I understand even if some solutions will be created for the older model year chargers they may not work on the newer ones (correct me if I'm wrong).

@saltydog256
Copy link

Took me 47 days after the migration to get X-way working (today). So I definitely support local control. I have all the models up until the JuiceBox2 (3-phase) if you want a tester. I had solar PV integration (charge on excess (exported) solar). Some OCPP experience too. I also have the hex files for the JuiceBox.

@saltydog256
Copy link

saltydog256 commented Apr 30, 2024

I'm missing Power sharing too (Load balancing). It was never very good anyway, especially if you export (negative current). And 3-phase was a disaster.
I have JB2.0 and load sharing used to work with this and older versions too.

@wozz
Copy link

wozz commented May 19, 2024

FYI, over in juicepassproxy (linked above), there is promising development to taking JuiceBox fully local - surprisingly, I seem to have found the missing piece to get working checksums. Might need some refactoring to build the report/response system (vs. just parsing status messages today), and send commands back to the box (with or without talking to Enel servers). With a bit more effort on it, it may soon fully "exist" as a turnkey solution for local control & automation that runs circles around the capabilities, API (or lack thereof), & unreliability of the original servers. Just needs some more contributors and packaging!

I didn't see an add-on for this yet, so I bundled the container as an add-on available here: https://github.com/wozz/ha-addons/tree/main/juicepassproxy

@troydangerfield
Copy link

FYI, over in juicepassproxy (linked above), there is promising development to taking JuiceBox fully local - surprisingly, I seem to have found the missing piece to get working checksums. Might need some refactoring to build the report/response system (vs. just parsing status messages today), and send commands back to the box (with or without talking to Enel servers). With a bit more effort on it, it may soon fully "exist" as a turnkey solution for local control & automation that runs circles around the capabilities, API (or lack thereof), & unreliability of the original servers. Just needs some more contributors and packaging!

I didn't see an add-on for this yet, so I bundled the container as an add-on available here: https://github.com/wozz/ha-addons/tree/main/juicepassproxy

This is great wozz, I have tried to use it however I get "This add-on is not compatible with the processor of your device or the operating system you have installed on your device." - Not sure what I need to check, I am running on a standalone intel PC as an image. Do you have any suggestions on how to get this to work, I have lost access to the app data, so would just like to capture the data and feed it to HA.

@wozz
Copy link

wozz commented Jun 5, 2024

i only built it for arm so far (raspberry pi based systems). i can add an x86 image

@troydangerfield
Copy link

i only built it for arm so far (raspberry pi based systems). i can add an x86 image

I really appreciate this wozz, let me know once done and I can test. Again, I love the generosity/willingness of everyone to help.

@tomayac
Copy link

tomayac commented Jun 5, 2024

Greatly appreciate this, too, @wozz! I'd love to give this a spin on my Home Assistant running on an old Surface Go with an Intel Pentium Gold 4415Y.

@wozz
Copy link

wozz commented Jun 5, 2024

the amd64 image is published. i don't have an HA instance to test it, so lmk if it doesn't work for some reason or if other architectures are needed

@carrel-gr
Copy link

Is it possible to configure UPDATE_UDPC to true with the add-on? Can that be added as an option?

@saltydog256
Copy link

saltydog256 commented Jul 25, 2024 via email

@carrel-gr
Copy link

Hmmm, is it just a matter of adding a one line addition to each of config.yaml and run.sh?? I will try that tomorrow.

Oh, maybe two lines added to config.yaml

@carrel-gr
Copy link

BTW: thanks @wozz for putting out this add-on. I originally ran the very earliest juicepassproxy on my not-so-great docker host and the combo was quite flaky. I haven't had time to work on it until now. Finding the add-on was great. And the latest additions to juicepassproxy are really great. I look forward to seeing how this continues. Big thanks to @snicker and everyone else that worked on this.

@saltydog256
Copy link

saltydog256 commented Jul 25, 2024 via email

@wozz
Copy link

wozz commented Jul 25, 2024

Hmmm, is it just a matter of adding a one line addition to each of config.yaml and run.sh?? I will try that tomorrow.

Oh, maybe two lines added to config.yaml

should be similar to wozz/ha-addons@b0ed64b

I originally had that enabled, but it was flaky for me running it that way so I switched to overriding the DNS at my router and it's been way more stable.

@carrel-gr
Copy link

OK, I thought this would be easy, but I'm missing something. I am totally new to add-ons so any help would be appreciated. I modified conffig.yaml and run.sh just the same way as the example provided by @wozz . I see the new option in the Configuration page, but when I start it, juicepassproxy never sees the UPDATE_UDPC flag being anything but false. I tried all sorts of tests, and as best I can tell, my run.sh is not being used. My config.yaml is being used, but not my run.sh in the same directory. Any ideas what I am doing wrong?

I have tried deleting my repository from the addons in HA and re-adding it. I have even rebooted the HA host.

@carrel-gr
Copy link

Interesting that my HA instance is not able to add this repository... git command fails saying repository not found. I've tried creating my own instance, but HA says not a valid repository. Any ideas?

What URL did you enter? If I use https://github.com/wozz/ha-addons it adds the @wozz repository to my HA add-on store and (after a page reload) I can see the JuicePassProxy add-on.

@carrel-gr
Copy link

Hey @wozz it appears that there is a /run.sh in your container image so the one in the ha-addons repo isn't being used. Nothing I have tried will get HA to use the run.sh from my ha-addons repo. Would it be possible for you to make a new addon version with support for the UPDATE_UDPC option? Or does someone know how I can tell it to use my run.sh in my addon repo instead of thee one in the downloaded image?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests