Seite 2 von 2

Re: Darstellung

Verfasst: 27. Sep 2020 18:00
von OliverCJ
Ähm, Frau Spiller schreibt das schon genauso in ihrem Buch!

Sie gibt aber auch ziemlich am Anfang den Tipp, zwei Sitemap Dateien zu verwenden. Eine die nur auf Gruppen basiert und die dann quasi die Rohdaten der Items anzeigt und eine, die man komplett manuell erstellt und in der man dann z. B. die Transformationen nutzt.

Ich muss sagen, dass ich mit dem Vorgehen sehr gut fahre.

Peter hat dir jetzt halt den Weg gezeigt, die Transformation direkt in der item Definition zu verwenden.

Geht, aber damit siehst du halt in dem item nie den Wert, wie ihn der Channel zur Verfügung stellt, sondern immer direkt die Übersetzung...

Gesendet von meinem SM-N975F mit Tapatalk


Re: Darstellung

Verfasst: 27. Sep 2020 19:10
von peter-pan
OliverCJ hat geschrieben: 27. Sep 2020 18:00 Geht, aber damit siehst du halt in dem item nie den Wert
... stimmt, aber man kann's auch anders lösen:

Code: Alles auswählen

Number:Angle localHourlyForecastWindDirection_00  "Aktuelle Windrichtung in Grad[%d %unit%]"      <wind>    (gOWM1) { channel="openweathermap:weather-and-forecast:api:local:current#wind-direction" }
Number:Angle localHourlyForecastWindDirNamed_00   "Aktuelle Windrichtung [SCALE(wind.scale):%s]"  <compass> (gOWM1) { channel="openweathermap:weather-and-forecast:api:local:current#wind-direction" }
Ich habe zwei Items für den Channel definiert, einen mit und einen ohne Transformation.

Und um das ganze noch ein bisschen aufzupeppen, hab ich auch noch eine Regel, die die Transformation machen kann und gleich noch ein paar Fehler abfängt. Das ist allerdings geklaut ;) . Der Original-Link ist mit dabei. Also, dem Spieltrieb freien Lauf lassen.

Code: Alles auswählen

rule "Update simplified wind direction"
when
    Item Dummy4x changed to ON or
    Item localHourlyForecastWindDirection_00 changed
then
    val String ruleTitle = "OWMWindDirection"
    var String status = ""
    var boolean error = true
    
    if (localHourlyForecastWindDirection_00.state == NULL) {
        status = "NULL"
        error = true
        logInfo(ruleTitle, "Var status has state '{}' + {} ",  status, error)
        return;
    }
    if (localHourlyForecastWindDirection_00.state == "UNDEF") {
        status = "UNDEF"
        error = true
        logInfo(ruleTitle, "Var status has state '{}'",  status)
        localHourlyForecastWindDirNamed1_00.postUpdate ("Es gibt keinen Wind")
        return;
    }
    if (localHourlyForecastWindDirection_00.state instanceof Number) {
        status = transform("SCALE", "wind.scale", localHourlyForecastWindDirection_00.state.toString())
        error = false
//        logInfo(ruleTitle, "Var status has state '{}'",  status)
        localHourlyForecastWindDirNamed1_00.postUpdate(status)
    } else { // Unexpected state type
        status = "(invalid: " + localHourlyForecastWindDirection_00.state.toString() + ")"
        logInfo(ruleTitle, "Unexpect status '{}'",  status)
        localHourlyForecastWindDirNamed1_00.postUpdate(status)
    }
    
end
//  https://community.openhab.org/t/scale-transform-and-undef-could-not-transform-undef/68845/3
//  shutterfreak  Olivier Biot
/*  Original - Rule
Ich hab hier jetzt meine Item-Namen stehen lassen, die musst du natürlich anpassen.

Edit:Hab's grad noch mal getestet. Im VSC wird auch mit Scale-Transformation der Originalwert, beim Überfahren mit der Maus, angezeigt.

Re: Darstellung

Verfasst: 27. Sep 2020 20:44
von Innocent
OliverCJ hat geschrieben: 27. Sep 2020 18:00 Ähm, Frau Spiller schreibt das schon genauso in ihrem Buch!

Sie gibt aber auch ziemlich am Anfang den Tipp, zwei Sitemap Dateien zu verwenden. Eine die nur auf Gruppen basiert und die dann quasi die Rohdaten der Items anzeigt und eine, die man komplett manuell erstellt und in der man dann z. B. die Transformationen nutzt.

Ich muss sagen, dass ich mit dem Vorgehen sehr gut fahre.

Peter hat dir jetzt halt den Weg gezeigt, die Transformation direkt in der item Definition zu verwenden.

Geht, aber damit siehst du halt in dem item nie den Wert, wie ihn der Channel zur Verfügung stellt, sondern immer direkt die Übersetzung...

Gesendet von meinem SM-N975F mit Tapatalk
Ok. Dann muß ich das Buch nochmal anfangen... 🤣

Re: Darstellung

Verfasst: 28. Sep 2020 08:51
von OliverCJ
Seite 367/368. Hier wird die Transformation direkt bei der item-Definition verwendet und erklärt. Im oberen Absatz auf 368 wird aber auch erläutert, dass es sowohl bei der Item-Definition als auch in der Sitemap eingesetzt werden kann (nicht beides gleichzeitig!)

Re: Darstellung

Verfasst: 28. Sep 2020 09:06
von Innocent
Danke dir.
So weit bin ich noch nicht.
Recht am Anfang habe ich davon gelesen und wollte es umsetzen. Deshalb meine Verwunderung.

Re: Darstellung

Verfasst: 28. Sep 2020 09:11
von OliverCJ
Weiter vorne ist es schon mal bei der Einbindung von Wetterdaten erklärt. Schau da mal auf Seite 126 unten, der graue Kasten und dann die folgenden zwei oder drei Absätze auf der nächsten Seite...

Re: Darstellung

Verfasst: 28. Sep 2020 09:50
von udo1toni

OliverCJ hat geschrieben:Seite 367/368. Hier wird die Transformation direkt bei der item-Definition verwendet und erklärt. Im oberen Absatz auf 368 wird aber auch erläutert, dass es sowohl bei der Item-Definition als auch in der Sitemap eingesetzt werden kann (nicht beides gleichzeitig!)
Nun ja. Das mit dem gleichzeitig ist aber relativ... Man kann durchaus an beiden Stellen gleichzeitig einen (auch den gleichen) Transformation Service nutzen. Nur halt mit unterschiedlichen Konfigurationen. Z.B. im Binding aus off oder 0 ein OFF machen und in der Sitemap aus dem OFF ein Aus.

Gesendet von meinem SM-G973F mit Tapatalk


Re: Darstellung

Verfasst: 28. Sep 2020 10:12
von OliverCJ
Stimmt, sorry. War unglücklich ausgedrückt von mir...
Man kann das an beiden Stellen gleichzeitig tun, die Frage ist halt, wie sinnvoll ist das und erschwert es im Zweifel die Fehlersuche, wenn an unterschiedlichen Stellen unterschiedliche Dinge definiert sind.
Daher bin ich recht schnell auf den Zug aufgesprungen, in den Items die “Rohdaten“ zu belassen und Transformationen nur in der Sitemap anzuwenden.

Gesendet von meinem SM-N975F mit Tapatalk


Re: Darstellung

Verfasst: 28. Sep 2020 10:51
von udo1toni
Also, im Binding verwende ich die Transformation um in die von openHAB verwendete Form zu kommen. So wie in meinem Beispiel oben.
In der Sitemap wird aus dem Standard eine gefällige Ausgabe gemacht, also z.B. Deutsch statt Englisch, oder die Windrichtung in Worten statt Gradangaben.

Gesendet von meinem SM-G973F mit Tapatalk


Re: Darstellung

Verfasst: 9. Okt 2020 14:12
von Innocent
Die Windrichtung wird mir nun wie gewünscht dargestellt, vielen Dank !