KNX-Szenen werden mit "received command" über den Taster nicht getriggert

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

cupra6
Beiträge: 35
Registriert: 4. Jan 2019 22:09

KNX-Szenen werden mit "received command" über den Taster nicht getriggert

Beitrag von cupra6 »

Die KNX-Szenen werden leider nicht getriggert, weder beim "received command", noch beim "changed".
Das einzige was funktioniert, ist "received update". Der Nachteil beim "received update" ist, dass beim Neustart von openhab2 die Szenen auch getriggert werden, d.h. beim Neustart werden verschiedene Lampen aus- und wieder eingeschaltet.
Alle openhab2-Rules für alle anderen ITEMS funktionieren mit "received command", nur die "echten" KNX-Scenen (0-63 bw. 1-64) funktionieren nicht mit "received command". Ist das Verhalten normal oder gibt es eine Abhilfe dafür ?



knx.items

Code: Alles auswählen

Switch  ENO_SD_OG1 	"Steckdose links [%s]"  	<light>	(gOG)	{channel="knx:device:bridge:KNX1:Kanal_01A"}
Switch  ENO_SD_OG2         "Steckdose rechts [%s]"	<light>      (gOG)	{channel="knx:device:bridge:KNX1:Kanal_01B"}

Number      SCN1       "Scene1 - Aufstehen"              	<boy_2>       	(gScenes,gOG_Scene)      {channel="knx:device:bridge:generic:SCN1"}
Number      SCN2       "Scene2 - Schlafen-Gehen" 	<boy_2>		(gScenes,gOG_Scene)      {channel="knx:device:bridge:generic:SCN2"}

knx.things

Code: Alles auswählen

