Clock hängt auf einmal

Ulanzie Clock Anzeige TC001 für einzelne Daten.

Moderatoren: Ulrich, mr.big

Stephan Helfers
Beiträge: 37
Registriert: Di 7. Mai 2019, 17:50
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal

Re: Clock hängt auf einmal

Beitrag von Stephan Helfers »

Hallo,

ich habe jetzt die Anzeige mal deinstalliert, also Ordner gelöscht und Service entfernt.
Dazu habe ich als erstes den Service gestoppt, dann alle Ordner und Dateien gelöscht, aber auch den Service in den systemd Ordner entfernt.

Als Anleitung bin ich hiernach vorgegangen:

systemctl stop [servicename]
systemctl disable [servicename]
rm /etc/systemd/system/[servicename]
rm /etc/systemd/system/[servicename] # and symlinks that might be related
rm /usr/lib/systemd/system/[servicename]
rm /usr/lib/systemd/system/[servicename] # and symlinks that might be related
systemctl daemon-reload
systemctl reset-failed

Im Anschluß alles wieder nach der Anleitung von mr.big installiert.
Bislang läuft alles gut und ohne einfrieren der Clock.

Nochmals vielen Dank an die Unterstützung.

Gruß
Stephan

Stephan Helfers
Beiträge: 37
Registriert: Di 7. Mai 2019, 17:50
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal

Re: Clock hängt auf einmal

Beitrag von Stephan Helfers »

Hallo mr.big,

ich habe schon wieder ein Problem mit meiner Anzeige. Er versucht immer wieder sich zu connecten und zeigt folgenden Fehler bei manuellem Start an:


pi@solaranzeige:~/scripts/Ulanzi-Solaranzeige-Connector $ python3 ./ulanziconnect.py
settings.ini eingelesen
['07:36', '07:06', '16:35', '18:05']
True -> Solaranzeige URL verfügbar
True -> Ulanzi URL verfügbar
** -> Day_hell gesendet
16:33:49
['solaranzeige', 'PV', 'Gesamtleistung']
/usr/local/lib/python3.9/dist-packages/bs4/builder/__init__.py:545: XMLParsedAsHTMLWarning: It looks like you're parsing an XML document using an HTML parser. If this really is an HTML document (maybe it's XHTML?), you can ignore or filter this warning. If it's XML, you should know that using an XML parser will be more reliable. To parse this document as XML, make sure you have the lxml package installed, and pass the keyword argument `features="xml"` into the BeautifulSoup constructor.
warnings.warn(
0
16:33:59
['solaranzeige', 'Batterie', 'SOC']
0
Traceback (most recent call last):
File "/home/pi/scripts/Ulanzi-Solaranzeige-Connector/./ulanziconnect.py", line 167, in <module>
loop.loop(datenbank, measurement, datenpunkt, solaranzeige_url,ulanzi_url,app_life_time,app_show_time)
File "/home/pi/scripts/Ulanzi-Solaranzeige-Connector/loop.py", line 238, in loop
funktionen.ulanzi_senden(url, data)
UnboundLocalError: local variable 'data' referenced before assignment
pi@solaranzeige:~/scripts/Ulanzi-Solaranzeige-Connector $


Ich habe ein Update der Solaranzeige gemacht und weiter nichts.

Vielleicht hat einer eine Idee was dahinter steckt?

Gruß und Danke
Stephan

Benutzeravatar
mr.big
Beiträge: 543
Registriert: Mi 7. Sep 2022, 12:12
Wohnort: tief im Osten...
Hat sich bedankt: 11 Mal
Danksagung erhalten: 114 Mal

Re: Clock hängt auf einmal

Beitrag von mr.big »

Code: Alles auswählen

/usr/local/lib/python3.9/dist-packages/bs4/builder/__init__.py:545: XMLParsedAsHTMLWarning: It looks like you're parsing an XML document using an HTML parser. If this really is an HTML document (maybe it's XHTML?), you can ignore or filter this warning. If it's XML, you should know that using an XML parser will be more reliable. To parse this document as XML, make sure you have the lxml package installed, and pass the keyword argument `features="xml"` into the BeautifulSoup constructor.
warnings.warn(
das ist nur eine Warnung, hat keine Auswirkung auf die Funktion des Scriptes!

Code: Alles auswählen

UnboundLocalError: local variable 'data' referenced before assignment
das ist der eigentliche Fehler der es zum Abstürzen bringt! Muss ich mir mal anschauen, eventuell baue ich was ein um den Fehler abzufangen!

Kommt der Fehler bei jeden Start oder nur gelegentlich?

Hat noch jemand anderes das selbe Problem?

Benutzeravatar
mr.big
Beiträge: 543
Registriert: Mi 7. Sep 2022, 12:12
Wohnort: tief im Osten...
Hat sich bedankt: 11 Mal
Danksagung erhalten: 114 Mal

Re: Clock hängt auf einmal

Beitrag von mr.big »

Kann es leider bei mir nicht wirklich nachvollziehen!

Könnte ein Timingproblem sein!?
Kannst mal in der funktionen.py die Funktion für das "Senden an Ulanzi" ändern!

orginal aktuelle Version:

Code: Alles auswählen

# Funktion Daten an Ulanzi senden
def ulanzi_senden(url, data):
    response = requests.post(url, json=data)
    #print('#### Status Code: ' + str(response.status_code) + ' ####')
    #requests.exceptions.ConnectionError

# Ende Funktion
ändern in:

Code: Alles auswählen

def ulanzi_senden(url, data):
    """Funktion Daten an Ulanzi senden"""
    if 'data' in locals():
        try:
            response = requests.post(url, json=data)
            response.raise_for_status()
            #print("Erfolgreich gesendet: Statuscode =", response.status_code)
        except requests.exceptions.RequestException as e:
            print("Fehler beim Senden der Daten:", e)
    else:
        print(" ** -> 'data' nicht korrekt definiert.")
# Ende Funktion
Das ist der aktuelle Stand meiner "Entwicklerversion" + "Dein Fehler abfangen" ! ;)

