键盘遥控器
从键盘接收信号,并将其用作遥控器。
这种集成使您可以将一个或多个键盘用作遥控器。它会开火keyboard_remote_command_received
然后可以在自动化规则中使用的事件。
这evdev
软件包用于与键盘接口,因此仅是Linux。这也意味着您不能使用普通键盘,因为evdev
会阻止它。
#示例Configuration.yaml条目键盘_REMOTE:类型:“key_up”
任何一个设备名称
或者device_descriptor
必须存在于配置条目中。指示设备名称在重复设备的断开和重新连接的情况下(例如,蓝牙键盘)很有用:本地输入设备文件可能会更改,从而破坏配置,而名称保持不变。如果存在同一模型的多个设备,device_descriptor
必须使用。
当找不到配置条目中指示的设备时,在启动的调试日志中报告了可能的设备描述符和名称的列表。
两个键盘遥控器的完整配置看起来像以下一个:
键盘_REMOTE:-device_descriptor:'/dev/input/by-id/bluetooth-keyboard'类型:“key_down”emulate_key_hold:真的emulate_key_hold_delay:0.25emulate_key_hold_repeat:0.033-device_descriptor:'/dev/input/event0'类型:-'key_up'-'key_down'
或喜欢以下键盘的以下内容:
键盘_REMOTE:设备名称:“蓝牙键盘”类型:“key_down”
以及一个自动化规则,将生命呼入其中:
自动化:别名:“键盘全部灯在”扳机:平台:事件事件类型:keyboard_remote_command_receivedevent_data:device_descriptor:“/dev/intup/event0关键代码:107#检查日志以获取所需的密码类型:key_down#仅在key_down事件上触发(可选)行动:服务:light.turn_on目标:ENTITY_ID:灯
device_descriptor
或者设备名称
可以在触发器中指定,以便仅针对该键盘触发自动化。如果您希望使用多个蓝牙遥控器来控制不同的设备,这一点特别有用。省略它们以确保相同的键触发所有键盘/遥控器的自动化。
关键代码
应将其设置为密钥按下生成的代码,否则触发器将在每个键按下。类型
可以选择设置为key_down
,,,,key_up
, 或者key_hold
将触发器限制为该特定事件类型。
断开连接
这种集成管理键盘的断开和重新连接,例如,在蓝牙设备的情况下,该设备自动关闭以保存电池。
如果键盘断开连接,则集成将解雇事件键盘_REMOTE_DISCONTED
。当键盘重新连接时,事件keyboard_remote_connected
将被解雇。
这是一个自动化示例,每当键盘连接/断开连接时,可以通过媒体播放器播放声音:
自动化:-别名:“键盘连接的”扳机:平台:事件事件类型:keyboard_remote_connected行动:-服务:Media_player.play_media目标:ENTITY_ID:Media_player.speaker数据:Media_content_id:keyboard_connected.wavMEDIA_CONTENT_TYPE:音乐-别名:“蓝牙键盘断开连接”扳机:平台:事件事件类型:键盘_REMOTE_DISCONTEDevent_data:设备名称:“00:58:56:4C:C0:91“行动:-服务:Media_player.play_media目标:ENTITY_ID:Media_player.speaker数据:Media_content_id:keyboard_disconnected.wavMEDIA_CONTENT_TYPE:音乐
权限
事件输入设备文件可能存在权限问题。如果是这种情况,则家庭助理的用户必须按照以下方式读取和写入权限。必威是什么
Sudosetfacl-mU:HASS_USER:RW/DEV/INPUT/EVANT*
在哪里hass_user
是经营家庭助理的用户。必威是什么
如果要使此永久性,则可以使用为所有事件输入设备设置它的UDEV规则。添加一个文件/etc/udev/rules.d/99-userdev-input.rules
包含:
核心==“事件*”,,,,子系统==“输入”,运行+=“/usr/bin/setfacl -m u:hass_user:rw$ env{devname}”
您可以通过以下方式检查ACLS权限
getfacl/dev/输入/事件*