Bridge knx:ip:bridge "Weinzierl 730 IP" @ "KNX" [
    type="TUNNEL",                            // Tunnel Modus
    ipAddress="192.168.178.230"         // IP-Adresse der knx/IP-Schnittstelle

 ] {
	Thing device generic [
        ] {
        Type    number : SCN1        "Scene1 - Aufstehen"		[ ga="5.001:<7/2/1" ]
        Type    number : SCN2        "Scene2 - Schlafen-Gehen"	[ ga="17.001:<7/2/2" ] 
        }
        
       	Thing device central [] {
        Type switch-control : house_scene_Koch_Esszeit "Koch- Esszeit Szene in OH2" [ ga="2/0/8" ] 
    }
    
	Thing device KNX1	"Aktor" @ "KNX" [address="1.1.2", fetch=false, pingInterval=600, readInterval=0]   
        {
        Type    switch  :   Kanal_01A               "Steckdose links"		[ ga="5/1/0+<5/1/2" ]
        Type    switch  :   Kanal_01B               "Steckdose rechts"            [ ga="5/1/4+<5/1/6" ]
       
}

knx.rules

Code: Alles auswählen

rule 		"Scene1_AUFSTEHEN"
when
		Item SCN1 received update
		//received command         funktioniert NICHT
		//changed			funktioniert NICHT	
then
        logInfo("knx.rules", "SCN1 - Aufsteh-Zeit rule triggered")
        if(ENO_SD_OG1.state==ON) {
           ENO_SD_OG1.sendCommand(OFF)
            }
        Thread::sleep(500)
        if(ENO_SD_OG2.state==OFF) {
            ENO_SD_OG2.sendCommand(ON)
            }
    	Echo_Living_Room_TTS.sendCommand('Guten Morgen Szene aktiviert')
end
Zuletzt geändert von cupra6 am 20. Okt 2020 21:26, insgesamt 1-mal geändert.

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

Re: KNX-Szenen werden mit "received command" nicht getriggert

Beitrag von udo1toni »

Du musst den Channel als number-control anlegen.

Der Unterschied zwischen den "normalen" und den *.control Channels: bei *.control Channels wird ein empfangenes Telegramm über den Bus in openHAB als Command gewertet, bei den anderen Channels wird es als Update gewertet.
Gewöhnlich bildet man in openHAB Aktoren ab, nicht die Schalter.
Bei einer Deckenleuchte ist es openHAB z.B. egal, über welchen Schalter sie geschaltet wird, wichtig ist nur der Zustand der Leuchte (ON/OFF oder 0-100% bei einem Dimmer) sowie die Möglichkeit, die Leuchte selbst zu schalten.
Im Fall von Szenen geht es aber explizit um Schaltbefehle, auf die openHAB reagieren soll (gleich über welchen Weg diese Befehle in knx ausgelöst werden), nicht um die Überwachung und Steuerung eines Aktors.

Die Szenennummer ist in openHAB 0-basiert, da die Information auf dem Bus ebenfalls 0-basiert übertragen wird (0-63). Die ETS zeigt den Wert aber 1-basiert an, also 1-64. Das ist erst mal sehr verwirrend, zumal dies in ETS nicht weiter erläutert wird. Vermutlich glaubte man, Elektriker könnten das 0-basierte System nicht begreifen...
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

cupra6
Beiträge: 35
Registriert: 4. Jan 2019 22:09

Re: KNX-Szenen werden mit "received command" nicht getriggert

Beitrag von cupra6 »

Ok, also muss ich nur auf .control ändern und dann sollte es funktionieren ?

VON:
Type number: SCN1 "Scene1 - Aufstehen" [ ga="5.001:<7/2/1" ]

AUF:
Type number-control: SCN1 "Scene1 - Aufstehen" [ ga="5.001:7/2/1" ]

Dann werde ich es so ausprobieren und ein Feedback geben.

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

Re: KNX-Szenen werden mit "received command" nicht getriggert

Beitrag von udo1toni »

Ja, genau. Und eben auf die Szenennummer achten. Szene 1 in ETS ist Szene 0 in openHAB.

Gesendet von meinem SM-G973F mit Tapatalk

openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

cupra6
Beiträge: 35
Registriert: 4. Jan 2019 22:09

Re: KNX-Szenen werden mit "received command" nicht getriggert

Beitrag von cupra6 »

Hmm, wahrscheinlich habe ich es vergessen zu erwähnen, aber das Problem tritt nur auf, wenn ich die Szene über den Taster aufrufe.
Wenn ich die Szene über die OH2-Sitemap auswähle, greift die Rule sofort. Ich hab es gerade über den Taster probiert, leider keine Reaktion.

Code: Alles auswählen

Type number-control: SCN1 "Scene1 - Aufstehen" [ ga="5.001:7/2/1" ]

Code: Alles auswählen

rule 		"Scene1_AUFSTEHEN"
when
		Item SCN1 received command
then
        logInfo("knx.rules", "SCN1 - Aufsteh-Zeit rule triggered")
        if(ENO_SD_OG1.state==ON) {
           ENO_SD_OG1.sendCommand(OFF)
            }
        Thread::sleep(500)
        if(ENO_SD_OG2.state==OFF) {
            ENO_SD_OG2.sendCommand(ON)
            }
    	Echo_Living_Room_TTS.sendCommand('Guten Morgen Szene aktiviert')
end

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

Re: KNX-Szenen werden mit "received command" über den Taster nicht getriggert

Beitrag von udo1toni »

Wo ist denn das Item?

Übrigens sind Szenen DPT 17.001, nicht vom DPT 5.001.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

cupra6
Beiträge: 35
Registriert: 4. Jan 2019 22:09

Re: KNX-Szenen werden mit "received command" über den Taster nicht getriggert

Beitrag von cupra6 »

Das Item ist da, hab es vergessen reinzukopieren:

Code: Alles auswählen

Switch  ENO_SD_OG1 	"Steckdose links [%s]"  	<light>	(gOG)	{channel="knx:device:bridge:KNX1:Kanal_01A"}
Switch  ENO_SD_OG2         "Steckdose rechts [%s]"	<light>      (gOG)	{channel="knx:device:bridge:KNX1:Kanal_01B"}

Number      SCN1       "Scene1 - Aufstehen"              	<boy_2>	(gScenes,gOG_Scene)      {channel="knx:device:bridge:generic:SCN1"}
Number      SCN2       "Scene2 - Schlafen-Gehen" 	<boy_2>	(gScenes,gOG_Scene)      {channel="knx:device:bridge:generic:SCN2"}
Die Szenen habe ich auf 17.001 geändert, leider keine Veränderung.

cupra6
Beiträge: 35
Registriert: 4. Jan 2019 22:09

Re: KNX-Szenen werden mit "received command" über den Taster nicht getriggert

Beitrag von cupra6 »

Müsste die Rule mit "received command" mit diesen ITEMS und THINGS so funktionieren?

Oder müsste ich noch in der ITEMS das ITEM zu number-control ändern ?

Falls nicht, woran könnte es noch liegen ?

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

Re: KNX-Szenen werden mit "received command" über den Taster nicht getriggert

Beitrag von udo1toni »

Es gibt keine *-control Items. BITTE, Things und Channel haben nichts mit Items zu tun, das sind zwei komplett unterschiedliche Dinge. Erst mit dem verlinken eines (oder mehrerer) Channelmit einem (oder mehreren) Item(s) besteht eine Verbindung zwischen beiden.

Siehst Du denn im events.log etwas von dem Channel? Du könntest auch mal ins openhab.log schauen, ob es Fehlermeldungen bezüglich knx gibt.
Notfalls kannst Du das Logging für knx hochdrehen. Dazu loggst Du Dich in die karaf Konsole ein. Das Logging ist unmittelbar aktiv, das bedeutet, Du schaltest das Logging hoch, drückst den Szenen-Taster und drehst das Logging zurück. Anschließend kannst Du in openhab.log nachschauen, was knx getan hat. Also

Code: Alles auswählen

openhab@openhab2:~$ openhab-cli console

Logging in as openhab
Password:

                          __  _____    ____
  ____  ____  ___  ____  / / / /   |  / __ )
 / __ \/ __ \/ _ \/ __ \/ /_/ / /| | / __  |
/ /_/ / /_/ /  __/ / / / __  / ___ |/ /_/ /
\____/ .___/\___/_/ /_/_/ /_/_/  |_/_____/
    /_/                        2.5.8
                               Release Build

Hit '<tab>' for a list of available commands
and '[cmd] --help' for help on a specific command.
Hit '<ctrl-d>' or type 'system:shutdown' or 'logout' to shutdown openHAB.

openhab> log:set DEBUG org.openhab.binding.knx
openhab> log:set INFO org.openhab.binding.knx
openhab> logout
openhab@openhab2:~$
DEBUG setzt den Level hoch, INFO setzt ihn wieder zurück. Das Passwort ist (per default) habopen
Meldungen sehen dann so aus:

Code: Alles auswählen

2020-10-26 11:50:46.316 [DEBUG] [nx.internal.client.AbstractKNXClient] - Wrote value '2020-10-26T11:50:46.287+0100' to datapoint 'command DP 15/7/10 'knx:ip:bridge', DPT id 10.001, low priority' (0. attempt).
Aus dem ausführlichen Logging kannst Du die gesammte Kommunikation des Busses erkennen, so wie er im openHAB Addon ankommt bzw. gesendet wird. Dabei werden auch nicht konfigurierte GA angezeigt :)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

cupra6
Beiträge: 35
Registriert: 4. Jan 2019 22:09

Re: KNX-Szenen werden mit "received command" über den Taster nicht getriggert

Beitrag von cupra6 »

Ok, hab es genauso nach der Anleitung gemacht.
Es hat immer noch nicht funktioniert, sobald ich den Taster gedrückt habe, triggerte die rule immer noch nicht, obwohl über den BUS etwas reinkam:

2020-10-29 20:50:32.356 [DEBUG] [.internal.handler.DeviceThingHandler] - onGroupWrite Thing 'knx:device:bridge:generic' received a GroupValueWrite telegram from '1.1.6' for destination '7/2/1'

Antworten