Zu Punkt 1: Du meinst vermutlich, Du legst in einer Sitemap ein Switch
Widget an, welches mit einem
Item verknüpft ist, das eigentlich readonly ist.
Die einfache Antwort: Schalte es nicht um

Die bessere Anwort: Benutze kein
Switch Widget, sondern ein
Text Widget. Dann wird keine Schaltfläche gezeichnet, das Icon und der Status werden trotzdem entsprechend angezeigt.
Zu Punkt 2: In einer
Items Datei kannst Du nur
Items anlegen. Ein
Selection Item gibt es in openHAB nicht. Was Du meinst, ist ein
Selection Widget in einer Sitemap. Nur dort kannst Du das festlegen.
Zu Punkt 3: Die Rule von @hr3 ist natürlich kein fertiger Code. Was meinst Du mit Variablen?
Die Frage ist auch, wie sehen die Randbedingungen nun genau aus?
Geht es darum, dass ein 4. Item geschaltet wird, sobald die drei anderen Items OFF sind, oder müssen die drei OFF sein, damit, wenn das 4. Item geschaltet wird, das auch passiert?
Was soll passieren, wenn eines der drei OFF-Items seinen Zustand ändert?
Grundsätzlich wäre die Gruppenvariante so:
items:
Code: Alles auswählen
Group:Switch:OR(ON,OFF) gMyGroup "Gruppe ist [%s]"
Switch myItem1 "Bedingung 1 [%s]" (gMyGroup)
Switch myItem2 "Bedingung 2 [%s]" (gMyGroup)
Switch myItem3 "Bedingung 3 [%s]" (gMyGroup)
Switch myItem4 "Item 4 ist [%s]"
rule:
Code: Alles auswählen
rule "gMyGroup Switch"
when
Item gMyGroup changed
then
if(gMyGroup.state == OFF)
myItem4.sendCommand(ON)
end
Man könnte aber auch sowas machen:
Code: Alles auswählen
rule "gMyGroup Switch"
when
Item myItem4 received command
then
if(gMyGroup.state != OFF && receivedCommand == ON)
myItem4.sendCommand(OFF)
end
Das würde also das Item sofort wieder ausschalten, wenn ein Einschaltversuch erfolgt. Je nach dahinter hängender Hardware geht das so schnell, dass es keinen Unterschied macht, aber diese Variante funktioniert zuverlässig auch, wenn man z.B. per Rule, REST API oder Karaf Konsole versucht, den ON-Befehl direkt abzusetzen.
Es kommt also darauf an, was Du erreichen willst, wie die Randbedingungen sind.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet