#no i have it installed as a addon

1 messages ยท Page 1 of 1 (latest)

void ferry
#

For the sensor entity to work, you will need the custom integration installed. After that I can help you.

cunning plume
#

i have this node and created a sensor

void ferry
#

Well then you might have already installed it if the sensor showed up ๐Ÿ™‚

#

Is that node already doing what you asked to to look at?

cunning plume
#

yeah sensor works too but i have to manually add each attrbute...my question was is their any way to add all the object payloads as attributes at once?

void ferry
#

Ah, yes there is ๐Ÿ™‚ If you look at the sensor documentation in node-red, it will take an input on msg.payload that has the state and attributes properties. Give me a sec to mockup the function node.

#

Which one do you want as the main state?

#

Something as simple as this should work.

const payload = {"state": msg.payload.id, "attributes": msg.payload}

msg.payload = payload
return msg;
#

You will have to change the state to be whichever attribute you want.

cunning plume
#

thanks this works..your are sooo talented


msg.payload = payload
return msg;```
cunning plume
#

@void ferry ping me when you are available ...i need help in html scrapper

void ferry
#

I'll be available again in about 2 hours.

cunning plume
void ferry
#

Yes, what is your question?

cunning plume
#

But i could not login into the website ...it generates tokens

#

Can you help me in this ...?

void ferry
#

I have not really done any html scraping before. What site and data are you trying to get?

cunning plume
#

From rescuetime website im trying to get the production score data

void ferry
#

Is the data you want not available via their API? https://www.rescuetime.com/rtx/developers

cunning plume
#

even i get data now it just sends yesterdays summery and thats how that api works i guess

#

In api documentation:

void ferry
#

So which of those parameters are you interested in? I know it is the wrong time frame.

#

What does the Analytic Data API return when choosing today as the date. Ex.

void ferry
#

You might be able to use the home assistant scrape component. Otherwise you might have to write your own script to do it. https://www.home-assistant.io/integrations/scrape/. I cannot be much help as I do not have an account for RescueTime and have never used the service. I assume you found this article (https://bogdanbujdea.dev/measuring-productivity-with-rescuetime-and-home-assistant) since I think you posted a screen shot from it. It might be beneficial to ask him what he used for the web scraping.

Home Assistant

Instructions on how to integrate Web scrape sensors into Home Assistant.

Bogdan Bujdea

It's the start of a new year and everyone is making new resolutions, many wishing they would be more "productive" in the next 12 months or decrease the time they're procrastinating. I did this too in the past years, always trying to increase my produ...

cunning plume
#

i think he have used dot net

#

@void ferry did you check his github post?
if you get any useful details from it please update me...

void ferry
#

My recommendation would then be to create an mqtt sensor in python and publish that to HA. Then putting that script in a docker container so you can manage it through HA as well.

cunning plume
cunning plume
#

@void ferry are you their?
need a help in function node coding

void ferry
#

What's up?

cunning plume
#

what am i doing wrong here

var completedTasks = parseInt(globalHomeAssistant.homeAssistant.states["sensor.completed_tasks"].state);
var remainingTasks = parseInt(globalHomeAssistant.homeAssistant.states["sensor.unfinished_tasks"].state);
var task1= msg.task1;
var task2= msg.task2;

var text = "";
var text1 = "";
if (remainingTasks = 1 ) {
   text= "Boo you have 1 uncompleted task,";
    text1 = " ";
}
if (remainingTasks = 2) {
    text = "Boo you have 2 uncompleted task,";
    text1 = "and";
}
if (remainingTasks = 3) {
    text = "Boo you have 3 uncompleted task,";
    text1 = " ";
}
else {
  text = "you have no remainingTasks.";
}
msg.message +=  
  text + task1 + text1 + task2

return msg;

cunning plume
# void ferry What's up?

what im trying to do is read how many uncompleted tasks and based on the number i want message

#

payload object arrays are created based on number of uncompleted tasks

#

if i dont have 2nd uncompleted tasks then their would not be any payload[1].content

#

same for 3rd ..4th and 5th tasks

payload[3].content
payload[4].content
cunning plume
#

eventhough i have only one uncompleted task i get this as output message
"undefinedBoo you have 3 uncompleted task,Complete pathology 1 - 40 pagesundefined"

#

this is the task in todoist : Complete pathology 1 - 40 pages

void ferry
#

I have a meeting for the next few hours. I will look at this after that is done.

cunning plume
cunning plume
#

fixed it never mind...i missed else if

#

i tried fisrt with else if but it showed some error and now it works lol

cunning plume
#

@void ferry im trying to use webhook as trigger in node red but its not triggering the next node but if i use the same in native home assistant automations it works .....why is that so?

void ferry
#

Are you using the webhook node? Yours should not show the custom integration requirement.

#

These should help (he editied with the correct config steps) https://community.home-assistant.io/t/node-red-addon-webhook/336043 and the webhook documentation on nabu casa https://www.nabucasa.com/config/webhooks/. If you do not figure it out tonight, I can help with more details tomorrow morning.

cunning plume
#

it says registered but even with trigger it does nothing

#

same I'm ruining in ha automation and it works

#

it works ....as I was running automation in both home assistant and node red ..event gets captured first in ha and runs ha automation soo it fails to capture event in node red...disabling automation in ha works

cunning plume
#

@void ferry any idea how to take raw data from html request?
i need to write some code i guess

cunning plume
#

soo far made some progress

var html = msg.payload;
var attributeName = "Very Productive";
var start = html.indexOf(attributeName);
var attr = html.substr(start + attributeName.length + 13, 4);
msg = {};
msg.attr = attr;
msg.start = start;
msg.very_productivity_duration = parseInt(attr.replace(/\"/g, "").trim());

return msg;```
#

