Seite 1 von 2

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

Verfasst: 16. Okt 2020 16:59
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

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

Verfasst: 17. Okt 2020 10:20
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...

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

Verfasst: 18. Okt 2020 18:24
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.

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

Verfasst: 19. Okt 2020 11:19
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


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

Verfasst: 20. Okt 2020 21:25
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

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

Verfasst: 20. Okt 2020 23:17
von udo1toni
Wo ist denn das Item?

Übrigens sind Szenen DPT 17.001, nicht vom DPT 5.001.

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

Verfasst: 21. Okt 2020 11:23
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.

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

Verfasst: 26. Okt 2020 10:41
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 ?

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

Verfasst: 26. Okt 2020 12:05
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 :)

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

Verfasst: 29. Okt 2020 20:59
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'