快捷目录

  • 前言&前提
    • 文章前提
  • 实现效果
  • 准备工具
  • HA内设置
    • 创建长期Token
    • 辅助类实体
    • 创建webhook
  • 锁屏壁纸渲染
    • Docker容器
    • 容器启动参数
  • OnlineScreensaver插件
    • 修补权限
    • 配置服务
  • 成功运行

前言&前提

现在万物讲究互联,前段时间介绍了智能泡面板 Kindle越狱和树莓派安装Home Assistant。这次,我们就教大家怎么把两者有机结合,实现:

  • Kindle的锁屏替换为Home Assistant的监控面板,并定期刷新(KPW4及以上,可能要按电源键或者把智能盖板唤醒才会)。
  • Home Assistant内可以查看到Kindle的剩余电量(KPW4及以上,要按电源键或者把智能盖板唤醒才会)。

文章前提

前提很简单,正如上文所说,我们需要:

  • 已经越狱的Kindle:如果你并不知道怎么越狱,参考:无需拆机,Kindle 全系列 5.12.2.2 ~ 5.14.2版本如何越狱?如何安装第三方插件
  • 已经有Home Assistant:如果你有树莓派,可以参考:详解树莓派上如何安装Home Assistant Supervised,让家里的智能设备更智能

注意⚠️:KPW4及其以上版本Kindle,因为锁屏后会自动断开Wi-Fi,且因为固件原因,无法重新开启直到用户按电源键,所以自动定期申报数据,在KPW4以后,需要用户手动点亮屏幕才会进行一次申报(主要是,我不知道Kindle的Wake Up指令是什么……)

实现效果

使用效果很简单,举个例子:我们的Home Assistant的监控面板:

我们之后,把页面截图并锐度后,可以得到这样的黑白图片:

最后,把它推送到Kindle上,应用为锁屏壁纸即可:

注意:这个是锁屏壁纸,不是Kindle内置浏览器。

配合Home Assistant的内置Webhook钩子(类似于Git的hook),可以实现Kindle的电量追踪:

准备工具

准备的工具很简单,除去基础的Kindle越狱和Home Assistant需求外,我们还需要用到的插件:

  • Kindle插件Kual:用于管理插件
  • Kindle插件MR Package Installer:用于安装插件
  • Kindle插件ScreenSavers Hack:用于更改Kindle壁纸
  • Kindle插件Online Screensaver:用于加载并下载Web Kindle图片作为ScreenSavers Hack的 壁纸。

以上工具,下载地址:

  • Kindle插件下载汇总
  • Online Screensaver

另外的工具有:

  • Docker容器hass-lovelace-kindle-screensaver:用于部署一个nodejs服务,定期把HA的控制面板转为灰度Kindle图片(用作壁纸)。

以上Docker容器地址:

  • hass-lovelace-kindle-screensaver(Docker)
  • hass-lovelace-kindle-screensaver(Github)

HA内设置

为了后续操作方便,我们先完成Home Assistant内的操作:

  • 创建辅助实体类:我们需要创建辅助实体类,用于后期Webhook接收参数(Kindle电量和Kindle充电状态)
  • 创建长期Token:我们创建一个长期Token(十年有效期),用于Docker容器免密、远程登录。

创建长期Token

我们进入Home Assistant图形化界面,即可创建一个Token令牌:

令牌应该是这样的:

需要注意⚠️:令牌内容只会显示一次,建议保存到记事本或者在忘记后,删除旧的并重新创建。

辅助类实体

之后,我们需要创建辅助类实体,很简单,在configuration.yaml内追加配置文件,我这里为了方便管理,采用多文件模式:

分别创建一个input_booleaninput_number类型,方便后续接收参数:
input_boolean.yaml:

kindle_battery_charging:name: Kindle Battery Chargingicon: mdi:book-check-outline

input_number.yaml:

kindle_battery_level:icon: mdi:currency-usdname: Kindle Battery Levelmin: 1max: 100step: 0.1


之后,重启Home Assistant即可,这些辅助实体我们下文用到。

创建webhook

之后,为了用到我们上文创建的辅助实体类,并给后文提供一个webhook地址,我们添加一个自动化模版:一键添加自动化模版
之后,使用模版创建自动化:

这个时候,就可以选择上文的辅助实体了:

需要注意,这里我创建这个脚本(webhook)叫KindleAuto,这个可以自定义,但是后文也要同步更改。

锁屏壁纸渲染

前文说了,我们需要安装ScreenSavers Hack插件,安装方法相信大家都懂,如果还是不会……可以看看书伴上的教程。

在安装好后,我们需要注意,我们最好只放一张图片:

注意⚠️:这张图片内容后续会被OnlineScreensaver覆盖

这个章节,主要介绍Docker容器配置。

Docker容器

本来,我想自己写一个Kindle壁纸生成的,但是发现大佬已经写好了:

  • https://github.com/sibbl/hass-lovelace-kindle-screensaver

我的树莓派上有Docker环境,所以我直接在树莓派上拉去Docker容器:

docker pull sibbl/hass-lovelace-kindle-screensaver

