Skip to content

Conversation

@zwartevogel
Copy link

New API url, AES encryption thanks to all effort in this topic remuslazar/homeassistant-carwings#100

New API url, AES encryption thanks to all effort in this topic remuslazar/homeassistant-carwings#100
@jmason
Copy link

jmason commented Jul 3, 2025

I can confirm that this fixes the issue (at least in my HomeAssistant install). lgtm :)

@zwartevogel zwartevogel marked this pull request as draft July 3, 2025 19:26
Removed the old password encryption method
@zwartevogel zwartevogel marked this pull request as ready for review July 3, 2025 19:30
@remuslazar
Copy link

@zwartevogel thank you for this PR, very cool! Unfortunately I cannot test it but I will trust the community here that it works fine.

Will merge this PR now, fix the failing CI tests and release a new version later today. 👍

@remuslazar remuslazar merged commit 79e4e3d into ev-freaks:master Jul 3, 2025
0 of 2 checks passed
mekrapp added a commit to mekrapp/core that referenced this pull request Jul 10, 2025
The vehicle module for fetching the SoC of NISSAN Leaf is using the library pycarwings3.
NISSAN has changed the URL of its API as well as the method of encryption from Blowfish to AES.
Details see remuslazar/homeassistant-carwings#100
New API is at URL https://gdcportalgw.its-mo.com/api_v250205_NE/gdc/

Many thanks to @remuslazar and @zwartevogel who already updated pycarwings3 to version 0.7.14, 
see ev-freaks/pycarwings3#14 
and remuslazar/homeassistant-carwings#101
With this PR the changed pycarwings3 library will be introduced into openWB2 V2.1.8 Alpha.1 &.2 by rising the version No of pycarwings3 from 0.7.13 to 0.7.14 in requirements.txt.
LKuemmel added a commit to openWB/core that referenced this pull request Jul 11, 2025
* Create __init__.py

* Add files via upload

* Add files via upload

includes newest Base URL to Nissan API: https://gdcportalgw.its-mo.com/api_v230317_NE/gdc/

* Add files via upload

copied 1:1 from OpenWB V1.9

* Add files via upload

included module "fetch-soc" is derived from former soc.py in OpenWB V1.9

* Update soc.py

* Update soc.py

* Update soc.py

* Update soc.py

* Update responses.py

* Update packages/modules/vehicles/leaf/soc.py

Co-authored-by: LKuemmel <[email protected]>

* Update soc.py

Ich habe Anzahl der Wartezyklen noch von 3 auf 9 erhöht, also insgesamt 3 Minuten Wartezeit. Bis dahin müsste der Nissan Server den Leaf in jedem Fall erreicht haben. Falls nicht, kehrt requestSoc() nach drei Minuten ohne Update des SoC auf dem Server zurück und das anschließende readSoc holt sich dann halt nur den alten SoC vom Server. In der Zeit haben die Funktionen von pycarwings2 und responses auch genug Zeit für Einträge ins Logging für eine evtl. notwendige Fehleranalyse.

* Update __init__.py

empty line at end of file removed accoring to warning from test run on Jul 15.

* Update __init__.py

* Update __init__.py

* Update __init__.py

empty line removed at end of file

* Update pycarwings2.py

At import instruction wildcard * replaced by the names of the classes to be imported

* Update pycarwings2.py

trailing spaces removed

* Update __init__.py

Empty line at end of file removed

* Update soc.py

missing whitespace after "," added

* Update __init__.py

* Delete packages/modules/vehicles/leaf/__init__.py

still a LF inside, that I can't delete. So I will replace  __init__.py by a really empty file to get flake 8 quiet

* Add files via upload

* Update requirements.txt

pycarwings2 added to load this library (for the SOC module of Nissan Leaf) during start

* Update packages/modules/vehicles/leaf/soc.py

Co-authored-by: LKuemmel <[email protected]>

* Delete packages/modules/vehicles/leaf/pycarwings2.py

File deleted at this position as requested

* Delete packages/modules/vehicles/leaf/responses.py

File deleted at this position as requested

* Delete packages/modules/vehicles/leaf/soc.py

soc.py using pycarwings2 removed

* Add files via upload

