falsche Werte / Check Value: input-value was casted to

Begonnen von cfs, 15 Januar 2017, 21:34:20

Vorheriges Thema - Nächstes Thema

cfs

N'abend zusammen,

seit ich gestern ein Update gemacht habe, bekomme ich im KNX falsche Werte auf den Bus gesendet. Ich nehme mir Daten von externen Sensoren und schreibe die auf den Bus. Dabei werden die Daten nun abgeschnitten.

2017.01.15 21:28:17 3: check value: input-value 21.7 was casted to .7
2017.01.15 21:28:18 3: check value: input-value 18.7 was casted to .7
2017.01.15 21:28:19 3: check value: input-value -2.5 was casted to .5
2017.01.15 21:28:20 3: check value: input-value 21.93 was casted to .93

Ich habe gesehen, daß ein BugFix in den dpt009 gegangen ist. Da meine empfangenden Adressen DPT009.001 sind, denke ich ist da schon ein Erklärungsversuch?
(https://svn.fhem.de/trac/changeset/13065/trunk)

define notify_knx_temp at +*00:15:00 {fhem "set KNX_0800000 value ".ReadingsNum("ZWave_SENSOR_MULTILEVEL_4_01","temperature",0);;fhem "set KNX_0800001 value ".ReadingsNum("ZWave_SENSOR_MULTILEVEL_10","temperature",0);;{my $temp=ReadingsNum("ZWave_SENSOR_NOTIFICATION_AUSSEN_01","temperature",0);;fhem "set ZWave_SENSOR_NOTIFICATION_AUSSEN_01_TEMP_CALIBRATED " .int($temp*10+30)/10};;fhem "set KNX_0800002 value ".ReadingsNum("ZWave_SENSOR_NOTIFICATION_AUSSEN_01","temperature_calibrated",0);;fhem "set KNX_0800003 value ".ReadingsNum("ZWave_RTR_01","temperature",0)}

Im Prinzip casted er alle Daten abgeschnitten vor dem Dezimaltrenner (.).

Ich habe in der 10_KNX.pm die Änderungen für dpt9 und 001 rückgängig gemacht und dann passt auch wieder alles. Habe ich einen Denkfehler ?
# 2-Octet Float value
#"dpt9" => {CODE=>"dpt9", UNIT=>"", FACTOR=>1, OFFSET=>0, PATTERN=>qr/[+-]?\d{1,6}([.,]\d{1,2})?/, MIN=>-670760, MAX=>670760},
"dpt9"          => {CODE=>"dpt9", UNIT=>"", FACTOR=>1, OFFSET=>0, PATTERN=>qr/[+-]?\d{1,6}[.,]?\d{0,}/, MIN=>-670760, MAX=>670760},
#"dpt9.001" => {CODE=>"dpt9", UNIT=>"°C", FACTOR=>1, OFFSET=>0, PATTERN=>qr/[+-]?\d{1,6}([.,]\d{1,2})?/, MIN=>-670760, MAX=>670760},
    "dpt9.001"      => {CODE=>"dpt9", UNIT=>"°C", FACTOR=>1, OFFSET=>0, PATTERN=>qr/[+-]?\d{1,6}[.,]?\d{0,}/, MIN=>-670760, MAX=>670760},




Andi291

Kruzifix...

Nein, ich glaube ich stehe mit DIESEM DPT auf Kriegsfuss. Korrektur heute ABend...

Andi291

Mach mal bitte morgen ein Update. Fix ist eingechecked.


Superrakete

Hallo. Ich hatte das gleiche mit dem "casted to". Das funktioniert nun wieder. Bei mir bleibt aber trotzdem noch ein Problem wenn ich die Temperatur meiner Heizung ändern will:

define com_Wohnzimmer_sollwertverschiebung KNX 4/0/10:dpt9.001
attr com_Wohnzimmer_sollwertverschiebung alias Wohnzimmer Heizung Solltemperatur
attr com_Wohnzimmer_sollwertverschiebung devStateIcon .*:noIcon:noFhemwebLink
attr com_Wohnzimmer_sollwertverschiebung event-on-change-reading state
attr com_Wohnzimmer_sollwertverschiebung group Heizung
attr com_Wohnzimmer_sollwertverschiebung room hidden
attr com_Wohnzimmer_sollwertverschiebung webCmd :


Ein "set com_Wohnzimmer_sollwertverschiebung value 22" bringt nur " invalid value: 22". Es wird auch nichts auf den Bus gesendet.
Mit der 10_KNX.pm vom 10.01.17 funktioniert noch alles.

Habe gerade rausgefunden "set com_Wohnzimmer_sollwertverschiebung value 22,0" funktioniert. Das Problem ist nur, dass mein Temperaturauswahl dummy aus z.B. "17.0" nur noch "17" macht und dann kommt wieder invalid value:17. "17.5" funktioniert. Nur mit Null am Ende gibts Probleme.

define dum_Kueche_temperaturauswahl dummy
attr dum_Kueche_temperaturauswahl alias Küche Heizung Solltemperaturauswahl
attr dum_Kueche_temperaturauswahl group Heizung
attr dum_Kueche_temperaturauswahl room Küche,Heizung
attr dum_Kueche_temperaturauswahl setList state:17.0,17.5,18.0,18.5,19.0,19.5,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0
attr dum_Kueche_temperaturauswahl webCmd state

define doif_Kueche_temperaturauswahl_komfort DOIF ([dum_Kueche_temperaturauswahl]) (set com_Kueche_sollwertverschiebung value {([dum_Kueche_temperaturauswahl])})
attr doif_Kueche_temperaturauswahl_komfort do always

define com_Kueche_sollwertverschiebung KNX 4/0/60:dpt9.001
#attr com_Kueche_sollwertverschiebung IODev tul
attr com_Kueche_sollwertverschiebung alias Küche Heizung Solltemperatur
attr com_Kueche_sollwertverschiebung devStateIcon .*:noIcon:noFhemwebLink
attr com_Kueche_sollwertverschiebung event-on-change-reading state
attr com_Kueche_sollwertverschiebung group Heizung
attr com_Kueche_sollwertverschiebung room hidden
attr com_Kueche_sollwertverschiebung webCmd :




Andi291

Das krieg ich kurzfristig nicht anders hin. Es gibt nen Parallelthread, in dem steht ein Workaround beschrieben.


JoeALLb

Nur ein kurzer Hinweis:
Zitat von: Superrakete am 17 Januar 2017, 19:02:58

define doif_Kueche_temperaturauswahl_komfort DOIF ([dum_Kueche_temperaturauswahl]) (set com_Kueche_sollwertverschiebung value {([dum_Kueche_temperaturauswahl])})



Statt {([dum_Kueche_temperaturauswahl])} reicht bei mir auch [dum_Kueche_temperaturauswahl] ...
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270