Fibaro rollershutter kalibrierung ändert sich über die Zeit

Begonnen von Fixel2012, 09 Juli 2017, 16:33:26

Vorheriges Thema - Nächstes Thema

Fixel2012

Hi,

ich habe seit etwa nem halben Jahr die Shutter im Einsatz. Nach eingen Monaten/Wochen fällt mir auf das die Shutter wenn der Rollladen oben ist nicht mehr dim 99 melden, sondern 98. Dem entsprechend stimmt die anzeige in Fhem auch nicht.

Nach erneutem Kalibrieren geht alles wieder, ist nur leider relativ nervig!

Hat jemand so eine Veränderung auch feststellen können?

würde mich freuen, wenn wer das gleiche Problem aufweisen kann, und vielleicht sogar einen Lösungsweg gefunden hat.

Danke und Gruß,

Fixel
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

throbin

Hi,

ist bei mir auch so, wenn sie oben sind (einige) wird statt dim 99 > dim 98 gemeldet. Wenn sie unten sind (auch nicht alle) wird statt dim 0 (bzw. off/zu) dim 1 gemeldet. Eine Rekalibrierung hilft, aber für die Status-Abfrage oder Icons habe ich eine Perl-Funktion, welche eine Toleranz mit einrechnet.

Was auch ein Mal aufgetreten ist, dass die Kalibrierungsdaten verloren gegangen sind, so dass teilweise dim 254 gemeldet wurde.

LG

Fixel2012

Zitat von: throbin am 09 Juli 2017, 18:36:56
Hi,

ist bei mir auch so, wenn sie oben sind (einige) wird statt dim 99 > dim 98 gemeldet. Wenn sie unten sind (auch nicht alle) wird statt dim 0 (bzw. off/zu) dim 1 gemeldet. Eine Rekalibrierung hilft, aber für die Status-Abfrage oder Icons habe ich eine Perl-Funktion, welche eine Toleranz mit einrechnet.

Was auch ein Mal aufgetreten ist, dass die Kalibrierungsdaten verloren gegangen sind, so dass teilweise dim 254 gemeldet wurde.

LG

Schön, dass ich da nicht alleine bin!
Auf eine Rekalibrierung habe ich allerdings wenig Lust. Vielleicht sollte ich bei jeder Graphischen anzeige als zu Status nicht nur 99 sondern auch 98 mit ein beziehen.

Hattest du es denn schon mal so weit, dass die anzeige sich bis auf 97 verschoben hat?

Gruß,

Fixel
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

HGButte

Ich habe Raffstore bei mir im Einsatz. Bei mir ist die Logik genau umgekehrt.
0 oben, 99 unten.
Aber das ist bei mir stabil. Keine Änderung über die Zeit.

Ich habe aber sporadisch Probleme mit der Lamellenstellung (normalerweise von 0-99 einstellbar).
Irgendwann ist aber schon bei Wert 40, 62 oder 95 (nur Beispiele) die gleiche Stellung erreicht wie bei 99.
Es wird dann auch aber nur 40, 62, oder 95 als Istwert übermittelt.

Mir ist jetzt aufgefallen, dass das Problem nur bei den Raffstoren auftritt, die lange Zeit nicht hoch gefahren werden, sondern nur die Lamelle auf Mittelstellung geht.

Fahre ich den Raffstore ein wenig hoch, funktioniert die Lamellenstellung scheinbar wieder von 0-99.
Das habe ich heute bemerkt, ob es immer so ist kann ich nicht sagen.

throbin

Hi,
ZitatHattest du es denn schon mal so weit, dass die anzeige sich bis auf 97 verschoben hat?

Nein, aber ich habe eine Toleranz, die eine Abweichung bis 5 akzeptiert.

Fixel2012

Zitat von: throbin am 12 Juli 2017, 21:46:34
Hi,
Nein, aber ich habe eine Toleranz, die eine Abweichung bis 5 akzeptiert.

Wärst du so nett und zeigst kurz wie du das realisiert hast?  :D
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

throbin

Hi,

sorry kam erst jetzt dazu...

