knxd (USB) -OpenHAB 2.5 (Früher OpenHAB 2.2)

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
davyb
Beiträge: 5
Registriert: 12. Jan 2020 22:18
Answers: 0

knxd (USB) -OpenHAB 2.5 (Früher OpenHAB 2.2)

Beitrag von davyb »

Hallo Zusammen,
vorab möchte ich mich entschuldigen für die Grammatik - Als Franzose probiere ich so gut wie ich kann Fehler zu vermeiden ;)

Ich benutze OpenHAB um meine Rolläden zu konfigurieren. Anstatt ins ETS5 die Befehle zu programmieren benutze ich die "rules".
Meine Konfiguration bis vor ein paar Tage:
- Raspberry 3 Model B
- OpenHAB 2.2 (KNX Binding - nicht installiert)
- knxd Verbindung mit ABB STOTZ USB
funktioniert bis heute tadellos.

Ich wollte jetzt die neue Software benutzen. Also neue SD Karte + neue Installation.
- Raspberry 3 Model B
- OpenHAB 2.5 (KNX Binding - nicht installiert da im 2.2 auch nicht installiert war)
- knxd Verbindung mit ABB STOTZ USB

/etc/default/knxd datei

Code: Alles auswählen

KNXD_OPTIONS="--eibaddr=1.1.128 --client-addrs=1.1.129:1 -d -D -T -R -S -i --listen-local=/tmp/knx -b usb:"
in Konsole von Raspberry kann ich mein Rolläden auf und zu machen.

Code: Alles auswählen

knxtool groupswrite ip:localhost 1/0/12 0
knxtool groupswrite ip:localhost 1/0/12 1
es funktioniert - Verbindung steht.

Ich wollte für OpenHAB mein vorhandene Konfiguration benutzen, also "knx.items" unter items, "knx.rules" unter rules, "knx.sitemap" unter sitemaps und "knx.cfg" unter services kopiert. "knx.things" war bei mir immer leer.
als Beipiel nur mit 1 Rolladen (Küche):
knx.items:

Code: Alles auswählen

Rollershutter Rollladen_EG_KZ "EG Küche [%d %%]" (rolladenKZ,AllRollo,RolloWest,RolloSommerWestKlein) {knx="1/0/12,1/0/13"}
Switch Tasten_Kueche_1_lang (gTasten) {knx="6/2/16"}
Switch Tasten_Kueche_1_kurz (gTasten) {knx="6/2/17"}
Switch Tasten_Kueche_2_lang (gTasten) {knx="6/2/18"}
Switch Tasten_Kueche_2_kurz (gTasten) {knx="6/2/19"}
knx.rules

Code: Alles auswählen

rule "Tasten_Kueche_1_lang" //Rollladen_EG_KZ
	when
		Item Tasten_Kueche_1_lang received command 
		//Item Tasten_Kueche_1_lang changed to ON
	then
			logInfo("Tasten_Kueche_1_lang", "Tasten_Kueche_1_lang - Start")
			if (receivedCommand == ON){
				logInfo("Tasten_Kueche_1_lang", "Rollladen_EG_KZ - DOWN")
				sendCommand(Rollladen_EG_KZ, DOWN)
			}else{
				logInfo("Tasten_Kueche_1_lang", "Rollladen_EG_KZ - UP")
				sendCommand(Rollladen_EG_KZ, UP)
			}
			logInfo("Tasten_Kueche_1_lang", "Tasten_Kueche_1_lang - End")
end
knx.sitemap:

Code: Alles auswählen

sitemap knx label="Davy home automation"{
		Frame label="Haus" {
				Switch item=Rollladen_EG_KZ label="Rollo Küche" icon="rollershutter"  mappings=[UP="Hoch", STOP="Stop", DOWN="Runter"]		
			}
}
knx.cfg:

Code: Alles auswählen

ip=192.168.178.44
busaddr=0.0.0
ignorelocalevents=true
type=TUNNEL
localIp=192.168.178.44
serialPort=/dev/ttyS1
readRetries=1
leider wenn ich mein "switch" in OpenHAB Sitemap drücke, Rolladen fährt nicht runter oder hoch.
Vielleicht kann mir Jemand helfen und ein kleiner Info geben ?
Vielen Dank und Grüße
Davy

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

Re: knxd (USB) -OpenHAB 2.5 (Früher OpenHAB 2.2)

Beitrag von udo1toni »

Hallo und willkommen im Forum!
Zuerst mal Hut ab, wenn ich als Deutscher nur halb so gut englisch schreiben könnte wie Du als Franzose deutsch schreibst (französisch hatte ich nie...) wäre ich überglücklich.
Nun zum eigentlichen Problem:
Es gibt zwei knx Bindings, unter openHAB2.2 müsstest Du das knx1 Binding installiert gehabt haben, ohne Binding könnte openHAB nicht mit knxd kommunizieren. In openHAB ab Version 2.3 gibt es das knx2 Binding, welches komplett anders konfiguriert wird.
openHAB2.5 kann auch das knx1 Binding nutzen (Du musst dazu in Paper UI->Configurations->System->Add-on Management-> Include Legacy 1.x Bindings aktivieren, damit knx1 in der Liste der installierbaren Bindings auftaucht.
Allerdings wäre es besser, das knx2 Binding zu installieren und die Konfiguration anzupassen.
knx2 kann vollständig über Paper UI konfiguriert werden, es geht aber auch über Textdateien. Alle openHAB2-Addons verwenden das Things Modell zur Konfiguration. Entsprechend muss man die Konfiguration dann über eine *.things Datei anlegen und die Channel mit den Items verlinken. Eine knx.cfg gibt es dafür nicht mehr, das wird mit im Thing erledigt.
/etc/openhab2/things/knx.things:

Code: Alles auswählen

//TUNNEL
Bridge knx:ip:bridge [  
    type="TUNNEL", 
    ipAddress="192.168.178.44", 
    portNumber=3671, 
    localIp="192.168.178.44",
    readingPause=50, 
    responseTimeout=10, 
    readRetriesLimit=3, 
    autoReconnectPeriod=60,
    localSourceAddr="0.0.0"
] {
    Thing device generic [
    ] {
        Type switch        : ch1long   "Küche 1 lang" [ ga="6/2/16" ]
        Type switch        : ch1short  "Küche 1 kurz" [ ga="6/2/17" ]
        Type switch        : ch2long   "Küche 2 lang" [ ga="6/2/18" ]
        Type switch        : ch2short  "Küche 2 kurz" [ ga="6/2/19" ]
        Type rollershutter : shutter01 "Shade"        [ upDown="1/0/12", stopMove="1/0/13" ]
    }
}
Dazu müssen die Items anders verlinkt werden:

Code: Alles auswählen

Rollershutter Rollladen_EG_KZ "EG Küche [%d %%]" (rolladenKZ,AllRollo,RolloWest,RolloSommerWestKlein) { channel="knx:device:bridge:generic:shutter01" }
Switch Tasten_Kueche_1_lang (gTasten) { channel="knx:device:bridge:generic:ch1long" }
Switch Tasten_Kueche_1_kurz (gTasten) { channel="knx:device:bridge:generic:ch1short" }
Switch Tasten_Kueche_2_lang (gTasten) { channel="knx:device:bridge:generic:ch2long" }
Switch Tasten_Kueche_2_kurz (gTasten) { channel="knx:device:bridge:generic:ch2short" }
Ein Thing entspricht nach dem Entwicklerwillen einem Gerät auf dem Bus, also z.B. ein 6-Kanal-Schaltaktor im Schaltschrank.
Da knx auf dem Bus aber keine eindeutige Zuordnung der Geräte nutzt, kann man auch den knx Bus insgesamt als ein Gerät betrachten und entsprechend nur ein Thing anlegen (siehe oben), das ist letztlich Geschmackssache.

Wenn man VisualStudio Code als Editor benutzt (mit dem Plugin für openHAB), kann man Items automatisch aus Things oder einzelnen Channels erzeugen lassen. Wenn man mehrere gleichartige Geräte hat, kann man komplette Things kopieren und sich damit etwas Arbeit ersparen (ich habe bei mir dazu die Gruppenadressen günstig definiert, so dass ich meist nur einzelne Ziffern pro Channel ändern muss. ;)
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

davyb
Beiträge: 5
Registriert: 12. Jan 2020 22:18
Answers: 0

Re: knxd (USB) -OpenHAB 2.5 (Früher OpenHAB 2.2)

Beitrag von davyb »

@udo1toni,
super vielen Dank für deine Antwort. Ich habe mich für knx2 Binding Variant entschieden, und habe jetzt ein Verbindung und kann die Rolläden steuern.
Ich habe jetzt per Textdateien probiert, werde aber auch probieren über die PaperUI oder HABmin.

Andere Probleme:
Ich hatte ein paar "rules" für automatische runterfahren von die Rollo am Abend um ein definierte Zeit. Hatte bis jetzt die "Time cron" Definition benutzt.
ich habe mir ein "rules" erstellt als Probe:

Code: Alles auswählen

rule "rollershutterdown-night"
	when
		Time cron "0 45 19 ? * MON-SUN"
	then
			logInfo("rollershutterdown-night", "Bin da rollershutterdown-night - Start")
			AllRollo?.members.forEach(item,i|createTimer(now.plusSeconds(i)) [|sendCommand(item, DOWN)])
			logInfo("rollershutterdown-night", "Bin da rollershutterdown-night - End")
end
Hat sich da auch etwas geändert? Ich meine mit "Time cron"
Ein "rule" wie:

Code: Alles auswählen

rule "Tasten_Kueche_1_kurz" //Rollladen_EG_KZ
	when
		Item Tasten_Kueche_1_kurz received command 
		//Item Tasten_Kueche_1_kurz changed to ON
	then
			logInfo("Tasten_Kueche_1_kurz", "Tasten_Kueche_1_kurz - Start")
			logInfo("Tasten_Kueche_1_kurz", "Rollladen_EG_KZ - STOP")
			sendCommand(Rollladen_EG_KZ, STOP)
			logInfo("Tasten_Kueche_1_kurz", "Tasten_Kueche_1_kurz - End")
end
funktioniert ohne Probleme.

Ich habe probiert der HABmin zu benutzen, aber leider findet man nicht so viel Erklärung dafür. Und ein "Automatisierung - Regeln" in Puzzle Form zu definieren - Nicht ganz leicht :shock:

Vielen Dank

davyb
Beiträge: 5
Registriert: 12. Jan 2020 22:18
Answers: 0

Re: knxd (USB) -OpenHAB 2.5 (Früher OpenHAB 2.2)

Beitrag von davyb »

:oops: Peinlich :oops:
Logviewer war in falsche Timezone ;)
Sorry

