All Projects → nicoh88 → kindle-kt3_weatherdisplay_battery-optimized

nicoh88 / kindle-kt3_weatherdisplay_battery-optimized

Licence: other
Use your Kindle KT3 (8. generation) for a weather station with weather underground api and homematic weather sensor.

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to kindle-kt3 weatherdisplay battery-optimized

Lector
An API for your Kindle data
Stars: ✭ 177 (+142.47%)
Mutual labels:  kindle
Kindle2Anki
Export Vocabulary Builder to Anki APKG
Stars: ✭ 84 (+15.07%)
Mutual labels:  kindle
acuparse
Captures, stores, and displays data from an AcuRite ‎Iris/Atlas weather station and towers via an Access/smartHUB. Uploads data to Weather Underground, CWOP, Weathercloud, PWS Weather, Windy, Windguru, and OpenWeatherMap. *** MIRROR REPO | See: https://gitlab.com/acuparse/acuparse ***
Stars: ✭ 57 (-21.92%)
Mutual labels:  weather-underground
Kpvbooklet
KPVBooklet is a Kindle booklet for starting koreader/kindlepdfviewer and updating last access and percentage finished information in Kindle content catalog entry of the opened document.
Stars: ✭ 184 (+152.05%)
Mutual labels:  kindle
reddit2kindle
Send reddit directly to your kindle
Stars: ✭ 30 (-58.9%)
Mutual labels:  kindle
hm2mqtt.js
Node.js based Interface between Homematic and MQTT
Stars: ✭ 20 (-72.6%)
Mutual labels:  homematic
Fbink
FrameBuffer eInker, a small tool & library to print text & images to an eInk Linux framebuffer
Stars: ✭ 135 (+84.93%)
Mutual labels:  kindle
InMangaKindle
Descarga manga en español en diferentes formatos (PNG, PDF, EPUB, MOBI)
Stars: ✭ 43 (-41.1%)
Mutual labels:  kindle
mobi
python based software to unpack kindlegen generated ebooks
Stars: ✭ 37 (-49.32%)
Mutual labels:  kindle
debmatic
debmatic is a project to install the Homematic OCCU on Debian based systems (Debian, Ubuntu, Raspbian, Armbian)
Stars: ✭ 168 (+130.14%)
Mutual labels:  homematic
Libmobi
C library for handling Kindle (MOBI) formats of ebook documents
Stars: ✭ 197 (+169.86%)
Mutual labels:  kindle
XML-API
HomeMatic CCU Addon implementing a xml request functionality
Stars: ✭ 106 (+45.21%)
Mutual labels:  homematic
gonotes
Command line tool to access your kindle clippings
Stars: ✭ 23 (-68.49%)
Mutual labels:  kindle
Blitz
An eBook Framework (CSS + template)
Stars: ✭ 179 (+145.21%)
Mutual labels:  kindle
calibre-kindle-comics
A calibre plugin that converts your comics into a readable format for kindle.
Stars: ✭ 32 (-56.16%)
Mutual labels:  kindle
Asciidoctor Epub3
📘 Asciidoctor EPUB3 is a set of Asciidoctor extensions for converting AsciiDoc to EPUB3 & KF8/MOBI
Stars: ✭ 166 (+127.4%)
Mutual labels:  kindle
binrpc
HomeMatic xmlrpc_bin:// protocol server and client
Stars: ✭ 15 (-79.45%)
Mutual labels:  homematic
mpspider
公众号文章抓取&生成kindle电子书
Stars: ✭ 51 (-30.14%)
Mutual labels:  kindle
jmdict-kindle
Japanese - English dictionary for Kindle based on the JMdict / EDICT database
Stars: ✭ 151 (+106.85%)
Mutual labels:  kindle
advanced-php-crawler
新浪博客文章/wenku8轻小说文库爬虫,可抓取图片保存,一键制作电子书。kindle读书党的神器!
Stars: ✭ 26 (-64.38%)
Mutual labels:  kindle

kindle-kt3_weatherdisplay_battery-optimized

Kindle KT3 als Wetterstation

Gleich erst mal zu Beginn: Schlagt es euch gleich erst mal aus dem Kopf, wenn ihr denkt, ihr haut das Skript auf einen Server im LAN und die Dateien auf das Kindle, fertig. So wird das nichts! Die beiden Skripts, vor allem aber cron_kindle-wetter.py (Server), welches für die Erstellung der PNG-Datei verantwortlich ist, ist extrem auf meine Bedürfnisse angepasst und muss von euch, an eure Geräte und Bedürfnisse, angepasst werden.

