KNX Device Definition - Beispiele: Unterschied zwischen den Versionen
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] | 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 | ||
</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 | |||
[[Kategorie:Examples]] | [[Kategorie:Examples]] | ||
[[Kategorie:EIB/KNX]] | [[Kategorie:EIB/KNX]] |
Version vom 21. September 2021, 15: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!