Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Update: Nachdem ich gestern schon im Halbschlaf war... Neben der Tatsache dass viele DEV Plugins mit dem Master Core nichtmehr tun, glaube ich, dass Du nicht einfach das Plugins Verzeichnis anders benennen darfst...
Ich habe gerade den PR von Sisamiwe gemerged. leider haben wir jetzt ne reihe redundente funktionen. ich werde diese noch vereinheitlichen, ggf müssen dann meine "legacy" beispiele angepasst werden.
Ich habe eben gepullt und neu gestartet. Nun bekomme ich beim Start folgenden Fehler:
Code:
2022-12-04 16:15:13 ERROR logics.tankerkoenig In der Logik ist ein Fehler aufgetreten:
Logik 'tankerkoenig', Datei '/usr/local/shng_dev/plugins/tankerkoenig/__init__.py', Zeile 191
function get_petrol_stations(), Exception: '>' not supported between instances of 'str' and 'int'
Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
Ich habe die Zeile wie oben beschrieben eingetragen -> Keine Änderung
Dann bin ich auf die Suche gegangen. Ich habe vor der Exception Zeile den rad Wert ausgeben lassen.
Der stammt aus einer Logik. In der Logik, wird er auch als String angegeben (was früher keine Probleme machte), obwohl er in der Konfig-Doku als Float dokumentiert ist.
Nachdem ich in der Logik den Wert als numerischen Wert übergebe, ist der Fehler weg. Dafür habe ich einen neuen:
Code:
2022-12-04 20:04:05 ERROR logics.tankerkoenig In der Logik ist ein Fehler aufgetreten:
Logik 'tankerkoenig', Datei '/usr/local/shng_dev/logics/tankerkoenig.py', Zeile 27
Hauptroutine der Logik, Exception: 'TankerKoenig' object has no attribute 'get_petrol_station_detail'
Da scheint eine Funktion auf der Strecke geblieben zu sein.
Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
Msinn ich habe die funktion in get_petrol_station_full umbenannt (plugin.yaml sollte angepasst sein). Sisamiwe hatte eine 2te ohne Benzinpreise gebaut, die nutzt jetzt die "_full" und eleminiert danach die Benzinpreise. Kann auch "_full" wieder rausnehmen. Wie es gewünscht ist. Wobei mir grade kommt, dass ich einfach nen bool übergeben kann und den Originalnamen wieder verwenden kann.
PS: Der Check rad > 25 ist neu, daher ist das Plugin bisher mit deinem str nie auf die Nase geflogen.
Ich gehe/ging davon aus, dass das Plugin unverändert funktionieren sollte. Da ist das umbenennen einer Funktion eher ungünstig.
Bei dem stolpern über den String Wert: Public Functions eines Plugins sollten fehlertoleranter sein als normale Methoden eines Plugins und nicht unbedingt sofort eine Exception schmeißen.
Bei einem unpassenden Datentyp sollte entweder ein verständlicher Log Eintrag erfolgen oder (was hier einfacher ist) ein Casting auf den richtigen Typ vorgenommen werden.
Viele Grüße
Martin
There is no cloud. It's only someone else's computer.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar