# Share Your Device! - Advanced Virtual Devices from Device Capabilities

**URL:** <https://community.homey.app/t/share-your-device-advanced-virtual-devices-from-device-capabilities/68676>\
**Category:** Apps\
**Tags:** app, tools, virtual-device, device-capabilities, avd\
**Created:** [September 10, 2022, 8:43am UTC](https://community.homey.app/t/share-your-device-advanced-virtual-devices-from-device-capabilities/68676 "2022-09-10T08:43:41Z")\
**Posts on this page:** 1\
**Showing post:** 31

<div class="post-metadata">

**Author:** ![RogerSt](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/rogerst/32/12432_2.png) [@RogerSt](https://community.homey.app/u/RogerSt)\
**Post date:** [September 25, 2022, 8:19am UTC](https://community.homey.app/t/share-your-device-advanced-virtual-devices-from-device-capabilities/68676/31 "2022-09-25T08:19:45Z")

</div>

I have recently posted a number of questions on how to create a AVD for my EV Charger.  
Now it’s my time to share the result.

# EV Charger Status Device Tile

The device should:

- show an enabled/disabled status to understand whether or not the charger is active
- show the total accumulated energy (kWh) of the current / previous charging session - I assume that it is the total amount of power of the previous charging session when the device is inactive.
- show the current charging power (the flow will set the charging power to 0 if \<30W)
- show the duration of the ongoing/previous charging session in HHhMMm notation

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/f/2/f2c13152c3d5211bdf64531ee0806a822609f6b8.png)

### Apps used:

- I have a smart sensor that watched for power consumption on the EV charger. I have a Shelly EM1 but any power sensor should work
- I use Homey Advanced Flows to manage the device.
- Homeyscript is needed to make the time calculation work
- Logic is used to manage variables: intEVChargerEnergyStart/End/Delta and intEVChargerPowerRounded (to avoid fraction numbers in the tile)

Picture of the flow used:

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/2/b/2be08a32aecc9a480c37c3357b1db5a41fa72f95.png)

This is just for reference so you understand what it does:

- set the start/end power measurement variables at start and end of charging session
- calculate the delta variables in Logic at the appropriate times (at start and end of charging session, and every 10 seconds while active)
- set the charging state active/inactive
- calculate the duration using milliseconds measurements (and translate to HHMM using homeyscript)

The scripts:

**Milliseconds timestamp:**

> const milliseconds = await Date.now();  
> return milliseconds;

**Duration at end of charging session:**

> const d = new Date(1\*args[0]);  
> let hours = d.getHours();  
> let minutes = d.getMinutes();  
> if (hours \< 10) {hours = “0”+hours;}  
> if (minutes \< 10) {minutes = “0”+minutes;}  
> let duration = hours+‘h’+minutes+‘m’;  
> return duration;

**Duration every 10 seconds update:**

> const start = new Date(1\*args[0]);  
> const now = new Date();  
> d = new Date(now-start);  
> let hours = d.getHours();  
> let minutes = d.getMinutes();  
> if (hours \< 10) {hours = “0”+hours;}  
> if (minutes \< 10) {minutes = “0”+minutes;}  
> let duration = hours+‘h’+minutes+‘m’;  
> return duration;

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/f/a/fa738f2ce27eacf54b72eafe2b3eaa9bb1d23366.png)

Hope these are helpful - have fun!

TEF:

```auto
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

```

---

_[View the full topic](https://community.homey.app/t/share-your-device-advanced-virtual-devices-from-device-capabilities/68676)._
