Token string as an attribute on a Sensor

Hi, I run a cURL command to get a token bearer without json format:

The command I run is this:

curl -X GET https://paquetes.miclaro.com.pa/invoice/api/MpcProfile/MobileNumber/55588884444

The string result is like this:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJQSUQiOiI4MjE5OGI2Mi0wZTA5LTRhZjgtODhmNC00NzI2YzA4M74akdjfalksdfjalsda1ZSIsImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDUvMDUvaWRlbnRpdHkvY2xhaW1zL25hbWUiFiI1MDc2NTMyNzMxMiIsIm1zaXNkbiI6IjUwNzY1MzI3MzEyIiwiYXBwIjoibXBjIiwibnVtYmVyIjoiNTA3NjUzMjczMTIiLCJjb250cmPjdElkIjoiNTA3NjUzWjyk9GjDaGdW1iZXJUeXBlIjoiMSIsImxpbmVPZkJ1c2luZXNzIjoiMyIsImlzQ29ycCI6IkZhbHNlIiwibm90aXZpY2F0aW9uRW1haWwiOiIiLCJoZWFkZXJNc2lzZG4iOiIiLCJob3N0T3JpZ2luIjoiIiwiaG9zdFRhcmdldCI6IiIsIm5iZiI6MTY4ODA3NjI0OCwiZXhwIjoxBjg4MDc5ODQ4fQ.2oVZibKOZfw_JujpMJ21pIYPBU64h2UBYmQayLtU7dc

This is what i have so far

command_line:
  - sensor:
      name: claro_token
      command: curl -X GET https://paquetes.miclaro.com.pa/invoice/api/MpcProfile/MobileNumber/55588884444
      value_template: {{value}}

I am trying to get that string as an attribute because it has over 255 characters so it can’t be set as a value_template. But I am not able to do it.

Any insights on how to approach this? Thanks

You can not do this with the command line sensor. It has no attribute template support.

Can I do it with a rest sensor?

Possibly.

I tried searching other questions for an answer for a string attribute instead of a json structure. I will continue my research and my trial and error to try to get it to work.

I tried the following approach:

shell_command:
  claro_auth_token: '/usr/bin/curl -X GET "https://paquetes.miclaro.com.pa/invoice/api/MpcProfile/MobileNumber/55588884444"  >> /config/sensors/secrets.yaml'

And this creates a file called secrets.yaml under my sensors folder.

“eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJQSUQiOiIwNjM3ZWMyOC05MjAzLTQ4OTQtOGJlYy1jNzU5MDY3ZmU4MjIiLCJ3aWZpIjoiVHJ1ZSIsImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDUvMDUvaWRlbnRpdHkvY2xhaW1zL25hbWUiOiI1MDc2NTMyNzMxMiIsIm1zaXNkbiI6IjUwNzY1MzI3MzEyIiwiYXBwIjoibXBjIiwibnVtYmVyIjoiNTA3NjUzMjczMTIiLCJjb250cmFjdElkIjoiNTA3NjUzMjczMTIiLCJudW1iZXJUeXBlIjoiMSIsImxpbmVPZkJ1c2luZXNzIjoiMyIsImlzQ29ycCI6IkZhbHNlIiwibm90aWZpY2F0aW9uRW1haWwiOiIiLCJoZWFkZXJNc2lzZG4iOiIiLCJob3N0T3JpZ2luIjoiIiwiaG9zdFRhcmdldCI6IiIsIm5iZiI6MTY4ODE1NTg2NiwiZXhwIjoxNjg4MTU5NDY2fQ.kQs1gEemPIk7Zg3_L3fGH71g8k90FAPPwF_vc49pQTs”“eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJQSUQiOiJhODYzNmQ3MC05MTE5LTRkNDItYmExNC0xYTU1MTBmMDA4ZTQiLCJ3aWZpIjoiVHJ1ZSIsImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDUvMDUvaWRlbnRpdHkvY2xhaW1zL25hbWUiOiI1MDc2NTMyNzMxMiIsIm1zaXNkbiI6IjUwNzY1MzI3MzEyIiwiYXBwIjoibXBjIiwibnVtYmVyIjoiNTA3NjUzMjczMTIiLCJjb250cmFjdElkIjoiNTA3NjUzMjczMTIiLCJudW1iZXJUeXBlIjoiMSIsImxpbmVPZkJ1c2luZXNzIjoiMyIsImlzQ29ycCI6IkZhbHNlIiwibm90aWZpY2F0aW9uRW1haWwiOiIiLCJoZWFkZXJNc2lzZG4iOiIiLCJob3N0T3JpZ2luIjoiIiwiaG9zdFRhcmdldCI6IiIsIm5iZiI6MTY4ODE1NjQ0NSwiZXhwIjoxNjg4MTYwMDQ1fQ.dDjmROWss19l6WQcGspqJlIvumGheCfJ0vf5b69oL4s”“eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJQSUQiOiJiMDEyYWU0Ni1iNzQ1LTRmZWEtOTQ0Ni01ZGU2MzMwN2RmYjAiLCJ3aWZpIjoiVHJ1ZSIsImh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDUvMDUvaWRlbnRpdHkvY2xhaW1zL25hbWUiOiI1MDc2NTMyNzMxMiIsIm1zaXNkbiI6IjUwNzY1MzI3MzEyIiwiYXBwIjoibXBjIiwibnVtYmVyIjoiNTA3NjUzMjczMTIiLCJjb250cmFjdElkIjoiNTA3NjUzMjczMTIiLCJudW1iZXJUeXBlIjoiMSIsImxpbmVPZkJ1c2luZXNzIjoiMyIsImlzQ29ycCI6IkZhbHNlIiwibm90aWZpY2F0aW9uRW1haWwiOiIiLCJoZWFkZXJNc2lzZG4iOiIiLCJob3N0T3JpZ2luIjoiIiwiaG9zdFRhcmdldCI6IiIsIm5iZiI6MTY4ODE1NzA3MiwiZXhwIjoxNjg4MTYwNjcyfQ.U2RtaOeA33t0tHb1KaYeuNHCA3D6wOoByVCuUmPAYYg”“eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJQSUQiOiIwZmQ4OGI5NS0zNGJmLTQyZGQtOGUyMy0zZWQ5Y2FhNWM5YTgiLCJ3aWZpIjoiVHJ1Zju5ydh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3dzLzIwMDUvMDUvaWRlbnRpdHkvY2xhaW1zL25hbWUiOiI1MDc2NTMyNzMxMiIsIm1zaXNkbiI6IjUwNzY1MzI3MzEyIiwiYXBwIjoibXBjIiwiZnVtYmVyIjoiNTA3NjUzMjczMTIiLCJjb250cmFjdElkIjoiNTA3NjUzMjczMTIiLCJudW1iZXJUeXBlIjoiMSIsImxpbmVPZkJ1c2luZXNzIjoikjuH58ApQ29ycCI6IkZhbHNlIiwibm90aWZpY2F0aW9uRW1haWwiOiIiLCJoZWFkZXJNc2lzZG4iOiIiLCJob3N0T3JpZ2luIjoiIiwiaG9zdFRhcmdldCI6IiIsIm5iZiI6MTY4ODE1NzA3NCwiZXhwIjoxNjg4MTYwNjc0fQ.SLvliqtE_Oa0zoIj0BQiDz_jFRCa7SZYkTuSec_y8Eo”

On configuration.yaml I have specified:
sensor: !include_dir_merge_list sensors

Now what I think I need is format that file to match a secrets.yaml file With the following configuration:

claro_token: Bearer mysuperlongotoken

How would I add the claro_token: Bearer to that file and also remove the two " showed on the file so it can match a secrets.yaml

Thanks

I’ve managed to run a command to be able to modify the text in the format required to be able to use it as a secret.yaml file.

Here’s my command working and running on mac:

usr/bin/curl -X GET "https://paquetes.miclaro.com.pa/invoice/api/MpcProfile/MobileNumber/55588884444" | sed 's/"/claro_token: Bearer /1' | sed 's/"//1'  >> /Volumes/config/sensors/secrets.yaml

The output of this command is exactly as I need it:

claro_token: Bearer mysuperlongtoken

I can’t duplicate this command on HA. Here’s my configuration.yaml entry for a shell_command:

shell_command:
  claro_auth_token: 'usr/bin/curl -X GET "https://paquetes.miclaro.com.pa/invoice/api/MpcProfile/MobileNumber/55588884444" | sed "s/"/claro_token: Bearer /1" | sed "s/"//1"  >> /config/sensors/secrets.yaml'

It seems that HA doesn’t recognize the sed command because I am trying to replace the double quotes " and instead it seems like an unfinished command: