gelöst: Scriptfehler

Begonnen von satprofi, 01 Oktober 2025, 13:54:47

Vorheriges Thema - Nächstes Thema

satprofi

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")
      } }
   }  
}
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram

satprofi

gelöst, fehler in dieser Zeile
if ($Amp ne "inactive")

neu
if ($Amp eq "inactive")
gruss
-----------------------------------------------------------------------
beelink miniPC - Fhem 6.x CUL 868, FS20, NetIO230 CUL 433
HMLAN, HM-CC-RT-DN,Homematic Actoren,LD382A,Telegram