Feyree WIFI smart EV charger

Hi everyone. I have bought the ev charger with dlb function which comes with the adl 200 energy meter. I have already set it up on HomeAssistant (not permanently installed yet on my electrical system) and I can get all the attributes of the charger. I can change the amps the delay time and all the functions that you change with tuya app. My question is :Do you need to install the meter for the dlb to work through HomeAssistant or not? As I can see there is no need to, but I want to be sure before I proceed with the final installation of the charger. Many thanks in advance

Help needed on build a YAML for a Feyree 1 Phase 7Kw Charger
 and where to put?

In Short:
How do i add a device to LocalTuya by an YAML File?

Hi, i have a Feyree 1 Phase 7Kw Charger, and i have a running “LocalTuya integration” under HACS.
My Charger was discovered by the HACS “Xtend Tuya”, so i could download the Diagnostic Data, so i found the existing DPS_Strings.
Xtend Tuya only shows me the Sensors Balance Energy, Charge Energy, Work State and the Configuration Clear energy, Schalter (=Switch) and “Work mode” with the options Real time charging, Charge to percentage, Charge Energy, Scheduled charge. Nothing else. Maybe “Schalter” could be the one which starts the charging, but there is no reaction of the physical device if i press the “Schalter”. Even if i switch the Work Mode to “Charge to percentage”, i can not set the percentage. There are no hidden Entitys.

With this Information, i found this YAML very close to my Feyree:
esphome-feyree-ev-charger/feyreeev.yaml at 2e05e626f931199ccd11db7b09e42659b990ec94 · vm03/esphome-feyree-ev-charger · GitHub (But this is a ESP32 modification!)
or
cf6b00d (This looks very close to my DPS)
Close enough so i can edit with my “Try and Error” modification.

How can i integrate this or better my modified YAML to the LocalTuya?

When i add this device to my LocalTuya, it is auto discovered, but i need to add every single DPS by Hand by an more than uncomfortable Way, and in a case of mistake i need to delete the whole device and start again from zero. E.g. i added the DPS 123 (value:False) as an binary sensor, because of the “false”: But 123 is in fact not a sensor, it is the Switch “Start Charging”. I did not find a way to change the type of an entity in LocalTuya after i insert it. So, i think it is easier to modify it direct in a YAML File


But how do i add a device to LocalTuya by an YAML File?
I thought i only need to put the new File with “Studio Code Server” at the newly created Directory /config/custom_components/localtuya/devices/feyree_1Phase_ev_charger_rfid.yaml
but nothing happend in LocalTuya. Or is there a special way i need to follow to select this YAML for my new device?
If i try to delete the old, wrong by hand configured Device, i get the error Error on deleting the Device: “Unknown error” (German:

Fehler beim Löschen des GerÀts
Unknown Error
[OK]
After a Homeassistant Reboot i could first deactivate the device and then delete.

For my first try i use the “close enough” file, changed the first lines to
name: EV charger
products:

id: bf51e4686a8a0586b9stda
name: Feyree 32A 85-264V 1 phase EV charger

and save this YAML File here:
/config/custom_components/localtuya/devices/feyree_1Phase_ev_charger_rfid.yaml
But

After i delete, i could add the autodiscovered Device. LocalTuya identifies the Host Adress, the Device ID, the local Key, the protocol Version.
Next step i can add "Entity type selection, Please pic the type of entity you want to add. Platform* switch (pre-selectet).
But
 I thought LocalTuya will somehow identify the ready to use YAML Defintion! No, nothing i need to configure every single Entity by hand (and i don’t know the exact platform etc. i need to choose for every entity, and a single mistake stops the whole process).

My Debug/Diagnostic file where i found the existing DPS:
(i removed the intro and only leave the interesting part
 as far as i understand)

"setup_times": {},
"data": {
"device_config": {
"friendly_name": "feyree",
"host": "192.168.99.194",
"device_id": "bf51e4686a8a0586b9stda",
"local_key": "@+6_iBZ<del>af]</del>]#6A",
"protocol_version": "3.4",
"enable_debug": true,
"model": "feyree",
"dps_strings": [
"10 (value: 0)",
"101 (value: connect)",
"102 (value: 2266)",
"103 (value: 0)",
"104 (value: 0)",
"105 (value: 0)",
"106 (value: 0)",
"107 (value: 0)",
"109 (value: 0)",
"110 (value: 334)",
"112 (value: 0)",
"113 (value: Max32A)",
"115 (value: 20)",
"118 (value: 0)",
"119 (value: 0)",
"120 (value: 00:00:00)",
"121 (value: T:00H)",
"122 (value: D:00H)",
"123 (value: False)",
"124 (value: WaitOperation)",
"125 (value: 20)"
],
"entities": [
{
"id": 125,
"friendly_name": "ChargingAmpere",
"restore_on_reconnect": false,
"is_passive_entity": false,
"platform": "switch"
}
],
"product_key": "basqjlsmzcq8ipva"
},
"device_cloud_info": {
"active_time": 1753507349,
"biz_type": 18,
"category": "qccdz",
"create_time": 1753507349,
"icon": "smart/icon/bay16226250696545rLI/169985857684fb0805bf7.png",
"id": "bf51e4686a8a0586b9stda",
"ip": "49.145.227.77",
"lat": "0",
"local_key": "@+6_iBZ<del>af]</del>]#6A",
"lon": "0",
"model": "",
"name": "feyree",
"online": true,
"owner_id": "27589385",
"product_id": "basqjlsmzcq8ipva",
"product_name": "feyree",
"status": [
{
"code": "work_state",
"value": "charger_free"
},
{
"code": "work_mode",
"value": "charge_now"
},
{
"code": "balance_energy",
"value": 0
},
{
"code": "clear_energy",
"value": true
},
{
"code": "switch",
"value": true
},
{
"code": "charge_energy_once",
"value": 1
}
],
"sub": false,
"time_zone": "+08:00",
"uid": "eu1615844470867wpZMw",
"update_time": 1753570768,
"uuid": "141baff6fea79e69"
}
}
}

The Yaml i found “Very Close” (cf6b00d)
There is e.g. a DPS 3, i don’t get on my Diagnostic Data, and there is missing the DPS 10.

name: EV charger
products:

* id: j6bzjwhiv2cljjcy
name: Feyree 32A 85-264V 3 phase EV charger
primary_entity:
entity: sensor
class: enum
name: EV Wallbox Status
icon: "mdi:ev-station"
dps:
  * id: 101
type: string
name: sensor
mapping:
    * dps_val: no_connet
value: Disconnected
    * dps_val: connect
value: Connected
    * dps_val: charing
value: Charging
    * dps_val: wait_rfid
value: Waiting for authorization
    * dps_val: finish
value: Charged
    * dps_val: wait_charing
value: Delaying charge
    * dps_val: error
value: Error
  * id: 3
type: string
optional: true
name: charger_status
mapping:
    * dps_val: charger_free
value: Standby
    * dps_val: charger_insert
value: Cable connected
    * dps_val: charger_free_fault
value: Charger fault
    * dps_val: charger_wait
value: Charger ready
    * dps_val: charger_charging
value: Charging
    * dps_val: charger_pause
value: Charging paused
    * dps_val: charger_end
value: Charging ended
    * dps_val: charger_fault
value: Charger fault
  * id: 10
type: bitfield
name: fault_code
  * id: 11
type: string
optional: true
name: alarm_set_1
  * id: 12
type: string
optional: true
name: alarm_set_2
  * id: 14
type: string
optional: true
name: mode
mapping:
    * dps_val: charge_now
    * dps_val: charge_pct
    * dps_val: charge_energy
    * dps_val: charge_schedule
  * id: 15
type: integer
optional: true
name: balance_energy
unit: kWh
  * id: 18
type: boolean
optional: true
name: switch
  * id: 23
type: string
optional: true
name: system_version
  * id: 25
type: integer
optional: true
name: charge_energy_once
unit: kWh
  * id: 27
type: string
optional: true
name: online_state
secondary_entities:
* entity: button
name: EV Wallbox Clear energy
class: restart
category: config
dps:
  * id: 16
type: boolean
name: button
optional: true
* entity: number
name: EV Wallbox Set charging current
category: config
icon: "mdi:ev-plug-type2"
dps:
  * id: 115
type: integer
name: value
unit: A
range:
min: 8
max: 32
mapping:
    * constraint: max_current
conditions:
      * dps_val: Max16A
value_redirect: value_alt
range:
min: 8
max: 16
  * id: 114
type: integer
name: value_alt
unit: A
range:
min: 8
max: 16
  * id: 113
type: string
name: max_current
mapping:
    * dps_val: Max16A
value: Max16A
    * dps_val: Max32A
value: Max32A
* entity: number
name: EV Wallbox Set Delay Time Hours
category: config
icon: "mdi:car-clock"
dps:
  * id: 118
type: integer
name: value
unit: h
range:
min: 0
max: 15
* entity: sensor
name: EV Wallbox Charging Session Delivered Energy
class: energy
dps:
  * id: 112
type: integer
name: sensor
unit: kWh
class: total_increasing
mapping:
    * scale: 10
* entity: sensor
name: EV Wallbox Phase 1 Voltage
class: voltage
category: diagnostic
dps:
  * id: 102
type: integer
name: sensor
unit: V
class: measurement
mapping:
    * scale: 10
* entity: sensor
name: EV Wallbox Phase 2 Voltage
class: voltage
category: diagnostic
dps:
  * id: 103
type: integer
name: sensor
unit: V
class: measurement
mapping:
    * scale: 10
* entity: sensor
name: EV Wallbox Phase 3 Voltage
class: voltage
category: diagnostic
dps:
  * id: 104
type: integer
name: sensor
unit: V
class: measurement
mapping:
    * scale: 10
