Code Monkey home page Code Monkey logo

Comments (48)

genebean avatar genebean commented on July 19, 2024 16

image

Just had a great call with Climacell and found out that in a matter of days they will have a free tier for their weather api that has limits similar to what Apply just killed off for Dark Sky. This is what I plan to move us to. They directed me at the right set of api docs and are checking to see if there will be free air quality info available too. I hope to get this turned around pretty quickly but want to do it in conjunction with merging in some contributions from @metaMMA as that work will make this work easier.

from piweatherrock.

genebean avatar genebean commented on July 19, 2024 6

Tonight I started writing the actual Python module to pull forecast data from ClimaCell. Prior to this I’ve been wrapped up in other improvements and some unrelated work. It feels good to start interacting with the new api. 👋 Darksky

Sent with GitHawk

from piweatherrock.

MarticusH avatar MarticusH commented on July 19, 2024 2

Cool cool, thank you @genebean - let us know what you decide on!

from piweatherrock.

genebean avatar genebean commented on July 19, 2024 2

Today I got a normalized data structure created that contains all the bits of the response from Darksky's api that are used in the various bits of my code. The new structure is a dictionary (a hash) with predictable keys. The values are filled in with the data returned from Darksky. The next step is to put this new data structure to use in the existing code. Once that's complete, I'll extract the Darksky bits into a data provider module that simply takes a configuration object or file as input and returns this new data structure. Doing so will mean that any module that can read things such as api keys from the config and returns a dictionary with the needed keys can be used by the core program. This not only lets us create a ClimaCell / tomorrow.io module, but also modules for any other desired data source. That data source could be something region specific to a user or could be one that reads from MQTT. The MQTT angle serves two purposes:

  1. An instance of this program could read from an api and populate topics in MQTT. Additional instances of this program spread around your house could then read from MQTT without worry of hitting the api's rate limits.
  2. Home Assistant could be configured to query an api for weather data, be it from tomorrow.io or a personal weather station, or both. It could then publish those readings to MQTT via the MQTT Statestream integration. This program could then utilize what's been published locally by Home Assistant without also needing to talk to the same source(s).

In case you haven't guessed, I'm very interested in scenario 2 above. Don't worry though, I am still going to facilitate using this without Home Assistant.

from piweatherrock.

genebean avatar genebean commented on July 19, 2024 1

@genebean - potentially weather.gov? They have an open API.

I looked at that last night but it looked to only have weather for the US

from piweatherrock.

fraser386 avatar fraser386 commented on July 19, 2024 1

Thank you @genebean!

from piweatherrock.

MarticusH avatar MarticusH commented on July 19, 2024

@genebean - potentially weather.gov? They have an open API.

I discovered that the original project died when piwapi stopped working due to weather.com, so I'm following any replacement pretty closely.

from piweatherrock.

MarticusH avatar MarticusH commented on July 19, 2024

Perhaps OpenWeatherMap? Seems the free tier is limited to 1 API call / sec, which is (in my opinion) way more than necessary - my own weatherpi was querying once per 5min.

Looks like they have current forecast API and 5-day forecast API that would likely emulate the previous functionality, and looks like it supports a lot of different localization capabilities.

I'm currently waiting on the API key to get activated (apparently it takes a few hours) to try some testing with those two endpoints:

Within the next couple of hours, it will be activated and ready to use.

I am also apparently very impatient 😆

from piweatherrock.

MarticusH avatar MarticusH commented on July 19, 2024

Alright, API key got activated, looks like we also have the ability to use icons from their site itself (or write something to use the existing icons); example output is below from their site:
https://samples.openweathermap.org/data/2.5/forecast?id=524901&appid=b6907d289e10d714a6e88b30761fae22

Icon info is here.

So far, looks pretty reasonable - thoughts?

from piweatherrock.

fraser386 avatar fraser386 commented on July 19, 2024

Please do let us know if you can get that API working. I literally bought a screen in a case for this to wall mount it on the 28th, arrived today. I checked on here to start working at setting up my new weather display! To my dismay its over with...

from piweatherrock.

