Hallo .
möchte minus zahlen vergleichen, aber irgendwie schnall ich größer u. kleiner nicht.
beim test schaltet test3 ein wenn test1 0 und test 2 - 1, aber wenn test1 - 5 u. test2 - 6 dann schaltet nichts. ebenso wenn test1 - 6 u. test2 - 5.
edit
die Rechtschreibprüfung macht abstand zw. minus u. zahl!
jetzt klappts.
klappt nicht wirklich.
<0 and >-500
condition c02: syntax error, line 1, near "and >"
was passt da nicht? sollte doch zw. 0 u. minus 500 schalten
([Lader] eq "off" and [Transfer:state] ne "Netz aus" and [Xtender_SOC] >25 and [Xtender_input_limit]eq "off" and [Ueberschuss] < 0) ("python2 /usr/local/bin/input_6Amp.py", set Xtender_input_limit on)
DOELSEIF([Transfer:state] ne "Netz aus" and [Xtender_input_limit] eq "on" and [Ueberschuss] <0 and >-500) ("python2 /usr/local/bin/input_4Amp.py")
DOELSEIF ([Transfer:state] ne "Netz aus" and [Xtender_input_limit] eq "on" and [Ueberschuss] < -500) ("python2 /usr/local/bin/input_2Amp.py")
DOELSEIF ([Xtender_input_limit] eq "on" and ([Xtender_SOC] <15 or [Transfer] eq "Netz aus" or ([solarlog_totalpac] - [Xtender_Power]) >950 and [Ueberschuss] >150)) ("python2 /usr/local/bin/input_24Amp.py", set Xtender_input_limit off)
DOELSEIF ([Xtender_input_limit] eq "on" and (([solarlog_totalpac] - [Xtender_Power]) >450) and [Ueberschuss] >450) ("python2 /usr/local/bin/input_4Amp.py")
Ich nutze ja DOIF nicht aber ich schätze auch da ist das hier: [Ueberschuss] <0 and >-500 "Quatsch"...
Ich schätze so: [Ueberschuss] < 0 and [Ueberschuss] > -500 könnte ein Schuh draus werden...
EDIT: das mit test1, test2 und test3 habe ich nicht verstanden? Ich kann in deinem DOIF(-Ausschnitt) keine test-irgendwas finden... ;)
Gruß, Joachim
Das, was MadMax_FHEM schreibt, und:
Ich würde den code erstmal vernünftig strukturieren, damit dieser besser zu lesen ist:
(([Lader] eq "off")
and ([Transfer:state] ne "Netz aus")
and ([Xtender_SOC:???] > 25)
and ([Xtender_input_limit:???] eq "off")
and ([Ueberschuss:???] < 0))
("python2 /usr/local/bin/input_6Amp.py",
set Xtender_input_limit on)
DOELSEIF (([Transfer:state] ne "Netz aus")
and ([Xtender_input_limit:???] eq "on")
and ([Ueberschuss:???] > -500)
and ([Ueberschuss:???] < 0))
("python2 /usr/local/bin/input_4Amp.py")
DOELSEIF (([Transfer:state] ne "Netz aus")
and ([Xtender_input_limit:???] eq "on")
and ([Ueberschuss:???] < -500))
("python2 /usr/local/bin/input_2Amp.py")
DOELSEIF (([Xtender_input_limit:???] eq "on")
and ([Ueberschuss:???] > 150)
and (([Xtender_SOC:???] < 15)
or ([Transfer:???] eq "Netz aus")
or (([solarlog_totalpac:???] - [Xtender_Power:???]) > 950)))
("python2 /usr/local/bin/input_24Amp.py", set Xtender_input_limit off)
DOELSEIF (([Xtender_input_limit:???] eq "on")
and (([solarlog_totalpac:???] - [Xtender_Power:???]) > 450)
and [Ueberschuss:???] > 450)
("python2 /usr/local/bin/input_4Amp.py")
Für den Anfang würde ich auch die Readings mitgeben ([DEVICE:READING]), die Stellen habe ich mit drei ? markiert.
Dann prüfen ob die Kombination der Bedingungen deinen Anforderungen entsprechen.
Darüberhinaus wäre ein list des DOIF Devices noch hilfreich, wir wissen ja nicht welche Attribute du sonst noch gesetzt hast.
Zitat([Transfer:state] ne "Netz aus" and [Xtender_input_limit] eq "on" and [Ueberschuss] <0 and >-500)
Sowas Komisches hast Du vor ein paar Tagen schon mal gemacht.
Zitat von: MadMax-FHEM am 18 September 2023, 12:09:20Ich nutze ja DOIF nicht aber ich schätze auch da ist das hier: [Ueberschuss] <0 and >-500 "Quatsch"...
Ich schätze so: [Ueberschuss] < 0 and [Ueberschuss] > -500 könnte ein Schuh draus werden...
Gruß, Joachim
richtig, so passts jetzt