Regel/Skript - Wert eines Items

Allgemeine Fragen rund um die "Smart Home" Hardware/Komponenten

Moderatoren: seppy, udo1toni

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

Re: Regel/Skript - Wert eines Items

Beitrag von udo1toni »

Bist Du sicher, dass dieser Weg einfacher ist, als einmal alle Sender abzutippen?

Aber egal... Zeig doch bitte mal eine konkrete Taste (ausnahmsweise gerne auch als Bild).

Mein Hauptproblem: eine Schaltfläche (vor allem deren Beschriftung) wird gewöhnlich nicht so ohne weiteres dynamisch gefüllt. Das genaue Gegenteil ist der Fall, wenn die Schaltfläche betätigt wird, wird das zugehörige Item mit dem festgelegten Wert der Taste gefüllt

Wobei das vielleicht schon der Schlüssel ist - wir verhindern, dass der unter der Taste hinterlegte Wert in den Status geschrieben wird, indem wir autoupdate=false setzen, für jedes der beteiligten Items.
Weiterhin packst Du alle Items in eine Gruppe, nennen wir die Gruppe ruhig gChEnigma

Dann kannst Du eine Rule so schreiben:

Code: Alles auswählen

rule "reagiere auf Channel Tasten"
when
    Member of gChEnigma received command // Ein Tastendruck generiert ein Kommando
then
    val prog = triggeringItem.state.toString
    EnigmaChannel.sendCommand(prog)
end
Die Rule bekommt das Kommando mit, wertet dieses aber gar nicht aus. Stattdessen holt es den Status des Items, welches das Kommando geschickt hat. Mit autoupdate=false darf das gesendete Kommando nicht im Status des Items landen.
Anschließend wird der ermittelte Wert einfach an das Item gesendet, welches den Channel umschaltet.

Das ist aber nur Theorie, unter der Annahme, dass ich verstanden habe, was Du getan hast.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

filmgucker2
Beiträge: 228
Registriert: 8. Apr 2020 20:59

Re: Regel/Skript - Wert eines Items

Beitrag von filmgucker2 »

Ist eine normale Schaltfläche (Button) im Habpanel, verknüpft mit dem Item
aus dem http channel, der nur lesbar ist.
Alle in die Gruppe Favoriten gepackt, alle autoupdate =false, auch das Gruppenitem.
Testweise ein String Item, in das geschrieben werden soll angelegt.
In ihm regt sich nichts, wenn ich die Regel mit dem Skript
val prog = triggeringItem.state.toString
Testsender.sendCommand(prog)

ausführe (Rule, when member of Favoriten receives command).

Im log dann:

Code: Alles auswählen

No message body reader has been found for class java.lang.String, ContentType: application/octet-stream
und

Code: Alles auswählen

javax.ws.rs.WebApplicationException: HTTP 415 Unsupported Media Type
und zahlreiche Zeilen mit org.apache...

Der kleine Vorteil, den ich mir von dieser Methode verspreche ist:
Ich kann die Sender oder ihre Reihenfolge im webif der enigma Box über den Bouquet Editor verändern.
Dann werden die neuen Sender ganz automatisch in die Items übernommen.
Die Schaltfläche 1 zeigt den Sendernamen 1 aus dem Bouquet an
Die Schaltfläche 2 zeigt den Sendernamen 2 aus dem Bouquet an
Die Schaltfläche 3 zeigt den Sendernamen 3 aus dem Bouquet an...usw

Die Schaltflächen haben keinen "Titel", sie zeigen nur den Wert des jeweiligen Items an,
und mit dem möchte ich weiterarbeiten, wenn die Schaltfläche angeklickt wird.
Das (triggeringItem) scheint übrigens wohl nur in Gruppen zu klappen, wie ich las. Warum eigentlich?
"Lies mich selbst" scheint es für ein einzelnes Item nicht zu geben.
Zuletzt geändert von filmgucker2 am 16. Apr 2023 14:28, insgesamt 2-mal geändert.
Raspberry Pi 4, OH 4.0.3

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

Re: Regel/Skript - Wert eines Items

Beitrag von udo1toni »

Zeig doch bitte mal ein konkretes Item, das ist alles viel zu theoretisch

Wie heißt das Item? Ist es vom Typ String? (muss ja, sonst könnte es keine Namen als Status halten)
Wie ist das Item mit dem Channel verlinkt?
Welchen Status hat das Item konkret?

Wenn Du eine Rule über die UI erstellst: Bitte einfach den Code von der Code-Ansicht hier als Code markiert einstellen (Die Markierung als Code ist wichtig, da sonst die Formatierung nicht erhalten bleibt - die Formatierung ist Bestandteil des Codes und hat eine Bedeutung)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

oh73
Beiträge: 285
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: Regel/Skript - Wert eines Items

Beitrag von oh73 »

ich bin immer noch der Meinung man könnte das im Widget mit ng-repeat machen.

hab noch mal was gebastelt was bei mir funktioniert, ist allerdings als Beschriftung nur Müll,
da ich einfach mal eine Gruppe von mir genommen habe.
im letzten Feld Auswahl zeigt er dann was du angeklickt hast!

du musst nur deine Sender Items in der Gruppe Beispiel gSender haben.

Code: Alles auswählen

<div ng-repeat="item in itemsInGroup('gSender') |  orderBy:'label' | limitTo: 10" >

	<button class="a button menu" style="top:{{$index*9.1}}%;left:0%;right:0;bottom:{{100-9.1-$index*9.1}}%; 
   background: linear-gradient(to bottom, white, skyblue) " 
	ng-click="sendCmd('Auswahl', item.state )" ;>{{item.state}} 
	</button>
</div>
<button class="a button menu" style="top: 90%;left:0%;right:0;bottom:0%; 
   background: linear-gradient(to bottom, white, silver) " >
	 Auswahl :	{{itemState('Auswahl')}}
</button>
und so sieht das aus,
Bild
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
OH 4.0.3 auf HP 26o G1 Dm Mini Pc mit MX_Linux

filmgucker2
Beiträge: 228
Registriert: 8. Apr 2020 20:59

Re: Regel/Skript - Wert eines Items

Beitrag von filmgucker2 »

Danke! Puh, da triffst Du mich auf dem falschen Fuß:
Widgets kann ich noch nicht :( ...
Einfach den Text so reinkopieren bei Create widget ging schon mal nicht...
Wie krieg ich das in ein widget rein?
Raspberry Pi 4, OH 4.0.3

oh73
Beiträge: 285
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: Regel/Skript - Wert eines Items

Beitrag von oh73 »

ja, da haben wir ein Problem, :lol:
Widget´s über die Gui kann ich nicht!

meine Widget´s erstelle ich im Habpanel , Bearbeiten, Widget hinzufügen, Vorlage !
OH 4.0.3 auf HP 26o G1 Dm Mini Pc mit MX_Linux

filmgucker2
Beiträge: 228
Registriert: 8. Apr 2020 20:59

Re: Regel/Skript - Wert eines Items

Beitrag von filmgucker2 »

Ah!!! Im Habpanel! Ok: Vorlage, Text rein, Gruppennamen geändert.
Sieht komisch aus, liest aber die Sender ein... :D

aber beim Anklicken der Sender ändert sich die "Auswahl" nicht. Zeigt N/A...
Raspberry Pi 4, OH 4.0.3

oh73
Beiträge: 285
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: Regel/Skript - Wert eines Items

Beitrag von oh73 »

hast du auch ein String Item 'Auswahl' erstellt?
OH 4.0.3 auf HP 26o G1 Dm Mini Pc mit MX_Linux

filmgucker2
Beiträge: 228
Registriert: 8. Apr 2020 20:59

Re: Regel/Skript - Wert eines Items

Beitrag von filmgucker2 »

Natürlich nicht :D .
Jetzt geht's.
Ich versuche jetzt mal den Inhalt "Auswahl" mit Regel in den Enigma Channel zu schreiben...


...und das klappt wie blöd :D :D :D
Danke! Jetzt muss aber das widget noch schöner werden. Und das Feld "Auswahl" brauche ich im widget nicht.
Kann ruhig im Hintergrund bleiben.
Raspberry Pi 4, OH 4.0.3

oh73
Beiträge: 285
Registriert: 7. Mär 2021 14:49
Answers: 1

Re: Regel/Skript - Wert eines Items

Beitrag von oh73 »

schön machen kann man ja immer noch.

habe die Auswahl ja auf 10 begrenzt, kann man auch weg lassen , dann aber je nach Sender Anzahl die Berechnung für Top und Bottom ändern.

ich mach dann auch öfters das ich für das ausgewählte Feld die Hintergrundfarbe ändere und so Anzeige was ausgewählt ist.

da hat man aber noch viele Möglichkeiten!
OH 4.0.3 auf HP 26o G1 Dm Mini Pc mit MX_Linux

Antworten