InfiniTimeOrg / InfiniTime

Firmware for Pinetime smartwatch written in C++ and based on FreeRTOS
GNU General Public License v3.0
2.64k stars 902 forks source link

weather: Add support for conditions #1904

Closed vkareh closed 6 months ago

vkareh commented 8 months ago

Use OpenWeatherMap conditions to determine the correct condition icon. This is more accurate than attempting to calculate the condition based on precipitation and cloud cover, which often yields the wrong condition.

Companion PR to Gadgetbridge: https://codeberg.org/Freeyourgadget/Gadgetbridge/pulls/3407

github-actions[bot] commented 8 months ago
Build size and comparison to main: Section Size Difference
text 378096B 448B
data 940B 0B
bss 63492B 0B
JF002 commented 7 months ago

Thanks for your contribution @vkareh ! I'm currently in the process of trying re-design the weather service to fix its current issues and to make the integration easier in companion apps, and using icon ID or condition ID was also one of my ideas!

I'll probably reach out to the Gadgetbridge community to get some feedback about this re-design !

JF002 commented 7 months ago

I posted a comment on the PR on Gadgetbridge, but received no answer so far... Since I'm redesigning the whole weather feature, I was hoping I could get in touch with Gadgetbridge devs to have their feedback..

vkareh commented 7 months ago

@JF002: right - I think the Gadgetbridge community hangs out in a matrix server, but not sure (I don't really use matrix).

From what I can see in the GB sourcecode, they already use icon IDs for weather conditions based on owm: https://codeberg.org/Freeyourgadget/Gadgetbridge/src/branch/master/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/model/Weather.java#L336-L363

Changing to this model for InfiniTime is not a stretch, and in fact could make the entire weather service a lot leaner.

JF002 commented 6 months ago

Thanks for your work, @vkareh. However, I decided to rework the weather service so we can fix the issues more easily. The new implementation also supports icons for the weather condition. Let me know what you think of it :) I'm closing this one in favor of #1924.