# How to trigger a flow card from a "custom capability" when it changes value

**URL:** <https://community.homey.app/t/how-to-trigger-a-flow-card-from-a-custom-capability-when-it-changes-value/103034>\
**Category:** Questions & Help\
**Created:** [February 3, 2024, 10:23am UTC](https://community.homey.app/t/how-to-trigger-a-flow-card-from-a-custom-capability-when-it-changes-value/103034 "2024-02-03T10:23:16Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Max\_Klevebrand](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/max_klevebrand/32/84788_2.png) [@Max\_Klevebrand](https://community.homey.app/u/Max_Klevebrand)\
**Post date:** [February 3, 2024, 10:23am UTC](https://community.homey.app/t/how-to-trigger-a-flow-card-from-a-custom-capability-when-it-changes-value/103034/1 "2024-02-03T10:23:16Z")

</div>

Hi!

I am making a Homey plugin that works for one of my projects for a Solar Controller. I am trying to when the “value” of a custom capability is changed, I want to trigger the flow cards. But I have no idea how to do that, and I cannot find enough examples or documentation for it, is there anyone who can give me a push 😃

So what I have is some capabilities which get a new value about every minute:

```auto
setSolarHistoryCapabilites(args, jsonData) {
        args.log("Updating solar capabilities");

        try {
            args.setCapabilityValue('real_time_solar', jsonData.realtimeSolar);
            args.setCapabilityValue('measure_battery', parseInt(jsonData.batteryCapacity));
            args.setCapabilityValue('total_load_active_power', jsonData.totalLoadActivePower);
            args.setCapabilityValue('battery_charging', parseFloat(parseFloat(jsonData.batteryCharge.slice(0, -2)) - parseFloat(jsonData.batteryDischarge.slice(0, -2))) + "kWh");    
        } catch(error) {
            args.error("Failed to set solar capabilities", error);
        }
    }

```

And I have some flow cards that I would like to execute on certain of theese capabilities, here are my flow cards:

```auto
{
  "conditions": [
    {
      "id": "battery-more-than",
      "title": {
        "en": "Batteriet blir större än",
        "sv": "Battery is more than"
      },
      "titleFormatted": { 
        "en": "Battery is more than [[kWh]] kWh", 
        "sv": "Batteriet blir större än [[kWh]] kWh" 
      },
      "args": [
        {
          "type": "number",
          "name": "kWh",
          "title": { "en": "Number", "sv": "Nummer" },
          "placeholder": { "en": "5kWh" }
        }
      ]
    },
    {
      "id": "battery-less-than",
      "title": {
        "en": "Batteriet blir mindre än",
        "sv": "Battery is less than"
      },
      "titleFormatted": { 
        "en": "Battery is less than [[kWh]] kWh", 
        "sv": "Batteriet blir mindre än [[kWh]] kWh" 
      },
      "args": [
        {
          "type": "number",
          "name": "kWh",
          "title": { 
            "en": "Number", 
            "sv": "Nummer" 
          },
          "placeholder": { "en": "5kWh" }
        }
      ]
    },
    {
      "id": "solar-generating",
      "title": {
        "en": "Solar panels are generating more than",
        "sv": "Solpanelerna genererar mer än"
      },
      "titleFormatted": { 
        "en": "Solar panels are generating more than [[kWh]] kWh",
        "sv": "Solpanelerna genererar mer än [[kWh]] kWh"
      },
      "args": [
        {
          "type": "number",
          "name": "kWh",
          "title": { 
            "en": "Number", 
            "sv": "Nummer" 
          },
          "placeholder": { "en": "5kWh" }
        }
      ]
    },
    {
      "id": "current-charging-more-than",
      "title": {
        "en": "Battery is charging more than",
        "sv": "Batteriet laddar mer än"
      },
      "titleFormatted": { 
        "en": "Battery is charging more than [[kWh]] kWh", 
        "sv": "Batteriet laddar mer än [[kWh]] kWh" 
      },
      "args": [
        {
          "type": "number",
          "name": "kWh",
          "title": { "en": "Number", "sv": "Nummer" },
          "placeholder": { "en": "5kWh" }
        }
      ]
    }
  ],
  "actions": [
    {
      "id": "buy-mode",
      "title": {
        "en": "Set buy mode",
        "sv": "Sätt köp läge"
      }
    },
    {
      "id": "sell-mode",
      "title": {
        "en": "Set sell mode",
        "sv": "Sätt sälj läge"
      }
    },
    {
      "id": "self-sufficient-mode",
      "title": {
        "en": "Set self sufficient mode",
        "sv": "Sätt självförsörjande läge"
      }
    },
    {
      "id": "pause-mode",
      "title": {
        "en": "Set pause mode",
        "sv": "Sätt pause läge"
      }
    }
  ],
  "triggers": [
    {
      "id": "solar-generating",
      "title": {
        "en": "Solar panels are generating more than",
        "sv": "Solpanelerna genererar mer än"
      },
      "titleFormatted": { 
        "en": "Solar panels are generating more than [[kWh]] kWh",
        "sv": "Solpanelerna genererar mer än [[kWh]] kWh"
      },
      "args": [
        {
          "type": "number",
          "name": "kWh",
          "title": { "en": "Number", "sv": "Nummer" },
          "placeholder": { "en": "5kWh" }
        }
      ]
    },
    {
      "id": "current-charging-more-than",
      "title": {
        "en": "Battery is charging more than",
        "sv": "Batteriet laddar mer än"
      },
      "titleFormatted": { 
        "en": "Battery is charging more than [[kWh]] kWh", 
        "sv": "Batteriet laddar mer än [[kWh]] kWh" 
      },
      "args": [
        {
          "type": "number",
          "name": "kWh",
          "title": { "en": "Number", "sv": "Nummer" },
          "placeholder": { "en": "5kWh" }
        }
      ]
    }
 ] 
}

```

I have a method where I want to “register” all of the eventListeners kind of but I dont know how to listen to theese capabilites:

```auto
activateFlowCards(args) {
        args.log("Activate flow cards");
        
        args.registerCapabilityListener('real_time_solar', (value) => {
            args.log('Changes to :', value);
        });

        args.registerCapabilityListener('measure_battery', (value) => {
            args.log('Changes to :', value);
        });

        args.registerCapabilityListener('total_load_active_power', (value) => {
            args.log('Changes to :', value);
        });
    }

```

The code is here if you want to look at everything: [https://github.com/Hickori/TrestSolarController-Homey/tree/master](https://github.com/Hickori/TrestSolarController-Homey/tree/master)

Thanks so much in advance!  
Best regards Max

---

<div class="post-metadata">

**Author:** ![robertklep](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/robertklep/32/160628_2.png) [@robertklep](https://community.homey.app/u/robertklep)\
**Post date:** [February 3, 2024, 10:37am UTC](https://community.homey.app/t/how-to-trigger-a-flow-card-from-a-custom-capability-when-it-changes-value/103034/2 "2024-02-03T10:37:23Z")

</div>

> [@Max\_Klevebrand](#):
>
> and I cannot find enough examples or documentation for it

[Really?](https://apps.developer.homey.app/the-basics/flow#triggering-a-flow)

---

<div class="post-metadata">

**Author:** ![Max\_Klevebrand](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/max_klevebrand/32/84788_2.png) [@Max\_Klevebrand](https://community.homey.app/u/Max_Klevebrand)\
**Post date:** [February 3, 2024, 10:43am UTC](https://community.homey.app/t/how-to-trigger-a-flow-card-from-a-custom-capability-when-it-changes-value/103034/3 "2024-02-03T10:43:13Z")

</div>

Ah right! My bad, I was there a couple of days ago… Thanks!

How can I register a listener on my capabilites? Theese doesnt seem to trigger:

```auto
args.registerCapabilityListener('real_time_solar', (value) => {
            args.log('Changes to :', value);
        });

```

---

<div class="post-metadata">

**Author:** ![Max\_Klevebrand](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/max_klevebrand/32/84788_2.png) [@Max\_Klevebrand](https://community.homey.app/u/Max_Klevebrand)\
**Post date:** [February 3, 2024, 10:54am UTC](https://community.homey.app/t/how-to-trigger-a-flow-card-from-a-custom-capability-when-it-changes-value/103034/4 "2024-02-03T10:54:52Z")

</div>

Found this and it seems to do the trick!

```auto
triggerCapabilityListener

```
