Qrome / marquee-scroller

Marquee Scroller Clock News Weather and More
https://www.thingiverse.com/thing:2867294
MIT License
332 stars 160 forks source link

Weather Data Parsing failed! #43

Closed 2A3 closed 6 years ago

2A3 commented 6 years ago

I'm getting an error "Weather Data Parsing failed!" in both a singe wide and double wide setup. Refreshing the data thru the web page doesn't fix the issue, but hitting the reset button does.

Any ideas of what could be the cause?

Qrome commented 6 years ago

What city ID are you using? Could there be something in the response for your selected City that might be causing the parsing to fail? Can you share the version you are using as well as the City ID. Thanks.

JoeLajoe commented 6 years ago

I got this same error with city code 4952005. Happens after about 3 hours. Thought it was something to do with my edits to the code but happens with standard version 2,2 and 2.3

2A3 commented 6 years ago

Hillsborough County, US City ID: 5087463 I'm using Version 2.3 I've built both the 4 (single) and 8 (double) and it happens with both. If I reboot both it will happen again at different times.
Changing display options (eg, humidity, windspeed, date etc) doesn't prevent the problem.

Many thanks!

Qrome commented 6 years ago

The parsing error means that the response from the openweather.org was not a good response that the ArduinoJson could read through. It makes me wonder if occasionally you are getting a bad response.

Qrome commented 6 years ago

Ok, I have made some changes to the 2.3 dev branch. Apparently it would loop and display the error message. This was originally done if a user had configured incorrect weather api-key or city ID so it would not continue to hit the weather service. This update should try again on the next normal data refresh (usually 15 minutes). I have also updated it to show other types of weather errors like 404 on CityID not found and stuff like that. Please try the latest 2.3 dev branch.

https://github.com/Qrome/marquee-scroller/tree/2.3

2A3 commented 6 years ago

I installed the updated files tonight on both 4 and 8 segment units. They've been running for about 4 hours so far and seem solid. I'll see how they do. Thanks again for all of the help.

Qrome commented 6 years ago

Sounds good. Let me know how it goes.

2A3 commented 6 years ago

The updated files have been running on both 4 and 8 segment units for over 24 hours, and seem solid. Finger's crossed, but I think the parsing error is fixed!

Qrome commented 6 years ago

Thanks for the update and for testing it out. Occasionally there might be a bad response from the weather service but with this update it won't stay in the error loop and can get out of it and try again.

Qrome commented 6 years ago

Released this in 2.3.

pkarza commented 5 years ago

This is giving me a problem on 2.5 - city code 6119109

I can reboot for forget wifi - but it happens after a few hours and won't update.

Qrome commented 5 years ago

Philip, your issue doesn't have anything to do with the original issue posted here. Is it possible your device is being disconnected from your router? Can you pull up the web interface when it gets a weather parsing failed? This is usually an indication of connectivity. If you plug it in to your computer and use the Serial Monitor and capture what is happening, that would be helpful.

pkarza commented 5 years ago

It is the same issue - weather parsing data fail

I have moved the clock to be right by the wifi - and it has a powerful output - the web interface still works when it gives the parsing error. - that is strange. That is where I use the forget wifi option and it works again.

If I turn off the weather completely, the news will work and it does not fail - and if I have a ocdtoprint job to monitor, it is also fine. Just the weather!

Neeraj-Ch commented 5 years ago

I have the same problem. Also even clock is connected to internet & Everything ok. 1 . Many times Weather data parsing error. 2 . Web interface is not as it should be. Its very unusual . In Simple HTML only

  1. Web interface doesn't work while there is weather parsing error
Qrome commented 5 years ago

Again, the original issue was that it would not attempt to get the weather data after the first error, that was fixed in version 2.3.

Now if you can run the serial monitor to capture the error response from the weather service that would give you an indication why your clock can't reach the weather service. The parsing error occurs when it can't reach the weather service or if the weather service returns an error. There is nothing I can do about the weather service, router, or connectivity.

If you can run the serial monitor often the weather service will respond with what the issue is: it could be the api key is over used or rejected.

