Seite 1 von 1

[V4.0.1] Float-Eingang: wertabhängig versch. Stringausgangswerte für Ulanzi Pixeluhr ausgeben?

Verfasst: Sa Jul 27, 2024 6:40 pm
von ho5enth1en
Hallo,
ich bin in Sachen Logic-Engine noch ziemlich neu und benötige Denkanstöße und/oder Codeschnipsel.

Die Aufgabenstellung: Zu Icon-Steuerung einer ulanzi tc001sollen die Icon in Abhängigkeit des Wertes angepasst werten. Hierzu benötige ich einen fest definierten Stringwert (Name des Icon) als Ausgabewert zur Weiterverarbeitung. Aktuell bekomme ich nur ein festes icon hin :doh:

- Ich habe einen SOC-Wert 0-100% sowie einen Leistungswert 0-15000W Akku entladen.
- Bei entladen des Akkus (Wert x größer 0) soll ein String "A1" augegeben werden
- Bei Akkustand 0-15 soll ein String "A2" augegeben werden
- Bei Akkustand 16-25 soll ein String "A3" augegeben werden
- Bei Akkustand 26-49 soll ein String "A4" augegeben werden,
- Bei Akkustand 50-74 soll ein String "A5" augegeben werden,
- Bei Akkustand 75-98 soll ein String "A6" augegeben werden,
- Bei Akkustand 99-100 soll ein String "A7" augegeben werden

ein weiteres Problem welches ich habe:
wie kann ich ein % Zeichen anzeigen ohne "".
Bild


hat hier schon mal jemand sowas realisiert oder kann mir weiterhelfen.

Gruß
Torsten
Bild
Bild
Bild

Re: Float-Eingang wertabhängig in verschiendene festgelegte Stringwerte ausgeben?

Verfasst: Sa Jul 27, 2024 7:11 pm
von blaubaerli
Hallo Torsten,

bitte füge doch im Betreff noch die aktuelle Version deines TWS hinzu.

Danke :handgestures-salute:

Beste Grüße
Jens

Re: [V4.0.1] Float-Eingang: wertabhängig verschiendene festgelegte Stringausgangswerte ausgeben?

Verfasst: Mo Aug 12, 2024 4:12 pm
von ho5enth1en
so, ich habe mein Problem teilweise mit einem ganz neuen Ansatz mit Hilfe der fertigen Logikmodule gelöst:

je nach Zustand (Akkustand, Temperatur, Tageszeit) werden die Icons entsprechend ausgetauscht
Das einzige Problem welches ich immer noch habe: Ich bekomme kein % Zeichen in den Ausgabestring. :angry-banghead:
HTML und Hex Code habe ich schon probiert, da bekomme ich es zwar in der Logik korrekt angezeigt, aber die Werte werden nicht wie Angezeigt sondern wie eingegeben weitergeleitet.
Bild Bild :crying-yellow: :confusion-helpsos:


Um schon mal die Frage "warum hast du es nicht so oder so gemacht?" vorab zu beantworten: Sorry bin bei den Logiken absoluter Neuling, weis es nicht besser aber lerne gerne dazu :D "

Bild

die Lösung für die unterschiedlichen Icons:
- es werden 3 verknüpfte Logiken benötigt
1. Logik welche den Eingangswert als String weiterreicht an den MQTT Broker weiterreicht = "Logik String Format float"
2. Logik welche den Dateinamen des Icons (Logik 3) als String weiterreicht = Logikmodul "String Format float"
3. Logik für Hilfsrechnung: aus Eingangszahlenwert werden über eine Formel die numerischen Dateinamen der Icons erzeugt und an Logik 2 weitergereicht. = Logikmodul "freie Formel"

1. den Akkustand als String an den MQTT Broker senden:

Bild
-------------

