Seite 1 von 2

OH3 Status sollte nicht änderbar sein

Verfasst: 15. Nov 2022 09:01
von lenschith
Hallo,

ich bin heute auf ein Problem gestoßen und finde im Netz nichts darüber. Entweder suche ich falsch oder ich bin der einzige, den das stört :roll:

Ich habe Items für den Status dieser wird über eine Rule befüllt. Klappt auch. Nun würde ich gerne haben das in der Sitemap oder der UI dieser Status nur angezeigt wird aber nicht auswählbar/änderbar ist. Kann man das irgendwie umsetzen?

Möchte vermeiden das mir jemand den Status ändert und dann meine Rule nicht mehr greift.
Screenshot 2022-11-15 085827.png
Wenn man den Eintrag auswählt erscheint das Auswahlfenster unten
Screenshot 2022-11-15 085857.png
Gruß Lenschi

Re: OH3 Status sollte nicht änderbar sein

Verfasst: 15. Nov 2022 10:05
von lenschith
Kommt das von einer stateDescription?

Re: OH3 Status sollte nicht änderbar sein

Verfasst: 15. Nov 2022 13:44
von udo1toni
Nein, das ist ein ungünstiges Widget.
Grundsätzlich ist eine Item immer änderbar (sonst könntest Du den Zustand ja nicht über eine Ruile ändern). Du musst also in der UI ein Widget wählen, welches keine Eingaben zulässt oder diese wahlweise (durch Konfiguration) unterbindet.

Re: OH3 Status sollte nicht änderbar sein

Verfasst: 15. Nov 2022 15:28
von peter-pan
Ich hab das mal versucht nachzubilden. Du hast doch hier mit einer StateDescription gearbeitet, bzw. mit (Optionen) weil du etwas(Werte aus der Rule) umwandeln willst ?
Ich sehe das auch so wie Udo. Der Aufbau des Items ist evtl. ungünstig gewählt.

Ich sehe hier zwei Möglichkeiten:
1. Werte in der Rule "eindeutschen".
2. Umwandlung per MAP-Transformation im Item(Pattern). (So etwas ähnliches mache ich mit einem String-Item).

Vielleicht sagst du mal wie die Optionen sind und/oder wie die Rule aussieht.

Re: OH3 Status sollte nicht änderbar sein

Verfasst: 15. Nov 2022 18:23
von lenschith
ich habe jetzt die Werte im Widget und Rule geändert damit ich nichts mehr transformieren muss. Dann klappt das auch.
Aber im Umkehrschluss bedeutet das, wenn ich in der stateDescription was transformiere, bekomme ich immer diese Auswahlmöglichkeit.

da muss ich jetzt nochmal umdenken und nochmal einiges ändern glaube ich. In der Transformation kann ich das dann machen ohne das ich diese Auswahl bekomme.

Danke.
Gruß Lenschi

Re: OH3 Status sollte nicht änderbar sein

Verfasst: 19. Nov 2022 09:54
von lenschith
Ich hätte hierzu noch eine Frage und ich werde aus der Anleitung nicht schlau was der Schalter genau bewirkt.
Screenshot 2022-11-19 095129.png
Was bedeutet dieses "Read Only"? kann dadurch das Item durch Rules und Things noch verändert werden?
Nur eine Bedienung händisch ist nicht mehr möglich?

Danke für die Info.
Gruß Lenschi

Re: OH3 Status sollte nicht änderbar sein

Verfasst: 19. Nov 2022 11:06
von udo1toni
Nein, Read only bezieht sich nur auf das Annehmen von Befehlen.
Ob diese Eigenschaft von jedem Widget ausgewertet wird, weiß ich nicht.
Es kann also sein, dass ein Switch Item, bei dem diese Eigenschaft gesetzt ist, in der Main UI keine Schaltfläche gezeichnet bekommt. Darauf verlassen würde ich mich nicht.
In Sitemaps wird diese Eigenschaft eher nicht ausgewertet, dazu ist dieser Schalter zu jung (Sitemaps gab es schon in openHAB1.0, die Read only Eigenschaft erst seit openHAB3.x)

Der Status eines Items wird grundsätzlich per postUpdate() gesetzt. sendCommand() hingegen sendet einen Befehl an die verbundenen Channel und löst Rules aus, deren Trigger entsprechend gesetzt ist. Das Default Verhalten von openHAB ist, den wahrscheinlichen neuen Zustand des Items anhand des gesendeten Befehls zu erraten* und schon mal ein passendes postUpdate() zu generieren.
In Systemen, die Zustandsänderungen aktiv melden, ist dieses Verhalten unerwünscht und sollte abgeschaltet werden (Item Metadaten autoUpdate="false").

*) erraten: Man kann z.B. bei knx Dimmern eine Einschalthelligkeit programmieren (bestimmter Wert oder letzter Zustand vor Ausschalten). Sendet openHAB einen ON-Befehl so nimmt es als wahrscheinlichen neuen Zustand 100 an. Also sendCommand(ON) -> postUpdate(100) -> Dimmer empfängt Befehl und dimmt nach (z.B.) 65 -> knx meldet Zustand 65 -> Item wechselt auf 65. Bewirkt, dass in der Gui der Helligkeitssteller erst von 0 auf 100 springt und dann zurück auf 65. Das ist unschön. Mit deaktiviertem autoUpdate bleibt der Dimmer in der UI auf 0 und springt erst am Ende des Dimmvorgangs auf die 65. Wenn die Eingabe "ON" über das Widget erfolgt, bekommt man von diesem Verhalten eventuell gar nichts mit, ein Blick ins Log deckt es aber auf.

Re: OH3 Status sollte nicht änderbar sein

Verfasst: 19. Nov 2022 11:18
von lenschith
Mmh, ok. Habe ich dann eine Möglichkeiten, einen Switch darzustellen z.B. in einer Sitemap der mir nur den Zustand wieder gibt aber nicht bedienbar ist? Kann auch einfach ein Text sein.

Re: OH3 Status sollte nicht änderbar sein

Verfasst: 19. Nov 2022 11:23
von udo1toni
Wie gesagt, Du musst das passende Widget nehmen. Wenn wir über die Basic UI reden, dann gibst Du eben Text item=MeinSwitchItem an. Wenn Du ein dynamisches Icon verwendest, sollte das dann den Zustand anzeigen, genau wie der Zustand im Label stehen sollte (solange der Status im Label ab gebildet wird).

Re: OH3 Status sollte nicht änderbar sein

Verfasst: 19. Nov 2022 15:34
von peter-pan
Das gleiche gilt auch für Widgets in Pages. Du darfst im Widget halt keine "Action" definieren. (Label-Card, Label Cell, Label-Item)
Das mit dem ReadOnly gilt bei Switches nur für die MainUI. In deinen Widgets in Pages kannst du das mit "Action" im Widget regeln. Zumindest für ungebundene Switches.