FHEM Forum

FHEM => Automatisierung => Thema gestartet von: satprofi am 01 Oktober 2025, 13:54:47

Titel: gelöst: Scriptfehler
Beitrag von: satprofi am 01 Oktober 2025, 13:54:47
hallo.
habe hier script in 99_myUtils.pm laufen, das läuft, aber der letzte teil nicht funktioniert. Script wird über at alle 10min. getriggert.
Wenn die Ladespg. 526V beträgt, und es nicht 17h ist, sollte eigentlich nichts passieren, es startet das script aber trotzdem wieder von vorne und Ladespg. 516V. Warum?

sub SOC_on {
  my $mSOC=ReadingsVal("PylonTech_mSOC","mSOC",0);
  my $Ladestrom_state=ReadingsVal("Ladestrom_2","state","");
  my $Transfer_state=ReadingsVal("Transfer","state","");
  my $Amp=ReadingsVal("balancing","state","");
  my $Amp2=ReadingsNum("PylonTech_overview","Current",0);
  my $Charge=ReadingsVal("Lader","state","");
  my $Spg=ReadingsNum("Ladespg","state","");
#
  if ($Ladestrom_state ne "disabled")
     {
      fhem("set Ladestrom_2 cmd_111");
      fhem("set Ladestrom_2 disable");
      fhem("set Ausgleichsladung on");
     }
  if ($Transfer_state ne "disabled")
     {
      # ein wenig Geduld zeigen - hier 500 msec
      sleep(1);
      fhem("set Transfer cmd_2");
      fhem("set Transfer disable");
     }
  # Ladung starten
  if ($Amp ne "inactive")
     {
      sleep(1);
      fhem("\"python2 /usr/local/bin/516V.py\"");
      fhem("set Ladespg 516");
      # ein wenig Geduld zeigen - hier 500 msec
      sleep(1);
      fhem("{achtzig_A}");
      fhem("set Ladestrom_balancing 80");
      fhem("set balancing active");
     }
  # ein wenig Geduld zeigen - hier 1000 msec
  sleep(1);
  #
  if ($Amp2 <=6)
      { if ($Spg ==516)
      {
       fhem("\"python2 /usr/local/bin/517V.py\"");
       fhem("set Ladespg 517");
      }
     elsif ($Spg ==517)
      {
       fhem("\"python2 /usr/local/bin/518V.py\"");
       fhem("set Ladespg 518");
      }
     elsif ($Spg ==518)
      {
       fhem("\"python2 /usr/local/bin/519V.py\"");
       fhem("set Ladespg 519");
      }
     elsif ($Spg ==519)
      {
       fhem("\"python2 /usr/local/bin/520V.py\"");
       fhem("set Ladespg 520");
      }
     elsif ($Spg ==520)
      {
       fhem("\"python2 /usr/local/bin/522V.py\"");
       fhem("set Ladespg 522");
      }
     elsif ($Spg ==522)
      {
       fhem("\"python2 /usr/local/bin/524V.py\"");
       fhem("set Ladespg 524");
      }
     elsif ($Spg ==524)
      {
       fhem("\"python2 /usr/local/bin/526V.py\"");
       fhem("set Ladespg 526");
      }
     elsif (strftime("%H",localtime) >= 17)
      {
        if ($Spg ==526)
      {
       fhem("\"python2 /usr/local/bin/514V.py\"");
       fhem("set Ladespg 514");
       fhem("set Transfer enable");
       fhem("set Ladestrom_2 enable");
       fhem("set Ladestrom_2 cmd_111");
       fhem("set DI_Ausgleichsladung cmd_2");
       fhem("set Ladestrom_balancing 0");
       fhem("set Ausgleichsladung off")
      } }
   }  
}
Titel: Aw: Scriptfehler
Beitrag von: satprofi am 01 Oktober 2025, 14:24:27
gelöst, fehler in dieser Zeile
if ($Amp ne "inactive")

neu
if ($Amp eq "inactive")