Seite 3 von 3
Re: Wie erstelle ich ein Item welches die Daten von einer Regel bekommt?
Verfasst: 11. Mär 2020 17:13
von udo1toni
Äh... Du musst da im Label SCALE schreiben, nicht Scale. Groß/Kleinschreibung ist für jeden einzelnen Buchstaben zu beachten und nicht optional, das gilt für so gut wie alles in openHAB.
Alle Transformation Services werden beim Aufruf komplett in Großbuchstaben geschrieben. Dateiendungen werden immer komplett in Kleinbuchstaben geschrieben, Befehle,Actions und Methoden werden allgemein in camelCase angegeben, z.B. sendCommand oder logInfo.
Kleiner Hinweis am Rande: Man kann seine Items, Things, Channel, Variablen usw. frei benennen, sofern man sich beim ersten Zeichen auf einen Buchstaben [a-z,A-Z] und bei allen übrigen Zeichen auf ein Zeichen aus [a-z,A-Z,0-9,_] beschränkt. Es ist allerdings guter Stil, camelCase zu verwenden. Ich bin von allgemeinen Tuts zum Thema Programmierung gewohnt, bei Variablen den Typ mit in den Namen zu schreiben, z.B. iZahl für eine Integer Variable oder strText für eine Stringvariable. Man könnte noch über Groß/Kleinschreibung zwischen Objekten und Primitives unterscheiden, aber man sollte in openHAB ohnehin möglichst auf Primitives verzichten. Entsprechend fangen bei mir die Variablen auch alle mit Kleinbuchstaben an.
Re: Wie erstelle ich ein Item welches die Daten von einer Regel bekommt?
Verfasst: 14. Mär 2020 20:35
von floeg
Vielen Dank; das war der Fehler.
Und vielen Dank für deine Hinweise
Re: Wie erstelle ich ein Item welches die Daten von einer Regel bekommt?
Verfasst: 19. Jan 2024 16:53
von lenschith
Ich habe diesen Beitrag gefunden und würde eigentlich genau das erklären was ich möchte aber bei meinen OH4.1.1 bringe ich das nicht zum laufen weder in der State Description noch als Transformation was mache ich falsch?
Das Binding für die Scale Transformation habe ich installiert und die Transformation habe ich in der UI angelegt. config:scale:windrichtungen
State Description:
im Log erhalte ich:
Code: Alles auswählen
2024-01-19 16:45:09.988 [WARN ] [e.internal.SseItemStatesEventBuilder] - Failed transforming the state '311 °' on item 'WetterinformationHeute_ForecastHours03_Winddirection' with pattern ' SCALE(config:scale:windrichtungen):%s': Couldn't transform value because transformation service of type ' SCALE' is not available.
Das Item ist als Number/Angle angelegt
Wenn ich es im Channel als Tranformation angebe bleibt das Item auf NULL
Danke
Gruß Lenschi
Re: Wie erstelle ich ein Item welches die Daten von einer Regel bekommt?
Verfasst: 19. Jan 2024 17:37
von peter-pan
lenschith hat geschrieben: ↑19. Jan 2024 16:53
State Description:
SCALE(config:scale:windrichtungen):%s
Ich habe zwar schon lange nichts mehr gemacht, aber ich meine, dass müsste etwas anders aussehen.
scale.jpg
Code: Alles auswählen
[0..11.25[ = Nord
[11.25..33.75[ = NordNordOst
[33.75..56.25[ = NordOst
[56.25..78.75[ = OstNordOst
[78.75..101.25[ = Ost
[101.25..123.75[ = OstSüdOst
[123.75..146.25[ = SüdOst
[146.25..168.75[ = SüdSüdOst
[168.75..191.25[ = Süd
[191.25..213.75[ = SüdSüdWest
[213.75..236.25[ = SüdWest
[236.25..258.75[ = WestSüdWest
[258.75..281.25[ = West
[281.25..303.75[ = WestNordWest
[303.75..326.25[ = NordWest
[326.25..348.75[ = NordNordWest
[348.75..360[ = Nord
[360..999] = Keiner weiss es
NaN=Non Numeric State presented
Aber ich befürchte, da gibt es noch ein Hindernis. Aus der Fehlermeldung entnehme ich den Wert "
311 °". Ich vermute mal es handelt sich dabei um ein UoM-Item und ob man da mit einer einfachen Scale-Transformation arbeiten kann, weiss ich nicht.
Edit: Habe gerade
gelesen, dass die Transformation nur für String-Items geht !!
Re: Wie erstelle ich ein Item welches die Daten von einer Regel bekommt?
Verfasst: 19. Jan 2024 23:06
von lenschith
Funktioniert. War ein Leerzeichen vor SCALE im Pattern. Geht auch mit UoM Number/Angle
Ich habe die Transformation über die UI angelegt dann sieht das Patter so aus:
Screenshot 2024-01-19 230252.png
Transformation:
Screenshot 2024-01-19 230538.png
Re: Wie erstelle ich ein Item welches die Daten von einer Regel bekommt?
Verfasst: 20. Jan 2024 11:05
von peter-pan
Das ist ja super

. Was ist denn der Item-Typ deines Items ?
Edit: Hab's gerade auch hin bekommen mit Item-Typ Number:Angle
Code: Alles auswählen
Number:Angle Sun_Azimuth "Azimuth" <incline> (gAstro) ["Point"] {channel="astro:sun:local:position#azimuth", stateDescription="pattern" [pattern="SCALE(wind.scale):%s"]}
Re: Wie erstelle ich ein Item welches die Daten von einer Regel bekommt?
Verfasst: 20. Jan 2024 11:33
von lenschith
Screenshot 2024-01-20 113329.png