Seite 2 von 5

Re: Darksky.net

Verfasst: 25. Apr 2020 10:23
von PeterA
Dafür gibts auch eine Rule. Hab ich hier aus dem Forum:

Code: Alles auswählen

 var chillCount = 4
rule "Windchill_Calculate"   //  thx to @Udo_Hartmann for the Rule-Body  and @dmaillie for the math-stuff - 2019-01-13
when 
        Item LocalWeatherAndForecast_Current_OutdoorTemperature received update
then 
    if(!(LocalWeatherAndForecast_Current_WindSpeed.state instanceof Number))
    {
        logWarn("windchill","Windspeed not of Type Number!")
        return;
    }
    if(!(LocalWeatherAndForecast_Current_OutdoorTemperature.state instanceof Number)) 
    {
        logWarn("windchill","Temperature not of Type Number!")
        return;
    }
     var speedCurrent = Math.pow((((LocalWeatherAndForecast_Current_WindSpeed.state as Number).floatValue) * 1.0), 0.16) 
          //logInfo("windchill","Speed: " + speedCurrent)
     var tempCurrent = (LocalWeatherAndForecast_Current_OutdoorTemperature.state as Number).floatValue
        //logInfo("windchill","Temp: " + tempCurrent)
    owm_localCurrentWindchill.postUpdate(13.12 + 0.6215 * tempCurrent - 11.37 * speedCurrent + 0.3965 * tempCurrent * speedCurrent )
    chillCount ++
    if (chillCount >= 4)  // logInfo every 2 hours (or every 4th time) - Temperature is updated every 30 Minutes by another Rule/Binding(LocalWeatherAndForecast_Current_OutdoorTemperature)
    {
        logInfo("windchill"," I'm still alive")
        chillCount = 0
    }
end

Re: Darksky.net

Verfasst: 25. Apr 2020 12:12
von int5749
Boxana hat geschrieben: 23. Apr 2020 18:25 @ PeterA
Danke für deine Infos,
habe jetzt auch auf openweathermap umgestellt und es geht alles ;-)
Hi,

hast Du dies über eine *.things umgestellt? Oder nutzt Du PaperUI? Evtl. kannst Du Deine Things einmal teilen? Ich bekomme derzeit den Forecast noch nicht ans fliegen :-/

Re: Darksky.net

Verfasst: 25. Apr 2020 12:54
von PeterA
Das lief noch über PaperUi.
Bild

Re: Darksky.net

Verfasst: 25. Apr 2020 16:37
von int5749
Hallo Peter,
Danke. Ich habe mir das nun einmal bei mir angeschaut und auch die Konfig noch einmal geprüft.
Die Bridge habe ich gemäß Vorgabe angelegt und diese startet auch.

Code: Alles auswählen

Bridge openweathermap:weather-api:api "OpenWeatherMap Account" [apikey="47110815irgendwiemeineAPI", refreshInterval=30, language="de"] {
    Thing weather-and-forecast local "Local Weather And Forecast" [location="47.11,8.15", forecastHours=3, forecastDays=0]
    Thing uvindex local "Local UV Index" [location="47.11,8.15", forecastDays=7]
}
Items habe ich in meiner Items definiert nur mit dem Things verbunden
Beispiel

Code: Alles auswählen

DateTime localLastMeasurement	"Timestamp of last measurement [%1$tY-%1$tm-%1$tdT%1$tH:%1$tM:%1$tS]"	<time>	{ channel="openweathermap:weather-and-forecast:api:local:current#time-stamp" }
Diese Abrage ist auch mit Daten gefüllt, so wie alle weiteren zu localCurrentCondition

Jedoch funktionieren 0,0 Forecast Werte. Die Things werde mir alle in der PaperUI angezeigt (3h, 6h, 9h, .... 24h, sowie morgen, übermorgen, .... 5 Tage) und auch die für Tests verknüpften Werte werden angezeigt.

Ich habe schon geggoglet, gesucht und gelesen, finde aber weder den Fehler, noch eine Lösung :cry:

Re: Darksky.net

Verfasst: 25. Apr 2020 17:49
von PeterA
Also wie in meinem Screenshot zu sehen gibt es einen Channel für die 3h Vorhersage.
Ich habe mal ein zweites Test Item auf diesen Channel in einer Items Datei verlinkt. Funktioniert Prima

Code: Alles auswählen

Number LocalWeatherAndForecast_ForecastHours03_ForecastedTemperature_Test "Temperatur in 3h [%.1f °C]" {channel="openweathermap:weather-and-forecast:cf12b36a:local:forecastHours03#temperature"}
Auszug aus dem Log:

Code: Alles auswählen

2020-04-25 17:47:38.574 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'owm.items'

==> /var/log/openhab2/events.log <==

2020-04-25 17:47:38.609 [.ItemChannelLinkAddedEvent] - Link 'LocalWeatherAndForecast_ForecastHours03_ForecastedTemperature_Test-openweathermap:weather-and-forecast:cf12b36a:local:forecastHours03#temperature' has been added.

2020-04-25 17:47:38.619 [vent.ItemStateChangedEvent] - LocalWeatherAndForecast_ForecastHours03_ForecastedTemperature_Test changed from NULL to 12.58

Re: Darksky.net

Verfasst: 25. Apr 2020 20:21
von int5749
Ich habe nun mal in den Logs geforscht und es kommt eine Fehlermeldung, sobald ich das Thing initialisiere, z.B. durch Update und speichern der *.things
2020-04-25 13:30:25.749 [WARN ] [mon.registry.AbstractManagedProvider] - Could not update element with key openweathermap:weather-and-forecast:api:local in ManagedThingProvider, because it does not exists.
2020-04-25 13:30:25.780 [WARN ] [mon.registry.AbstractManagedProvider] - Could not update element with key openweathermap:uvindex:api:local in ManagedThingProvider, because it does not exists.
2020-04-25 16:38:55.572 [WARN ] [mon.registry.AbstractManagedProvider] - Could not update element with key openweathermap:weather-and-forecast:api:local in ManagedThingProvider, because it does not exists.
2020-04-25 16:38:55.572 [WARN ] [mon.registry.AbstractManagedProvider] - Could not update element with key openweathermap:uvindex:api:local in ManagedThingProvider, because it does not exists.
2020-04-25 16:39:55.603 [WARN ] [mon.registry.AbstractManagedProvider] - Could not update element with key openweathermap:weather-and-forecast:api:local in ManagedThingProvider, because it does not exists.
2020-04-25 16:39:55.603 [WARN ] [mon.registry.AbstractManagedProvider] - Could not update element with key openweathermap:uvindex:api:local in ManagedThingProvider, because it does not exists.
Dies war mir so bisher nicht aufgefallen und hatte ich nicht vermutet, da ja die "normalen" Wetterdaten funktionieren. Also "Wetter aktuell", nur keine Vorhersage :-/ Habt ihr einen Tipp?

Re: Darksky.net

Verfasst: 25. Apr 2020 20:34
von PeterA
Hier kann ich vermutlich nicht weiterhelfen da ich mein OpenWeatherMap "thing" Automatisch über das Binding über die PaperUI erstellt habe.

Re: Darksky.net

Verfasst: 25. Apr 2020 22:05
von EmptySoft
Die gefühlte Außentemperatur ist doch da, oder meinst Du in der Vorhersage?

Re: Darksky.net

Verfasst: 26. Apr 2020 02:43
von peter-pan
int5749 hat geschrieben: 25. Apr 2020 20:21 Habt ihr einen Tipp?
Du solltest mal deine Einstellungen in der .things-Datei anschauen. So wie ich das sehe bekommst du natürlich auch nur für 3 Stunden vorhergesagt. Wenn du mehr Werte haben willst, musst du die Parameter ändern.

Hier mal meine .things-Datei zum Vergleich:

Code: Alles auswählen

Bridge openweathermap:weather-api:api "OpenWeatherMap Account"     [apikey="dein-ApiKey", refreshInterval=30, language="de"] {
     Thing weather-and-forecast local "Local Weather And Forecast" [location="41.xxxxxx,6.yyyyyyyyy,502", forecastHours=120, forecastDays=0]
     Thing uvindex              local "Local UV Index"             [location="41.xxxxxx,6.yyyyyyyyy", forecastDays=7]
}
Mit dem Bereich bis 120 Stunden kannst du also eine 5-Tages-Vorschau machen, allerdings mit der Einschränkung, dass die Werte halt nur für einen 3-Stunden-Abschnitt gelten. Kumulierte Tages-Werte gibt es in der freien Version von OWM allerdings nicht. Die musst du halt selbst per Rule ermitteln oder mal ein bisschen googeln.

Im englischen Forum gibt es eine Version, die sowohl alle Items anlegt und auch die Aggregationen diverser Tageswerte vornimmt. Ich habe diese Version auf meiner Testmaschine im Einsatz. Voraussetzung ist aber die NGRE(Rule-Engine) von OH und eine Python/Jython Installation. Die Regel selber ist ein Python-Script. Aber dazu musst du dich halt mit Python beschäftigen. Das Anlegen der Items fällt zwar weg, aber du hast dann halt die ganzen Items in der PaperUI(JsonDB). Mit VSC hast du die aber genauso schnell angelegt.

Inzwischen ist auch ein Channel für die gefühlte Temperatur in das OWM-Binding dazu gekommen. Du kanst aber auch die weiter vorn, von @PeterA beschriebene Regel verwenden, die ermittelt momentan den aktuellen Windchill(so ähnlich wie die gefühlte Temperatur) und einen Vorhersagewert in 3 Stunden. Das kann aber leicht erweitert werden.

Falls Interesse besteht, kannst du auch von mir eine Regel bekommen, die verschiedene Durchschnittstageswerte(24 Std) für Temperatur, Regen, Schnee, Luftfeuchtigkeit und Luftdruck berechnet und die Höchst/Tiefst-Temperatur-Werte ermittelt. Hat aber zwei Nachteile. Du brauchst dazu auch die entsprechende .Items-Datei und die Regel selber hat auch eine kleine Macke (Lambda), allerdings hab ich kaum Probleme damit, d.h. sie stürzt nicht ab. Es hängt einfach damit zusammen, dass ich Variablen in der Regel definiere und dann innerhalb einer Lambda-Funktion verwende, was man normalerweise, aber nicht tun sollte ;)

Re: Darksky.net

Verfasst: 26. Apr 2020 11:47
von PeterA
Ich habe gerade gesehen das es auch diesen Channel gibt:

Code: Alles auswählen

Image  LocalWeatherAndForecast_Current_Icon              "Wetterbild"        {channel="openweathermap:weather-and-forecast:cf12b36a:local:current#icon"}
Und so habe ich es in die Sitemap eingebunden:

Code: Alles auswählen

        Image  item=LocalWeatherAndForecast_Current_Icon                          label="Wetterbild"
Leider sieht das in der mobilen Ansicht nicht so toll aus:
Bild