2. das Icon (aus der Hilfsrechnung) an den MQTT - Broker senden (bei festen Icon ist keine Hilfsrechnung notwendig, Formel = Nummer des Icons.

Bild
-------------

3. dynamisches Icon:
- Meine Überlegung: pro Zustand ein Icon, jedes Icon als Name einen fest definierten, rechnerisch möglichen Zahlenwert.
In meinem Fall:
- Eingangswerte: WERT: SOC Level in 0 bis 100, WERT: BMS-Status 1 (charge), 2 (discharge), 4 (standby)
- Ausgabe: alle 10% ein Wert, nur ganze Zahlen, Werte immer abrunden, freie Formel

X1=Ladestand X2=BMS Status
rint(X1/10-0.5)*(X2+10)

-0,5 zum abrunden, +10 auf Grund Zahlengleichheit bei Laden/Entladen

Bsp:
100 % Akkustand / Standby = 100/10 x (4+10) = 140 (Icon Name: 140.ico)
98 % Akkustand / entladen = 98/10 = 9,8 abgerundet 9; 9 x (2+10) = 108 (Icon Name: 108.ico)
97% Akkustand / laden = 97/10 = 9,7 abgerundet 9; 9 x (1+10) = 99 (Icon Name: 99.ico)

so müssen bei 0-100 % 18 Icons + 2 (je 1 für 100% und einen für 0 (Warnmeldung Akku leer) erstellt werden.
Bild
-------------

festes Icon:
Bild

Tag/Nacht Berechnung wenn Eingangswert 0 ist:

Beispiel Tag / Nacht an Hand der PV Produktion:
X1=PV DC Modulleistung
X2=PV DC Modulleistung (also wie X1)
Formel: (X2/(X1-1))+100
Ergebnis bei Eingangswerte über 0W = 101 (also Icon 101)
Ergebnis bei Eingangswerte über 0W = 100 (also Icon 100)

Bild


Gruß
Torsten

Re: [V4.0.1] Float-Eingang: wertabhängig verschiendene festgelegte Stringausgangswerte ausgeben?

Verfasst: Di Aug 13, 2024 2:16 pm
von ms20de
Hallo Torsten,
ho5enth1en hat geschrieben: Mo Aug 12, 2024 4:12 pm Das einzige Problem welches ich immer noch habe: Ich bekomme kein % Zeichen in den Ausgabestring. :angry-banghead:
HTML und Hex Code habe ich schon probiert, da bekomme ich es zwar in der Logik korrekt angezeigt, aber die Werte werden nicht wie Angezeigt sondern wie eingegeben weitergeleitet.
Für Prozentzeichen %% eingeben, es steht bei den Modulbausteine für Custom-Logiken noch etwas versteckt im Wiki:
https://elabnet.atlassian.net/wiki/x/AYDycg

Verbesserung des Wikis ist in Arbeit.

Viele Grüße,
Matthias

Re: [V4.0.1] Float-Eingang: wertabhängig verschiendene festgelegte Stringausgangswerte ausgeben?

Verfasst: Di Aug 13, 2024 6:51 pm
von ho5enth1en
Hallo Matthias,
danke für den Link, ist genau das was ich gesucht habe :happy-wavemulticolor:

Leider funktioniert es nicht. :crying-yellow:

Im Input bekomme ich zwar 100 % angezeigt, im Output-String bleiben es aber nur 100 ohne Prozent. Setze alle anderen Einheiten funktionieren, nur % bekomme ich nur angezeigt wenn ich noch irgendetwas hinter das Prozentzeichen setze. :confusion-scratchheadyellow:

Bild

Bild

Gruß
Torsten

kleiner Nachtrag:
ich habe jetzt eine für mich vorerst akzeptable Lösung gefunden, sicher nicht im Sinne des Timberwolf-Erfinders, aber mit der Pixelanzeige funktioniert es.
Ich habe mir von der Webseite https://www.toptal.com/designers/htmlarrows/symbols/ mit copy & paste gemopst und dabei festgestellt das die Ulanzi das Symbol vollkommen ignoriert. Dann mit %℅ getestet und das Prozentzeichen wird mir angezeigt (100%℅ ) werden allerdings als String gesendet.

Re: [V4.0.1] Float-Eingang: wertabhängig verschiendene festgelegte Stringausgangswerte ausgeben?

Verfasst: Di Aug 13, 2024 7:21 pm
von ms20de
Hallo Torsten,

ich glaube du hast dich mit den zwei Eingängen verwirren lassen. Du willst doch nur % an die Zahl anhängen, oder?

Bild

1) Wird der in die Logik gesendet rein (Links dann mit Objekt Verbunden)
2) Das ist die Formatierung, da musst du nicht nochmal den Wert verbinden, sondern Eingangsfunktion auf Parameter stellen.

Bei 2 ist es wichtig ob du Nachkommastellen hast und das Modul mit Float verwendet hast, dann brauchst du was mit %f
Wenn du nur eine ganze Zahl hast, dann das Modul mit Int dann %d, wenn du beide vertauscht dann kommen komische Zahlen raus.

In der Float Version habe ich %.1f %% in den Parameter bei 2 geschrieben.

Viele Grüße,
Matthias

EDIT: Klarer formuliert

Re: [V4.0.1] Float-Eingang: wertabhängig verschiendene festgelegte Stringausgangswerte ausgeben?

Verfasst: Di Aug 13, 2024 8:16 pm
von ho5enth1en
vielen Dank, das wars, habe den Input jetzt auch auf Input gelegt (klingt ja auch irgendwie logisch) :dance:
mit %d habe ich bei 100prozent zwar unlogische Werte angezeigt bekommen aber mit %.0f%% läuft es perfekt :handgestures-thumbupright:

Gruß
Torsten

Re: [V4.0.1] Float-Eingang: wertabhängig versch. Stringausgangswerte für Ulanzi Pixeluhr ausgeben?

Verfasst: Mi Aug 14, 2024 7:30 pm
von blaubaerli
Hallo Torsten,

bitte entferne die TWS-Versionsinfo aus deiner Signatur. Die wird bei jedem deiner Posts eingeblendet, unabhängig vom Alter des Posts und vom Softwarestand zu dessen Entstehungszeitpunkt.

Danke :handgestures-salute:

Beste Grüße
Jens