Hauptmenü

Neueste Beiträge

#1
FHEM Development / glob/Wildcards in CommandInclu...
Letzter Beitrag von jw2013 - 14 Dezember 2025, 13:12:22
Für modulare Setups wäre es hilfreich, wenn der include Befehl Wildcards unterstützen würde, z.B. sollte

include /etc/fhem/*.cfg
alle Dateien mit .cfg am Ende aus dem Verzeichnis /etc/fhem/ einbinden, in alphabetischer Reihenfolge.
Das ließe sich mit minimalen Änderungen an CommandInclude umsetzen:

sub
CommandInclude($$)
{
  my ($cl, $arg) = @_;
  my $fh;
  my @ret;
  my $oldcfgfile;
  my @files = ();

  my $type = ($unicodeEncoding ? "< :encoding(UTF-8)" : "<");
  if(!open($fh, $type, $arg)) {
    @files = sort grep $_ ne $arg, glob($arg); # e.g. /etc/fhem/*.cfg
    return "Can't open $arg: $!" unless @files;
  }
 
  Log 1, "Including $arg";
  my @t = localtime(gettimeofday());
  my $gcfg = ResolveDateWildcards(AttrVal("global", "configfile", ""), @t);
  my $stf  = ResolveDateWildcards(AttrVal("global", "statefile",  ""), @t);
  if(!$init_done && $arg ne $stf && $arg ne $gcfg) {
    my $nr =  $devcount++;
    $comments{$nr}{TEXT} = "include $arg";
    $comments{$nr}{CFGFN} = $currcfgfile if($currcfgfile ne $gcfg);
  }
  $oldcfgfile = $currcfgfile;
  do {
    if ( @files ) {
      $arg = shift @files;
      next if ($rcvdquit) or ($arg eq $gcfg) or ($arg eq $stf); # ignore globs matching configfile or statefile
      if(!open($fh, $type, $arg)) {
        push @ret, "Can't open $arg: $!";
        next;
      }
      Log 1, "Including $arg";
    }
    $currcfgfile = $arg;

    my $bigcmd = "";
    my $lineno = 0;
    $rcvdquit = 0;
    while(my $l = <$fh>) {
      $lineno++;
      $l =~ s/[\r\n]//g;

      if($l =~ m/^(.*)\\ *$/) {       # Multiline commands
        $bigcmd .= "$1\n";

      } else {
        my $tret = AnalyzeCommandChain($cl, $bigcmd . $l);
        if(defined($tret)) {
          Log 5, "$arg line $lineno returned >$tret<";
          push @ret, $tret;
        }
        $bigcmd = "";
      }
      last if($rcvdquit);

    }
    close($fh);
  } while @files;
  $currcfgfile = $oldcfgfile;
  return join("\n", @ret) if(@ret);
  return undef;
}

Wenn die angegebene include Datei geöffnet werden kann, verhält sich das Kommando 1:1 wie zuvor.
Ansonsten wird getestet, ob die glob-Funktion (in Perl enthalten) für das Argument Datei-Namen zurückliefert, welche nicht mit dem Argument übereinstimmen.

Die Einbindung der gefundenen Dateien erfolgt so, dass FHEM keine neuen include Statements für diese anlegt (daher hab ich auch auf rekursive Aufrufe verzichtet).

#2
Heizungssteuerung/Raumklima / Aw: Vitoconnect - Verbesserte ...
Letzter Beitrag von binlan - 14 Dezember 2025, 13:07:28
Hi Stefan,

ich habe eine (und kein weitere) Vitodens 333 F Heizung.

Ist das hier die Modulversion?
98_vitoconnect.pm:v1.0.1-s30569/2025-11-29

alle .json (meine persönlichen Daten bereinigt) hängen hier dran. .err file hatte ich nicht. nur einen alten vor 3 Tagen:

# cat log/vitoconnect_7571381609484203.err
$VAR1 = {
          'statusCode' => 500,
          'message' => 'Internal server error occurs',
          'errorType' => 'INTERNAL_SERVER_ERROR',
          'viErrorId' => '00-aae014924afe2cc760171b4af2d7fa26-aacccd6f9122ee37-00',
          'extendedPayload' => {}
        };

Ich muss mich bezüglich des "Access Token: nicht definiert" korrigieren. Das kommt minütlich, wenn ich gerade unauth bin. Gestern Abend nach 23:50 Uhr hab ich den api-key wieder reingetan. Seitdem läufts. Somit kann ich den Fehler auch gerade nicht reproduzieren. Aber trotzdem schafft er es bei mir ja früher oder später nicht den Token zu freshen. Den Fehlerlog kann ich dann vrmtl. erst morgen liefern. Provozieren kann ich das ja nicht, oder?

Danke Binlan

#3
Codeschnipsel / Aw: Abfrage Heizölpreis HTTPMO...
Letzter Beitrag von Bartimaus - 14 Dezember 2025, 13:04:50
Das hilft mir nicht weiter
#4
Heizungssteuerung/Raumklima / Aw: Vitoconnect - Verbesserte ...
Letzter Beitrag von stefanru - 14 Dezember 2025, 12:06:08
Hi Binlan,

das ist seltsam.
Vor allem die Meldung:
Access Token: nicht definiert

Da kommt von der API kein Fehler aber auch nicht das erwartete Access Token in der Antwort.

Gib mir bitte mal mehr Infos.
Was für eine Heizung verwendest du, wie viele Geräte hast du?
Welche Version des Moduls verwendest du?
Und mach mal ein logReponseOnce und schicke mir die Dateien mit .json und .err aus dem Logverzeichniss.
Man könnte wenn die Meldung kommt auf Verbose 5 schalten.
Da kommt dann sehr viel, interessant wäre was genau nach der Fehlermeldung kommt, da sollte die Antwort der API stehen und die scheint irgendwie falsch zu sein.

Wenn dich Verbose 5 erschlägt könnte ich die interessante stelle für dich auch mal auf Verbose 3 stellen.
In der aktuellen Version ist das in Zeile 3321:
            Log3($name,1,$name." - Access Token: nicht definiert");
            Log3($name,5,$name." - Received response: ".$response_body."\n");
            InternalTimer(gettimeofday() + $hash->{intervall},"vitoconnect_GetUpdate",$hash);

Die Zeile in der Mitte könntest du mal auf:
Log3($name,1,$name." - Received response: ".$response_body."\n");

Dann würdest du zum Fehler die API Antwort im Log sehen.
Da könnten wir dann vielleicht etwas mit anfangen.

Gruß,
Stefan
#5
Kalendermodule / Aw: [bug] 57_Calendar.pm: cuto...
Letzter Beitrag von Dr. Boris Neubert - 14 Dezember 2025, 12:02:44
 :-\

Kalenderarithmetik mit Zeiten gemischt im ISO-Format und als Unix-Zeitstempel geht schief.

Neuer Versuch, getestet mit der Datei aus dem ersten Beitrag, geschrieben in ausreichendem Wachzustand :-)
#6
Heizungssteuerung/Raumklima / Aw: Vitoconnect - Verbesserte ...
Letzter Beitrag von binlan - 14 Dezember 2025, 11:43:26
Hallo zusammen,

ich ende nach gefühlten 24h regelmässig immer wieder an diesem Punkt:
statusCode: 401 errorType: UNAUTHORIZED message: Token provided in request is expired or invalid. error: EXPIRED TOKEN reason: undef

ich habe diesen und den vorangegangen Thread nach diesem Problem durchgeschaut. Nichts hat mir weitergeholfen. Dabei ging es regelmässig um die Häufigkeit des Pollens auf die viessmann api. Anders als die anderen Problem habe ich minütlich diese Meldung im Log:
fhem  | 2025.12.13 23:41:38 1: Heizung - Access Token: nicht definiert
fhem  | 2025.12.13 23:43:09 1: Heizung - Access Token: nicht definiert
fhem  | 2025.12.13 23:44:39 1: Heizung - Access Token: nicht definiert
fhem  | 2025.12.13 23:46:10 1: Heizung - Access Token: nicht definiert
fhem  | 2025.12.13 23:47:40 1: Heizung - Access Token: nicht definiert
fhem  | 2025.12.13 23:49:10 1: Heizung - Access Token: nicht definiert
fhem  | 2025.12.13 23:50:36 1: Heizung - Access Token: nicht definiert

Die Meldungen kommen schon solange der Abruf auch noch funktioniert. Daraus schliesse ich, dass irgendwas mit dem Token renewal bei mir nicht funzt. Ich kann aber weder in der Doku noch im Forum entdecken, was ich dagegen tun tan.
Ich benutze das Modul schon sehr lange. Hab das Upgrade auf diesen rewrite mitgemacht, bin aber bislang nicht auf die "raw-readings" gegangen, weil mir das alle Metriken zerreißt. Für diese Umstellung war ich bisher zu faul, sorry. Das ist aber hoffentlich nicht ursächlich für das Token Problem.

Wenn ich dann wieder UNAUTHORIZED bin und ich es auch bemerke schafft die Eingabe des api-key wieder Abhilfe - bis zum nächsten mal.

Ich polle aktuell alle 90 Sekunden um das Limit garantiert nicht zu tangieren, aber daran liegts vrmt. nicht.
defmod Heizung vitoconnect mein-user@meine-domain.net meinpw 90

Hat jemand ne Idee? Es nervt schon sehr.

Danke.

Binlan
#7
Sonstiges / Aw: Ecowitt API - diverse Wett...
Letzter Beitrag von Dr. Boris Neubert - 14 Dezember 2025, 11:37:48
Ich habe eine Version eingecheckt, die bis auf die unitialized values erst einmal tut, was sie soll. Plots anbei.

Die Zeitzonen bei den Unix-Timestamps sind inkonsistent, da musste ich noch herumprobieren.

Blitzerkennung geht jetzt mit einem synthetischen Reading lightning_strike, wodurch ich die Entfernung eines Blitzes loggen und plotten kann. Mangels Gewittern habe ich versucht, meine eigenen Blitze zu erzeugen. Ein Feuerzeug mit piezoelektrischem Zünder muss man ganz nah an den Sensor halten, um einen entfernten Blitz zu simulieren. Besser geht es, wenn man den Blitzsensor dicht an einen Lichtschalter hält, der eine größere Last schaltet, damit es einen ordentlichen Abreißfunken gibt. In der Nähe meines Laptops hatte der Inhouse-Testaufbau aus dem Rauschen heraus übrigens auch Blitze erkannt.

Ich bekomme keine Meldung für piezo_rain_hourly und folglich auch kein Reading für den Niederschlag in der letzten Stunde. Auch in der Weboberfläche des GW2000 wird kein entsprechender Wert angezeigt, wohl aber eine Rain Rate in mm/hr, was mir aber die momentane Rate des Niederschlags in Regenmenge pro Zeiteinheit zu sein scheint, wobei die Zeiteinheit, über die gemessen wird, nicht klar ist.
#8
FHEM Code changes / Revision 30625: 59_ECOWITT_GW....
Letzter Beitrag von System - 14 Dezember 2025, 11:31:20
Revision 30625: 59_ECOWITT_GW.pm: many enhacements (forum #124749)

59_ECOWITT_GW.pm: many enhacements (Forum: #124749)

Source: Revision 30625: 59_ECOWITT_GW.pm: many enhacements (forum #124749)
#9
Solaranlagen / Aw: Anbindung Solakon One mit ...
Letzter Beitrag von rippi46 - 14 Dezember 2025, 11:30:09
Achtung:

attr SolakonOne obj-h39151 daily_generation, expr=$val, len=2, revRegs=1, unpack=s>s>
htte die falsch Adresse!

Gruß rippi
#10
User stellen sich vor / Auf wiedersehen in die Runde
Letzter Beitrag von Heatseeker - 14 Dezember 2025, 11:28:30
So,

nach ca 8 Jahren ist nun Zeit sich zu verabschieden. Ich habe zwar nicht so viele Beiträge hier geschreiben, aber der Input den ich hier bekommen habe war immer sehr wertvoll!
Da meine FHEM Instanz über so lange Zeit gewachsen ist, und ich mich auch nicht ständig damit beschäftigen konnte wurde es für mich immer schwieriger Dinge nachzuvollziehen wie ich sie mal gemacht habe, was die Wartung verkomplizierte. Wäre ich zwischenzeitlich auf eine virtuelle Proxmox Umgebung umgestiegen um schnell ein Backup zu machen oder wieder zurückzuspielen hätte ich den Schritt vermutlich schon eher unternommen.

Ich bin nun zu HomeAssistant umgezogen was auch relativ schmerzlos war da ich ich mich im Vorfeld gut vorbereitet habe. Die Grundfunktionen liefen schon nach einem Sonntag und nun nach einer Woche habe ich schon mehr als ich vorher laufen hatte.
Dabei war einiges zu migrieren:
Zigbee (Conbee)
Z-Wave
1-wire
ebus-Schnittstelle (lesend und schreibend)
Huawei Wechslerichter und selbstlernende PV-Vorhersage (was ich in letzter Zeit am meinsten nutzte <- aber auch hier gibt es etwas ähnliches bei HA)
OBIS-Stromzähler
ESP-Bridge für den Gaszähler
Telegram
Alexa Sprachsteuerung
HomeConnect
,...
1-wire und ebusd habe ich in einen extra Linux Container ausgelagert da ich hier flexibler bin als unter HAOS.

Aber nun läuft alles und ich werde mein FHEM vermutlich nicht mehr starten.
Somit vielen Dank für eure Hilfe und bis demnächst ;-)

Grüße
Heatseeker