WeatherFlow PiConsole

I had this happen to me about 3 months ago. What ultimately fixed it for me was rebooting my Tempest hub. Haven’t had it come up since. This would further support @peter belief that the root cause is in the API. Some bad code on the hub.

1 Like

Sorry you’re having issues. Open a terminal and run

python3 -m pip install cryptography==37.0.4

If that works, try running the install command again and see if it completes successfully. Let me know how you get on

1 Like

Thank you that worked.

I have it running great with a rpi4 so I wanted to try a rpi3 also

I have it running on a rpi3 only issue is the wind circle disappears and occasionally flickers on and off.

Barometer half circle that disappear at first and now staying on. Not sure on the wind circle.

With the rpi4 when you remote vnc in you see the weather display but with the rpi3 you only get the pi desktop is that normally with the pi3?

Glad that managed to solve it. The python version and OS on the Pi3 is slowly becoming obsolete, and these extra tweaks are required.

Yes, this is normal. The Pi4 has a much more powerful GPU than the Pi3, and renders the console in a different way

This can be solved by increasing the memory available to the graphics card. Open a terminal and run the raspi-config command. Navigate to Performance OptionsGPU Memoryand increase the number to 256. You may need to reboot for it to take effect

Worked. Thank you Peter

I just ran into the same problem and this fixed it for me too.

A reboot does work for a few hours, and then the problem with the (!) comes back. Got the issue too. How can we fix that?

Hi All

My piconsole is not carrying rainfall over - for example 27/12 I had 10.8mm of rain, but on the 28/12 Yesterday’s rain showed 0mm, but the monthly and yearly total did go up by 10.8mm and this data was retained.

Anyone got any ideas of what may be going on? It has only started doing this in the past few weeks.

Many thanks
Paul

This sounds very odd - I will try and look into it tomorrow. I wonder if this is all related to backend API issues…

Unfortunately, this is not fixable. The issue appears to be at the WF end. I’ve been trying to get a status update from them, but nothing has been shared

I see, I hope this is fixed then from the WF end.

pi@raspberrypi:~ $ screen -x
[INFO ] [ProbeSysfs ] device match: /dev/input/event0
[INFO ] [MTD ] Read event from </dev/input/event0>
[INFO ] [ProbeSysfs ] device match: /dev/input/event0
[INFO ] [HIDInput ] Read event from </dev/input/event0>
[INFO ] [Base ] Start application main loop
[INFO ] [MTD ] </dev/input/event0> range position X is 0 - 799
[INFO ] [HIDMotionEvent] using
[INFO ] [MTD ] </dev/input/event0> range position Y is 0 - 479
[INFO ] [HIDMotionEvent] range ABS X position is 0 - 799
[INFO ] [MTD ] </dev/input/event0> range touch major is 0 - 0
[INFO ] [HIDMotionEvent] range ABS Y position is 0 - 479
[INFO ] [MTD ] </dev/input/event0> range touch minor is 0 - 0
[INFO ] [HIDMotionEvent] range position X is 0 - 799
[INFO ] [MTD ] </dev/input/event0> range pressure is 0 - 255
[INFO ] [HIDMotionEvent] range position Y is 0 - 479
[INFO ] [MTD ] </dev/input/event0> axes invertion: X is 0, Y is 0
[INFO ] [MTD ] </dev/input/event0> rotation set to 0
[INFO ] [Websocket ] 2022-11-29 08:33:26 - Connection open

Log doesn’t say anything :slight_smile: so in our end is everything OK.

1 Like

Hi Peter, further update on this. It appears that Rainfall Yesterday, is a the day before yesterday’s rainfall total.

I’m in the southern hemisphere , I wonder if that is having anything to do with it?

On 1 December I had 3.1mm of Rain, yet the display is showing 6.1 mm which was the 30th November total this morning.

But the Month total of 3.1mm is correct.

Kindest regards
Paul

Can you send me the contents of your wfpiconsole.ini file in a PM? That’ll help me investigate more

Hi Peter,

I was out for a few hours and when I got home I found that my PiConsole wasn’t running. Judging from the log (included below) it seems to have something to do with the windowing system. So far I’ve rebooted, run apt upgrade, rebooted again, run wfpiconsole stable and wfpiconsole update and I’ve still got the same issue. I should mention that the display is working. I skimmed through most of the logs in /var/log but I didn’t see anything that stood out to me. I’m using a Pi 4B with Raspian Buster. Prior to the issue starting I hadn’t done any updates recently (until just now). Can you give me some guidance as to where to go next?

