KNX Data Secure Unterstützung
für KNX Logger und KNX Busmonitor

KNX Diagnose Monitor, Import des ETS Projektes deutlich beschleunigt, Suche in der Navigation
Mehr Informationen dazu hier im Forum

Insider Version 6 zur 4.5 jetzt für alle Mitglieder des Insider Clubs installierbar
Alle Infos zum Update im Timberwolf Wiki

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

Informationen und Diskussionen über Logik-Engine und Logik-Editor
Forumsregeln
  • Denke bitte an aussagekräftige Titel und gebe dort auch die [Firmware] an. Wenn ETS oder CometVisu beteiligt sind, dann auch deren Version
  • Bitte mache vollständige Angaben zu Deinem Server, dessen ID und dem Online-Status in Deiner Signatur. Hilfreich ist oft auch die Beschreibung der angeschlossener Hardware sowie die verwendeten Protokolle
  • Beschreibe Dein Projekt und Dein Problem bitte vollständig. Achte bitte darauf, dass auf Screenshots die Statusleiste sichtbar ist
  • Bitte sei stets freundlich und wohlwollend, bleibe beim Thema und unterschreibe mit deinem Vornamen. Bitte lese alle Regeln, die Du hier findest: https://wiki.timberwolf.io/Forenregeln
Antworten

Ersteller
ho5enth1en
Reactions:
Beiträge: 8
Registriert: So Jul 02, 2023 10:23 pm
Wohnort: Göllheim
Hat sich bedankt: 7 Mal
Danksagung erhalten: 9 Mal

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

#1

Beitrag 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
Zuletzt geändert von StefanW am Mi Aug 14, 2024 1:03 am, insgesamt 3-mal geändert.
Solarteur auf dem Weg (privat) auf 100% Strom und Wärmeautarkie mit dem
TimberWolf 3500 :handgestures-thumbup:

blaubaerli
Reactions:
Beiträge: 2669
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 998 Mal
Danksagung erhalten: 787 Mal

#2

Beitrag von blaubaerli »

Hallo Torsten,

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

Danke :handgestures-salute:

Beste Grüße
Jens
timberwolf168(2600er)VPN offenReboot nach Vereinbarung
timberwolf1699(3500XL)VPN offenReboot jederzeit
wiregate1250
Bitte WIKI lesen.

Ersteller
ho5enth1en
Reactions:
Beiträge: 8
Registriert: So Jul 02, 2023 10:23 pm
Wohnort: Göllheim
Hat sich bedankt: 7 Mal
Danksagung erhalten: 9 Mal

#3

Beitrag 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
Zuletzt geändert von ho5enth1en am Mo Aug 12, 2024 4:29 pm, insgesamt 2-mal geändert.
Solarteur auf dem Weg (privat) auf 100% Strom und Wärmeautarkie mit dem
TimberWolf 3500 :handgestures-thumbup:

ms20de
Elaborated Networks
Elaborated Networks
Reactions:
Beiträge: 1267
Registriert: Sa Aug 11, 2018 9:14 pm
Hat sich bedankt: 358 Mal
Danksagung erhalten: 696 Mal

#4

Beitrag 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
[ Timberwolf Entwicklung ]

TWS 2400 ID:102 VPN offen, Reboot auf Nachfrage
TWS 3500 ID:695 VPN offen, Bitte kein Reboot ohne Absprache

Ersteller
ho5enth1en
Reactions:
Beiträge: 8
Registriert: So Jul 02, 2023 10:23 pm
Wohnort: Göllheim
Hat sich bedankt: 7 Mal
Danksagung erhalten: 9 Mal

#5

Beitrag 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.
Zuletzt geändert von ho5enth1en am Di Aug 13, 2024 7:33 pm, insgesamt 1-mal geändert.
Solarteur auf dem Weg (privat) auf 100% Strom und Wärmeautarkie mit dem
TimberWolf 3500 :handgestures-thumbup:

ms20de
Elaborated Networks
Elaborated Networks
Reactions:
Beiträge: 1267
Registriert: Sa Aug 11, 2018 9:14 pm
Hat sich bedankt: 358 Mal
Danksagung erhalten: 696 Mal

#6

Beitrag 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
Zuletzt geändert von ms20de am Di Aug 13, 2024 7:34 pm, insgesamt 3-mal geändert.
[ Timberwolf Entwicklung ]

TWS 2400 ID:102 VPN offen, Reboot auf Nachfrage
TWS 3500 ID:695 VPN offen, Bitte kein Reboot ohne Absprache

Ersteller
ho5enth1en
Reactions:
Beiträge: 8
Registriert: So Jul 02, 2023 10:23 pm
Wohnort: Göllheim
Hat sich bedankt: 7 Mal
Danksagung erhalten: 9 Mal

#7

Beitrag 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
Zuletzt geändert von ho5enth1en am Di Aug 13, 2024 8:17 pm, insgesamt 1-mal geändert.
Solarteur auf dem Weg (privat) auf 100% Strom und Wärmeautarkie mit dem
TimberWolf 3500 :handgestures-thumbup:

blaubaerli
Reactions:
Beiträge: 2669
Registriert: Sa Sep 15, 2018 10:26 am
Wohnort: Kerpen
Hat sich bedankt: 998 Mal
Danksagung erhalten: 787 Mal

#8

Beitrag 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
timberwolf168(2600er)VPN offenReboot nach Vereinbarung
timberwolf1699(3500XL)VPN offenReboot jederzeit
wiregate1250
Bitte WIKI lesen.
Antworten

Zurück zu „Logikengine & Logik-Editor“