davyb
Beiträge: 5
Registriert: 12. Jan 2020 22:18
Answers: 0

Re: knxd (USB) -OpenHAB 2.5 (Früher OpenHAB 2.2)

Beitrag von davyb »

@udo1toni

hätte doch eine kleine Frage.
ich habe ein Temperatur/Helligkeit Sensor draußen (LUNA 131 EIB)
LUNA 131 EIB - Sued.png
diese hat 2 Adresse:
- 6/1/4 --> Helligkeit
- 6/1/1 --> Temperatur

mein Things:

Code: Alles auswählen

	Thing device Sensor "Sensor"[
		]
	{
        Type number        : demoTemperature   "Temperature" [ ga="9.001:<6/1/1" ]
        Type number        : HeligkeitSued   "Heligkeit Süd" [ ga="9.004:<6/1/4" ]
}
mein item:

Code: Alles auswählen

Number        demoTemperature    "Temperature [%.1f °C]"    <temperature>    { channel="knx:device:bridge:Sensor:demoTemperature" }
Number        HeligkeitSued    "Heligkeit [%.1f lux]"    					     { channel="knx:device:bridge:Sensor:HeligkeitSued" }
sitemap:

Code: Alles auswählen

Text   item=demoTemperature
Text   item=HeligkeitSued
leider bekomme ich kein Wert in mein SITEMAP angezeigt. Mit OpenHAB 2.2 war kein Problem.

dazu bekomme ich ein [WARN] in log:

Code: Alles auswählen

2020-01-14 10:12:50.477 [WARN ] [nx.internal.client.AbstractKNXClient] - Giving up reading datapoint 6/1/1, the number of maximum retries (3) is reached.

2020-01-14 10:13:20.641 [WARN ] [nx.internal.client.AbstractKNXClient] - Giving up reading datapoint 6/1/4, the number of maximum retries (3) is reached.
Was kann ich ändern dass es funktioniert?

Vielen Dank
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

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

Re: knxd (USB) -OpenHAB 2.5 (Früher OpenHAB 2.2)

Beitrag von udo1toni »

Hmm... Die Definition sieht eigentlich gut aus.
Das WARN Logging gibt schon Auskunft, dass der Query fehlschlägt.
Hast Du schon mal versucht, den DPT nicht mit anzugeben?
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

davyb
Beiträge: 5
Registriert: 12. Jan 2020 22:18
Answers: 0

Re: knxd (USB) -OpenHAB 2.5 (Früher OpenHAB 2.2)

Beitrag von davyb »

strange...
ich habe die Daten so gelassen wie die waren.
Ich habe andere Konfiguration gemacht in der Zeit für andere Geräte - Und nach ein paar "restart", erhalte ich jetzt die Werte.

Kleine Update über die Konfigurationsdateien:
Ich habe alle Konfiguration neu gemacht und alles funktioniert einmal frei.

Vielen Dank für deine Hilfe.

Antworten