Weather-App and Widget Connection Problem

Thank you. Welkweer, made by A.Dekker, is in the Jolla Store.

Better report at GitHub.


@Kea just answered you in the Jolla store. The app did not stop. Buienradar has not refreshed the 5 day forecast after the 25th of september, no idea what is going on there.
You can see the same result/effect over here - bekijk de 5-daagse verwachting voor Nederland on their own site.


Ah, that’s it, thank you. So it has nothing to do with the other weather app. Just a coincidence.

1 Like

Fixed it, at least for next 30 days. API/token from foreca, edited Jolla details and added my own user/pass/token and now it works as before.

Thanks @dcaliste for hints.

1 Like

Is there any way to remove the weather information from the lock screen? (It shows obsolete data.)
I could find an option in the settings only to remove it from the events screen.

Meecast also has the option to replace lockscreen widget

1 Like

Where? I can’t find any such setting…
(Version 1.1.35 from the Jolla Store.)

MeeCast for SailfishOS | — Community Repository System and search for the other parts, or you can get it all from chum.


There is no built in option for turning off weather icon on lockscreen but you can do it manually by editing one character in this file /usr/lib64/qt5/qml/Sailfish/Weather/WeatherIndicator.qml at line 16 and remove ONE exclamation mark, so the line becomes visible: !weather. Restart lipstick to see the change. systemctl --user restart lipstick


Thank you! This is exactly what I need.
(I plan to use no weather service, not even MeeCast.)


Another option:
open website Wetterkalender | Meteomatics
scroll to “City” >myPlace< use >Generate< and >Copy link<
in sailfish go to >settings>Accounts>Add account>Web calendar
and paste webadress.
If you don´t want to use an app…
i like it


There’s always for hardcore cli users (sadly v2 doesn’t render correctly)


thanks for the tip, that’s what I’m using now. Works great!

1 Like

Could someone paste the first 10 lines from the following file please



nice try^^ is this serious?

For those of us who have typed dd in vi quickly followed by :wq this is a most serious thing indeed :slight_smile:

1 Like

okay here is the whole file with my credentials: .import Sailfish.Weather 1.0 as Weather
.pragma library

var user = “s-ebastianmatkovich”
var password = “RjvRUJlWj2AE”
var token = “eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC9wZmEuZm9yZWNhLmNvbVwvYXV0aG9yaXplXC90b2tlbiIsImlhdCI6MTcwMDAzMTIxNSwiZXhwIjo5OTk5OTk5OTk5LCJuYmYiOjE3MDAwMzEyMTUsImp0aSI6IjhhMzAwYjJlZmUyYzhjOGMiLCJzdWIiOiJzLWViYXN0aWFubWF0a292aWNoIiwiZm10IjoiWERjT2hqQzQwK0FMamxZVHRqYk9pQT09In0.WlbbqSu5m3kaCW1vW-FapgxVJ__lsiavND_pbXwMU20”
var tokenRequest
var pendingTokenRequests = []
var lastUpdate = new Date()

function fetchToken(model) {
if (model == undefined) {
console.warn(“Token requested for undefined or null model”)
return false

if (token.length > 0 && !updateAllowed()) {
    model.token = token
    return true
} else {
    if (!tokenRequest) {

        if (user.length === 0 || password.length === 0) {
            var keyProvider = Qt.createQmlObject(
                        "import com.jolla.settings.accounts 1.0; StoredKeyProvider {}",
                        model, "StoreKeyProvider")

            user = keyProvider.storedKey("foreca", "", "user")
            password = keyProvider.storedKey("foreca", "", "password")

            if (user.length === 0 || password.length === 0) {
                console.warn("Unable to get Foreca credentials needed to identify with the service")
                return false

        tokenRequest = new XMLHttpRequest()

        var url = "" + user + "&password=" + password

        // Send the proper header information along with the tokenRequest
        tokenRequest.onreadystatechange = function() { // Call a function when the state changes.
            if (tokenRequest.readyState == XMLHttpRequest.DONE) {
                if (tokenRequest.status == 200) {
                    var json = JSON.parse(tokenRequest.responseText)
                    token = json["access_token"]
                } else {
                    token = ""
                    console.log("Failed to obtain Foreca token. HTTP error code: " + tokenRequest.status)

                for (var i = 0; i < pendingTokenRequests.length; i++) {
                    pendingTokenRequests[i].token = token
                    if (tokenRequest.status !== 200) {
                        pendingTokenRequests[i].status = (tokenRequest.status === 401) ? Weather.Weather.Unauthorized : Weather.Weather.Error
                pendingTokenRequests = []
                tokenRequest = undefined
        }"GET", url)
    pendingTokenRequests[pendingTokenRequests.length] = model
return false


function updateAllowed(interval) {
// only update token if older than 45 minutes
interval = interval === undefined ? 45601000 : interval
var now = new Date()
var updateAllowed = now.getDate() != lastUpdate.getDate() || (now - interval > lastUpdate)
if (updateAllowed) {
lastUpdate = now
return updateAllowed

Um. No personal information please. Let’s keep it to knicknames and avatars :slight_smile:

1 Like

in less than 1 month the personal information is useless anyway