Stephan Helfers
Beiträge: 37
Registriert: Di 7. Mai 2019, 17:50
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal

Re: Clock hängt auf einmal

Beitrag von Stephan Helfers »

mr.big hat geschrieben:
Sa 11. Nov 2023, 16:55

Code: Alles auswählen

/usr/local/lib/python3.9/dist-packages/bs4/builder/__init__.py:545: XMLParsedAsHTMLWarning: It looks like you're parsing an XML document using an HTML parser. If this really is an HTML document (maybe it's XHTML?), you can ignore or filter this warning. If it's XML, you should know that using an XML parser will be more reliable. To parse this document as XML, make sure you have the lxml package installed, and pass the keyword argument `features="xml"` into the BeautifulSoup constructor.
warnings.warn(
das ist nur eine Warnung, hat keine Auswirkung auf die Funktion des Scriptes!

Code: Alles auswählen

UnboundLocalError: local variable 'data' referenced before assignment
das ist der eigentliche Fehler der es zum Abstürzen bringt! Muss ich mir mal anschauen, eventuell baue ich was ein um den Fehler abzufangen!

Kommt der Fehler bei jeden Start oder nur gelegentlich?

Hat noch jemand anderes das selbe Problem?


Hallo mr.big,

vielen Dank für die schnelle Antwort.
Der Fehler kommt jedes mal wenn ich das Script über den python3 Befehl starte. Starte ich den Dienst, sehe ich den Fehler nur im Display als "Solaranzeige Connector Version 0.42" welches ständig durchläuft.

Es ist echt komisch????

Gruß
Stephan

Benutzeravatar
mr.big
Beiträge: 543
Registriert: Mi 7. Sep 2022, 12:12
Wohnort: tief im Osten...
Hat sich bedankt: 11 Mal
Danksagung erhalten: 114 Mal

Re: Clock hängt auf einmal

Beitrag von mr.big »

Ja, der Dienst versucht das Programm dann wieder neu zu starten! deshalb kommt nur das "Intro" als Schleife!

Mach mal bitte die Änderungen in der funktionen.py !
Falls es dann immer noch nicht läuft bitte Fehlermeldung posten!

Stephan Helfers
Beiträge: 37
Registriert: Di 7. Mai 2019, 17:50
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal

Re: Clock hängt auf einmal

Beitrag von Stephan Helfers »

Ich habe die Änderungen eingebaut und über python3 neu gestartet, das Ergebnis sieht so aus:

pi@solaranzeige:~/scripts/Ulanzi-Solaranzeige-Connector $ python3 ./ulanziconnect.py
settings.ini eingelesen
['07:36', '07:06', '16:35', '18:05']
True -> Solaranzeige URL verfügbar
True -> Ulanzi URL verfügbar
** -> Day_hell gesendet
18:49:22
['solaranzeige', 'PV', 'Gesamtleistung']
/usr/local/lib/python3.9/dist-packages/bs4/builder/__init__.py:545: XMLParsedAsHTMLWarning: It looks like you're parsing an XML document using an HTML parser. If this really is an HTML document (maybe it's XHTML?), you can ignore or filter this warning. If it's XML, you should know that using an XML parser will be more reliable. To parse this document as XML, make sure you have the lxml package installed, and pass the keyword argument `features="xml"` into the BeautifulSoup constructor.
warnings.warn(
0
18:49:33
['solaranzeige', 'Batterie', 'SOC']
0
Traceback (most recent call last):
File "/home/pi/scripts/Ulanzi-Solaranzeige-Connector/./ulanziconnect.py", line 167, in <module>
loop.loop(datenbank, measurement, datenpunkt, solaranzeige_url,ulanzi_url,app_life_time,app_show_time)
File "/home/pi/scripts/Ulanzi-Solaranzeige-Connector/loop.py", line 238, in loop
funktionen.ulanzi_senden(url, data)
UnboundLocalError: local variable 'data' referenced before assignment
pi@solaranzeige:~/scripts/Ulanzi-Solaranzeige-Connector $

Sieht irgendwie genauso aus.

Benutzeravatar
mr.big
Beiträge: 543
Registriert: Mi 7. Sep 2022, 12:12
Wohnort: tief im Osten...
Hat sich bedankt: 11 Mal
Danksagung erhalten: 114 Mal

Re: Clock hängt auf einmal

Beitrag von mr.big »

ändere mal in der settings.ini

Code: Alles auswählen

            solaranzeige,Batterie,SOC
in

Code: Alles auswählen

            ;solaranzeige,Batterie,SOC
was kommt da?

Stephan Helfers
Beiträge: 37
Registriert: Di 7. Mai 2019, 17:50
Hat sich bedankt: 2 Mal
Danksagung erhalten: 2 Mal

Re: Clock hängt auf einmal

Beitrag von Stephan Helfers »

Läuft, bis auf die Warnmeldung, ohne Probleme durch.

Benutzeravatar
mr.big
Beiträge: 543
Registriert: Mi 7. Sep 2022, 12:12
Wohnort: tief im Osten...
Hat sich bedankt: 11 Mal
Danksagung erhalten: 114 Mal

Re: Clock hängt auf einmal

Beitrag von mr.big »

Aber halt ohne "SOC" , also ist irgendwas im Block in der loop.py

Code: Alles auswählen

    ################################# Beginn Block Auswertung #################################
    ################################ "solaranzeige,Batterie,SOC" #################################

    elif (wert[0]) + "," + (wert[1]) + "," + (wert[2]) == "solaranzeige,Batterie,SOC":
        print(wert[3])

        url = ulanzi_url + "/api/custom?name="+(wert[1])+(wert[2])

       if int(wert[3]) >= 1 and int(wert[3]) <= 10:
            data = {
                "text": (wert[3]) + " %",
                "progress": (wert[3]),
  

falsch!?

Und ich sehe gerade dein "SOC" ist "0" !?
Wieso ist dein Akku auf "0"?

ändere mal bitte die Zeile

Code: Alles auswählen

        if int(wert[3]) >= 1 and int(wert[3]) <= 10:
in

Code: Alles auswählen

        if int(wert[3]) >= 0 and int(wert[3]) <= 10:
dann sollte auch mit aktiviertem (; in settings.ini wieder löschen!) "SOC" = 0 funktionieren!

Also eindeutig mein Fehler! Asche auf mein Haupt! :oops:

Antworten

Zurück zu „Ulanzi Anzeige TC001“