Here’s the log:

[INFO   ] [Logger      ] Record log in /home/pi/.kivy/logs/kivy_22-12-02_16.txt
[INFO   ] [Kivy        ] v2.0.0
[INFO   ] [Kivy        ] Installed at "/home/pi/.local/lib/python3.7/site-packages/kivy/__init__.py"
[INFO   ] [Python      ] v3.7.3 (default, Oct 31 2022, 14:04:00) 
[GCC 8.3.0]
[INFO   ] [Python      ] Interpreter at "/usr/bin/python3"
[INFO   ] [Config      ] Verifying station details
[INFO   ] [Factory     ] 186 symbols loaded
[INFO   ] [Image       ] Providers: img_tex, img_dds, img_sdl2, img_pil (img_ffpyplayer ignored)
[INFO   ] [Window      ] Provider: sdl2
[CRITICAL] [Window      ] Unable to find any valuable Window provider. Please enable debug logging (e.g. add -d if running from the command line, or change the log level in the config) and re-run your app to identify potential causes
sdl2 - RuntimeError: b'Could not initialize EGL'
  File "/home/pi/.local/lib/python3.7/site-packages/kivy/core/__init__.py", line 70, in core_select_lib
    cls = cls()
  File "/home/pi/.local/lib/python3.7/site-packages/kivy/core/window/window_sdl2.py", line 152, in __init__
    super(WindowSDL, self).__init__()
  File "/home/pi/.local/lib/python3.7/site-packages/kivy/core/window/__init__.py", line 982, in __init__
    self.create_window()
  File "/home/pi/.local/lib/python3.7/site-packages/kivy/core/window/window_sdl2.py", line 289, in create_window
    self.get_gl_backend_name())
  File "kivy/core/window/_window_sdl2.pyx", line 226, in kivy.core.window._window_sdl2._WindowSDL2Storage.setup_window
  File "kivy/core/window/_window_sdl2.pyx", line 74, in kivy.core.window._window_sdl2._WindowSDL2Storage.die

x11 - ModuleNotFoundError: No module named 'kivy.core.window.window_x11'
  File "/home/pi/.local/lib/python3.7/site-packages/kivy/core/__init__.py", line 62, in core_select_lib
    fromlist=[modulename], level=0)

[INFO   ] [Text        ] Provider: sdl2
 Traceback (most recent call last):
   File "main.py", line 521, in <module>
     wfpiconsole().run()
   File "/home/pi/.local/lib/python3.7/site-packages/kivy/app.py", line 949, in run
     self._run_prepare()
   File "/home/pi/.local/lib/python3.7/site-packages/kivy/app.py", line 919, in _run_prepare
     root = self.build()
   File "main.py", line 190, in build
     self.setScaleFactor(self.window, self.window.width, self.window.height)
 AttributeError: 'NoneType' object has no attribute 'width'

I am getting an Index error: list out of range when trying to start the wfpiconsole. I have made no changes or updates, came home to find console screen had closed on remote screen.

2 Likes

Same here. . .just started about 9:25pm CST.

Here is the wfpiconsole.log file. . . " IndexError: list index out of range " on next to the last line at bottom.

