Reading ersetzen / tauschen

Begonnen von Jewe, 02 November 2018, 09:10:24

Vorheriges Thema - Nächstes Thema

Jewe

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



binford6000

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

Jewe

Hallo Sebastian,

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

Jens