MAXCube verliert die Konfiguration nach 4-6 Wochen

Begonnen von tiscjo, 17 März 2015, 11:40:16

Vorheriges Thema - Nächstes Thema

tiscjo

Ich habe 2 Systeme von eQ-3 mit jeweils einem Cube, mehreren Thermostaten und Fensterkontakten. Das eine ist in unserem Wohnhaus eingesetzt zusammen mit FHEM, das andere in unserer Ferienwohnung, aber ohne FHEM. Das Ferienwohnung-System funktioniert seit Jahren ohne Probleme. Der MAXCube im Wohnhaus-System vergisst die Einstellungen nach 4-6 Wochen regelmässig, nur gut, dass die anderen Komponenten auch ohne den Cube weiterarbeiten. FHEM läuft auf einem PC mit Ubuntu, der MAXCube wird 30-sekündlich gepollt, nur Statusabfragen, keine Steuerung.

Wie es scheint, diese Vergesslichkeit ist ein bekanntes Problem. Hier in diesem Forum und auch im ELV-Forum habe ich mehrere Hinweise darauf gefunden, aber keine Lösung oder eine Erklärung.

Ich habe einiges versucht:
- MAXCube reklamiert, zurückgeschickt, Ersatz bekommen. Nicht geholfen.
- Mit und ohne Verbindung zu einem MAX-Konto im Internet. Kein Unterschied.
- Mit und ohne laufenden MAX-Server auf einem Windows-Rechner im Haus-Netzwerk. Kein Unterschied.

Es sieht für mich so aus, dass die Mitwirkung von FHEM brigt den Cube in Schwierigkeiten. Meine Theorie ist, dass die Software im Cube ein Memory-Leak hat, das unter 'normalen' Bedingungen nicht (oder mindestens nicht so schnell) zum Problem wird, aber wenn der Cube 2-mal in der Minute mit Statusabfragen bombadiert wird, dann ist der Speicher oder Buffer oder was auch immer nach 5 Wochen soweit überschrieben, dass die Konfiguration korrupt wird.

Ich probiere jetzt folgendes: mit Hilfe einer Zeitschaltuhr gönne ich dem Cube jeden Tag 5 Minuten Pause, das heisst der Cube wird täglich neugestartet. Sollte meine Theorie stimmen, dann dürfte das Problem nicht mehr auftreten. Hoffentlich auch kein anderes. Ich sehe in 6 Wochen, ob es hilft.

Eine Frage an Euch: hat jemand einen MAXCube, der durch FHEM gepollt wird und trotzdem nicht vergesslich ist? Wenn ja, welche (evtl. besonderen) Einstellungen habt Ihr dazu?

Mr.Heat


Thargor


Was meinst du damit, dass er die Einstellungen vergisst? Sind die Geräte in der MAX-Software dann nicht mehr da?

Ich benutze einen Cube, der allerdings nur jede Minute gepollt wird (ohne ondemand). Zusätzlich pinge ich noch jede Minute einmal den Cube.

Gruß Lars

Wzut

Zitat von: tiscjo am 17 März 2015, 11:40:16
hat jemand einen MAXCube, der durch FHEM gepollt wird und trotzdem nicht vergesslich ist?

Leider nein , meiner wird so alle 6 - 9 Monate von totaler Amnesie befallen, vllt habe ich da größeres Glück als du weil ich einen Polling Intervall von 300 habe. Allerdings gebe ich Mr. Heat Recht,  ich will/muß diesen Sommer endlich mal den Ar... hoch bekomme und die MAX Geräte auf dem CUL einrichten und dem Cube seine letzte Ruhestätte in der Wertstofftonne gönnen.   
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

willyk

Zitat von: tiscjo am 17 März 2015, 11:40:16
FHEM läuft auf einem PC mit Ubuntu, der MAXCube wird 30-sekündlich gepollt, nur Statusabfragen, keine Steuerung.

Zu meinem Verständnis: warum brauchst Du ein solch kurzes Intervall?
NUC mit Ubuntu, MAX!Cube, CUNO, 6 MAX WT, 16 MAX HT, 2 MAX Fensterkontakt, MaxScanner

tiscjo

Zitat von: Mr.Heat am 18 März 2015, 14:41:35
Geholfen hat der Umstieg auf CUL :D
Ja, das scheint die bessere Lösung zu sein, aber ich will es noch nicht aufgeben. Andererseits: über CUL findet man hier im Forum auch einige Problemmeldungen.

Zitat von: Thargor am 18 März 2015, 15:25:45
Was meinst du damit, dass er die Einstellungen vergisst? Sind die Geräte in der MAX-Software dann nicht mehr da?

Ich benutze einen Cube, der allerdings nur jede Minute gepollt wird (ohne ondemand). Zusätzlich pinge ich noch jede Minute einmal den Cube.
Ja, er vergisst die Geräte. Wenn ich danach die MAX-Software starte, dann wird der Cube zwar gefunden, aber er will wieder mit der Einstellung der Zeitzone anfangen und dann alle Geräte anlernen. Manchmal ist er aber so durcheinander, dass das Anlernen gar nicht funktioniert. Dann hilft nur ein Reset und dann die Zeitzone usw.

Bei mir ist mit 'ondemand'. Hm, damit könnte ich auch noch spielen...

Zitat von: Wzut am 18 März 2015, 15:30:10
Leider nein , meiner wird so alle 6 - 9 Monate von totaler Amnesie befallen, vllt habe ich da größeres Glück als du weil ich einen Polling Intervall von 300 habe.
Danke! Das verstärkt meinen Verdacht, dass die Anzahl der Pollings eine Rolle spielt.

Zitat von: willyk am 18 März 2015, 20:49:21
Zu meinem Verständnis: warum brauchst Du ein solch kurzes Intervall?
Du hast Recht, es ist eigentlich unnötig so häufig zu pollen. Ich habe mal diese Einstellung als Beispiel gelesen und übernommen.
Sehr wahrscheinlich könnte man den Todeszeitpunkt hinauszögern, wenn man einen höheren Intervall wählt, aber das wäre noch keine Lösung, wie auch Wzut geschrieben hat. Vielleicht gibt es auch keine Lösung, aber das bin ich noch nicht bereit zu akzeptieren  ;)

Thargor

Zitat von: tiscjo am 18 März 2015, 22:14:44
Ja, er vergisst die Geräte. Wenn ich danach die MAX-Software starte, dann wird der Cube zwar gefunden, aber er will wieder mit der Einstellung der Zeitzone anfangen und dann alle Geräte anlernen. Manchmal ist er aber so durcheinander, dass das Anlernen gar nicht funktioniert. Dann hilft nur ein Reset und dann die Zeitzone usw.

Nein, das kenne ich von meinem Cube nicht. An meinem Cube hängen 4 Fensterkontakte, 10 Thermostate und 3 Wandthermostate und seit knapp 2 Jahren ist da noch nie was verloren gegangen.

stenny73

Hallo

Also so ein Problem hatte ich auch noch nicht. Bei mir läuft der Cube seit ca. 2 Jahren.
Anfangs hatte ich zwar so meine Probleme aber das war übertriebener Spieltrieb - vermute ich.

Ich fahre das Max System auch nur mit heating_control ohne irgendwelche Einstellungen inerhalb der Thermostate an.

Stenny
FHEM auf XEN, Ubuntu-Server 14.04   - HM-Lan - Max - ZWave -WS1080 -BlueTooth

FHEM auf Ubuntu-Server 14.04   - HM-LAN

FHEM auf Raspberry Pi   - CSM für Max - HM-USB - WiFi-LED

Wzut

Zitat von: tiscjo am 18 März 2015, 22:14:44
Vielleicht gibt es auch keine Lösung, aber das bin ich noch nicht bereit zu akzeptieren  ;)

gut, da sich das bei dir so schnell wiederholt kannst du auch recht schnell hier berichten ob dein tägliches auschalten eine Verbesserung gebracht hat.
Wenn ja, findet sich vllt. auch eine elegantere Software Lösung 
Maintainer der Module: MAX, MPD, UbiquitiMP, UbiquitiOut, SIP, BEOK, readingsWatcher

justme1968

meiner hat gerade erst 10 wandthermostate und etwa 25 heizungsgentile 'vergessen'.

in fhem habe ich die devices noch, sie senden auch brav weiter über einen cul an fhem, mit dem cul kann ich sie aber (noch?) nicht steuern. der cube lief onDemand.

wenn man sucht scheint das ein recht häufiges problem zu sein und auch ohne fhem zu passieren. angeblich hilft nur alles zurücksetzen und neu anlernen. dazu habe ich bei der anzahl an geräten keine lust...
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

tiscjo

Zitat von: Thargor am 18 März 2015, 22:34:30
Nein, das kenne ich von meinem Cube nicht. An meinem Cube hängen 4 Fensterkontakte, 10 Thermostate und 3 Wandthermostate und seit knapp 2 Jahren ist da noch nie was verloren gegangen.
Zitat von: stenny73 am 19 März 2015, 06:16:55
Also so ein Problem hatte ich auch noch nicht. Bei mir läuft der Cube seit ca. 2 Jahren.
Anfangs hatte ich zwar so meine Probleme aber das war übertriebener Spieltrieb - vermute ich.

Ich fahre das Max System auch nur mit heating_control ohne irgendwelche Einstellungen inerhalb der Thermostate an.
Ihr Glücklichen, ich freue mich für Euch. Laufen die Cubes seit 2 Jahren ohne Unterbrechung? Wie oft wird Euer Cube gepollt? Könntet Ihr etwas aus Euer Config-Datei uns zeigen? Das mit Heating_Control finde ich sehr interessant.

Zitat von: justme1968 am 19 März 2015, 08:59:10
wenn man sucht scheint das ein recht häufiges problem zu sein und auch ohne fhem zu passieren. angeblich hilft nur alles zurücksetzen und neu anlernen. dazu habe ich bei der anzahl an geräten keine lust...
Auch ohne FHEM?!? Dann ist die Lage noch komplizierter, als gedacht. Aber zurücksetzen und neu anlernen habe ich bereits ca. 4-mal gemacht, mit wenig Erfolg.

Ich habe 9 Räume mit 10 HK-Thermostaten, 9 Fensterkontakten und 2 Wand-Thermostaten.
Ein Auszug aus meiner fhem.cfg:

# MaxCube
define maxcube MAXLAN 192.168.1.35 30 ondemand

# Bad
define Bad.Heizkoerper MAX HeatingThermostatPlus 08d003
attr Bad.Heizkoerper IODev maxcube
attr Bad.Heizkoerper event-on-change-reading *
attr Bad.Heizkoerper room Haus
define FileLog_Bad.Heizkoerper FileLog ./log/Bad.Heizkoerper-%Y-%m.log Bad.Heizkoerper
attr FileLog_Bad.Heizkoerper logtype text
attr FileLog_Bad.Heizkoerper room HausLog

define Bad.Fenster MAX ShutterContact 0cfe73
attr Bad.Fenster IODev maxcube
attr Bad.Fenster devStateIcon closed:fts_window_2w opened:fts_window_2w_open_lr@red
attr Bad.Fenster event-on-change-reading *
attr Bad.Fenster room Haus
define FileLog_Bad.Fenster FileLog ./log/Bad.Fenster-%Y-%m.log Bad.Fenster
attr FileLog_Bad.Fenster logtype text
attr FileLog_Bad.Fenster room HausLog
...
define EssZi.Wandthermostat MAX WallMountedThermostat 0ebbfa
attr EssZi.Wandthermostat IODev maxcube
attr EssZi.Wandthermostat event-on-change-reading *
attr EssZi.Wandthermostat room Haus
define FileLog_EssZi.Wandthermostat FileLog ./log/EssZi.Wandthermostat-%Y-%m.log EssZi.Wandthermostat
attr FileLog_EssZi.Wandthermostat logtype text
attr FileLog_EssZi.Wandthermostat room HausLog
...

Ist das so okay oder mache ich was verkehrt?

fruit

Sorry, no German

It has happened to me once in 18 months, it was necessary to reteach all devices but settings were lost.
I added the following code in 99-myUtils.pm to save all device configs and create a series of set weekProfile

#####################################################################
#### get_valve_data
#####################################################################
# from 99_myUtils.pm
# run with something like
#
# { get_valve_data( ) }
# or
# define at_get_valve_data at +00:01:00 { get_valve_data( ) }
# by default saves in /opt/fhem/FHEM as my_HT-<date>.cfg
#
# check the 'set' lines before using!
#
sub
get_valve_data( )
{
my $msg;
my $fname;
my ( $sec,$min,$hour,$day,$month,$year,$wday,$yday,$isdst ) = localtime( time );
$fname = sprintf( "%4d-%02d-%02d", $year + 1900, $month + 1, $day );
my $hashes = "########################################\n";

my $mpath   = AttrVal( "global", "modpath", "." );
my $ret  = open( HTFILE, "> $mpath/FHEM/my_HT-$fname.cfg" );
if( $ret )
{
  my @MAX_HT=devspec2array( "DEF=HeatingThermostat.*" );
  foreach( @MAX_HT )
  {
   print HTFILE $hashes . $hashes;
   $msg = sprintf( "HeatingThermostat \t %s \t %s \n", $_, AttrVal( $_, "room", "" ) );
   print HTFILE $msg . $hashes . $hashes . "\n";

   # get basic settings
   $msg = sprintf( "boostDuration \t\t %2d \n", ReadingsVal( $_, "boostDuration", "0" ) );
   $msg .= sprintf( "boostValveposition \t %3d \n", ReadingsVal( $_, "boostValveposition", "101" ) );
   $msg .= sprintf( "comfortTemperature \t %2.1f \n", ReadingsVal( $_, "comfortTemperature", "0" ) );
   $msg .= sprintf( "decalcification \t %s \n", ReadingsVal( $_, "decalcification", "" ) );
   $msg .= sprintf( "ecoTemperature \t \t %2.1f \n", ReadingsVal( $_, "ecoTemperature", "0" ) );
   $msg .= sprintf( "maxValveSetting \t %3d \n", ReadingsVal( $_, "maxValveSetting", "101" ) );
   $msg .= sprintf( "maximumTemperature \t %s \n", ReadingsVal( $_, "maximumTemperature", "on" ) );
   $msg .= sprintf( "measurementOffset \t %2.1f \n", ReadingsVal( $_, "measurementOffset", "0" ) );
   $msg .= sprintf( "minimumTemperature \t %s \n", ReadingsVal( $_, "minimumTemperature", "on" ) );
   $msg .= sprintf( "valveOffset \t \t %2d \n", ReadingsVal( $_, "valveOffset", "0" ) );
   $msg .= sprintf( "windowOpenDuration \t %2d \n", ReadingsVal( $_, "windowOpenDuration", "0" ) );
   $msg .= sprintf( "windowOpenTemperature \t %2d \n", ReadingsVal( $_, "windowOpenTemperature", "0" ) );
   print HTFILE $msg . "\n";
   
   # get daily profiles
   $msg = parse_weekprofile( $_, "0-Sat" );
   print HTFILE "weekProfile for Saturday\n";
   print HTFILE $hashes . $msg;
   $msg = parse_weekprofile( $_, "1-Sun" );
   print HTFILE "weekProfile for Sunday\n";
   print HTFILE $hashes . $msg;
   $msg = parse_weekprofile( $_, "2-Mon" );
   print HTFILE "weekProfile for Monday\n";
   print HTFILE $hashes . $msg;
   $msg = parse_weekprofile( $_, "3-Tue" );
   print HTFILE "weekProfile for Tuesday\n";
   print HTFILE $hashes . $msg;
   $msg = parse_weekprofile( $_, "4-Wed" );
   print HTFILE "weekProfile for Wednesday\n";
   print HTFILE $hashes . $msg;
   $msg = parse_weekprofile( $_, "5-Thu" );
   print HTFILE "weekProfile for Thursday\n";
   print HTFILE $hashes . $msg;
   $msg = parse_weekprofile( $_, "6-Fri" );
   print HTFILE "weekProfile for Friday\n";
   print HTFILE $hashes . $msg;
   
   $msg = "\n\n";
   print HTFILE $msg;
  }
  close( HTFILE );
}
else
{
  Log 1,"get_valve_data: Cannot open HT-$fname.dat for writing!";
}
}
#####################################################################
#### END - get_valve_data
#####################################################################

#####################################################################
#### parse_weekprofile
#####################################################################
sub
parse_weekprofile( $$ )
{
my ( $ht, $dow ) = @_;
my $msg;
my $wp_msg;
my @temps;
my @times;
@temps = split( '  /', ReadingsVal( $ht, "weekprofile-" . $dow . "-temp", "" ) );
@times = split( '  /', ReadingsVal( $ht, "weekprofile-" . $dow . "-time", "" ) );
for my $i ( 0 .. @temps - 1 )
{
  my $ti;
  my $te;
  $te = $temps[$i];
  $te =~ s/\s*//;
  $te = substr( $te, 0, 4 );
  ( undef, $ti ) = split( '-', $times[$i] );
  $msg .= sprintf( "%2.1f \t %s \n", $te, $ti );
  $msg =~ s/\s*//;
  $msg =~ s/\x2E0//; # .0
}
$wp_msg = $msg;
$wp_msg =~ s/\t/,/g;
$wp_msg =~ s/\n/,/g;
$wp_msg =~ s/\s//g;
$wp_msg =~ s/,00:00,//;
$msg .= "\n";
$wp_msg = "set " . $ht . " weekProfile " . substr( $dow, -3, 3 ) . " " . $wp_msg;
$msg .= $wp_msg . "\n\n";
return $msg;
}
#####################################################################
#### END - parse_weekprofile
#####################################################################
Feel free to follow up in German if you prefer

tiscjo

Zitat von: fruit am 19 März 2015, 21:13:28
It has happened to me once in 18 months, it was necessary to reteach all devices but settings were lost.
I added the following code in 99-myUtils.pm to save all device configs and create a series of set weekProfile
Thank you for sharing your code. So you can make backups. Can you restore the data into the Cube too? That would be great.

willyk

Zitat von: justme1968 am 19 März 2015, 08:59:10
angeblich hilft nur alles zurücksetzen und neu anlernen. dazu habe ich bei der anzahl an geräten keine lust...
Verstehe ich gut. Hatte -- vor etwa 5 Monaten - das ziemlich genau gleiche Problem.
Nach tage-langem Experimentieren - zurücksetzen. Alles andere hilft nicht.

Solltest Du eine andere Lösung finden, lass es mich wissen.

Gruss
willyk
NUC mit Ubuntu, MAX!Cube, CUNO, 6 MAX WT, 16 MAX HT, 2 MAX Fensterkontakt, MaxScanner

fruit

Zitat von: tiscjo am 20 März 2015, 09:54:18
Thank you for sharing your code. So you can make backups. Can you restore the data into the Cube too? That would be great.
I'm not sure what the Cube stores but must be something that it can forget when it fails.
My undestanding is that settings are stored within the devices but I have not looked closely and may be completely wrong.

The code saves all configured setting for radiator valves, I have no wall thremostats so there may be be some additions needed.

Very annoying when it happens but I am now prepared for next time. I guess it could be completely automated but there may be issues with load/1% rule.


Feel free to follow up in German if you prefer