[e[1;32mINFOe[0m ] [Logger ] Record log in /home/pi/.kivy/logs/kivy_22-12-02_4.txt
[e[1;32mINFOe[0m ] [Kivy ] v2.0.0
[e[1;32mINFOe[0m ] [Kivy ] Installed at “/home/pi/.local/lib/python3.7/site-packages/kivy/init.py”
[e[1;32mINFOe[0m ] [Python ] v3.7.3 (default, Jan 22 2021, 20:04:44)
[GCC 8.3.0]
[e[1;32mINFOe[0m ] [Python ] Interpreter at “/usr/bin/python3”
[e[1;32mINFOe[0m ] [Config ] Verifying station details
[e[1;32mINFOe[0m ] [Factory ] 186 symbols loaded
[e[1;32mINFOe[0m ] [Image ] Providers: img_tex, img_dds, img_sdl2, img_pil (img_ffpyplayer ignored)
[e[1;32mINFOe[0m ] [Window ] Provider: sdl2
[e[1;32mINFOe[0m ] [GL ] Using the “OpenGL ES 2” graphics system
[e[1;32mINFOe[0m ] [GL ] Backend used
[e[1;32mINFOe[0m ] [GL ] OpenGL version <b’2.1 Mesa 19.3.2’>
[e[1;32mINFOe[0m ] [GL ] OpenGL vendor <b’Broadcom’>
[e[1;32mINFOe[0m ] [GL ] OpenGL renderer <b’V3D 4.2’>
[e[1;32mINFOe[0m ] [GL ] OpenGL parsed version: 2, 1
[e[1;32mINFOe[0m ] [GL ] Shading version <b’1.20’>
[e[1;32mINFOe[0m ] [GL ] Texture max size <4096>
[e[1;32mINFOe[0m ] [GL ] Texture max units <16>
[e[1;32mINFOe[0m ] [Window ] auto add sdl2 input provider
[e[1;32mINFOe[0m ] [Window ] virtual keyboard not allowed, single mode, not docked
[e[1;32mINFOe[0m ] [Text ] Provider: sdl2
[e[1;32mINFOe[0m ] [GL ] NPOT texture support is available
[e[1;32mINFOe[0m ] [Websocket ] 2022-12-02 21:30:44 - Opening connection
[e[1;32mINFOe[0m ] [ProbeSysfs ] device match: /dev/input/event5
[e[1;32mINFOe[0m ] [MTD ] Read event from </dev/input/event5>
[e[1;32mINFOe[0m ] [ProbeSysfs ] device match: /dev/input/event3
[e[1;32mINFOe[0m ] [MTD ] Read event from </dev/input/event3>
[e[1;32mINFOe[0m ] [ProbeSysfs ] device match: /dev/input/event1
[e[1;32mINFOe[0m ] [MTD ] Read event from </dev/input/event1>
[e[1;32mINFOe[0m ] [ProbeSysfs ] device match: /dev/input/event4
[e[1;32mINFOe[0m ] [MTD ] Read event from </dev/input/event4>
[e[1;32mINFOe[0m ] [ProbeSysfs ] device match: /dev/input/event2
[e[1;32mINFOe[0m ] [MTD ] Read event from </dev/input/event2>
[e[1;32mINFOe[0m ] [ProbeSysfs ] device match: /dev/input/event0
[e[1;32mINFOe[0m ] [MTD ] Read event from </dev/input/event0>
[e[1;32mINFOe[0m ] [ProbeSysfs ] device match: /dev/input/event5
[e[1;32mINFOe[0m ] [HIDInput ] Read event from </dev/input/event5>
[e[1;32mINFOe[0m ] [ProbeSysfs ] device match: /dev/input/event3
[e[1;32mINFOe[0m ] [HIDInput ] Read event from </dev/input/event3>
[e[1;32mINFOe[0m ] [ProbeSysfs ] device match: /dev/input/event1
[e[1;32mINFOe[0m ] [HIDInput ] Read event from </dev/input/event1>
[e[1;32mINFOe[0m ] [ProbeSysfs ] device match: /dev/input/event4
[e[1;32mINFOe[0m ] [HIDInput ] Read event from </dev/input/event4>
[e[1;32mINFOe[0m ] [ProbeSysfs ] device match: /dev/input/event2
[e[1;32mINFOe[0m ] [HIDInput ] Read event from </dev/input/event2>
[e[1;32mINFOe[0m ] [ProbeSysfs ] device match: /dev/input/event0
[e[1;32mINFOe[0m ] [HIDInput ] Read event from </dev/input/event0>
[e[1;32mINFOe[0m ] [Base ] Start application main loop
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event5> range position X is 0 - 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event5> range position Y is 0 - 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event3> range position X is 0 - 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event5> range touch major is 0 - 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event1> range position X is 0 - 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event3> range position Y is 0 - 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event3> range touch major is 0 - 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event5> range touch minor is 0 - 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event1> range position Y is 0 - 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event2> range position X is 0 - 799
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event4> range position X is 0 - 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event3> range touch minor is 0 - 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event5> range pressure is 0 - 255
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event1> range touch major is 0 - 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event1> range touch minor is 0 - 0
[e[1;32mINFOe[0m ] [HIDMotionEvent] using
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event2> range position Y is 0 - 479
[e[1;32mINFOe[0m ] [HIDMotionEvent] using
[e[1;32mINFOe[0m ] [HIDMotionEvent] using
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event4> range position Y is 0 - 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event3> range pressure is 0 - 255
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event3> axes invertion: X is 0, Y is 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event5> axes invertion: X is 0, Y is 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event0> range position X is 0 - 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event1> range pressure is 0 - 255
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event1> axes invertion: X is 0, Y is 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event2> range touch major is 0 - 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event2> range touch minor is 0 - 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event4> range touch major is 0 - 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event4> range touch minor is 0 - 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event4> range pressure is 0 - 255
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event5> rotation set to 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event0> range position Y is 0 - 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event1> rotation set to 0
[e[1;32mINFOe[0m ] [HIDMotionEvent] using
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event2> range pressure is 0 - 255
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event2> axes invertion: X is 0, Y is 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event4> axes invertion: X is 0, Y is 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event4> rotation set to 0
[e[1;32mINFOe[0m ] [HIDMotionEvent] using
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event3> rotation set to 0
[e[1;32mINFOe[0m ] [HIDMotionEvent] range ABS X position is 0 - 799
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event2> rotation set to 0
[e[1;32mINFOe[0m ] [HIDMotionEvent] using
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event0> range touch major is 0 - 0
[e[1;32mINFOe[0m ] [HIDMotionEvent] range ABS Y position is 0 - 479
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event0> range touch minor is 0 - 0
[e[1;32mINFOe[0m ] [HIDMotionEvent] range position X is 0 - 799
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event0> range pressure is 0 - 255
[e[1;32mINFOe[0m ] [HIDMotionEvent] range position Y is 0 - 479
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event0> axes invertion: X is 0, Y is 0
[e[1;32mINFOe[0m ] [MTD ] </dev/input/event0> rotation set to 0
[e[1;32mINFOe[0m ] [Websocket ] 2022-12-02 21:30:45 - Connection open
[e[1;32mINFOe[0m ] [Base ] Leaving application in progress…
Traceback (most recent call last):
File “main.py”, line 521, in
wfpiconsole().run()
File “/home/pi/.local/lib/python3.7/site-packages/kivy/app.py”, line 950, in run
runTouchApp()
File “/home/pi/.local/lib/python3.7/site-packages/kivy/base.py”, line 582, in runTouchApp
EventLoop.mainloop()
File “/home/pi/.local/lib/python3.7/site-packages/kivy/base.py”, line 347, in mainloop
self.idle()
File “/home/pi/.local/lib/python3.7/site-packages/kivy/base.py”, line 387, in idle
Clock.tick()
File “/home/pi/.local/lib/python3.7/site-packages/kivy/clock.py”, line 733, in tick
self.post_idle(ts, self.idle())
File “/home/pi/.local/lib/python3.7/site-packages/kivy/clock.py”, line 776, in post_idle
self._process_events()
File “kivy/_clock.pyx”, line 616, in kivy._clock.CyClockBase._process_events
File “kivy/_clock.pyx”, line 649, in kivy._clock.CyClockBase._process_events
File “kivy/_clock.pyx”, line 645, in kivy._clock.CyClockBase._process_events
File “kivy/_clock.pyx”, line 218, in kivy._clock.ClockEvent.tick
File “/home/pi/wfpiconsole/lib/sager.py”, line 77, in fetch_forecast
threading.Thread(target=self.generate_forecast(), daemon=True).start()
File “/home/pi/wfpiconsole/lib/sager.py”, line 266, in generate_forecast
self.sager_data[‘METAR’] = Data.json()[‘data’][0]
IndexError: list index out of range
pi@wfpiconsole:~ $

Hi, I have the same problem

“IndexError: list Index out of range”

Greetings from Berlin/Germany :v:

I try to start the console as well but it didn’t start
Also all my packages are all upto date

$ wfpiconsole start
[INFO ] [Logger ] Record log in /home/pi/.kivy/logs/kivy_22-12-03_27.txt
[INFO ] [Kivy ] v2.0.0
[INFO ] [Kivy ] Installed at “/home/pi/.local/lib/python3.7/site-packages/kivy/init.py”
[INFO ] [Python ] v3.7.3 (default, Oct 31 2022, 14:04:00)
[GCC 8.3.0]
[INFO ] [Python ] Interpreter at “/usr/bin/python3”
[INFO ] [Config ] Verifying station details
[INFO ] [Factory ] 186 symbols loaded
[INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2, img_pil (img_ffpyplayer ignored)
[INFO ] [Window ] Provider: egl_rpi
[INFO ] [GL ] Using the “OpenGL ES 2” graphics system
[INFO ] [GL ] Backend used
[INFO ] [GL ] OpenGL version <b’OpenGL ES 2.0’>
[INFO ] [GL ] OpenGL vendor <b’Broadcom’>
[INFO ] [GL ] OpenGL renderer <b’VideoCore IV HW’>
[INFO ] [GL ] OpenGL parsed version: 2, 0
[INFO ] [GL ] Shading version <b’OpenGL ES GLSL ES 1.00’>
[INFO ] [GL ] Texture max size <2048>
[INFO ] [GL ] Texture max units <8>
[INFO ] [Window ] virtual keyboard not allowed, single mode, not docked
[INFO ] [Text ] Provider: sdl2
[INFO ] [GL ] NPOT texture support is available
[INFO ] [Websocket ] 2022-12-03 23:43:21 - Opening connection
Unable to connect to X server
[INFO ] [ProbeSysfs ] device match: /dev/input/event0
[INFO ] [MTD ] Read event from </dev/input/event0>
[INFO ] [ProbeSysfs ] device match: /dev/input/event0
[INFO ] [HIDInput ] Read event from </dev/input/event0>
[INFO ] [Base ] Start application main loop
[INFO ] [MTD ] </dev/input/event0> range position X is 0 - 16383
[INFO ] [MTD ] </dev/input/event0> range position Y is 0 - 9599
[INFO ] [MTD ] </dev/input/event0> range touch major is 0 - 0
[INFO ] [HIDMotionEvent] using <HID 27c0:0818>
[INFO ] [MTD ] </dev/input/event0> range touch minor is 0 - 0
[INFO ] [HIDMotionEvent] <HID 27c0:0818> range ABS X position is 0 - 16383
[INFO ] [MTD ] </dev/input/event0> range pressure is 0 - 255
[INFO ] [HIDMotionEvent] <HID 27c0:0818> range ABS Y position is 0 - 9599
[INFO ] [MTD ] </dev/input/event0> axes invertion: X is 0, Y is 0
[INFO ] [MTD ] </dev/input/event0> rotation set to 0
[INFO ] [HIDMotionEvent] <HID 27c0:0818> range position X is 0 - 16383
[INFO ] [HIDMotionEvent] <HID 27c0:0818> range position Y is 0 - 9599
[INFO ] [Websocket ] 2022-12-03 23:43:22 - Connection open
[INFO ] [Base ] Leaving application in progress…
Traceback (most recent call last):
File “main.py”, line 521, in
wfpiconsole().run()
File “/home/pi/.local/lib/python3.7/site-packages/kivy/app.py”, line 950, in run
runTouchApp()
File “/home/pi/.local/lib/python3.7/site-packages/kivy/base.py”, line 582, in runTouchApp
EventLoop.mainloop()
File “/home/pi/.local/lib/python3.7/site-packages/kivy/base.py”, line 347, in mainloop
self.idle()
File “/home/pi/.local/lib/python3.7/site-packages/kivy/base.py”, line 387, in idle
Clock.tick()
File “/home/pi/.local/lib/python3.7/site-packages/kivy/clock.py”, line 733, in tick
self.post_idle(ts, self.idle())
File “/home/pi/.local/lib/python3.7/site-packages/kivy/clock.py”, line 776, in post_idle
self._process_events()
File “kivy/_clock.pyx”, line 616, in kivy._clock.CyClockBase._process_events
File “kivy/_clock.pyx”, line 649, in kivy._clock.CyClockBase._process_events
File “kivy/_clock.pyx”, line 645, in kivy._clock.CyClockBase._process_events
File “kivy/_clock.pyx”, line 218, in kivy._clock.ClockEvent.tick
File “/home/pi/wfpiconsole/lib/sager.py”, line 77, in fetch_forecast
threading.Thread(target=self.generate_forecast(), daemon=True).start()
File “/home/pi/wfpiconsole/lib/sager.py”, line 266, in generate_forecast
self.sager_data[‘METAR’] = Data.json()[‘data’][0] IndexError: list index out of range

Thanks for all the reports everyone - it seems like there is an issue with the CheckWX API service. I will get a fix in place ASAP to stop the console crashing while we wait for the API service to resume

4 Likes

A new version (v22.12.1) of the WeatherFlow PiConsole is now available.

This version contains a critical bug fix for the Sager Forecast and general performance improvements

  • Fixed bug causing console to crash when METAR API response is empty
  • Fixed bug where Sager forecast did not update on error
  • Fixed bug in Cryptography module for Pi3
  • Fixed bug when removing indoor Air sensors for device list
  • Fixed bug that showed station as offline when switching stations/devices

To update please run wfpiconsole stop followed by wfpiconsole update. Please make sure any local changes to the code or custom panels are backed up.

@jah.stewart, @arnold_thermann, @storm_tracker, @fritz614 - this should solve your issue. The Sager Forecast will remain blank, however, until the API issues are fixed their end.

4 Likes