When it happens again, go to the web interface and click the "Refresh Data" -- this forces the clock to pull all fresh data from the weather, news, etc. Check the Serial Monitor when you do this and you can see the responses for the services.

pkarza commented 5 years ago

Ok - I'll try a different API key - and I'm sure how to use the serial monitor... It has to be something simple.

Qrome commented 5 years ago

Plug the Printer Monitor into your computer then follow these steps in the Arduino IDE.

  1. Get the firmware to compile and load over the USB
  2. Open the Arduino Serial Monitor from menu Tools -> Serial Monitor
  3. Make sure the Baud Rate is set to 115200

After you compile and load the firmware over the USB you can watch the debug information spit out into the Serial Monitor Window. This will show you all that it is doing including details about the Weather Call. Keep it running until you see the Weather Data Error and then inspect the log file... it may indicate what happened.

pkarza commented 5 years ago

Well - here is a copy - the news works - but the weather doesn't - I'll post the one that and the one that did not...

19:31:28.926 -> Getting Weather Data 19:31:28.926 -> GET /data/2.5/group?id=6119109&units=metric&cnt=1&APPID=8e6b124d9c516ff1938fa8e87fbe84xx HTTP/1.1 Waiting for data 19:31:29.114 -> Response Header: HTTP/1.1 200 OK 19:31:29.114 -> Weather Data Parsing failed! Updating Time... . 19:31:35.582 -> 01:31:32 19:31:35.582 -> 1:31:32 19:31:35.582 -> 5492 Getting News Data for reuters 19:31:40.598 -> Getting News Data 19:31:40.598 -> http://newsapi.org/v2/top-headlines?sources=reuters&apiK (NEWS WORKS)

------------------------------------------ Last working one....... 19:16:22.694 -> Getting Weather Data 19:16:22.694 -> GET /data/2.5/group?id=6119109&units=metric&cnt=1&APPID=8e6b124d9c516ff1938fa8e87fbe84xx HTTP/1.1 Waiting for data 19:16:22.834 -> Response Header: HTTP/1.1 200 OK 19:16:22.834 -> lat: 50.45 19:16:22.834 -> lon: -104.62 19:16:22.834 -> dt: 1543799780 19:16:22.834 -> city: Regina 19:16:22.834 -> country: CA 19:16:22.881 -> temp: -6 19:16:22.881 -> humidity: 92 19:16:22.881 -> condition: Clouds 19:16:22.881 -> wind: 3.1 19:16:22.881 -> weatherId: 804 19:16:22.881 -> description: overcast clouds 19:16:22.881 -> icon: 04n 19:16:22.881 -> 19:16:22.881 -> Updating Time... . 19:16:23.912 -> 01:16:20 19:16:23.912 -> 1:16:20 19:16:23.912 -> 4580 Getting News Data for reuters (news works)

pkarza commented 5 years ago

and a follow up - I tried to refresh data - and here this is... weird...

9:35:57.183 -> Getting Weather Data 19:35:57.183 -> GET /data/2.5/group?id=6119109&units=metric&cnt=1&APPID=8e6b124d9c516ff1938fa8e87fbe84xx HTTP/1.1 Waiting for data 19:35:57.417 -> Response Header: HTTP/1.1 200 OK 19:35:57.417 -> Weather Data Parsing failed!

19:36:02.245 -> Getting Weather Data 19:36:02.245 -> GET /data/2.5/group?id=6119109&units=metric&cnt=1&APPID=8e6b124d9c516ff1938fa8e87fbe84xx HTTP/1.1