Ohne Basic-Kenntnisse im Skripting: FINGER WEG!

Zwei Kindle KT3 als Wetterstation

Batterie / Akku

Das Kindle-Skript weatherscript.sh ist auf möglichst lange Akkulaufzeit optimiert!

  • Kindle Dienste werden beendet.
  • CPU wird in den "Powersave-Mode" versetzt.
  • WLAN nur kurz aktiv.
  • E-INK-Display wird nicht immer vollständig aktualisiert.
  • Individuellen Aufwachintervall nach Wochentag und Stunde.
  • Suspend-to-RAM / Suspend-to-Memory (STR).

In der aktuellen Konfiguration (57 Änderungen am Tag) hält der Akku des KT3 ca. 30-35 Tage.

Vorbereitungen

Natürlich ist es keine Standardfunktionalität, das Wetter auf einem Kindle als Bildschirmschoner anzeigen zu lassen, aus diesem Grund muss das Kindle gejailbreakt und SSH aktiviert werden.

Ein paar Fakten:

  • Jailbreak funktioniert nur, wenn sich auf dem Kindle eine Firmware 5.8.7 oder älter befindet.
  • Jailbreak muss "persistend" / "dauerhaft" gemacht werden.
    • Firmware-Updates (nicht OTA > BIN-Datei per USB) können eingespielt werden - der Jailbreak bleibt, nach aktuellem Stand (2018-03-08 | Firmware 5.9.4) weiterhin bestehen.
    • Es könnte aber mit jeder neueren Version Schluss sein - also Obacht und vorher in der Community informieren!
  • USB-Networking (usbnet) muss installiert werden, um dann über ein paar Anpassungen der Konfigurationsdateien (Kindle-Laufwerk) SSH zu aktivieren.

Übliche Fragen:

Fragen zum Jailbreak werden von mir nicht beantwortet!

Funktionsweise / Logik / Features

Auf einem Server im LAN, sucht sich das Skript cron_kindle-wetter.py, bei mir alle 10 Minuten, die Wetterdaten zusammen.

  • Innenraumtemperaturen und Luftfeuchten holt es sich aus meiner HomeMatic CCU2 (XML-API Addon) von zwei HmIP-STH. Zusätzlich werden die Werte in eine MySQL-Datenbank geschrieben, damit ich die MIN- / MAX-Werte anzeigen kann.
    • Warum zwei HmIP-STH? Ich unterscheide, aufgrund von einem Kindle KT3 im Bad (Schwarz) und einen im Wohnzimmer (Weiß), zwischen Bad und Wohnzimmer. Es werden auch zwei, geringfügig unterschiedliche PNGs erzeugt.
  • Luftqualität ist aktuell noch hart codiert, da mir hier noch der passende Sensor fehlt.
  • Bezeichnung der aktuellen Wetterlage (sunny, rain, etc.) holt es sich über die "Weather Underground API".
  • Außentemperatur, Luftfeuchte, Windgeschwindigkeit, -Richtung und Regenmenge holt er sich aus meiner HomeMatic CCU2 (XML-API Addon) von einem HmIP-SWO-PR. Zusätzlich werden die Werte in eine MySQL-Datenbank geschrieben, damit ich die MIN- / MAX-Werte anzeigen kann.
  • 3-Tages-Vorhersage holt es sich über die "Weather Underground API".
  • Sonnenauf- und Sonnenuntergang holt es sich auch über die WU API.

Hat der Server alle Wetterdaten zusammen, lädt er sich die SVG-Datei cron_kindle-wetter_preprocess.svg und tauscht die für den Bereich definierten Variablen mit den echten und aktuellen Wetterdaten aus. Hier werden durch eine Logik sogar zwei Dateien weatherdata-bad.png und weatherdata-wohnzimmer.png erzeugt, welche dann im Webserver-Verzeichnis, des Servers, abgelegt werden.

         

Das Skript weatherscript.sh gehört auf das Kindle, bei mir /mnt/us/scripts/. Dieses Skript startet in der Regel 60 Sekunden nach dem Starten des Kindles und beendet dann erst mal alle Kindle üblichen Dienste, um Ressourcen / Akkukapazität zu sparen. Dann läuft das Skript in eine Schleife, die dauerhaft, immer und immer wieder, abgearbeitet wird. Pausiert wird das Skript durch ein STR (Suspend-to-RAM/ Suspend-to-Memory). Vor dem STR wird noch ein Wecker gestellt, der der Kindle-Hardware sagt, wann das Kindle wieder aufwachen soll. Dann, wenn der Wecker klingelt, läuft das Skript weiter, führt ein paar Befehle aus, holt sich das neue PNG mit den Wetterinformationen und verabschiedet sich für einen dynamischen Intervall wieder in den STR.

  • Beendet unwichtige Kindle Dienste.
  • Prüft den Batteriestatus.
    • ... wenn 5% oder weniger, bekomme ich und meine Frau eine SMS.
    • ... bei 1% wird ein statisches Bild mit "battery low" geladen.
      • ... das Bild wird so lange angezeigt, bis das Kindle am Strom angeschlossen wird und über Powertaste wieder aufgeweckt wird.
  • CPU wird runtergetackte und in den "Powersave-Mode" versetzt.
  • Standard Bildschirmschoner wird deaktiviert.
  • WLAN wird aktiviert.
    • ... es wird gewartet, bis eine WLAN-Verbindung aufgebaut wurde.
  • Standard-Gateway wird erneut gesetzt (Workaround).
  • Hostname und IP-Adresse wird ermittelt.
    • ... je nach Hostname wird nun ein bestimmtes PNG-Bild von meinem Webserver geladen (welches von cron_kindle-wetter.py erzeugt wurde).
  • Das PNG-Bild wird jetzt auf dem E-INK Display angezeigt.
    • ... nur bei jedem fünften Mal wird eine Komplettaktualisierung des Displays gemacht.
    • ... alle anderen Male nur eine Teilaktualisierung (dadurch können Schatten entstehen).
  • WLAN wird deaktiviert.
  • Aufwachintervall wird gesetzt, siehe F5INTWORKDAY und F5INTWEEKEND.
    • ... an einem Wochentag um 1 Uhr, egal wie viele Minuten, wird der Aufwachintervall auf 3600 Sekunden gesetzt, also eine Stunde.
    • ... an einem Wochentag um 15 Uhr wird der Aufwachintervall auf 900 Sekunden gesetzt, also 15 Minuten.
    • ... am Wochenende ...
  • Suspend-to-RAM / Suspend-to-Memory (STR) wird ausgeführt.

Installation

Server

  • Variablen im Skript cron_kindle-wetter.py anpassen, ggf. das ganze Skript.
  • Skript cron_kindle-wetter.py und SVG cron_kindle-wetter_preprocess.svg übertragen.
  • Skript ausführbar machen chmod 744 cron_kindle-wetter.py.
  • Skript regelmäßig über Crontab ausführen.

Kindle

  • Variablen im Skript weatherscript.sh anpassen, ggf. das ganze Skript.
  • Skript weatherscript.sh, Upstart-Datei weather.conf und die 5 PNGs auf Kindle übertragen - bei mir /mnt/us/scripts/.
  • Skript ausführbar machen chmod 744 weatherscript.sh.
  • Upstart-Datei kopieren, vorher Kindle-Filesystem schreibbar machen mntroot rw && cp /mnt/us/scripts/wetter.conf /etc/upstart/wetter.conf
  • Nach einem Neustart des Kindles dauert es nun 60 Sekunden, bis das Skript weatherscript.sh startet und das PNG anzeigt.

Info

Wenn ihr Mal mehr Zeit in der üblichen Kindle-UI benötigt oder es euch nicht mehr gefällt, startet das Kindle neu - ca. 20-30 Sekunden Powertaste drücken. Wenn auf dem Boot-Screen, im Fortschrittsbalken, noch ca. 1cm fehlen, kann man per SSH auf das Kindle zugreifen und mit kill den sleep und das weatherscript.sh beenden oder die Upstart-Datei /etc/upstart/wetter.conf löschen und so den Autostart zukünftig verhindern. SCHNELL, MAN HAT NUR 60 SEKUNDEN ZEIT!

Versionsverlauf

2018-07-23 - neues Layout und Umstellung auf DarkSky API (alte Version in den "180405" Ordnern), Fehlerbehebungen 2018-04-05 - Fehlerbehebungen 2018-03-24 - Skripts veröffentlicht

Lizenz

The MIT License (MIT)

Copyright (c) 2018 Nico Hartung

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].