KNX Device Definition - Beispiele: Unterschied zwischen den Versionen

Aus FHEMWiki
KKeine Bearbeitungszusammenfassung
Zeile 2: Zeile 2:
Hier soll mit eine Austausch von funktionierenden Beispielen aus dem KNX Bereich stattfinden. Es geht um die Definition, und um die Weiterverarbeitung  mittels notify, doif, usw.
Hier soll mit eine Austausch von funktionierenden Beispielen aus dem KNX Bereich stattfinden. Es geht um die Definition, und um die Weiterverarbeitung  mittels notify, doif, usw.


Viele Anfragen im Forum beziehen sich auf Probleme bei der Definition und "Weiterverarbeitung" von KNX-Geräten. Alle User sind eingeladen, mit weiteren Beispielen mitzuwirken. Im ersten Schritt werden einige Beispiele aus der  [https://fhem.de/commandref.html#KNX Command-Ref] hier übertragen, auch um die Command-Ref (in einem zweiten Schritt) etwas kompakter zu gestalten.
Viele Anfragen im Forum beziehen sich auf Probleme bei der Definition und "Weiterverarbeitung" von KNX-Geräten. Alle User sind eingeladen, mit weiteren Beispielen mitzuwirken. Im ersten Schritt werden einige Beispiele aus der  [https://fhem.de/commandref.html#KNX Command-Ref] hierher übertragen, auch um die Command-Ref (in einem zweiten Schritt) etwas kompakter zu gestalten.
 
=== Definition - Syntax ===
<syntaxhighlight lang="text">
define <name> KNX <group>:<dpt>[:[gadName]:[set|get|listenonly]:[nosuffix]] [<group>:<DPT> ..]
</syntaxhighlight>Wie in FHEM üblich, alles was hier zwischen <...> dargestellt ist, sind mandatory Angaben! Optionales wird zwischen [...] dargestellt.
 
Detaillierte Beschreibung: siehe cmd-ref.


=== Beispiele ===
=== Beispiele ===
==== Einfaches on/off Device ====
<syntaxhighlight lang="text">
define Lampe KNX 0/10/11:dpt1
</syntaxhighlight>Einfachstes KNX-Device ohne Alias und Rückmeldung.
==== on/off Device mit Rückmeldung ====
<syntaxhighlight lang="text">
define Lampe KNX 0/10/11:dpt1:EinAus 0/10/12:dpt1:Status:listenonly
attr Lampe webcmd EinAus-get
attr Lampe devStateIcon on::off off::on
</syntaxhighlight>Hier gibt es 2 GA-Addressen, eine zum Schalten und die 2te für die Rückmeldung vom Aktor (muß natürlich via ETS so programmiert sein!).
Zusätzlich hat jede GA-Addresse nun einen Alias (=gadName), z.B. EinAus, Status. Das Attr webcmd erzeugt ein Pulldown Menue die die jeweilige Funktion ausführen. DevStateIcon hat den Sinn, damit Icons den Zustand darstellen und beim draufklicken die jeweilige Funktion ausführen. Die listenonly Option verhindert, dass ein Set oder Get Cmd im FHEMWeb dargestellt wird. - Set oder Get sind auf diesen Alias dann nicht möglich! 


==== Definition eines Sliders ====
==== Definition eines Sliders ====
Zeile 15: Zeile 36:
==== Definition eines Sliders mit Rückmeldung ====
==== Definition eines Sliders mit Rückmeldung ====
<syntaxhighlight lang="text">
<syntaxhighlight lang="text">
define Slider2_Test KNX 15/2/2:dpt5:Position:set:nosuffix 15/2/3:dpt5:PosStatus:get:nosuffix
define Slider2_Test KNX 15/2/2:dpt5.001:Position:set:nosuffix 15/2/3:dpt5.001:PosStatus:get:nosuffix
attr Slider2_Test stateCmd { fhem "sleep 0.05 quiet;; setreading $name Position $state" if ($gadName eq 'PosStatus');; return $state;; }
attr Slider2_Test webCmd Position
attr Slider2_Test webCmd Position
attr Slider2_Test widgetOverride Position:slider,0,5,100
attr Slider2_Test widgetOverride Position:slider,0,5,100
attr Slider2_Test stateCmd { fhem "set $name Position $state" if ($gadName eq 'PosStatus');; return $state;; }
</syntaxhighlight>Das Attr stateCmd setzt den Wert der vom Aktor kommt - zusätzlich in das reading 'Position', damit der Slider immer auch die aktuelle Position anzeigt. Die doppelten semicolons sind aus parsing Gründen nötig. Falls man das Atrribut über Device-Detail-view setzt, sind nur einfache ; nötig!
</syntaxhighlight>Das Attr stateCmd setzt den Wert der vom Aktor kommt - in das set-reading, damit der Slider immer auch die aktuelle Position anzeigt. Die doppelten semicolons sind aus parsing Gründen nötig. Falls man das Atrribut über Device-Detail-view setzt, sind nur einfache ; nötig!
[[Kategorie:Examples]]
[[Kategorie:Examples]]
[[Kategorie:EIB/KNX]]
[[Kategorie:EIB/KNX]]

Version vom 21. September 2021, 16:44 Uhr

Vorwort

Hier soll mit eine Austausch von funktionierenden Beispielen aus dem KNX Bereich stattfinden. Es geht um die Definition, und um die Weiterverarbeitung mittels notify, doif, usw.

Viele Anfragen im Forum beziehen sich auf Probleme bei der Definition und "Weiterverarbeitung" von KNX-Geräten. Alle User sind eingeladen, mit weiteren Beispielen mitzuwirken. Im ersten Schritt werden einige Beispiele aus der Command-Ref hierher übertragen, auch um die Command-Ref (in einem zweiten Schritt) etwas kompakter zu gestalten.

Definition - Syntax

define <name> KNX <group>:<dpt>[:[gadName]:[set|get|listenonly]:[nosuffix]] [<group>:<DPT> ..]

Wie in FHEM üblich, alles was hier zwischen <...> dargestellt ist, sind mandatory Angaben! Optionales wird zwischen [...] dargestellt.

Detaillierte Beschreibung: siehe cmd-ref.

Beispiele

Einfaches on/off Device

define Lampe KNX 0/10/11:dpt1

Einfachstes KNX-Device ohne Alias und Rückmeldung.

on/off Device mit Rückmeldung

define Lampe KNX 0/10/11:dpt1:EinAus 0/10/12:dpt1:Status:listenonly
attr Lampe webcmd EinAus-get
attr Lampe devStateIcon on::off off::on

Hier gibt es 2 GA-Addressen, eine zum Schalten und die 2te für die Rückmeldung vom Aktor (muß natürlich via ETS so programmiert sein!).

Zusätzlich hat jede GA-Addresse nun einen Alias (=gadName), z.B. EinAus, Status. Das Attr webcmd erzeugt ein Pulldown Menue die die jeweilige Funktion ausführen. DevStateIcon hat den Sinn, damit Icons den Zustand darstellen und beim draufklicken die jeweilige Funktion ausführen. Die listenonly Option verhindert, dass ein Set oder Get Cmd im FHEMWeb dargestellt wird. - Set oder Get sind auf diesen Alias dann nicht möglich!

Definition eines Sliders

define Slider_Test KNX 15/2/2:dpt5:Position
attr Slider_Test webCmd Position
attr Slider_Test widgetOverride Position-set:slider,0,5,100

Definition eines Sliders mit Rückmeldung

define Slider2_Test KNX 15/2/2:dpt5.001:Position:set:nosuffix 15/2/3:dpt5.001:PosStatus:get:nosuffix
attr Slider2_Test stateCmd { fhem "sleep 0.05 quiet;; setreading $name Position $state" if ($gadName eq 'PosStatus');; return $state;; }
attr Slider2_Test webCmd Position
attr Slider2_Test widgetOverride Position:slider,0,5,100

Das Attr stateCmd setzt den Wert der vom Aktor kommt - zusätzlich in das reading 'Position', damit der Slider immer auch die aktuelle Position anzeigt. Die doppelten semicolons sind aus parsing Gründen nötig. Falls man das Atrribut über Device-Detail-view setzt, sind nur einfache ; nötig!