Seite 2 von 2
Re: Szene in der ETS über openHAB ansteuern
Verfasst: 13. Nov 2020 14:26
von Markus_JE
HI Udo,
ja die gehen an. Und die Jalousien fahren runter runter.
Allerdings nicht via openhab "taster"
Re: Szene in der ETS über openHAB ansteuern
Verfasst: 20. Nov 2020 10:40
von Markus_JE
Hallo zusammen,
hat jemand noch eine Idee was hier falsch läuft?
Jalousien fahren herunter aber die Lichter bei Aufruf Szene Fernsehabend gehen nicht an.
Code: Alles auswählen
Thing device TasterHauseingang "Taster Hauseingang" @ "KNX" //[address="1.1.12", fetch=false, pingInterval=600, readInterval=300]
{
Type number : Temperatur_FlurEG "Temperatur Flur EG" [ ga="9.001:4/0/1" ]
Type number-control : Leave_Home "Leave Home" [ ga="17.001:6/1/1" ] // Szene Fersehabend
Type number-control : Leave_Home "Leave Home" [ ga="17.001:6/1/0" ] // Szene Sonnenschutz
}
Item:
Code: Alles auswählen
Number Szene "Leave Home [%d]" <jalousie> (EG_Flur) {channel="knx:device:bridge:TasterHauseingang:Leave_Home"}[/quote]
sitemap:
Code: Alles auswählen
Text label="Szenen" icon="party" {
Selection item=Szene label="Leave Home" mappings=[0="Fernsehabend", 1="Sonnenschutz 50%"]
}
Re: Szene in der ETS über openHAB ansteuern
Verfasst: 20. Nov 2020 11:55
von udo1toni
Kann ich nicht nachvollziehen, bei mir funktioniert die Szenensteuerung exakt so.
Re: Szene in der ETS über openHAB ansteuern
Verfasst: 20. Nov 2020 12:24
von Darkwin101
Dürfen denn die Beiden Type number-control gleich heißen ?
Re: Szene in der ETS über openHAB ansteuern
Verfasst: 20. Nov 2020 15:15
von udo1toni
Oh. Nein, das darf natürlich nicht sein.

Komplett übersehen...
Jede Bridge eines Addons muss einen eindeutigen Namen haben.
Jedes Thing innerhalb einer Bridge muss einen eindeutigen Namen haben.
Jeder Channel innerhalb eines Thing muss einen eindeutigen Namen haben.
Eigentlich logisch, sonst könnnte man die beiden Channel ja nicht unterscheiden...
Re: Szene in der ETS über openHAB ansteuern
Verfasst: 11. Jan 2023 19:26
von Steffen987
Hallo, der Beitrag ist zwar nicht mehr der neuste, ich hätte aber trotzdem eine Frage die hier gut rein passt.
Ich habe ebenfalls ein KNX System, von welchem ich die Szenennummer zu Openhab 3 übertage und auch wieder zurück, um Licht etc. zu schalten. Mit dem Trick hier dpt 17.001 zu verwenden funktioniert es vom Prinzip auch. Von Openhab zu KNX geht es Problemlos, allerdings habe ich ein kleiens Problem von KNX zu Openhab. Ich möchte hier über eine Regel die Szenennumer auswerten, um andere Aktionen am Server zu schalten (zum Beispiel Musik an). Wenn ich das Signal von Openhab aus schicke funktioniert die Regel auch, wenn das Signal allerdings von KNX aus kommt funktioniert es nicht.
In der Karaf console sind die Nummern auch unterschiedlich dargstellt. Wenn es von Openahb kommt ist es immer eine Ganze zahl, kommt es von der KNX Seite, ist es immer eine Zahl mit.0 am Ende, siehe Beispiel unten.
Änderung durch KNX Schalter: Item Item 'KNXGeraete_OGBadLichtSzene' changed from 1.0 to 2.0
Änderung durch Openhab Schalter: Item 'KNXGeraete_OGBadLichtSzene' changed from 1.0 to 2
Könnte hier das Problem mit der Regel liegen und wenn ja, wie kann ich das Signal in Openhab so interpretieren, dass hier keine Nachkommastelle vorhanden ist?
Zur Info hier die Regel:
Code: Alles auswählen
configuration: {}
triggers:
- id: "1"
configuration:
itemName: KNXGeraete_OGBadLichtSzene
state: "2"
type: core.ItemStateChangeTrigger
- id: "4"
configuration:
itemName: KNXGeraete_OGBadLichtSzene
state: "1"
type: core.ItemStateChangeTrigger
conditions:
- inputs: {}
id: "5"
configuration:
itemName: OG_Bad_Radio_EINAUS
state: OFF
operator: =
type: core.ItemStateCondition
actions:
- inputs: {}
id: "2"
configuration:
command: ON
itemName: OG_Bad_Radio_EINAUS
type: core.ItemCommandAction
- inputs: {}
id: "3"
configuration:
command: "20"
itemName: OG_Bad_Radio_Volume
type: core.ItemCommandAction
Vielen Dnak schon mal für die Hilfe.
Re: Szene in der ETS über openHAB ansteuern
Verfasst: 12. Jan 2023 01:48
von udo1toni
Ja, das ist ein bekanntes Problem. Du kannst das so nicht lösen, die simple when-then-but=only=if-Variante ist dazu nicht universell genug.
Der Punkt ist, openHAB interpretiert leider 17.001 ankommend als Float-Wert (das ist natürlich verkehrt).
Außerdem "glaubt"

openHAB, es bestünde ein Unterschied zwischen 1 und 1.0, und zwar groß genug, um das nicht als Trigger zu werten.
Du könntest nun beide Schreibweisen angeben:
Code: Alles auswählen
configuration: {}
triggers:
- id: "1"
configuration:
itemName: KNXGeraete_OGBadLichtSzene
state: "2"
type: core.ItemStateChangeTrigger
- id: "2"
configuration:
itemName: KNXGeraete_OGBadLichtSzene
state: "2.0"
type: core.ItemStateChangeTrigger
- id: "3"
configuration:
itemName: KNXGeraete_OGBadLichtSzene
state: "1"
type: core.ItemStateChangeTrigger
- id: "4"
configuration:
itemName: KNXGeraete_OGBadLichtSzene
state: "1.0"
type: core.ItemStateChangeTrigger
...
oder einfach nur einen allgemeine Trigger verwenden
Code: Alles auswählen
configuration: {}
triggers:
- id: "1"
configuration:
itemName: KNXGeraete_OGBadLichtSzene
...
und dafür als Action Code verwenden, der die "richtigen" Werte herausfiltert, z.B. als Rule-Code:
Code: Alles auswählen
actions:
- inputs: {}
id: "2"
configuration:
type: application/vnd.openhab.dsl.rule
script: |-
var nScene = 0
if(newState instanceof Number)
nScene = (newState as Number).intValue
if((nScene == 1 || nScene == 2) && OG_Bad_Radio_EINAUS.state == OFF) {
OG_Bad_Radio_EINAUS.sendCommand(ON)
OG_Bad_Radio_Volume.sendCommand(20)
}
type: script.ScriptAction
Den But-only-if Teil brauchst Du dann nicht, das erledigt der Code mit.
Re: Szene in der ETS über openHAB ansteuern
Verfasst: 14. Jan 2023 08:14
von Steffen987
Hallo udo1toni,
danke für den Hinweis, dann mache ich es über den "Umweg" und nehme jede Änderung als Trigger und schreibe dann in den Code alles rein.