* entity: sensor
name: EV Wallbox Phase 1 Current
class: current
category: diagnostic
dps:
  * id: 105
type: integer
name: sensor
unit: A
class: measurement
mapping:
    * scale: 10
* entity: sensor
name: EV Wallbox Phase 2 Current
class: current
category: diagnostic
dps:
  * id: 106
type: integer
name: sensor
unit: A
class: measurement
mapping:
    * scale: 10
* entity: sensor
name: EV Wallbox Phase 3 Current
class: current
category: diagnostic
dps:
  * id: 107
type: integer
name: sensor
unit: A
class: measurement
mapping:
    * scale: 10
* entity: sensor
name: EV Wallbox Charging Power
class: power
dps:
  * id: 109
type: integer
name: sensor
unit: kW
class: measurement
mapping:
    * scale: 10
* entity: sensor
name: EV Wallbox Temperature
class: temperature
category: diagnostic
dps:
  * id: 110
type: integer
name: sensor
unit: C
class: measurement
mapping:
    * scale: 10
* entity: number
name: EV Wallbox Set Charging Duration
category: config
icon: "mdi:car-clock"
dps:
  * id: 119
type: integer
name: value
unit: h
range:
min: 0
max: 15
* entity: select
name: EV Wallbox Set StartStop
icon: "mdi:ev-plug-type2"
category: config
dps:
  * id: 124
type: string
name: option
mapping:
    * dps_val: "OpenCharging"
value: Start charging
    * dps_val: "CloseCharging"
value: Stop charging
    * dps_val: "WaitOperation"
value: Waiting for command
* entity: sensor
name: EV Wallbox Charging session duration
icon: "mdi:car-clock"
dps:
  * id: 120
type: string
name: sensor

The File from which seems to be very close to the YAML i need:
name: EV charger
products:

* id: j6bzjwhiv2cljjcy
name: Feyree 32A 85-264V 3 phase EV charger
primary_entity:
entity: sensor
class: enum
name: EV Wallbox Status
icon: "mdi:ev-station"
dps:
  * id: 101
type: string
name: sensor
mapping:
    * dps_val: no_connet
value: Disconnected
    * dps_val: connect
value: Connected
    * dps_val: charing
value: Charging
    * dps_val: wait_rfid
value: Waiting for authorization
    * dps_val: finish
value: Charged
    * dps_val: wait_charing
value: Delaying charge
    * dps_val: error
value: Error
  * id: 3
type: string
optional: true
name: charger_status
mapping:
    * dps_val: charger_free
value: Standby
    * dps_val: charger_insert
value: Cable connected
    * dps_val: charger_free_fault
value: Charger fault
    * dps_val: charger_wait
value: Charger ready
    * dps_val: charger_charging
value: Charging
    * dps_val: charger_pause
value: Charging paused
    * dps_val: charger_end
value: Charging ended
    * dps_val: charger_fault
value: Charger fault
  * id: 10
type: bitfield
name: fault_code
  * id: 11
type: string
optional: true
name: alarm_set_1
  * id: 12
type: string
optional: true
name: alarm_set_2
  * id: 14
type: string
optional: true
name: mode
mapping:
    * dps_val: charge_now
    * dps_val: charge_pct
    * dps_val: charge_energy
    * dps_val: charge_schedule
  * id: 15
type: integer
optional: true
name: balance_energy
unit: kWh
  * id: 18
type: boolean
optional: true
name: switch
  * id: 23
type: string
optional: true
name: system_version
  * id: 25
type: integer
optional: true
name: charge_energy_once
unit: kWh
  * id: 27
type: string
optional: true
name: online_state
secondary_entities:
* entity: button
name: EV Wallbox Clear energy
class: restart
category: config
dps:
  * id: 16
type: boolean
name: button
optional: true
* entity: number
name: EV Wallbox Set charging current
category: config
icon: "mdi:ev-plug-type2"
dps:
  * id: 115
type: integer
name: value
unit: A
range:
min: 8
max: 32
mapping:
    * constraint: max_current
conditions:
      * dps_val: Max16A
value_redirect: value_alt
range:
min: 8
max: 16
  * id: 114
type: integer
name: value_alt
unit: A
range:
min: 8
max: 16
  * id: 113
type: string
name: max_current
mapping:
    * dps_val: Max16A
value: Max16A
    * dps_val: Max32A
value: Max32A
* entity: number
name: EV Wallbox Set Delay Time Hours
category: config
icon: "mdi:car-clock"
dps:
  * id: 118
type: integer
name: value
unit: h
range:
min: 0
max: 15
* entity: sensor
name: EV Wallbox Charging Session Delivered Energy
class: energy
dps:
  * id: 112
type: integer
name: sensor
unit: kWh
class: total_increasing
mapping:
    * scale: 10
* entity: sensor
name: EV Wallbox Phase 1 Voltage
class: voltage
category: diagnostic
dps:
  * id: 102
