FHEM Forum

FHEM => Sonstiges => Thema gestartet von: xxsteffenxx am 21 November 2015, 14:36:35

Titel: Undefined subroutine &main::Werte called at
Beitrag von: xxsteffenxx am 21 November 2015, 14:36:35
Mein Logfile ist immer mal wieder mit folgenden Meldungen voll.
Finde aber nirgends eine subroutine &main:Werte bzw. habe in der 99_Utils und in der 99_myUtils.pm geschaut, da finde ich nichts....

2015.11.21 10:48:18 2: Undefined subroutine &main::Werte called at (eval 33641) line 1.

2015.11.21 10:48:18 2: Undefined subroutine &main::Werte called at (eval 33642) line 1.

2015.11.21 10:48:18 2: Undefined subroutine &main::Werte called at (eval 33644) line 1.

2015.11.21 10:48:18 2: Undefined subroutine &main::Werte called at (eval 33645) line 1.

2015.11.21 10:48:18 2: Undefined subroutine &main::Werte called at (eval 33647) line 1.

2015.11.21 10:48:18 2: Undefined subroutine &main::Werte called at (eval 33648) line 1.

2015.11.21 10:48:18 2: Undefined subroutine &main::Werte called at (eval 33650) line 1.

2015.11.21 10:48:18 2: Undefined subroutine &main::Werte called at (eval 33651) line 1.

2015.11.21 10:52:46 2: Undefined subroutine &main::Werte called at (eval 33723) line 1.

2015.11.21 10:52:46 2: Undefined subroutine &main::Werte called at (eval 33724) line 1.

2015.11.21 10:52:46 2: Undefined subroutine &main::Werte called at (eval 33726) line 1.

2015.11.21 10:52:46 2: Undefined subroutine &main::Werte called at (eval 33727) line 1.

2015.11.21 10:52:47 2: Undefined subroutine &main::Werte called at (eval 33729) line 1.

2015.11.21 10:52:47 2: Undefined subroutine &main::Werte called at (eval 33730) line 1.

2015.11.21 10:52:47 2: Undefined subroutine &main::Werte called at (eval 33732) line 1.

2015.11.21 10:52:47 2: Undefined subroutine &main::Werte called at (eval 33733) line 1.


015.11.21 14:32:49 2: Undefined subroutine &main::Werte called at (eval 1948) line 1.

2015.11.21 14:32:49 2: Undefined subroutine &main::Werte called at (eval 1949) line 1.

2015.11.21 14:32:49 2: Undefined subroutine &main::Werte called at (eval 1951) line 1.

2015.11.21 14:32:49 2: Undefined subroutine &main::Werte called at (eval 1952) line 1.

2015.11.21 14:32:49 2: Undefined subroutine &main::Werte called at (eval 1954) line 1.

2015.11.21 14:32:49 2: Undefined subroutine &main::Werte called at (eval 1955) line 1.

2015.11.21 14:32:49 2: Undefined subroutine &main::Werte called at (eval 1957) line 1.

2015.11.21 14:32:49 2: Undefined subroutine &main::Werte called at (eval 1958) line 1.


Schönes Wochenenden, Grüße Steffen
Titel: Antw:Undefined subroutine &main::Werte called at
Beitrag von: franky08 am 21 November 2015, 14:42:50
stacktrace mal auf 1 setzen, dann solltest du sehen welches Modul den Fehler generiert.

P.s. Kann aber nur deine 99_myUtils sein, da soll eine sub Werte aufgerufen werden
VG
Frank
Titel: Antw:Undefined subroutine &main::Werte called at
Beitrag von: xxsteffenxx am 21 November 2015, 14:52:08
stacktrace habe ich mal auf 1 gesetzt, mal abwarten,
meine 99_myUtils sieht so aus

##############################################
# $Id: myUtilsTemplate.pm 7570 2015-01-14 18:31:44Z rudolfkoenig $
#
# Save this file as 99_myUtils.pm, and create your own functions in the new
# file. They are then available in every Perl expression.

package main;

use strict;
use warnings;
use POSIX;
use Time::Local;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

sub
Abfalltermine ($)
{
  my ($Ereignis) = @_;
  my @Ereignisarray = split(/.*:\s/,$Ereignis);
  my $Ereignisteil1 = $Ereignisarray[1];
  my @uids=split(/;/,$Ereignisteil1);
  my $t  = time;
  my $dtPapier = '';
  my $dtWertstofftonne = '';
  my $dtRest = '';
  my $dtBiomuell = '';
   foreach my $uid (@uids) {
    my $Kalendertext = fhem("get Abfall summary $uid");
    if ($Kalendertext =~ /Altpapier/) {
        my $dt = fhem("get Abfall start $uid");
        my @SplitDt = split(/ /,$dt);
        my @SplitDate = split(/\./,$SplitDt[0]);
        my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
        if ($dtPapier eq '' || ($eventDate < $dtPapier && $eventDate > $t))
        {
          $dtPapier = $eventDate;
          Log(3, $dtPapier);
        }
    };
if ($Kalendertext =~ /Gelbe/) {
        my $dt = fhem("get Abfall start $uid");
        my @SplitDt = split(/ /,$dt);
        my @SplitDate = split(/\./,$SplitDt[0]);
        my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
        if ($dtWertstofftonne eq '' || ($eventDate < $dtWertstofftonne && $eventDate > $t))
        {
          $dtWertstofftonne  = $eventDate;
        }
    };
    if ($Kalendertext =~ /Restmüll/) {
        my $dt = fhem("get Abfall start $uid");
        my @SplitDt = split(/ /,$dt);
        my @SplitDate = split(/\./,$SplitDt[0]);
        my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
        if ($dtRest eq '' || ($eventDate < $dtRest && $eventDate > $t))
        {
          $dtRest = $eventDate;
        }
    };
    if ($Kalendertext =~ /Biomüll/) {
        my $dt = fhem("get Abfall start $uid");
        my @SplitDt = split(/ /,$dt);
        my @SplitDate = split(/\./,$SplitDt[0]);
        my $eventDate = timelocal(0,0,0,$SplitDate[0],$SplitDate[1]-1,$SplitDate[2]);
        if ($dtBiomuell eq '' || ($eventDate < $dtBiomuell && $eventDate > $t))
        {
          $dtBiomuell  = $eventDate;
        }
    };
   
   
  my $dayDiff = floor(($dtPapier - $t) / 60 / 60 / 24 + 1);
  if ($dayDiff >= 0) {
    fhem("set Papiertonne $dayDiff");
  }
  my $dayDiff = floor(($dtWertstofftonne - $t) / 60 / 60 / 24 + 1);
  if ($dayDiff >= 0) {
    fhem("set Gelbetonne $dayDiff");
  }
  my $dayDiff = floor(($dtRest - $t) / 60 / 60 / 24 + 1);
  if ($dayDiff >= 0) {
    fhem("set Restmuell $dayDiff");
  }
    my $dayDiff = floor(($dtBiomuell - $t) / 60 / 60 / 24 + 1);
  if ($dayDiff >= 0) {
    fhem("set Biomuell $dayDiff");
  }
  }
}
1;
Titel: Antw:Undefined subroutine &main::Werte called at
Beitrag von: franky08 am 21 November 2015, 15:02:16
Da gibt es schonmal keine sub mit der Namen Werte! Du hast irgendwo in einem notify oder DOIF o.a. einen Aufruf in der Art:

{Werte}
und da die sub nicht vorhanden ist, bekommst du wahrscheinlich die Fehlermeldung.

P.S. durchsuche doch mal deine fhem.cfg nach dem Wort Werte, da findest du den Übeltäter sofort.
stacktrace kannst du wieder disablen, der Fehler kommt wahrscheinlich aus keinem Modul
Titel: Antw:Undefined subroutine &main::Werte called at
Beitrag von: xxsteffenxx am 21 November 2015, 15:07:44
Das einzeige mit "Werte" war

#attr Spritpreise valueStyle {Werte($READING,$VALUE)}
von meinen Spritpreisen, hab das mal auskommentiert, mal sehen ob sich was ändert :-)

Danke schonmal!
Titel: Antw:Undefined subroutine &main::Werte called at
Beitrag von: Archimedes am 09 Dezember 2015, 12:53:33
Genau, die Spritpreise, das selbe habe ich auch. Vorgegangen bei der Umsetzung nach http://www.fhemwiki.de/wiki/Spritpreismonitor.  ;) ::)
Allerdings habe ich die Anpassung in der  99_myUtils.pm; nicht vorgenommen. Ich fand das nicht so wichtig. Bin mir auch nicht sicher, ob nach einem Update die Infos noch da sind.
Ich werde wohl erst einmal auf 5.7 gehen und mich dann darum kümmern.
Titel: Antw:Undefined subroutine &main::Werte called at
Beitrag von: betateilchen am 09 Dezember 2015, 13:36:19
Zitat von: Archimedes am 09 Dezember 2015, 12:53:33
Allerdings habe ich die Anpassung in der  99_myUtils.pm; nicht vorgenommen. Ich fand das nicht so wichtig.

super...