Aktor NodOn

Begonnen von choetzu, 28 April 2016, 09:20:09

Vorheriges Thema - Nächstes Thema

choetzu

Guten Morgen,

in einem anderen Beitrag (https://forum.fhem.de/index.php/topic,51184.msg429561.html#msg429561) wurde dieser Aktor aufgegriffen. Da es evtl. der eine oder andere gibt, der sich dieses Teil auch anschafft, erlaube ich mir einen separaten Thread auf zu machen. Sollte dies nicht Forumkonform sein, bitte löschen ;)

Es geht konkret um diesen Aktor http://nodon.fr/en/enocean/enocean-in-wall-module_13-1.
Mit diesen Spezifikationen: http://nodon.fr/support/NodOn-SIN-2-2-xx-UserGuide-160121-EN-interactive.pdf

Der Aktor hat 2 Kanäle und wird eigentlich problemlos per UTE eingelesen und als subTyp actuator.01 definiert. Die Bedienung des Kanal1 geht problemlos, jedoch bei der Bedienung von Kanal 2 hapert es noch bei mir. Wenn ich den Kanal2 direkt an die Lampe mache, ohne dass ein Schalter dazwischen ist, wird er gar nicht erst von FHEM erkannt.

Internals:
   CFGFN
   DEF        01949334
   IODev      TCM_ESP3_0
   LASTInputDev TCM_ESP3_0
   MSGCNT     25
   NAME       EnO_01949334
   NR         64
   NTFY_ORDER 50-EnO_01949334
   STATE      off
   TCM_ESP3_0_DestinationID FFFFFFFF
   TCM_ESP3_0_MSGCNT 25
   TCM_ESP3_0_PacketType 1
   TCM_ESP3_0_RSSI -88
   TCM_ESP3_0_ReceivingQuality bad
   TCM_ESP3_0_RepeatingCounter 0
   TCM_ESP3_0_SubTelNum 2
   TCM_ESP3_0_TIME 2016-04-28 07:17:17
   TYPE       EnOcean
   Readings:
     2016-04-28 07:17:17   channel0        off
     2016-04-28 07:17:17   dim             0
     2016-04-28 07:17:17   dim0            0
     2016-04-28 07:17:17   error0          not_supported
     2016-04-28 07:17:17   localControl0   enabled
     2016-04-28 07:17:17   overCurrentOff0 ready
     2016-04-28 07:17:17   powerFailure0   disabled
     2016-04-28 07:17:17   powerFailureDetection0 not_detected
     2016-04-28 07:17:17   state           off
     2016-04-28 07:14:22   teach           UTE teach-in accepted EEP D2-01-12 Manufacturer: ID-RF
   Helper:
Attributes:
   IODev      TCM_ESP3_0
   comMode    biDir
   defaultChannel 0
   devChannel 2
   eep        D2-01-12
   manufID    046
   room       EnOcean
   subDef     FFBC6502
   subType    actuator.01
   teachMethod UTE


Erst wenn ich einen Schalter dazwischen schalte und den Schalter betätige, erkennt FHEM eine Aktivität/Reading. Jetzt stellt sich mir die Frage, ob subType actuator.01 richtig ist? Was meint Ihr?

Lg c
Raspi3, EnOcean, Zwave, Homematic

krikan

ZitatWenn ich den Kanal2 direkt an die Lampe mache, ohne dass ein Schalter dazwischen ist, wird er gar nicht erst von FHEM erkannt.
Das ist für mich nicht konkret genug.   :)
Was bedeutet das?
Kannst Du die Kanäle mit "set EnO_01949334 on/off [<channel>]" nicht einzeln schalten?
Fehlt Dir nur in FHEMWEB ein Schaltsymbol?

choetzu

hallo krikan,

nach dem Einlernen brennen beide Lampen auf beiden Kanälen. Ich kann nur mit "set EnO_01949334 off channel0" die Lampe an Kanal1 löschen. Wenn ich "set EnO_01949334 off channel1" oder channelA oder channelB eingebe passiert nix. Die Lampe auf Kanal2 brennt munter weiter.. Hier noch der Logauszug mit Verbose 5


2016.04.28 10:03:34 3: EnOcean set EnO_01949334 on
2016.04.28 10:03:34 4: EnOcean EnO_01949334 sent PacketType: 1 RORG: D2 DATA: 010064 SenderID: FFBC6502 STATUS: 00 ODATA: 0301949334FF00
2016.04.28 10:03:34 4: EnOcean EnO_01949334 received PacketType: 1 RORG: D2 DATA: 0460E4 SenderID: 01949334 STATUS: 00
2016.04.28 10:03:48 3: EnOcean set EnO_01949334 off
2016.04.28 10:03:48 4: EnOcean EnO_01949334 sent PacketType: 1 RORG: D2 DATA: 010000 SenderID: FFBC6502 STATUS: 00 ODATA: 0301949334FF00
2016.04.28 10:03:48 4: EnOcean EnO_01949334 received PacketType: 1 RORG: D2 DATA: 046080 SenderID: 01949334 STATUS: 00
2016.04.28 10:04:01 3: EnOcean set EnO_01949334 off
2016.04.28 10:04:01 4: EnOcean EnO_01949334 sent PacketType: 1 RORG: D2 DATA: 010000 SenderID: FFBC6502 STATUS: 00 ODATA: 0301949334FF00
2016.04.28 10:04:18 1: PERL WARNING: Argument "channelB" isn't numeric in addition (+) at ./FHEM/10_EnOcean.pm line 3747.
2016.04.28 10:04:18 3: EnOcean set EnO_01949334 off
2016.04.28 10:04:18 4: EnOcean EnO_01949334 sent PacketType: 1 RORG: D2 DATA: 010000 SenderID: FFBC6502 STATUS: 00 ODATA: 0301949334FF00
Raspi3, EnOcean, Zwave, Homematic

krikan

Zitat von: choetzu am 28 April 2016, 10:09:08
Ich kann nur mit "set EnO_01949334 off channel0" die Lampe an Kanal1 löschen. Wenn ich "set EnO_01949334 off channel1" oder channelA oder channelB eingebe passiert nix.
Und was passiert, wenn Du mal "set EnO_01949334 off 0", "set EnO_01949334 off 1" usw. benutzt?

Eisix

Hallo,

wenn du den Nodon auf anlernen des 2 Kanals setzt und dann den ReadingsProxy für den zweiten Kanal in Fhem schaltest sollte er es eigentlich lernen.

Gruß
Eisix

choetzu

 
Zitat von: Eisix am 28 April 2016, 10:58:32
wenn du den Nodon auf anlernen des 2 Kanals setzt und dann den ReadingsProxy für den zweiten Kanal in Fhem schaltest sollte er es eigentlich lernen.

den Kanal 2 kann man m.E. nicht explizit anlernen, wenn man die 2 Lampen ausschliesslich von FHEM steuern will. In den Spezifikationen steht unter "Gateway" folgendes, resp. siehe Anlage. Oder interpretiere ich das PDF falsch?

Ich habe gestern Abend lange an den ReadingsProxy gemäss Wiki rumgepröbelt. Hat nicht funktioniert. Deshalb will ich zuerst mach checken, ob ich den Kanal2 überhaupt ansteuern kann, bevor ich mich weiter mit den ReadingsProxy beschäftige. Macht doch Sinn, oder? ;)

Raspi3, EnOcean, Zwave, Homematic

krikan

Zitat von: choetzu am 28 April 2016, 11:22:50
Ich habe gestern Abend lange an den ReadingsProxy gemäss Wiki rumgepröbelt. Hat nicht funktioniert. Deshalb will ich zuerst mach checken, ob ich den Kanal2 überhaupt ansteuern kann, bevor ich mich weiter mit den ReadingsProxy beschäftige. Macht doch Sinn, oder? ;)
Bevor Du an einem readingsProxy bastelst, solltest Du tatsächlich erst einmal "set EnO_01949334 on/off [<channel>]" entsprechend commandref nutzen.  [<channel>] ist so zu ersetzen:
Zitat[channel] = 0...29|all|input, all is default
The default channel can be specified with the attr defaultChannel.
Dann setzt Du auch korrekte Schaltbefehle ab.

Wenn sich die Kanäle so auch nicht schalten lassen, dann muss man weitersehen..

Gruß, Christian

choetzu

Zitat von: krikan am 28 April 2016, 11:30:21
Bevor Du an einem readingsProxy bastelst, solltest Du tatsächlich erst einmal "set EnO_01949334 on/off [<channel>]" entsprechend commandref nutzen.  [<channel>] ist so zu ersetzen:Dann setzt Du auch korrekte Schaltbefehle ab.

sehr gut, danke!!! es hat auch geklappt!
- set EnO_01949334 off 0 --> schaltet erste Lampe aus
- set EnO_01949334 off 1 --> schaltet zweite Lampe aus

So, und nun gehts an die ReadingProxies... Mal, schauen, ob ich erfolgreich bin/werde. ;)
Raspi3, EnOcean, Zwave, Homematic

krikan

Bevor Du dich auf readingsProxy stürzt, würde mich interessieren, ob die Kanäle tatsächlich im Standard nur über ein FHEM-Device gesteuert werden können, da nur eine SenderId des Aktors existiert:
Gibt es ein Beiblatt/Aufdruck am Aktor, auf dem SenderIds stehen? Falls ja, wirklich nur die eine "01949334"?

choetzu

Hallo Krikan, ja es steht nur die eine Nummer 01949334.. Ist das nun schlecht? ;)
Raspi3, EnOcean, Zwave, Homematic

krikan

Sehr starkes Indiz, dass Du mit readingsProxy arbeiten "darfst" (musst), um 2 separate FHEM-Devices zur Steuerung nutzen zu können. Nicht so schön, aber eben normalerweise mit readingsProxy lösbar.

Eisix

Dafür spart man eine SendeID, sollte doch ein Vorteil sein?

choetzu

Ich stell mich den readingProxys ;)

Wenn ich nun gemäss Starting Guide folgenden Code anwende

#Kanal B zur Steuerung mit on und off
define AktorKanalB readingsProxy EnO_01949334:1
attr AktorKanalB setFn {($CMD eq "on")?"B0":"BI";;}
attr AktorKanalB setList off on
attr AktorKanalB valueFn {($VALUE eq "B0")?"on":"off"}
attr AktorKanalB webCmd off:on


Kommt anliegende Fehlermeldung. Er scheint B0 resp. BI nicht interpretieren zu können. Ich sehe in meine Readings auch nirgends ein B0 oder BI... da müssen andere Werte hin, oder?
Raspi3, EnOcean, Zwave, Homematic

krikan

#13
Befürchte, dass Du zu readingsProxy noch lesen musst. readingsProxy-Beispiele für das Verständnis auch hier: http://www.fhemwiki.de/wiki/ReadingsProxy

Einige Anmerkungen:
define AktorKanalB readingsProxy EnO_01949334:1
Gibt es das Reading "1" von dem Du ableitest? Bezweifle ich. Du musst das passende Reading für jeden Kanal finden.

attr AktorKanalB setFn {($CMD eq "on")?"B0":"BI";;}
Der Befehl zum Schalten heißt doch "on 0" und "off 0" bzw. "on 1" und "off 1" und nicht "B0" bzw. "BI"

attr AktorKanalB valueFn {($VALUE eq "B0")?"on":"off"}
Auch valueFn hat kein "B0" oder "BI". Ist abhängig von dem Reading von dem Du das readingProxy ableitest.

choetzu

hallo krikan, herzlichen Dank!!!!  ich habe grad eine kleine Gefühlsexplosion!! A) es klappt dank dir und B) ich verstehe im Ansatz, was die Befehle bewirken ;) Danke für den Link, hat mir sehr geholfen.. Ich musste etwas tiefer in den FHEM-Analen suchen um valueFn zu finden, aber im commandRef wurde ich fündig. Perfekt..

So funktioniert es, siehe mein Listing:

Internals:
   CFGFN
   DEF        EnO_01949334:channel1
   DEVICE     EnO_01949334
   NAME       AktorKanalB
   NR         244
   NTFY_ORDER 50-AktorKanalB
   READING    channel1
   STATE      off
   TYPE       readingsProxy
   Content:
     EnO_01949334 1
   Readings:
     2016-04-28 15:23:26   lastCmd         off
     2016-04-28 15:23:26   state           off
Attributes:
   room       EnOcean
   setFn      {($CMD eq "on")?"on 1":"off 1";}
   setList    off on
   valueFn    {($VALUE eq "on")?"on":"off"}
   webCmd     off:on
Raspi3, EnOcean, Zwave, Homematic