Sirius3 hat geschrieben: ↑Samstag 17. April 2021, 17:50
›while 1‹ sollte ein ›while True‹ sein. Eingerückt wird immer mit 4 Leerzeichen pro Ebene, nicht mal 1 oder 2 oder 4 Leerzeichen.
1 ist genauso True wie True und wie viele Leerzeichen ist doch wurscht, Hauptsache sie sind gleich eingerückt... Das tut der Funktion des Codes doch keine Abbruch.
Sirius3 hat geschrieben: ↑Samstag 17. April 2021, 17:50
Variablennamen und Funktionen schreibt man komplett klein.
Ok, mag sein, aber auch das führt nicht zu diesem "Fehler"..
Sirius3 hat geschrieben: ↑Samstag 17. April 2021, 17:50
Du holst SMS machst aber gar nichts damit? Was soll die 1?
Ich hole die SMS und schreibe sie zur weiteren Verwendung in die MySQL Datenbank. Das macht die Funktion SMS_holen() Das funktioniert fehlerfrei. Die 1 ist ein Parameter, der ist historisch und eigentlich nicht mehr nötig.
Sirius3 hat geschrieben: ↑Samstag 17. April 2021, 17:50
Was soll die 1 bei db1cursor und warum holst Du Dir den Cursor von einer con(sole)?
Der Code dafür ist:
Code: Alles auswählen
con = mysql.connector.connect(host = "192.168.0.1"... usw..
Ich habe an anderer Stelle auch Cursor und die hießen immer dbcursor. Für Testzwecke habe ich den dann einfach mal db1cursor genannt, nur damit er einen eigenen Namen hat.
Sirius3 hat geschrieben: ↑Samstag 17. April 2021, 17:50
Warum holst Du Dir nur einen Eintrag aus der Tabelle (und das so umständlich), benutzt dann aber eine for-Schleife? Das ist verwirrend.
Ja, stimmt, das war historisch und ich hatte es noch nicht entfernt.
Sirius3 hat geschrieben: ↑Samstag 17. April 2021, 17:50
Benutze keine *-Select sondern gib Spaltennamen an, so kann es keinen Fehler mit Indizes geben.
Das Schließen des Cursors innerhalb der for-Schleife ist definitiv falsch.
Ok
Sirius3 hat geschrieben: ↑Samstag 17. April 2021, 17:50
Wenn Du nur die SMS-ID brauchst, warum holst Du dann noch so viel mehr Informationen. Und was fängt eine SMS-Senden-Funktion nur mit der ID an?
Ich hatte die Informationen während des Testens da mal rein geschrieben, um zu schauen, wo, was ankommt. Aber eigentlich gebe ich an die Funktion nur die id weiter, über die die Funktion sich selbst alle Daten aus der SQL Tabelle holt. Ich könnte die natürlich auch als globale Variablem weitergeben, zumal es ja einfach nur Nummer und Text ist.
Sirius3 hat geschrieben: ↑Samstag 17. April 2021, 17:50
Wenn Du Python2 benutzt, dann sind die Klammern bei print Unsinn.
Das ganze sieht also so aus:
Und von Löschen eines Datensatzes sehe ich hier nichts.
In dem Teil des Codes, den Du hier zeigst, ist kein Fehler.
Ich habe versucht auf die Schnelle mal auf Python 3 umzustellen, aber das geht nicht. Ich verwende Gammu und da ist die Python 3 Bibliothek nicht kompatibel. Deswegen funktioniert dein Code auch nicht, denn in Python 2 gibt es kein contextlib und Gammu funktioniert, zumindest nicht spontan auf Python 3.
Da da aber eine komplette Haussteuerung läuft, will ich da jetzt nix spontan uminstallieren und dann die nächsten Tage damit verbringen, alles wieder ans Laufen zu bringen.
Ich setze jetzt erst mal einen weiteren Rechner auf und werde das dann mal mit deinem Code und Python 3 versuchen. Vielleicht komme ich dann weiter..
Vielen Dank erstmal bis hierhin..
Ich melde mich die Tage, wenn ich soweit bin oder ich es ans Laufen bekommen habe wieder.
Bis dahin an alle liebe Grüße und bleibt gesund.
Ralf