but the problem is duration , the length of the number can be more depending on seconds ,soo i want to filter from " "

cunning plume
#

hi how to add float in nodered funtion node? it says name not found

void ferry
#

What do you mean by add float? like type conversion to float?

void ferry
cunning plume
#
var attributeName = "Very Productive";
var endname = "RTDATA.report_context"
var start = html.indexOf(attributeName);
var end = html.indexOf(endname);
var between = parseInt(end - start - 3 );
var attr = html.substr(start + attributeName.length + 13, 4);
var attr1 = html.substr(start + 0, between );
msg = {};
msg.attr = attr;
msg.attr1 = attr1;
msg.start = start;
msg.between = between;
msg.end = end;
msg.very_productivity_duration = parseInt(attr.replace(/\"/g, "").trim());

return msg;```
#

result

#

now from payload im trying to trim off the values for each

#

soo far better but i want to change value from secs to mins

#

i usually do that with float in home assistant templating not sure how can i use float in funtion node of NR

#

@void ferry got the float thing worked....

#

how do i find the index of "name":"Distracting","duration":

#

cant add like this

var start = text.indexOf(verydistracting);```
void ferry
# cunning plume result

For the substring (attr1), it seems to almost be a JSON string. Are you trimming the front? Since if it was full json you could just get the duration key and would not have to worry about it being longer than 4.

void ferry
cunning plume
#

from this piece of information im trying to seperate each of the values

#

what i want it to look like as output is:

#

VeryProductiveDuration : 10 mins ( from seconds / 60 for mins)

void ferry
#

Can you send it as a code and not a picture.

cunning plume
#

Very Productive","duration":1206},{"name":"Productive","duration":574},{"name":"Neutral","duration":731},{"name":"Distracting","duration":1568},{"name":"Very Distracting","duration":1821}

void ferry
#

And are you doing any transformation on attr1 before this block?

cunning plume
#

how i get attr1 is from html code

#
var attributeName = "Very Productive";
var endname = "RTDATA.report_context"
var start = html.indexOf(attributeName);
var end = html.indexOf(endname);
var between = parseInt(end - start - 3 );
var attr = html.substr(start + attributeName.length + 13, 4);
var attr1 = html.substr(start + 0, between );
msg = {};
msg.attr = attr;
msg.attr1 = attr1;
msg.start = start;
msg.between = between;
msg.end = end;
msg.very_productivity_duration = parseInt(attr.replace(/\"/g, "").trim());

return msg;```
#

from this way i could able to pull the details i needed from html

void ferry
#

Oh, can you just send the the "raw" html? at least for the section you are looking for.

#

You can pastebin it if it is large.

cunning plume
#

"productivity_arc":[{"name":"Very Productive","duration":1206},{"name":"Productive","duration":574},{"name":"Neutral","duration":731},{"name":"Distracting","duration":1568},{"name":"Very Distracting","duration":1821}]};RTDATA.report_context={"page":"dashboard","current_date":"2022-09-14T14:42:43+05:30","date":"2022-09-14T00:00:00-07:00","time_frame":"day","interval":"hour","by":"rank","schedule":{"id":0,"name":"24x7"},"taxonomy":null,"taxon":null,"keywords":null};

#

this is just part of that raw html

#

and from here i need details

void ferry
#

That doesn't look like html? But I can still get the data from that if it is the output from a node.

cunning plume
void ferry
cunning plume
void ferry
cunning plume
void ferry
cunning plume
cunning plume
void ferry
#

No worries then. I will do it based on what you gave me and we will test it out.

cunning plume
void ferry
cunning plume
#

this is the output from first find productivity score node

cunning plume
void ferry
cunning plume
#

see if the above helps

cunning plume
#

@void ferry any progress?

void ferry
#

Sorry, I am working on it when I get some down time at work. So it could take a bit.

cunning plume
#

all are in seconds i want to convert to mins and hours

void ferry
#

What did you do to get that?

cunning plume
void ferry
#

But that will fail if the lengths of seconds are different right?

cunning plume
void ferry
#

Gotcha, but if the order of the parsed data changes it would stop working. But that is not very likely.

cunning plume
void ferry
#

Do you want sec minutes like :1 hr 2 minutes in string format, or 1.03333?

cunning plume
#

@void ferry if i divide a secs value by 60 it shows like this in output
very_productive_duration1: "9.916666666666666 mins"
what i want it to show is:
very_productive_duration1: 9 mins

cunning plume
cunning plume
void ferry
#

Well it isn't pretty and I am sure there is a better way to do it, but this will work every time.

#
/**
 * @param {number} seconds
 */
function timeConversion(seconds) {
    const date = new Date(null)
    date.setSeconds(seconds)
    const timeFormat = date.toISOString()
    const stringLen = 8
    const hhmmssFormat = timeFormat.substring(11, 11 + stringLen)
    return hhmmssFormat
}
/**
 * @param {string} timeString
 */
function timeStringConversion(timeString) {
    // Split string into hr, min, sec groupings.
    // parseInt() will remove double 00.
    const timeArray = timeString.split(":")
    const hours = parseInt(timeArray[0])
    const minutes = parseInt(timeArray[1])
    const seconds = parseInt(timeArray[2])
    
    // Only include if > 0
    let finalString = ''
    if (hours > 0) {
        finalString += `${hours} hrs.`
    } 
    if (minutes > 0) {
        finalString += `${minutes} min.`
    }
    if (seconds > 0) {
        finalString += `${seconds} sec.`
    }

    // Add a space after each period.
    finalString = finalString.split(".").join(". ")
    // Remove the trailing space.
    finalString = finalString.substring(0, finalString.length - 1)

    return finalString
}

/**
 * @typedef DurationInfo
 * @type {object}
 * @property {number} very_productive_duration
 * @property {number} productive_duration
 * @property {number} neutral_duration
 * @property {number} distracting_duration
 * @property {number} very_distracting_duration
 */

/** @type {DurationInfo} */
const data = msg.payload
msg.veryProductive = timeStringConversion(timeConversion(data.very_productive_duration))
msg.productive = timeStringConversion(timeConversion(data.productive_duration))
msg.neutral = timeStringConversion(timeConversion(data.neutral_duration))
msg.distracting = timeStringConversion(timeConversion(data.distracting_duration))
msg.veryDistracting = timeStringConversion(timeConversion(data.very_distracting_duration))


return msg;
#

You can change the names by changing the msg. names.

cunning plume
cunning plume
#

@void ferry TypeError: Cannot read properties of undefined (reading 'very_productive_duration')

void ferry
void ferry
void ferry
cunning plume
#

im debugging it has a complete msg

#

@void ferry any idea how to fix it?

void ferry
#
/**
 * @param {number} seconds
 */
function timeConversion(seconds) {
    const date = new Date(null)
    date.setSeconds(seconds)
    const timeFormat = date.toISOString()
    const stringLen = 8
    const hhmmssFormat = timeFormat.substring(11, 11 + stringLen)
    return hhmmssFormat
}
/**
 * @param {string} timeString
 */
function timeStringConversion(timeString) {
    // Split string into hr, min, sec groupings.
    // parseInt() will remove double 00.
    const timeArray = timeString.split(":")
    const hours = parseInt(timeArray[0])
    const minutes = parseInt(timeArray[1])
    const seconds = parseInt(timeArray[2])
    
    // Only include if > 0
    let finalString = ''
    if (hours > 0) {
        finalString += `${hours} hrs.`
    } 
    if (minutes > 0) {
        finalString += `${minutes} min.`
    }

    // Add a space after each period.
    finalString = finalString.split(".").join(". ")
    // Remove the trailing space.
    finalString = finalString.substring(0, finalString.length - 1)

    return finalString
}

msg.veryProductive = timeStringConversion(timeConversion(msg.very_productive_duration))
msg.productive = timeStringConversion(timeConversion(msg.productive_duration))
msg.neutral = timeStringConversion(timeConversion(msg.neutral_duration))
msg.distracting = timeStringConversion(timeConversion(msg.distracting_duration))
msg.veryDistracting = timeStringConversion(timeConversion(msg.very_distracting_duration))


return msg;
#

Also removing the seconds you didn't want.

cunning plume
#

is it possible to remove like this
"20 min." to 20 mins

#

i want to error " ."

void ferry
#

I really hate a lot of nested ifs, but you can take care of all of the edge cases with if/else or switch statements.

cunning plume
#

yeah sure thanks but it does not remove " "

#

i want it to show like this productive: 9 mins

void ferry
#

?? the " is only there to denote a string, If you click the copy on the side it will not carry over. So if you put it in another node it will not have the ". Though I am not sure you are understanding the Object model you have. Why do you want it to be productive: 9 mins?

cunning plume
#

never mind
finalString = finalString.replace(/\"/g, "").trim()

cunning plume
cunning plume
#

@void ferry any suggestions how can i get this type of graph

#

i think donut type of apex chart should work

cunning plume
void ferry
cunning plume
#

@void ferry dosnt the chart support lables in home assistant

cunning plume
void ferry
#

type: custom:apexcharts-card
series:

  • ...
    apex_config:
    dataLabels:
    enabled: true
    dropShadow:
    enabled: true
cunning plume
#

made this

void ferry
#

So like you want a legend?

cunning plume
#

like this

void ferry
cunning plume
#

i found its possible by adding lables but does not work and also its only showing number not tha string itself

#

i want it to show 20 mins

#

any idea on this @void ferry ?

#

this is my code

chart_type: donut
style: |
  ha-card {
    border-radius: "var(--border-radius)";
    box-shadow: none;
    padding-bottom: 0px;
    padding-top: 0px;
  }
header:
  show: false
apex_config:
  title:
    floating: false
    align: top
    style:
      fontSize: 2px
      fontWeight: bold
  chart:
    foreColor: rgb(148,148,148)
    offsetY: 5
  legend:
    show: false
  dataLabels:
    enabled: true
    dropShadow:
      enabled: true
series:
  - entity: sensor.very_productive
    name: Very Productive
    color: rgb(0, 85, 196)
  - entity: sensor.productive
    name: Productive
    color: rgb(61, 128, 224)
  - entity: sensor.neutral
    name: Neutral
    color: rgb(177, 193, 191)
  - entity: sensor.distracting
    name: Distracting
    color: rgb(220, 104, 90)
  - entity: sensor.very_distracting
    name: Very Distracting
    color: rgb(214, 24, 0)
#

but states are showing like this only

void ferry
cunning plume
void ferry
cunning plume
#
apex_config:
  plotOptions:
    pie:
      donut:
        lables: 
          show: true
          name: test
          value: input_number.productivity_score```
#

am i doing somthing wrong?

void ferry
#

I have never used ApexCharts before. So I am having to read documentation every questions. Name and value are objects not strings https://apexcharts.com/docs/options/plotoptions/pie/#labels

plotOptions: { pie: { startAngle: 0, endAngle: 360, expandOnClick: true, offsetX: 0, offsetY: 0, customScale: 1, dataLabels: { offset: 0, minAngleToShowLabel: 10 }, donut: { size: '65%', background: 'transparent', labels: { show: false, name: { show: true, fontSize: '22px', fontFamily: 'Helvetica, Arial, sans-serif', fontWeight: 600, color: unde...

#
  plotOptions:
    pie:
      donut:
        labels:
          show: true
          name:
            show: true
          value:
            show: true
#

Like that. But it is just going to show the value of the one you are hovering over.

cunning plume
#

okay your are right... but why its not showing the full state of the entity
like 20 mins instead it says 20 as number

void ferry
#

You need to mess with the formatter (https://github.com/RomRider/apexcharts-card#apex-charts-options-example). I have NO idea if the apex_config will accept it, but you can try this:

type: custom:apexcharts-card
chart_type: donut
style: |
  ha-card {
    border-radius: "var(--border-radius)";
    box-shadow: none;
    padding-bottom: 0px;
    padding-top: 0px;
  }
header:
  show: false
apex_config:
  title:
    floating: false
    align: top
    style:
      fontSize: 2px
      fontWeight: bold
  chart:
    foreColor: rgb(148,148,148)
    offsetY: 5
  legend:
    show: false
  dataLabels:
    enabled: true
    dropShadow:
      enabled: true
    formatter: |
      EVAL:function(value) {
        return `${value} minutes`
      }
  plotOptions:
    pie:
      donut:
        labels:
          show: true
          name:
            show: true
          value:
            show: ture
series:
  - entity: sensor.very_productive
    name: Very Productive
    color: rgb(0, 85, 196)
  - entity: sensor.productive
    name: Productive
    color: rgb(61, 128, 224)
  - entity: sensor.neutral
    name: Neutral
    color: rgb(177, 193, 191)
  - entity: sensor.distracting
    name: Distracting
    color: rgb(220, 104, 90)
  - entity: sensor.very_distracting
    name: Very Distracting
    color: rgb(214, 24, 0)
GitHub

๐Ÿ“ˆ A Lovelace card to display advanced graphs and charts based on ApexChartsJS for Home Assistant - GitHub - RomRider/apexcharts-card: ๐Ÿ“ˆ A Lovelace card to display advanced graphs and charts based o...

void ferry
#

might need a ; after the return value string. Since it is interpolated js

cunning plume
#

nope๐Ÿ˜‘

    enabled: false
    dropShadow:
      enabled: true
    formatter: |
      EVAL:function(value) {
        return `${value} minutes`;
      }```
void ferry
#

Try just return "minutes";

#

See what that does.

cunning plume
#

it does nothing

    enabled: false
    dropShadow:
      enabled: true
    formatter: |
      EVAL:function(value) {
        return "minutes";
      }```
#

actually it works

#

i have disabled it

void ferry
#

What?

#

Oh you disabled dataLabels got it.

cunning plume
#
    enabled: false```
changing to true its shows as minutes
void ferry
#

I had it true in the code block I sent back.

cunning plume
cunning plume
void ferry
#

But that doesn't really make sense because those are the % of the pie charts, not minutes.

cunning plume
#

isnt it supposted to show as 20 mins instead of 20?

#

or may be should i change the unit of measurement in sensor?

void ferry
#

I do not have anything that would make sense for this chart so I am using temperature. I did not have to set the units, it is already there. I would check the setup of your sensor in node red. You should have it as 20 with units of min instead of the string "20 min"

cunning plume
void ferry
#

Yea you should be inputting a number on the msg.veryProductive property (not a string). And set the unit of measurement to whatever you want. That will result in fractional minutes, but it will be alright if you are just showing it in a pie chart which is for percentages.

#

There is also a total option which gives this:

#

With the total always displayed.

cunning plume
#

as the day was reset it showing everything like this

void ferry
#

Well that's not ideal. Well when you get that figured out. I figured out how to make the center always display a specific value and not the total ๐Ÿ™‚

cunning plume
#

unless i start the section of productivity it would show like this i guess

void ferry
#

I can't really help with the functionality of the RescueTime scraper as I do not have an account and am not going to make one.

cunning plume
#

in this case what im thinking is to create a funtion node and check if one of the values is nun then automatically set all duration values to 0 . is this a better idea?

void ferry
#

It depends on what you are trying to achieve with your final graph.

cunning plume
#

can i use switch node?

#
msg = {};
msg.veryProductive = value
msg.productive = value
msg.neutral = value
msg.distracting = value
msg.veryDistracting = value

return msg;```
#

trying to get this in switch node but it isnt triggering

#

i think i kind of made it work

#

i made a condition card to make it work
which shows this when one of the values is not available

#

when values are available it will show the chart

cunning plume
#

hi made it work the way i wanted

cunning plume
cunning plume
#

@void ferry how do do this
{{ (states('input_number.number') | float(0)/60 )| round(0) }}
in node red from object location?
i need to convert all values into min from secs

#

like 180 min

#

this kind of works

  
msg.payload = test
return msg;```
cunning plume
#

i kind of created like two groups of sensors on with state in hhmmss and other as whole number without decimals

void ferry
#

Are you all good with this?

cunning plume
#

can you share how to set value in center of donut graph?

void ferry
#

Change the w.config.series[0] to the correct series number for you. If you do not know it, just increment up till you get the correct one (since you only have 5).

  plotOptions:
    pie:
      donut:
        labels:
          show: true
          name:
            show: true
          value:
            show: true
          total:
            show: true
            showAlways: true
            formatter: |
              EVAL:function(w) {
                return `${Math.round(w.config.series[0])}`;
              }
#

The part you are interested in is the total: just left in the rest to show the whole tree.

cunning plume
#

soo this is the only way?

#

i want to show productivity score which does not do anything with graph view

#

is it possible to add apexchat card in custom button card?

cunning plume
#

@void ferry

#

does it look good?

#

right top is animated icon which only appears and does animation when my distracting time is more than 1 hr.

void ferry
#

Nice! Did you end up putting it in a button card?

cunning plume
#

No...i tried to put in layout card and conditional cards with card mode styles

#

If you can help add in button card that could be helpful

void ferry
#

Oh I don't think it will go in a button card. I was just wondering what you did to get your final effect ๐Ÿ™‚

cunning plume
#

Yeah i tried with custom button card but did not work

#

@void ferry i need help in this part

#

when readings are unavaliable it says nan

#

i can fix this in homeassistant tempelate like this..where float(0) soo when the sensor goes unavaliable it returns as 0
{{ (states('input_number.number') | float(0)/60 )| round(0) }}
how to do the same in nodered

#

this is the only part im still stuck..hope you could help

void ferry
cunning plume
#

yeah im trying to check for that but it does nothing

void ferry
#

Which function is giving you those? Is it the one I helped with or the html parser one?

cunning plume
#

this helps

#

when day resets and i dont start my prductivity , no data is provided in web

#

soo it returns as nan

#

my question is ...is it possible to do like this?

if the data is nan it should return as 0

#

can i do like this? will it work?
msg.veryProductive = timeStringConversion(timeConversion(msg.very_productive_duration || 0))

#

@void ferry actually what i found is this issue is only with the funtion node you shared which shows error

#

when flow does not run via that funtion node actually works and states are set a unknown which is pretty good ..i want the same with your funtion node is it possible?

#

check this ...

#

@void ferry why this doesnot work?

if (min == NaN){
    msg.veryProductive = NaN;
    msg.productive = NaN;
    msg.neutral = NaN;
    msg.distracting = NaN;
    msg.veryDistracting = NaN;
}
else {
    msg.veryProductive = timeStringConversion(timeConversion(msg.very_productive_duration))
    msg.productive = timeStringConversion(timeConversion(msg.productive_duration))
    msg.neutral = timeStringConversion(timeConversion(msg.neutral_duration))
    msg.distracting = timeStringConversion(timeConversion(msg.distracting_duration))
    msg.veryDistracting = timeStringConversion(timeConversion(msg.very_distracting_duration))
}

return msg;```
cunning plume
#

this part doesnot work...
if (msg.min == NaN)

#

when i copy value it shows as null even i tried still it does not pass through...any idea what should i add

void ferry
cunning plume
#

yes ..tried this still this does not work

    msg.productivity = 0
  }```
void ferry
void ferry
cunning plume
#

yes never mind it works...im such a dump

cunning plume
#

final setup all works as expected

cunning plume
#

@void ferry one help..is it possible to change the location of the content with cardmod?
i tried but cant find a filter for it

cunning plume
#

@void ferry sorry to disturb you can you vouch me create a simple bar graph like this?

#

may be this

cunning plume
#

im trying to add the productivity score entity and hiding it from chart and header and it works but by doing this it does not show in labels

    name: Productivity Score
    color: rgb(214, 24, 0)
    show:
      in_header: false
      in_chart: false```
#

i even tried to change values but it does not appear

#
              EVAL:function(w) {
                return `${Math.round(w.config.series[5])}`;
              }```
its the 5th entity but it shows none
if i enable that entity to show in graph then it shows.
 any way to make it show in labels when show in graph is false
cunning plume
#

@void ferry is it possible to add something like this?

              EVAL:function(w) {
                return `{{states('sensor.processor_use')}}`
                }```