Button Switch

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Mac3
Beiträge: 13
Registriert: 1. Feb 2023 08:51

Button Switch

Beitrag von Mac3 »

Hallo Zusammen,

ich bin neu bei OpenHab (3.4) und möchte meine Logos8 steuern. Die Verbindung zu den Logos habe ich über das AddOn PLC-Binding herstellen können. Da die Programme in der Logo auf Tasterimpulse und nicht auf Schaltzuständewechsel reagieren, benötige ich anstatt Toggle Switch einen Button Switch.

Wie kann ich einen richtigen Button einem Item zuweisen, sodass er nicht als Schalter sonder als Button unter der Standortansicht auftaucht?

Wie gesagt bin noch Laie in Openhab.

Besten Dank im Voraus.

mit freundlichen Grüßen
Marcel

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

Re: Button Switch

Beitrag von udo1toni »

Herzlich willkommen im Forum!

Die einfache Antwort lautet: gar nicht.

Die längere Version: Es gibt in openHAB für die gewünschte Aufgabe lediglich das Switch Item. Was Du möchtest, ist, dass das Switch Item immer einen ganz bestimmten Befehl sendet (mutmaßlich ON), nicht abwechselnd ON und OFF.
Das geht, indem Du die Darstellung des Widgets anpasst.
Ich bin mir nicht sicher, ob man das in der Main UI beeinflussen kann. Eine Möglichkeit wäre, dem Item eine Expiration Time zu setzen und es danach automatisch auf OFF zu setzen. In der Basic UI verwendet man dafür ein mapping, damit wird dann ein einzelnen Knopf gerendert (oder mehrere, wenn man will)
Auf der Übersichtsseite (oder anderen Seiten, die man selbst erstellt) kann man sich ein passendes Widget raus suchen, welches dann keinen Schalter rendert.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Mac3
Beiträge: 13
Registriert: 1. Feb 2023 08:51

Re: Button Switch

Beitrag von Mac3 »

Hallo Udo,
zunächst Danke für deine schnelle Rückmeldung.

Jetzt bin ich tatsächlich ein wenig verwirrt. Da es in der Openhab-App-Demoansicht im Widget Overview genau so ein Button gibt. (Siehe Anhang)
IMG_6947.jpg
Generell hast du recht, ich möchte eine gewissen Pulslänge einen On-Befehl senden. Dafür habe ich bisher ein Pulse Thing/Item angelegt mit einer Impluslänge von 150ms.

Soweit korrekt oder?

Welches mapping muss ich für die Basic UI auswählen?

Könntest du das mit der Main UI nochmal in anderen Worten erklären ?

Sorry :?

VG
Marcel
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

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

Re: Button Switch

Beitrag von udo1toni »

Ja, das ist eine Sitemap. In der Sitemap ist es kein Problem, so einen Knopf zu erzeugen. Auch im Main UI Overview (bitte nicht mit der Demoseite verwechseln...) kannst Du gezielt ein passendes Widget dafür verwenden. Die Standort, Geräte und Eigenschaften Seiten werden aber automatisch generiert. Hier wird es vermutlich keine Option geben, einen Knopf rendern zu lassen.

In der Basic UI geht das so:

Code: Alles auswählen

Switch item=meinItem mappings=[ON="Los!"]
Das erzeugt einen einzelnen Knopf mit der Beschriftung Los!. Wird der Knopf gedrückt, wird der Befehl ON an das Item meinItem gesendet.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

mad-mike
Beiträge: 403
Registriert: 6. Jan 2021 18:05
Answers: 2

Re: Button Switch

Beitrag von mad-mike »

Moin.

Ich habe das mit einer Rule gelöst:

Code: Alles auswählen

when
       Item Zentral_taster changed to ON                                                       // APP
then
   tue etwas Befehl... 
   
            Zentral_taster.sendCommand(OFF)                                                 // APP Schalter
end
Also Wenn ich einen Schalter auf ON setze werden die Befehle nach einander abgearbeitet, und zum Schluss wird der Schalter wieder auf OFF gesetzt.


Und die Impulsteuerung habe ich so gelöst:

Code: Alles auswählen

when
    Item HTTPURLThing_km6 changed
then
    if(HTTPURLThing_km6.state != OFF)
    Thread::sleep(500)
    HTTPURLThing_km6.sendCommand(OFF) 

end

Vielleicht nicht optimal, funktioniert aber wie gewünscht...
Gruss mad-mike

openHABian 4.1.1 auf Raspberry Pi 4 Mod. b (8GB) ;)

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

Re: Button Switch

Beitrag von udo1toni »

Der "Taster" ist also in Wirklichkeit ein externer Schalter, den Du zurücksetzen musst? Hier liegt die Sache ja etwas anders... openHAB soll lediglich den On-Befehl in Richtung Logo! senden, ich gehe davon aus, dass ein expliziter OFF-Befehl gar nicht notwendig ist. Aber wenn, dann macht man das besser über den Expiration Timer. Über Text definiert:

Code: Alles auswählen

Switch MeinTasterItem "Drück mich!" { channel="...", expire="1s,command=OFF" }
Muss der Befehl hingegen nicht gesendet werden, so reicht das Update:

Code: Alles auswählen

Switch MeinTasterItem "Drück mich!" { channel="...", expire="1s,state=OFF" }
Zugegeben - expire kann lediglich sekundengenau schalten, dafür ist es aber auch nur eine kleine Konfiguration.

Über die UI kann man den Parameter in den Metadaten setzen.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

mad-mike
Beiträge: 403
Registriert: 6. Jan 2021 18:05
Answers: 2

Re: Button Switch

Beitrag von mad-mike »

Der "Taster" ist also in Wirklichkeit ein externer Schalter, den Du zurücksetzen musst?
Ähm nein, es handelt sich in meinem Fall um ein ""Proxy Item"" Switch.

Zurücksetzen aus dem Grund: Wenn ich auf dem Habpanel, oder in der APP auf diesen ""Zentral"" schalter Drücke, setzt er sich ja nicht zurück.
deswegen die Rule.

Als Feedback kann man sehen, das ich den Schalter gedrückt habe, und sofort zurück springt..


Als ich nun den Beitrag von @Mac3 gelesen habe, dachte ich gleich an meine Umsetzung. = Proxy Item und Rule. :oops:
Gruss mad-mike

openHABian 4.1.1 auf Raspberry Pi 4 Mod. b (8GB) ;)

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

Re: Button Switch

Beitrag von udo1toni »

Wenn es ein Proxy Item ist, wäre postUpdate korrekt...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Mac3
Beiträge: 13
Registriert: 1. Feb 2023 08:51

Re: Button Switch

Beitrag von Mac3 »

udo1toni hat geschrieben: 1. Feb 2023 17:32 Ja, das ist eine Sitemap. In der Sitemap ist es kein Problem, so einen Knopf zu erzeugen. Auch im Main UI Overview (bitte nicht mit der Demoseite verwechseln...) kannst Du gezielt ein passendes Widget dafür verwenden. Die Standort, Geräte und Eigenschaften Seiten werden aber automatisch generiert. Hier wird es vermutlich keine Option geben, einen Knopf rendern zu lassen.

In der Basic UI geht das so:

Code: Alles auswählen

Switch item=meinItem mappings=[ON="Los!"]
Das erzeugt einen einzelnen Knopf mit der Beschriftung Los!. Wird der Knopf gedrückt, wird der Befehl ON an das Item meinItem gesendet.
Der von dir angegebene Code funktioniert auch für die Sitemaps?

Schonmal Dankes! Ich werde es am Wochenende testen und mich ggf. nochmal melden.

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

Re: Button Switch

Beitrag von udo1toni »

Der von mir angegebene Code funktioniert nur in der Sitemap. :)

Vielleicht noch zur Ergänzung: Das hier funktioniert auch:

Code: Alles auswählen

Switch item=meinNumberItem mappings=[15="15",1="eins",2="zwo",7="neun",57="drölf!!"]
Es gibt weder eine festgelegte Reihenfolge (bzw. die Schaltflächen werden eben in der angegebenen Reihenfolge gerendert) noch eine Begrenzung auf eine Anzahl Schaltflächen (außer der zur Verfügung stehende Platz auf dem Bildschirm). Das Widget heißt Switch, es kann aber auch mit Number Items und String Items umgehen:

Code: Alles auswählen

Switch item=meinStringItem mappings=[yes="Ja",NO="Nö","absolutely no"="keinesfalls!"]
Und im Beispiel zu sehen: Zuzuweisende Strings ohne Leerzeichen werden nicht in Anführungszeichen gesetzt, Strings mit Leerzeichen aber sehr wohl. Es wird die exakte Schreibweise verwendet.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten