Neubau für Ulanzi Uhr

Ulanzie Clock Anzeige TC001 für einzelne Daten.

Moderatoren: Ulrich, mr.big

Mikosch66
Beiträge: 25
Registriert: Do 10. Aug 2023, 19:35
Danksagung erhalten: 2 Mal

Re: Neubau für Ulanzi Uhr

Beitrag von Mikosch66 »

Habe gestern den Container neu gestartet, seitdem klappt die Config nur noch mit der IP des NAS, vorher hat es nur mit localhost funktioniert, allerdings bricht das Skript mit dem Fehler:

Code: Alles auswählen

root@takealug-solaranzeige-1:/home/pi/scripts/Ulanzi-Solaranzeige-Connector#  python3 ./ulanziconnect.py
settings.ini eingelesen
['08:06', '07:36', '15:52', '19:52']
True -> Solaranzeige URL verfügbar
True -> Ulanzi URL verfügbar
 ** -> Intro senden!
 ** -> Day_hell gesendet
 ** -> Astro-Zeiten geladen!
12:11:37
['solaranzeige', 'PV', 'Leistung']
Traceback (most recent call last):
  File "/home/pi/scripts/Ulanzi-Solaranzeige-Connector/./ulanziconnect.py", line 183, in <module>
    loop.loop(
  File "/home/pi/scripts/Ulanzi-Solaranzeige-Connector/loop.py", line 25, in loop
    if ((wert[0]) + "," + (wert[1]) + "," + (wert[2])) == "solaranzeige,PV,Leistung":
TypeError: 'NoneType' object is not subscriptable
Es wird ein Verzeichnis __pycache__ angelegt mit 2 Files: funktionen-cpython-39.pyc und loop.cpython-39.pyc

Habe die settings.ini, loop.py und ulanziconnect.py schon frisch von GitHUB geladen, um diese Fehlerquelle auszuschließen.
ich vermute, dass er evtl. nicht zu DB kommt?
Grüße,
Mikosch

7.47 kWP mit 18 JA Solar Jam54S3-415 MR
Fronius GEN24Plus 8.0 + BYD HVS 10,2 + Smart Meter TS65A-3

Solaranzeige auf Synology NAS (Docker), Multiregler Config.

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

Re: Neubau für Ulanzi Uhr

Beitrag von mr.big »

wenn nich mir so die Datenbankbeschreibung deines Reglers anschaue gibt es da kein "'solaranzeige', 'PV', 'Leistung'"
die aktuelle PV Leistung müsste dann unter

Code: Alles auswählen

solaranzeige,Summen,SummePowerPV
zu finden sein!?
Probier das mal bitte aus ob da "sinnvolle" Daten kommen

Mikosch66
Beiträge: 25
Registriert: Do 10. Aug 2023, 19:35
Danksagung erhalten: 2 Mal

Re: Neubau für Ulanzi Uhr

Beitrag von Mikosch66 »

Die Werte gibt es:

Code: Alles auswählen

> show measurements
name: measurements
name
----
AC
Batterie
Info
Meter
PV
Service
Statistik
Summen
Wetterprognose
aktuellesWetter

> select * from PV order by time desc limit 5
name: PV
time                Leistung        Leistung_String_1 Leistung_String_2 Spannung        Spannung_String_1 Spannung_String_2 Strom           Strom_String_1  Strom_String_2
----                --------        ----------------- ----------------- --------        ----------------- ----------------- -----           --------------  --------------
1702213690000000000 1044.0854492188 1044.8455359531   0                 551.43572998047 551.43572998047   0                 1.8947730064392 1.8947730064392 0

Hab aber jetzt mal die Konfig auf Summen,SummePowerPV angepasst, Werte in der DB gibt es auch, aber bleibt.

14:17:28
['solaranzeige', 'Summen', 'SummePowerPV']
Traceback (most recent call last):
File "/home/pi/scripts/Ulanzi-Solaranzeige-Connector/./ulanziconnect.py", line 183, in <module>
loop.loop(
File "/home/pi/scripts/Ulanzi-Solaranzeige-Connector/loop.py", line 25, in loop
if ((wert[0]) + "," + (wert[1]) + "," + (wert[2])) == "solaranzeige,Summen,SummePowerPV":
TypeError: 'NoneType' object is not subscriptable

Ich vermute, dass ich nicht zu DB komme, was ich mir aber nicht erklären kann.
Grüße,
Mikosch

7.47 kWP mit 18 JA Solar Jam54S3-415 MR
Fronius GEN24Plus 8.0 + BYD HVS 10,2 + Smart Meter TS65A-3

Solaranzeige auf Synology NAS (Docker), Multiregler Config.

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

Re: Neubau für Ulanzi Uhr

Beitrag von mr.big »

setze mal die beiden Zeilen vor Zeile 25 in die loop.py

Code: Alles auswählen

    print("*** Wert:", wert)
    print("*** Typ von Wert:", type(wert[3]))


sollte dann so aussehen

Code: Alles auswählen

 
 ......
    print("*** Wert:", wert)
    print("*** Typ von Wert:", type(wert[3]))

    if ((wert[0]) + "," + (wert[1]) + "," + (wert[2])) == ...........
Das gibt dir vor der eigentlichen Verarbeitung nochmal den wert und den typ aus (sollte eigentlich immer string sein!)

Mikosch66
Beiträge: 25
Registriert: Do 10. Aug 2023, 19:35
Danksagung erhalten: 2 Mal

Re: Neubau für Ulanzi Uhr

Beitrag von Mikosch66 »

Habe in settings.ini und in der loop.py die Abfrage wieder auf solaranzeige,PV,Leistung umgestellt und auch die beiden Zeilen eingetragen, mit der Anpassung auf print("*** Typ von Wert:", type(wert[2])) da wert[3] nicht da ist, hoffe dies war richtig.

Code: Alles auswählen

15:52:22
['solaranzeige', 'PV', 'Leistung']
*** Wert: None
Traceback (most recent call last):
  File "/home/pi/scripts/Ulanzi-Solaranzeige-Connector/./ulanziconnect.py", line 183, in <module>
    loop.loop(
  File "/home/pi/scripts/Ulanzi-Solaranzeige-Connector/loop.py", line 26, in loop
    print("*** Type von Wert:", type(wert[2]))
TypeError: 'NoneType' object is not subscriptable
Grüße,
Mikosch

7.47 kWP mit 18 JA Solar Jam54S3-415 MR
Fronius GEN24Plus 8.0 + BYD HVS 10,2 + Smart Meter TS65A-3

Solaranzeige auf Synology NAS (Docker), Multiregler Config.

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

Re: Neubau für Ulanzi Uhr

Beitrag von mr.big »

Code: Alles auswählen

'solaranzeige', 'PV', 'Leistung'
gibt es ja so nicht in deiner db, da muss eher wieder

Code: Alles auswählen

solaranzeige,Summen,SummePowerPV
rein

Mikosch66
Beiträge: 25
Registriert: Do 10. Aug 2023, 19:35
Danksagung erhalten: 2 Mal

Re: Neubau für Ulanzi Uhr

Beitrag von Mikosch66 »

Wie vorher geschrieben gibt es diese Werte in der DB, aber egal welche Werte ich abfrage, es wird nur das pycache angelegt und der Fehler ausgegeben.

Ich glaube, dass die API zu meiner Solaranlage nicht funktioniert und daher auch keine Werte kommen..
Grüße,
Mikosch

7.47 kWP mit 18 JA Solar Jam54S3-415 MR
Fronius GEN24Plus 8.0 + BYD HVS 10,2 + Smart Meter TS65A-3

Solaranzeige auf Synology NAS (Docker), Multiregler Config.

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

Re: Neubau für Ulanzi Uhr

Beitrag von mr.big »

die API kannst du ganz einfach testen

Code: Alles auswählen

 cd /var/www/html/api
 ./send.sh api_lesen.xml
Ergebnis, wenn ok, in etwa so:

<?xml version="1.0" encoding="UTF-8"?>
<solaranzeige>
<version>1.0</version>
<in_out>out</in_out>
<database name="solaranzeige">
<measurement name="Info">
<fieldname name="Datum">20.01.2021</fieldname>
<fieldname name="Firmware">1.19</fieldname>
<fieldname name="Objekt">DemoFinca</fieldname>
<fieldname name="Produkt">A052</fieldname>
</measurement>
</database>
</solaranzeige>

Mikosch66
Beiträge: 25
Registriert: Do 10. Aug 2023, 19:35
Danksagung erhalten: 2 Mal

Re: Neubau für Ulanzi Uhr

Beitrag von Mikosch66 »

Danke, hier kann der Fehler, dass solaranzeige.local nicht aufgelöst werden kann. Habe dies nun in die /etc/hosts eingetragen und auch in der settings.ini wieder localhost eingetragen.

Nun klappt es auch wieder mit der Verbindung und er werden Werte geliefert...

PV,Leistung wird geliefert, nun hängts mit der Batterie und dem Float

> select * from Batterie order by time limit 5
name: Batterie
time Max_Kapazitaet Spannung Status Status_Zellen Strom Temperatur
---- -------------- -------- ------ ------------- ----- ----------
1692378670000000000 7680 315.3 27.3 3 0 23
1692378730000000000 7680 315.3 27.3 3 0 23
1692378790000000000 7680 315.7 27.3 3 0.39594551789674 23
1692378851000000000 7680 316.5 27.4 3 0.39810426540284 23
1692378910000000000 7680 316.9 27.4 3 0.39760176711896 23

['solaranzeige', 'Batterie', 'Status']
*** Wert: ('solaranzeige', 'Batterie', 'Status', '63.4')
*** Type von Wert: <class 'str'>
** Wert aus DB: 63.4
Traceback (most recent call last):
File "/home/pi/scripts/Ulanzi-Solaranzeige-Connector/./ulanziconnect.py", line 183, in <module>
loop.loop(
File "/home/pi/scripts/Ulanzi-Solaranzeige-Connector/loop.py", line 182, in loop
if int(wert[3]) >= 0 and int(wert[3]) <= 10:
ValueError: invalid literal for int() with base 10: '63.4'
Grüße,
Mikosch

7.47 kWP mit 18 JA Solar Jam54S3-415 MR
Fronius GEN24Plus 8.0 + BYD HVS 10,2 + Smart Meter TS65A-3

Solaranzeige auf Synology NAS (Docker), Multiregler Config.

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

Re: Neubau für Ulanzi Uhr

Beitrag von mr.big »

ok, Fehler sitzt wie immer vor dem Monitor! Ich bin da von Ganzzahlen ausgegangen sind aber float bei dir!?
Bitte ändere in der loop.py in der entsprechenden Auswertung alle

Code: Alles auswählen

int(wert[3])
in

Code: Alles auswählen

int(float(wert[3]))
Dann sollte das eigentlich gehen!? :D

Antworten

Zurück zu „Ulanzi Anzeige TC001“