Problem nach update auf neue Version

Begonnen von Felix_66, 13 April 2014, 08:40:43

Vorheriges Thema - Nächstes Thema

Felix_66

Nach dem letzten Update, bekomme ich beim Start von FHEM und beim Ansteuern durch die Timer folgenden Fehler bei den FSA12 Modulen:


Version:
# $Id: fhem.pl 5503 2014-04-10 07:50:19Z rudolfkoenig $
# $Id: 10_EnOcean.pm 5460 2014-04-06 19:10:36Z klaus-schauer $

2014.04.13 08:17:21 3: set eg_flur desired-temp off : Unknown argument desired-temp, choose one of on:noArg off:noArg teach:noArg blink on-for-timer on-till off-for-timer intervals off-till
2014.04.13 08:17:21 3: Unknown argument desired-temp, choose one of on:noArg off:noArg teach:noArg blink on-for-timer on-till off-for-timer intervals off-till

wenn ich aber direkt mit SET ansteuere geht es

2014.04.13 08:23:39 2: EnOcean set eg_flur off
2014.04.13 08:23:47 2: EnOcean set eg_flur on


definiert ist der Schalter und Aktor wie folgt:
#---------------------------------------------------------------------------
#       eg_flur    0E
#---------------------------------------------------------------------------

#definiere Taster
define sw.eg_flur EnOcean 0000000E
attr sw.eg_flur IODev TCM120_1
attr sw.eg_flur manufID 00D
attr sw.eg_flur model FTS12
attr sw.eg_flur room EG_Flur
attr sw.eg_flur subType switch

#definiere FSA12 als Gateway
define eg_flur EnOcean 0000004E
attr eg_flur IODev TCM120_1
attr eg_flur devStateIcon on:FS20.on off:FS20.off
attr eg_flur fp_EG 500,700,5,
attr eg_flur gwCmd switching
attr eg_flur manufID 00D
attr eg_flur model FSA12
attr eg_flur room EG_Flur
attr eg_flur subType gateway
define n.eg_flur notify sw.eg_flur:released {if(Value("eg_flur") eq "on" ) {fhem "setstate eg_flur off";;} else {fhem "setstate eg_flur on";;}}
define n.eg_flur.2 notify eg_flur:on {fhem "setstate eg_flur on"}

es sind nur FSA12 Aktoren betroffen.

die letzte lauffähige Version die ich getestet habe war die Version in welche Du die Funktionalität des FSA12 implementiert hast. Der Fehler kam mit dem Update vom 31.3. auf die V5460 und auch im aktuellen update noch vorhanden.

Gruß Felix

klaus.schauer

Zitat von: Felix_66 am 13 April 2014, 08:40:43
Nach dem letzten Update, bekomme ich beim Start von FHEM und beim Ansteuern durch die Timer folgenden Fehler bei den FSA12 Modulen:

2014.04.13 08:17:21 3: set eg_flur desired-temp off : Unknown argument desired-temp, choose one of on:noArg off:noArg teach:noArg blink on-for-timer on-till off-for-timer intervals off-till
2014.04.13 08:17:21 3: Unknown argument desired-temp, choose one of on:noArg off:noArg teach:noArg blink on-for-timer on-till off-for-timer intervals off-till

wenn ich aber direkt mit SET ansteuere geht es

2014.04.13 08:23:39 2: EnOcean set eg_flur off
2014.04.13 08:23:47 2: EnOcean set eg_flur on
Da muss bei der Eingabe irgendwo etwas schieflaufen:
set eg_flur desired-temp off
muss einen Fehler liefern. Wo kommt denn desired-temp her? Für diesen Gerätetyp wird das nicht unterstützt! Bei mir gibt das natürlich auch einen Fehler.

Felix_66

#2
das Problem ist dass dies nirgends in der cfg drinn steht,
irgendetwas wird hier falsch interpretiert... und führt dazu dass dieses desired-temp gesetzt werden soll


ich hänge mal die fhem.cfg an

Gruß Felix

Felix_66

#3
Die Timer werden irgendwie im Zusammenhang mit den EnOcean Protokoll des FSA12 (Eltako) nicht richtig interpretiert

define eg_kueche_decke_timer_3 WeekdayTimer eg_kueche_decke 5|{sunset_abs(-1800-1800*rand(1))}|on 5|22:10|off (isVerreist())

liefert beim restart bzw wenn der Timer aktiv wird folgendes im Log:

2014.04.13 14:06:22 4: [eg_kueche_decke_timer_3] 11.04.2014 22:10:00 ; aktParam: 0.0 ; newParam: off
2014.04.13 14:06:22 4: [eg_kueche_decke_timer_3] is not disabled
2014.04.13 14:06:22 4: [eg_kueche_decke_timer_3] command: { fhem("set eg_kueche_decke desired-temp off") if(isVerreist())} executed
2014.04.13 14:06:22 3: set eg_kueche_decke desired-temp off : Unknown argument desired-temp, choose one of on:noArg off:noArg teach:noArg blink on-for-timer on-till off-for-timer intervals off-till
2014.04.13 14:06:22 3: Unknown argument desired-temp, choose one of on:noArg off:noArg teach:noArg blink on-for-timer on-till off-for-timer intervals off-till
2014.04.13 14:06:22 4: [eg_kueche_decke_timer_3] Next switch 18.04.2014 20:03:07
2014.04.13 14:06:22 4: eventTypes: WeekdayTimer eg_kueche_decke_timer_3 nextUpdate: 18.04.2014 20:03:07 -> nextUpdate: .*.* .*:.*:.*
2014.04.13 14:06:22 4: eventTypes: WeekdayTimer eg_kueche_decke_timer_3 nextValue: on -> nextValue: on
2014.04.13 14:06:22 4: eventTypes: WeekdayTimer eg_kueche_decke_timer_3 off -> off
2014.04.13 14:06:22 4: eventTypes: WeekdayTimer eg_kueche_decke_timer_3 state: off -> state: off

in der Definition des Timers ist "desired-temp" nicht vorhanden.
Auch wenn ich die Startzeit fix eintrage also nicht mit sunset() bleibt der Fehler.

Gruß Felix


hckoe

Hallo,

das gleiche Problem mit den FSA12 hatte ich auch nach dem Update auf die aktuelle Version. Aber seltsamerweise nur bei WeekdayTimer-Einträgen, die ein einzelnes Device betrafen, nicht bei Verwendung einer structure.
Da ich keine Bedingung benutze, habe ich als Workaround das Kommando "set $NAME $EVENT" eingetragen, dann hat es bei den einzelnen Devices auch funktioniert.

Gruß
Helmut
# CT mit Debian Buster / FHEM aktuell / EnOcean TCM310 / Eltako FSA12, FUD12NPN, FSB12, FRW, FSRP-230V
# Permundo PCS234, Nodon NO-SIN-2-2-00, GTAGS

hckoe

Hallo,

hier eine kurze Testkonfig:


define fsa12 EnOcean FFFFFFFF
attr fsa12 IODev TCM310_0
attr fsa12 manufID 00D
attr fsa12 model FSB12
attr fsa12 shutTime 35
attr fsa12 shutTimeCloses 37
attr fsa12 stateFormat position
attr fsa12 subType manufProfile

define ntest notify ntest { fhem("define wtest WeekdayTimer fsa12 08:00|opens 20:00|closes")


Ein "trigger ntest" liefert:


2014.04.14 18:42:42 1: KOEDBG: NAME=ntest EVENT=
2014.04.14 18:42:42 1: KOEDBG: NAME=wtest EVENT=nextUpdate: Heute, 18:43:12
2014.04.14 18:42:42 1: KOEDBG: NAME=wtest EVENT=nextValue: ???
2014.04.14 18:42:42 1: KOEDBG: NAME=wtest EVENT=waiting...
2014.04.14 18:42:42 1: KOEDBG: NAME=global EVENT=DEFINED wtest
2014.04.14 18:42:43 3: set fsa12 desired-temp opens : Unknown argument desired-temp, choose one of closes:noArg down opens:noArg position:slider,0,5,100 stop:noArg teach:noArg up
2014.04.14 18:42:43 3: Unknown argument desired-temp, choose one of closes:noArg down opens:noArg position:slider,0,5,100 stop:noArg teach:noArg up
2014.04.14 18:42:43 1: KOEDBG: NAME=wtest EVENT=nextUpdate: 14.04.2014 20:00:00
2014.04.14 18:42:43 1: KOEDBG: NAME=wtest EVENT=nextValue: closes
2014.04.14 18:42:43 1: KOEDBG: NAME=wtest EVENT=opens


Gruß
Helmut
# CT mit Debian Buster / FHEM aktuell / EnOcean TCM310 / Eltako FSA12, FUD12NPN, FSB12, FRW, FSRP-230V
# Permundo PCS234, Nodon NO-SIN-2-2-00, GTAGS

klaus.schauer

Ich finde auf Basis der Fehlerbeschreibungen keinen Ansatzpunkt zur Lösung. Klar ist nur, dass der Fehler auftritt, falls ein set Befehl nicht unmittelbar, sondern über notify gesendet wird.

- Gibt es in beiden Installationen devices, die set <name> desired-temp <temp> verwenden?
- Bitte den kompletten Ablauf vom Empfang des Sensor-Telegramms, notify-Aktion und set-Befehle des Aktors mit verbose 5 und mit vorheriger und aktueller Version aufzeichnen.

letzte Versionen von 10_EnOcean siehe Anlage


hckoe

Hallo,

es funktioniert mit keiner der älteren Versionen, weil der Fehler vermutlich im 98_Heating_Control.pm in der Funktion isHeizung() liegt:

########################################################################
sub isHeizung($) {
  my ($hash)  = @_;

  my %setmodifiers =
     ("FHT"     =>  "desired-temp",
      "EnOcean" =>  "desired-temp",
      "PID20"   =>  "desired",
      "MAX"    =>  {  "mode" => "type", "setModifier" => "desiredTemperature",
                      "HeatingThermostatPlus" => 1,
                      "HeatingThermostat"     => 1,
                      "WallMountedThermostat" => 1 },
      "CUL_HM" =>  {  "mode" => "model","setModifier" => "desired-temp",
                      "HM-CC-TC"              => 1,
                      "HM-TC-IT-WM-W-EU"      => 1,
                      "HM-CC-RT-DN"           => 1 } );

  my $dHash = $defs{$hash->{DEVICE}};                                           ###
  my $dType = $dHash->{TYPE};
  my $setModifier = $setmodifiers{$dType};
     $setModifier = ""  if (!defined($setModifier));
  if (ref($setModifier)) {

      my $mode = $setmodifiers{$dType}{mode};
      my $model;
      if ($mode eq "model" ) {
         $model = AttrVal($hash->{DEVICE}, "model", "nF");
      } elsif   ($mode eq "type") {
         $model = $dHash->{type};
      }
      if (defined($setmodifiers{$dType}{$model})) {
         $setModifier = $setmodifiers{$dType}{setModifier}
      } else {
         $setModifier = "";
      }
  }
  return $setModifier;
}
################################################################################


Wenn ich die Zeile "EnOcean" =>  "desired-temp" weglasse funktioniert es wieder. Scheinbar wird der Typ des Devices als Heizung erkannt.

Gruß
Helmut
# CT mit Debian Buster / FHEM aktuell / EnOcean TCM310 / Eltako FSA12, FUD12NPN, FSB12, FRW, FSRP-230V
# Permundo PCS234, Nodon NO-SIN-2-2-00, GTAGS

klaus.schauer

Das könnte tatsächlich ein erfolgversprechender Ansatz sein. Vielleicht kann uns der Kollege, der 98_Heating_Control.pm betreut, weiterhelfen.

hckoe

Hallo,

soll ich einen neuen Thread im Forum "Automatisierung" aufmachen oder kannst Du den Thread dorthin verschieben?

Gruß
Helmut
# CT mit Debian Buster / FHEM aktuell / EnOcean TCM310 / Eltako FSA12, FUD12NPN, FSB12, FRW, FSRP-230V
# Permundo PCS234, Nodon NO-SIN-2-2-00, GTAGS

klaus.schauer

Zitat von: hckoe am 15 April 2014, 12:38:18
soll ich einen neuen Thread im Forum "Automatisierung" aufmachen oder kannst Du den Thread dorthin verschieben?
Verschieben kann ich leider nicht. Ich habe dietmar63 eine E-Mail mit dem Link auf den Thread gesandt.

Felix_66

Danke Klaus, Danke Helmut,
ich kann das Verhalten was Helmut beschreibt bestätigen.
Gruß Felix

hckoe

Hallo Klaus,

hat sich dietmar63 bei Dir schon gemeldet? In anderen Threads war er die letzten Tage aktiv.

Gruß
Helmut
# CT mit Debian Buster / FHEM aktuell / EnOcean TCM310 / Eltako FSA12, FUD12NPN, FSB12, FRW, FSRP-230V
# Permundo PCS234, Nodon NO-SIN-2-2-00, GTAGS

klaus.schauer

Ich habe ihm ein paar zusätzliche Informationen zukommen lassen. Ich denke, er wird der Sache annehmen.

Felix_66

Hallo Helmut,

hast Du schon aktuelle updates eingespielt und probiert ob der Fehler noch da ist?
Zumindest der Stand vom 22.4. hatte noch das Problem.
Gruß Felix

klaus.schauer

Bitte mal folgende Änderung in 98_Heating_Control.pm testen:


  my %setmodifiers =
     ("FHT"     =>  "desired-temp",
     #"EnOcean" =>  "desired-temp",
      "EnOcean" =>  {  "mode" => "subType", "setModifier" => "desired-temp",
                       "roomSensorControl.05"  => 1,
                       "hvac.01"               => 1 },
      "PID20"   =>  "desired",
      "MAX"     =>  {  "mode" => "type", "setModifier" => "desiredTemperature",
                       "HeatingThermostatPlus" => 1,
                       "HeatingThermostat"     => 1,
                       "WallMountedThermostat" => 1 },
      "CUL_HM"  =>  {  "mode" => "model","setModifier" => "desired-temp",
                       "HM-CC-TC"              => 1,
                       "HM-TC-IT-WM-W-EU"      => 1,
                       "HM-CC-RT-DN"           => 1 } );



Felix_66

Hallo Klaus,
mit der Änderung kommt der Fehler nicht mehr und es funktioniert. Im Log steht:

2014.04.27 19:40:00 5: [eg_wz_timer_2] list of windowsenors found: ''
2014.04.27 19:40:00 4: [eg_wz_timer_2] Jetzt:27.04.2014 19:40:05 -> Next: 27.04.2014 19:40:00 -> Param: on -5
2014.04.27 19:40:00 4: [eg_wz_timer_2] 27.04.2014 19:40:00 ; aktParam: 0.0 ; newParam: on
2014.04.27 19:40:00 4: [eg_wz_timer_2] is not disabled
2014.04.27 19:40:00 4: [eg_wz_timer_2] command: { fhem("set eg_wz_decke  on") if(isVerreist())} executed

Die Meldung "list of windowsenors found: '' "  sollte doch eigentlich nicht kommen oder? Das ist doch wieder für heating_control devices.

Aber zumindest arbeitet der Timer und die Ansteuerung der FSA12 geht.

Danke!

Dietmar63

ich habe es eingecheckt.
Hat jemand von euch eine Heizungsteuerung mit EnOcean und kann testen, ob auch sie funktioniert.
Gruß Dietmar
FB7390, CUL, 2 FHT, FS20
modules: 98_WOL.pm, 98_Heating_Control.pm,   98_WeekdayTimer.pm, 98_RandomTimer.pm, 59_Twilight.pm