Ich möchte ein HM-OU-LED16 in eine structure integrieren.
mit
set A_OG_Led_16 led on
und
set A_OG_Led_16 led off
lässt sich die Led 16 schalten...
Aber:Kann ich diese in eine Sktruktur integrieren?
so:
define Licht structure room Lampe1 Lampe2 A_OG_Led_16 led
und so
define Licht structure room Lampe1 Lampe2 A_OG_Led_16.led
hat es nicht funktioniert...
Gibt es da eine Lösung?
Vielen Dank für eure Ideen!
Ich denke Dein Problem ist so einfach nicht zu lösen, denn in der structure werden ja devices hinzu gefügt, während Du ja Teilbefehle "A_OG_Led_16 led" hinzufügen willst.
Wenn ich es richtig interpretiere möchtest Du am Ende inur on / off an die Structure schicken, damit Lampe1, Lampe2 und A_OG_Led_16 alle angeschaltet werden.
Eine Möglichkeit wäre für A_OG_Led_16 einen Dummy anzulegen "A_OG_Led_16_dummy", der dann den Befehl on/off entgegennimmt und per notify dann auch set A_OG_Led_16 led on bzw. off
setzt.
Vielleicht gibt es auch elegantere Lösungen, ich würde aber vermuten, dass sich so nicht in die Struktur aufnehmen lässt (und das hat eigentlich nichts mit dem Leerzeichen zu tun)
Ein list vom Device kann uns hier sicherlich mehr Licht ins Dunkel bringen.
du bringst gerade device und kommando durcheinander: A_OG_Led_16 ist das device und led on das kommando.
wenn es dir darum geht das du in der strucutre unterschiedliche kommandos für die unterschiedlichen devices hast dann kannst du mit eventMap oder den _map attributen dafür sorgen das die kommandos gleich sind. das sollte auch über cmdAlias gehen.
wenn du ganz allgemein devices mit unterschiedlichem zustand zusammen fassen willst ist LightScene besser geeignet als structure.
ansonsten ist mir aber nicht ganz klar warum die die led der anzeigeeinheit mit den tatsächlichen lampen zusammen fassen willst. wenn es dir darum geht am display zu sehen ob die lampen gerade an sind solltest du dir notify ansehen. damit kannst du auf ereignisse reagieren. wie z.b. das die lampen an oder aus geschaltet werden und dann abhängig davon das display schalten. das hat den vorteil es es auch funktioertn wenn die lampen nicht über die structure oder fhem geschaltet werden.
Ich möchte den code schlank halten, und da ich schon die Gruppen definiert habe, hoffe ich die Anzeige hier einfach integrieren zu können.
Ein zusätzliches notify wollte ich umgehen.
Mir ist nicht klar, warum das commando "led on" heisst. Was soll man denn an einer LED anderes schalten, als die LED selber....
"on" "off" wäre ja völlig ausreichend.
Hier die Ausgabe des Befehls "list A_OG_Led_16"
Internals:
DEF 4CF77A10
NAME A_OG_Led_16
NOTIFYDEV global
NR 249
STATE on
TYPE CUL_HM
chanNo 10
device A_OG
Readings:
2016-11-25 13:58:56 CommandAccepted yes
2016-11-25 13:58:56 color orange
2016-11-25 13:58:56 recentStateType ack
2016-11-25 13:58:56 state orange
Helper:
Expert:
def 1
det 0
raw 1
tpl 0
Role:
chn 1
Tmpl:
Attributes:
eventMap green:anwesend red:abwesend orange:on
model HM-OU-LED16
Zitat von: leitronic am 06 Dezember 2016, 09:05:59
Ich möchte den code schlank halten, und da ich schon die Gruppen definiert habe, hoffe ich die Anzeige hier einfach integrieren zu können.
Ein zusätzliches notify wollte ich umgehen.
Mir ist nicht klar, warum das commando "led on" heisst. Was soll man denn an einer LED anderes schalten, als die LED selber....
"on" "off" wäre ja völlig ausreichend.
Hier die Ausgabe des Befehls "list A_OG_Led_16"
Internals:
DEF 4CF77A10
NAME A_OG_Led_16
NOTIFYDEV global
NR 249
STATE on
TYPE CUL_HM
chanNo 10
device A_OG
Readings:
2016-11-25 13:58:56 CommandAccepted yes
2016-11-25 13:58:56 color orange
2016-11-25 13:58:56 recentStateType ack
2016-11-25 13:58:56 state orange
Helper:
Expert:
def 1
det 0
raw 1
tpl 0
Role:
chn 1
Tmpl:
Attributes:
eventMap green:anwesend red:abwesend orange:on
model HM-OU-LED16
Warum das Kommando "led on" heisst ergibt sich, wenn Du Dein list anschaust (in Code tags wäre das übrigens besser lesbar). Der Typ des devices CUL_HM ist und CUL_HM repräsentiert nicht nur LEDs sondern quasi alle HM Devices (Taster etc). Also in diesem Fall ist der Devicetyp eben nicht eine LED, sondern "irgendein" homematic device / channel. CUL_HM unterstützt dementsprechend eine Unmenge von spezifischen Funktionen (set/get) für die Teildevices in Homematic.
Ansonsten kann ich nur unterstreichen was justme1968 gesagt hat, dass ein notify hier der FHEM-typische Ansatz wäre.
Hm ich habe schon über 50 notifys in meinem fhem, und finde das langsam unübersichtlich. Wenn jetzt jede der 32 LEDs der beiden
HM-OU-LED16 ein eigenes notify braucht finde ich das nicht gerade toll ;)
hier noch die List in "schön"
Internals:
DEF 4CF77A10
NAME A_OG_Led_16
NOTIFYDEV global
NR 249
STATE on
TYPE CUL_HM
chanNo 10
device A_OG
Readings:
2016-11-25 13:58:56 CommandAccepted yes
2016-11-25 13:58:56 color orange
2016-11-25 13:58:56 recentStateType ack
2016-11-25 13:58:56 state orange
Helper:
Expert:
def 1
det 0
raw 1
tpl 0
Role:
chn 1
Tmpl:
Attributes:
eventMap green:anwesend red:abwesend orange:on
model HM-OU-LED16
Ich sehe im list kein "led". Der STATE ist ja btw auch nicht "led on" sondern nur "on" Auch Rolladen schalter kennen "on" und "off" und nicht "slider on" oder so...
Nur in der Ausgabe des set steht "led":
Unknown argument orange, choose one of clear getConfig getRegRaw ilum led peerBulk regBulk regSet sign statusRequest
Jedenfalls vielen Dank für die rege Anteilnahme! :)
Zitat von: leitronic am 06 Dezember 2016, 17:50:17
Ich sehe im list kein "led". Der STATE ist ja btw auch nicht "led on" sondern nur "on" Auch Rolladen schalter kennen "on" und "off" und nicht "slider on" oder so...
Wieso hattest Du da jetzt ein led erwartet? War das ein Missverständnis?
Wenn man die Led 16 orange (grün+rot an) schalten will muss man set A_OG_Led_16 led on
eingeben,
da würde ich erwarten, dass der State eben diesem Kommando entspricht, also STATE led on
Besser fände ich wenn der Befehl set A_OG_Led_16 on
zu STATE on
führen würde, wie bei anderen Homematic-Geräten auch
Ein erster Blick in die 10_CUL_HM.pm zeigt, dass die HM-OU-LED16 separat behandelt werden.
Aber das kann sich ja ändern. Ich habe nun schon öfter erlebt, dass nach einem Update HM-Geräte Kanäle oder Befehle nicht mehr gleich sind. ;)
Mir ist nicht klar, wie das helfen würde, wenn der Status "led on" wäre, denn für die structure wäre damit ja nichts anders.
Wenn Du hier eine Änderung erreichen willst, würde ich Dir raten einen Beitrag mit dem Vorschlag direkt in den Homematic-Bereich zu setzen. Vielleicht finden sich dort ja andere Unterstützer.
die HM-OU-LED16 kanäle haben kein on kommando. wenn man die led orange schalten will muss man set <name> led orange sagen. das es bei dir auch mit on funktioniert liegt an deiner eventMap. bei so ziemlich jedem anderen ist funktioniert das nicht.
du schmeisst immer noch readings, kommandos (mit und ohne paramter) und STATE durcheinander.
einen dimmer oder rolladen den du mit set <name> pct 50 steuerst hat hinterher in STATE auch nicht pct 50 stehen sondern nur 50 oder sogar etwas ganz anderes falls es probleme gab. was genau in STATE stehen soll kannst du mit stateFormat beeinflussen.
genauso wie du das orange auf on umgebogen hast kannst du dir mit eventMap oder cmdalias oder mit den _map attributen ein on kommando zurecht biegen. bitte mach dich so weit mit den grundlagen vertraut das du verstehst wie die zusammenhänge sind statt vorzuschlagen irgendwelche befehle sinnlos zu ändern.
Stimmt, ich habe übersehen, dass ich "on" selber definiert hatte...
cmdalias hatte ich in Erwägung gezogen, aber verworfen, da
define s1 cmdalias on AS led orange
zwar den Zweck erfüllen, aber ALLE on verbiegen würde, und damit die anderen Geräte ein Problem hätten?
nein. du kannst cmdalias so spezifisch verwenden das du alle set on ersetzt oder nur das für ein device.
dein cmdalias beispiel macht noch was anderes und definiert ein neues kommando on (ohne set) das dann led orange ausführt ebenfalls ohne set. das ist sinnlos und nicht das was du willst.