Seite 4 von 12
Re: Fensterkontakt Status
Verfasst: 14. Sep 2021 07:32
von JohnDoe2000
JohnDoe2000 hat geschrieben: ↑14. Sep 2021 07:12
udo1toni hat geschrieben: ↑13. Sep 2021 22:19
Da liegt ein Denkfehler vor.
Die map Transformation im
Label wirkt
ausschließlich auf die Anzeige. Der Wert des Items kann so nicht beeinflusst werden. Allerdings kannst Du die Transformation gewöhnlich auch als Profile definieren, das Profile wirkt direkt auf den Wert.
OK, dann macht auch der Weg über einen Proxy Sinn. Hatte das nicht verstanden. Danke für den Hinweis. Ich werde mir dann wohl auch ein Proxy Item anlegen.
Ich habe das nun wie folgt gelöst. Da Du Vollprofi zu sein scheinst, wäre es super wenn Du mal drüber schaust oder mich auf Nachteile Hinweisen könntest.
Code: Alles auswählen
rule "Test Drehgriffsensor"
when
Item HM_ContactHandle_TerraceDoor received update
then
if(HM_ContactHandle_TerraceDoor.state.toString.compareTo("TILTED") == 0){
HM_ContactHandle_TerraceDoor.postUpdate("ajar")
}
end
Wenn der Kontakt den Status TILTED annimmt, überschreibe ich den einfach hart auf ajar. Das Icon wechselt zumindest. Vielleicht gibt es ja einen eleganteren Weg.
Re: Fensterkontakt Status
Verfasst: 14. Sep 2021 20:25
von udo1toni
Jjjj-nein.
In diesem Fall würde die Rule sogar funktionieren, allein, das Problem ist, sobald es ein Update gibt, muss die Rule den Wert erneut berechnen bzw. vergleichen.
Also, entweder Du nutzt ein Proxy Item (das bedeutet, ein 2. Item, nicht das Item, welches Du schon hast), oder Du nutzt wie erwähnt die Profiles. In Textform sähe das so aus:
Code: Alles auswählen
String HM_ContactHandle_TerraceDoor123 "Terrassentür [%s]" (gContacts) {channel="homematic:HmIP-SRH:ccu:0007DD898A405D:1#STATE"[profile="transform:MAP", function="doorHandle.map", sourceFormat="%s"]}
Das kann aber auch genauso über die UI erstellt werden.
Re: Fensterkontakt Status
Verfasst: 15. Sep 2021 07:17
von JohnDoe2000
udo1toni hat geschrieben: ↑14. Sep 2021 20:25
Jjjj-nein.
In diesem Fall würde die Rule sogar funktionieren, allein, das Problem ist, sobald es ein Update gibt, muss die Rule den Wert erneut berechnen bzw. vergleichen.
Also, entweder Du nutzt ein Proxy Item (das bedeutet, ein 2. Item, nicht das Item, welches Du schon hast), oder Du nutzt wie erwähnt die Profiles. In Textform sähe das so aus:
Code: Alles auswählen
String HM_ContactHandle_TerraceDoor123 "Terrassentür [%s]" (gContacts) {channel="homematic:HmIP-SRH:ccu:0007DD898A405D:1#STATE"[profile="transform:MAP", function="doorHandle.map", sourceFormat="%s"]}
Das kann aber auch genauso über die UI erstellt werden.
Das dachte ich mir schon. Ich habe nun folgendes in der item Datei stehen:
Code: Alles auswählen
String HM_ContactHandle_TerraceDoor "Terrassentür [%s]" (gContacts) {channel="homematic:HmIP-SRH:ccu:0007DD898A405D:1#STATE"[profile="transform:MAP", function="doorHandle.map", sourceFormat="%s"]}
Die Mapping Datei habe ich auch noch einmal testweise (die letzten beiden Werte habe ich aus Verzweiflung hinzugefügt) angepasst:
Code: Alles auswählen
CLOSED = closed
OPEN = open
TILTED = ajar
"Window status: locked" = CLOSED
Window status: locked = CLOSED
Dummerweise sehe ich das folgende in der BasicUI:
Terrassentür1.png
Das ist die ursprüngliche Anzeige als würde das Mapping nicht ziehen.
Ich denke mal, dass ich irgendwas falsch mache. Hast Du noch einen Tipp. Ich würde das gern mit dem Profil umsetzen, da ich das noch nicht kenne.
Eine Frage zu dem Proxy. Ich würde dann in einer rule auch auf "HM_ContactHandle_TerraceDoor received update" prüfen und dann jeden Status in das Proxy Item überführen und aus TILTED AJAR machen. Würde die Rule dann nicht auch immer den Status des Proxy Items neu berechnen?
Die Regel habe ich in der Zwischenzeit auch noch einmal vereinfacht:
Code: Alles auswählen
rule "Test Drehgriffsensor"
when
Item HM_ContactHandle_TerraceDoor changed to TILTED
then
HM_ContactHandle_TerraceDoor.postUpdate("ajar")
end
Mir ist der Unterschied noch nicht ganz zu dem Proxy Item klar, außer, dass ich hier den Status "schmutzig" einfach überschreibe.
Re: Fensterkontakt Status
Verfasst: 15. Sep 2021 21:26
von udo1toni
Jetzt ist die Frage, was nun tatsächlich als kompletter String vom Channel geliefert wird. So wie es aussieht, wäre das ja
Code: Alles auswählen
Window status: locked
Window status: open
Window status: tilted
Dann muss Deine map Datei anders aussehen, so:
Code: Alles auswählen
Window\ status:\ locked=CLOSED
Window\ status:\ open=OPEN
Window\ status:\ tilted=AJAR
Das heißt, das Leerzeichen muss escaped werden. Es ist möglich, dass auch der Doppelpunkt escaped werden muss, da bin ich mir nicht 100% sicher.
Re: Fensterkontakt Status
Verfasst: 15. Sep 2021 21:35
von JohnDoe2000
udo1toni hat geschrieben: ↑15. Sep 2021 21:26
Jetzt ist die Frage, was nun tatsächlich als kompletter String vom Channel geliefert wird. So wie es aussieht, wäre das ja
Code: Alles auswählen
Window status: locked
Window status: open
Window status: tilted
Dann muss Deine map Datei anders aussehen, so:
Code: Alles auswählen
Window\ status:\ locked=CLOSED
Window\ status:\ open=OPEN
Window\ status:\ tilted=AJAR
Das heißt, das Leerzeichen muss escaped werden. Es ist möglich, dass auch der Doppelpunkt escaped werden muss, da bin ich mir nicht 100% sicher.
Ok, versuche ich morgen mal. Ich hatte allerdings mal einen system out vom String gemacht. Dort kam aber nur CLOSED, OPEN und TILTED raus. …und die rule von mir funktioniert ja auch. Genauso wie das ursprüngliche Mapping. Verstehe das nicht so ganz aber werde das morgen ausprobieren.
Re: Fensterkontakt Status
Verfasst: 15. Sep 2021 23:28
von udo1toni
Ah, es kann natürlich sein, dass der Channel das Label manipuliert. Wichtig wäre auf jeden Fall, dass Du keine Leerzeichen vor oder nach dem Gleichheitszeichen setzt. Dann sollte die map also so aussehen:
Groß/Kleinschreibung ist (vermutlich) einzuhalten. Die Schreibwesie des Iconnamens ist dabei nicht maßgeblich!.
Re: Fensterkontakt Status
Verfasst: 17. Sep 2021 17:33
von JohnDoe2000
udo1toni hat geschrieben: ↑15. Sep 2021 23:28
Ah, es kann natürlich sein, dass der Channel das Label manipuliert. Wichtig wäre auf jeden Fall, dass Du keine Leerzeichen vor oder nach dem Gleichheitszeichen setzt. Dann sollte die map also so aussehen:
Groß/Kleinschreibung ist (vermutlich) einzuhalten. Die Schreibwesie des Iconnamens ist dabei nicht maßgeblich!.
Hi,
bin gerade erst dazu gekommen es zu testen. Jetzt läuft alles perfekt. Danke für die Hilfe.
Gruß,
Christian
Re: Fensterkontakt Status
Verfasst: 5. Jan 2022 21:01
von ML_1982
Ich habe ein ähnliches Problem. Ich bin mir nicht sicher ob ich auf dem richtigen Weg bin...
Mein Fenstersensor von Busch Jäger liefert
0=geschlossen
100=offen
33=gekippt
Über Metadaten State Description mache ich aus den Werten den Status:
2022-01-05_20h51_21.png
Wenn ich den Beitrag hier richtig verstanden habe, dann ändere ich über die Metadaten nur das was angezeigt wird, nicht den tatsächliche Wert des Items. Das scheint so aber erstmal zu funktionieren.
Über das map File würde ich das gleiche machen, oder?
2022-01-05_20h55_25.png
Ich hätte hier, in den Location Cards jetzt gerne die animierten Icons.
LocationCard.png
Und das funktioniert nicht. Liege ich jetzt richtig, dass das daran liegt, dass ich eben nicht den eigentlichen Wert des Items sondern nur das was angezeigt wird geändert habe?
Zur Info, ich brauche später dann noch irgendeine Lösung um zu erkennen ob eines meiner 5 Fenster offen ist, aber darum möchte ich mich im zweiten Schritt kümmern.
Re: Fensterkontakt Status
Verfasst: 6. Jan 2022 20:28
von peter-pan
ML_1982 hat geschrieben: ↑5. Jan 2022 21:01
Liege ich jetzt richtig, dass das daran liegt, dass ich eben nicht den eigentlichen Wert des Items sondern nur das was angezeigt wird geändert habe?
Genau so ist es (soweit ich weiß!!). Was mich in deinem Falle allerdings etwas wundert, ist die Tatsache, dass diese als Dimmer konfiguriert sind. Was sind das für Sensoren ?
Re: Fensterkontakt Status
Verfasst: 7. Jan 2022 16:10
von ML_1982
Ich verfolge gerade zwei Ideen, komme aber bei beiden nicht weiter.
1) eigene Icons
Ich würde gerne hier /etc/openhab/icons/classic drei Icons ablegen:
fenster-0.png
fenster-100.png
fenster-33.png
Das hätte den Vorteil, dass das Item im Hintergrund weiterhin mit Zahlenwerten arbeitet, das wird später ggfs. einfacher wenn ich mal mit einer Gruppe "Alle Fenster" arbeiten will.
Nur wo finde ich die original Icons zum kopieren?
Hier
https://www.openhab.org/docs/configurat ... s/classic/ gibt es nur das geschlossene Fenster.
Ich nehme auch andere schöne Icons, wenn jemand welche hat.
2) Ich nutze die map Transformation bei der Verknüpfung des Channels mit dem Item.
nachdem ich dieses Add On installiert habe:
2022-01-07_16h03_52.png
Ist in der GUI auch folgender zusätzlicher Menü Punkt beim Channel erschienen:
2022-01-07_16h05_49.png
Aber wie konfiguriere ich das jetzt übers GUI? Beim Verschuch zu speichern kommt das
2022-01-07_16h06_58.png
Oder geht das wie weiter oben in diesem Thread beschrieben nur über Dateein und nicht über das GUI?
Noch zu der Frage aus dem letzten Post:
peter-pan hat geschrieben: ↑6. Jan 2022 20:28
Was sind das für Sensoren ?
Busch Jäger Free@Home Fenstersensoren über das Binding hier
https://community.openhab.org/t/busch-j ... /31043/585