TileBoard - New dashboard for Homeassistant

how can I display a timer countdown? in home assistant I have a badge that displays it.
I have used type.sensor but can only see the idle or active status

Yes, the following should work. You’d have to use an automation, whether that be YAML, AppDaemon, or Node-Red, to fire an event with the event_type of tileboard and the command of hide_screensaver when motion is triggered. Then, in the events section of config.js, add the following:

{
	command: 'hide_screensaver',
	action: function(e) {
		window.hideScreensaver();
	}
}
2 Likes

Thanks @apop! I had to add in the brackets after the window.hideScreensaver; to work, so now it reads this window.hideScreensaver();. But other than that works like a charm, thanks again!

Oops - typed a little too fast and forgot the parenthesis. Glad it worked otherwise, though! I’ll go back and update my original reply too in case anyone comes across this in the future.

1 Like

I don’t have any timers set up in Home Assistant anymore, but I believe the value you need to expose to the tile is the “remaining” attribute instead of the state, which will just show if it’s active or idle. You can confirm the exact attribute name by looking up the timer in the states developer tool. Once you have this, try including the following in that tile’s definition:

value: '&timer.timer_name.attributes.remaining'

a small step forward, now I see the remaining time but not the countdown. example for a 1 minute countdown, idle state = 0:00:00. when I turn on the timer I see: 0:01:00, but not the countdown

Can you post your configuration for the badge in Lovelace? Is it a template sensor?

timer

it’s only a simple timer

I have released an updated version of my AppDaemon helper script for TileBoard. This new version contains a breaking change to the auto-screensaver functionality, so check the readme before using it. I also added a new optional function that will schedule TileBoard to refresh at 3am daily. If you have suggestions for other helper functions, I’d be happy to consider them!

So that badge actually counts down in real time? I’d probably have to defer to someone else who uses a timer in their configuration, unfortunately.

I have read README.md I am testing “via” browser, it seems to be much more stable than fully

Hi All, new here and in the middle of a steep learning curve.
reason for jumping on Hassio is TileBoard, love the look and flexibility but I am, by no means, a JavaScript specialist and hope someone can give me push in the right direction:

I have a garbage collector sensor configured that gives me an output in long date format e.g. “2019-03-26T00:00:00”
I’ve set up a tile in TB:
{
position: [0, 0],
width: 2,
type: TYPES.TEXT_LIST,
id: {}, // using empty object for an unknown id
state: false, // disable state element
list: [
{
title: ‘Plastic’,
icon: ‘mdi-sync’,
value: ‘&sensor.rova_plastic.state’,
unit: ‘’
}
]

The states of this sensor is very rudimentary:
friendly_name: Rova_plastic
icon: mdi:recycle
device_class: timestamp

My goal is to have the long date replaced by ‘weekdays’ if it is occurring this week, or ‘in x weeks’ if event takes place later to get a minimalistic tile: only type of waste and “tuesday” would be great

Do I start in Hassio or can this be set up in TileBoard.?
Appreciate your guidance .

Hi, I’m looking to use an NGINX SSL proxy with tileboard, I’ve install the official NGINX addon, what values are needed in Tileboard’s serverUrl and wsUrl fields?

EDIT: found the problem, wsUrl: needs to start with wss:// when using SSL, it’s working over NGINX now :slight_smile:

Hi @mathewtaylor2007! Did you ever figure out how to pull up the panel automatically?

Here is my Trash and Recycling day configuration. Hopefully, it will help you out. I’m sure there are cleaner ways to accomplish this, but this works for me.

CONFIG.JS:

  {
  position: [0, 2],
  type: TYPES.SENSOR_ICON,
  id: 'binary_sensor.trashday',
  title: 'Garbage Tomorrow',
  state: false,
  icon: 'mdi-dump-truck',
  customStyles: function (item, entity) {
    if (entity.state == 'on') {
      return {
        'backgroundColor': '#10938D',
		'color': '#fff',
        };
    } else {
        return {
          'opacity': '0',
		};
	  }
    },
  },
  {
  position: [1, 2],
  type: TYPES.SENSOR_ICON,
  id: 'sensor.even_or_odd_week',
  title: 'Recycling Tomorrow',
  state: false,
  icon: 'mdi-recycle',
  customStyles:  function (item, entity) {
    if (this.states['binary_sensor.trashday'].state == 'on') {
      if (entity.state == 'True') {
        return {
          'backgroundColor': '#13AC20',
		  'color': '#fff',
          };
      } else {
         return {
            'opacity': '0',
		  };
	    }
	  } else {
         return {
            'opacity': '0',
		  };
      }
    },
  }

CONFIGURATION.YAML:

 binary_sensor:
  - platform: workday
    country: US
    name: trashday
    workdays: [wed]

SENSORS.YAML:

#Even Odd Week
  - platform: template
    sensors:
      even_or_odd_week:
        value_template: '{{ ((now().strftime("%W") | int) % 2) == 0 }}'
        entity_id: binary_sensor.trashday

Trash Day:

Trash and Recycling Day:

Normal Day:

5 Likes

Thank you @knemo!
A different approach than what I had in mind but like it even better!
Much appreciated

Yes I did. I added an automation that is triggered when I open the front door and the alarm is set, and included this in the automation:

- event: tileboard
  event_data_template:
    command: open_alarmpanel
    id: 0

and then put this is the tileboard config

{
command: ‘open_alarmpanel’,
action: function(e) {
this.$scope.openAlarm(ALARMPANEL_TILE, [e]);
}
}

@resoai, great work on this project. Thanks very much.

I’m struggling with the brightness control on a LIGHT tile, when the entity it a group of lights. I can turn on and off the group, but the + and - buttons on the tile return an error saying “No brightness field in object”.

I thought that maybe I just can’t control the brightness of a group, but it works absolutely fine in the slider. So I’m confused!

Here is my code

{
                     title: 'Living Room',
                     position: [0, 0], // [x, y]
                     width: 1,
                     id: 'group.lights_livingroom',
                       type: TYPES.LIGHT,
                       states: switchPercents('brightness', 255, true),
                       // field: 'brightness_pct',
                       icons: {
                          on: "mdi-lightbulb-on",
                          off: "mdi-lightbulb",
                       },
                       brightness: {
                             title: 'Brightness',
                             field: 'brightness',
                             max: 255,
                             min: 0,
                             step: 15,
                             request: {
                                type: "call_service",
                                domain: "light",
                                service: "turn_on",
                                field: "brightness"
                             }
                       
                       },
                       
                       sliders: [
                          {
                             title: 'Brightness',
                             field: 'brightness_pct',
                             max: 100,
                             min: 0,
                             step: 5,
                             request: {
                                type: "call_service",
                                domain: "light",
                                service: "turn_on",
                                field: "brightness_pct"
                             }
                          },
                          {
                             title: 'Temperature',
                             field: 'kelvin',
                             max: 4000,
                             min: 2700,
                             step: 100,
                             request: {
                                type: "call_service",
                                domain: "light",
                                service: "turn_on",
                                field: "kelvin"
                             },
                             
                             
                             
                             
                          }
                       ]
                       
                  },

Any clues would be much appreciated!
Thanks

I have an old tablet witch i use for TileBoard. First page contains some tiles from Home Assistant and the second page an iFrame. I don’t want the animated transition because it is faltering when switching the pages. But when I choose simple transition the iFrame will not be preloaded. So when I go to the second page I have to wait for loading the iFrame. Is there an option to use simple mode but with preloading the second page?

You still have domain “light” even though you are sending the request for the “group”.