跳转到主要内容

Alfen Eve电动汽车充电单元的API客户端。

项目描述

Alfen Eve电动汽车充电单元的API客户端。

安装

作为CLI工具

$ pip install alfeneve[cli]

作为库

$ pip install alfeneve

配置

CLI工具使用omniconf。这允许您通过文件或环境(或两者的组合)提供任何CLI参数。

直接作为参数

$ alfen-eve --alfen-endpoint https://192.168.1.23 --alfen-username admin --alfen-password foo

使用YAML文件(请确保安装PyYAML,或使用omniconf[yaml]

$ cat settings.yaml
alfen:
  endpoint: https://192.168.1.23
  username: admin
  password: foo

 $ alfen-eve --yaml-filename settings.yaml

使用环境变量

$ ALFEN_ENDPOINT=https://192.168.1.23 ALFEN_USERNAME=admin ALFEN_PASSWORD=foo alfen-eve

API凭证

Alfen提供了一款名为ACE Service Installer(或简称Service Installer)的工具,允许您配置您的Alfen充电单元。此工具需要一个服务帐户,您可以从Alfen请求该服务帐户。

尽管API实际上并没有直接使用此帐户,但API凭证似乎是硬编码的,Service Installer要么附带此密码,要么可以从Alfen推断或请求此密码。无论如何,您可以使用Service Installer工具嗅探凭证。

目前此过程有些复杂,需要您知道如何在Windows中将自己作为代理插入到Service Installer和您的充电单元之间。大致步骤如下(使用mitmproxy

  1. 安装mitmproxy。

  2. 至少启动一次mitmproxy以生成证书:mitmproxy –listen-port 8090

  3. 将mitmproxy证书安装为受信任根证书(您可以在用户帐户中的.mitmproxy文件夹中找到它)。

  4. 启动mitmproxy mitmproxy –listen-port 8090 –insecure 并使用 Internet Options 将其设置为操作系统全局代理。

  5. 如果一切配置正确,现在您可以启动服务安装程序并使用服务帐户登录。

  6. 连接到您的Alfen充电器,并在mitmproxy窗口中查看。应该有一个请求到 /api/login。您可以在该请求中找到用户名和密码。

  7. 按照上述说明配置这些凭据。

  8. 务必将mitmproxy从操作系统全局代理中删除。

示例

作为CLI工具使用

$ alfen-eve --mode categories
category
----------
generic
generic2
accelero
temp
states
meter1
meter4
leds
ocpp
display
comm
MbusTCP

$ alfen-eve --mode properties --properties-category meter4
name                                   value  id       cat
-----------------------------  -------------  -------  ------
OD_sensOptionalEnergyMeter4      5            5217_0   meter4
OD_sensEnergyMeterType4          1            5218_0   meter4
meter4_voltageL1N              225.1          5221_3   meter4
meter4_voltageL2N              225.7          5221_4   meter4
meter4_voltageL3N              228.6          5221_5   meter4
...

作为库使用

from alfeneve.alfen import Alfen
from pprint import pprint

with Alfen("https://192.168.1.23", ("admin", "foo")) as eve:

    cats = eve.categories()
    pprint(cats)
    # ['generic',
    #  'generic2',
    #  'accelero',
    #  'temp',
    #  'states',
    #  'meter1',
    #  'meter4',
    #  'leds',
    #  'ocpp',
    #  'display',
    #  'comm',
    #  'MbusTCP']

    properties = eve.properties(category="generic")
    pprint(list(properties))
    # [<AlfenProperty(name=OD_manufacturerDeviceName, value=NG910, id=1008_0, cat=generic)>,
    #  <AlfenProperty(name=OD_manufacturerHardwareVersion, value=G0, id=1009_0, cat=generic)>,
    #  <AlfenProperty(name=OD_manufacturerSoftwareVersion, value=4.8.0-3168, id=100A_0, cat=generic)>,
    #  ... ]

许可协议

MIT

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。

源分布

alfeneve-0.6.1.tar.gz (15.6 kB 查看哈希)

上传时间

构建分布

alfeneve-0.6.1-py3-none-any.whl (13.8 kB 查看哈希)

上传时间 Python 3

支持者: