Notify liest sen Status nicht richtig

Begonnen von Jörg, 13 April 2014, 21:04:03

Vorheriges Thema - Nächstes Thema

Jörg

Hallo zusammen,
irgendwie habe ich ein Problem mit dem Notify.

Die Testdefinition sieht so aus:
define n_c50_Wandtaster notify c50_Wandtaster:(.*) { \
   Log 1, "Test $value{c50_Wandtaster}" ;; \
]


Im Log des HM-PB-6-WM55 steht richtig:
2014-04-13_20:15:39 c50_Wandtaster battery: ok
2014-04-13_20:15:39 c50_Wandtaster c50_Wandtaster_Btn_02 Short (to HMLAN1)
2014-04-13_20:15:39 c50_Wandtaster CMDs_done


Im Log, das über das Notify erzeugt wird, steht jedes mal CMDs_done:
2014.04.13 20:15:39 1: Test CMDs_done
2014.04.13 20:15:39 1: Test CMDs_done
2014.04.13 20:15:39 1: Test CMDs_done


Somit werden die Notifys nicht richtig ausgeführt.

Bei den Testerschnittstellen HM-PBI-4-FM habe ich auch das Problem.



Kann mir da jemand helfen?

betateilchen

ist doch logisch... Du liest den STATE des Wandtasters (also des DEVICE) aus, und da steht nunmal "CMDs_done" drin - also völlig korrekt.

Was Du tun möchtest, ist den Zustand eines CHANNELS zu ermitteln, dann solltest Du auch den entsprechenden Channel angeben.

Übrigens: man verwendet nicht (mehr) $value{} sondern Value().

In Deinem Fall also

Value('c50_Wandtaster c50_Wandtaster_Btn_02 Short')

Noch besser wäre es allerdings, entweder mit ReadingsVal() zu arbeiten oder direkt das notify so (richtig) zu erstellen, dass es direkt auf den gewünschten Button reagiert und nicht auf das Device selbst.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Jörg

Hallo betateilchen,
danke für den Tipp. Ich habe nun für jeden ein eigenes Notify erstellt.


Bei der Fernbedienung HM-RC-4-B scheint das aber nicht zu funktionieren, da für beide Tastenpaare immer offShort und onShort ausgegeben wird. Somit habe ich keine Möglichkeit beide Paare zu nutzen.

Hast Du da noch eine Idee, oder muss Martin da noch etwas nachbessern?

betateilchen

sorry, diese Fernbedienung ist mir noch nicht untergekommen. Aber irgendwie müssen sich doch die beiden Tastenpaare unterscheiden lassen?

Schau doch mal in den Eventmonitor und drücke die vier Tasten nacheinander.
Die Ausgabe dann bitte hier posten - ich kann mir nicht vorstellen, dass es da keine Unterschiede gibt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Jörg

Das ist eine kleine, die man an den Schlüssel machen kann.

Das mit dem Eventmonitor habe ich schon gemacht. Wie gesagt da kommt auf beiden Paaren das selbe Ereignis.

Log:
2014-04-13_23:06:01 Auto_Remote_1 offShort (to broadcast)     <-- Taster links oben
2014-04-13_23:06:01 Auto_Remote_1 trigger: Short_111
2014-04-13_23:06:01 Auto_Remote_1 battery: low
2014-04-13_23:06:06 Auto_Remote_1 offShort (to broadcast)     <-- Taster links unten
2014-04-13_23:06:06 Auto_Remote_1 trigger: Short_87
2014-04-13_23:06:06 Auto_Remote_1 battery: low
2014-04-13_23:06:12 Auto_Remote_1 onShort (to broadcast)     <-- Taster rechts oben
2014-04-13_23:06:12 Auto_Remote_1 trigger: Short_5
2014-04-13_23:06:12 Auto_Remote_1 battery: low
2014-04-13_23:06:13 Auto_Remote_1 onShort (to broadcast)     <-- Taster rechts unten
2014-04-13_23:06:13 Auto_Remote_1 trigger: Short_42
2014-04-13_23:06:13 Auto_Remote_1 battery: low

betateilchen

lustig...

kannst Du mal bitte ein "list <device>" machen? <device> ist dabei der Name der Fernbedienung.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Jörg

Jepp:

Internals:
   CFGFN      /usr/share/fhem/FHEM_CONF/0004_definition_hm.pm
   DEF        18E47D
   IODev      HMLAN1
   NAME       Auto_Remote_1
   NR         176
   STATE      offShort (to broadcast)
   TYPE       CUL_HM
   Readings:
     2014-04-13 01:22:42   D-firmware      1.3
     2014-04-13 01:22:42   D-serialNr      IEQ0521610
     2014-04-14 06:55:45   battery         low
     2014-04-14 06:55:45   state           offShort (to broadcast)
     2014-04-14 06:55:45   trigger         Short_113
   Helper:
     mId        003B
     rxType     4
     Io:
       newChn     +18E47D,00,01,FE1F
     Prt:
       bErr       0
       sProc      0
     Q:
       qReqConf   
       qReqStat   
     Role:
       chn        1
       dev        1
Attributes:
   IODev      HMLAN1
   autoReadReg 0
   expert     2_full
   firmware   1.3
   model      HM-RC-4-B
   peerIDs   
   room       CUL_HM
   serialNr   IEQ0521610
   subType    remote

betateilchen

Deine Fernbedienung ist nicht mit fhem gepaired - zumindest sendet sie an broadcast ?

Ich vermute dass deshalb die Channels fehlen und die Tasten nicht unterschieden werden können.
Versuch doch mal, die Fernbedienung zu pairen und mach den Test dann nochmal.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Jörg

Das kann ich erst, wenn ich zu hause bin.

Gepairt hatte ich sie damals aber. Das sieht man ja auch am IODev      HMLAN1. Aber ich werde sie nachher resetten und noch einmal Pairen.

betateilchen

Zitat von: Jörg am 14 April 2014, 15:32:25
Das sieht man ja auch am IODev      HMLAN1.

Das IODev hat mit dem pairen überhaupt nichts zu tun.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Jörg

Frohe Ostern. :)

Hat was länger gedauert, da ich  hier noch renoviere.

Es läuft nun. Das Problem war, dass die Fernbedienung vor ca. 3 Jahren gepaired wurde. Da gab es das in FHEM noch nicht, dass jede Taste einzelnen aufgeführt wurde, sondern nur die Fernbedienung als ein Gerät.
Allerdings sendet sie weiterhin nur an (to broadcast). Das scheint mir aber ein Problem in der Firmware der Fernbedienung zu sein.

martinp876

das eigentliche pairen war das gleiche. Das anlegen der Buttons oder eben nicht ist eine andere sache.
Du kannst dich entscheiden, jeden Button als Entity anzulegen geht automatisch, wenn du einfach einmal anlernen drückst) oder nur über das Device arbeitest (wird in FHEM kaum noch genutzt)
Das die FB ihre trigger nach broadcast sendet ist schon möglich -machen manche.
Der Button sollte aber immer erkennbar sein.
Zeichne doch einmal die trigger auf - rohmessages und die Events - wenn du unterschiedliche Buttons drückst.
Lese bei der Gelegenheit doch gleich die Register einmal aus.

Gruss Martin

Jörg

Zitat von: martinp876 am 22 April 2014, 08:00:30
das eigentliche pairen war das gleiche. Das anlegen der Buttons oder eben nicht ist eine andere sache.
Du kannst dich entscheiden, jeden Button als Entity anzulegen geht automatisch, wenn du einfach einmal anlernen drückst) oder nur über das Device arbeitest (wird in FHEM kaum noch genutzt)
Meine Vorgehensweise ist, dass ich grundsätzlich alle Gräte direkt mit der Zentrale, also FHEM Paire. Dadurch habe ich den Vorteil, dass ich komplexe Makros ausführen kann.

ZitatDer Button sollte aber immer erkennbar sein.
Ja, ist es jetzt auch, nachdem ich den einzelnen Tasten ein Define verpasst habe.

ZitatZeichne doch einmal die trigger auf - rohmessages und die Events - wenn du unterschiedliche Buttons drückst.
Lese bei der Gelegenheit doch gleich die Register einmal aus.
Brauchst Du das noch, da es ja bei mir nun läuft. Wenn ja, das ist kein Problem, das zu erstellen.


LG Jörg

martinp876

nein, brauche nichts,werde es selbst einmal testen.
Gruss Martin

Jörg

Unabhängig davon habe ich gestern noch eine neue Fernbedienung (HM-RC-4-2) bekommen. Siehe da, die sendet nicht an Broadcast, sondern direkt an die HMLAN-Zentrale.
Also liegt es doch an der Firmware der Fernbedienung.

Was mir noch aufgefallen ist, dass das Autocreate nicht richtig funktioniert.
Normalerweise werden die Geräte in der fhem.cfg abgespeichert, aber der Vorgang bricht schon bei dem Eintrag für die Seriennummer ab.
Soll ich dafür einen extra Beitrag eröffnen, oder reicht das hier an dieser Stelle?