Die Funktion berechnet die Rolloposition und liefert einen Integer als Rückgabewert zurück, im Falle eines unbekannten Wertes kommt eine 0 zurück, eventuell wäre es hier besser -1 oder sowas zu verwenden, aber für meinen Usecase reicht es.

Wenn der aktuelle Status "stop" ist, lese ich den Wert aus dem Reading "reportedState", sonst kann es vorkommen, dass temporär eine 0 zurückkommt, obwohl das nicht stimmt. Eventuell kann man auch direkt immer den "reportedState" verwenden.

Ich verwende die Funktion bspw. für die Darstellung von Icons und zum Herausfinden ob ein Rollo geschlossen oder geöffnet ist.


sub GetRolloPositionAsValue($)
{
  my ($deviceName) = @_;
  my $t1 = ReadingsVal($deviceName,"state","0");
  if(index($t1,"dim") >=0 )
  {
    my @valueTmp = split(" ", $t1);
    return $valueTmp[1];
  }
  else
  {
    if($t1 eq "zu" or $t1 eq "off")
    {
      return 0;
    }
    elsif ($t1 eq "stop")
    {
      my @valueTmp2 = split(" ", ReadingsVal($deviceName,"reportedState",0));
      return $valueTmp2[1];
    }
    else
    {
      return 0;
    }
  }
}


Die Toleranz kann man dann etwa so implementieren:

sub IsRolloClosed($)
{
  my ($device) = @_;
  my $currentState = Value($device);
  my $pos = GetRolloPositionAsValue($device);
  if(($currentState eq "off") || ($currentState eq "aus") || ($currentState eq "dim 0") || ($pos <= 5))
  {
    return 1;
  }
  else
  {
    return 0;
  }
}


Hier wird der aktuelle Status geprüft und wenn die Position unterhalb von 5 ist, gilt es als "geschlossen".
Viel Spass beim Coden!

Fixel2012

Zitat von: throbin am 15 Juli 2017, 16:13:36
Hi,

sorry kam erst jetzt dazu...

Die Funktion berechnet die Rolloposition und liefert einen Integer als Rückgabewert zurück, im Falle eines unbekannten Wertes kommt eine 0 zurück, eventuell wäre es hier besser -1 oder sowas zu verwenden, aber für meinen Usecase reicht es.

Wenn der aktuelle Status "stop" ist, lese ich den Wert aus dem Reading "reportedState", sonst kann es vorkommen, dass temporär eine 0 zurückkommt, obwohl das nicht stimmt. Eventuell kann man auch direkt immer den "reportedState" verwenden.

Ich verwende die Funktion bspw. für die Darstellung von Icons und zum Herausfinden ob ein Rollo geschlossen oder geöffnet ist.


sub GetRolloPositionAsValue($)
{
  my ($deviceName) = @_;
  my $t1 = ReadingsVal($deviceName,"state","0");
  if(index($t1,"dim") >=0 )
  {
    my @valueTmp = split(" ", $t1);
    return $valueTmp[1];
  }
  else
  {
    if($t1 eq "zu" or $t1 eq "off")
    {
      return 0;
    }
    elsif ($t1 eq "stop")
    {
      my @valueTmp2 = split(" ", ReadingsVal($deviceName,"reportedState",0));
      return $valueTmp2[1];
    }
    else
    {
      return 0;
    }
  }
}


Die Toleranz kann man dann etwa so implementieren:

sub IsRolloClosed($)
{
  my ($device) = @_;
  my $currentState = Value($device);
  my $pos = GetRolloPositionAsValue($device);
  if(($currentState eq "off") || ($currentState eq "aus") || ($currentState eq "dim 0") || ($pos <= 5))
  {
    return 1;
  }
  else
  {
    return 0;
  }
}


Hier wird der aktuelle Status geprüft und wenn die Position unterhalb von 5 ist, gilt es als "geschlossen".
Viel Spass beim Coden!

Danke schön, mal sehen was ich mit den Codenschnipseln veranstalte ;D 8)

Gruß Fixel
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify