Hallo,
ich hab mal wieder ein Problem/Bug.
Wenn ich in einem Plugin aktuelle Temperaturwerte abfragen will, dann bekomme ich keine korrekte Antwort zurück.
Das Plugin sollte eigentich 1s auf die Antwort warten, dachte ich gelesen zu haben.
Das ist bei mir so bei Patchlevel 28 (und auch 29 seit heute).
Im Anhang seht ihr Webmin mit den zwei GA's um die es geht. (Globaler Sendezyklus steht auf 300 Sekunden.)
Eigentlich sollte der Wert alle 10 Sekunden gesendet werden. Tut er aber nicht, aber das ist eingentlich nicht das Problem hier [gibt es einen anderen Thread für hab ich gesehen].
Er soll ein Lesetelegramm senden, wenn der Wert zu alt ist.
Und hier ein paar Zeilen auf dem Plugin:
Ich hoffe das ist soweit klar und vorallem richtig ;-)
/var/log/wiregate_plugin.log:
/var/log/eib.log:
Vergessen wir mal das Zyklische (BLAU) - anderer Thread wie gesagt.
Farblkich ROT hervorgehoben hab ich mal die Aktionen bei Warmwasser = 3/6/2. (Bei der anderen ists ja gleich).
Nun die Preisfrage:
Wieso wird zwar ein Sendetelegramm gesendet, es kommt auch ein Response, aber das Plugin bekommt das nicht mit, sondern nur 0 und wirft dann die Fehlermeldung aus?
Oder hab ich was falsch gemacht?
Gruß
Tobi
ich hab mal wieder ein Problem/Bug.
Wenn ich in einem Plugin aktuelle Temperaturwerte abfragen will, dann bekomme ich keine korrekte Antwort zurück.
Das Plugin sollte eigentich 1s auf die Antwort warten, dachte ich gelesen zu haben.
Das ist bei mir so bei Patchlevel 28 (und auch 29 seit heute).
Im Anhang seht ihr Webmin mit den zwei GA's um die es geht. (Globaler Sendezyklus steht auf 300 Sekunden.)
Eigentlich sollte der Wert alle 10 Sekunden gesendet werden. Tut er aber nicht, aber das ist eingentlich nicht das Problem hier [gibt es einen anderen Thread für hab ich gesehen].
Er soll ein Lesetelegramm senden, wenn der Wert zu alt ist.
Und hier ein paar Zeilen auf dem Plugin:
PHP-Code:
my $t_warmwasser_ga = "3/6/2"; #GA Temperatur Warmwasser
my $t_zirkulation_ga = "3/6/3"; #GA Temperatur Zirkulation
...
my $temp_warmwasser = knx_read($t_warmwasser_ga,15,"9.001"); #max 15 sekunden alt
my $temp_zirkulation = knx_read($t_zirkulation_ga,15,"9.001"); #max 15 sekunden alt
...
my $error = 0;
if ($temp_warmwasser == 0){$error=1; plugin_log($plugname,"Lesefehler Warmwasser!");}
if ($temp_zirkulation == 0){$error=1; plugin_log($plugname,"Lesefehler Zirkulation!");}
if ($error == 1){return;}
/var/log/wiregate_plugin.log:
2011-11-13 19:41:26.658,_TEST - Zirkulationspumpe NEU,Lesefehler Warmwasser!
2011-11-13 19:41:26.658,_TEST - Zirkulationspumpe NEU,Lesefehler Zirkulation!
2011-11-13 19:41:34.952,_TEST - Zirkulationspumpe NEU, Timer: Immer2 [STATE: 0->1] Timer [W:38.5 Z:32 d:6.5],0s,
2011-11-13 19:41:36.038,_TEST - Zirkulationspumpe NEU, Timer: Immer2 [STATE: 1->0] Wasser noch warm genug. [W:38.5 Z:32 d:6.5],0s,
2011-11-13 19:42:36.287,_TEST - Zirkulationspumpe NEU, Timer: Immer2 [STATE: 0->1] Timer [W:38 Z:31.74 d:6.26],0s,
2011-11-13 19:42:37.466,_TEST - Zirkulationspumpe NEU, Timer: Immer2 [STATE: 1->0] Wasser noch warm genug. [W:38 Z:31.74 d:6.26],0s,
2011-11-13 19:43:39.593,_TEST - Zirkulationspumpe NEU,Lesefehler Warmwasser! Letzter Wert zu alt (>15s) - Lesen nötig und erfolgreich (siehe unten im eib.log)
2011-11-13 19:43:39.593,_TEST - Zirkulationspumpe NEU,Lesefehler Zirkulation!
2011-11-13 19:43:48.031,_TEST - Zirkulationspumpe NEU, Timer: Immer2 [STATE: 0->1] Timer [W:37.5 Z:31.24 d:6.26],0s,
2011-11-13 19:43:49.117,_TEST - Zirkulationspumpe NEU, Timer: Immer2 [STATE: 1->0] Wasser noch warm genug. [W:37.5 Z:31.24 d:6.26],0s,
2011-11-13 19:41:26.658,_TEST - Zirkulationspumpe NEU,Lesefehler Zirkulation!
2011-11-13 19:41:34.952,_TEST - Zirkulationspumpe NEU, Timer: Immer2 [STATE: 0->1] Timer [W:38.5 Z:32 d:6.5],0s,
2011-11-13 19:41:36.038,_TEST - Zirkulationspumpe NEU, Timer: Immer2 [STATE: 1->0] Wasser noch warm genug. [W:38.5 Z:32 d:6.5],0s,
2011-11-13 19:42:36.287,_TEST - Zirkulationspumpe NEU, Timer: Immer2 [STATE: 0->1] Timer [W:38 Z:31.74 d:6.26],0s,
2011-11-13 19:42:37.466,_TEST - Zirkulationspumpe NEU, Timer: Immer2 [STATE: 1->0] Wasser noch warm genug. [W:38 Z:31.74 d:6.26],0s,
2011-11-13 19:43:39.593,_TEST - Zirkulationspumpe NEU,Lesefehler Warmwasser! Letzter Wert zu alt (>15s) - Lesen nötig und erfolgreich (siehe unten im eib.log)
2011-11-13 19:43:39.593,_TEST - Zirkulationspumpe NEU,Lesefehler Zirkulation!
2011-11-13 19:43:48.031,_TEST - Zirkulationspumpe NEU, Timer: Immer2 [STATE: 0->1] Timer [W:37.5 Z:31.24 d:6.26],0s,
2011-11-13 19:43:49.117,_TEST - Zirkulationspumpe NEU, Timer: Immer2 [STATE: 1->0] Wasser noch warm genug. [W:37.5 Z:31.24 d:6.26],0s,
/var/log/eib.log:
2011-11-13 19:41:02.753,A_GroupValue_Write,0.0.0,3/6/3,0E 4C,32.24,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_R EQ,0
2011-11-13 19:41:05.233,A_GroupValue_Write,0.0.0,3/6/2,0F 91,38.74,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_R EQ,0 Zyklisch
2011-11-13 19:41:28.381,A_GroupValue_Read,0.0.0,3/6/2,00,0,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ ,0
2011-11-13 19:41:28.765,A_GroupValue_Read,0.0.0,3/6/3,00,0,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ ,0
2011-11-13 19:41:28.780,A_GroupValue_Response,0.0.0,3/6/2,0F 85,38.5,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_RE Q,0
2011-11-13 19:41:28.785,A_GroupValue_Response,0.0.0,3/6/3,0E 40,32,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ, 0
2011-11-13 19:42:33.163,A_GroupValue_Write,0.0.0,3/6/3,0E 33,31.74,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_R EQ,0
2011-11-13 19:42:33.168,A_GroupValue_Write,0.0.0,3/6/2,0F 6C,38,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ, 0 Zyklisch (zu spät)
2011-11-13 19:43:39.957,A_GroupValue_Read,0.0.0,3/6/2,00,0,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ ,0 Lesetelegramm -> ok
2011-11-13 19:43:40.308,A_GroupValue_Read,0.0.0,3/6/3,00,0,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ ,0
2011-11-13 19:43:40.316,A_GroupValue_Response,0.0.0,3/6/2,0F 53,37.5,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_RE Q,0 Response -> ok
2011-11-13 19:43:40.324,A_GroupValue_Response,0.0.0,3/6/3,0E 1A,31.24,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_R EQ,0
2011-11-13 19:41:05.233,A_GroupValue_Write,0.0.0,3/6/2,0F 91,38.74,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_R EQ,0 Zyklisch
2011-11-13 19:41:28.381,A_GroupValue_Read,0.0.0,3/6/2,00,0,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ ,0
2011-11-13 19:41:28.765,A_GroupValue_Read,0.0.0,3/6/3,00,0,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ ,0
2011-11-13 19:41:28.780,A_GroupValue_Response,0.0.0,3/6/2,0F 85,38.5,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_RE Q,0
2011-11-13 19:41:28.785,A_GroupValue_Response,0.0.0,3/6/3,0E 40,32,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ, 0
2011-11-13 19:42:33.163,A_GroupValue_Write,0.0.0,3/6/3,0E 33,31.74,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_R EQ,0
2011-11-13 19:42:33.168,A_GroupValue_Write,0.0.0,3/6/2,0F 6C,38,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ, 0 Zyklisch (zu spät)
2011-11-13 19:43:39.957,A_GroupValue_Read,0.0.0,3/6/2,00,0,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ ,0 Lesetelegramm -> ok
2011-11-13 19:43:40.308,A_GroupValue_Read,0.0.0,3/6/3,00,0,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_REQ ,0
2011-11-13 19:43:40.316,A_GroupValue_Response,0.0.0,3/6/2,0F 53,37.5,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_RE Q,0 Response -> ok
2011-11-13 19:43:40.324,A_GroupValue_Response,0.0.0,3/6/3,0E 1A,31.24,DPT_Value_Temp,9.001,0,low,7,T_DATA_XXX_R EQ,0
Vergessen wir mal das Zyklische (BLAU) - anderer Thread wie gesagt.
Farblkich ROT hervorgehoben hab ich mal die Aktionen bei Warmwasser = 3/6/2. (Bei der anderen ists ja gleich).
Nun die Preisfrage:
Wieso wird zwar ein Sendetelegramm gesendet, es kommt auch ein Response, aber das Plugin bekommt das nicht mit, sondern nur 0 und wirft dann die Fehlermeldung aus?
Oder hab ich was falsch gemacht?
Gruß
Tobi
Kommentar