This is a sister project to Kindle Weather Stand Project. The difference is that this version runs on Kindle alone without need of a server. From version 3.0 this project is fully based on KUAL. You need to jailbreak your Kindle and install KUAL and Kindle Python to start weather stand.
A new method for saving power is introduced in version 2.0. On my Kindle 4, the new method can continue to update weather up to 4 weeks on a single charge, when weather data is updated every hour. Unfortunately even after I reduce the wakeup rate to 4 times a day, it still lasts around 4 weeks. Not sure if there's a better way to prolong the battery life. For more information, please refer to inline comments. If you want to stress-test your Kindle's battery and find out how long it's probably gonna last, check out this repository.
Please notice that this project is only tested on Kindle 4 Silver Non-touch. It should work with Kindle 5 Black Non-touch without issues, but probably won't work on other models (due to difference in system software - this project is heavily dependent on disabling OS services to gain battery life). You are more than welcome to fork and adapt to other models.
- Some knowledge with Kindle jailbreak and Linux (Since Kindle is based on Linux)
- A Kindle, of course (Kindle 4, silver or black should works the same, not tested on other model)
- Kindle need to be jailbroken with KUAL installed
- You need to install Kindle Python via MR Package Installer or System Update
- The Kindle Python package for Kindle 4 is
kindle-python-0.14.N-k4.zip
- The Kindle Python package for Kindle 4 is
- You need an extra Python library (pytz) but it can be installed with a script within this project
- A weather API key (free tier is more than enough for single device usage)
- Dark Sky API (Recommended, fully supported)
- OpenWeatherMap API (Not recommended, limited in daily forecast)
- More to come...
- A pair of Pushover user key and app key (optional, will be able to send notification when Kindle is out of charge)
- Almost forget... You're gonna need an Internet connection (hello?)
- Clone the project
- Have a look at various scripts and replace API keys in several files
- Put files on Kindle
- Launch program in KUAL
- ???
- PROFIT!!
My bad and sincerely apologise :P Here's a more detailed guide:
- Make sure KAUL and Kindle Python are installed and fully functional
- Copy extensions folder into usbms (plug into a computer, or
cd /mnt/us
if you prefer SSH and SCP) - Open KAUL, you should see a new program called Kindle Weather Stand Dependicies Checker. Run it to check your Python installation. It will also install pytz library if not present (Internet connection required)
- Update configurations and credentials
- (Optional) Open
/extensions/weather-stand/bin/weather-manager.sh
and replace Pushover credentials as instructed - (Optional) Open
/extensions/weather-stand/bin/weather-generator.sh
and choose which weather API you want to use as instructed - Open
/extensions/weather-stand/bin/weather-generator-[your-weather-api-name-here].py
and replace your API key, location and other configurations as instructed
- (Optional) Open
- Important! Delete
/extensions/weather-stand/bin/disable
file- This file is a kill switch. The script won't carry on if it presents
- (Optional) Run
/extensions/weather-stand/bin/weather-manager.sh
from a terminal (SSH?) to retrieve weather information. Make sure there's no error occurs- You are more than welcome to report any issues or bugs here
- Finally, open KAUL and run Kindle Weather Stand program. Now we are talking about real PROFIT!!
- All executables and required parts are in extensions folder
- weather-stand contains the weather stand program
- start.sh contains the main loop, if you want to change refresh frequency, it's inside this file
- weather-manager.sh is the main control file, update Pushover notification credentials here
- weather-generator.sh is the loader of python script, you can choose which API to use here
- weather-generator-darksky.py uses Dark Sky API to load weather data
- weather-generator-openweathermap.py uses OpenWeatherMap API to load weather data
- weather-stand-prerequisite contains a program that checks python and required library installation
- It will install the missing library (pytz) if not present
- weather-stand contains the weather stand program
- weather-icons.svg contains all available weather icons for your reference (useful if you want to implement your own API)
This project includes following components (in binary form) from this link with some necessary modifications:
- pngcrush from fedora project repository here
- librsvg from here
- SVG weather template and icons adapted from here
These resources are mostly compiled binaries from open-source projects and included just for convenient distributions. If this cause any copyright infringement please contact me for removal.
Code is released under MIT license and graphical components are released under CC0. Enjoy!