Wertumwandlung Fließkomma auf Ganzzahl setReading

Begonnen von amthenia, 24 September 2017, 08:15:59

Vorheriges Thema - Nächstes Thema

amthenia

#15
KNX_1401001:f-get:.* set Feuchtigkeit_H2_EG raw $EVTPART1
Das macht genau was ich will, warum die Kommastellen weg sind, weiß ich nicht.

Ja Joachim da hast du recht - mit allem.
Das was du schreibst geht, aber man kann es nicht nach raw oder value übergeben (korrigiert mich wenn ich falsch liege)

Ich weiß nicht warum ich das so dokumentiert habe, ich wollte einfach Hilfe, und nicht das der Thread unter geht.
Ich muss jetzt überlegen was man daraus für den nächsten wie mich dokumentieren kann, damit der nicht den selben Thread aufmacht.

Danke Joachim für deine Hilfe!
Im Endeffekt muss man EVTPART mehr dokumentieren, das hätte ich sofort mehr benutzt wenn ich es verstanden hätte.

MadMax-FHEM

Wenn's geht is gut...

Bin mir zwar noch nicht genau sicher was du genau (also in Summe) wolltest aber nicht (mehr) so wichtig...

Der Titel des Threads ist ja auch "eigenartig" denn event-on-change-reading hat mit Wertumwandlung nichts zu tun...

Viel Spaß noch, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

amthenia

#17
Hilfe, ich bin immer noch auf der Suche nach dem optimalsten Weg, wie ich 23,99 in 23 wieder auf den Bus schreibe.
Diesmal wollte ich es in Readings reinschreiben.
Die Andere Methode ist zu unübersichtlich bei 4 Wohnungen.
Help!

i = ist (temp)
s = soll (temp)
v = ventil
co2 = co2
f = feuchtigkeit



define H2EG KNX 14/0/1:dpt9.001:i 14/0/2:dpt9.001:s 14/0/12:dpt9.001:v 14/1/1:dpt9.008:co2 14/1/2:dpt9.007:f
attr H2EG IODev KNXROUTER2
attr H2EG group CO2
attr H2EG room Test
attr H2EG stateFormat i: i-get, s: s-get, v: v-get, co2: co2-get f: f-get

define H2EG_F FileLog ./log/H2EG_F-%Y.log H2EG
attr H2EG_F logtype text

define H2EG_INT KNX 99/9/1:dpt3:i 99/9/2:dpt7:s 99/9/3:dpt7:v 99/8/4:dpt7:co2 99/9/5:dpt1:f
attr H2EG_INT IODev KNXROUTER2
attr H2EG_INT room Test
attr H2EG_INT stateFormat i: i-get, s: s-get, v: v-get, co2: co2-get f: f-get

define H2EG_notify_i notify H2EG:i-get:.* setReading H2EG_INT i-get $EVTPART1
attr H2EG_notify_i addStateEvent 1
define H2EG_notify_s notify H2EG:s-get:.* setReading H2EG_INT s-get $EVTPART1
attr H2EG_notify_s addStateEvent 1
define H2EG_notify_v notify H2EG:v-get:.* setReading H2EG_INT v-get $EVTPART1
attr H2EG_notify_v addStateEvent 1
define H2EG_notify_co2 notify H2EG:.* setReading H2EG_INT co2-get $EVTPART0
attr H2EG_notify_co2 addStateEvent 1
define H2EG_notify_f notify H2EG:f-get:.* setReading H2EG_INT f-get $EVTPART1
attr H2EG_notify_f addStateEvent 1

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

amthenia

#19
H2EG:.* setReading H2EG_INT co2-get {sprintf("%u",$EVTPART0)}
:( geht nicht.
{sprintf("%u",42.12)}
aber so ginge auch
int(42.12)

CoolTux

Also bei mir geht das super
{sprintf("%u",42.12)}
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

amthenia

Ja schon
ich kann so den Wert nicht umwandeln.

Wie würdest du denn diese Zeile schreiben?

amthenia

Es steht im Web:
H2EG_INT
i: 24.12, s: 21.00, v: 0.00, co2: {sprintf("%u",592.00)}, f: 47.52 on off

Er schreibt nur die Variable $EVTPART0 korrekt auf 592.00 den rest nimmt er wörtlich

CoolTux

Huch jetzt sehe ich erst was Du da verzapft hast.

{ fhem("setreading H2EG_INT co2-get " . sprintf("%u",$EVTPART0); }
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

amthenia


amthenia

define H2EG_notify_co2 notify H2EG:co2-get:.* setReading H2EG_INT co2-get {fhem(sprintf('%u',$EVTPART1))}\

CoolTux


H2EG:.* { fhem("setReading H2EG_INT co2-get " . sprintf("%u",$EVTPART0)); }
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

amthenia

H2EG:co2-get.* { fhem("setReading H2EG_INT co2-get " . sprintf("%u",$EVTPART1)); }
Hinter H2EG_INT liegt eine eigene Gruppenadresse, das schreibt der doch jetzt hoffentlich auf den Bus oder ?

CoolTux

Er macht das was da steht
setReading H2EG_INT co2-get 21
Das kommt dann als Befehl an. Als Beispiel
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

CoolTux

Wobei dein setReading sicherlich setreading heißen soll. Also eigentlich schreibt er ein Reading und nicht auf einen Bus. Aber ich weiß nicht was da noch bei dir dahinter steckt
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net