type: integer
name: sensor
unit: V
class: measurement
mapping:
    * scale: 10
* entity: sensor
name: EV Wallbox Phase 2 Voltage
class: voltage
category: diagnostic
dps:
  * id: 103
type: integer
name: sensor
unit: V
class: measurement
mapping:
    * scale: 10
* entity: sensor
name: EV Wallbox Phase 3 Voltage
class: voltage
category: diagnostic
dps:
  * id: 104
type: integer
name: sensor
unit: V
class: measurement
mapping:
    * scale: 10
* entity: sensor
name: EV Wallbox Phase 1 Current
class: current
category: diagnostic
dps:
  * id: 105
type: integer
name: sensor
unit: A
class: measurement
mapping:
    * scale: 10
* entity: sensor
name: EV Wallbox Phase 2 Current
class: current
category: diagnostic
dps:
  * id: 106
type: integer
name: sensor
unit: A
class: measurement
mapping:
    * scale: 10
* entity: sensor
name: EV Wallbox Phase 3 Current
class: current
category: diagnostic
dps:
  * id: 107
type: integer
name: sensor
unit: A
class: measurement
mapping:
    * scale: 10
* entity: sensor
name: EV Wallbox Charging Power
class: power
dps:
  * id: 109
type: integer
name: sensor
unit: kW
class: measurement
mapping:
    * scale: 10
* entity: sensor
name: EV Wallbox Temperature
class: temperature
category: diagnostic
dps:
  * id: 110
type: integer
name: sensor
unit: C
class: measurement
mapping:
    * scale: 10
* entity: number
name: EV Wallbox Set Charging Duration
category: config
icon: "mdi:car-clock"
dps:
  * id: 119
type: integer
name: value
unit: h
range:
min: 0
max: 15
* entity: select
name: EV Wallbox Set StartStop
icon: "mdi:ev-plug-type2"
category: config
dps:
  * id: 124
type: string
name: option
mapping:
    * dps_val: "OpenCharging"
value: Start charging
    * dps_val: "CloseCharging"
value: Stop charging
    * dps_val: "WaitOperation"
value: Waiting for command
* entity: sensor
name: EV Wallbox Charging session duration
icon: "mdi:car-clock"
dps:
  * id: 120
type: string
name: sensor

Update: I get it to work with the make-all/Local Tuya HACS integration. Discovered at the first try with the goodcell_ev_charger profile. Can start/stop charging and adjust the Ampere, thats all i need.

Hi ,
I have Feyree 1ph 32A Portable and i make work via LocalTuya .


here list of DPS
“dps_strings”: [
“10 (value: 0)”,
“101 (value: connect)”,
“102 (value: 10)”,
“103 (value: True)”,
“104 (value: 0)”,
“106 (value: 0)”,
“107 (value: 247)”,
“108 (value: 0)”,
“109 (value: 0)”,
“110 (value: 400)”,
“111 (value: 8)”,
“112 (value: False)”,
“113 (value: 0)”,
“114 (value: 0)”
],

I hope this is helpful

