Seite 5 von 5

Re: wechsel von Yahoo Weatherbinding und Weatherbinding

Verfasst: 27. Jan 2019 16:58
von madmike
Hallo Micha,

super Tipp werde ich gleich mal machen. Klar werde ich gerne meine Ergebnisse posten. Ohne Peter und Udo wäre ich auch nicht so weit wie heute.
Ich habe in dem letzten Jahr, seitdem ich Openhab2 nutze, viel dazu gelernt. Und ich freue mich, wenn ich auch soweit bin mein Wissen zuteilen.
Mein kleines Projekt ist auch mittlerweile weit über das Hinausgewachsen, was ich ursprünglich mal vorhatte. Und ich hoffe viele werden sich OH2 anschliessen und die Vorteile nutzen. Klar gibt es auch andere Smart-Home Projekte die super sind, aber bekanntlich ist jeder Jeck anderes. Ich persönlich finde OH2 das für mich ansprechende und verständlicheste, daher mag ich es sehr. Dennoch stoße ich auch an Grenzen und freue mich diese, mit Hilfe vieler toller User zu überschreiten und Lösungen zu finden. Yahoo hat seinen kostlosen Dienst eingestellt somit bleibt nicht viel weiter übrig als neue Wege zu gehen.
mfg
Micha

Re: wechsel von Yahoo Weatherbinding und Weatherbinding

Verfasst: 27. Jan 2019 19:53
von madmike
So kann ich mit einem freudigen lachen verkünden es läuft yiipppiiiheeeeee!!!!!! :D :D :D :D

