We control the brightness of the computer monitor screen using IOTLink. Not all computer monitors have a light sensor and automatic brightness adjustment, but this is possible if the monitor supports brightness adjustment programmatically. If your monitor has DDC/CI support, then you can change the brightness of the monitor screen. All this is done in Windows OS. You can automate the brightness of the screen for different situations. For example, on a sunny day, the brightness of the screen can be increased to a comfortable level by an external light sensor. If it is dark, then the brightness of the screen can be reduced. We launched the game, before the game was launched, the screen brightness was 20%, and the game will be 50-60%. Turned off the game and started surfing the Internet or working, then the screen brightness will be 20-30%. We decided to watch a movie, the screen brightness is 40%.
I would be grateful if you have your own version of controlling the brightness of the monitor screen and you share it or post examples of how you can do better. Thanks.
We put the Monitoring program on Windows, which adjusts the brightness of the screen and use the slider to check whether the screen brightness adjustment works, if so, then continue on
Run the CMD console and enter the command, where /set 10 is the brightness level from 0 to 100
%LOCALAPPDATA%\Microsoft\WindowsApps\Monitorian.exe /set 10 - brightness level 10%
%LOCALAPPDATA%\Microsoft\WindowsApps\Monitorian.exe /set 20 - brightness level 20%
%LOCALAPPDATA%\Microsoft\WindowsApps\Monitorian.exe /set 40 - brightness level 40%
%LOCALAPPDATA%\Microsoft\WindowsApps\Monitorian.exe /set 80 - brightness level 80%
%LOCALAPPDATA%\Microsoft\WindowsApps\Monitorian.exe /set 100 - brightness level 100%
If everything works fine, go ahead
We put the IOTLink program on Windows and read documentation on launching the program via IOTLink
Next, through the service, we check the screen brightness change and it should work. While we are specifying a specific number for brightness, then we will use a variable, the main thing is that it works for you.
service: mqtt.publish
data:
topic: iotlink/workgroup/livingroom/commands/run
payload: >-
{ "command": "C:\\Windows\\System32\\cmd.exe", "args":"/k
%LOCALAPPDATA%\\Microsoft\\WindowsApps\\Monitorian.exe /set 40",
"path": "C:\\Windows\\System32","user": "", "visible": false, "fallback":
true }
Now that we have the screen brightness adjustment working, we need to add lighting to the template, through which we will control the brightness of the monitor screen. You can read more about Template Light here
Create 3 objects:
- switch mqtt - read more here
- input_number - read more here
- light - we use Template Light
- Let’s create a switch. You can create any switch, but I use switch mqtt
switch:
- platform: mqtt
unique_id: switch livingroom monitor brightness
object_id: livingroom monitor brightness
name: "Living room: Monitor. Screen Brightness"
command_topic: "hass/switch/livingroom/monitor_brightness"
state_topic: "hass/switch/livingroom/monitor_brightness"
retain: true
qos: 0
icon: mdi:monitor
- Let’s create an auxiliary element number, which we will use mqtt.publish to adjust the brightness of the screen
input_number:
pc_livingroom_monitor_brightness:
name: "Living room: Monitor. Screen Brightness"
min: 0
max: 100
step: 1
mode: box
icon: mdi:monitor
- We create a template for adjusting the brightness of the screen, where we will insert a switch and an auxiliary element. Note that I specified value: “{{ (brightness)|int / 2.55 }}”. This is done specifically for the reason that the screen brightness is from 0 to 100, and brightness is from 0 to 255, so I had to divide 255/2.55=100, which corresponds to the brightness level of the screen
light:
- platform: template
lights:
livingroom_monitor_brightness:
friendly_name: "Living room: Monitor. Screen Brightness"
value_template: '{{ is_state("switch.livingroom_monitor_brightness", "on") }}'
level_template: '{{states("input_number.pc_livingroom_monitor_brightness")|round(0)|int * 2.55}}'
turn_on:
service: switch.turn_on
target:
entity_id: switch.livingroom_monitor_brightness
turn_off:
service: switch.turn_off
target:
entity_id: switch.livingroom_monitor_brightness
set_level:
service: input_number.set_value
data:
value: "{{ (brightness)|int / 2.55 }}"
target:
entity_id: input_number.pc_livingroom_monitor_brightness
-
We check for errors and if everything is OK, restart the Home Assistant
-
Creating automation to adjust the brightness of the screen
alias: 'Living room: Monitor. Brightness adjustment'
description: Adjust the brightness of the monitor
trigger:
- platform: state
entity_id:
- input_number.pc_livingroom_monitor_brightness
condition: []
action:
- service: mqtt.publish
data:
topic: iotlink/workgroup/livingroom/commands/run
payload: >-
{ "command": "C:\\Windows\\System32\\cmd.exe", "args":"/k
%LOCALAPPDATA%\\Microsoft\\WindowsApps\\Monitorian.exe /set
{{states("input_number.pc_livingroom_monitor_brightness")|round(0)}}",
"path": "C:\\Windows\\System32","user": "", "visible": false,
"fallback": true }
mode: single
- We display the lighting card and adjust the brightness of the screen
Текст на русском (Text in Russian)
Управляем яркостью экрана компьютерного монитора с помощью IOTLink. Не все компьютерные мониторы имеют датчик света и автоматическую регулировку яркости, но такая возможность есть, если монитор поддерживает регулировку яркости программно. Если ваш монитор имеет поддержку DDC/CI, тогда вы сможете менять яркость экрана монитора. Все это делается в ОС Windows. Можно автоматизировать яркость экрана под различные ситуации. Например, солнечный день, по внешнему датчику света яркость экрана можно увеличить до комфортного вам уровня. Если темно, то яркость экрана можно снизить. Запустили игру, до запуска игры яркость экрана была 20%, а в игре будет 50-60%. Выключили игру и начали серфить в интернете или работать, то яркость экрана будет 20-30%. Решили посмотреть кино, яркость экрана 40%.
Буду признателен, если у вас есть свой вариант управления яркости экрана монитора и вы им поделитесь или выложите примеры как можно сделать лучше. Спасибо.
Ставим на Windows программу Monitorian, которая регулирует яркость экрана и ползунком проверяем, работает ли регулировка яркости экрана, если да, то продолжаем дальше
Запускаем консоль CMD и вводим команду, где /set 10 это уровень яркости от 0 до 100
%LOCALAPPDATA%\Microsoft\WindowsApps\Monitorian.exe /set 10 - уровень яркости 10%
%LOCALAPPDATA%\Microsoft\WindowsApps\Monitorian.exe /set 20 - уровень яркости 20%
%LOCALAPPDATA%\Microsoft\WindowsApps\Monitorian.exe /set 40 - уровень яркости 40%
%LOCALAPPDATA%\Microsoft\WindowsApps\Monitorian.exe /set 80 - уровень яркости 80%
%LOCALAPPDATA%\Microsoft\WindowsApps\Monitorian.exe /set 100 - уровень яркости 100%
Если все работает, отлично, идем дальше
Ставим на Windows программу IOTLink и читаем документацию по запуске программы через IOTLink
Далее, через службу проверяем смену яркости экрана и должно сработать. Пока мы указываем конкретную цифру для яркости, потом будем использовать переменную, главное, чтобы у вас работало.
service: mqtt.publish
data:
topic: iotlink/workgroup/livingroom/commands/run
payload: >-
{ "command": "C:\\Windows\\System32\\cmd.exe", "args":"/k
%LOCALAPPDATA%\\Microsoft\\WindowsApps\\Monitorian.exe /set 40",
"path": "C:\\Windows\\System32","user": "", "visible": false, "fallback":
true }
Теперь, когда у нас работает регулировка яркости экрана, нам нужно, это дело добавить в шаблон освещение, через который мы будем управлять яркостью экрана монитора. Более подробнее про Template Light можно прочитать здесь
Создадим 3 объекта:
- switch mqtt - подробнее читаем здесь
- input_number - подробнее читаем здесь
- light - используем Template Light
- Создадим выключатель. Выключатель можно создать любой, но я использую switch mqtt
switch:
- platform: mqtt
unique_id: switch livingroom monitor brightness
object_id: livingroom monitor brightness
name: "Гостиная: Монитор. Яркость экрана"
command_topic: "hass/switch/livingroom/monitor_brightness"
state_topic: "hass/switch/livingroom/monitor_brightness"
retain: true
qos: 0
icon: mdi:monitor
- Создадим вспомогательный элемент число, который будем использовать mqtt.publish для регулировки яркости экрана
input_number:
pc_livingroom_monitor_brightness:
name: "Гостиная: Монитор. Яркость экрана"
min: 0
max: 100
step: 1
mode: box
icon: mdi:monitor
- Создаем шаблон для регулировки яркости экрана, куда мы вставим выключатель и вспомогательный элемент число. Note that I specified value: “{{ (brightness)|int / 2.55 }}”. This is done specifically for the reason that the screen brightness is from 0 to 100, and brightness is from 0 to 255, so I had to divide 255/2.55=100, which corresponds to the brightness level of the screen
light:
- platform: template
lights:
livingroom_monitor_brightness:
friendly_name: "Гостиная: Монитор. Яркость экрана"
value_template: '{{ is_state("switch.livingroom_monitor_brightness", "on") }}'
level_template: '{{states("input_number.pc_livingroom_monitor_brightness")|round(0)|int * 2.55}}'
turn_on:
service: switch.turn_on
target:
entity_id: switch.livingroom_monitor_brightness
turn_off:
service: switch.turn_off
target:
entity_id: switch.livingroom_monitor_brightness
set_level:
service: input_number.set_value
data:
value: "{{ (brightness)|int / 2.55 }}"
target:
entity_id: input_number.pc_livingroom_monitor_brightness
-
Проверяем на наличие ошибок и если все ок, перезапускаем Home Assistant
-
Создаем автоматизацию для регулировки яркости экрана
alias: 'Гостиная: Монитор. Регулировка яркости'
description: Регулируем яркость монитора
trigger:
- platform: state
entity_id:
- input_number.pc_livingroom_monitor_brightness
condition: []
action:
- service: mqtt.publish
data:
topic: iotlink/workgroup/livingroom/commands/run
payload: >-
{ "command": "C:\\Windows\\System32\\cmd.exe", "args":"/k
%LOCALAPPDATA%\\Microsoft\\WindowsApps\\Monitorian.exe /set
{{states("input_number.pc_livingroom_monitor_brightness")|round(0)}}",
"path": "C:\\Windows\\System32","user": "", "visible": false,
"fallback": true }
mode: single
- Выводим карточку освещение и регулируем яркость экрана