FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Michi240281 am 18 Februar 2014, 18:17:43

Titel: Benötige Hilfe bzgl. "setreading"
Beitrag von: Michi240281 am 18 Februar 2014, 18:17:43
Hallo zusammen,

ich habe nun wirklich alles versucht, ref gelesen, Einsteiger-pdf und stundenlang rumprobiert, aber ich bekomms einfach nicht hin.

Mein Problem:

Ich möchte von einem Türkontakt, der den State "geschlossen" und "offen" annehmen kann, ein Reading erzeugen, das dann z.B. den Namen "Zustand" trägt und dabei für den state "geschlossen" eine "1" ausgibt und für "offen" eine "0". Ich denke, das sollte dann über die Kommandozeile zu machen sein, oder?

Ich bitte die Erfahrenen unter Euch an der Stelle um Unterstützung.

Es müsste ja denke ich irgendwie so aussehen:

setreading <device> Zustand ("<device>.state:geschlossen=1; <device>.state:offen=0)

Alles was hier in der Klammer steht, bekomme ich einfach nicht hin, ich habe wie gesagt Stunden damit verbracht, aber die Syntax zu raten, frustriert nur noch mehr! Ich bitte also um Eure Hilfe!

Danke schonmal!!!
Titel: Antw:Benötige Hilfe bzgl. "setreading"
Beitrag von: fhainz am 18 Februar 2014, 19:02:04
Hallo!

Ich denke nicht dass das so klappt wie du dir das vorstellst.

Du könntest zB ein notify erzeugen das auf deinen Türkontakt reagiert. Im Perl teil kannst du dann prüfen ob deine Türe offen oder geschlossen ist und dann je nach Zustand mit
setreading <device> Zustand 1
dein reading setzen.


Grüße
Titel: Antw:Benötige Hilfe bzgl. "setreading"
Beitrag von: Thorsten Pferdekaemper am 18 Februar 2014, 19:15:08
Hi,
ich glaube, Du suchst "userReadings".
Gruss,
   Thorsten
Titel: Antw:Benötige Hilfe bzgl. "setreading"
Beitrag von: Michi240281 am 20 Februar 2014, 21:30:34
Hallo,

ich habe noch ne Weile getüftelt und habe jetzt mit folgenden 2 Notifys den Zustand in den Türkontakt als Reading reingeschrieben bekommen:

define Tor_ist_auf notify Garagentor { if (Value("Garagentor") eq "offen") { fhem("setreading Garagentor Torstatus 1") } }
define Tor_ist_zu notify Garagentor { if (Value("Garagentor") eq "geschlossen") { fhem("setreading Garagentor Torstatus 0") } }


Funktioniert auch soweit!

Nur wird "Torstatus" nicht im Logfile eingetragen. Was muss ich da tun, damit dies geschieht?

Besten Dank an Euch!
Titel: Antw:Benötige Hilfe bzgl. "setreading"
Beitrag von: Thorsten Pferdekaemper am 20 Februar 2014, 22:08:39
...vielleicht userReadings verwenden?
Titel: Antw:Benötige Hilfe bzgl. "setreading"
Beitrag von: roedert am 20 Februar 2014, 22:48:08
attr Garagentor userReadings Torstatus:state {Value("Garagentor") eq "offen" ? 1 : 0}

Das sollte alles erledigen ... keine zusätzlichen Notifys etc. mehr nötig.
Das neue Reading Torstatus wird bei jedem Setzen des state entsprechend gesetzt.
Titel: Antw:Benötige Hilfe bzgl. "setreading"
Beitrag von: Michi240281 am 20 Februar 2014, 22:59:03
Klingt simpel!;)

Das Reading wird jedoch (noch) nicht angezeigt! Muss man da noch etwas bestimmtes tun?
Titel: Antw:Benötige Hilfe bzgl. "setreading"
Beitrag von: roedert am 20 Februar 2014, 23:00:45
Es wird erst nach dem ersten Füllen angezeigt .. wenn also wieder ein "Garagentor-state-Event" kommt
Titel: Antw:Benötige Hilfe bzgl. "setreading"
Beitrag von: Michi240281 am 20 Februar 2014, 23:03:32
Habe das Tor schon 2x geöffnet und geschlossen! Tut sich nix! Es sind auch "CMDs pending"...

aber daswar ich wohl schuld, weil ich ein "getConfig" gemacht habe und nicht den Anlernknopf gedrückt habe! (fiel mir gerade ein, sorry)!

Muss das "Torstatus:state" evtl. "Torstatus:STATE" heißen?

Falls es hilft?:

Internals:
   CFGFN      Garage.cfg
   DEF        24D402
   HMLAN1_MSGCNT 26
   HMLAN1_RAWMSG E24D402,0000,0597B665,FF,FFB3,66A64124D40223A6D7016500
   HMLAN1_RSSI -77
   HMLAN1_TIME 2014-02-20 23:07:48
   IODev      HMLAN1
   LASTInputDev HMLAN1
   MSGCNT     26
   NAME       Garagentor
   NR         25
   STATE      geschlossen
   TYPE       CUL_HM
   lastMsg    No:66 - t:41 s:24D402 d:23A6D7 016500
   protCmdPend 9 CMDs pending
   protLastRcv 2014-02-20 23:07:48
   protSnd    2 last_at:2014-02-20 23:07:48
   protState  CMDs_pending
   rssi_at_HMLAN1 avg:-77.46 min:-82 max:-75 lst:-77 cnt:26
   Readings:
     2014-02-20 22:51:44   Activity        alive
     2014-02-13 19:53:38   D-firmware      2.2
     2014-02-13 19:53:38   D-serialNr      KEQ0950744
     2014-02-13 19:53:38   PairedTo        0x23A6D7
     2014-02-13 19:53:38   R-cyclicInfoMsg on
     2014-02-13 19:53:38   R-pairCentral   0x23A6D7
     2014-02-13 19:53:38   R-transmDevTryMax 6
     2014-02-13 19:53:39   R-transmitTryMax 6
     2014-02-16 18:17:57   alive           yes
     2014-02-16 18:17:57   battery         ok
     2014-02-20 23:07:48   contact         closed (to HMLAN1)
     2014-02-16 18:17:57   cover           closed
     2014-02-16 18:17:57   recentStateType info
     2014-02-20 23:07:48   state           closed
   cmdStack:
     ++A00123A6D724D40200040000000000
     ++A00123A6D724D40201040000000001
     ++A00123A6D724D4020103
     ++A00123A6D724D40200040000000000
     ++A00123A6D724D40201040000000001
     ++A00123A6D724D4020103
     ++A00123A6D724D40200040000000000
     ++A00123A6D724D40201040000000001
     ++A00123A6D724D4020103
   Helper:
     getCfgList all
     getCfgListNo ,4
     mId        00B1
     rxType     12
     Io:
       nextSend   1392934068.66477
     Prt:
       bErr       0
       sProc      2
       Rspwait:
     Q:
       qReqConf   
       qReqStat   
     Role:
       chn        1
       dev        1
     Rpt:
       IO         HMLAN1
       flg        A
       ts         1392934068.5736
       ack:
         HASH(0xeb66f8)
         66800223A6D724D4020101C800
     Rssi:
       At_hmlan1:
         avg        -77.4615384615384
         cnt        26
         lst        -77
         max        -75
         min        -82
Attributes:
   actCycle   028:00
   actStatus  alive
   autoReadReg 4_reqStatus
   devStateIcon offen:fts_garage@red geschlossen:fts_garage_door_100@green .*:fts_garage
   eventMap   open:offen closed:geschlossen
   expert     2_full
   firmware   2.2
   model      HM-SEC-SC-2
   peerIDs    00000000,
   room       Garage
   serialNr   KEQ0950744
   subType    threeStateSensor
   userReadings Torstatus:state {Value("Garagentor") eq "offen" ? 1 : 0}
Titel: Antw:Benötige Hilfe bzgl. "setreading"
Beitrag von: roedert am 21 Februar 2014, 03:51:47
Das kleine "state" sollte eigentlich ok sein, ist ja der Name des Readings.
Vielleicht mal mit ReadingsVal und Strings statt Value versuchen......

attr Garagentor userReadings Torstatus:state {ReadingsVal($name,'state','') eq 'closed' ? '1' : '0'}

Die 1 und 0 musst du evtl. noch vertauschen, ich weiss jetzt nicht ob du bei "offen" 1 oder bei "geschlossen" 1 haben möchtest.
"state" hat als Inhalt ein englisches "closed" wie du selbst in deinem "list Garagentor" sehen kannst.
Titel: Antw:Benötige Hilfe bzgl. "setreading"
Beitrag von: Michi240281 am 21 Februar 2014, 08:27:57
Es klappt!!!!!!!!!! :)

Und zwar so:

attr Garagentor userReadings Torstatus {ReadingsVal($name,'state','') eq 'closed' ? '0' : '1'}

Vielen vielen Dank!
Titel: Antw:Benötige Hilfe bzgl. "setreading"
Beitrag von: roedert am 21 Februar 2014, 08:34:56
Prima!

Der Unterschied wenn du :state hinter dem Torstatus weglässt ist, dass das UserReading nicht nur beim Aktualisieren des state gestezt/aktualisert wird, sondern bei jedem reading-Update ... schau einfach mal in die commandref.
Titel: Antw:Benötige Hilfe bzgl. "setreading"
Beitrag von: Michi240281 am 21 Februar 2014, 17:10:34
Ok vielen Dank für die Info!