FHEM: Auto mode für desired-temp in Abhaengigkeit ...

Begonnen von Guest, 21 November 2011, 13:50:17

Vorheriges Thema - Nächstes Thema

Guest

Originally posted by: <email address deleted>

Hallo

ich habe folgenden Code aus der FAQ bei FHEM bei mir aktiviert.

---
  define fht_ExtendedAutoMode notify .*mode.*auto {\
    $r = $defs{@}{READINGS};;\
    return if (!defined($r));;\
    my $olddesired = $r->{"desired-temp"}{VAL};;\
    return if (!defined($olddesired));;\
    my @@day = ("sun", "mon", "tue", "wed", "thu", "fri", "sat");;\
    my $now = sprintf("%%02d:%%02d", $hour, $min);;\
    my $wd = $day[$wday];;\
    my $desired;;\
    if (defined($r->{"warnings"}{VAL}) && $r->{"warnings"}{VAL} eq
"Window open") {\
       $desired = $r->{"windowopen-temp"}{VAL};;\
     } elsif (defined($r->{"$wd-from1"}{VAL}) && $r->{"$wd-from1"}
{VAL} le $now && defined($r->{"$wd-to1"}{VAL}) && $r->{"$wd-to1"}{VAL}
ge $now) {\
         $desired = $r->{"day-temp"}{VAL};;\
     } elsif (defined($r->{"$wd-from2"}{VAL}) && $r->{"$wd-from2"}
{VAL} le $now && defined($r->{"$wd-to2"}{VAL}) && $r->{"$wd-to2"}{VAL}
ge $now) {\
         $desired = $r->{"day-temp"}{VAL};;\
     } else {\
         $desired = $r->{"night-temp"}{VAL};;\
     }\
        fhem ("set @ desired-temp $desired") if (defined($desired) &&
$desired ne $olddesired);;\
  }
    attr fht_ExtendedAutoMode comment Setzt fuer den Auto mode die
desired-temp in Abhaengigkeit von Temperaturprofil und Fensterkontakt
    attr fht_ExtendedAutoMode room hidden
---

Seitdem fallen mir folgende Log-Einträge auf.
Hat jemand ein Lösung oder einen Vorschlag?


2011.11.21 15:20:56 3: Global symbol "$r" requires explicit package
name at (eval 675) line 1.
Global symbol "$r" requires explicit package name at (eval 675) line
1.
Global symbol "$r" requires explicit package name at (eval 675) line
1.
........
2011.11.21 15:20:57 3: NTFY return:  Global symbol "$r" requires
explicit package name at (eval 675) line 1.
Global symbol "$r" requires explicit package name at (eval 675) line
1.
Global symbol "$r" requires explicit package name at (eval 675) line
1.
......
2011.11.21 15:20:57 3: Global symbol "$r" requires explicit package
name at (eval 676) line 1.
Global symbol "$r" requires explicit package name at (eval 676) line
1.
Global symbol "$r" requires explicit package name at (eval 676) line
1.
.....
2011.11.21 15:20:57 3: NTFY return:  Global symbol "$r" requires
explicit package name at (eval 676) line 1.
Global symbol "$r" requires explicit package name at (eval 676) line
1.
Global symbol "$r" requires explicit package name at (eval 676) line
1.
....

Gruss Peter

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

rudolfkoenig

                                                   

> Global symbol "$r" requires explicit package name at (eval 676) line

Bitte
  $r = $defs{@}{READINGS};;
durch
  my $r = $defs{@}{READINGS};;
ersetzen.


Oder gleich

  $r = $defs{@}{READINGS};;\
  return if (!defined($r));;\
  my $olddesired = $r->{"desired-temp"}{VAL};;\

durch

  my $olddesired = ReadingsVal("@", "desired-temp", 20);;\

ersetzen.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo Rudolf,
danke für die Hilfe.

Kurze Nachfrage.
my $olddesired = ReadingsVal("@", "desired-temp", 20);;\
was bedeutet hier die 20, .... wird hier die Temperatur 20°C
vorgegeben?
Danke.

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

> my $olddesired = ReadingsVal("@", "desired-temp", 20);;\
> was bedeutet hier die 20, .... wird hier die Temperatur 20°C
> vorgegeben?

Wenn "desired-temp" (noch) nicht definiert ist, wird 20 zurückgeliefert.

Gruss
Torsten

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo Torsten,

danke für die Bestätigung.

Gruss Peter

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo,
ich hab dieses Problem auch. Ich habe schon die Änderungen vorgenommen,
trotzdem geht es aber nicht.

So sieht also mein ExtendedAutoMode aus:

.*mode.*auto {
    my $olddesired = ReadingsVal("@", "desired-temp", 20);;\
    return if (!defined($olddesired));
    my @@day = ("sun", "mon", "tue", "wed", "thu", "fri", "sat");
    my $now = sprintf("%%02d:%%02d", $hour, $min);
    my $wd = $day[$wday];
    my $desired;
    if (defined($r->{"warnings"}{VAL}) && $r->{"warnings"}{VAL} eq "Window
open") {
      $desired = $r->{"windowopen-temp"}{VAL};
    } elsif (defined($r->{"$wd-from1"}{VAL}) && $r->{"$wd-from1"}{VAL} le
$now && defined($r->{"$wd-to1"}{VAL}) && $r->{"$wd-to1"}{VAL} ge $now) {
      $desired = $r->{"day-temp"}{VAL};
    } elsif (defined($r->{"$wd-from2"}{VAL}) && $r->{"$wd-from2"}{VAL} le
$now && defined($r->{"$wd-to2"}{VAL}) && $r->{"$wd-to2"}{VAL} ge $now) {
      $desired = $r->{"day-temp"}{VAL};
    } else {
      $desired = $r->{"night-temp"}{VAL};
    }
    fhem ("set @ desired-temp $desired") if (defined($desired) && $desired
ne $olddesired);
  }


Und das ist dann die Ausgabe im Log

ExtendedAutoMode return value: Global symbol "$r" requires explicit package
name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.

Könnt ihr mir helfen?

Am Montag, 21. November 2011 13:50:17 UTC+1 schrieb Peter Maier:
>
> Hallo
>
> ich habe folgenden Code aus der FAQ bei FHEM bei mir aktiviert.
>
> ---
>   define fht_ExtendedAutoMode notify .*mode.*auto {\
>     $r = $defs{@}{READINGS};;\
>     return if (!defined($r));;\
>     my $olddesired = $r->{"desired-temp"}{VAL};;\
>     return if (!defined($olddesired));;\
>     my @@day = ("sun", "mon", "tue", "wed", "thu", "fri", "sat");;\
>     my $now = sprintf("%%02d:%%02d", $hour, $min);;\
>     my $wd = $day[$wday];;\
>     my $desired;;\
>     if (defined($r->{"warnings"}{VAL}) && $r->{"warnings"}{VAL} eq
> "Window open") {\
>        $desired = $r->{"windowopen-temp"}{VAL};;\
>      } elsif (defined($r->{"$wd-from1"}{VAL}) && $r->{"$wd-from1"}
> {VAL} le $now && defined($r->{"$wd-to1"}{VAL}) && $r->{"$wd-to1"}{VAL}
> ge $now) {\
>          $desired = $r->{"day-temp"}{VAL};;\
>      } elsif (defined($r->{"$wd-from2"}{VAL}) && $r->{"$wd-from2"}
> {VAL} le $now && defined($r->{"$wd-to2"}{VAL}) && $r->{"$wd-to2"}{VAL}
> ge $now) {\
>          $desired = $r->{"day-temp"}{VAL};;\
>      } else {\
>          $desired = $r->{"night-temp"}{VAL};;\
>      }\
>         fhem ("set @ desired-temp $desired") if (defined($desired) &&
> $desired ne $olddesired);;\
>   }
>     attr fht_ExtendedAutoMode comment Setzt fuer den Auto mode die
> desired-temp in Abhaengigkeit von Temperaturprofil und Fensterkontakt
>     attr fht_ExtendedAutoMode room hidden
> ---
>
> Seitdem fallen mir folgende Log-Einträge auf.
> Hat jemand ein Lösung oder einen Vorschlag?
>
>
> 2011.11.21 15:20:56 3: Global symbol "$r" requires explicit package
> name at (eval 675) line 1.
> Global symbol "$r" requires explicit package name at (eval 675) line
> 1.
> Global symbol "$r" requires explicit package name at (eval 675) line
> 1.
> ........
> 2011.11.21 15:20:57 3: NTFY return:  Global symbol "$r" requires
> explicit package name at (eval 675) line 1.
> Global symbol "$r" requires explicit package name at (eval 675) line
> 1.
> Global symbol "$r" requires explicit package name at (eval 675) line
> 1.
> ......
> 2011.11.21 15:20:57 3: Global symbol "$r" requires explicit package
> name at (eval 676) line 1.
> Global symbol "$r" requires explicit package name at (eval 676) line
> 1.
> Global symbol "$r" requires explicit package name at (eval 676) line
> 1.
> .....
> 2011.11.21 15:20:57 3: NTFY return:  Global symbol "$r" requires
> explicit package name at (eval 676) line 1.
> Global symbol "$r" requires explicit package name at (eval 676) line
> 1.
> Global symbol "$r" requires explicit package name at (eval 676) line
> 1.
> ....
>
> Gruss Peter
>
>

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com

Guest

Originally posted by: <email address deleted>

Hallo,
ich hab dieses Problem auch. Ich habe schon die Änderungen vorgenommen,
trotzdem geht es aber nicht.

So sieht also mein ExtendedAutoMode aus:

.*mode.*auto {
    my $olddesired = ReadingsVal("@", "desired-temp", 20);;\
    return if (!defined($olddesired));
    my @@day = ("sun", "mon", "tue", "wed", "thu", "fri", "sat");
    my $now = sprintf("%%02d:%%02d", $hour, $min);
    my $wd = $day[$wday];
    my $desired;
    if (defined($r->{"warnings"}{VAL}) && $r->{"warnings"}{VAL} eq "Window
open") {
      $desired = $r->{"windowopen-temp"}{VAL};
    } elsif (defined($r->{"$wd-from1"}{VAL}) && $r->{"$wd-from1"}{VAL} le
$now && defined($r->{"$wd-to1"}{VAL}) && $r->{"$wd-to1"}{VAL} ge $now) {
      $desired = $r->{"day-temp"}{VAL};
    } elsif (defined($r->{"$wd-from2"}{VAL}) && $r->{"$wd-from2"}{VAL} le
$now && defined($r->{"$wd-to2"}{VAL}) && $r->{"$wd-to2"}{VAL} ge $now) {
      $desired = $r->{"day-temp"}{VAL};
    } else {
      $desired = $r->{"night-temp"}{VAL};
    }
    fhem ("set @ desired-temp $desired") if (defined($desired) && $desired
ne $olddesired);
  }


Und das ist dann die Ausgabe im Log

ExtendedAutoMode return value: Global symbol "$r" requires explicit package
name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.
Global symbol "$r" requires explicit package name at (eval 29) line 1.

Könnt ihr mir helfen?

--
To unsubscribe from this group, send email to
fhem-users+unsubscribe@googlegroups.com