Hi Mina, my Feyree is now working! Maybe you have another tipp realised i struggle with?
I made an automation which is increasing (another decreasing) the Helper “CarChargerAmpere” by two if the current Solar to Battery charging is above 3.000 Watt. So i want to test every 10 Minutes if there is still an amount available to rise the car charging. The Helper will rise (or lower) every 10 Minutes (or depending on the Sun power) by 2 or decrease by 2, limited by 8 and 16.
I want to update by an automation the “Feyree Set Charging Current” by the value of the Helper CarChargeAmpere
 but if i insert the CarChargeAmpere in the Value field of the Stelle den Wert fĂŒr Car charger Set charge current ein (english maybe “Set the Value for Car Charger Set charge current” (CarCharger is my name for the Feyree), Homeassistant wants a real number insteat of an Helper Name
 How can i use the Helper name in a Automation as an Source for an Value?

Hi Rene,
I used DPS 102 as Number . You can set it as value number according to Solar kW generated using an Automation . Add Automation/ Trigger / Entity / Solar kw Value then you set the DPS 102 whatever number 
 etc
But i have an issue if i change charging current during charging , sometimes the charger gets error, So i only set charging current before starting charge once.I hope it is helpful

Hello,

From the Tuya Platform I got these DPS values:

{
  "result": {
    "properties": [
      {
        "code": "work_state",
        "custom_name": "",
        "dp_id": 3,
        "time": 1754134137798,
        "type": "enum",
        "value": "charger_free"
      },
      {
        "code": "fault",
        "custom_name": "",
        "dp_id": 10,
        "time": 1754386432513,
        "type": "bitmap",
        "value": 0
      },
      {
        "code": "alarm_set_1",
        "custom_name": "",
        "dp_id": 11,
        "time": 1754134137798,
        "type": "raw"
      },
      {
        "code": "alarm_set_2",
        "custom_name": "",
        "dp_id": 12,
        "time": 1754134137798,
        "type": "raw"
      },
      {
        "code": "work_mode",
        "custom_name": "",
        "dp_id": 14,
        "time": 1754153663204,
        "type": "enum",
        "value": "charge_now"
      },
      {
        "code": "balance_energy",
        "custom_name": "",
        "dp_id": 15,
        "time": 1754137739543,
        "type": "value",
        "value": 400
      },
      {
        "code": "clear_energy",
        "custom_name": "",
        "dp_id": 16,
        "time": 1754153712752,
        "type": "bool",
        "value": false
      },
      {
        "code": "switch",
        "custom_name": "",
        "dp_id": 18,
        "time": 1754153712752,
        "type": "bool",
        "value": false
      },
      {
        "code": "system_version",
        "custom_name": "",
        "dp_id": 23,
        "time": 1754134137798,
        "type": "string",
        "value": ""
      },
      {
        "code": "charge_energy_once",
        "custom_name": "",
        "dp_id": 25,
        "time": 1754134137798,
        "type": "value",
        "value": 1
      },
      {
        "code": "online_state",
        "custom_name": "",
        "dp_id": 27,
        "time": 1754134137798,
        "type": "enum",
        "value": "online"
      },
      {
        "code": "DeviceState",
        "custom_name": "",
        "dp_id": 101,
        "time": 1754400849167,
        "type": "enum",
        "value": "finish"
      },
      {
        "code": "A_Voltage",
        "custom_name": "",
        "dp_id": 102,
        "time": 1754400865242,
        "type": "value",
        "value": 2175
      },
      {
        "code": "B_Voltage",
        "custom_name": "",
        "dp_id": 103,
        "time": 1754400865242,
        "type": "value",
        "value": 2242
      },
      {
        "code": "C_Voltage",
        "custom_name": "",
        "dp_id": 104,
        "time": 1754400865242,
        "type": "value",
        "value": 2264
      },
      {
        "code": "A_Current",
        "custom_name": "",
        "dp_id": 105,
        "time": 1754400865242,
        "type": "value",
        "value": 0
      },
      {
        "code": "B_Current",
        "custom_name": "",
        "dp_id": 106,
        "time": 1754400865242,
        "type": "value",
        "value": 0
      },
      {
        "code": "C_Current",
        "custom_name": "",
        "dp_id": 107,
        "time": 1754400865242,
        "type": "value",
        "value": 0
      },
      {
        "code": "PhaseFlag",
        "custom_name": "",
        "dp_id": 108,
        "time": 1754386432607,
        "type": "enum",
        "value": "Three_phase"
      },
      {
        "code": "DeviceKw",
        "custom_name": "",
        "dp_id": 109,
        "time": 1754400865242,
        "type": "value",
        "value": 0
      },
      {
        "code": "DeviceTemp",
        "custom_name": "",
        "dp_id": 110,
        "time": 1754400620135,
        "type": "value",
        "value": 457
      },
      {
        "code": "month",
        "custom_name": "",
        "dp_id": 111,
        "time": 1754399704683,
        "type": "value",
        "value": 1
      },
      {
        "code": "DeviceKwh",
        "custom_name": "",
        "dp_id": 112,
        "time": 1754400865242,
        "type": "value",
        "value": 2
      },
      {
        "code": "DeviceMaxSetA",
        "custom_name": "",
        "dp_id": 113,
        "time": 1754137654685,
        "type": "enum",
        "value": "Max16A"
      },
      {
        "code": "Set16A",
        "custom_name": "",
        "dp_id": 114,
        "time": 1754400566156,
        "type": "value",
        "value": 8
      },
      {
        "code": "Set32A",
        "custom_name": "",
        "dp_id": 115,
        "time": 1754400566164,
        "type": "value",
        "value": 8
      },
      {
        "code": "Set40A",
        "custom_name": "",
        "dp_id": 116,
        "time": 1754400566171,
        "type": "value",
        "value": 8
      },
      {
        "code": "Set50A",
        "custom_name": "",
        "dp_id": 117,
        "time": 1754400566178,
        "type": "value",
        "value": 8
      },
      {
        "code": "SetDelayTime",
        "custom_name": "",
        "dp_id": 118,
        "time": 1754155064753,
        "type": "value",
        "value": 0
      },
      {
        "code": "SetDefineTime",
        "custom_name": "",
        "dp_id": 119,
        "time": 1754153712752,
        "type": "value",
        "value": 0
      },
      {
        "code": "Ctime",
        "custom_name": "",
        "dp_id": 120,
        "time": 1754400848578,
        "type": "string",
        "value": "00:02:51"
      },
      {
        "code": "logupdown",
        "custom_name": "",
        "dp_id": 121,
        "time": 1754400262792,
        "type": "enum",
        "value": "up"
      },
      {
        "code": "service",
        "custom_name": "",
        "dp_id": 122,
        "time": 1754134137798,
        "type": "string",
        "value": ""
      },
      {
        "code": "RFID",
        "custom_name": "",
        "dp_id": 123,
        "time": 1754400345748,
        "type": "bool",
        "value": false
      },
      {
        "code": "ChargingOperation",
        "custom_name": "",
        "dp_id": 124,
        "time": 1754400899103,
        "type": "enum",
        "value": "OpenCharging"
      },
      {
        "code": "hw_version",
        "custom_name": "",
        "dp_id": 125,
        "time": 1754137739543,
        "type": "string",
        "value": "FELDWV02"
      },
      {
        "code": "sw_version",
        "custom_name": "",
        "dp_id": 126,
        "time": 1754137654893,
        "type": "string",
        "value": "V1.5"
      },
      {
        "code": "log_content1",
        "custom_name": "",
        "dp_id": 127,
        "time": 1754400262711,
        "type": "string",
        "value": "99-12-31 16:00:15"
      },
      {
        "code": "log_content2",
        "custom_name": "",
        "dp_id": 128,
        "time": 1754399746675,
        "type": "string",
        "value": "CA03FEF"
      },
      {
        "code": "log_content3",
        "custom_name": "",
        "dp_id": 129,
        "time": 1754399776041,
        "type": "string",
        "value": "00:00:00"
      },
      {
        "code": "log_content4",
        "custom_name": "",
        "dp_id": 130,
        "time": 1754153637461,
        "type": "string",
        "value": "  0.0kWh"
      },
      {
        "code": "log_content5",
        "custom_name": "",
        "dp_id": 131,
        "time": 1754400262707,
        "type": "string",
        "value": "U01M01L"
      },
      {
        "code": "log_content6",
        "custom_name": "",
        "dp_id": 132,
        "time": 1754137654942,
        "type": "bool",
        "value": true
      }
    ]
  },
  "success": true,
  "t": 1754400911751,
  "tid": "02dd84ee720111f0b492d6238a027bdd"
}

And most of them work as expected and I made a little dashboard like this:

But I have two problems:

  1. I can only go down to 8A and this is not great. I am using DPS 114 for setting the current. I have the 16A 3 phase charger with the larger LCD.

  2. I can’t start/stop the charging process as I want. Charging starts as soon as I plug in the car and I can’t stop it using DPS 124. I can stop it with the Tuya app but after I stop it it doesn’t want to start again. Is this specific to my car? I have an Audi e-tron.

Hi, here is my solution.
I use the Feyree by the make-all/tuya-local: Local support for Tuya devices in Home Assistant make-all Tuya device. Only this worked! I use the xtend Tuya before, but the integration of the Feyree there was useless.

But even there i had some weird effects like Bogdanr. After some restarts everything worked like i expected!
So now i have an automation, which stopps if the house batteries start to discharge, start, when the House Batteries charge above 3Kw (around 7am), and follow the charging. If there is enough charging, the Feyree will rise from 6A up to 25A (i will change the wiring, so i can go up to 32A), and if the Batteries start to discharge (clouds, afternoon) it will lower down to 6A again and then stop. This is delayed, so the toaster will not influence the car charging, but the hot water shower might do.

counter.carchargeampere is a helper of type Counter. Here you can limit the Ampere for the Feyree (i have lower Limit 6, upper Limit 24, steps 1. Maybe you want to rise up to 32A and step in 2 A steps).
Car_Charger is the name of my Feyree 1Phase T2 Wallbox.

If you are new to Home Assistant (like me):

  1. Integrate the mentioned Tuya local version, follow the introductions there 100% Step by Step!
  2. Add the Counter Helpler
  3. Start an automation (no matter which one!), switch to the YAML Editor, copy the Code Automation by automation (5 Automations), and save. Don’t forget to adjust the names to your entitys!
    After this, you can edit the Automations (e.g. Limits) by the graphic interface!!

Start after House batteries charge above 3Kw:

alias: CarCharger Start
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor. Laden
    for:
      hours: 0
      minutes: 3
      seconds: 0
    above: 3000
conditions:
  - type: is_current
    condition: device
    device_id: 937f5dffb4c3c3e5d42b203dc1d97e26
    entity_id: 5893af48fde8cae948a1e30ef8bbaaa7
    domain: sensor
    below: 1
actions:
  - device_id: 937f5dffb4c3c3e5d42b203dc1d97e26
    domain: select
    entity_id: 7689a6c11941ecd0d34e4651cc848a4d
    type: select_option
    option: Start charging
  - variables:
      counter.carchargeampere = 6: null
  - metadata: {}
    data:
      value: |
        {{ states("counter.carchargeampere") | int }}
    target:
      entity_id: number.car_charger_set_charge_current
    action: number.set_value
mode: single

Stop if house batteries strongly discharge

alias: CarCharger Stop
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor. Laden
    for:
      hours: 0
      minutes: 3
      seconds: 0
    below: -1000
conditions:
  - condition: numeric_state
    entity_id: sensor.inverter2_battery
    below: 98
  - condition: numeric_state
    entity_id: sensor.car_charger_strom_l1
    above: 0.1
actions:
  - device_id: 937f5dffb4c3c3e5d42b203dc1d97e26
    domain: select
    entity_id: 7689a6c11941ecd0d34e4651cc848a4d
    type: select_option
    option: Stop charging
  - variables:
      counter.carchargeampere = 6: null
mode: single

Rise Ampere if House Batteries still Charge enough

alias: CarCharger Rise
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor. Laden
    for:
      hours: 0
      minutes: 3
      seconds: 0
    above: 2500
conditions:
  - type: is_current
    condition: device
    device_id: 937f5dffb4c3c3e5d42b203dc1d97e26
    entity_id: 5893af48fde8cae948a1e30ef8bbaaa7
    domain: sensor
    above: 0.1
actions:
  - action: counter.increment
    metadata: {}
    data: {}
    target:
      entity_id: counter.carchargeampere
  - metadata: {}
    data:
      value: |
        {{ states("counter.carchargeampere") | int }}
    target:
      entity_id: number.car_charger_set_charge_current
    action: number.set_value
mode: single

Rise Ampere if House Batteries are full
In this case, i cannot check for the charging power. Maybe there is a looot of sun outside, but because the house batteries are full, the inverters will not charge anymore. So, i rise the charging power, until the house batteries will discharge. After this, the other automations will take control. If you have a LUX-meter, this could be solved smarter.

alias: CarCharger Rise FullBattery
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.inverter2_battery
    for:
      hours: 0
      minutes: 3
      seconds: 0
    above: 98
conditions:
  - type: is_current
    condition: device
    device_id: 937f5dffb4c3c3e5d42b203dc1d97e26
    entity_id: 5893af48fde8cae948a1e30ef8bbaaa7
    domain: sensor
    above: 0.1
actions:
  - action: counter.increment
    metadata: {}
    data: {}
    target:
      entity_id: counter.carchargeampere
  - metadata: {}
    data:
      value: |
        {{ states("counter.carchargeampere") | int }}
    target:
      entity_id: number.car_charger_set_charge_current
    action: number.set_value
mode: single

Lower, if there is not enough charging for the house batteries

alias: CarCharger Reduce
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.laden
    for:
      hours: 0
      minutes: 2
      seconds: 0
    below: -400
conditions:
  - condition: numeric_state
    entity_id: sensor.inverter2_battery
    below: 98
    enabled: true
actions:
  - action: counter.decrement
    metadata: {}
    data: {}
    target:
      entity_id: counter.carchargeampere
  - metadata: {}
    data:
      value: |
        {{ states("counter.carchargeampere") | int }}
    target:
      entity_id: number.car_charger_set_charge_current
    action: number.set_value
mode: single

1 Like

Hi, i updated the automations. Why? Because of the learning about handling form triggers on Home Assistant.

E.g. the Charging rise was triggered if there are more than 3Kw going to the house batteries, the carger will increase by 1A every 2 minutes
 i thought.
But: If e.g. The House charging reaches 6 Kw, the car charging is 2 Kw (9 Ampere * 220 V = 1980 Watt), and i (the automation) rise the Car Charger by 1 Ampere, the new Car charging is 2.200 Watt (10 A times 220 V = 2.2 Kw). 220 Watt more than before. So the House charging is lowering from 6.000 Watt (6Kw) down to 5780 Watt.

And now? The Treshold for the Automation “Car charging rise” is STILL above 3Kw! Id doesnt change for Home Assistant! HA will only trigger again if the House charging goes bellow 3Kw and rise again above 3Kw.
There are other depencies, so i use the trick to
-Double the Triggers to the Conditions and double the conditions to the trigger
-Trigger the Rise and reduce now additional by timer every 5 Minutes.

This was not an error of the Feyree Car Charger or the Dongfeng Nammi 01. They follow the HA Commands like a charm! Works absolute perfect. It was only to understand the Triggers of HA more.

I made another discovery: The Nammi 01 is sometimes stopping the charging process by going above 30Ampere and signals “Battery full” to the Wallbox.
So i limit the Wallbox, even with the new wires, to 30Amps instead of 32 Amps. This is done by the counter helper.

alias: CarCharger Reduce
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.inverter2_battery
    for:
      hours: 0
      minutes: 2
      seconds: 0
    below: 98
  - trigger: numeric_state
    entity_id:
      - sensor.laden
    below: -400
    for:
      hours: 0
      minutes: 1
      seconds: 0
  - trigger: time_pattern
    minutes: /5
conditions:
  - condition: numeric_state
    entity_id:
      - sensor.inverter2_battery
    below: 98
  - condition: numeric_state
    entity_id:
      - sensor.laden
    below: -400
actions:
  - action: counter.decrement
    metadata: {}
    data: {}
    target:
      entity_id: counter.carchargeampere
  - metadata: {}
    data:
      value: |
        {{ states("counter.carchargeampere") | int }}
    target:
      entity_id: number.car_charger_set_charge_current
    action: number.set_value
mode: single

alias: CarCharger Rise
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.laden
    for:
      hours: 0
      minutes: 2
      seconds: 0
    above: 3000
  - type: current
    device_id: 937f5dffb4c3c3e5d42b203dc1d97e26
    entity_id: 5893af48fde8cae948a1e30ef8bbaaa7
    domain: sensor
    trigger: device
    above: 0.1
  - trigger: time_pattern
    minutes: /5
conditions:
  - type: is_current
    condition: device
    device_id: 937f5dffb4c3c3e5d42b203dc1d97e26
    entity_id: 5893af48fde8cae948a1e30ef8bbaaa7
    domain: sensor
    above: 0.1
  - condition: numeric_state
    entity_id: sensor.laden
    above: 3000
actions:
  - action: counter.increment
    metadata: {}
    data: {}
    target:
      entity_id: counter.carchargeampere
  - metadata: {}
    data:
      value: |
        {{ states("counter.carchargeampere") | int }}
    target:
      entity_id: number.car_charger_set_charge_current
    action: number.set_value
mode: single

alias: CarCharger Rise FullBattery
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.inverter2_battery
    for:
      hours: 0
      minutes: 3
      seconds: 0
    above: 98
  - type: current
    device_id: 937f5dffb4c3c3e5d42b203dc1d97e26
    entity_id: 5893af48fde8cae948a1e30ef8bbaaa7
    domain: sensor
    trigger: device
    above: 0.1
conditions:
  - type: is_value
    condition: device
    device_id: f317ebd0eb70bf397139a6217698165c
    entity_id: 126d3d67b69b20b08517bea93970b252
    domain: sensor
    above: 98
  - type: is_current
    condition: device
    device_id: 937f5dffb4c3c3e5d42b203dc1d97e26
    entity_id: 5893af48fde8cae948a1e30ef8bbaaa7
    domain: sensor
    above: 0.1
actions:
  - action: counter.increment
    metadata: {}
    data: {}
    target:
      entity_id: counter.carchargeampere
  - metadata: {}
    data:
      value: |
        {{ states("counter.carchargeampere") | int }}
    target:
      entity_id: number.car_charger_set_charge_current
    action: number.set_value
mode: single

alias: CarCharger Start charge
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.laden
    for:
      hours: 0
      minutes: 3
      seconds: 0
    above: 3000
  - type: current
    device_id: 937f5dffb4c3c3e5d42b203dc1d97e26
    entity_id: 5893af48fde8cae948a1e30ef8bbaaa7
    domain: sensor
    trigger: device
    below: 1
conditions:
  - condition: numeric_state
    entity_id: sensor.laden
    above: 3000
  - type: is_current
    condition: device
    device_id: 937f5dffb4c3c3e5d42b203dc1d97e26
    entity_id: 5893af48fde8cae948a1e30ef8bbaaa7
    domain: sensor
    below: 1
actions:
  - device_id: 937f5dffb4c3c3e5d42b203dc1d97e26
    domain: select
    entity_id: 7689a6c11941ecd0d34e4651cc848a4d
    type: select_option
    option: Start charging
  - variables:
      counter.carchargeampere = 6: null
  - metadata: {}
    data:
      value: |
        {{ states("counter.carchargeampere") | int }}
    target:
      entity_id: number.car_charger_set_charge_current
    action: number.set_value
mode: single

alias: CarCharger Stop charge
description: ""
triggers:
  - trigger: numeric_state
    entity_id:
      - sensor.laden
    for:
      hours: 0
      minutes: 3
      seconds: 0
    below: -1000
  - type: value
    device_id: f317ebd0eb70bf397139a6217698165c
    entity_id: 126d3d67b69b20b08517bea93970b252
    domain: sensor
    trigger: device
    below: 98
  - type: current
    device_id: 937f5dffb4c3c3e5d42b203dc1d97e26
    entity_id: 5893af48fde8cae948a1e30ef8bbaaa7
    domain: sensor
    trigger: device
    above: 0.1
conditions:
  - condition: numeric_state
    entity_id: sensor.laden
    below: -1000
  - condition: numeric_state
    entity_id: sensor.inverter2_battery
    below: 98
  - condition: numeric_state
    entity_id: sensor.car_charger_strom_l1
    above: 0.1
actions:
  - device_id: 937f5dffb4c3c3e5d42b203dc1d97e26
    domain: select
    entity_id: 7689a6c11941ecd0d34e4651cc848a4d
    type: select_option
    option: Stop charging
  - variables:
      counter.carchargeampere = 6: null
mode: single

Hi!

I have the following Feyree charger: https://www.aliexpress.com/item/1005006103220114.html
I managed to st it up with LocalTuya.
Here are the settings:

The PD 124 - charging command command entries: WaitOperation;OpenCharging;CloseCharging

The only experience is that decreasing the charging current can cause error in the charer. But this can reproduce in the Tuya app also.

1 Like

PD 124 is working for you?