容器启动参数

根据稳定介绍:https://github.com/sibbl/hass-lovelace-kindle-screensaver#usage

我们在启动Docker过程中需要设置环境变量,我推荐的环境变量参数:

  • HA_BASE_URL=‘http://192.168.2.153:8123’
  • RENDERING_TIMEOUT=30000
  • RENDERING_DELAY=5000
  • HA_BATTERY_WEBHOOK=KindleAuto
  • RENDERING_SCREEN_WIDTH=1150
  • RENDERING_SCREEN_HEIGHT=1450
  • HA_SCREENSHOT_URL=‘/lovelace/info?kiosk’
  • HA_ACCESS_TOKEN=‘eyJ0eXAi*********O6JdOXtQe5co’
  • LANGUAGE=“en”
  • TZ=Asia/Shanghai

其中,HA_BASE_URL为Home Assistant地址;RENDERING_TIMEOUT为Docker获取Home Assistant数据超时时间,这里设置30s;LANGUAGE为设置语言为英文(不要设置为中文~没有中文字库);TZ为时区;HA_BATTERY_WEBHOOK为Webhook名,上文设置;RENDERING_SCREEN_WIDTH设置图片宽度;RENDERING_SCREEN_HEIGHT设置图片高度;HA_ACCESS_TOKEN上文Home Assistant设置的Token。

HA_SCREENSHOT_URL就是我们需要在Kindle锁屏显示的
面板,比如:

后续加上?kiosk的get请求,其实是Home Assistant前端插件:https://github.com/maykar/kiosk-mode,可以凭借这个插件隐藏侧栏:

所以,最后我创建Docker容器:

docker run -d -e HA_BASE_URL='http://192.168.2.153:8123' -e RENDERING_TIMEOUT=30000 -e LANGUAGE="en" -e LANG="zh_CN.UTF-8" -e TZ=Asia/Shanghai -e RENDERING_DELAY=5000 -e HA_BATTERY_WEBHOOK=KindleAuto -e RENDERING_SCREEN_WIDTH=1150 -e RENDERING_SCREEN_HEIGHT=1450 -e HA_SCREENSHOT_URL='/lovelace/info?kiosk' -e HA_ACCESS_TOKEN='eyJ******5co' -p:5000:5000 sibbl/hass-lovelace-kindle-screensaver



如果没什么问题,就可以浏览器访问到了:

接下来,我们可以回到Kindle上,继续后续配置。

OnlineScreensaver插件

前文已经说了,需要安装Online Screensaver扩展,最后结果应该是这样的:

这个插件已经很久没有更新了,在新的Kindle系统版本上,需要修复权限。

修补权限

修复权限很简单,在Online Screensaver内:

我们需要修改enable.sh,、disable.sh、update.sh和schedule.sh文件内的:

source config.sh
source utils.sh

为完整绝对路径:

source /mnt/us/extensions/onlinescreensaver/bin/config.sh
source /mnt/us/extensions/onlinescreensaver/bin/utils.sh

并把utils.sh内的:

wait_for ()

方法,整个改为:

wait_for () {ENDWAIT=$(( $(currentTime) + $1 ))REMAININGWAITTIME=$(( $ENDWAIT - $(currentTime) ))logger "Starting to wait for timeout to expire: $1"# wait for timeout to expirewhile [ $REMAININGWAITTIME -gt 0 ]; doEVENT=$(lipc-wait-event -s $1 com.lab126.powerd readyToSuspend,wakeupFromSuspend,resuming)REMAININGWAITTIME=$(( $ENDWAIT - $(currentTime) ))logger "Received event: $EVENT"case "$EVENT" inreadyToSuspend*)set_rtc_wakeup $REMAININGWAITTIME;;wakeupFromSuspend*|resuming*)logger "Finishing the wait"break;;*)logger "Ignored event: $EVENT";;esacdonelogger "Wait finished"
}

之后,就可以正常使用了。

配置服务

之后,打开config.sh,我们根据提示进行配置,比如我的:

需要注意:

  • IMAGE_URI:我们上文配置的Docker容器地址(5000端口)
  • LOGFILE:日志文件输出

成功运行

最后,重启Kindle:

即可应用所有配置。不出意外就可以看到效果了:

当然,你也可以在KUAL内手动更新:

当然,如果有问题,可以查看日志:

正如我前文说的,KPW4在睡眠后会自动关闭Wi-Fi。

也就是,我们需要把Kindle唤醒(按电源键),之后等Kindle连接上Wi-Fi后,壁纸才会更新。

其实Kindle本质是Linux,是可以手动写脚本定期打开Wi-Fi和我们Docker容器上的Web进行通信的,但是这个我不会写,就交给大家来了~~