api.py using pycarwings3 uploaded.
api_wo_CarState.py using pycarwings3 uploaded.
test_fetch_soc.py using fetch_soc within api_wo_CarState uploaded.
test_fetch_soc.py is able to run standalone, i.e. without OpenWB overhead. 
It prints the whole logging of interaction with the Nissan server on console and finishes with the SoC of the Nissan Leaf.
Enter your user ID and password before running.
This package is using https://github.com/ev-freaks/pycarwings3 from @remuslazar

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

replace requirements.txt with a version that includes pycarwings3.

* Update api.py

Definition/Import für Klasse CarState ergänzt.

* Update api.py

Name of parameter "vnum" within fetch_soc() changed to "charge_point".

* Update api.py

chargepoint

* Update config.py

variable "region" added.
variable "name" changed to "Nissan Leaf/NV200 -05.2019 (experimental)".

* Update soc.py

variable "region" added
parameter "calc_while_charging" added and preset to False

* Update api.py

variable "region" added

* Update config.py

Variable "region" added in line 5.

* Update api.py

* Update api.py

Parameter range added

* Update api.py

Import-Pfad zur config.py korrigiert

* Update api.py

fetching time stamp added

* Update soc.py

"charge_point" renamed to "vehicle" (missunderstanding)

* Update api.py

"chargepoint" renamed to "vehicle"
"LP" renamed to "vehicle"

* Delete packages/modules/vehicles/leaf/api_wo_CarState.py

needed for test purpose only

* Delete packages/modules/vehicles/leaf/test_fetch_soc.py

needed for test purpose only

* Update soc.py

trailing whitespaces removed

* Update api.py

according to flake8:
trailing whitespace removed.
import of LeafSoc und LeafConfiguration removed (not used).
comment shortened.
blank line added

* Update api.py

whitespaces removed

* Update soc.py

calc_while_charging removed

* Update soc.py

variable "vehicle" renamed to "charge_point"

* Update soc.py

trailing whitespaces removed

* Mock pycarwings3 for pytest

* Update requirements.txt - rise version of pycarwings3 to 0.7.14

The vehicle module for fetching the SoC of NISSAN Leaf is using the library pycarwings3.
NISSAN has changed the URL of its API as well as the method of encryption from Blowfish to AES.
Details see remuslazar/homeassistant-carwings#100
New API is at URL https://gdcportalgw.its-mo.com/api_v250205_NE/gdc/

Many thanks to @remuslazar and @zwartevogel who already updated pycarwings3 to version 0.7.14, 
see ev-freaks/pycarwings3#14 
and remuslazar/homeassistant-carwings#101
With this PR the changed pycarwings3 library will be introduced into openWB2 V2.1.8 Alpha.1 &.2 by rising the version No of pycarwings3 from 0.7.13 to 0.7.14 in requirements.txt.

---------

Co-authored-by: LKuemmel <[email protected]>
LKuemmel added a commit to openWB/core that referenced this pull request Jul 18, 2025
* Create __init__.py

* Add files via upload

* Add files via upload

includes newest Base URL to Nissan API: https://gdcportalgw.its-mo.com/api_v230317_NE/gdc/

* Add files via upload

copied 1:1 from OpenWB V1.9

* Add files via upload

included module "fetch-soc" is derived from former soc.py in OpenWB V1.9

* Update soc.py

* Update soc.py

* Update soc.py

* Update soc.py

* Update responses.py

* Update packages/modules/vehicles/leaf/soc.py

Co-authored-by: LKuemmel <[email protected]>

* Update soc.py

Ich habe Anzahl der Wartezyklen noch von 3 auf 9 erhöht, also insgesamt 3 Minuten Wartezeit. Bis dahin müsste der Nissan Server den Leaf in jedem Fall erreicht haben. Falls nicht, kehrt requestSoc() nach drei Minuten ohne Update des SoC auf dem Server zurück und das anschließende readSoc holt sich dann halt nur den alten SoC vom Server. In der Zeit haben die Funktionen von pycarwings2 und responses auch genug Zeit für Einträge ins Logging für eine evtl. notwendige Fehleranalyse.

* Update __init__.py

empty line at end of file removed accoring to warning from test run on Jul 15.

