Add support for Vevor EV Charger with Tuya integration

Add support for Vevor EV Charger with Tuya integration.
https://eur.vevor.com/portable-ev-charger-c_11497/vevor-portable-ev-charger-type-2-16a-3-7-kw-electric-vehicle-car-charger-with-28-ft-charging-cable-cee-7-7-plug-iec-62196-home-ev-charging-station-with-storage-bag-charging-cable-hook-ip66-p_010786880117

Currently apprears in Tuya device as “EU_230V_16A(EA) (unsupported)”

Standard status set:

Code	Type	Values
forward_energy_total	Integer	{
		  "unit": "kW·h",
		  "min": 0,
		  "max": 99999999,
		  "scale": 2,
		  "step": 1
		}
		
work_state	Enum	{
		  "range": [
			"charger_free",
			"charger_insert",
			"charger_free_fault",
			"charger_wait",
			"charger_charging",
			"charger_pause",
			"charger_end",
			"charger_fault"
		  ]
		}
		
charge_cur_set	Integer	{
		  "unit": "A",
		  "min": 8,
		  "max": 16,
		  "scale": 0,
		  "step": 1
		}
		
sigle_phase_power	Integer	{
		  "unit": "kW",
		  "min": 0,
		  "max": 99999999,
		  "scale": 3,
		  "step": 1
		}
		
power_total	Integer	{
		  "unit": "kW",
		  "min": 0,
		  "max": 99999999,
		  "scale": 3,
		  "step": 1
		}
		
connection_state	Enum	{
		  "range": [
			"controlpi_12v",
			"controlpi_12v_pwm",
			"controlpi_9v",
			"controlpi_9v_pwm",
			"controlpi_6v",
			"controlpi_6v_pwm",
			"controlpi_error"
		  ]
		}
		
work_mode	Enum	{
		  "range": [
			"charge_now",
			"charge_pct",
			"charge_energy",
			"charge_schedule"
		  ]
		}
		
clear_energy	Boolean	"{true,false}"
		
switch	Boolean	"{true,false}"
		
temp_current	Integer	{
		  "unit": "℃",
		  "min": -40,
		  "max": 200,
		  "scale": 0,
		  "step": 1
		}
		
charge_energy_once	Integer	{
		  "unit": "kW·h",
		  "min": 1,
		  "max": 999999,
		  "scale": 2,
		  "step": 1
		}

Standard instruction set:

Code	Type	Values
charge_cur_set	Integer	{
		  "unit": "A",
		  "min": 8,
		  "max": 16,
		  "scale": 0,
		  "step": 1
		}
		
work_mode	Enum	{
		  "range": [
			"charge_now",
			"charge_pct",
			"charge_energy",
			"charge_schedule"
		  ]
		}
		
clear_energy	Boolean	"{true,false}"
		
switch	Boolean	"{true,false}"

Thank you.

Hello,
I also got a Vevor (Tuya) EV Charger: VEVOR Tragbares EV-Ladegerät mit LCD-Display 3,68 kW Ladegerät für Elektrofahrzeuge EV-Ladekabel Typ 2(IEC62196) CEE 7/7 Stecker 16A 1-Phasig EV-Ladestation 8,6m Kabellänge IP66 Wasserdicht Wallbox  | VEVOR DE

I installed tuya local, now im wondering if I’m able to “add” a new device by manual DPS

I was able to map single values to Switch, Select etc. but it’s not final yet. Like mentioned here: GitHub - rospogrigio/localtuya: local handling for Tuya devices

Just wondering if i can use the device json to make it easier to integrate…

I swapped from “Standard Instruction” “DP Instruction”, now a have some more Datapoints.

Standard Instruction Set:

Code	Type	Values
charge_cur_set	Integer	
{
  "unit": "A",
  "min": 8,
  "max": 32,
  "scale": 0,
  "step": 1
}
work_mode	Enum	
{
  "range": [
    "charge_now",
    "charge_pct",
    "charge_energy",
    "charge_schedule",
    "charge_delay"
  ]
}
clear_energy	Boolean	
"{true,false}"
switch	Boolean	
"{true,false}"
online_state	Enum	
{
  "range": [
    "offline",
    "online"
  ]
}
timer_on	Integer	
{
  "unit": "h",
  "min": 0,
  "max": 12,
  "scale": 0,
  "step": 1
}
mode_set	Raw	
{
  "maxlen": 128
}