Kindle接入HomeAssistant:实现锁屏壁纸显示HA内设备信息并在HA内获取Kindle电量相关推荐

  1. Windows 聚焦的锁屏壁纸设置为桌面壁纸

    需求: Windows的锁屏壁纸偶尔遇到非常喜欢的壁纸,想设置为桌面壁纸. 步骤如下: 1. "Windows 聚焦"的锁屏壁纸都保存在隐藏文件夹 --- Assets里. a. ...

  2. ubuntu命令 图片 壁纸_太简单了!1分钟把Win 10 高颜值的开屏锁屏壁纸存储到电脑!...

    各位官人们大家好,我是宇宙第一可爱还不接受反驳的挨踢妹!今天跟大家分享一个自带高颜值的功能:偷偷把Windows的锁屏壁纸保存到电脑! Win 10系统有一个非常棒的功能,叫做[Windows 聚焦] ...

  3. Win10锁屏壁纸文件夹Assets无文件问题的解决方法

    一.问题发现 半年来电脑锁屏壁纸不再是windows推送的壁纸,而是联想推送的壁纸,由于会推送一些广告壁纸,所以要恢复windows推送壁纸的锁屏方式. 在微软社区找到这样一条回复. 第一步检查Ass ...

  4. Win11聚焦锁屏壁纸不更新了?Win11锁屏聚焦不更换解决教程

    ​在正常情况下,如果我们给电脑锁屏设置了聚焦,则系统会自动更换锁屏壁纸,让我们每天都能看到不一样的锁屏壁纸,但是近期有部分Win11用户遇到了聚焦锁屏壁纸不更新了的情况,这该如何解决呢?下面我们一起来 ...

  5. Windows 10推送的锁屏壁纸保存方法

    工作中使用的系统为Windows 10,锁屏时显示的壁纸很漂亮,并且每天都会更新,有几张特别喜欢,于是就想这些壁纸到底保存在哪里呢?经过一番摸索,终于搞明白了,简单记录一下. 壁纸保存在下面路径: C ...

  6. win11锁屏壁纸不更新,且全黑的解决办法

    问题描述 之前锁屏壁纸设置[windows聚焦],每天都可以自动更新. 某一天,突然发现锁屏壁纸不再更新,且变为了一个巨丑的深蓝色图片. 后来根据网上流行的解决办法(如下图)进行了设置,结果发现锁屏壁 ...

  7. windows聚焦壁纸不更新_Win10无法自动更换聚焦锁屏壁纸怎么办?

    Win10无法自动更换聚焦锁屏壁纸怎么办?在Win10系统的默认情况下,锁屏界面设置的是Windows聚焦,如果我们使用微软账户登录,系统会自动更换锁屏壁纸,让我们每天都能看到不一样的锁屏壁纸.然而有 ...

  8. windows聚焦壁纸不更新_Win10系统下聚焦锁屏壁纸无法自动更换怎么解决

    Windows聚焦是Win10系统中的一种新功能,意在锁屏不再有单调的锁屏壁纸,但是很多win10系统用户在设置聚焦锁屏壁纸之后却发现无法自动更换,遇到这样的问题该怎么办呢,本文就给大家讲解一下Win ...

  9. 联想电脑(win10)如何保存高清锁屏壁纸

    和我一样用联想电脑的看过来了,每次打开电脑是不是都会有随机的好看的照片, 这些照片上现在还有一些励志的句子,反正就是让人看了就很想保存下来. 我记得以前的时候,在待机状态电脑屏幕的右上角就会有一个&q ...

最新文章

  1. Feflow 源码解读
  2. CloudFlare 免费CDN加速 使用方法
  3. 【总结】有三AI大量原创视频和图文资料,你都存下来了吗
  4. tensorrt轻松部署高性能dnn推理_部署环境之:tensorRT的插件
  5. PHP环境搭建和Apache HTTP服务器配置
  6. Tomcat内存释放不了、Tomcat内存溢出原因
  7. githug-54-git练习
  8. QEMU模拟mini2440开发环境
  9. 【教程】通过lothelper实现短信接收测试
  10. 张赐荣: C#ADO.NET 操作Mysql 详细教程
  11. 纯真ip php,PHP利用纯真数据库获取访客IP物理地址
  12. 徐家骏的华为十年:从DBA到副总裁的辛酸与喜悦[转载]
  13. 【HTML】之基本知识2
  14. MFC之路 串口通信篇(之三)
  15. 人工智能无法替代的几个职业
  16. 用友t3远程无法找到远程计算机,用友远程通安装打印常见问题
  17. pso神经网络用python_基本pso优化神经网络程序
  18. H3C防火墙基础配置3-配置对象策略
  19. 3.2.1 体渲染之Ray Casting
  20. C++ 所有GetLastError返回错误码代表的意思

热门文章

  1. 迅雷链基于智能硬件的DPoA共识机制介绍
  2. 使用LSV制作KML文件教程
  3. docker java -jar_使用Docker安装Java镜像运行jar包方法
  4. ASCII码的转换应用:
  5. C语言/C++常见习题问答集锦(六十四) 之兔子繁殖(递归与非递归)
  6. HTTP 错误 404.0 - Not Found
  7. python中的常数e的实现
  8. [JZOJ5629]【NOI2018模拟4.4】Map
  9. python中文社区-python-chinese.GitHub.io
  10. 快递鸟智选物流API对接流程