FHEM Forum

FHEM - Hausautomations-Systeme => MAX => Thema gestartet von: Tobias am 27 Januar 2013, 13:03:35

Titel: rf-error beim HeizkörperThermostat, kein LOVF
Beitrag von: Tobias am 27 Januar 2013, 13:03:35
Hi,
ich habe bei einem meiner MAX-Thermostate einen externen Temperatursensor (WS555) der alle 5-10min die Raumtemp meldet. Per Notify sende ich die Temp zum Max-Thermostat. Das funktioniert auch gut, das Thermostat akzeptiert diese und zeigt sie auch als eigene an.
Problem aber: seitdem meldet das Max-Thermostat ständig rf-error sobald es selbst etwas an meinen CUL meldet. Zb. am Stellrad die Soll-Temperatur ändern, Valveposition geändert etc. Dann blinkt mal lang - mal weniger lange- das kleine Antennensymbol auf dem Thermostat.

Ich schätze, das Thermostat wandert selbst ständig in ein LOVF rein, aber warum?? Das Max-eigene WandThermostat sendet doch auch ständig die Temperatur zum Heizkörperthermostat, und da wird wohl alles sauber funktionieren..
Ich sehe hier 2 Ansätze:
1. ich melde die Temperatur zu oft. Einen noch längeren Zeitraum schraubt aber die Trägheit des Systems nach oben, entweder wird es zu spät warm, oder zu spät die Heizung abgeregelt und ich habe Sauna.
2. an der Implementierung im Modul ist noch etwas nicht ganz korrekt
3. benötigt man bei diesem fake-Anwendungsfall kein ACK des CUL und kann dies im Thermostat abschalten? Gibts dafür einen Parameter das man bei einer NAchricht kein ACK haben möchte? Wie machts das Original Max-Wandthermostat?

Hier mal das Notify zum Temp an das Thermostat übermitteln:
WZ_Temperatur:temperature.* {
  my $heizung = "WZ_Heizung";
  my $wandthermostat = "WZ_Wandthermostat";
  my $temperature = %EVTPART1;
  my $desiredTemp = ReadingsVal($heizung, "desiredTemperature", undef);

  if($desiredTemp) {
    Log 3, "set $wandthermostat fake $heizung $desiredTemp $temperature";
    fhem("set $wandthermostat fake $heizung $desiredTemp $temperature");
  } else {
    Log 3, "Konnte desired-temperature aus $heizung nicht auslesen!";
  }
}
Titel: Aw: rf-error beim HeizkörperThermostat, kein LOVF
Beitrag von: Matthias Gehre am 27 Januar 2013, 18:45:30
Also der Cube kann 33 Pakete pro Stunde senden bis zum LOVF, daher nehme ich an, dass es beiden Thermostaten auch so ist.
Allerdings zeigen die irgendwas an, wenn sie im LOVF sind. Dazu stand was im Handbuch der Thermostate.

zu deinen Varianten:
1. Probier doch mal aus, ob das den Fehler beseitigt
2. Möglich, aber dazu brauchen wir eben einen Anhaltspunkt. Also erst mal 1.) ausprobieren.
3. Wenn du ein Wandthermostat hast, dann kannst du mit dem CUL mitschneiden, was da zwischen Wandthermostat und Heizthermostat passiert.
M.E. machen wir das genauso wie die beiden, aber du kannst das noch mal verifizieren.

4. Die Argumente von "fake" werden noch nicht besonders gut validiert. Insbesondere darf das zweite Argument im Moment nicht über 25.5 sein.
Titel: Aw: rf-error beim HeizkörperThermostat, kein LOVF
Beitrag von: Tobias am 30 Januar 2013, 18:25:51
So, mal einige Varianten durchprobiert.
Sobald ich das Thermostat mit dem Fake Wandthermostat paire, bekomme ich rf-errors (blinkendes Ant.symbol). Und auch immer dann wieder wenn ich am Thermostat die Temp ändere.

Ich denke das Thermostat fragt irgendetwas vom Wandthermostat aktiv ab und entweder bleibt die Antwort aus, oder ein Ack fehlt worauf das MAX-Modul noch nicht reagiert.
Titel: Aw: rf-error beim HeizkörperThermostat, kein LOVF
Beitrag von: Tobias am 30 Januar 2013, 18:36:41
Nachtrag: gleich nach dem pairen, ca 30sek später habe ich den rf-error. Bis dahin habe ich noch kein Fake-Temp Signal gesendet.
Sobald ich zb. ein "set WZ_Wandthermostat fake WZ_Heizung 19.5 19.7" sende, ist der rf-error weg.
Stelle ich am HeizkThermostat nun manuell um, zb auf 20°C um, so beginnt es wieder zu blinken -> rf-error.
Ich denke das MAX-Modul muss ggf. als Type WallMountedThermostat antworten und nicht als Type Cube
Titel: Aw: rf-error beim HeizkörperThermostat, kein LOVF
Beitrag von: Matthias Gehre am 30 Januar 2013, 18:41:19
Kommen den irgendwelche Pakete vom Heizkörper an die Adresse des "fake" Wandthermostats?
Titel: Aw: rf-error beim HeizkörperThermostat, kein LOVF
Beitrag von: Tobias am 30 Januar 2013, 18:58:14
Ja:
2013.01.30 18:56:28 5: CUL/RAW: /Z0B3204400179EB4567890067F1

2013.01.30 18:56:28 5: CUL: Z0B3204400179EB4567890067 -81.5
2013.01.30 18:56:28 5: CUL dispatch Z0B3204400179EB4567890067
2013.01.30 18:56:28 5: CUL_MAX_Parse: len 11, msgcnt 32, msgflag 04, msgTypeRaw SetTemperature, src 0179eb, dst 456789, groupid 0, payload 67
2013.01.30 18:56:28 5: Unhandled message SetTemperature
2013.01.30 18:56:31 5: CUL/RAW: /Z0B3304400179EB4567890067EF

2013.01.30 18:56:31 5: CUL: Z0B3304400179EB4567890067 -82.5
2013.01.30 18:56:31 5: CUL dispatch Z0B3304400179EB4567890067
2013.01.30 18:56:31 5: CUL_MAX_Parse: len 11, msgcnt 33, msgflag 04, msgTypeRaw SetTemperature, src 0179eb, dst 456789, groupid 0, payload 67
2013.01.30 18:56:31 5: Unhandled message SetTemperature


Sobald ich ein Fake sende, hört das blinken auf
Titel: Aw: rf-error beim HeizkörperThermostat, kein LOVF
Beitrag von: Matthias Gehre am 30 Januar 2013, 19:49:49
Ich nehme mal an, wir müsste darauf ein Ack Paket senden, damit das Thermostat zufrieden ist.
Ist aber eine etwas kompliziertere Sache, da das in culfw gemacht werden muss.
Titel: Aw: rf-error beim HeizkörperThermostat, kein LOVF
Beitrag von: Tobias am 30 Januar 2013, 19:55:52
Zitat von: Matthias Gehre schrieb am Mi, 30 Januar 2013 19:49Ist aber eine etwas kompliziertere Sache, da das in culfw gemacht werden muss.
:( hmmmmmm, da kann ich leider nicht unterstützen..... ich hoffe mal das du es irgendwie hinbekommst....
Titel: Aw: rf-error beim HeizkörperThermostat, kein LOVF
Beitrag von: Matthias Gehre am 06 Februar 2013, 00:50:01
Ich hab das testweise mal in die angehängte culfw eingebaut.

Nach dem Start vom FHEM
bitte per
set CUL0 raw Zw456789
aktivieren. (Falls 456789 die Adresse vom fake Wandthermostat ist, ansonsten
anpassen)

Dieser Befehl sollte die culfw anweisen, auf alle SetTemperature Pakete an Adresse
456789 mit einem Ack zu antworten. Zur Kontrolle tauchen die gesendeten Acks
auch in FHEM in CUL_MAX_Parse auf.

Bitte testen!
Titel: Aw: rf-error beim HeizkörperThermostat, kein LOVF
Beitrag von: Tobias am 07 Februar 2013, 08:07:22
Hallo Matthias,
ich komm leider nicht vor dem WE dazu zu testen. Melde mich.
Titel: Aw: rf-error beim HeizkörperThermostat, kein LOVF
Beitrag von: Tobias am 13 Februar 2013, 09:52:05
ich bin noch am testen....
Als Zwischeninfo, folgende LogInfos finde ich:Use of uninitialized value $args[0] in length at ./FHEM/10_MAX.pm line 572.
Use of uninitialized value $args[0] in length at ./FHEM/10_MAX.pm line 575.
Use of uninitialized value $args[0] in length at ./FHEM/10_MAX.pm line 575.
Use of uninitialized value $args[0] in length at ./FHEM/10_MAX.pm line 575.
2013.02.13 09:32:35 2: Invalid WallThermostatState packet
Use of uninitialized value $desiredTemperature in bitwise and (&) at ./FHEM/10_MAX.pm line 599.
Titel: Aw: rf-error beim HeizkörperThermostat, kein LOVF
Beitrag von: Matthias Gehre am 13 Februar 2013, 15:24:14
Mir hilft nur ein Log auf verbose 5.
Bekommst du immernoch rferror mit der Anleitung aus meiner letzten Antwort?
Titel: Aw: rf-error beim HeizkörperThermostat, kein LOVF
Beitrag von: Tobias am 14 Februar 2013, 07:06:15
Hab jetzt mal verbose 5 gestartet und die Temp am Thermostat (id: 0179eb) manuell verstellt:
WZ_Wandthermostat ist das Fake-Wandthermostat mit der ID 456789. U.a fällt mir auch die desiredTemp von 0.0 auf.
Das vorheriuge Problem, des missingAck nach dem Verstellen der Temp am Thermostat ist mit deinem Patch nicht mehr aufgetreten. Kannst du also so einbauen..?? Ohne den "set CUL0 raw Zw456789" BEfehl?

2013.02.14 05:46:45 5: CUL/RAW: /Z0B1000024567890179EB000000
Z0B1004400179EB456789006004

2013.02.14 05:46:45 5: CUL: Z0B1000024567890179EB0000 -74
2013.02.14 05:46:45 5: CUL dispatch Z0B1000024567890179EB0000
2013.02.14 05:46:45 5: CUL_MAX_Parse: len 11, msgcnt 10, msgflag 00, msgTypeRaw Ack, src 456789, dst 0179eb, groupid 0, payload 00
2013.02.14 05:46:45 5: CULMAX0 dispatch MAX,0,Ack,456789,00
2013.02.14 05:46:45 5: MAX_Parse MAX,0,Ack,456789,00
2013.02.14 05:46:45 5: MAX_Parse MAX,0,WallThermostatState,456789,
Use of uninitialized value $args[0] in length at ./FHEM/10_MAX.pm line 572.
Use of uninitialized value $args[0] in length at ./FHEM/10_MAX.pm line 575.
Use of uninitialized value $args[0] in length at ./FHEM/10_MAX.pm line 575.
Use of uninitialized value $args[0] in length at ./FHEM/10_MAX.pm line 575.
2013.02.14 05:46:45 2: Invalid WallThermostatState packet
Use of uninitialized value $desiredTemperature in bitwise and (&) at ./FHEM/10_MAX.pm line 599.
2013.02.14 05:46:45 5: desiredTemperature 0
2013.02.14 05:46:45 5: Triggering WZ_Wandthermostat (2 changes)
2013.02.14 05:46:45 5: Notify loop for WZ_Wandthermostat desiredTemperature: 0.0
2013.02.14 05:46:45 5: CUL: Z0B1004400179EB4567890060 -72
2013.02.14 05:46:45 5: CUL dispatch Z0B1004400179EB4567890060
2013.02.14 05:46:45 5: CUL_MAX_Parse: len 11, msgcnt 10, msgflag 04, msgTypeRaw SetTemperature, src 0179eb, dst 456789, groupid 0, payload 60
2013.02.14 05:46:45 5: Unhandled message SetTemperature
Titel: Aw: rf-error beim HeizkörperThermostat, kein LOVF
Beitrag von: Matthias Gehre am 15 Februar 2013, 04:20:14
Ist morgen im Update dabei.
Titel: Aw: rf-error beim HeizkörperThermostat, kein LOVF
Beitrag von: Tobias am 15 Februar 2013, 08:14:30
muss ich die cul-fw auch updaten?
Wenn ja, Ist da dann schon der Patch für das Ack eines externen Tempsensors dran?
Titel: Aw: rf-error beim HeizkörperThermostat, kein LOVF
Beitrag von: Matthias Gehre am 15 Februar 2013, 16:05:46
Jupp, siehe ChangeLog Thread.