Standard Status Set

{
  "unit": "kW·h",
  "min": 0,
  "max": 99999999,
  "scale": 2,
  "step": 1
}
work_state	Enum	
{
  "range": [
    "charger_free",
    "charger_insert",
    "charger_free_fault",
    "charger_wait",
    "charger_charging",
    "charger_pause",
    "charger_end",
    "charger_fault"
  ]
}
charge_cur_set	Integer	
{
  "unit": "A",
  "min": 8,
  "max": 32,
  "scale": 0,
  "step": 1
}
sigle_phase_power	Integer	
{
  "unit": "kW",
  "min": 0,
  "max": 99999999,
  "scale": 3,
  "step": 1
}
phase_a	Raw	
{
  "maxlen": 128
}
power_total	Integer	
{
  "unit": "kW",
  "min": 0,
  "max": 99999999,
  "scale": 3,
  "step": 1
}
fault	Bitmap	
{
  "label": [
    "ov_cr",
    "ov2_cr_fault",
    "ov_vol",
    "undervoltage_alarm",
    "contactor_adhesion",
    "contactor_fault",
    "earth_fault",
    "meter_hardware_alarm",
    "scram_fault",
    "cp_fault",
    "meter_commu_fault",
    "card_reader_fault",
    "cir_short_fault",
    "adhesion_fault",
    "self_test_alarm",
    "leakagecurr_alarm"
  ],
  "maxlen": 16
}
connection_state	Enum	
{
  "range": [
    "controlpi_12v",
    "controlpi_12v_pwm",
    "controlpi_9v",
    "controlpi_9v_pwm",
    "controlpi_6v",
    "controlpi_6v_pwm",
    "controlpi_error"
  ]
}
work_mode	Enum	
{
  "range": [
    "charge_now",
    "charge_pct",
    "charge_energy",
    "charge_schedule",
    "charge_delay"
  ]
}
clear_energy	Boolean	
"{true,false}"
switch	Boolean	
"{true,false}"
system_version	String	
{
  "maxlen": 255
}
temp_current	Integer	
{
  "unit": "℃",
  "min": -40,
  "max": 200,
  "scale": 0,
  "step": 1
}
charge_energy_once	Integer	
{
  "unit": "kW·h",
  "min": 1,
  "max": 999999,
  "scale": 2,
  "step": 1
}
online_state	Enum	
{
  "range": [
    "offline",
    "online"
  ]
}
timer_on	Integer	
{
  "unit": "h",
  "min": 0,
  "max": 12,
  "scale": 0,
  "step": 1
}
mode_set	Raw	
{
  "maxlen": 128
}

I was able to map some of the datapoint. i can read e.g. Temperatur, work_state, connection_state, version. but i can’t get all data…

I’m also able to set charge current, but can’t start charging or change work_mode

I managed to add the EV charger cable to my local tuya, but it let me add instances manualy. Has anyone a list what the values means.

Have you been able to get it to work so that you can start charging from HA?

Hi everyone,
Could one of you share the device diagnostics from the Tuya integration?
From there I’ll see if this is something I can include in my custom integration :).

Have a nice day,
Azerty

1 Like

@azerty9971 is this what you were looking for?

P.S.: I filed a support request for you :slight_smile:

  "data": {
    "endpoint": "https://apigw.tuyaus.com",
    "terminal_id": "REMOVED -- DO YOU NEED IT?",
    "mqtt_connected": true,
    "disabled_by": null,
    "disabled_polling": false,
    "id": "REMOVED -- DO YOU NEED IT?",
    "name": "Car Charger",
    "category": "qccdz",
    "product_id": "w7lvyyxyevpwf20e",
    "product_name": "SS_US_7kW",
    "online": false,
    "sub": false,
    "time_zone": "-04:00",
    "active_time": "2024-09-20T17:33:05+00:00",
    "create_time": "2024-09-20T17:33:05+00:00",
    "update_time": "2024-09-20T17:33:05+00:00",
    "function": {
      "charge_cur_set": {
        "type": "Integer",
        "value": {
          "unit": "A",
          "min": 8,
          "max": 32,
          "scale": 0,
          "step": 1
        }
      },
      "work_mode": {
        "type": "Enum",
        "value": {
          "range": [
            "charge_now",
            "charge_pct",
            "charge_energy",
            "charge_schedule"
          ]
        }
      },
      "clear_energy": {
        "type": "Boolean",
        "value": {}
      },
      "switch": {
        "type": "Boolean",
        "value": {}
      }
    },
    "status_range": {
      "forward_energy_total": {
        "type": "Integer",
        "value": {
          "unit": "kW\u00b7h",
          "min": 0,
          "max": 99999999,
          "scale": 2,
          "step": 1
        }
      },
      "work_state": {
        "type": "Enum",
        "value": {
          "range": [
            "charger_free",
            "charger_insert",
            "charger_free_fault",
            "charger_wait",
            "charger_charging",
            "charger_pause",
            "charger_end",
            "charger_fault"
          ]
        }
      },
      "charge_cur_set": {
        "type": "Integer",
        "value": {
          "unit": "A",
          "min": 8,
          "max": 32,
          "scale": 0,
          "step": 1
        }
      },
      "sigle_phase_power": {
        "type": "Integer",
        "value": {
          "unit": "kW",
          "min": 0,
          "max": 99999999,
          "scale": 3,
          "step": 1
        }
      },
      "power_total": {
        "type": "Integer",
        "value": {
          "unit": "kW",
          "min": 0,
          "max": 99999999,
          "scale": 3,
          "step": 1
        }
      },
      "connection_state": {
        "type": "Enum",
        "value": {
          "range": [
            "controlpi_12v",
            "controlpi_12v_pwm",
            "controlpi_9v",
            "controlpi_9v_pwm",
            "controlpi_6v",
            "controlpi_6v_pwm",
            "controlpi_error"
          ]
        }
      },
      "work_mode": {
        "type": "Enum",
        "value": {
          "range": [
            "charge_now",
            "charge_pct",
            "charge_energy",
            "charge_schedule"
          ]
        }
      },
      "clear_energy": {
        "type": "Boolean",
        "value": {}
      },
      "switch": {
        "type": "Boolean",
        "value": {}
      },
      "temp_current": {
        "type": "Integer",
        "value": {
          "unit": "\u2103",
          "min": -40,
          "max": 200,
          "scale": 0,
          "step": 1
        }
      },
      "charge_energy_once": {
        "type": "Integer",
        "value": {
          "unit": "kW\u00b7h",
          "min": 1,
          "max": 999999,
          "scale": 2,
          "step": 1
        }
      }
    },
    "status": {
      "forward_energy_total": 0,
      "work_state": "charger_free",
      "charge_cur_set": 16,
      "sigle_phase_power": 0,
      "power_total": 0,
      "connection_state": "controlpi_12v",
      "work_mode": "charge_now",
      "clear_energy": true,
      "switch": false,
      "temp_current": 31,
      "charge_energy_once": 942
    },
    "home_assistant": {
      "name": "Car Charger",
      "name_by_user": null,
      "disabled": false,
      "disabled_by": null,
      "entities": []
    },
    "set_up": false,
    "support_local": true
  }

Hello,
This device is now fully supported by xtend_tuya (GitHub - azerty9971/xtend_tuya: eXtend Tuya's integration).

In order to have it work correctly, you need to disable the regular Tuya integration and provide xtend_tuya with cloud credentials (GitHub - azerty9971/xtend_tuya: eXtend Tuya's integration).

Have a nice day,
Azerty

1 Like

To follow up on what Azerty said above, my Vevor EV charger is now working with the xtend_tuya custom integration. However, since there are different, very similar looking EV charger models sold under the Vevor brand, check if your Product ID and Name match what I see in HA for mine:

"product_id": "w7lvyyxyevpwf20e",
"product_name": "SS_US_7kW",

If your values are different from the above, Azerty may have to make adjustments in xtend_tuya.

Thank you @azerty9971 for all your help in the past few days!

Hi @azerty9971 I have similar charger with similar features, which works fine in Tuya app. Your integration was the only one to create a device with entities, unfortunately only 6 entities, not the all we can see in Support for Tuya EV Chargers (i.e. "Vevor") · Issue #106 · azerty9971/xtend_tuya · GitHub in your project. Screenshot from mine is displayed below.

What can be a reason? Is this because I have no cloud integration, or is it because this charger is slightly different? I tried to add cloud integration, but it seems it can only be done after the device is discovered and added. So when I add cloud integration credentials and restart HA nothing changes.

Thanks.