Openhab 3 LCN (Temperatur und Fensterkontakt)
-
- Beiträge: 21
- Registriert: 13. Apr 2021 13:20
Openhab 3 LCN (Temperatur und Fensterkontakt)
Hallo zusammen,
nach einiger Zeit habe ich mich nun doch versucht von OH 2 auf OH 3 umzustellen. Soweit lief es ganz gut, nur 2 Baustellen versuche ich noch zu lösen. Wie so viele habe ich auch Probleme mit Temperatur und Fensterkontakten.
1.) Temperaturanzeige
Die Temperatur bekomme ich zwar als Item mit einem Wert eingelesen, allerdings vierstellig (1214). Nun versuche ich mit einer Rule diesen Wert auf 21,4 zu ändern. Allerding gibt es mir in der LOG Datei immer die Fehlermeldung "Script execution of rule... failed: could not cast 1214 to void"
Item für abgreifen der Temperatur lautet TSWZ und ist als number konfiguriert (wert wird auch in OH dargestellt)
Item für Umrechnung und Übergabe an Alexa lautet Thermostatwohnzimmer und ist als number konfiguriert
Noch Besser wäre, wenn man Temperaturwerte umrechnen könnte und nicht aus der Temperatur zuerst eine Nummer erstellen muss.
Hier die Rule:
rule "temp"
when
Item TSWZ received update
then
Thermostatwohnzimmer = (TSWZ.state as number-1000)/10
end
Ich denke, da Item als Startwert immer 0 haben, muss ich hier irgendwelche Variablen anders definieren, hat hier jemand erfahrungen?
2.) Ich wollte mir in Openhab auch die Fensterkontakte einblenden, jedoch schaffe ich hier gar nichts in OH anzuzeigen.
Weder wenn ich die LED abfrage, die Logik oder den Binärsensor, im OH ändert sich einfach der Wert nicht.
Ich habe vom LCN Binding die beiden Beispiele als LED oder Logic Operation ohne Erfolg versucht.
Hat hier jemand so etwas schon am laufen und kann mir einen Tipp geben?
Danke
Retai
nach einiger Zeit habe ich mich nun doch versucht von OH 2 auf OH 3 umzustellen. Soweit lief es ganz gut, nur 2 Baustellen versuche ich noch zu lösen. Wie so viele habe ich auch Probleme mit Temperatur und Fensterkontakten.
1.) Temperaturanzeige
Die Temperatur bekomme ich zwar als Item mit einem Wert eingelesen, allerdings vierstellig (1214). Nun versuche ich mit einer Rule diesen Wert auf 21,4 zu ändern. Allerding gibt es mir in der LOG Datei immer die Fehlermeldung "Script execution of rule... failed: could not cast 1214 to void"
Item für abgreifen der Temperatur lautet TSWZ und ist als number konfiguriert (wert wird auch in OH dargestellt)
Item für Umrechnung und Übergabe an Alexa lautet Thermostatwohnzimmer und ist als number konfiguriert
Noch Besser wäre, wenn man Temperaturwerte umrechnen könnte und nicht aus der Temperatur zuerst eine Nummer erstellen muss.
Hier die Rule:
rule "temp"
when
Item TSWZ received update
then
Thermostatwohnzimmer = (TSWZ.state as number-1000)/10
end
Ich denke, da Item als Startwert immer 0 haben, muss ich hier irgendwelche Variablen anders definieren, hat hier jemand erfahrungen?
2.) Ich wollte mir in Openhab auch die Fensterkontakte einblenden, jedoch schaffe ich hier gar nichts in OH anzuzeigen.
Weder wenn ich die LED abfrage, die Logik oder den Binärsensor, im OH ändert sich einfach der Wert nicht.
Ich habe vom LCN Binding die beiden Beispiele als LED oder Logic Operation ohne Erfolg versucht.
Hat hier jemand so etwas schon am laufen und kann mir einen Tipp geben?
Danke
Retai
-
- Beiträge: 302
- Registriert: 7. Mär 2021 14:49
Re: Openhab 3 LCN (Temperatur und Fensterkontakt)
zu 1.
hatte ein ähnliches Problem,
bei mir war es das ich mit der Watt angabe einer FB-Steckdose rechen wollte, was auch nicht funktionieren wollte!
der Trick dabei ist das Item darf nicht als Number:watt , bei dir Number:temperature eingestellt sein, einfach als data Type nur Number nehmen!
dann kann man mit der Zahl rechnen!
hatte ein ähnliches Problem,
bei mir war es das ich mit der Watt angabe einer FB-Steckdose rechen wollte, was auch nicht funktionieren wollte!
der Trick dabei ist das Item darf nicht als Number:watt , bei dir Number:temperature eingestellt sein, einfach als data Type nur Number nehmen!
dann kann man mit der Zahl rechnen!
OH 4.3.0 auf HP 26o G1 Dm Mini Pc mit MX_Linux
-
- Beiträge: 21
- Registriert: 13. Apr 2021 13:20
Re: Openhab 3 LCN (Temperatur und Fensterkontakt)
Hallo, danke für den Hinweis, dass Item ist als Number und nicht als Number:temperture hinterlegt, ich denke meine regel ist schlichtweg falsch 

-
- Beiträge: 302
- Registriert: 7. Mär 2021 14:49
Re: Openhab 3 LCN (Temperatur und Fensterkontakt)
bin nicht der große openhab Spezialist,
aber denke der Fehler ist hier:
das sollte mit
Thermostatwohnzimmer.postUpdate((TSWZ.state as number-1000)/10)
eventuell gehen, bin aber nicht sicher ob das as number gebraucht wird? ist ja schon als Number!
ich hab das etwas anders mit Hilfe einer Variablen gemacht,
könnte dann so aussehen,
var hilfe = (TSWZ.state as number-1000)/10
oder
var hilfe = (TSWZ.state) /100
und dann
Thermostatwohnzimmer.postUpdate(hilfe)
aber denke der Fehler ist hier:
Thermostatwohnzimmer kannst du nicht einfach so befüllen,Thermostatwohnzimmer = (TSWZ.state as number-1000)/10
das sollte mit
Thermostatwohnzimmer.postUpdate((TSWZ.state as number-1000)/10)
eventuell gehen, bin aber nicht sicher ob das as number gebraucht wird? ist ja schon als Number!
ich hab das etwas anders mit Hilfe einer Variablen gemacht,
könnte dann so aussehen,
var hilfe = (TSWZ.state as number-1000)/10
oder
var hilfe = (TSWZ.state) /100
und dann
Thermostatwohnzimmer.postUpdate(hilfe)
OH 4.3.0 auf HP 26o G1 Dm Mini Pc mit MX_Linux
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Openhab 3 LCN (Temperatur und Fensterkontakt)
Der Punkt ist, dass es sowas wie Punkt vor Strich auch in openHAB gibt, aber nicht bei allen Berechnungen funktioniert das wie sich der Anwender das vorstellt.
Dir fehlen ein paar Klammern. Außerdem kannst Du nicht einfach einem Item einen Wert mittels = zuweisen, das ist ein Item, keine Variable.
Also Rule 1:
Ich vermute mal, dass Du mehrere gleichartige Sensoren hast. Dann wäre es höchst sinnvoll, die Itemnamen so zu gestalten, dass man sie voneinander ableiten kann. Dann kannst Du alle Items in eine Gruppe packen und kommst mit einer Rule für alle Sensoren aus.
Eventuell würde es sogar reichen, eine JavaScript Transformation einzurichten, dann kommst Du komplett ohne Rule aus, da kommt es aber drauf an, ob Du die Transformation schon als Input einrichten kannst, also noch bevor der Wert im Item landet. Ich hab keine Ahnung von LCN...
Zu Punkt 2 kann ich nichts sagen, wie oben erwähnt habe ich von LCN keine Ahnung, letztlich musst Du aber lediglich die passenden Things anlegen und korrekt konfigurieren

Also Rule 1:
Code: Alles auswählen
rule "temp"
when
Item TSWZ received update
then
Thermostatwohnzimmer.postUpdate(((TSWZ.state as Number)-1000)/10)
end
Eventuell würde es sogar reichen, eine JavaScript Transformation einzurichten, dann kommst Du komplett ohne Rule aus, da kommt es aber drauf an, ob Du die Transformation schon als Input einrichten kannst, also noch bevor der Wert im Item landet. Ich hab keine Ahnung von LCN...
Zu Punkt 2 kann ich nichts sagen, wie oben erwähnt habe ich von LCN keine Ahnung, letztlich musst Du aber lediglich die passenden Things anlegen und korrekt konfigurieren

openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 21
- Registriert: 13. Apr 2021 13:20
Re: Openhab 3 LCN (Temperatur und Fensterkontakt)
Hallo zusammen,
danke für die Tipps, leider sind bis jetzt alle erfolglos.
ich erhalte diese meldung wenn ich udos vorschlag probiere.
Wenn ich eine Variable definiere und der einen fixen Wert zuweise, wird der Wert richtig im openhab übergeben.
Ich habe dir Regel nicht direkt im openhab 3.1.0 M2 erstellt, sondern als eigene temp.rules im rules ordner abgelegt.
2021-04-13 19:21:53.928 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'temp.rules'
2021-04-13 19:22:00.973 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'temp-1' failed: Could not cast 1219 to void; line 5, column 39, length 20 in temp
@udo, ja ich werde mehrere items dann anlegen, wenn dieses mal läuft
von Gruppen und "javascrip" lasse ich vorerst mal die finger, da mir das immer gleich zu kompliziert wird, bin schon froh, dass ich es bis hierher geschafft habe.
danke für die Tipps, leider sind bis jetzt alle erfolglos.
ich erhalte diese meldung wenn ich udos vorschlag probiere.
Wenn ich eine Variable definiere und der einen fixen Wert zuweise, wird der Wert richtig im openhab übergeben.
Ich habe dir Regel nicht direkt im openhab 3.1.0 M2 erstellt, sondern als eigene temp.rules im rules ordner abgelegt.
2021-04-13 19:21:53.928 [INFO ] [el.core.internal.ModelRepositoryImpl] - Loading model 'temp.rules'
2021-04-13 19:22:00.973 [ERROR] [internal.handler.ScriptActionHandler] - Script execution of rule with UID 'temp-1' failed: Could not cast 1219 to void; line 5, column 39, length 20 in temp
@udo, ja ich werde mehrere items dann anlegen, wenn dieses mal läuft

- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Openhab 3 LCN (Temperatur und Fensterkontakt)
oh ja, das kommt davon, wenn man einfach Copy & Paste nutzt. Das Wort Number muss groß geschrieben werden...
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
- udo1toni
- Beiträge: 15249
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: Openhab 3 LCN (Temperatur und Fensterkontakt)
Ach so...
Sooo schwer ist das nicht mit den Gruppen:
Alle Items sind in zwei Gruppen zusammengefasst. Die ankommenden Items haben als Endung das In, die Items für die Sitemap haben das Out als Endung. Der mittlere Teil des Namens muss für beide zusammengehörenden Items identisch sein und sich für alle Sensoren unterscheiden.
Die erste Zeile bestimmt den Namensteil, der den Sensor definiert.
Die zweite Zeile berechnet den Wert.
Die dritte Zeile sucht das passende Item aus der zweiten Gruppe heraus und setzt den Wert.
Die beiden ersten Zeilen könnte man natürlich auch in der dritten Zeile einbauen, das ist dann aber ziemlicher Spaghetticode.
Jedenfalls reicht es nun, die Items paarweise entsprechend dem Muster anzulegen. Es ist keine weitere Rule notwendig
Sooo schwer ist das nicht mit den Gruppen:
Code: Alles auswählen
Group gTempIn
Group gTempOut
Number Temp_Wohnzimmer_In "Wohnzimer" (gTempIn) { channel="..." }
Number Temp_Wohnzimmer_Out "Wohnzimer [%.1f°C]" (gTempOut) // kein Channel, da durch Rule aktualisiert
Number Temp_Kueche_In "Küche" (gTempIn) { channel="..." }
Number Temp_Kueche_Out "Küche [%.1f°C]" (gTempOut) // kein Channel, da durch Rule aktualisiert
Code: Alles auswählen
rule "temp Sensoren"
when
Member of gTempIn received update
then
val String strSensor = triggeringItem.name.split("_").get(1) // welcher Sensor...
val Number nSensor = ((triggeringItem.state as Number) - 1000)/10 // errechneter Wert
gTempOut.members.filter[ i | i.name.split("_").get(1) == strSensor ].head.postUpdate(nSensor) // Sensor setzen
end
Die zweite Zeile berechnet den Wert.
Die dritte Zeile sucht das passende Item aus der zweiten Gruppe heraus und setzt den Wert.
Die beiden ersten Zeilen könnte man natürlich auch in der dritten Zeile einbauen, das ist dann aber ziemlicher Spaghetticode.
Jedenfalls reicht es nun, die Items paarweise entsprechend dem Muster anzulegen. Es ist keine weitere Rule notwendig
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet
-
- Beiträge: 21
- Registriert: 13. Apr 2021 13:20
Re: Openhab 3 LCN (Temperatur und Fensterkontakt)
Guten Morgen,
das war die Lösung, da probiert man zig Varianten mit VAL und VAR und am Ende ist es die Groß und Kleinschreibung
Vielen Dank Udo, jetzt läuft es, die Gruppen werde ich mir mal in einer ruhigen Stunde ansehen, danke auch für diesen Code.
Dann muss ich jetzt nur noch mit den Fensterkontakten spielen, sobald ich hier eine Lösung finde, poste ich diese gerne noch nach, vielleicht hat hier trotzdem noch wer Erfahrungswerte.
das war die Lösung, da probiert man zig Varianten mit VAL und VAR und am Ende ist es die Groß und Kleinschreibung

Vielen Dank Udo, jetzt läuft es, die Gruppen werde ich mir mal in einer ruhigen Stunde ansehen, danke auch für diesen Code.
Dann muss ich jetzt nur noch mit den Fensterkontakten spielen, sobald ich hier eine Lösung finde, poste ich diese gerne noch nach, vielleicht hat hier trotzdem noch wer Erfahrungswerte.
-
- Beiträge: 21
- Registriert: 13. Apr 2021 13:20
Re: Openhab 3 LCN (Temperatur und Fensterkontakt)
So kurzer Zwischenstand:
Ich konnte nun auch den Fensterkontakt einbinden (Problem davor war, dass die Rückmeldung sehr träge ist >1min, daher habe ich nie lange genug gewartet, bis der Wert in Openhab angekommen ist)
Nun stellen sich für mich 2 neue Fragen:
Der Status Offen/Geschlossen ist bei mir invertiert. Gibt es eine Möglichkeit in Openhab 3 in der PaperUI diesen Status Offen/Geschlossen umzukehren oder muss ich dafür eine Regel basteln, denn nur weil ich in den Metadaten die Benennung von Open auf Close umbenenne hat ja das Item immer noch den selben status?
Dann würde ich noch gerne Alexa fragen, welche Kontakte geöffnet sind.
Wenn ich das richtig verstehe, muss ich dazu das Amazon Echo Control Binding installieren und dann eine Regel basteln wenn Echo eine Frage "welche fenster geöffnet?" dann Abfrage Werte Fensterkontakte 0 oder 1 und Rückmeldung aller Fenster mit Status 1?
Kann mir dazu noch wer eine Regel erstellen oder stelle ich mir das zu einfach vor?
danke
Ich konnte nun auch den Fensterkontakt einbinden (Problem davor war, dass die Rückmeldung sehr träge ist >1min, daher habe ich nie lange genug gewartet, bis der Wert in Openhab angekommen ist)
Nun stellen sich für mich 2 neue Fragen:
Der Status Offen/Geschlossen ist bei mir invertiert. Gibt es eine Möglichkeit in Openhab 3 in der PaperUI diesen Status Offen/Geschlossen umzukehren oder muss ich dafür eine Regel basteln, denn nur weil ich in den Metadaten die Benennung von Open auf Close umbenenne hat ja das Item immer noch den selben status?
Dann würde ich noch gerne Alexa fragen, welche Kontakte geöffnet sind.
Wenn ich das richtig verstehe, muss ich dazu das Amazon Echo Control Binding installieren und dann eine Regel basteln wenn Echo eine Frage "welche fenster geöffnet?" dann Abfrage Werte Fensterkontakte 0 oder 1 und Rückmeldung aller Fenster mit Status 1?
Kann mir dazu noch wer eine Regel erstellen oder stelle ich mir das zu einfach vor?
danke