Erweiterungen/Beispiele für "Ulanzi"

Ulanzie Clock Anzeige TC001 für einzelne Daten.

Moderatoren: Ulrich, mr.big

Benutzeravatar
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"

Beitrag von mr.big »

:!:

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!

Benutzeravatar
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"

Beitrag von mr.big »

RaspiTemp.jpg
Anzeige der Temperatur des Raspberry Pi's. 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",
Bei mir schaut das aktuell so

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")
aus.

:!: 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 ##################################
Mit dieser Auswertung wird dann das entsprechende Icon, und in Abhängigkeit der Temperatur der Text in entsprechender Farbe dargestellt:
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!

Benutzeravatar
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"

Beitrag von mr.big »

Oh, Mist!

Schon wieder vergessen die Tonne rauszustellen!

Ist doch fast schon jeden passiert!?

Allen Ulanzi Nutzern kann geholfen werden! :D

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!

Benutzeravatar
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"

Beitrag von Ulrich »

mr.big hat geschrieben:
Sa 12. Aug 2023, 20:06
Oh, Mist!

Schon wieder vergessen die Tonne rauszustellen!

Ist doch fast schon jeden passiert!?

Allen Ulanzi Nutzern kann geholfen werden! :D

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!
Nur als kleine Hilfe für die "Anfänger", die den Ulanzi-Abfall-Reminder installieren möchten.
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]

Benutzeravatar
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"

Beitrag von mr.big »

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!

Benutzeravatar
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"

Beitrag von mr.big »

:!: 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.

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 ##################################
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!

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 ##################################
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!

Benutzeravatar
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"

Beitrag von mr.big »

.

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

P-Bar.jpg

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
            }
Nachher:

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
            }
Der Eintrag
"progress": (wert[3]),
aktiviert dabei die Anzeige mit unserem aktuellen SOC Wert.
Und mit
"progressc": [0, 255, 0],
könnt Ihr die Farbe des "Balkens" einstellen, die notwendigen RGB Werte bekommt Ihr dazu zB. von hier !

Natürlich kann die Progressbar auch bei allen anderen Werten die zwischen 0 und 100 liegen genutzt werden!

Have fun!

Benutzeravatar
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!

Beitrag von mr.big »

.

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
durch

Code: Alles auswählen

"repeat": 3
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.

Code: Alles auswählen

            "icon": 51301,
            "pushIcon": 2,
            "color": [252, 186, 3],
Möglich sind hier die Werte "0" "1" oder "2" . Mein Favorit ist "2" ! :D

Viel Spass beim probieren!

Benutzeravatar
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"

Beitrag von mr.big »

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:
Ohne Titel.jpg
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
in der settigs.ini schaut das dann so aus:

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
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":

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 ##################################
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!

Hexirexi
Beiträge: 30
Registriert: So 22. Okt 2023, 11:25

Re: Erweiterungen/Beispiele für "Ulanzi"

Beitrag von Hexirexi »

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?

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