reload: Error:Modul 99_attrT_Ahoy_Utils deactivated:

Begonnen von TomLee, 24 November 2023, 20:43:36

Vorheriges Thema - Nächstes Thema

TomLee

Bin ich richtig in FHEMWEB ? ? ?

Hallo,

wenn ich bei meinen FHEM-Server ein shutdown restart ausführe, sind die ersten Zeilen immer:

2023.11.24 19:52:23 1: Server shutdown delayed due to alexa for max 10 sec
2023.11.24 19:52:23 3: alexa: read: end of file reached while sysread
2023.11.24 19:52:23 3: alexa: stopped
2023.11.24 19:52:24 0: Server shutdown
2023.11.24 19:52:24 3: mc_shalarm: connected to secureimap.t-online.de
2023.11.24 19:52:25 3: mc_shalarm: logged in to bla@t-online.de
2023.11.24 19:52:25 1: Timeout for SIP_ListenStart reached, terminated process 6034
2023.11.24 19:52:27 1: reload: Error:Modul 99_attrT_Ahoy_Utils deactivated:
 
2023.11.24 19:52:27 1: Including fhem.cfg
2023.11.24 19:52:28 3: WEB: port 8083 opened
2023.11.24 19:52:28 2: eventTypes: loaded 2420 lines from ./log/eventTypes.txt
...

Ich verstehe nicht warum es zu reload: Error:Modul 99_attrT_Ahoy_Utils deactivated: kommt.

Wie kann ich der Sache auf den Grund gehen ?

Die Datei hat diesen Inhalt:


##############################################
# $Id: 99_attrT_Ahoy_Utils.pm 27526 2023-05-07 04:14:04Z Beta-User $
#

package FHEM::attrT_Ahoy_Utils;    ## no critic 'Package declaration'

use strict;
use warnings;

use Color;
use GPUtils qw(GP_Import);

## Import der FHEM Funktionen
#-- Run before package compilation
BEGIN {

    # Import from main context
    GP_Import(
        qw(
          FW_makeImage
          AttrVal
          InternalVal
          ReadingsVal
          ReadingsNum
          ReadingsAge
  isday
          defs
          )
    );
}

sub main::attrT_Ahoy_Utils_Initialize { goto &Initialize }

# initialize ##################################################################
sub Initialize {
  my $hash = shift;
  return;
}

# Enter you functions below _this_ line.

sub devStateIcon {
  my $devname = shift // return;
  my $panels  = shift // 4;
  my $colors  = shift // 0;

  return if !defined $defs{$devname};

  my $col = substr(Color::pahColor(-10,50,70,ReadingsNum($devname,'temperature',0),$colors),0,6);
  my $ret = FW_makeImage("sani_solar_temp\@$col",'file_unknown@grey');
  $ret .= ' ';
  $ret .= ReadingsNum($devname,'temperature',0,1);
  $ret .= ' °C<br>';

  my $avail = ReadingsNum($devname,'available',0);
  $avail = $avail > 1 ? '10px-kreis-gruen' : isday() ? '10px-kreis-rot' :'10px-kreis-gelb';
  $ret .= FW_makeImage($avail, 'edit_settings');
  $ret .= ' ';
  $ret .= ReadingsNum($devname,'P_AC',0);
  $ret .= ' W / ';
  $ret .= ReadingsNum($devname,'YieldDay',0);
  $ret .= ' Wh';

  my $total = ReadingsNum($devname,'YieldTotal',0,1);
  if ( $total > 0 ) {
    $ret .= ' / ';
    $ret .= $total;
    $ret .= ' kWh';
  }
 
  for (1..$panels) {
    $ret .= '<br>';
    $col = substr(Color::pahColor(0,50,100,ReadingsNum($devname,"Irradiation$_",0),$colors),0,6);
    $ret .= FW_makeImage("solar\@$col",'file_unknown@grey');
    $ret .= ' ';
    $ret .= ReadingsNum($devname,"P_DC$_",0);
    $ret .= ' W / ';
    $ret .= ReadingsNum($devname,"YieldDay$_",0);
    $ret .= ' Wh';
    $total = ReadingsNum($devname,"YieldTotal$_",0,1);
    if ( $total > 0 ) {
      $ret .= ' / ';
      $ret .= $total;
      $ret .= ' kWh';
    }
  }
  return qq(<div><p style="text-align:right">$ret</p></div>);
}

Gruß

Thomas

betateilchen

Du versuchst, die Funktion FW_makeImage zu importieren, die zu diesem frühen Zeitpunkt im FHEM-Start noch nicht vorhanden ist.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

TomLee

Danke, dann hoff ich mal das Jörg mitliest, wenn nicht schreib ich ihn mal an und frag ob er noch lebt  ;D

betateilchen

Das kannst Du doch bei Dir selbst lösen.

Benenne die Datei um in 98_attrT_Ahoy_Utils.pm und lade sie in einem notify auf global:INITIALIZED
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

ZitatIch verstehe nicht warum es zu reload: Error:Modul 99_attrT_Ahoy_Utils deactivated: kommt.
Es hoert nicht mit 1; auf, das wird in jedem perl Modul benoetigt.
Vermutlich wg. Aberglaube.

TomLee

Die Datei wird mit dem anwenden des entsprechenden Template geladen, denke da muss man ansetzen dann.

betateilchen

#6
Zitat von: TomLee am 24 November 2023, 21:22:33Die Datei wird mit dem anwenden des entsprechenden Template geladen, denke da muss man ansetzen dann.

Falsch. Die Datei wird beim FHEM Start zuallererst und "zwangsweise" geladen, noch bevor irgendein anderes spezifisches Modul geladen ist. Das liegt daran, dass der Dateiname mit 99 beginnt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

TomLee

Zitat... was ich aus bestimmten Gründen fast bezweifle.

Beweis

TomLee

Zitat... was ich aus bestimmten Gründen fast bezweifle.

Auch wenn schon gelöscht, die würden mich interessieren, fragen werd ich aber nicht danach.

betateilchen

#9
Zitat von: rudolfkoenig am 24 November 2023, 21:21:40Es hoert nicht mit 1; auf, das wird in jedem perl Modul benoetigt.

Das ist doch eher FHEM spezifisch, weil in der fhem.pl geprüft wird, ob am Ende der Ausführung der Datei eine Rückmeldung ungleich false zurückkommt?
Man könnte am Ende der Datei auch return 'Freitag'; schreiben und es würde funktionieren.


Ok, ich nehme das zurück, das ist tatsächlich ein perl Phänomen.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

#10
Zitat von: TomLee am 24 November 2023, 21:43:32
Zitat... was ich aus bestimmten Gründen fast bezweifle.

Auch wenn schon gelöscht, die würden mich interessieren, fragen werd ich aber nicht danach.

Auch wenn Du nicht gefragt hast: In 9 von 10 Fällen, in denen jemand den Inhalt (s)einer 99_myUtils.pm hier im Forum zitiert, wird die 1; am Ende der Datei beim Zitieren vergessen/übersehen. Erfahrungswert aus mehr als 10 Jahren Forum.

Aber im vorliegenden Fall ist es tatsächlich so, dass der Rückgabewert schon in der in ./contrib eingecheckten Datei nicht vorhanden ist. Deshalb hatte ich meine geäußerten Zweifel wieder gelöscht.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

TomLee

OT

mich beschäftigen auch die drei anderen Meldungen (zwei von einem Maintainer) bei dem  shutdown restart, auf die komm ich irgendwann bei Gelegenheit auch zurück.

betateilchen

Zitat von: TomLee am 24 November 2023, 23:14:51auf die komm ich irgendwann bei Gelegenheit auch zurück.

Es steht zu befürchten...

Aber dann vielleicht im richtigen Unterforum? Mit FHEMWEB hatte schon dieser Thread nix zu tun.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

TomLee

#13
Zitat von: rudolfkoenig am 24 November 2023, 21:21:40
ZitatIch verstehe nicht warum es zu reload: Error:Modul 99_attrT_Ahoy_Utils deactivated: kommt.
Es hoert nicht mit 1; auf, das wird in jedem perl Modul benoetigt.
Vermutlich wg. Aberglaube.


Ich hatte das Semikolon zwar gleich ergänzt, aber bis heute nicht kontrolliert ob die Meldung auch wirklich dann weg ist  ::)

An dem fehlenden Semikolon lags nicht, die Meldung ist beim Neustart immer noch da.


Alles gut, Fehler meinerseits, die Meldung ist weg wenn man 1; ergänzt