* Update __init__.py

* Update __init__.py

* Update __init__.py

empty line removed at end of file

* Update pycarwings2.py

At import instruction wildcard * replaced by the names of the classes to be imported

* Update pycarwings2.py

trailing spaces removed

* Update __init__.py

Empty line at end of file removed

* Update soc.py

missing whitespace after "," added

* Update __init__.py

* Delete packages/modules/vehicles/leaf/__init__.py

still a LF inside, that I can't delete. So I will replace  __init__.py by a really empty file to get flake 8 quiet

* Add files via upload

* Update requirements.txt

pycarwings2 added to load this library (for the SOC module of Nissan Leaf) during start

* Update packages/modules/vehicles/leaf/soc.py

Co-authored-by: LKuemmel <[email protected]>

* Delete packages/modules/vehicles/leaf/pycarwings2.py

File deleted at this position as requested

* Delete packages/modules/vehicles/leaf/responses.py

File deleted at this position as requested

* Delete packages/modules/vehicles/leaf/soc.py

soc.py using pycarwings2 removed

* Add files via upload

api.py using pycarwings3 uploaded.
api_wo_CarState.py using pycarwings3 uploaded.
test_fetch_soc.py using fetch_soc within api_wo_CarState uploaded.
test_fetch_soc.py is able to run standalone, i.e. without OpenWB overhead. 
It prints the whole logging of interaction with the Nissan server on console and finishes with the SoC of the Nissan Leaf.
Enter your user ID and password before running.
This package is using https://github.com/ev-freaks/pycarwings3 from @remuslazar

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

replace requirements.txt with a version that includes pycarwings3.

* Update api.py

Definition/Import für Klasse CarState ergänzt.

* Update api.py

Name of parameter "vnum" within fetch_soc() changed to "charge_point".

* Update api.py

chargepoint

* Update config.py

variable "region" added.
variable "name" changed to "Nissan Leaf/NV200 -05.2019 (experimental)".

* Update soc.py

variable "region" added
parameter "calc_while_charging" added and preset to False

* Update api.py

variable "region" added

* Update config.py

Variable "region" added in line 5.

* Update api.py

* Update api.py

Parameter range added

* Update api.py

Import-Pfad zur config.py korrigiert

* Update api.py

fetching time stamp added

* Update soc.py

"charge_point" renamed to "vehicle" (missunderstanding)

* Update api.py

"chargepoint" renamed to "vehicle"
"LP" renamed to "vehicle"

* Delete packages/modules/vehicles/leaf/api_wo_CarState.py

needed for test purpose only

* Delete packages/modules/vehicles/leaf/test_fetch_soc.py

needed for test purpose only

* Update soc.py

trailing whitespaces removed

* Update api.py

according to flake8:
trailing whitespace removed.
import of LeafSoc und LeafConfiguration removed (not used).
comment shortened.
blank line added

* Update api.py

whitespaces removed

* Update soc.py

calc_while_charging removed

* Update soc.py

variable "vehicle" renamed to "charge_point"

* Update soc.py

trailing whitespaces removed

* Mock pycarwings3 for pytest

* Update requirements.txt - rise version of pycarwings3 to 0.7.14

The vehicle module for fetching the SoC of NISSAN Leaf is using the library pycarwings3.
NISSAN has changed the URL of its API as well as the method of encryption from Blowfish to AES.
Details see remuslazar/homeassistant-carwings#100
New API is at URL https://gdcportalgw.its-mo.com/api_v250205_NE/gdc/

Many thanks to @remuslazar and @zwartevogel who already updated pycarwings3 to version 0.7.14, 
see ev-freaks/pycarwings3#14 
and remuslazar/homeassistant-carwings#101
With this PR the changed pycarwings3 library will be introduced into openWB2 V2.1.8 Alpha.1 &.2 by rising the version No of pycarwings3 from 0.7.13 to 0.7.14 in requirements.txt.

---------

Co-authored-by: LKuemmel <[email protected]>
LKuemmel added a commit to openWB/core that referenced this pull request Aug 14, 2025
* bidi draft

* typos

* fixes

* fixes

* fixes

* flake8

* pytest

* fix pytest

* rename

* rename pro mode

* fixes