19:36:05.011 -> Panic C:\Users\Phil Karza\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.4.1\cores\esp8266\core_esp8266_main.cpp:130 loop_task 19:36:05.058 -> 19:36:05.058 -> ctx: sys 19:36:05.058 -> sp: 3ffffdd0 end: 3fffffb0 offset: 01b0 19:36:05.058 -> 19:36:05.058 -> >>>stack>>> 19:36:05.058 -> 3fffff80: 4024f972 3fffdab0 00000000 3fff3fa0
19:36:05.058 -> 3fffff90: 00000000 3fffdad0 3fff3f98 4021fac1
19:36:05.058 -> 3fffffa0: 40000f49 3fffdab0 3fffdab0 40000f49
19:36:05.058 -> <<<stack<<< 19:36:05.058 -> 19:36:05.058 -> ets Jan 8 2013,rst cause:2, boot mode:(3,0) 19:36:05.058 -> 19:36:05.058 -> load 0x4010f000, len 1384, room 16 19:36:05.058 -> tail 8 19:36:05.058 -> chksum 0x2d 19:36:05.058 -> csum 0x2d 19:36:05.058 -> v614f7c32 19:36:05.058 -> ~ld sy⸮|⸮⸮⸮nc⸮gl⸮|⸮⸮g|p l⸮|o⸮⸮⸮⸮㓃 b⸮g`{l APIKEY: 8e6b124d9c516ff1938fa8e87fbe8490 19:36:05.198 -> CityID: 6119109 19:36:05.198 -> marqueeMessage= 19:36:05.198 -> newsSource=reuters 19:36:05.198 -> timeDisplayTurnsOn=06:30 19:36:05.198 -> timeDisplayTurnsOff=23:00 19:36:05.198 -> displayIntensity=1 19:36:05.198 -> displayScrollSpeed=25 19:36:05.198 -> NEWS_ENABLED=1 19:36:05.198 -> NEWS_API_KEY: ffaccabf65ae491a83551c0f787a82xx 19:36:05.198 -> IS_24HOUR=0 19:36:05.198 -> IS_DST=0 19:36:05.198 -> Wide_Clock_Style=1 19:36:05.198 -> IS_METRIC=1 19:36:05.198 -> minutesBetweenDataRefresh=15 19:36:05.198 -> minutesBetweenScrolling=1 19:36:05.198 -> OCTOPRINT_ENABLED=1 19:36:05.198 -> OctoPrintApiKey=BF11F278B2374200A1BB1495F80CA7xx 19:36:05.198 -> OctoPrintServer=172.16.1.102 19:36:05.198 -> OctoPrintPort=80 19:36:05.198 -> OctoAuthUser= 19:36:05.198 -> OctoAuthPass= 19:36:05.198 -> www_username=admin 19:36:05.198 -> www_password=password 19:36:05.245 -> IS_BASIC_AUTH=1 19:36:05.245 -> BitcoinCurrencyCode=NONE 19:36:05.245 -> SHOW_CITY=1 19:36:05.245 -> SHOW_CONDITION=0 19:36:05.245 -> SHOW_HUMIDITY=0 19:36:05.245 -> SHOW_WIND=0 19:36:05.245 -> SHOW_DATE=1 19:36:05.245 -> Number os LED Displays: 4 19:36:05.245 -> matrix created WM: 19:36:11.339 -> WM: AutoConnect 19:36:11.339 -> WM: Connecting as wifi client... 19:36:11.339 -> WM: Already connected. Bailing out. 19:36:11.339 -> WM: IP Address: 19:36:11.339 -> WM: 172.16.1.80 19:36:11.339 -> Signal Strength (RSSI): 30% 19:36:11.339 -> Server started 19:36:11.339 -> Use this URL : http://172.16.1.80:80/

19:36:11.620 -> Getting Weather Data 19:36:11.620 -> GET /data/2.5/group?id=6119109&units=metric&cnt=1&APPID=8e6b124d9c516ff1938fa8e87fbe8490 HTTP/1.1 Waiting for data 19:36:11.807 -> Response Header: HTTP/1.1 200 OK 19:36:11.807 -> lat: 50.45 19:36:11.807 -> lon: -104.62 19:36:11.807 -> dt: 1543800969 19:36:11.807 -> city: Regina 19:36:11.807 -> country: CA 19:36:11.807 -> temp: -6 19:36:11.807 -> humidity: 92 19:36:11.807 -> condition: Clouds 19:36:11.807 -> wind: 4.6 19:36:11.807 -> weatherId: 804 19:36:11.854 -> description: overcast clouds 19:36:11.854 -> icon: 04n 19:36:11.854 -> 19:36:11.854 -> Updating Time... .

pkarza commented 5 years ago

is there any way to load this without the weather - and only have news??