FHEM Forum

FHEM - Hausautomations-Systeme => MAX => Thema gestartet von: cocktailyogi am 27 November 2015, 14:20:47

Titel: Sonderbares Problem mit Max und Heating-Control
Beitrag von: cocktailyogi am 27 November 2015, 14:20:47
Hallo,

seit einigen Wochen erhalte ich immer folgende Fehlermeldung im Log und HEATING-CONTROL.pm kann keine Temperaturen mehr setzen:
2015.11.27 14:13:47 2: MAX MaxScan: MaxScan_SetTemp.242 @ not defined


Hier die Konfiguration für das entprechende Thermostat/Gerät (Info: Diese Konfiguration hat 2 Jahre einwandfrei funktioniert?!)

define HC_FOR_Heizung_Bad.here Heating_Control Heizung_Bad 00:05|18 04:30|20 08:00|20 17:00|20 22:00|18 {MaxScan_SetTemp("@","%");;}

Leider wird der Befehl jetzt nicht mehr ausgeführt und die Bude bleibt Morgens kalt....  ::)

Dies hier habe ich auch schon probiert, geht aber auch nicht....

define HC_FOR_Heizung_Bad.here Heating_Control Heizung_Bad 00:05|18 04:30|20 08:00|20 17:00|20 22:00|18 {MaxScan_SetTemp("$NAME","$EVENT")}


Wer kann helfen?

Gruß,
Yogi
Titel: Antw:Sonderbares Problem mit Max und Heating-Control
Beitrag von: CoolTux am 27 November 2015, 14:28:22

{MaxScan_SetTemp("$NAME","$EVENT")}


Wo befindet sich diese Funktion. 99_myUtils? Schau mal was da als Übergabe erwartet wird und pass das entsprechend an.
Ansonsten ist die Umstellung so korrekt. Muß halt die Funktion noch angepasst werden.


Grüße
Titel: Antw:Sonderbares Problem mit Max und Heating-Control
Beitrag von: cocktailyogi am 29 November 2015, 10:54:04
Zitat von: CoolTux am 27 November 2015, 14:28:22

{MaxScan_SetTemp("$NAME","$EVENT")}


Wo befindet sich diese Funktion. 99_myUtils? Schau mal was da als Übergabe erwartet wird und pass das entsprechend an.
Ansonsten ist die Umstellung so korrekt. Muß halt die Funktion noch angepasst werden.


Grüße

Hmm, die Funktion tut schon seit 1 Jahr ohne Probleme. Ich habe sie auch schon ohne die VAriablen $NAME und $EVENT getestet. Dann geht es wunderbar. Für mich sieht es so aus, als ob die Übergabevariablen nicht richtig übergeben werden.

{MaxScan_SetTemp("Heizung_Bad","20")}

Diese Zeile funktioniert.

Ich kann aus dem Sourcecode einfach nicht feststellen. Wo in Perl-Code des Heating-Control-Moduls diese Variablen $NAME und $EVENT definiert werden. Ferner kapiere ich nicht, wieso es früher immer mit den Platzhaltern @ oder % funktioniert hat. Wurde am Heating-Control-Modul etwas verändert?

Gruß,
Yogi
Titel: Antw:Sonderbares Problem mit Max und Heating-Control
Beitrag von: CoolTux am 29 November 2015, 12:21:19
Mit dem Featurelevel 5.7 gab es so einige Änderungen. Eventuell ist Deine Funktion davon betroffen. Aber ohne sie zu sehen kann ich da nichts weiter zu sagen.


Grüße
Titel: Antw:Sonderbares Problem mit Max und Heating-Control
Beitrag von: cocktailyogi am 29 November 2015, 17:10:04
Okay, danke für die Info.

Hier kommt die Funktion. Diese stammt aus dem MAX-Temperaturscanner und liegt in der Datei "99_UtilsMaxScan.pm":
# --------------------------------------------------
# Sollwert-Setter fuer Heating_Control (deprecated)
#   HC unterstuetzt kein WindowOpen
#   HC unterstuetzt kein Umschalten des Modes
#  Aufruf am HC-Define via
#      define HC.BAD Heating_Control HT.BAD 00:05|eco 1234567|23:00|eco 567|18:00|eco  {HT_SetByHC("@","%");;}
# --------------------------------------------------
sub MaxScan_SetTemp($$) {

  my($strTherm,$newTemp) = @_;

  my $strMode=ReadingsVal($strTherm,"mode","manual"); # betriebsart
  my $strNewMode="";
  my $hash=$defs{$strTherm};
 
  if ( ! defined($hash) )  # thermostat muss definiert sein
  {
    MaxScan_Log undef,2,"$strTherm not defined";
    return;
  }

  if ($defs{$strTherm}{type} !~ m/^HeatingThermostat.*/)  # muss ein max thermostat sein
  {
     MaxScan_Log undef,2,"$strTherm is no Thermostat";
     return;
  }

  my $ecoTemp        = ReadingsVal($strTherm,"ecoTemperature","16"); 
  my $comfortTemp    = ReadingsVal($strTherm,"comfortTemperature","18"); 
  my $windowOpenTemp = ReadingsVal($strTherm,"windowOpenTemperature","18"); 
  my $desiTemp       = ReadingsVal($strTherm,"desiredTemperature","19"); 
  my $strShutterName = ReadingsVal($strTherm,"watchShutter","?");    # 1.04a
  my $numWinIsOpen   = ReadingsVal($strShutterName,"onoff",0);       # zustand des shutter windowOpen besorgen
  my $numForceAuto   = ReadingsVal($strTherm,"onlyAutoMode","0") eq "1";
 
  MaxScan_Log $hash,($MaxScanDEBUGCommon)?2:4,
    "ecoTemp:$ecoTemp comfortTemp:$comfortTemp WinIsOpen:$numWinIsOpen desiTemp:$desiTemp";

  # aliase in numerische werte wandeln
  $newTemp = $ecoTemp if ($newTemp eq "eco");
  $newTemp = $comfortTemp if ($newTemp eq "comfort");

  # wenn fenster offen ist, beenden
  if ( $numWinIsOpen == 1) {
    $hash->{helper}{TempBeforeWindOpen}=$newTemp; # temp wird ueber scanner nachtraeglich gesetzt
    MaxScan_Log $hash,($MaxScanDEBUGShutter)?2:3,
    "no action due open window, but store to TempBeforeWindOpen:$newTemp ";
    return;
  }
 
  # wenn scantemp aktiviert ist, dann mode umschaltung
  my $numScanTemp=AttrVal($strTherm,"scanTemp","?");    # wenn scantemp aktiv, mode umschalten
  if ( $numScanTemp  eq "1")
  {
    $strNewMode = (!$numForceAuto && ($strMode eq "manual")) ? "auto":"";
  }
 
  MaxScan_Log $hash,($MaxScanDEBUGCommon)?2:4,"NewTemp:$newTemp Mode:$strMode newMode:$strNewMode";

  # nur ausfuehren, wenn sich temperatur geaendert hat
  my $desi  = ReadingsVal($strTherm,"desiredTemperature","");   # neue temperatur nur setzen wenn noetig
  if ($desi eq $newTemp) {                                     
    MaxScan_Log $hash,($MaxScanDEBUGCommon)?2:3,"nothing to do: no desiredTemperature change";
    return;
  }

  # commando vorbereiten und ausfuheren
  my $cmd = "set $strTherm desiredTemperature";
  $cmd .= " $strNewMode" if ($strNewMode ne "");
  $cmd .= " $newTemp"; 

  fhem($cmd);
  MaxScan_Log $hash,($MaxScanDEBUGCommon)?2:3,"$cmd ";
}
Titel: Antw:Sonderbares Problem mit Max und Heating-Control
Beitrag von: CoolTux am 29 November 2015, 18:45:54
Sieht erstmal ok aus. Frage mal bitte Dietmar63. Er ist der Modulentwickler von HeatingControl. Eventuell wurde was geändert.
Ich gehe mal davon aus das Die in Update bereits getan hast. Wenn nicht bitte unbedingt nachholen.
Titel: Antw:Sonderbares Problem mit Max und Heating-Control
Beitrag von: cocktailyogi am 29 November 2015, 19:23:32
Anfrage läuft.

Zur Info: Sobald ich per global attr "Featurelevel 5.6" einschalte, geht wieder alles....

Titel: Antw:Sonderbares Problem mit Max und Heating-Control
Beitrag von: CoolTux am 29 November 2015, 20:05:41
In Deiner Sub kann ich erstmal nichts sehen was da störend sein könnte.
Hast Du denn ein aktuelles FHEM?
Titel: Antw:Sonderbares Problem mit Max und Heating-Control
Beitrag von: Dietmar63 am 29 November 2015, 20:37:24
Ich habe

define HC_FOR_Heizung_Bad.here Heating_Control Heizung_Bad 00:05|18 04:30|20 08:00|20 20:31|20 22:00|18 {MaxScan_SetTemp("$NAME","$EVENT")}

mal schnell bei mit mit

sub MaxScan_SetTemp($$) {
  my($strTherm,$newTemp) = @_;
  Log 3, "strTherm------------>$strTherm";
  Log 3, "newTemp------------>$newTemp";
}

laufen lassen und folgendes bekommen:

2015.11.29 20:31:00 3: newTemp------------>20
2015.11.29 20:31:00 3: strTherm------------>Heizung_Bad
2015.11.29 20:30:54 3: [HC_FOR_Heizung_Bad.here] device <Heizung_Bad> in fhem not defined, but accepted
2015.11.29 20:28:12 3: [HC_FOR_Heizung_Bad.here] device <Heizung_Bad> in fhem not defined, but accepted

Also übergabe funktioniert. Es mus irgendwie sonstworan liegen.
Übernimm bei dir mal die Logs und füge weitere ein.
Titel: Antw:Sonderbares Problem mit Max und Heating-Control
Beitrag von: cocktailyogi am 29 November 2015, 21:02:09
Ähem... Danke für die Hilfe.... Witzigerweise geht es nun....Sonderbar. Seit einer Woche kämpfe ich damit und nun, wenn ich um Hilfe frage geht es...

Dennoch danke für Eure Unterstützung. Sorry, für dei Umstände...

Gruß,
Yogi