ev_smart_charging

ev_smart_charging

基于电价自动优化调度的智能电动车充电系统

EV Smart Charging是一款智能电动车充电优化系统,可根据实时电价自动规划最经济的充电时段。系统支持多种电价数据源,允许设置充电完成时间和最低电量等参数,提供多项智能充电功能。兼容多种电动车和充电设备,在满足用车需求的同时有效降低充电成本。

EV Smart Charging电动汽车智能充电电价Home AssistantGithub开源项目

电动汽车智能充电

GitHub 发布 Codecov 许可证

hacs 项目维护 赞助咖啡

图标

电动汽车智能充电集成将在电价最低时自动为电动汽车(EV)充电。该集成原生支持NordpoolEnergi Data ServiceEntso-e集成。该集成还支持通用价格格式。结合使用模板传感器,可以使用多种不同的价格集成。

该集成计算出一组能够提供最低价格的时段,默认情况下限制为连续的时段。这个计算在明天的电价可用时进行(通常在中欧时间/中欧夏令时13:00之后不久到午夜之间),或者在一天中的时间早于配置的充电完成时间时进行。当自动充电开始后,设置的更改将不会产生任何影响。

要求

功能

  • 基于电价的自动电动汽车充电控制。
  • 原生支持NordpoolEnergi Data ServiceEntso-e集成。
  • 支持通用价格格式。可以使用模板传感器从多个价格集成获取价格信息。
  • 配置每天充电应完成的最晚时间,以及充电可以开始的最早时间。
  • 选择偏好一次连续充电还是多次(可能更优化价格)非连续充电。
  • 可选设置应达到的最低电量水平,不受电价影响。
  • 可选设置仅在电价低于指定水平时充电(如果最低电量设置需要,将被忽略)。
  • 可选设置,如果明天结束时电价非常低,则进一步降低最高电价水平。
  • 可选设置,如果电量低于配置的水平,立即开始充电。
  • 可选设置,如果电价低于配置的水平,立即开始充电。
  • 可选提供电动汽车何时连接到充电器的信息。
  • 可选在充电完成后保持充电器开启,以便在出发前进行预调节,即可以从电网而不是电池进行预热/预冷。
  • 服务调用,动态控制所有影响充电的配置参数。
  • 自动检测并连接到Volkswagen We Connect IDOCPP集成。可以手动配置与其他电动汽车和充电器集成的连接。

安装

HACS

  1. 在Home Assistant中,转到HACS -> 集成。点击"+ 浏览和下载存储库",搜索"EV Smart Charging"。

在Home Assistant实例中打开,并在Home Assistant社区商店中打开存储库。

  1. 在Home Assistant中,转到设置 -> 设备和服务 -> 集成。点击"+ 添加集成"并搜索"EV Smart Charging"。

打开Home Assistant实例并开始设置新的集成。

手动安装

  1. 使用你选择的工具打开Home Assistant配置文件夹(你可以找到configuration.yaml的地方)。
  2. 如果你没有custom_components文件夹,需要创建一个。
  3. custom_components文件夹中创建一个名为ev_smart_charging的新文件夹。
  4. 从本存储库的custom_components/ev_smart_charging/文件夹下载_所有_文件。
  5. 将下载的文件放在你创建的新文件夹中。
  6. 重启Home Assistant。
  7. 在Home Assistant中,转到设置 -> 设备和服务 -> 集成。点击"+ 添加集成"并搜索"EV Smart Charging"。

配置

配置在Home Assistant用户界面中完成。

配置表单包含集成交互的实体。

参数必填描述
名称实例的名称。
电价实体Nordpool、Energi Data Service、Entso-e集成传感器实体,或提供通用价格格式价格的模板传感器。对于Entso-e集成,应使用名为sensor.average_electricity_price_today的实体。
电动汽车电量实体车辆电量状态的实体。值在0到100之间。请注意,这个实体对集成至关重要。如果无法获得实时电量信息,请仔细阅读下面关于电动汽车电量实体的更多信息。
电动汽车目标电量实体电量状态目标值的实体。值在0到100之间。如果未提供,假定为100。
充电器控制开关实体如果提供,集成将通过将此实体的状态设置为"开"或"关"来直接控制充电器。
通过电动汽车集成控制充电如果使用电动汽车集成(而不是充电器集成)来控制充电的开始/停止,请选择此项。另外,如果使用电动汽车集成来控制充电的开始/停止,强烈建议创建一个自动化来控制switch.ev_smart_charging_ev_connected

除了名称外,上述配置项可以在初始配置后在设置 -> 设备和服务 -> 集成 -> EV Smart Charging -> 1个设备 -> 配置中进行更改。要更改名称,可以使用Home Assistant中重命名集成或设备的原生方式。

影响充电方式的其他参数作为配置实体提供。这些实体可以放置在仪表板上,并可以使用自动化进行控制。

配置实体

实体类型描述、有效值范围和服务调用
select.ev_smart_charging_charge_start_time选择每天充电开始的最早时间。如果选择"None",则不会对开始时间有明确限制。有效选项:"00:00"、"01:00"、...、"23:00"和"None"。可通过服务调用select.select_option设置。
select.ev_smart_charging_charge_completion_time选择每天充电达到目标电量的最晚时间。如果选择"None",充电将使用所有有价格信息的时间段进行优化,包括在明天的价格可用之前。有效选项:"00:00"、"01:00"、...、"23:00"和"None"。可通过服务调用select.select_option设置。
number.ev_smart_charging_charging_speed数字充电速度,以每小时百分比表示。例如,如果电动车电池容量为77 kWh,充电器可提供11 kW(三相16 A),则将此参数设置为14.3(11/77*100)。如果充电功率有限制,建议选择较小的数值。尝试看看哪个适合你!有效值:最小=0.1,步长=0.1,最大=100。可通过服务调用number.set_value设置。
number.ev_smart_charging_electricity_price_limit数字如果激活了switch.ev_smart_charging_apply_price_limit开关,当电价高于此限制时将不会充电。注意,这可能导致电动车无法充到目标电量。有效值:最小=-10000,步长=0.01,最大=10000。可通过服务调用number.set_value设置。
number.ev_smart_charging_minimum_ev_soc数字计划充电时应充到的最低电量百分比,不受电价影响。有效值:最小=0,步长=1,最大=100。可通过服务调用number.set_value设置。
number.ev_smart_charging_opportunistic_level数字如果激活了switch.ev_smart_charging_opportunistic_charging开关,当当天结束时的价格低于电价限制 * 机会主义水平 / 100时,价格限制会进一步降低。例如,如果机会主义水平设为50,价格限制将设为电价限制的50%。如果明天的价格可用,将使用明天结束时的价格作为触发器。有效值:最小=0,步长=1,最大=100。可通过服务调用number.set_value设置。
number.ev_smart_charging_low_soc_charging_level数字如果激活了switch.ev_smart_charging_low_soc_charging开关,当电动车电量低于此水平时将立即充电。有效值:最小=0.0,步长=1.0,最大=100。可通过服务调用number.set_value设置。
number.ev_smart_charging_low_price_charging_level数字如果激活了switch.ev_smart_charging_low_price_charging开关,当电价低于此水平时将立即充电。有效值:最小=-10000,步长=0.01,最大=10000。可通过服务调用number.set_value设置。

实体

实体类型描述
sensor.ev_smart_charging_charging传感器状态为"on"或"off"。可用于自动化控制电动车充电器。
sensor.ev_smart_charging_status传感器状态为以下之一:"等待新价格"、"无计划充电"、"等待充电开始"、"充电中"、"保持充电器开启"、"低价充电"、"低电量充电"、"已断开连接"和"智能充电未激活"。
switch.ev_smart_charging_smart_charging_activated开关开启或关闭电动车智能充电集成。
switch.ev_smart_charging_apply_price_limit开关应用价格限制。
switch.ev_smart_charging_opportunistic_charging开关激活机会主义充电。参见配置实体number.ev_smart_charging_opportunistic_level的描述。此功能要求"电价限制"功能开启。
switch.ev_smart_charging_low_soc_charging开关当电动车电量低于配置水平时立即激活充电。强烈建议创建一个自动化来控制switch.ev_smart_charging_ev_connected,如果此开关设置为开启。注意,此充电不会显示为计划充电。典型用例是在回家时直接将电动车充电到最低水平,然后在价格最低时使用计划充电进行完全充电。
switch.ev_smart_charging_low_price_charging开关当电价低于配置水平时立即激活充电。强烈建议创建一个自动化来控制switch.ev_smart_charging_ev_connected,如果此开关设置为开启。注意,此充电不会显示为计划充电。
switch.ev_smart_charging_continuous_charging_preferred开关如果开启,将基本安排一次连续的充电会话。如果关闭,将在电价最低的时段安排充电,即使这些时段不连续。
switch.ev_smart_charging_keep_charger_on开关如果为"on",sensor.ev_smart_charging_charging在完成充电周期后不会关闭。此功能旨在在出发前启用预处理,即预热/预冷可以从电网而不是电池进行。如果使用此选项,"电价限制"功能将被关闭,反之亦然。注意为使此功能正常工作,需要适当控制switch.ev_smart_charging_ev_connected。另外,假设电动车本身在达到目标电量时会停止充电。
switch.ev_smart_charging_ev_connected开关告诉集成电动车已连接到充电器。最好通过自动化控制(见下面的示例)。可以避免在充电应开始时电动车未连接到充电器的问题。使用它还可以确保在电动车未连接到充电器时将sensor.ev_smart_charging_charging设置为"off"。
button.ev_smart_charging_manually_start_charging按钮手动开始充电。这完全独立于自动充电。
button.ev_smart_charging_manually_stop_charging按钮手动停止充电。这完全独立于自动充电。

传感器属性

传感器sensor.ev_smart_charging_charging具有以下属性。

属性描述
current_price来自电价实体的当前价格。
ev_soc电动车电量实体报告的当前电量百分比。
ev_target_soc电动车目标电量实体报告的目标电量百分比。
charging_is_planned如果计划了充电则为true,否则为false。充电完成后设置为false
charging_start_time如果计划了充电,充电将开始的日期和时间。
charging_stop_time如果计划了充电,充电将停止的日期和时间。
charging_number_of_hours如果计划了充电,将进行充电的小时数。如果激活了apply_price_limit开关,这可能少于开始和停止时间之间的小时数。
raw_two_days来自电价实体的今天和明天的电价。
charging_schedule计算出的充电计划。可用于ApexCharts卡片来可视化计划的充电,见下文。

Lovelace UI

ApexCharts Card可用于创建以下类型的图表。黑线显示自动充电将在何时进行。 根据所使用的价格单位,修改unitfloat_precisioncolor_threshold的设置。例如,如果使用价格单位SEK/kWh,请更改以下示例中的行。

        unit: ' SEK/kWh'

        float_precision: 2

        color_threshold:
          - value: -1
            color: cyan
          - value: 0
            color: green
          - value: 0.4
            color: orange
          - value: 1
            color: red
          - value: 2
            color: magenta
          - value: 5
            color: black

图表

type: vertical-stack
cards:
  - type: custom:apexcharts-card
    now:
      show: true
      label: 现在
      color: '#ffc0cb'
    locale: zh
    header:
      show: true
      title: 电动汽车智能充电
      show_states: true
    graph_span: 2d
    yaxis:
      - min: ~0
        apex_config:
          forceNiceScale: true
    span:
      start: day
    apex_config:
      legend:
        show: false
      xaxis:
        labels:
          show: true
          format: HH
          rotate: -45
          rotateAlways: true
          hideOverlappingLabels: true
          style:
            fontSize: 10
            fontWeight: 10
    series:
      - entity: sensor.ev_smart_charging_charging
        name: 电价
        unit: ' 欧分/kWh'
        data_generator: >
          return entity.attributes.raw_two_days.map((entry) => { return [new
          Date(entry.start), entry.value]; });
        type: line
        float_precision: 0
        show:
          in_header: before_now
        extend_to: false
        color_threshold:
          - value: -100
            color: cyan
          - value: 0
            color: green
          - value: 40
            color: orange
          - value: 100
            color: red
          - value: 200
            color: magenta
          - value: 500
            color: black
      - entity: sensor.ev_smart_charging_charging
        name: 充电
        data_generator: >
          return entity.attributes.charging_schedule.map((entry) => { return
          [new Date(entry.start), entry.value]; });
        type: area
        curve: stepline
        color: black
        show:
          in_header: false
        extend_to: false
    experimental:
      color_threshold: true
  - type: entities
    entities:
      - entity: sensor.ev_smart_charging_charging
        name: 充电
      - entity: switch.ev_smart_charging_smart_charging_activated
        name: 智能充电已激活
      - entity: switch.ev_smart_charging_apply_price_limit
        name: 应用价格限制
      - entity: switch.ev_smart_charging_opportunistic_charging
        name: 机会充电
      - entity: switch.ev_smart_charging_continuous_charging_preferred
        name: 首选连续充电
      - entity: switch.ev_smart_charging_keep_charger_on
        name: 保持充电器开启
      - entity: switch.ev_smart_charging_low_price_charging
        name: 低价充电
      - entity: switch.ev_smart_charging_low_soc_charging
        name: 低电量充电
      - entity: button.ev_smart_charging_manually_start_charging
        name: 手动开始充电
      - entity: button.ev_smart_charging_manually_stop_charging
        name: 手动停止充电
    title: 电动汽车智能充电
    show_header_toggle: false
  - type: entity
    entity: sensor.ev_smart_charging_status
    name: 状态
  - type: entity
    entity: sensor.ev_smart_charging_charging
    attribute: EV SOC
    name: 电动汽车电量
    icon: mdi:battery-70
    unit: '%'

与电动汽车集成

电动汽车SOC实体

如果电动汽车SOC不是作为实体的状态而是作为状态属性提供,例如一个名为sensor.my_ev的传感器具有EV SOC属性,那么可以通过以下三个步骤进行配置使用。

  1. 在设置 -> 设备和服务 -> 助手中创建一个数字助手(例如命名为"SOC",通常会创建一个实体input_number.soc
  2. 创建一个自动化,将此数字助手的值设置为状态属性的值。
  3. 在配置此集成时,使用助手实体input_number.soc作为EV SOC实体
alias: 电动汽车SOC
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.my_ev
    attribute: EV SOC
condition: []
action:
  - service: input_number.set_value
    data:
      value: "{{ state_attr('sensor.my_ev', 'EV SOC') }}"
    target:
      entity_id: input_number.soc
mode: single

本集成的许多功能依赖于知道电动汽车SOC。然而,如果无法获取此信息,仍然可以使用此集成来控制充电器。在这种情况下,在设置 -> 设备和服务 -> 助手中创建一个数字助手(例如命名为"SOC",通常会创建一个实体input_number.soc),然后在配置集成时使用此实体。为了使集成良好运行,SOC的值应在充电周期之间变化。建议的方法是在充电完成时将SOC值设置为100,然后在开始下一个充电周期时将其设置为适当的值。

例如,如果SOC实体设置为60,目标SOC实体设置为100(或未配置),充电速度参数设置为10,那么将有4小时的充电时间,(100-60)/10 = 4。

电动汽车目标SOC实体

如果电动汽车目标SOC作为状态属性提供,可以使用与上述电动汽车SOC类似的解决方案。

如果没有提供电动汽车目标SOC的集成,可以在设置 -> 设备和服务 -> 助手中创建一个数字助手(例如命名为"目标SOC",通常会创建一个实体input_number.target_soc),然后在配置集成时使用此实体。

与充电器集成

如果您的充电器集成没有提供此集成可用于控制的开关实体,那么在许多情况下,可以通过自动化来建立此集成与充电器集成之间的连接。

此外,如果有关电动汽车连接到充电器的信息可用,自动化可以将该信息提供给集成,以改善在计划开始充电时车辆未连接到充电器的情况处理。

以下提供了一些示例。更多示例可以在Wiki页面中找到。

开始充电的自动化示例

alias: 电动汽车智能充电 - 开始
description: ""
mode: single
trigger:
  - platform: state
    entity_id:
      - sensor.ev_smart_charging_charging
    from: "off"
    to: "on"
condition: []
action:
  - service: easee.set_circuit_dynamic_limit
    data:
      charger_id: exxxxxxx(替换为您的充电器ID,可以在Easee应用程序中找到(充电器设置 -> 关于 -> 序列号))
      currentP1: 16(替换为您首选的充电电流)

请将action:的内容替换为适合您充电器的内容。

停止充电的自动化示例

alias: 电动车智能充电 - 停止
description: ""
mode: single
trigger:
  - platform: state
    entity_id:
      - sensor.ev_smart_charging_charging
    from: "on"
    to: "off"
condition: []
action:
  - service: easee.set_circuit_dynamic_limit
    data:
      charger_id: exxxxxxx (替换为您的充电器ID,可在Easee应用中找到(充电器设置 -> 关于 -> 序列号))
      currentP1: 0 (设置为低于6的值以停止充电)

请将action:的内容替换为适合您充电器的内容。

通知集成电动车已连接充电器的自动化示例

alias: 电动车智能充电 - 电动车已连接
description: ""
trigger:
  - platform: state
    entity_id:
      - sensor.ocpp_status_connector
condition: []
action:
  - if:
      - condition: state
        entity_id: sensor.ocpp_status_connector
        state: Preparing
    then:
      - service: switch.turn_on
        data: {}
        target:
          entity_id: switch.ev_smart_charging_ev_connected
    else:
      - if:
          - condition: state
            entity_id: sensor.ocpp_status_connector
            state: Available
        then:
          - service: switch.turn_off
            data: {}
            target:
              entity_id: switch.ev_smart_charging_ev_connected
mode: single

验证配置

要验证集成是否能够控制充电,请转到设置 -> 设备和服务 -> 集成 -> 电动车智能充电 -> 1个设备 -> 控制。

  1. 将电动车连接到充电器。
  2. 按下手动开始充电。
  3. 检查充电是否开始。
  4. 按下手动停止充电。
  5. 检查充电是否停止。
  6. 按下手动开始充电。
  7. 检查充电是否开始。

如果以上步骤都正常工作,说明集成能够控制充电。

编辑推荐精选

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

Hunyuan3D-2

Hunyuan3D-2

高分辨率纹理 3D 资产生成

Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。

3FS

3FS

一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。

3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。

下拉加载更多