首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >程序员的娱乐:Kindle锁屏显示HomeAssistant内组件信息,并在HomeAssistant内获取Kindle电量

程序员的娱乐:Kindle锁屏显示HomeAssistant内组件信息,并在HomeAssistant内获取Kindle电量

原创
作者头像
Mintimate
修改于 2022-05-07 03:40:27
修改于 2022-05-07 03:40:27
2.4K0
举报
文章被收录于专栏:Mintimate's BlogMintimate's Blog
头图可以少???显然不能
头图可以少???显然不能

博客:https://www.mintimate.cn

Mintimate’s Blog,只为与你分享

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

  • Kindle的锁屏替换为Home Assistant的监控面板,并定期刷新(KPW4及以上,可能要按电源键或把智能盖板唤醒,否则会触发Kindle省电机制而断开Wi-Fi;不过,也可以Kindle一直接通电源,接通电源情况下,锁屏不会触发省电机制)。
  • Home Assistant内可以查看到Kindle的剩余电量(KPW4及以上,同上)。

文章前提

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

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

实现效果

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

控制面板
控制面板

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

处理后的图片
处理后的图片

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

锁屏壁纸
锁屏壁纸

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

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

Kindle电量追踪
Kindle电量追踪

充电时Kindle不会出发睡眠断网,可以用于跟踪电量?:

Kindle电量跟踪
Kindle电量跟踪

芜湖,充电充电还是挺快的⁄(⁄ ⁄ ⁄ω⁄ ⁄ ⁄)⁄

准备工具

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

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

以上工具,下载地址:

另外的工具有:

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

以上Docker容器地址:

HA内设置

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

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

创建长期Token

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

令牌
令牌

令牌应该是这样的:

得到令牌
得到令牌

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

辅助类实体

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

多文件模式
多文件模式

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

input_boolean.yaml:

代码语言:yaml
AI代码解释
复制
kindle_battery_charging:
  name: Kindle Battery Charging
  icon: mdi:book-check-outline

input_number.yaml:

代码语言:yaml
AI代码解释
复制
kindle_battery_level:
  icon: mdi:currency-usd
  name: Kindle Battery Level
  min: 1
  max: 100
  step: 0.1
创建的实体
创建的实体

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

创建webhook

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

之后,使用模版创建自动化:

创建自动化
创建自动化

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

创建辅助脚本
创建辅助脚本

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

锁屏壁纸渲染

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

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

只放了一张图片
只放了一张图片

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

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

Docker容器

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

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

代码语言:shell
AI代码解释
复制
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容器:

代码语言:shell
AI代码解释
复制
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
创建Docker
创建Docker
创建的Docker状态
创建的Docker状态

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

DockerDemo
DockerDemo

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

如果小伙伴们不了解Docker容器,以后有机会专门出一次文章,给大家详解Docker(*☻-☻*)

OnlineScreensaver插件

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

安装的插件
安装的插件

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

修补权限

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

Online Screensaver内
Online Screensaver内

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

代码语言:shell
AI代码解释
复制
source config.sh
source utils.sh

为完整绝对路径:

代码语言:shell
AI代码解释
复制
source /mnt/us/extensions/onlinescreensaver/bin/config.sh
source /mnt/us/extensions/onlinescreensaver/bin/utils.sh

并把utils.sh内的:

代码语言:shell
AI代码解释
复制
wait_for ()

方法,整个改为:

代码语言:shell
AI代码解释
复制
wait_for () {
    ENDWAIT=$(( $(currentTime) + $1 ))
    REMAININGWAITTIME=$(( $ENDWAIT - $(currentTime) ))
    logger "Starting to wait for timeout to expire: $1"

    # wait for timeout to expire
    while [ $REMAININGWAITTIME -gt 0 ]; do
        EVENT=$(lipc-wait-event -s $1 com.lab126.powerd readyToSuspend,wakeupFromSuspend,resuming)
        REMAININGWAITTIME=$(( $ENDWAIT - $(currentTime) ))
        logger "Received event: $EVENT"

        case "$EVENT" in
            readyToSuspend*)
                set_rtc_wakeup $REMAININGWAITTIME
            ;;
            wakeupFromSuspend*|resuming*)
                logger "Finishing the wait"
                break
            ;;
            *)
                logger "Ignored event: $EVENT"
            ;;
        esac
    done

    logger "Wait finished"
}

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

配置服务

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

我的配置
我的配置

需要注意:

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

成功运行

最后,重启Kindle:

重启Kindle
重启Kindle

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

锁屏壁纸
锁屏壁纸

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

手动更新
手动更新

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

Kindle日志
Kindle日志

正如我前文说的,KPW4在睡眠后(不接通电源情况下)会自动关闭Wi-Fi。

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
读书|通过 Git 管理 Kindle 屏保图片,一键自动同步
前面一篇文章 读书|程序员如何传书到 Kindle 介绍了我最喜欢的通过 WiFi 向 Kindle 传书的方法,这篇文章介绍一下我是如何管理 Kindle 屏保图片的。
mzlogin
2023/10/23
3390
读书|通过 Git 管理 Kindle 屏保图片,一键自动同步
把吃灰的kindle变成黑白电子相框
看到kindle即将退出中国市场的新闻,才想起来多年前部门抽奖发过几台paper white还在角落里吃灰,拿出来充上电发现还工作良好,似乎除了压泡面还能干些别的,比如用来显示黑白老照片?
黄希彤
2022/11/29
1.4K0
kindle推送服务_kindle推送服务
微信是个好东西,信息量超大,正能量的东西居多,但信息过载的滋味也很不好受,浏览了一大堆铺天盖地的信息后,关上手机后大脑又重新回到空白。所以还是喜欢用RSS聚合功能,自己去订阅优秀的博客或新闻,当有更新后我很快就可以读到。
全栈程序员站长
2022/09/21
1.4K0
kindle推送服务_kindle推送服务
Kindle 无 USB 传书
Kindle 的 USB 接口连接到 macOS 上面,能充电,却不能显示 U 盘。
iOSDevLog
2020/01/02
7070
kindle3使用技巧
按照网上的帖子在Amazon注册之后,浏览网页的时候却出现了这个提示: Due to local restrictions, web browsing is not available for all countries 其实亚马逊账号注册成哪里无所谓,关键是需要在manage your kindle 页面把kindle的的your country 设成United states,这时提示输入地址电话等信息,可以通过google搜索“us company address”,搜到一些公司地址电话等,填上就行了。
py3study
2020/01/14
6680
怎样在 Kindle 中使用微信读书?
微信读书为墨水屏设备精心打磨的极致体验,享受繁杂世界中安静阅读的乐趣。apk文件的下载地址可以在微信读书官网找到:https://ink.qq.com/
一个会写诗的程序员
2022/05/13
13.8K0
怎样在 Kindle 中使用微信读书?
kindle3 破解字体
在万能的链接里下载kindle-fonts-4.4.N-k3.zip,update后kindle里出现linkfonts/fonts,这里就是存放字体的位置,字体格式需用.ttf。
py3study
2020/01/14
1.7K0
读书|程序员如何传书到 Kindle
我有一台 2013 年从日亚海淘的 Kindle Paperwhite,至今仍在服役。除了外观上的磨损,其它一切正常,甚至连续航都依旧给力。
mzlogin
2023/10/23
6510
读书|程序员如何传书到 Kindle
玩转 电子阅读器 Kindle
每天都在无聊的等公交地铁, 终于知道了时间的宝贵, 于是买了个499的Kindle(第7代).
acc8226
2022/05/17
1.6K0
玩转 电子阅读器 Kindle
读书|通过 SSH & SFTP 管理 Kindle 上的文件
管理 Kindle 里的文件,包括上传电子书、上传屏保图片、上传字体、上传插件、下载书摘等等,常用的方式就是通过 USB 连接电脑,然后在电脑上管理文件。这样有两个我不太爽的地方:
mzlogin
2023/10/23
7520
读书|通过 SSH & SFTP 管理 Kindle 上的文件
用Calibre实现Kindle带封面传书
如果书籍带有封面,并且不需要更换,跳过2、3步骤,如果书籍没有封面或者封面不官方和美观,执行2、3步骤
用户10551528
2023/10/18
1.1K0
用Calibre实现Kindle带封面传书
亚马逊 Kindle 泡面盖入门与更多的折腾
第一次想到使用亚马逊 Kindle 电子书阅读器是一两年前,这也是终于将它从愿望单上划掉了... 当时是在浏览和膜拜 LeanCloud 创始人 dalao 江宏的博客时发现的他有阅读电子书的习惯。他是美国耶鲁大学计算机科学博士,Google 前工程师...在他的博客(https://1byte.io/books)上有一些书籍的推荐,大多是电子书,也在博文中有提到使用 Kindle 的习惯于是为了向 dalao 看齐,剁个 Kindle 好了...
Tony He
2022/11/17
1.5K0
亚马逊 Kindle 泡面盖入门与更多的折腾
读书|通过免费云盘传书到 Kindle
本文介绍如何通过免费云盘传书到 Kindle——这已经成为我目前最喜欢的传书到 Kindle 的方式了。
mzlogin
2024/04/11
9230
读书|通过免费云盘传书到 Kindle
KindleDrip:你的Kindle邮箱可能泄露了个人信息
在本漏洞Writeup中,作者利用Kindle的电子书邮件发送途径,通过研究电子书文档注入、电子书JPEG XR解析漏洞和Kindle提权漏洞,经综合利用,可成功以假冒邮件方式,向受害者Kindle邮箱发送恶意电子书文档,只要受害者点击其中的恶意链接,就能以root级别在受害者Kindle设备中执行任意代码。漏洞危害在于,可以此获取受害者Kindle设备中的credit card等个人信息,变卖受害者电子书并把所获钱款转到自己账户等。漏洞最终收获了亚马逊官方奖励的18K$。
FB客服
2021/03/25
1.8K0
用Python推送书籍到Kindle
以下科普内容来自:http://help.163.com/09/1223/14/5R7P6CJ600753VB8.html。
王强
2018/08/09
2K0
用Python推送书籍到Kindle
kindle联网异常的解决方法
使用kindle时,有时突然遇到不能联网的问题,提示以下信息。 您的kindle已连接WiFi网络,但无法连接互联网。请联系您的互联网服务供应商,寻求支持。 解决方法 法1: 数据线连接电脑在Kindle U盘根目录建立一个空白文件夹(不是文件),名为WIFI_NO_NET_PROBE(不含引号),重启。原理阻止wifi进行网络连接测试。 法2: 路由器给kindle设备分配静态ip(末段不要超100),或DHCP得到的内网IP 192.168.1.*,(*分配的动态ip不要超过100),dns改为谷歌的8
六月河
2022/09/26
1.2K0
kindle联网异常的解决方法
六月河
2023/06/26
7900
在Ubuntu上搭建kindle gtk开发环境
某个角度上说,kindle很类似android,同样的Linux内核,同样的Java用户层。不过kindle更注重简单、节能、稳定。Amazon一向认为,功能过多会分散人们阅读时候的注意力。 Kindle底层的Linux比Android保持了更多的linux兼容性,可以使用GTK或者QT编写程序。QT适合编写大的、独占界面性的应用,比如多看就曾经发布过一个Kindle之上的版本,现在还有很多人用,可惜因为公司战略调整的原因,这个产品被废弃了。GTK及最基本的Linux应用更适合开发一些补丁性的小程序,来补
俺踏月色而来
2018/06/20
1.5K0
水墨屏开发设备,旧 Kindle 改造而成
我想有个用于(开发)未来项目的水墨屏,刚好我又买了一个带树莓派 “hat” 的小玩意。就这样,灵光一闪的我想到旧 Amazon Kindle 电子书阅读器可以变废为宝。
HelloGitHub
2021/05/14
2.2K0
水墨屏开发设备,旧 Kindle 改造而成
Kindle 电子书免费下载工具,速领!
从 2024 年 7 月份开始,已购买的 Kindle 电子书,将无法下载到设备上进行阅读,包括 Kindle 阅读器、PC、移动端等设备。
永恒君
2022/12/07
2.2K0
Kindle 电子书免费下载工具,速领!
相关推荐
读书|通过 Git 管理 Kindle 屏保图片,一键自动同步
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档