Statusänderung Fms 61Np am Fhemschalter anzeigen

Begonnen von roland61, 16 August 2014, 13:08:15

Vorheriges Thema - Nächstes Thema

roland61

Hallo, hab alles probiert, klappt nicht. Irgendwie fehlt mir der Bezug auf den Aktor bzw. dessen Schaltzustand, oder seh ich das falsch? Irgendwoher müssen die beiden readingsproxy devices doch wissen von welchem Aktor sie den Zustand anzeigen sollen?

Hab jetzt alles angehängt wie es momentan ist. Kann die Lampen zwar via readingsproxy device beide schalten, aber aber wenn ich die eine schalte, wechselt das andere Icon den Zustand und an/aus ist auch vertauscht.

Gruss Roland

Internals:
   DEF        Li_Kue_Fhem:state
   DEVICE     Li_Kue_Fhem
   NAME       Li_Kue_SP
   NR         31
   NTFY_ORDER 50-Li_Kue_SP
   READING    state
   STATE      off
   TYPE       readingsProxy
   Content:
     Li_Kue_Fhem 1
   Readings:
     2014-08-17 14:30:35   lastCmd         off
     2014-08-17 14:30:42   state           off
Attributes:
   room       Kueche
   setFn      {($CMD eq "on")?"B0":"BI";;}
   setList    on off
   valueFn    {($VALUE eq "B0")?"on":"off"}
   webCmd     on:off


Internals:
   DEF        Li_Kue_Fhem
   DEVICE     Li_Kue_Fhem
   NAME       Li_Kue_Ti
   NR         30
   NTFY_ORDER 50-Li_Kue_Ti
   READING    state
   STATE      off
   TYPE       readingsProxy
   Content:
     Li_Kue_Fhem 1
   Readings:
     2014-08-17 14:30:42   lastCmd         off
     2014-08-17 14:30:42   state           off
Attributes:
   room       Kueche
   setFn      {($CMD eq "on")?"A0":"AI";;}
   setList    on off
   valueFn    {($VALUE eq "A0")?"on":"off"}
   webCmd     on:off


Internals:
   DEF        0185008D
   IODev      TCM310_0
   LASTInputDev TCM310_0
   MSGCNT     362
   NAME       Li_Kue
   NOTIFYDEV  global
   NR         23
   STATE      B0
   TCM310_0_DestinationID FFFFFFFF
   TCM310_0_MSGCNT 362
   TCM310_0_PacketType 1
   TCM310_0_RSSI -91
   TCM310_0_ReceivingQuality bad
   TCM310_0_RepeatingCounter 0
   TCM310_0_SubTelNum 3
   TCM310_0_TIME 2014-08-17 14:30:43
   TYPE       EnOcean
   Readings:
     2014-08-17 14:30:43   buttons         pressed
     2014-08-17 14:30:37   channelA        A0
     2014-08-17 14:30:43   channelB        B0
     2014-08-17 14:30:43   state           B0
Attributes:
   room       Kueche
   subDef     FFF52A01
   switchType universal

krikan

#16
In der Definition des readingsProxy wid auf den Aktor Bezug genommen, woraus die Zuordnung Aktordevice-Proxy klar ist:

define proxy readingsProxy <NAME AKTORDEVICE>:channelA
--> Ist das erfüllt?

Im Aktordevice mal switchType auf direction geändert und eingelernt, auch kein Erfolg?
Alternativ schreibe erst einmal was jeweils bei Eingabe passiert:
set <NAME AKTORDEVICE> A0
set <NAME AKTORDEVICE> AI
set <NAME AKTORDEVICE> B0
set <NAME AKTORDEVICE> BI
Welche Lampe zeigt welche Reaktion.

roland61

Mhh, irgendwie hab ich da noch was nicht richtig kapiert. Die readingsproxy sind doch nur auf den virtuellen Schalter bezogen.(base-id +1 vom Cul)


krikan

Ja. Wobei der vituelle Schalter in Deinem Fall, da bidi, von mir als Aktor-Device betitelt wird:
define Aktor EnOcean FFFFFFFE    <----- Adresse des Aktors (siehe Rückseite des Aktors)
attr Aktor subDef 00000001                   <-----eine SenderID Deines TCMs


Genau hiervon musst Du das readingsProxy ableiten, da dieses Device den rückübertragenen Zustand des Aktors enthält (wenn Du Bestätigungstelegramme aktiviert hast->Pflicht).

Also du solltest haben:
Aktordevice/virtueller Schalter
und 2 x readingsProxy

Habe ich mich verständlicher ausgedrückt?


krikan

Achtung, ich sehe es erst jetzt: Du hast readingsProxy weiterhin vom Reading state abgeleitet. Das erklärt das Verhalten. Ändere das bitte nur auf channelA bzw. channelB, wie ich es beschrieben hatte. Das könnte es schon sein.

roland61

Mhh, jetzt versteh ich garnix mehr. Ich habe den virtuellen schalter genauso gemacht wie im Wiki beschrieben. Mit der Base.id+1, gibt ein virtuelles device mit 8 kanälen. Die hab ich dann aufgeteilt mit readings proxy in zwei devices (brauche nur zwei).
Der Aktor ist doch der Fms 61??

Ich hab jetzt noch zwei readingsproxy gemacht mit Ableitung vom Aktor, die zeigen mir jetzt alle Zustandsänderungen an, nur mit den Schaltflächen kann man nicht schalten.Das geht allerdings mit den ersten zwei readingsproxy devices. (mit den obigen)

roland61

Würde sagen geht irgendwie, aber ist noch nicht so schön. Werde mich nächstes We wieder dransetzen, muss die Woche auf Montage.
Schonmal vielen Dank für die super Hilfe.
Gruss Roland

krikan

Hmm, dann war es von mir nicht verständlich (du darfst nur 3 Devices haben)

1. Lösche bitte die zusätzlichen, neu angelegten readingProxys. (delete ...)
2. Und ändere bitte in Deinen alten readingsProxys ab, so dass channelA bzw. channelB die Readings sind. Weist Du wie?

Nicht locker lassen. Ich denke es sind nur Kleinigkeiten ;-)


krikan

Wenn das "Li_Kue" der Name Deines Aktor-Devices/virtuellen Schalters ist, dann sind die readingProxys:

define Li_Kue_SP readingsProxy Li_Kue:channelB
attr proxy setFn {($CMD eq "on")?"B0":"BI";;}
attr proxy setList off on
attr proxy valueFn {($VALUE eq "B0")?"on":"off"}
attr proxy webCmd off:on

define Li_Kue_Ti readingsProxy Li_Kue:channelA
attr proxy setFn {($CMD eq "on")?"A0":"AI";;}
attr proxy setList off on
attr proxy valueFn {($VALUE eq "A0")?"on":"off"}
attr proxy webCmd off:on


Über die readingProxys solltest Du die Lampen separat schalten können.

Ob Dein Aktordevice -von dem die Readingsproxy abgeleitet sind, korrekt funktioniert/angelernt ist, kannst Du so testen:
set Li_Kue A0        ---> führt zum Einschalten der Lampe von Li_Kue_Ti
set Li_Kue AI         ---> führt zum Ausschalten der Lampe von Li_Kue_Ti
set Li_Kue B0        ---> führt zum Einschalten der Lampe von Li_Kue_SP
set Li_Kue BI         ---> führt zum Ausschalten der Lampe von Li_Kue_SP


Dein Aktor gehört in diese Teach-In-Gruppe: http://www.fhemwiki.de/wiki/EnOcean_Starter_Guide#Unidirektionales_4BS-Teach-In
Detailliert wurde das Teach-In/Definition hier beschrieben: http://forum.fhem.de/index.php/topic,21090.msg146389.html#msg146389

roland61

Mhh, probiert, jetzt werden die Zustandsänderungen vom Fms 61 angezeigt im Webfrontend, aber man kann nicht mehr per Pc schalten.
Vielleicht reden wir aber auch aneiander vorbei?
Ich meine im Wiki gelesen zu haben das man mit enocean virtuelle Schalter anlegen muss mit der base-id des Sticks um was schalten zu können.

Diese readingsproxy,die ich jetzt erstellt habe, haben doch nur Bezug auf den Aktor( Fms 61Np).

Li_Kue ist der Name des Fms61, aber nicht der Name meines virtuellen Schalters. Der heisst "Li_Kue_Fhem", den ich dann mit readingsproxy in "Li_Kue_Ti" und "Li_Kue_Sp" aufgeteilt hatte.

Ist nicht so einfach für nen Elektriker :-)

krikan

#25
Der Aktor ist nach Deinen Aussagen in Fhem falsch angelernt bzw. falsch definiert. Deshalb hatte ich Dir den Wiki-Link noch einmal dazugepackt.
Du musst Li_Kue und Li_kue_fhem in das Device Li_Kue zusammenfassen:
Das, was jetzt im Li_Kue_fhem als TCM-Adresse (baseID +1)  hinterlegt ist, gehört in das Atrribut subDef von Li_Kue.
Dann Li_Kue_fhem löschen. Gesteuert und Status für beide Kanäle wird über den Li_kue.
Li_Kue wird durch readingsProxy aufgeteilt, um 2 separate Anzeigen zu haben.


Man braucht bei den bidi-Aktoren keinen zusätzlichen virtuellen Schalter, der ist durch das Attribut subDef quasi im Aktor-Device des FMS integriert:

define Li_Kue EnOcean FFFFFFFE    <----- Adresse des Aktors (siehe Rückseite des Aktors)
attr Li_Kue subDef XXXXXXXX                   <----- XXXXXXX ersetzen durch baseUd+1 die in  Li_Kue_fhem eingesetzt ist.

roland61

Danke noch mal, werde ich genauso nochmal ausprobieren. Komme aber erst nächstes We dazu, muss die ganze Woche auf Montage.
Gruss Roland