Openhab 3 LCN (Temperatur und Fensterkontakt)

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

retai
Beiträge: 21
Registriert: 13. Apr 2021 13:20
Answers: 0

Openhab 3 LCN (Temperatur und Fensterkontakt)

Beitrag von retai »

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

oh73
Beiträge: 302
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: Openhab 3 LCN (Temperatur und Fensterkontakt)

Beitrag von oh73 »

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!
OH 4.3.0 auf HP 26o G1 Dm Mini Pc mit MX_Linux

retai
Beiträge: 21
Registriert: 13. Apr 2021 13:20
Answers: 0

Re: Openhab 3 LCN (Temperatur und Fensterkontakt)

Beitrag von retai »

Hallo, danke für den Hinweis, dass Item ist als Number und nicht als Number:temperture hinterlegt, ich denke meine regel ist schlichtweg falsch :)

oh73
Beiträge: 302
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: Openhab 3 LCN (Temperatur und Fensterkontakt)

Beitrag von oh73 »

bin nicht der große openhab Spezialist,
aber denke der Fehler ist hier:
Thermostatwohnzimmer = (TSWZ.state as number-1000)/10
Thermostatwohnzimmer kannst du nicht einfach so befüllen,
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

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 243
Wohnort: Darmstadt

Re: Openhab 3 LCN (Temperatur und Fensterkontakt)

Beitrag von udo1toni »

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:

Code: Alles auswählen

rule "temp"
when
    Item TSWZ received update
then
    Thermostatwohnzimmer.postUpdate(((TSWZ.state as Number)-1000)/10)
end
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 ;)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

retai
Beiträge: 21
Registriert: 13. Apr 2021 13:20
Answers: 0

Re: Openhab 3 LCN (Temperatur und Fensterkontakt)

Beitrag von retai »

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.

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 243
Wohnort: Darmstadt

Re: Openhab 3 LCN (Temperatur und Fensterkontakt)

Beitrag von udo1toni »

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

Benutzeravatar
udo1toni
Beiträge: 15249
Registriert: 11. Apr 2018 18:05
Answers: 243
Wohnort: Darmstadt

Re: Openhab 3 LCN (Temperatur und Fensterkontakt)

Beitrag von udo1toni »

Ach so...

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
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.

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 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
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

retai
Beiträge: 21
Registriert: 13. Apr 2021 13:20
Answers: 0

Re: Openhab 3 LCN (Temperatur und Fensterkontakt)

Beitrag von retai »

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 :lol:

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.

retai
Beiträge: 21
Registriert: 13. Apr 2021 13:20
Answers: 0

Re: Openhab 3 LCN (Temperatur und Fensterkontakt)

Beitrag von retai »

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

Antworten