Erweiterungen/Beispiele für "Ulanzi"
- mr.big
- Beiträge: 518
- Registriert: Mi 7. Sep 2022, 12:12
- Wohnort: tief im Osten...
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 100 Mal
Erweiterungen/Beispiele für "Ulanzi"
Da sich ja scheinbar doch schon "einige" ein Ulanzi zugelegt haben, und hoffentlich auch erfolgreich nutzen,
werde ich hier in loser Folge weitere Erweiterungen in Form von Beispielen vorstellen!
- mr.big
- Beiträge: 518
- Registriert: Mi 7. Sep 2022, 12:12
- Wohnort: tief im Osten...
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 100 Mal
Re: Erweiterungen/Beispiele "Raspberry Temperatur! Variante 1"
Voraussetzungen:
1. Die aktuelle Temperatur des Raspi muß in Euer Datenbank gespeichert und entsprechend aktualisiert werden.
Wie das geht erfahrt in diesem Dokument ab Seite 7 !
2. Auf der Ulanzi Lametric Icon "9718" herunterladen und speichern!
Habt Ihr das erledigt und die Temperatur wird in der Datenbank gespeichert geht es am "ulanziconnect.py" Script weiter.
Erweitert dazu den Eintrag in "werte =" um folgenden Eintrag
Code: Alles auswählen
"solaranzeige,Service,RaspiTemp",
Code: Alles auswählen
werte = ("solaranzeige,PV,Leistung",
"solaranzeige,Summen,Wh_GesamtHeute",
"Pylontech,Batterie,SOC",
"solaranzeige,aktuellesWetter,Temperatur",
"solaranzeige,Service,RaspiTemp",
"solaranzeige,Batterie,Strom",
"solaranzeige,Service,IntModus")
Die Reihenfolge der Einträge entspricht dabei auch der Reihenfolge der Anzeige!
Jetzt muß nur noch die entsprechende Abfrage/Auswertung ins Script eingefügt werden!
Code: Alles auswählen
######################## Beginn Block Auswertung Temperatur Raspi #########################
elif ((wert[0]) + "," + (wert[1]) + "," + (wert[2])) == "solaranzeige,Service,RaspiTemp":
print(wert[3])
url = ulanzi_url + "/api/custom?name=" + (wert[1]) + (wert[2])
if wert[3] <= str(35):
data = {
"text": "T:"+str(round(float(wert[3])))+"°C",
"icon": 9718,
"color": [0, 204, 0],
"duration": 4
}
elif wert[3] >= str(36) and wert[3] <= str(55):
data = {
"text": "T:" + str(round(float(wert[3]))) + "°C",
"icon": 9718,
"color": [255, 153, 0],
"duration": 4
}
elif wert[3] >= str(56):
data = {
"text": "T:" + str(round(float(wert[3]))) + "°C",
"icon": 9718,
"color": [255, 0, 0],
"duration": 4
}
funktionen.ulanzi_senden(url, data)
################################## Ende Block Auswertung ##################################
Temperatur bis 36°C in "grün", Temperatur >36°C und < 56°C in "gelb/orange" und höher als 56°C in "rot"!
Möchtet Ihr hier andere Temperaturgrenzen nutzen -> passt Euch die Werte entsprechend an!
Have Fun!
- mr.big
- Beiträge: 518
- Registriert: Mi 7. Sep 2022, 12:12
- Wohnort: tief im Osten...
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 100 Mal
Re: Erweiterungen/Beispiele für "Ulanzi". "Ulanzi-Abfall-Reminder"
Oh, Mist!
Schon wieder vergessen die Tonne rauszustellen!
Ist doch fast schon jeden passiert!?
Allen Ulanzi Nutzern kann geholfen werden!
Mal eine etwas "artfremde Erweiterung" für das Ulanzi habe ich hier für Euch Ulanzi-Abfall-Reminder!
Das ganze läuft als eigenständiges Script und hat ja auch nicht wirklich viel mit der "Solaranzeige" zu tun!
Have fun!
Schon wieder vergessen die Tonne rauszustellen!
Ist doch fast schon jeden passiert!?
Allen Ulanzi Nutzern kann geholfen werden!
Mal eine etwas "artfremde Erweiterung" für das Ulanzi habe ich hier für Euch Ulanzi-Abfall-Reminder!
Das ganze läuft als eigenständiges Script und hat ja auch nicht wirklich viel mit der "Solaranzeige" zu tun!
Have fun!
- Ulrich
- Administrator
- Beiträge: 5562
- Registriert: Sa 7. Nov 2015, 10:33
- Wohnort: Essen
- Hat sich bedankt: 125 Mal
- Danksagung erhalten: 835 Mal
Re: Erweiterungen/Beispiele für "Ulanzi". "Ulanzi-Abfall-Reminder"
Nur als kleine Hilfe für die "Anfänger", die den Ulanzi-Abfall-Reminder installieren möchten.mr.big hat geschrieben: ↑Sa 12. Aug 2023, 20:06Oh, Mist!
Schon wieder vergessen die Tonne rauszustellen!
Ist doch fast schon jeden passiert!?
Allen Ulanzi Nutzern kann geholfen werden!
Mal eine etwas "artfremde Erweiterung" für das Ulanzi habe ich hier für Euch Ulanzi-Abfall-Reminder!
Das ganze läuft als eigenständiges Script und hat ja auch nicht wirklich viel mit der "Solaranzeige" zu tun!
Have fun!
In der Solaranzeige fehlt das Python3 Paket "requests" und das Paket "pip3"
Beides muss erst nachinstalliert werden:
Code: Alles auswählen
apt update
apt install python3-pip
pip3 install requests
-----------------------------------------------------
Ulrich . . . . . . . . [Projekt Administrator]
Ulrich . . . . . . . . [Projekt Administrator]
- mr.big
- Beiträge: 518
- Registriert: Mi 7. Sep 2022, 12:12
- Wohnort: tief im Osten...
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 100 Mal
Re: Erweiterungen/Beispiele für "Ulanzi"
Da hast Du vollkommen Recht!
Es benötigt die selben Abhängigkeiten wie der Ulanzi-Solaranzeige-Konnektor!
Ich werde in den nächsten Tagen die Beschreibung, sobald Zeit ist noch etwas erweitern!
Es benötigt die selben Abhängigkeiten wie der Ulanzi-Solaranzeige-Konnektor!
Ich werde in den nächsten Tagen die Beschreibung, sobald Zeit ist noch etwas erweitern!
- mr.big
- Beiträge: 518
- Registriert: Mi 7. Sep 2022, 12:12
- Wohnort: tief im Osten...
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 100 Mal
Erweiterungen/Beispiele "Raspberry Temperatur! Variante 2"
Achtung! angepasst an/ab "Ulanzi-Solaranzeige-Connector 0.40"
Die Kontrolle der Temperatur des "Raspberry" ist mit Sicherheit nicht die dümmste Idee! Aber dafür gleich wie im Beispiel 1 eine eigene App im "loop" laufen zu lassen und damit die Anzeige der wirklich wichtigen Daten zu verzögern muß nicht sein!?
Wir haben da ja noch den Indikator 2 ungenutzt daliegen. Eigentlich würde es ja genügen eine Info zu bekommen wenn eine gewisse Grenztemperatur erreicht ist.
Eigentlich reicht das so schon! Bei Überschreitung von 50 Grad fängt der Indikator 2 an "hektisch in rot zu blinken" und man weiß das Handlungsbedarf besteht!
Hier noch eine etwas "verspieltere Variante" dazu!
Auch hier nutzen wir den Indikator 2 zur Anzeige. liegt die Temperatur des Raspi unter 35 Grad "fadet" der Indikator langsam in "grün" vor sich hin. Steigt die Temperatur über 35 Grad wird der Indikator "orange" und "fadet" etwas schneller um dann bei Überschreitung von 55 Grad "hektisch" in "rot" zu blinken. Die Temperatur-Schwellenwerte könnt Ihr Euch, wie natürlich auch die anderen Optionen, an Euren Bedarf anpassen!
Um das ganze nutzen zu können tausch einfach den ganzen Block "Auswertung - "solaranzeige,Service,RaspiTemp" " in der Datei "loop.py" aus und startet den Dienst neu!
Have fun!
Die Kontrolle der Temperatur des "Raspberry" ist mit Sicherheit nicht die dümmste Idee! Aber dafür gleich wie im Beispiel 1 eine eigene App im "loop" laufen zu lassen und damit die Anzeige der wirklich wichtigen Daten zu verzögern muß nicht sein!?
Wir haben da ja noch den Indikator 2 ungenutzt daliegen. Eigentlich würde es ja genügen eine Info zu bekommen wenn eine gewisse Grenztemperatur erreicht ist.
Code: Alles auswählen
################################# Beginn Block Auswertung #################################
############################# "solaranzeige,Service,RaspiTemp" ############################
elif ((wert[0]) + "," + (wert[1]) + "," + (wert[2])) == "solaranzeige,Service,RaspiTemp":
print(wert[3])
url = ulanzi_url + '/api/indicator2'
if wert[3] <= str(50):
"color": [255, 0, 0],
"blink": 200
#"fade": 5000
}
funktionen.ulanzi_senden(url, data)
################################## Ende Block Auswertung ##################################
Hier noch eine etwas "verspieltere Variante" dazu!
Code: Alles auswählen
################################# Beginn Block Auswertung #################################
############################# "solaranzeige,Service,RaspiTemp" ############################
elif ((wert[0]) + "," + (wert[1]) + "," + (wert[2])) == "solaranzeige,Service,RaspiTemp":
print(wert[3])
url = ulanzi_url + '/api/indicator2'
if wert[3] <= str(35):
data = {
"color": [0, 255, 0],
# "blink": 1200
"fade": 7000
}
elif wert[3] >= str(36) and wert[3] <= str(55):
data = {
"color": [252, 186, 3],
# "blink": 1200
"fade": 3000
}
elif wert[3] >= str(56):
data = {
"color": [255, 0, 0],
"blink": 200
#"fade": 5000
}
funktionen.ulanzi_senden(url, data)
################################## Ende Block Auswertung ##################################
Um das ganze nutzen zu können tausch einfach den ganzen Block "Auswertung - "solaranzeige,Service,RaspiTemp" " in der Datei "loop.py" aus und startet den Dienst neu!
Have fun!
- mr.big
- Beiträge: 518
- Registriert: Mi 7. Sep 2022, 12:12
- Wohnort: tief im Osten...
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 100 Mal
Re: Erweiterungen/Beispiele für "Ulanzi" "Progressbar"
.
Wer zB. seine "Anzeige des Ladezustandes der Batterie" noch etwas aufwerten möchte kann ganz einfach eine "Progressbar" hinzufügen!
Das schaut dann so aus
Die Einrichtung geht ganz einfach. Fügt dazu jeweils folgende 2 Zeilen in jeden (6 x !) der "data" Blöcke in der "solaranzeige,Batterie,SOC" Auswertung in der Datei loop.py ein
Vorher:
Nachher:
Der Eintrag
Und mit
Natürlich kann die Progressbar auch bei allen anderen Werten die zwischen 0 und 100 liegen genutzt werden!
Have fun!
Wer zB. seine "Anzeige des Ladezustandes der Batterie" noch etwas aufwerten möchte kann ganz einfach eine "Progressbar" hinzufügen!
Das schaut dann so aus
Die Einrichtung geht ganz einfach. Fügt dazu jeweils folgende 2 Zeilen in jeden (6 x !) der "data" Blöcke in der "solaranzeige,Batterie,SOC" Auswertung in der Datei loop.py ein
Code: Alles auswählen
"progress": (wert[3]),
"progressc": [0, 255, 0],
Vorher:
Code: Alles auswählen
data = {
"text": (wert[3]) + " %",
"lifetime": int(app_life_time),
"icon": 12832,
"color": [154, 250, 10],
"duration": app_show_time
}
Code: Alles auswählen
data = {
"text": (wert[3]) + " %",
"progress": (wert[3]),
"progressc": [0, 255, 0],
"lifetime": int(app_life_time),
"icon": 12832,
"color": [154, 250, 10],
"duration": app_show_time
}
aktiviert dabei die Anzeige mit unserem aktuellen SOC Wert."progress": (wert[3]),
Und mit
könnt Ihr die Farbe des "Balkens" einstellen, die notwendigen RGB Werte bekommt Ihr dazu zB. von hier !"progressc": [0, 255, 0],
Natürlich kann die Progressbar auch bei allen anderen Werten die zwischen 0 und 100 liegen genutzt werden!
Have fun!
- mr.big
- Beiträge: 518
- Registriert: Mi 7. Sep 2022, 12:12
- Wohnort: tief im Osten...
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 100 Mal
Re: Erweiterungen/Beispiele für "Ulanzi" Tips zur Optimierung!
.
Heute nur 2 kleine Tips zur "Optimierung" der Darstellung einiger Apps.
Hat man Apps wo ein längerer Text durchläuft wie zB. die "Anzeige der Aussentemperatur" kann es Sinn machen die "zeitliche" Länge
der Darstellung von"Anzeigezeit(duration)" auf "Durchläufe(repeat)" umzustellen.
Vorteil -> die Anzeige wird nicht mittendrin beendet sondern läuft sauber bis zum Ende durch!
Dazu einfach in der loop.py in der entsprechenden Auswertung den Eintrag durch ersetzen. "3" ist dabei die Anzahl der Wiederholungen und kann natürlich individuell festgelegt werden!
2.Tip "pushIcon"
Ebenfalls bei "durchlaufenden" Apps "mit Icon" kann man mit den Parameter die Darstellung der Icons noch ein bisschen "pushen".
Dazu einfach in der entsprechenden Auswertung den Parameter wie folgt einfügen.
Möglich sind hier die Werte "0" "1" oder "2" . Mein Favorit ist "2" !
Viel Spass beim probieren!
Heute nur 2 kleine Tips zur "Optimierung" der Darstellung einiger Apps.
Hat man Apps wo ein längerer Text durchläuft wie zB. die "Anzeige der Aussentemperatur" kann es Sinn machen die "zeitliche" Länge
der Darstellung von"Anzeigezeit(duration)" auf "Durchläufe(repeat)" umzustellen.
Vorteil -> die Anzeige wird nicht mittendrin beendet sondern läuft sauber bis zum Ende durch!
Dazu einfach in der loop.py in der entsprechenden Auswertung den Eintrag
Code: Alles auswählen
"duration": app_show_time
Code: Alles auswählen
"repeat": 3
2.Tip "pushIcon"
Ebenfalls bei "durchlaufenden" Apps "mit Icon" kann man mit den Parameter die Darstellung der Icons noch ein bisschen "pushen".
Dazu einfach in der entsprechenden Auswertung den Parameter wie folgt einfügen.
Code: Alles auswählen
"icon": 51301,
"pushIcon": 2,
"color": [252, 186, 3],
Viel Spass beim probieren!
- mr.big
- Beiträge: 518
- Registriert: Mi 7. Sep 2022, 12:12
- Wohnort: tief im Osten...
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 100 Mal
Re: Erweiterungen/Beispiele für "Ulanzi"
Heute möchte ich an Hand eines Beispiels zeigen wie man zusätzliche Werte auf der Ulanzi darstellen kann!
Es wird in der Solaranzeige Regler Nr. 70 verwendet.
Gewünscht ist die zusätzliche Darstellung der Werte "Einspeisung, Bezug und Hausverbrauch".
Wir werfen mal einen Blick auf die verfügbaren Daten in der Datenbank:
Hier sind unsere gewünschten Werte unter den Measurement "AC" zu finden!
Wir erweitern als erstes in der Datei "settings.ini" den Parameter "app-werte" um unsere gewünschten Daten.
Dabei setzt sich der jeweilige Parameter wie folgt zusammen "Datenbankname","Measurement","Wert"
Also unsere 3 Werte in der Datenbank "solaranzeige":
in der settigs.ini schaut das dann so aus:
Die Reihenfolge in der Liste ist die Reihenfolge in der die Werte dann auf dem Ulanzi angezeigt werden! Ihr könnt die Werte selbstverständlich auch in euer gewünschten Reihenfolge anordnen! Ab dem nächsten Neustart des Scriptes werden die gewünschten Werte mit aus der Datenbank geholt!
Um die Werte nun darstellen zu können müssen wir für jeden der Werte "eine Auswertung" in der Datei "loop.py" erstellen.
Ich zeige das hier am Beispiel für den Wert "Einspeisung":
Diesen Block dann bitte vor den anderen Auswertungen ab Zeile 12 in der "loop.py" einfügen.
Adäquat dazu jeweils einen Block für die anderen Werte anlegen ("solaranzeige,AC,Bezug" , "solaranzeige,AC,Hausverbrauch")!
Nun nur noch entsprechende "Icons" auswählen und auf die Ulanzi hochladen die entsprechenden Nummern in den "Blöcken" anpassen und einer Darstellung der Werte sollte nichts im Wege stehen!
Es gibt natürlich noch "zig Möglichkeiten" die Darstellung der Daten zu beeinflussen. Dazu verweise ich mal auf die Beschreibung der verschiedensten Parameter von AWTRIX light
Have Fun!
Es wird in der Solaranzeige Regler Nr. 70 verwendet.
Gewünscht ist die zusätzliche Darstellung der Werte "Einspeisung, Bezug und Hausverbrauch".
Wir werfen mal einen Blick auf die verfügbaren Daten in der Datenbank:
Hier sind unsere gewünschten Werte unter den Measurement "AC" zu finden!
Wir erweitern als erstes in der Datei "settings.ini" den Parameter "app-werte" um unsere gewünschten Daten.
Dabei setzt sich der jeweilige Parameter wie folgt zusammen "Datenbankname","Measurement","Wert"
Also unsere 3 Werte in der Datenbank "solaranzeige":
Code: Alles auswählen
solaranzeige,AC,Einspeisung
### Anzeige Einspeisung
solaranzeige,AC,Bezug
### Anzeige Bezug
solaranzeige,AC,Hausverbrauch
### Anzeige Hausverbrauch
Code: Alles auswählen
app_werte = solaranzeige,PV,Leistung
# Anzeige der PV-Leistung, (ben. Icon 27283)
solaranzeige,Batterie,SOC
# Anzeige SOC Akku, (ben. Icons 12832, 6359 - 6363)
solaranzeige,AC,Einspeisung
### Anzeige Einspeisung
solaranzeige,AC,Bezug
### Anzeige Bezug
solaranzeige,AC,Hausverbrauch
### Anzeige Hausverbrauch
;solaranzeige,Summen,Wh_GesamtHeute
# Anzeige des Tagesertrages# (ben. Icon 51301)
;solaranzeige,aktuellesWetter,Temperatur
# Anzeige der Aussen Temperatur
;solaranzeige,Service,RaspiTemp
# Anzeige der Temperatur Raspberry, (ben. Icon 9718)
;solaranzeige,Batterie,Strom
# wenn Akku lädt blinkt Indikator 1
;solaranzeige,Service,IntModus
# Anzeige Status Wechselrichter über Indikator 3
# blau -> Netzmode, grün -> Batteriemode, rot -> Fehlermode
Um die Werte nun darstellen zu können müssen wir für jeden der Werte "eine Auswertung" in der Datei "loop.py" erstellen.
Ich zeige das hier am Beispiel für den Wert "Einspeisung":
Code: Alles auswählen
################################# Beginn Block Auswertung #################################
################################ "solaranzeige,AC,Einspeisung" ###############################
if ((wert[0]) + "," + (wert[1]) + "," + (wert[2])) == "solaranzeige,AC,Einspeisung":
print(wert[3])
url = ulanzi_url + "/api/custom?name="+(wert[1])+(wert[2])
data = {
"text": str(int(float(wert[3]))) + " W", # darzustellender Wert/Text
"lifetime": int(app_life_time),
"icon": 27283, # darzustellendes Icon
"rainbow": bool(1),
"repeat": 2
}
funktionen.ulanzi_senden(url, data)
################################## Ende Block Auswertung ##################################
Adäquat dazu jeweils einen Block für die anderen Werte anlegen ("solaranzeige,AC,Bezug" , "solaranzeige,AC,Hausverbrauch")!
Nun nur noch entsprechende "Icons" auswählen und auf die Ulanzi hochladen die entsprechenden Nummern in den "Blöcken" anpassen und einer Darstellung der Werte sollte nichts im Wege stehen!
Es gibt natürlich noch "zig Möglichkeiten" die Darstellung der Daten zu beeinflussen. Dazu verweise ich mal auf die Beschreibung der verschiedensten Parameter von AWTRIX light
Have Fun!
Re: Erweiterungen/Beispiele für "Ulanzi"
Die anzeige funktioniert Grundsätzlich gut. Es wird auch der Wert aus der DB geholt.
Es fehlt aber der ,x Wert, also in der Datenbank steht 14,6 auf der Anzeige wird 14 wiedergegeben.
Was muss ich ändern damit 14,6 auf der Anzeige ausgegeben wird?
Es fehlt aber der ,x Wert, also in der Datenbank steht 14,6 auf der Anzeige wird 14 wiedergegeben.
Was muss ich ändern damit 14,6 auf der Anzeige ausgegeben wird?
Code: Alles auswählen
######################### solaranzeige,aktuellesWetter,Temperatur #########################
elif (wert[0]) + "," + (wert[1]) + "," + (wert[2]) == "solaranzeige,HM_Geraet1,Temperatur":
print(" ** Wert aus DB: "+wert[3])
url = ulanzi_url + "/api/custom?name=" + (wert[1]) + (wert[2])
data = {
"text": "Aussentemp.: " + str(round(float(wert[3]))) + "°C",
"lifetime": app_life_time,
"rainbow": bool(1)
}
if 'data' in locals():
funktionen.ulanzi_senden(url,data,app_scroll_duration,app_show_time)
else:
print(" ** -> 'data' wurde nicht korrekt definiert.")
################################## Ende Block Auswertung ##################################
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste