FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Jewe am 02 November 2018, 09:10:24

Titel: Reading ersetzen / tauschen
Beitrag von: Jewe am 02 November 2018, 09:10:24
Guten Morgen,

ich habe in einem HTTPMOD Device ein Reading, das mir Statuswerte über Nummern anzeigt.
z.B. 113,114... usw.
Diese möchte ich nun gerne als Klartext anzeigen lassen
114 = Komfortsollwert, 113 = Schnellaufheizung, 56 - Überhitzschutz aktiv usw.

Habe es mit readingsChange probiert, aber so geht das nicht.
define <name> readingsChange <device> <readingName> <toReplace> <replaceWith>"

define BROETJESTATUS_HK1_Change readingsChange readingsChange (Status Heizkreis 1) 56 (Überhitzschutz aktiv)


Wie mache ich das richtig ? Geht es auch anders ?
In Summe sind es 29 Werte, die ich ersetzen / tauschen müsste.

List vom Device
Internals:
   BUSY       0
   CHANGED   
   DEF        http://192.168.x.xx/xxxx/700/710/712/720/721/8000 180
   Interval   180
   LASTSEND   1541145328.90806
   MainURL    http://192.168.x.xx/xxxx/700/710/712/720/721/8000
   ModuleVersion 3.5.1 - 5.7.2018
   NAME       BROETJESTATUS_HK1
   NR         181
   STATE      ???
   TRIGGERTIME 1541145508.9052
   TRIGGERTIME_FMT 2018-11-02 08:58:28
   TYPE       HTTPMOD
   addr       http://192.168.192.168.x.xx:80
   auth       0
   code       200
   compress   1
   conn       
   data       
   displayurl http://192.168.x.xx/xxxx/700/710/712/720/721/8000
   header     
   host       192.168.x.xx
   httpheader HTTP/1.1 200 OK
Content-Type: text/html
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0
   httpversion 1.0
   hu_blocking 0
   hu_filecount 2899
   hu_port    80
   hu_portSfx
   ignoreredirects 0
   loglevel   4
   path       /xxxx/700/710/712/720/721/8000
   protocol   http
   redirects  0
   timeout    30
   url        http://192.168.x.xx/xxxx/700/710/712/720/721/8000
   value      0
   Helper:
     DBLOG:
       Betriebsart:
         impDbLog:
           TIME       1541144704.77301
           VALUE      1
       Kennlinie Steilheit:
         impDbLog:
           TIME       1541144704.77301
           VALUE      0.92
       Kennlinie Verschiebung:
         impDbLog:
           TIME       1541144704.77301
           VALUE      0.0
       Komfortsollwert:
         impDbLog:
           TIME       1541144704.77301
           VALUE      22.0
       Reduziertsollwert:
         impDbLog:
           TIME       1541144704.77301
           VALUE      20.0
       Status Heizkreis 1:
         impDbLog:
           TIME       1541144524.75486
           VALUE      56
       reading5:
         impDbLog:
           TIME       1540229832.65161
           VALUE      122
       state:
         impDbLog:
           TIME       1541144968.92265
           VALUE      start
   OLDREADINGS:
   QUEUE:
   READINGS:
     2018-11-02 08:55:30   Betriebsart     1
     2018-11-02 08:55:30   Kennlinie Steilheit 0.92
     2018-11-02 08:55:30   Kennlinie Verschiebung 0.0
     2018-11-02 08:55:30   Komfortsollwert 22.0
     2018-11-02 08:55:30   Reduziertsollwert 20.0
     2018-11-02 08:55:30   Status Heizkreis 1 56
   REQUEST:
     data       
     header     
     ignoreredirects 0
     retryCount 0
     type       update
     url        http://192.168.x.xx/xxxx/700/710/712/720/721/8000
     value      0
   defptr:
     readingBase:
       Betriebsart reading
       Kennlinie Steilheit reading
       Kennlinie Verschiebung reading
       Komfortsollwert reading
       Reduziertsollwert reading
       Status Heizkreis 1 reading
       reading5   reading
     readingNum:
       Betriebsart 0
       Kennlinie Steilheit 3
       Kennlinie Verschiebung 4
       Komfortsollwert 1
       Reduziertsollwert 2
       Status Heizkreis 1 5
       reading5   5
     readingOutdated:
     requestReadings:
       update:
         Betriebsart reading 0
         Kennlinie Steilheit reading 3
         Kennlinie Verschiebung reading 4
         Komfortsollwert reading 1
         Reduziertsollwert reading 2
         Status Heizkreis 1 reading 5
         reading5   reading 5
   sslargs:
Attributes:
   disable    0
   enableControlSet 1
   event-min-interval .*:1800
   event-on-change-reading .*
   reading0Name Betriebsart
   reading0Regex 700 .*:[ \t]+([-]?[\d\.]+)
   reading1Name Komfortsollwert
   reading1Regex 710 .*:[ \t]+([-]?[\d\.]+)
   reading2Name Reduziertsollwert
   reading2Regex 712 .*:[ \t]+([-]?[\d\.]+)
   reading3Name Kennlinie Steilheit
   reading3Regex 720 .*:[ \t]+([-]?[\d\.]+)
   reading4Name Kennlinie Verschiebung
   reading4Regex 721 .*:[ \t]+([-]?[\d\.]+)
   reading5Name Status Heizkreis 1
   reading5Regex 8000 .*:[ \t]+([-]?[\d\.]+)
   readingOExpr $val=~s/[\r\n]//g;$val
   room       Heizung
   timeout    30
   userattr   event-min-interval event-on-change-reading reading0Name reading0Regex reading1Name reading1Regex reading2Name reading2Regex reading3Name reading3Regex reading4Name reading4Regex reading5Name reading5Regex reading6Name reading6Regex reading7Name reading7Regex reading8Name reading8Regex reading9Name reading9Regex readingOExpr timeout webCmd


Titel: Antw:Reading ersetzen / tauschen
Beitrag von: binford6000 am 02 November 2018, 09:40:36
Hallo Jewe,
das müsste laut Modulhilfe mit dem Attribut readingOMap gehen:
ZitatTo map a raw numerical value to a name, you can use the readingOMap attribute. It defines a mapping from raw values read from the device to visible values like "0:mittig, 1:oberhalb, 2:unterhalb".
Example:
attr PM reading02-3OMap 0:kalt, 1:warm, 2:sehr warm

VG Sebastian
Titel: Antw:Reading ersetzen / tauschen
Beitrag von: Jewe am 02 November 2018, 22:20:32
Hallo Sebastian,

vielen Dank. So klappt es super. Das habe ich in der Hilfe doch glatt überlesen.

Jens