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},
Kruzifix...
Nein, ich glaube ich stehe mit DIESEM DPT auf Kriegsfuss. Korrektur heute ABend...
Mach mal bitte morgen ein Update. Fix ist eingechecked.
Passt wieder soweit. Danke! :)
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 :
Das krieg ich kurzfristig nicht anders hin. Es gibt nen Parallelthread, in dem steht ein Workaround beschrieben.
ich denke folgender Thread ist gemeint:
https://forum.fhem.de/index.php/topic,62020.msg534198.html#msg534198 (https://forum.fhem.de/index.php/topic,62020.msg534198.html#msg534198)
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] ...