* workaround max current

* fix zero point control mode

* max_discharge_power

* calc max discharge power

* Exception

* fix extend meter check (#2518)

* fix phases scheduled charging combined with time charging (#2521)

* add path (#2520)

* create empty thread errors log (#2524)

* loose limits for hardware check (#2525)

* loose limits for hardware check

* fix

* fixes

* set zeor point to evu counter

* fix

* fix max bidi current

* flake8

* Only display time charging plans if time charging is activated (#2523)

* Build Web Theme: Koala

* use queue and listener for logging (#2528)

* use queue and listener for logging

* flake8

* log top (#2529)

* fix merge update_config

* disable screen timeout (#2535)

* SolarEdge Speichersteuerung mit Battery Index (#2269)

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update bat.py

* Update power_limit sign

* fix SDM120 (#2536)

* throttled state (#2541)

* Fix SoC slider displayed for standard fahrzeug (#2540)

* Build Web Theme: Koala

* GoodWe second battery; fix no attribute error (#2539)

* add second battery and update config

* fix no attribute error

* fix register adresses

* GoodWe second battery - fix index detection (#2546)

* add second battery and update config

* fix no attribute error

* fix register adresses

* detect battery index

* Wiki SolarEdge Speichersteuerung (#2537)

* Wiki SolarEdge Speichersteuerung

* Change Default SoC-Reserve

* Change Default min_soc (#2543)

* Fix - New Vehicle soc slider visible when SoC module present (Vehicle Cards) (#2542)

* Build Web Theme: Koala

* remove unused assignment of response headers (#2544)

* Update requirements.txt - rise version of pycarwings3 to 0.7.14 (#2545)

* Create __init__.py

* Add files via upload

* Add files via upload

includes newest Base URL to Nissan API: https://gdcportalgw.its-mo.com/api_v230317_NE/gdc/

* Add files via upload

copied 1:1 from OpenWB V1.9

* Add files via upload

included module "fetch-soc" is derived from former soc.py in OpenWB V1.9

* Update soc.py

* Update soc.py

* Update soc.py

* Update soc.py

* Update responses.py

* Update packages/modules/vehicles/leaf/soc.py

Co-authored-by: LKuemmel <[email protected]>

* Update soc.py

Ich habe Anzahl der Wartezyklen noch von 3 auf 9 erhöht, also insgesamt 3 Minuten Wartezeit. Bis dahin müsste der Nissan Server den Leaf in jedem Fall erreicht haben. Falls nicht, kehrt requestSoc() nach drei Minuten ohne Update des SoC auf dem Server zurück und das anschließende readSoc holt sich dann halt nur den alten SoC vom Server. In der Zeit haben die Funktionen von pycarwings2 und responses auch genug Zeit für Einträge ins Logging für eine evtl. notwendige Fehleranalyse.

* Update __init__.py

empty line at end of file removed accoring to warning from test run on Jul 15.

* Update __init__.py

* Update __init__.py

* Update __init__.py

empty line removed at end of file

* Update pycarwings2.py

At import instruction wildcard * replaced by the names of the classes to be imported

* Update pycarwings2.py

trailing spaces removed

* Update __init__.py

Empty line at end of file removed

* Update soc.py

missing whitespace after "," added

* Update __init__.py

* Delete packages/modules/vehicles/leaf/__init__.py

still a LF inside, that I can't delete. So I will replace  __init__.py by a really empty file to get flake 8 quiet

* Add files via upload

* Update requirements.txt

pycarwings2 added to load this library (for the SOC module of Nissan Leaf) during start

* Update packages/modules/vehicles/leaf/soc.py

Co-authored-by: LKuemmel <[email protected]>

* Delete packages/modules/vehicles/leaf/pycarwings2.py

File deleted at this position as requested

* Delete packages/modules/vehicles/leaf/responses.py

File deleted at this position as requested

* Delete packages/modules/vehicles/leaf/soc.py

soc.py using pycarwings2 removed

* Add files via upload

api.py using pycarwings3 uploaded.
api_wo_CarState.py using pycarwings3 uploaded.
test_fetch_soc.py using fetch_soc within api_wo_CarState uploaded.
test_fetch_soc.py is able to run standalone, i.e. without OpenWB overhead. 
It prints the whole logging of interaction with the Nissan server on console and finishes with the SoC of the Nissan Leaf.
Enter your user ID and password before running.
This package is using https://github.com/ev-freaks/pycarwings3 from @remuslazar

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

replace requirements.txt with a version that includes pycarwings3.

* Update api.py

Definition/Import für Klasse CarState ergänzt.

* Update api.py

Name of parameter "vnum" within fetch_soc() changed to "charge_point".

* Update api.py

chargepoint

* Update config.py

variable "region" added.
variable "name" changed to "Nissan Leaf/NV200 -05.2019 (experimental)".

* Update soc.py

variable "region" added
parameter "calc_while_charging" added and preset to False

* Update api.py

variable "region" added

* Update config.py

Variable "region" added in line 5.

* Update api.py

* Update api.py

Parameter range added

* Update api.py

Import-Pfad zur config.py korrigiert

* Update api.py

fetching time stamp added

* Update soc.py

"charge_point" renamed to "vehicle" (missunderstanding)

* Update api.py

"chargepoint" renamed to "vehicle"
"LP" renamed to "vehicle"

* Delete packages/modules/vehicles/leaf/api_wo_CarState.py

needed for test purpose only

* Delete packages/modules/vehicles/leaf/test_fetch_soc.py

needed for test purpose only

* Update soc.py

trailing whitespaces removed

* Update api.py

according to flake8:
trailing whitespace removed.
import of LeafSoc und LeafConfiguration removed (not used).
comment shortened.
blank line added

* Update api.py

whitespaces removed

* Update soc.py

calc_while_charging removed

* Update soc.py

variable "vehicle" renamed to "charge_point"

* Update soc.py

trailing whitespaces removed

* Mock pycarwings3 for pytest

* Update requirements.txt - rise version of pycarwings3 to 0.7.14

The vehicle module for fetching the SoC of NISSAN Leaf is using the library pycarwings3.
NISSAN has changed the URL of its API as well as the method of encryption from Blowfish to AES.
Details see remuslazar/homeassistant-carwings#100
New API is at URL https://gdcportalgw.its-mo.com/api_v250205_NE/gdc/

Many thanks to @remuslazar and @zwartevogel who already updated pycarwings3 to version 0.7.14, 
see ev-freaks/pycarwings3#14 
and remuslazar/homeassistant-carwings#101
With this PR the changed pycarwings3 library will be introduced into openWB2 V2.1.8 Alpha.1 &.2 by rising the version No of pycarwings3 from 0.7.13 to 0.7.14 in requirements.txt.

---------

Co-authored-by: LKuemmel <[email protected]>

* fix manual soc: manual_soc=0% (#2548)

* fix manual soc: manual_soc=0%

* flake8

* get counter state (#2549)

* Widen the main layout area and display 3 cards on screen > 1400px (#2547)

* pytest

* Build Web Theme: Koala

* Revert "Widen the main layout area and display 3 cards on screen > 1400px (#2…" (#2550)

This reverts commit 2819727.

* Build Web Theme: Koala

* fix power limit init (#2555)

* new SoC module Cupra (#2553)

* add cupra connect soc

* add docu

* fix manual soc (#2560)

* reset fault state at init for tariffs, backup clouds and vehicles (#2562)

* fix template id must be int not str (#2566)

* fix template id must be int not str

* flake8

* adjust factors of phase values (#2564)

* fix Meter_Power Nonetype (#2563)

* evu kit: clean up code (#2559)

* evu kit: clean up code

* flake8

* component-wise error handling (#2557)

* info-box for new features (#2515)

* info-box for new features

* flake8

* fix component-wise error handling (#2568)

* fix merge

* add max dis/charge power

* test charge_template

* integration test bidi charging

* draft

* bidi in scheduled charging

* fixes

* fixes

* fix test

* unused code

---------

Co-authored-by: ndrsnhs <[email protected]>
Co-authored-by: BrettS <[email protected]>
Co-authored-by: LKuemmel <[email protected]>
Co-authored-by: cr0i <[email protected]>
Co-authored-by: vuffiraa72 <[email protected]>
Co-authored-by: mekrapp <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants