Hallo
ich hab ein Problem mit der Syntax im einer Logik.
Wenn ich das so schreibe:
Bekomme ich ein:
Nehme ich die Leerzeichen in Zeile 7 vor dem else weg dann ist es ok und es verlagert sich auf das zweite else Zeile 13
Es sind keine Tabs drin nur Leerzeichen. Alles mit Notepad ++ gemacht. Ich verstehe das nicht. Warum ist das so?
Setze ich Zeile 13 das Zweite else an den Anfang der Zeile:
Dann bringt das nichts.
Was mache ich hier falsch?
Wer hat da einen Tipp für mich?
Danke Gruß Haxley
ich hab ein Problem mit der Syntax im einer Logik.
Wenn ich das so schreibe:
Code:
# Automatik zur Steuerung der Filterpumpe um den Pool zu heizen if sh.Solarheizung.Automatik(): if sh.pool.temp_poolwasser() >= sh.Solarheizung.TempMax(): if sh.Solarheizung.Pumpe() == 1: sh.Solarheizung.Pumpe(0) logger.warning("Solarheizung Pool - Aus, Maximaltemperatur erreicht") else: if (sh.pool.temp_solar_warm() - sh.Solarheizung.TempEin()) > sh.pool.temp_poolwasser(): if sh.Solarheizung.Pumpe() == 0: if sh.Solarheizung.TempMax() > sh.pool.temp_poolwasser(): sh.Solarheizung.Pumpe(1) logger.info("Solarheizung Pool - Ein") else: #logger.info("TempAbschalt {0}".format(sh.Messdaten.Alle.Temperatur8() + sh.Pool.Solarheizung.TempAus())) if (sh.pool.temp_solar_warm() - sh.Solarheizung.TempAus()) <= sh.pool.temp_poolwasser(): if sh.Solarheizung.Pumpe(): sh.Solarheizung.Pumpe(0) logger.info("Solarheizung Pool - Aus")
HTML-Code:
Traceback (most recent call last): File "/usr/smarthome/lib/logic.py", line 998, in _generate_bytecode self.bytecode = compile(code, self.pathname, 'exec') File "/usr/smarthome/logics/pool_heizung.py", line 7 else: ^ IndentationError: unexpected indent
Code:
# Automatik zur Steuerung der Filterpumpe um den Pool zu heizen if sh.Solarheizung.Automatik(): if sh.pool.temp_poolwasser() >= sh.Solarheizung.TempMax(): if sh.Solarheizung.Pumpe() == 1: sh.Solarheizung.Pumpe(0) logger.warning("Solarheizung Pool - Aus, Maximaltemperatur erreicht") else: if (sh.pool.temp_solar_warm() - sh.Solarheizung.TempEin()) > sh.pool.temp_poolwasser(): if sh.Solarheizung.Pumpe() == 0: if sh.Solarheizung.TempMax() > sh.pool.temp_poolwasser(): sh.Solarheizung.Pumpe(1) logger.info("Solarheizung Pool - Ein") else: #logger.info("TempAbschalt {0}".format(sh.Messdaten.Alle.Temperatur8() + sh.Pool.Solarheizung.TempAus())) if (sh.pool.temp_solar_warm() - sh.Solarheizung.TempAus()) <= sh.pool.temp_poolwasser(): if sh.Solarheizung.Pumpe(): sh.Solarheizung.Pumpe(0) logger.info("Solarheizung Pool - Aus")
Setze ich Zeile 13 das Zweite else an den Anfang der Zeile:
Code:
# Automatik zur Steuerung der Filterpumpe um den Pool zu heizen if sh.Solarheizung.Automatik(): if sh.pool.temp_poolwasser() >= sh.Solarheizung.TempMax(): if sh.Solarheizung.Pumpe() == 1: sh.Solarheizung.Pumpe(0) logger.warning("Solarheizung Pool - Aus, Maximaltemperatur erreicht") else: if (sh.pool.temp_solar_warm() - sh.Solarheizung.TempEin()) > sh.pool.temp_poolwasser(): if sh.Solarheizung.Pumpe() == 0: if sh.Solarheizung.TempMax() > sh.pool.temp_poolwasser(): sh.Solarheizung.Pumpe(1) logger.info("Solarheizung Pool - Ein") else: #logger.info("TempAbschalt {0}".format(sh.Messdaten.Alle.Temperatur8() + sh.Pool.Solarheizung.TempAus())) if (sh.pool.temp_solar_warm() - sh.Solarheizung.TempAus()) <= sh.pool.temp_poolwasser(): if sh.Solarheizung.Pumpe(): sh.Solarheizung.Pumpe(0) logger.info("Solarheizung Pool - Aus")
HTML-Code:
File "/usr/smarthome/lib/logic.py", line 998, in _generate_bytecode self.bytecode = compile(code, self.pathname, 'exec') File "/usr/smarthome/logics/pool_heizung.py", line 13 else: ^ SyntaxError: invalid syntax
Wer hat da einen Tipp für mich?
Danke Gruß Haxley
Kommentar