genebean avatar genebean commented on July 19, 2024

That really sucks @fraser386! I'll absolutely get it working and will keep this issue updated with progress. I am certainly considering Open Weather Map @MarticusH. I am also checking with two other sources that look like they may have more to offer too in hopes that one of them will pan out.

from piweatherrock.

genebean avatar genebean commented on July 19, 2024

I contacted Foreca at a users suggestion but it seems they don’t currently offer anything free or near-free. I have a meeting scheduled for today though that I’m hoping pans out.🤞More info soon.

from piweatherrock.

genebean avatar genebean commented on July 19, 2024

Just a quick update to say I haven’t forgotten about this. I’m still working with @metaMMA to get their enhancements merged in. Hopefully I’ll have more news soon.

from piweatherrock.

fraser386 avatar fraser386 commented on July 19, 2024

from piweatherrock.

jmertic avatar jmertic commented on July 19, 2024

@genebean - Thank you for this! Is this work on a branch somewhere that one could preview/test?

from piweatherrock.

Stone-Hedge avatar Stone-Hedge commented on July 19, 2024

It makes me really happy to see this integration happening. Such a good project. Keeping my eye out for anything I can help with.

from piweatherrock.

bkolin avatar bkolin commented on July 19, 2024

Also very interested in this work. If there is a testable branch I would be happy to take it for a spin.

from piweatherrock.

canibalimao avatar canibalimao commented on July 19, 2024

@genebean still no updates on the ClimaCell version of the weather app?

from piweatherrock.

AubreyKloppers avatar AubreyKloppers commented on July 19, 2024

Did you get any further with the API over the last 6 months?

from piweatherrock.

carloshm avatar carloshm commented on July 19, 2024

Hi Everyone. I just installed bolt 1.4.0 version but dont know about the API Key. Is it still running with Dark Sky service? is it ready for the ClimaCell API? Thanks for this contribution!!

from piweatherrock.

leunamekram avatar leunamekram commented on July 19, 2024

Hi Folks,

Perhaps https://openweathermap.org/api can also be a good alternative? Thanks for this.

from piweatherrock.

LuxStatera avatar LuxStatera commented on July 19, 2024

love the project! has it been updated with the new api?

from piweatherrock.

jagganath69 avatar jagganath69 commented on July 19, 2024

I guess author @genebean has been too busy, probably given the COVID situation.
I'll try weather.com, since that works for my RAINMETER app...

from piweatherrock.

genebean avatar genebean commented on July 19, 2024

I guess author @genebean has been too busy, probably given the COVID situation.

I'll try weather.com, since that works for my RAINMETER app...

I have. I recently started looking at this again and have come up with a plan. It's going to take some time as I don't have a lot of time to work on things, but this is going to be addressed as I still use PiWeatherRock every day.

from piweatherrock.

Stone-Hedge avatar Stone-Hedge commented on July 19, 2024

If you have time, why not set out your plan in Projects and maybe some of us can help with tasks?

from piweatherrock.

Rockstar22 avatar Rockstar22 commented on July 19, 2024

Any updates?

from piweatherrock.

MrHappymoose avatar MrHappymoose commented on July 19, 2024

Another one here wondering about updates, this looks like a great project to work on with a couple of kids who love sciency stuff.

from piweatherrock.

genebean avatar genebean commented on July 19, 2024

I’m hoping to dive back in this week. I’ve now got the extras motivation of my own setup not working well because the code doesn’t currently handle api errors well and, instead, spams the api with requests causing rate limits to be exceeded. All that to say I think my motivation has returned (finally).

from piweatherrock.

genebean avatar genebean commented on July 19, 2024

FYI: I started working on this yesterday and plan to work more later today.

from piweatherrock.

genebean avatar genebean commented on July 19, 2024

After hours of work today I have discovered I left a spaghetti like mess of intertwined code for myself 😞 I'm now working to refactor some of the current code to facilitate replacing Darksky. The upside: I think I see where things are screwy and overly complicated.

from piweatherrock.

MrHappymoose avatar MrHappymoose commented on July 19, 2024

Awesome to see you working on this again, sorry to see it's being a pain!

from piweatherrock.

kodepharm avatar kodepharm commented on July 19, 2024

@genebean is this project still ongoing?

from piweatherrock.

Barry-IA avatar Barry-IA commented on July 19, 2024

from piweatherrock.

kodepharm avatar kodepharm commented on July 19, 2024

@Barry-IA same, my pi is still able to fetch so i am not sure when is the actual cut off data from darksky. it seems like the entire community on gitter is also silent, i hope things are not abandoned.

from piweatherrock.

ciprian288 avatar ciprian288 commented on July 19, 2024

For a modified version with wind and weather data from OpenWetherMap
https://github.com/ciprian288/PiWeatherRock-Windguru-Holfuy

from piweatherrock.

kodepharm avatar kodepharm commented on July 19, 2024

@ciprian288 checked out your version of PiweatherRock, very nice. have you thought about using api data from tomorrow.io? i think genebean was thinking to replace darksky with it.

from piweatherrock.

SloomR avatar SloomR commented on July 19, 2024

Hello
First of all: many thanks to @genebean for this nice project!
Is there a runnable version at this time? I don't have Dark Sky API unfortunately. It will be deactivated soon anyway.
I tried "Option 1" (https://piweatherrock.technicalissues.us/docs/getting-started/), but there seems to be errors with the creation of the services. After some tinkering I was able to start the PiWeatherRockConfig.service. The website is reachable and the changes are saved. After starting the PiWeatherRock.service nothing happens.

pi@mylittlepi:/etc/system/system $ sudo systemctl status PiWeatherRock
PiWeatherRock.service - PiWeatherRock Service
Loaded: loaded (/etc/systemd/system/PiWeatherRock.service; bad; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Thu 2022-12-15 11:15:08 CET; 2s ago
Process: 2447 ExecStart=/usr/local/bin/pwr-ui -c /home/pi/config.json (code=exited, status=1/FAILUR
Main PID: 2447 (code=exited, status=1/FAILURE)

Dez 15 11:15:11 mylittlepi systemd[1]: /etc/systemd/system/PiWeatherRock.service:1: Missing '='.

I don't know much about Python and Linux, I'm more into Windows and Powershell.

EDIT:
ok, i got this version running:
https://github.com/ciprian288/PiWeatherRock-Windguru-Holfuy

two questions:
Is it possible to hide the IP?
Is it possible to reformat the date in the upper right corner?
right now it's: "15 dez", i think "12.12.22" would look nicer.

from piweatherrock.

genebean avatar genebean commented on July 19, 2024

Hello all. Here’s a short thread about where things are:
https://fosstodon.org/@genebean/109630837282088469
It’s only 4 messages long, but sums up my plan and the challenges.

from piweatherrock.

genebean avatar genebean commented on July 19, 2024

EDIT: ok, i got this version running: https://github.com/ciprian288/PiWeatherRock-Windguru-Holfuy

two questions: Is it possible to hide the IP? Is it possible to reformat the date in the upper right corner? right now it's: "15 dez", i think "12.12.22" would look nicer.

Nice work @SloomR! I’ll take a look at what you’ve done sometime soon and see if it’ll help me move the rest of the project forward.

from piweatherrock.

SloomR avatar SloomR commented on July 19, 2024

Hey @genebean,
iam looking forward to the implementation.
Have you already seen https://merrysky.net/? It's supposed to be very similar to DarkSky.

from piweatherrock.

pjockey avatar pjockey commented on July 19, 2024

On 11/29/22 13:16, kodepharm wrote: @genebean https://github.com/genebean is this project still ongoing?
Hi! No idea on the project status (I'm an end-user like yourself) but my DarkSky is still working -- did see a notification the API was to stop working the end of 2021 and its almost the end of 2022. (Maybe I shouldn't tell!)  Hope it does continue working or we find what to do for updating.

Message ID: @.***>

The new API shut down at the end of 2022. If you had an account with the API's, the system still worked up and til March 31, 2023. https://darksky.net/dev.

It has offically stopped working on a couple of my systems now.

I have downloaded the one below, but still having problems as I didn't get the Raspberrypi IP after the reboot. There were no errors following the instructions.

For a modified version with wind and weather data from OpenWetherMap
https://github.com/ciprian288/PiWeatherRock-Windguru-Holfuy

Still searching for a replacement.
Scott

from piweatherrock.

Barry-IA avatar Barry-IA commented on July 19, 2024

Scott:

I recently updated; below is an extract from my update notes. The ‘trick’ might be to rename the original PiClock directory to PiClock_old.

The instructions are essentially those of https://github.com/n0bel/PiClock/blob/master/Documentation/Overview.md
with my comments – hopefully highlight where you may have gone off-track. “BJM” are my initials/comments.

First boot and configure
BJM: Read through and pretty much skipped as used the original SD card.

Actual start of PiClock is here:		

Get all the software that PiClock needs.
Become super user! (root) (trumpets play in the background) (ok, maybe just in my head)
sudo su -
BJM: remember the hyphen at the end! If you copy and paste some text formats will change hyphens, quote marks, etc., to formats the Terminal does not understand. I have a problem where double hyphens sometimes get converted to a single long hyphen in LibreOffice.

update the repository
apt-get update
then get qt4 for python
apt-get install python-qt4
(manually confirm or stick a -y at the end)
pip install python-dateutil --upgrade
pip install tzlocal --upgrade
pip install python-metar --upgrade
apt-get install unclutter
BJM: The unclutter will work – if the system wants an updated file fine, if not you’ll get a message stating is current and up-to-date.

Get the DS18B20 Temperature driver for Python (optional)
BJM: I skipped this step but will probably add it in later. Plus not sure where it gets displayed.

reboot
To get some things running, and ensure the final config is right, we'll do a reboot
reboot

Get the PiClock software
Log into your Pi, (either on the screen or via ssh) (NOT as root) You'll be in the home directory of the user pi (/home/pi) by default, and this is where we want to be. Note that the following command while itself not being case sensitive, further operation of PiClock may be affected if the upper and lower case of the command is not followed. ==> 10” PiClock → renamed original directory to /PiClock_old
git clone https://github.com/n0bel/PiClock.git
BJM: So originally when I did this I received an error as the directory was already present. Easiest way to rename a directory is via the Files GUI. Also note it’s ‘n zero b e l’: some fonts won’t show its a dotted in the center.

BJM: Here his instructions need to be updated as still referring to DarkSky but the config file has the updated options. The ‘Map API Key’ section is modified slightly.
Configure the PiClock api keys
We need to set API keys for DarkSky and Mapbox or Google Maps. These are both unless you have large volume. The PiClock usage is well below the maximums imposed by the no cost api keys.
Map API Key
You have your choice of
MapBox -or- Google Maps to get your underlying maps from. You only need one or the other (mbapi -or- googleapi)
and
OpenWeatherMap.org -or- Tomorrow.io

BJM:
mbapi = (Get your own!!) Also make sure to begin and end with the quote mark.
owmapi = (Get your own! Pay attention to the single quotes. I have a Pi3 running HomeGenie and used that one without problem.

Google Maps API key
– See original.

Mapbox api keys
(I’m using Mapbox)

Now that you have your api keys… BJM: At ‘regular’ level, not superuser.
cd PiClock
cd Clock
cp ApiKeys-example.py ApiKeys.py
nano ApiKeys.py
Put your api keys in the file as indicated

change this to your API keys

Map API keys -- only needs 1 of the following

Google Maps API key (if usemapbox is not set in Config)

googleapi = 'YOUR GOOGLE MAPS API KEY'

Mapbox API key (access_token) [if usemapbox is set in Config]

mbapi = 'YOUR MAPBOX API KEY'

If you want to use Openweathermap.org, uncomment and add appid

owmapi = 'YOU OPENWEATHERMAP APPID'

If you want to use tomorrow.io, uncomment and add appid

also comment/remove owmapi if you're using tomorrow.io

tmapi = 'YOUR tomorrow.io API KEY'

BJM: So to repeat, need googleapi -or- mbapi AND owmapi -or- tmapi.

Configure your PiClock
here's were you tell PiClock where your weather should come from, and the radar map centers and markers.
cd PiClock
cd Clock
cp Config-Example.py Config.py
nano Config.py
BJM: Update your location. Note the space between the two. I commented out the default line to retain the example. While in there I updated the zoom levels of the radars. On my 10” screen I’m using Radar1 = 5, Radar2 = 7, Radar3 = 9, and Radar4 = 11. (That’s a shortcut notation; think it’s zoom=.) The exact level depends on personal preference and I think the size of the screen.

I skipped the NOAA WX config.

Run it!
You'll need to be on the desktop, in a terminal program.
cd PiClock
sh startup.sh -n -s
Your screen should be covered by the PiClock YAY!

BJM: Indeed! :) There are times/have been times when the wx maps stall. I’ve not needed to reboot as they automatically eventually update on their own – 20-30 minutes?

HTH – longer than I anticipated but I had no idea where you got lost so I did pretty much the whole thing.

Barry

from piweatherrock.

pjockey avatar pjockey commented on July 19, 2024

from piweatherrock.

Barry-IA avatar Barry-IA commented on July 19, 2024

Hi Scott!

Short answer: no idea.

Long answer: you’re getting ten days?? Mine shows four for the current day (three in three hour increments plus the day’s summary, then one each for the next five days. ...Oh: guess that’s the five days you’re wanting: the coffee hasn’t kicked in yet!

Half-thinking (some coffee is working [grin]) you meant you’re getting a five day forecast and desire ten. One part of the solution is to find if the forecast source offers ten days. Another would be updating the overlays: in PiClock/Clock/ subdirectories and have Config.py point to the new ones.

...Things might also display differently if configured for a digital clock vs. analog. I have an analog one here. I’m thinking of if I added five more blocks to the weather forecast ‘ladder’ the displayed information would be too small to read, or if add a second ladder column would distort the roundness of the clock display.

Barry

from piweatherrock.

pjockey avatar pjockey commented on July 19, 2024

from piweatherrock.

Barry-IA avatar Barry-IA commented on July 19, 2024

Hi Scott!

Yeah: a 7” screen is a little small. I have one here (used for something else) and I think I’d need my reading glasses plus the magnifying glass to read the forecast. A 10” screen is nice – start dropping hints for your birthday or next gift event! (Be a bit greedy and go for a touchscreen one!)

F4 is the stop/halt command. F2 to start/stop the NOAA wx radio. Space bar/left arrow/right arrow to change pages.

The -n and -s switches to startup.sh:
• -n or --no-delay Don't delay on starting the clock right away (default is 45 seconds delay)
• -d X or --delay X Delay X seconds before starting the clock
• -m X or --message-delay X Delay X seconds while displaying a message on the desktop
-n is essentially a no sleep/delay command. Leave it out and a 45 second delay is activated.
-s is log to screen.

Look in startup.sh, the “# wait for Xwindows and the desktop to start up “ section for this and other fun stuff. Make a backup copy of the original before playing!

Barry

from piweatherrock.

kodepharm avatar kodepharm commented on July 19, 2024

For a modified version with wind and weather data from OpenWetherMap https://github.com/ciprian288/PiWeatherRock-Windguru-Holfuy

@ciprian288 i did fresh install today and the app will attempt to launch with a flicker of black window but then nothing happens. any idea why this is ? thanks

from piweatherrock.

ciprian288 avatar ciprian288 commented on July 19, 2024

For a modified version with wind and weather data from OpenWetherMap https://github.com/ciprian288/PiWeatherRock-Windguru-Holfuy

@ciprian288 i did fresh install today and the app will attempt to launch with a flicker of black window but then nothing happens. any idea why this is ? thanks

Right now all data is pulled from:

OpenWetherMap https://openweathermap.org/api/one-call-3 - you have to subscribe to "One Call API 3.0" for 1,000 API calls per day for free

  • The "API Meteo" key MUST BE CHANGED because it is a TEST key

from piweatherrock.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.