Ich denke ich weiß in etwas die Lösung meines Problems nur weiß ich nicht wie ich dies umsetzten muss, konnte auch bisher keine Beispiel Rule finden...
Um eine Lampe zu schalten wurde bisher der Status einer anderen Lampe abgefragt:
rule "test_1"
when
Item Test_Schalter_A changed to ON
then
if(alte_lampe_1.state == OFF) {
alte_lampe_2.sendCommand(ON)
}
end
Inzwischen ist die "alte_lampe_1" durch ein HUE LED Stripe ersetzt dessen Color Item ja "nur" den HSB Wert ausgibt und nicht ON oder OFF .
Ich weiß das man Brightness abfragen kann, nur nicht die Syntax dazu
Aber der Reihe nach... Grundsätzlich interessiert Dich immer der Status des Items. Der Status ist immer .state, ganz gleich, um welchen Typ Item es sich handelt.
Du kannst also einfach auf ((HUE_Item.state as Number) < 1) testen.
Wenn Du allerdings "nur" wissen willst, ob ein Gerät eingeschaltet ist, gibt es eine nette Eigenschaft, die heißt .getStateAs(). Dort kann man explizit angeben, dass man nach dem OnOffType sucht. HUE_Item.getStateAs(OnOffType) liefert also immer ON oder OFF als Ergebnis.
openHAB5.1.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox VE 9.1.9 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte
Ich melde mich heute erst, denn die wahrscheinlich jemals nicht diagnostizierte, härteste Männergrippe der Welt hat(te) mich im Griff... ;-(
udo1toni hat geschrieben: 5. Apr 2022 23:57
Es gibt da einen Trick
Das waren eigentlich ja zwei! Auf jeden Fall erst mal Danke für die fundierte Hilfe.
Der erste Tipp mit "state as Number" funktioniert hier nicht. Ich weiß nicht ob ich einen Syntaxfehler oder Dich falsch verstanden habe. Benutzt habe ich das Color Item der HUE Lampe und wie Du auf dem Screenshot siehst war sie auch eingeschaltet.
Steinspiel hat geschrieben: 7. Apr 2022 18:22
Der erste Tipp mit "state as Number" funktioniert hier nicht. Ich weiß nicht ob ich einen Syntaxfehler oder Dich falsch verstanden habe.
Ja, typisch mal wieder... Ich war gedanklich natürlich bei einem Dimmer Item. Ein Color Item hat aber als Standard Status Typ HSBType, welches natürlich nicht vom Typ Number ist. Du könntest vermutlich auch so etwas machen:
rule "test_1"
when
Item Test_Schalter_A changed to ON
then
if((HUEHerd_Farbe.state as HSBType).brightness > 1) {
Test_Schalter_B.sendCommand(ON)
}
end
Wobei ich keine Color Items in Verwendung habe. Grundsätzlich sollte es aber möglich sein, auf die Wert H, S, und B über entsprechende Eigenschaften zuzugreifen. Kann natürlich sein, dass die Eigenschaft anders heißt, das müsste man dann im VSCode nachschauen. Wichtig ist, dass der Status explizit in den entsprechenden Typ gewandelt wird, sonst stehen die Eigenschaften nicht zur Verfügung.
openHAB5.1.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox VE 9.1.9 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte
udo1toni hat geschrieben: 7. Apr 2022 19:01
Du könntest vermutlich auch so etwas machen:
Da gefällt das ">" - Zeichen nicht, ich bekomme da ein ->
Ambiguous binary operation.
The operator declarations
operator_greaterThan(Type, Number) in NumberExtensions and
operator_greaterThan(Number, Number) in NumberExtensions
both match.
Das ist jetzt für mich nicht weiter dramatisch da ja die "ON/OFF" Sache aus Deinem letzten Post gut funktioniert. Ich habe dann noch ne andere Idee die ich gelesen habe etwas angepasst: mir ein Switch angelegt und den mit dem Color Item verlinkt... An/AUS geht Super einfach.
Kann natürlich sein, dass die Eigenschaft anders heißt, das müsste man dann im VSCode nachschauen.
Aber das interessiert mich dann doch, wie kann man das in VSCode nachschauen?
Wenn in VSCode das openHAB Plugin korrekt konfiguriert ist, kannst Du in *.rules Dateien mit <strg>+<Leerzeichen> alle im Kontext möglichen Eingaben sehen. wenn Du also z.B. ein Objekt als Number definierst, sollte VSCode automatisch alle Methoden anbieten, wenn Du den . eingibst.
Eventuell muss auch .brightness nochmal ergänzt werden, z.B. mit einem weiteren as Number. Ist manchmal etwas tricky...
openHAB5.1.3 stable in einem Debian-Container (trixie, OpenJDK 21 headless runtime - LXC, 4 Kerne, 3 GByte RAM)
Hostsystem Proxmox VE 9.1.9 - AMD Ryzen 5 3600 6 Kerne, 12 Threads - 64 GByte RAM - ZFS Pools: Raid Z1, 3 x 20 TB HDD -> 40 TByte und Raid Z0-Mirrored 4 x 1 TByte NVMe -> 2 TByte
udo1toni hat geschrieben: 8. Apr 2022 22:12
Eventuell muss auch .brightness nochmal ergänzt werden, z.B. mit einem weiteren as Number. Ist manchmal etwas tricky..
Ist schon etwas älter und mein Problem ist ja auch gelöst, aber das mit <strg>+<Leerzeichen> wusste ich bisher nicht, es lohnt sich bestimmt dort ab und zu mal nach zu sehen.
In meinem obigen Beispiel wird mir damit "brightness : PercentType" angezeigt, allerdings komm ich mit der Info auch nicht groß weiter.
Ich wollte mich nur noch mal für die Hilfe bedanken und nicht so sang und klanglos nicht antworten...