Also mal vorab vielen Dank für Eure Ideen und Vorschläge. Bis gestern war ich am überlegen OH2 neu aufzusetzen um den Fehler auszumerzen, aber dank Micha bin ich noch auf eine andere Idee gekommen.
Also der Reihe nach, zuerst habe ich mit der Suchfunktion des VSC nachdem Begriff "WetterInEssen" gesucht um Einträge zu finden die als Item beim Start hochgeladen werden. Gefunden habe ich Einträge in der Sitemap. Dort waren sie gehighlightet "was ein Begriff" (//), damit sie unwirksam waren.
Ich habe sie gelöscht und OH2 neugestartet, leider wurden wieder die "Phantom Items" geladen. Also leider nichts.
Nun habe ich folgendes gemacht:
Ich habe zuerst wie gewohnt das OpenWeatherMap-Binding installiert.
Dann habe ich OH2 neugestartet, wieder wurden die Phantom Items geladen.
Dann habe ich das Thing angelegt und zwar orginal wie in der Beschreibung:

Code: Alles auswählen

Bridge openweathermap:weather-api:api "OpenWeatherMap Account" [apikey="be..........", refreshInterval=30, language="de"] {
    Thing weather-and-forecast local "Local Weather And Forecast" [location="5.xxxxxx,6.yyyyyy", forecastHours=120, forecastDays=0]
}
den API bekommst du mit dem Eröffnen des kostenlosen Accounts bei OWM, die Location bitte Eure Daten eingeben und darauf achten kein Komma in den Zahlen sondern Punkte zu setzen. Trennung der Werte logischerweise mit Komma.
Dies nur für OH2 Newbies, stolpert man gerne drüber.
Nun wieder in den Log geschaut und siehe da die Phantom Items werden mit Werten gefüllt.
Also bin ich in die PaperUI und habe mir dort unter Configuration - Things die Einträge angeschaut und siehe da, dort fand ich die Items, der als Phantom Items bezeichneten wieder. Also habe ich sie gelöscht. Dann Neustart...........
Und ein glückliches Grinsen war auf meinem Gesicht zu sehen.
Nächster Schritt die Items über VSC anlegen:

Code: Alles auswählen

Number:Temperature   localCurrentTemperature           "Aussentemperatur [%.1f %unit%]"      <temperature> (gTemp) { channel="openweathermap:weather-and-forecast:api:local:current#temperature" }
Number:Dimensionless localCurrentHumidity              "Luftfeuchtigkeit [%d %unit%]"        <humidity>            { channel="openweathermap:weather-and-forecast:api:local:current#humidity" }
Number:Pressure      localCurrentPressure              "Luftdruck [%.1f %unit%]"             <pressure>            { channel="openweathermap:weather-and-forecast:api:local:current#pressure" }
Number:Speed         localCurrentWindSpeed             "Windgeschwindigkeit [%.1f km/h]"     <wind>                { channel="openweathermap:weather-and-forecast:api:local:current#wind-speed" }
Number:Angle         localCurrentWindDirection         "Windrichtung [%d %unit%]"            <wind>                { channel="openweathermap:weather-and-forecast:api:local:current#wind-direction" }
Alle Items tauchten als added im Log auf.
Dann die Sitemap angepasst:

Code: Alles auswählen

Text label="Wetter" icon=sun_clouds {
        Frame label="Wetter in Essen" {
            Text item=localCurrentHumidity
            Text item=localCurrentPressure
            Text item=localCurrentWindSpeed
            Text item=localCurrentWindDirection
            //Text item=Temp_Feel    valuecolor=[>25="red",>20="orange",>15="green",<=12="blue"]
            Text item=localCurrentTemperature   valuecolor=[>27="red",>20="orange",>10="purple",>5="green",<=5="blue"]
            Text item=Temp_Terrasse valuecolor=[>25="red",>20="orange",>12="purple",>5="green",<=5="blue"]
            
Ja was soll ich sagen, es läuft super der einzige Wehmutstropfen ist das der Wert gefühlte Temperatur nicht mehr geliefert wird. Ich habe den Support von OWM angeschrieben und der schreibt noch schlechter Englisch als ich :D , spannend ist wenn ich mein Backup aktiviere und das alte Weatherbinding 1.3 bekomme ich den Wert Temp_Feel geliefert. Also scheint die Aussage so nicht ganz richtig zu sein. Ich bleib da dran !!
So, vielen Dank für Eure Unterstützung und lasst Euch den Rest des Tages gut gehen.
mfg
Micha

Re: wechsel von Yahoo Weatherbinding und Weatherbinding

Verfasst: 30. Jan 2019 09:58
von madmike
So nun läuft es seit ein paar Tagen alles gut, bis auf eine Kleinigkeit:
die Windrichtung wurde mir früher immer Buchstaben der Windrose angezeigt, nun wird sie in Grad ausgeworfen. Hat jemand eine Idee für ein entsprechende "Umwandlung"??
mfg
Micha

Re: wechsel von Yahoo Weatherbinding und Weatherbinding

Verfasst: 30. Jan 2019 11:09
von peter-pan
Hallo Micha,
schau mal hier : https://community.openhab.org/t/announc ... b/46420/36

Gruss - Peter

Re: wechsel von Yahoo Weatherbinding und Weatherbinding

Verfasst: 30. Jan 2019 11:59
von madmike
Hallo Peter,
danke für Deine schnelle Hilfe.

Hier meine Schritte für alle die es vielleicht zum ersten Mal machen:
1. installiert in der PaperUI unter Transformation die scale-Transformation.
2. Fügt im Verzeichnis transform eine neue Datei ein, ich habe sie wind.scale genannt.
wind.scale:

Code: Alles auswählen

[0..11.25[ = N - Nord
[11.25..33.75[ = NNE - NordNordOst
[33.75..56.25[ = NE - NordOst
[56.25..78.75[ = ENE - OstNordOst
[78.75..101.25[ = E - Ost
[101.25..123.75[ = ESE - OstSüdOst
[123.75..146.25[ = SE - SüdOst
[146.25..168.75[ = SSE - SüdSüdOst
[168.75..191.25[ = S - Süd
[191.25..213.75[ = SSW - SüdSüdWest
[213.75..236.25[ = SW - SüdWest
[236.25..258.75[ = WSW - WestSüdWest
[258.75..281.25[ = W - West
[281.25..303.75[ = WNW - WestNordWest
[303.75..326.25[ = NW - NordWest
[326.25..348.75[ = NNW - NordNordWest
[348.75..360] = N - Nord
3. fügt in Eurer Sitemap folgenden Eintrag ein:

Code: Alles auswählen

Text item=localCurrentWindDirection label="Windrichtung [SCALE(wind.scale):%s]"
fertig und Ihr seht die Umwandlung von den Gradzahlen in (wie bei mir) englischen und deutschen Richtungsangaben.

:D :D :D :D

Danke an Peter und alle anderen die zur Lösung beigetragen haben.

Wenn jetzt noch irgendwann die "gefühlten Temperaturen wieder laufen bin ich völlig zufrieden !!!

Re: wechsel von Yahoo Weatherbinding und Weatherbinding

Verfasst: 30. Jan 2019 14:13
von peter-pan
Hallo Micha,

das hast du super gemacht.

Du kannst das Item aber auch in deiner .items Datei anlegen und das sieht dann so aus:

Code: Alles auswählen

Number:Angle         localCurrentWindDirection               "Current wind direction/Windrichtung [%d %unit%]"             <wind>         (gOWM,gOWMOutlook)  { channel="openweathermap:weather-and-forecast:api:local:current#wind-direction" }
Number:Angle         localCurrentWindDirectionNamed          "Current wind direction Named [SCALE(wind.scale):%s]"         <compass>      (gOWM,gOWMOutlook)  { channel="openweathermap:weather-and-forecast:api:local:current#wind-direction" }
Ich hab mir einfach zwei Items angelegt. Eins, das die Richtung in Grad und ein zweites mit der Transformation. Soviel dazu.

Nun zu deiner gefühlten Kälte (nicht die von deutschen Michel sondern die Mathematische, im englischen: Windchill)

Hier habe ich eine kleine Rule:

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 Dummy3 received command ON or   // for testing only
    Item localCurrentTemperature received update
then 
    if(!(localCurrentWindSpeed.state instanceof Number))
    {
        logWarn("windchill","Windspeed not of Type Number!")
        return;
    }
    if(!(localCurrentTemperature.state instanceof Number)) 
    {
        logWarn("windchill","Temperature not of Type Number!")
        return;
    }
     var speedCurrent = Math.pow((((localCurrentWindSpeed.state as Number).floatValue) * 3.6), 0.16)
          //logInfo("windchill","Speed: " + speedCurrent)
     var tempCurrent = (localCurrentTemperature.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(localCurrentTemperature)
    {
        logInfo("windchill"," I'm still alive")
        chillCount = 0
    }
end
und dieses Item in deiner .items Datei

Code: Alles auswählen

Number               owm_localCurrentWindchill               "Current Windchill [%.1f °C]"                                 <windchill1>   (gOWM,gOWMOutlook)  // Value calculated via Rule "Windchill_Calculate"

Der Wert des Items ändert sich immer dann, wenn sich der Wert des Item localCurrentTemperature ändert. Das hast du ja auch schon angelegt.

Den Dummy-Schalter kannst du auskommentieren, oder dir auch einen Switch zum testen anlegen.

Gruss - Peter

Re: wechsel von Yahoo Weatherbinding und Weatherbinding

Verfasst: 30. Jan 2019 14:23
von madmike
Sehr geil
genau was ich brauche vielen lieben Dank
mfg
Micha

Re: wechsel von Yahoo Weatherbinding und Weatherbinding

Verfasst: 30. Jan 2019 21:09
von madmike
Hallo zusammen,
der Vollständigkeit halber,
Peter und ich in einen kleinen Fehler in der Berechnung der Windchill (gefühlten Temperatur ) entdeckt.
Die Formel zur Berechnung des Wertes ist auf die Einheiten °C bei der Temperatur und km/h bei der Windgeschwindigkeit. Wenn ihr "de" im Thing eingestellt habt bekommt Ihr automatisch die deutschen Einheiten geliefert. Die Rule war aber auf internationaler Ebene gestaltet und enthält den Formfaktor 3.6 in der Formel ( dient zum umrechnen der Einheiten m/s auf km/h) dieser Wert sollte auf 1.0 gesetzt werden. So sieht die Rule dann so aus:

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 localCurrentTemperature received update
then 
    if(!(localCurrentWindSpeed.state instanceof Number))
    {
        logWarn("windchill","Windspeed not of Type Number!")
        return;
    }
    if(!(localCurrentTemperature.state instanceof Number)) 
    {
        logWarn("windchill","Temperature not of Type Number!")
        return;
    }
     var speedCurrent = Math.pow((((localCurrentWindSpeed.state as Number).floatValue) * 1.0), 0.16) 
          //logInfo("windchill","Speed: " + speedCurrent)
     var tempCurrent = (localCurrentTemperature.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(localCurrentTemperature)
    {
        logInfo("windchill"," I'm still alive")
        chillCount = 0
    }
end
mfg und vielen Dank an alle für die super Unterstützung und die Mühe
Micha

Re: wechsel von Yahoo Weatherbinding und Weatherbinding

Verfasst: 30. Jan 2019 22:24
von peter-pan
Hallo Micha,
ein Fehler war das eigentlich nicht, da David die Rule ja für seine Mengeneinheit (m/s) geschrieben hat und ich sie sozusagen "geklaut" habe. Wenn, dann war es also meine Fehler, dass ich das nicht beachtet habe.

Aber wie wär's mit einer kleinen "Hausaufgabe", die da lautet:
Prüfe die Messeinheit und setzte in Abhänigkeit davon den Umrechnungsfaktor :mrgreen:
Wenn du's gelöst hast, gib Bescheid ;) .

Gruss - Peter