HTTPMOD und Nachkommastellen

Begonnen von Heimweh, 17 August 2016, 12:44:21

Vorheriges Thema - Nächstes Thema

Heimweh

Ich beiße mir seit Stunden die Zähne aus, finde auch hier im Forum keine Lösung....

Ich lese per HTTPMOD aus meiner Solarsteuerung den Solarertrag aus. Dieser wird mit einem Komma und einer Nachkommastelle ausgegeben (im Reading korrekt),
aber im State werden die Nachkommastellen nicht berücksichtigt. Es ist hinter dem Komma immer eine Null. Weiß jemand Rat?


# ---------------------------
# - ETA SOLARERTRAG GESTERN -
# ---------------------------
#
define ertraggesternEta HTTPMOD http://192.168.178.27:8080/user/var/120/10221/0/0/12769 30
attr ertraggesternEta reading01Name SEG_Eta
attr ertraggesternEta reading01Regex strValue="([\d\d]+)"
attr ertraggesternEta event-min-interval SEG_Eta:82000
attr ertraggesternEta event-on-change-reading .*
attr ertraggesternEta group ETA
attr ertraggesternEta room Heizung
attr ertraggesternEta stateFormat {sprintf("%.2f kW/h",ReadingsVal($name,"SEG_Eta",0))}


Der List dazu sieht so aus:



Internals:
   BUSY       0
   CHANGED
   DEF        http://192.168.178.27:8080/user/var/120/10221/0/0/12769 30
   Interval   30
   LASTSEND   1471430480.3457
   MainURL    http://192.168.178.27:8080/user/var/120/10221/0/0/12769
   ModuleVersion 3.3.0 - 19.6.2016
   NAME       ertraggesternEta
   NR         180
   STATE      13.00 kW/h
   TRIGGERTIME 1471430510.34344
   TRIGGERTIME_FMT 2016-08-17 12:41:50
   TYPE       HTTPMOD
   addr       http://192.168.178.27:8080
   buf        HTTP/1.0 200 OK

Content-Length: 236

Content-Type: application/xml;charset=UTF-8

Cache-Control: no-cache

Date: Wed, 17 Aug 2016 12:37:36 GMT



<?xml version="1.0" encoding="utf-8"?>
<eta version="1.0" xmlns="http://www.eta.co.at/rest/v1">
  <value uri="/user/var/120/10221/0/0/12769" strValue="13,9" unit="kWh" decPlaces="1" scaleFactor="10" advTextOffset="0">139</value>
</eta>

   code       200
   conn
   data
   displayurl http://192.168.178.27:8080/user/var/120/10221/0/0/12769
   header
   host       192.168.178.27
   httpheader HTTP/1.0 200 OK

Content-Length: 236

Content-Type: application/xml;charset=UTF-8

Cache-Control: no-cache

Date: Wed, 17 Aug 2016 12:37:36 GMT
   httpversion 1.0
   hu_blocking 0
   hu_filecount 132
   ignoreredirects 0
   loglevel   4
   path       /user/var/120/10221/0/0/12769
   protocol   http
   redirects  0
   timeout    2
   url        http://192.168.178.27:8080/user/var/120/10221/0/0/12769
   value      0
   QUEUE:
   Readings:
     2016-01-28 11:16:17   AL_Eta          0,0
     2016-08-17 11:35:39   SEG_Eta         13,9
     2016-01-28 10:45:01   SEH_Eta         0,0
     2016-01-28 10:30:57   temp            0,0
   Request:
     data
     header
     ignoreredirects 0
     retryCount 0
     type       update
     url        http://192.168.178.27:8080/user/var/120/10221/0/0/12769
     value      0
   Sslargs:
Attributes:
   event-min-interval SEG_Eta:82000
   event-on-change-reading .*
   group      ETA
   reading01Name SEG_Eta
   reading01Regex strValue="([\d\d]+)"
   room       Heizung
   stateFormat {sprintf("%.2f kW/h",ReadingsVal($name,"SEG_Eta",0))}
   userattr   reading01Name reading01Regex





RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

Vize

Mahlzeit,

Schnellschuss:
Ich vermute mal, dass es an dem Komma im Reading liegt (13,9), wo eigentlich ein Punkt erwartet wird.
Dann wird wohl nur die 13 "weitergeschleift"...

Gruß
Andreas

Heimweh

Hallo Andreas,

ja das vermute ich auch. Und wie kann ich das lösen?

RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

frank

FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Heimweh

Hallo Frank, vielen Dank für den link. Damit hatte ich auch schon experimentiert,
dann bekomme ich den Fehler:

Unknown command $val, try help.


define ertraggesternEta HTTPMOD http://192.168.178.27:8080/user/var/120/10221/0/0/12769 30
attr ertraggesternEta reading01Name SEG_Eta
attr ertraggesternEta reading01Regex strValue="([\d\d]+)"
attr ertraggesternEta reading01Expr $val =~ s/,/\./; $val;
attr ertraggesternEta event-min-interval SEG_Eta:82000
attr ertraggesternEta event-on-change-reading .*
attr ertraggesternEta group ETA
attr ertraggesternEta room Heizung
attr ertraggesternEta alias Eta Solar Ertrag gestern
attr ertraggesternEta stateFormat {sprintf("%.2f kW/h",ReadingsVal($name,"SEG_Eta",0))}


Habe ich das evtl. nicht richtig implementiert?
RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

frank

habe ich selbst nie genutzt.
dein fhem ist up-to-date?
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

frank

commandref =>
(get|reading)[0-9]*Expr
This is the old syntax for (get|reading)[0-9]*OExpr. It should be replaced by (get|reading)[0-9]*OExpr. The set command upgradeAttributes which becomes visible when the attribute enableControlSet is set to 1, can do this renaming automatically.


versuch mal reading01OExpr.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Heimweh

FHEM ist aktuell, habe sicherheitshalber nochmal ein Update gemacht.

Das mit der neuen "Schreibweise" ist bei mir bereits implementiert, auch ein "O" oder eine "0" dazwischen macht keinen Unterschied....


attr ertraggesternEta reading010Name SEG_Eta
attr ertraggesternEta reading010Regex strValue="([\d\d]+)"
attr ertraggesternEta reading010Expr $val =~ s/,/\./; $val;
RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

frank

OOOOOhhhh, wie output-expression.
nur dieses attribut ändern, kein "O" bei name, regex oder sonstwo.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Heimweh

Hallo Frank.

habe es geändert. Geht aber leider trotzdem nicht. Es kommt immer ein Fehler : Unknown command $val, try help.

Ich habe nun das $val weggelassen:


attr ertraggesternEta reading010Expr $val =~ s/,/\./; $val;


sieht jetzt so aus:


attr ertraggesternEta reading010Expr $val =~ s/,/\./;


Fehler ist nun weg, geht aber trotzdem nicht. Der Wert bleibt unverändert. Im reading stimmts (7,5) - aber State zeigt nur 7.0
RaspberryPi, 8 x Intertechnosteckdosen, ETA PU15 über HTTPMOD, Youless Eneergiemonitor, 8 x Technoline Funk Temperatur / Feuchtesensoren über jeeLink, Fritzbox Anbindung, Homematic Rolladen Aktoren, MAX Heizkörperventile + Cube, SONOFF S20, S26, POW, 4ch, OWD, Alexa-fhem, enOcean / Eltako,

frank

hm..., seltsam.
dann musst du wohl die userreadings variante aus dem thread nehmen.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html