Ich habe vier davon für den Anfang aber werde die aber wohl bei den restlichen Fenstern nicht mehr einsetzen, aus diversen Gründen. Mal abgesehen davon, das man damit in Kombination mit Openhab nur zusätzliche Arbeit hat, lassen die sich auch schwerer verbauen als ich dachte. Bei allen Fenstern musste ich den viereckigen Stift vom Drehgriff erst mal gerade feilen, damit das gepasst hat, aber bei manchen Fenstern passen die auch gar nicht, weil die runden Löcher für manche Systeme zu klein sind. Was hingegen immer Problemlos gepasst hat ist der Fenster- und Türkontakt verdeckter Einbau und der ist auch noch 10 € billiger. Ich denke ich nehme bei den weiteren Fenstern lieber den.
OH3: "Mapping" für Drehriffsensoren mit drei Zuständen
-
- Beiträge: 216
- Registriert: 12. Nov 2020 10:26
Re: OH3: "Mapping" für Drehriffsensoren mit drei Zuständen
-
- Beiträge: 216
- Registriert: 12. Nov 2020 10:26
Re: OH3: "Mapping" für Drehriffsensoren mit drei Zuständen
Ich habe mal in Javascript ein kleines Skript geschieben, dass diese drei Zustände auf ein Contact Item mit zwei Zuständen abbildet. Das ist wahrscheinlich nicht das, was ich auf dauer möchte, aber ich frage mich warum das nicht funktioniert.
Laut den Debugausgaben funktioniert da alles, bis auf die SendCommand-Aufrufe:
Code: Alles auswählen
var logger = Java.type('org.slf4j.LoggerFactory').getLogger('org.openhab.rule.' + ctx.ruleUID);
var Proxyitemname = event.itemName.replace("State", "Contact");
logger.info("triggered "+ event.itemState + " " + Proxyitemname);
var proxyitem = itemRegistry.getItem(Proxyitemname);
if(proxyitem) {
logger.info("item found");
if(event.itemState == "CLOSED"){
logger.info("CLOSED");
proxyitem.sendCommand("CLOSED");
}
else if(event.itemState == "OPEN"){
logger.info("OPEN");
proxyitem.sendCommand("OPEN");
}
else if(event.itemState == "TILTED"){
logger.info("TILTED");
proxyitem.sendCommand("OPEN");
}
}
else {
logger.info("item not found");
}
Irgendetwas muss ich da grundlegend falsch machen. Haben die Items keine "SendCommand"-Methode? Aber die Autocompletion hat mir das geliefert.Script execution of rule with UID 'FenstergriffsensorenTranformation' failed: TypeError: proxyitem.sendCommand is not a function in <eval> at line number 23
- udo1toni
- Beiträge: 15269
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: OH3: "Mapping" für Drehriffsensoren mit drei Zuständen
Der Punkt ist, dass Contact per Definition zwei Zustände hat, offen oder geschlossen. Es wäre in der Tat sehr schön, wenn es ein ENUM Item gäbe. Ob die Entwickler da offen sind, weiß ich nicht, das Contact Item hat einen definierten Datentyp namens OpenClosedType, der kennt nur exakt zwei Zustände. Contact ist eben keine beliebie Darstellung vom Typ ENUM, sondern ein Item, um einen Binäreingang abzubilden.Anbeku hat geschrieben: ↑15. Feb 2021 09:30 Ich baue da mal was zusammen. Ich frage mich allerdings, warum der Contact in Openhab3 nicht einfach drei Zustände hat. Wenn es Icons mit drei Zuständen gibt, hat man das Problem ja offenbar schon erkannt. Es dürfte ja auch eigentlich nichts kaputt gehen, wenn man dem ENUM einfach einen dritten Wert hinzufügt, der sonst einfach nicht benutzt wird. Aber das müsste ich wohl die Entwickler fragen.
Es wäre nicht das erste Mal, dass ein neuer Itemtyp eingeführt wird, da das mit vergleichsweise viel Arbeit verbunden ist, wird oft versucht, das abzuschmettern, aber gerade für die vorliegende Anwendung wäre so eine Erweiterung ja äußerst sinnvoll, also nur zu

openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet
- udo1toni
- Beiträge: 15269
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: OH3: "Mapping" für Drehriffsensoren mit drei Zuständen
Ein Contact Item hat in der Tat kein sendCommand. Es ist per Definition nur ein Empfänger. Du solltest aber mit postUpdate den Status setzen können. Die erlaubten Status sind OPEN, CLOSED, NULL und UNDEF (wobei die beiden letzten vom System verwendet werden, also eigentlich nicht zur Verfügung stehen). OPEN ist etwas anderes als "OPEN"Anbeku hat geschrieben: ↑15. Feb 2021 13:10 Ich habe mal in Javascript ein kleines Skript geschieben, dass diese drei Zustände auf ein Contact Item mit zwei Zuständen abbildet. Das ist wahrscheinlich nicht das, was ich auf dauer möchte, aber ich frage mich warum das nicht funktioniert.
Laut den Debugausgaben funktioniert da alles, bis auf die SendCommand-Aufrufe:Irgendetwas muss ich da grundlegend falsch machen. Haben die Items keine "SendCommand"-Methode? Aber die Autocompletion hat mir das geliefert.Script execution of rule with UID 'FenstergriffsensorenTranformation' failed: TypeError: proxyitem.sendCommand is not a function in <eval> at line number 23

openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet
-
- Beiträge: 216
- Registriert: 12. Nov 2020 10:26
Re: OH3: "Mapping" für Drehriffsensoren mit drei Zuständen
Ah Ok, ich fürchte ich habe den Unterschied doch nicht so ganz verstanden. Aber mit postUpdate kann ich trotzdem mit dem StateChange etwas triggern?
Ja letzteres ist ein String und ersteres etwas anderes, wobei da hört es bei mir momentan mit dem Verständnis auf.
-
- Beiträge: 216
- Registriert: 12. Nov 2020 10:26
Re: OH3: "Mapping" für Drehriffsensoren mit drei Zuständen
Ich hab es jetzt geänder in
Das funktioniert aber leider genau so wenig.
Code: Alles auswählen
proxyitem.postUpdate(OPEN);
Script execution of rule with UID 'FenstergriffsensorenTranformation' failed: TypeError: proxyitem.postUpdate is not a function in <eval> at line number 23
- udo1toni
- Beiträge: 15269
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: OH3: "Mapping" für Drehriffsensoren mit drei Zuständen
Dann ist proxyitem kein vollständiges Item. Der Code sieht aber erst mal gut aus (wobei ich mich mit JavaScript noch nicht weiter beschäftigt habe).
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet
-
- Beiträge: 216
- Registriert: 12. Nov 2020 10:26
Re: OH3: "Mapping" für Drehriffsensoren mit drei Zuständen
Das proxyitem habe ich über die Gui als Point angelegt, das sollte eigentlich funktionieren. Ist natürlich kein Channel verknüpft. ich werde mal weiter forschen, wenn ich etwas Zeit finde.
- udo1toni
- Beiträge: 15269
- Registriert: 11. Apr 2018 18:05
- Wohnort: Darmstadt
Re: OH3: "Mapping" für Drehriffsensoren mit drei Zuständen
Nein, ich meine im Code. proxitem ist eine Variable, die für ein Item steht. Gewöhnlich sollte die Variable ein Objekt sein, welches alle Eigenschaften und Methoden erbt. Das scheint aber schief zu gehen, weshalb proxitem nun weder postUpdate noch sendCommand unterstützt.
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet
-
- Beiträge: 216
- Registriert: 12. Nov 2020 10:26
Re: OH3: "Mapping" für Drehriffsensoren mit drei Zuständen
Ich habe das jetzt geändert in
Damit funktioniert es. Offenbar müssen die Aktionen alle über das events Object angestoßen werden, selbst wenn man das Item schon in der Hand hält.
Code: Alles auswählen
events.postUpdate(Proxyitemname, CLOSED)