Homeoffice Signage

Does anyone have a solution for a (simple) signage outside of the home office room. Like indicating virtual meetings? I’m thinking caldav looking into my meeting calendar and changing coulors and ideally how long the meeting’s gonna last?

Something like this - except tinkered together with a bit less “professional” costs?

I do this first bit by monitoring Teams, and reacting on status changes.

1 Like

Even better as we work on Teams also. Still looking for a device to display my current statev outside the door. Best was some red LED if I’m in a meeting.

Yeah, that screen looks nice!

I have an LED strip inside a transparent vase outside the room, controlled by openHAB via WLED (via MQTT).

It turns red when I’m busy or in a meeting, green when I’m ‘free’, and off if I’m away or offline.

Rule 1 Blockly generated code (section of)

var teams_mode;

var thread = Java.type('java.lang.Thread')


thread.sleep(1000);
teams_mode = itemRegistry.getItem('strTeamsMode').getState();
if (teams_mode == 'Away' || teams_mode == 'Offline') {
  if (itemRegistry.getItem('nWorkMode').getState() != '0') {
    events.sendCommand('nWorkMode', '0');
  }
} else if (teams_mode == 'Available') {
  if (itemRegistry.getItem('nWorkMode').getState() != '1') {
    events.sendCommand('nWorkMode', '1');
  }
} else if (itemRegistry.getItem('nWorkMode').getState() != '2') {
  events.sendCommand('nWorkMode', '2');
}

Rule 2 Blockly generated code

var work_mode;

function colorHexToHSB (hexColor) {
  var rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexColor);
  if (!rgb) return '';
  var r = parseInt(rgb[1], 16) / 255, g = parseInt(rgb[2], 16) / 255, b = parseInt(rgb[3], 16) / 255;
  var v = Math.max(r, g, b), n = v - Math.min(r, g, b);
  var h = n === 0 ? 0 : n && v === r ? (g - b) / n : v === g ? 2 + (b - r) / n : 4 + (r - g) / n;
  return [60 * (h < 0 ? h + 6 : h), v && (n / v) * 100, v * 100].join(',');
}


work_mode = itemRegistry.getItem('nWorkMode').getState();
if (work_mode == 0) {
  events.sendCommand('sRGB1', 'OFF');
} else if (work_mode == 1) {
  events.sendCommand('cRGB1', colorHexToHSB('#33ff33'));
} else if (work_mode == 2) {
  events.sendCommand('cRGB1', colorHexToHSB('#ff0000'));
}
1 Like