Erste Schritte mit Raspberry, FHEM und KNXD

Begonnen von Vanitas, 03 Februar 2022, 08:52:33

Vorheriges Thema - Nächstes Thema

Vanitas

Hallo Zusammen

Ich bin in der Welt des Raspberry und FHEM völlig neu und komme da nun an einer Stelle nicht weiter. Vielleicht habt Ihr ja einen Tipp für mich.
Aber zunächst einmal zur Situation:

Ich habe vor einigen Jahren ein Haus gebaut und ein KNX System installiert. Das Ganze habe ich selber aufgebaut und auch mit der ETS SW entsprechend programmiert. Das läuft auch alles wie es soll. Nun möchte ich jedoch eine Visualisierung fürs Tablet / Smartphone mittels der Kombination Raspberry Pi 3B+, FHEM und KNXD verwirklichen. In allen diesen Punkten bin ich allerdings völliger Anfänger.

Folgendes habe ich bisher gemacht:

  • Das aktuelle Raspbian OS installiert und grundlegende Einstellungen (Passwort Änderung, Zeit- und Datumseinstellungen, Spracheinstellungen, Update, etc.) durchgeführt. Das Ganze läuft soweit auch wie es soll.
  • Anschließend habe ich die aktuelle FHEM 6.1 installiert und dort in der fhem.cfg einige Einträge so wie ich sie im Internet gefunden habe vorgenommen. Aktuell sieht die fhem.cfg wie folgt aus (bei basicAuth stehen natürlich nicht die Punkte drin sonder der entsprechende hash Wert):
attr global userattr cmdIcon devStateIcon:textField-long devStateStyle icon sortby webCmd webCmdLabel:textField-long widgetOverride
attr global autoload_undefined_devices 1
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global statefile ./log/fhem.save
attr global verbose 3

define WEB FHEMWEB 8083 global
attr WEB editConfig 1
attr WEB basicAuth "..."
setuuid WEB 61fb16ee-f33f-ff41-d172-a914a982f525da98
attr WEB stylesheetPrefix dark

define WEBphone FHEMWEB 8084 global
attr WEBphone stylesheetPrefix smallscreen
attr WEBphone basicAuth "..."

define WEBtablet FHEMWEB 8085 global
attr WEBtablet stylesheetPrefix touchpad
attr WEBtablet basicAuth "..."

# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log Logfile
setuuid Logfile 61fb16ee-f33f-ff41-ee4f-e4ea7373dfb8d45c

define autocreate autocreate
attr autocreate autosave 1
setuuid autocreate 61fb16ee-f33f-ff41-6eb1-3bbe9f1bf121b34f
attr autocreate filelog ./log/%NAME-%Y.log

define eventTypes eventTypes ./log/eventTypes.txt
setuuid eventTypes 61fb16ee-f33f-ff41-6270-30c6df992e151b7a

# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify global:INITIALIZED usb create
setuuid initialUsbCheck 61fb16ee-f33f-ff41-1990-cd9ff92315c5b704
attr initialUsbCheck disable 1

  • Als nächsten Schritt habe ich dann die aktuell KNXD Version (0.14.46) installiert um die Kommunikation mit dem KNX System herzustellen. Hier habe ich in der KNXD config folgenden Eintrag hinzugefügt:
KNXD_OPTS="-e 1.1.251 -E 0.0.100:8 --send-delay=30 -b ipt:192.168.178.24"
Hintergrund für diesen Eintrag ist die bei mir verbaute IP Schnittstelle von Weinzierl (KNX IP Interface 730). Die Host Physikalische Adresse in der ETS ist die 1.1.250, die Physikalische Adresse die 1.1.251. IP-Adresse der Interface ist 192.168.178.24.

/etc/init.d/knxd status ergibt folgendes:
● knxd.service - KNX Daemon
     Loaded: loaded (/lib/systemd/system/knxd.service; enabled; vendor preset: e                                                                                                                                  nabled)
     Active: active (running) since Thu 2022-02-03 08:29:09 CET; 18min ago
TriggeredBy: ● knxd.socket
   Main PID: 981 (knxd)
      Tasks: 1 (limit: 1597)
        CPU: 60ms
     CGroup: /system.slice/knxd.service
             └─981 /usr/bin/knxd -e 1.1.251 -E 0.0.100:8 --send-delay=30 -b ipt...

Feb 03 08:29:09 raspberrypi systemd[1]: Starting KNX Daemon...
Feb 03 08:29:09 raspberrypi systemd[1]: Started KNX Daemon.

    Für mich sieht es zunächst einmal so aus als würde dies laufen. Ich kann auch parallel die ETS zum programmieren verwenden, da gibt es also keine Fehlermeldung bezüglich dass das IP Interface andersweitig schon belegt ist. So wie ich das bei diesem Interface gelesen habe sind ja auch bis zu 5 Verbindungen parallel möglich.


Das ist nun also der aktuelle Stand meines Systems.
Problem welches ich nun habe ist folgendes:
Der Event Monitor im FHEM zeigt mir keinerlei Botschaften des KNX Systems an. Auch werden mit der autocreate Funktion keine Daten übernommen / angelegt. Es cheint hier also doch noch ein Kommunikationsproblem zwischen FHEM und KNXD vorzuliegen, nur weiß ich nicht an welcher STelle ich hier was falsch gemacht habe oder wo ich sonst noch schauen muss.

Hat da jemand eine hilfreiche Antwort für mich?

erwin

Hi und wilkommen im Forum!

.. das schaut alles sehr gut aus,
was noch fehlt, ist die definition des IO-Devices für KNX, die kann nicht mit autocreate erfolgen....
define myKNXIO TUL eibd:127.0.0.1 0.0.100
... unter der Annahme, dass der knxd aus derselben Host läuft wie fhem...
Dann empfehle ich noch: https://wiki.fhem.de/wiki/KNX zur Lektüre  ;D
l.g.erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Vanitas

Ja, das scheint der fehlende Punkt gewesen zu sein, das bringt mich schonmal ne Ecke weiter, besten Dank.

Falls ich nochmal irgendwo hängen bleibe melde ich mich nochmal.

Amenophis86

Noch ein Tipp
Nicht mehr direkt in der fhem.cfg arbeiten. Das kann zu Problemen führen. So ziemlich alles lässt sich über das WebUi direkt machen und wird dabei auch teilweise geprüft.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Vanitas

#4
Nachdem ich nun die ganzen KNX Geräte im FHEM hinzugefügt habe, habe ich da noch ein paar Fragen.

Zum einen geht es um Icons für die verschiedenen Sachen. Standardmäßig wird dort ja immer nur eine Birne für Schaltobjekte angezeigt, aber wo bekomme ich denn Icons für Steckdosen zum Beispiel her? Die Dokumentationen die ich dazu finde scheinen meist veraltet zu sein, da dort erwähnte Bfehle diesbezüglich nur zu Fehlermeldungen führen.

Und dann noch eine Frage zu "Slidern" für meine Dimmbaren Lampen. Das atrr Slider scheint veraltet und funktioniert nicht mehr, eine Alternative soll man angeblich im Commandref finden, aber da scheine ich blind zu sein, da dort nix in der Richtung auftaucht. Wie komme ich also an einen entsprechenden Slider für meine Lampen?

EDIT: Okay, Icons habe ich nun gefunden, da habe ich den Wald vor lauter Bäumen nicht gesehen...
Aber die Sache mit dem Dimmer (Slider) ist noch offen.

erwin

Re. Slider:
ex cmdref: More complex examples can be found on the (german) Wiki:
http://www.fhemwiki.de/wiki/KNX_Device_Definition_-_Beispiele
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Vanitas

Hallo Zusammen
Ich hätte da nochmal ein Frage. Ich würde gerneeine Temperaturauswahl für die Heizung implementieren, sprich wo man über FHEM mittels einer Werteliste aus einem definierten Temperaturbereich einen Wert wählen kann und dieser an die Heizung geschickt wird.

Temperaturauswahl habe ich aktuell wie folgt mal zum testen implementiert:


define Temperatur dummy
attr Temperatur setList Werteliste:18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0
attr Temperatur webCmd Werteliste


Damit habe ich schonmal wie gewünscht ein Drop Down Menü wo ich die gewünscht Temperatur im Bereich von 18-22° in 0.5° Schritten auswählen kann. So weit, so gut..

Wie schaffe ich es denn nun nach Auswahl eines solchen Wertes, dieses an die entsprechende KNX Nachricht für den Heizungsaktor zu schicken? In der ETS wäre es für dieses Beispiel die Nachricht 3/3/6 die einen Temperaturwert als neue Soll-Temperatur an den Aktor überträgt.

Aber irgendwie stehe ich auf dem Schlauch wie ich die obige Auswahlliste mit dem übertragen an diese Nachricht verbinde.

Amenophis86

Es macht mehr Sinn, direkt ein Device mit der entsprechenden GA anlegen und dort mit setlist und webcmd arbeiten. Wenn du noch kein KNX device angelegt hast, dann schau mal in die Commandref bzw das Wiki.
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Vanitas

#8
Also ich habe im FHEM bereits Devices für die Uhrzeit oder Datum angelegt.
Ich schaue mir diese Option in Verbindung mit setlist und webcmd mal an, danke.

Edit: Das setList scheint ja nicht gültig zu sein im direkten Zusammenhang mit einem KNX Device, zumindest bekomme ich dabei immer eine Fehlermeldung. Und laut dem FHEM Wiki ist setlist auch nur für DOIF-, dummy-, MSwitch- und readingsProxy-Devices verfügbar.

Edit2: Anstelle der setList habe ich das nun mit einem Slider, analog zu meinen Dimmbaren Lampen, umgesetzt, das funktioniert einwandfrei. Damit komme ich erstmal weiter.

erwin

nicht mit setlist, sondern mit webcmd/widgetoverride direkt im KNX-device
attr <KNX-device>  webCmd spoint
attr <KNX-device>  webCmdLabel Solltemperatur
attr <KNX-device> widgetOverride spoint:5.00,10.00,18.00,19.00,20.00,20.50,21.00,21.50,22.00,22.50,23.00,23.50,24.00,24.50,25.00,26.00,27.00,28.00,30.00

wobei spoint die GA für Solltemperatur-setzen ist...(mit nosuffix Option!)
l.g.erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

Vanitas

Meine Umsetzung mit der ich nun ganz zufrieden bin sieht so aktuell so aus:


define Wohnzimmer_Heizung KNX 3/3/0:dpt9.001:Pos:set:nosuffix
attr Wohnzimmer_Heizung alias Wohnzimmer Sollwerteinstellung
attr Wohnzimmer_Heizung group Heizung
attr Wohnzimmer_Heizung icon temp_temperature
attr Wohnzimmer_Heizung room Zentrale Funktionen
attr Wohnzimmer_Heizung webCmd Pos
attr Wohnzimmer_Heizung widgetOverride Pos:slider,18,0.5,22,1


Damit habe ich einen Slider im entsprechenden Temperaturbereich der in 0.5 Grad Schritten einstellbar ist.

Die obige Lösung schaue ich mir aber auch mal an, Danke.

erwin

Sehr cool!
Ob Slider oder Drop-down Liste ist eine Frage der Präferenz.... ;D
Ich werde in den nächsten Tagen ein (erweitertes) Beispiel zu diesem Thema ins wiki stellen.
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...