Vorgegebene Farben an RGB-Kanäle ausgeben (Datenarray mit drei Feldern abbilden)
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
-
- Reactions:
- Beiträge: 217
- Registriert: Mo Aug 13, 2018 10:44 am
- Hat sich bedankt: 196 Mal
- Danksagung erhalten: 143 Mal
Vorgegebene Farben an RGB-Kanäle ausgeben (Datenarray mit drei Feldern abbilden)
Es ist möglich, dass ich hier mit dem Holzhammer vorgegangen bin. Die Logik funktioniert aber und das ist für mich die Hauptsache.
Aufgabenstellung war, eine Liste von definierten Farben (mit je einem R-, G- und B-Wert) bereitzuhalten und aus dieser Liste abhängig von einer am Eingang gewählten Zahl die richtigen R-, G- und B-Werte auszugeben.
Die Aufgabenstellung wird in prozeduralen Sprachen idR über Arrays gelöst. Im Logikeditor habe ich stattdessen drei Multiplexer verwendet. Um die Multiplexer bequem abzufüllen, habe ich die beiliegende Exceltabelle erstellt und darin die entsprechenden Zeilen erzeugt. Um die Zähler der Multiplexer bedienen zu können, musste ich - ebenfalls mit Hilfe von Excel - eine Liste von 530 Levels (als Konstanten) definieren. Möglicherweise gibt es aber einen sinnvolleren / einfacheren Weg.
Der Eingang kann entweder im Einzelsprung oder über eine Zähler-Logik (siehe viewtopic.php?f=65&t=2186 ) bedient werden (ich zeige bspw. im Wechsel von 12 Sekunden die Farben 33 bis 87 an).
Die Zahlenwerte der Farben finden sich in der beiliegenden PDF-Datei. Die Farbliste, resp. die Farbwerte stammen von hier: http://www.wackerart.de/rgbfarben.html
Weil der Code mehr als die hier erlaubten 60'000 Zeichen umfasst, lege ich ihn in einer Textdatei bei.
Gruss
Diego
Aufgabenstellung war, eine Liste von definierten Farben (mit je einem R-, G- und B-Wert) bereitzuhalten und aus dieser Liste abhängig von einer am Eingang gewählten Zahl die richtigen R-, G- und B-Werte auszugeben.
Die Aufgabenstellung wird in prozeduralen Sprachen idR über Arrays gelöst. Im Logikeditor habe ich stattdessen drei Multiplexer verwendet. Um die Multiplexer bequem abzufüllen, habe ich die beiliegende Exceltabelle erstellt und darin die entsprechenden Zeilen erzeugt. Um die Zähler der Multiplexer bedienen zu können, musste ich - ebenfalls mit Hilfe von Excel - eine Liste von 530 Levels (als Konstanten) definieren. Möglicherweise gibt es aber einen sinnvolleren / einfacheren Weg.
Der Eingang kann entweder im Einzelsprung oder über eine Zähler-Logik (siehe viewtopic.php?f=65&t=2186 ) bedient werden (ich zeige bspw. im Wechsel von 12 Sekunden die Farben 33 bis 87 an).
Die Zahlenwerte der Farben finden sich in der beiliegenden PDF-Datei. Die Farbliste, resp. die Farbwerte stammen von hier: http://www.wackerart.de/rgbfarben.html
Weil der Code mehr als die hier erlaubten 60'000 Zeichen umfasst, lege ich ihn in einer Textdatei bei.
Gruss
Diego
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
TW2600 / TW-ID: 87/ VPN offen, booten jederzeit erlaubt
TW2600 / TW-ID: 173/ VPN offen, booten nach Rücksprache
TW2600 / TW-ID: 173/ VPN offen, booten nach Rücksprache
-
- Reactions:
- Beiträge: 217
- Registriert: Mo Aug 13, 2018 10:44 am
- Hat sich bedankt: 196 Mal
- Danksagung erhalten: 143 Mal
Kleiner Denkfehler, nicht in der Logik, sondern im Farb-Array:
Vernünftigerweise sollte die Farbe "0" immer die RGB Werte 0//0/0 darstellen.
Auf diese Weise kann über den Eingangswert 0 der Stripe "ausgeschaltet" werden.
Kurzfristiger Workaround: Bei allen drei Multiplexern als oberste Zeile einfügen, mit der Konsequenz, dass sich die Farbwerte gemäss der obigen Farbtabelle um jeweils 1 erhöhen. Ich werde gelegentlich eine korrigierte Farbtabelle hochladen.
Vernünftigerweise sollte die Farbe "0" immer die RGB Werte 0//0/0 darstellen.
Auf diese Weise kann über den Eingangswert 0 der Stripe "ausgeschaltet" werden.
Kurzfristiger Workaround: Bei allen drei Multiplexern als oberste Zeile
Code: Alles auswählen
"$Z0",
TW2600 / TW-ID: 87/ VPN offen, booten jederzeit erlaubt
TW2600 / TW-ID: 173/ VPN offen, booten nach Rücksprache
TW2600 / TW-ID: 173/ VPN offen, booten nach Rücksprache
-
- Reactions:
- Beiträge: 105
- Registriert: Sa Mär 07, 2020 8:49 am
- Wohnort: Bleiberg-Nötsch (Kärnten)
- Hat sich bedankt: 86 Mal
- Danksagung erhalten: 74 Mal
Hallo Diego
Hätte da eine Frage zu deiner Umrechnung.
Die ausgegebenen Farbwerte R G B sind bei einer LED Strip Ansteuerung eigentlich nur Dimmwerte. Ich möchte einen DALI Dimmer damit ansteuern hab aber für die Helligkeit nur 0-100% und die Ausgänge bei dem Baustein sind 0-255.
Möchte die Farbe wiedergeben, Sättigung ist mir egal. Wenn ich jetzt die Werte von 0-255 auf 0-100 skaliere werden die Farben nicht stimmen.
Hast du eine Idee oder kann man deine Logik auf 0-100% umbauen. Ich bräuchte auch keine 400Farben, weil die sowieso nicht erkannt werden. Eigentlich würden 20-50 reichen.
lg
Jürgen
Hätte da eine Frage zu deiner Umrechnung.
Die ausgegebenen Farbwerte R G B sind bei einer LED Strip Ansteuerung eigentlich nur Dimmwerte. Ich möchte einen DALI Dimmer damit ansteuern hab aber für die Helligkeit nur 0-100% und die Ausgänge bei dem Baustein sind 0-255.
Möchte die Farbe wiedergeben, Sättigung ist mir egal. Wenn ich jetzt die Werte von 0-255 auf 0-100 skaliere werden die Farben nicht stimmen.
Hast du eine Idee oder kann man deine Logik auf 0-100% umbauen. Ich bräuchte auch keine 400Farben, weil die sowieso nicht erkannt werden. Eigentlich würden 20-50 reichen.
lg
Jürgen
TWS 950Q -> 3500XL ID:1424 VPN: aktiviert Reboot: (OK)
EFH-Neubau: KNX, 1-Wire, DALI, VPN, CV & in Zukunft Multiroom Sound mit raspberry pi, Ekey-Zugang, ModBus TCP & RTU, MQTT
EFH-Neubau: KNX, 1-Wire, DALI, VPN, CV & in Zukunft Multiroom Sound mit raspberry pi, Ekey-Zugang, ModBus TCP & RTU, MQTT
-
- Reactions:
- Beiträge: 217
- Registriert: Mo Aug 13, 2018 10:44 am
- Hat sich bedankt: 196 Mal
- Danksagung erhalten: 143 Mal
Hallo Jürgen @ztjuu
Es würde mich freuen, wenn Dein Wunsch umgesetzt werden könnte.
Leider muss ich Dir mitteilen, dass ich im Moment keine Zeit habe, hier einen sinnvollen Beitrag zu leisten, zumal ich davon ausgehe (zumindest habe ich Dich so verstanden), dass Du vor allem eine Farbtabelle suchst, die sich nicht nach den RGB-Werten, sondern nach den Dimmwerten richtet. Von diesem Thema verstehe ich nichts und habe - wie gesagt - leider auch keine Zeit, mich einzuarbeiten.
Von der Logik her dürfte es keine Rolle spielen, ob Du nun Werte auf einer 100er oder einer 255er-Skala übergibst.
Vielen Dank für Dein Verständnis und alles Gute bei der Recherche
Diego
Es würde mich freuen, wenn Dein Wunsch umgesetzt werden könnte.
Leider muss ich Dir mitteilen, dass ich im Moment keine Zeit habe, hier einen sinnvollen Beitrag zu leisten, zumal ich davon ausgehe (zumindest habe ich Dich so verstanden), dass Du vor allem eine Farbtabelle suchst, die sich nicht nach den RGB-Werten, sondern nach den Dimmwerten richtet. Von diesem Thema verstehe ich nichts und habe - wie gesagt - leider auch keine Zeit, mich einzuarbeiten.
Von der Logik her dürfte es keine Rolle spielen, ob Du nun Werte auf einer 100er oder einer 255er-Skala übergibst.
Vielen Dank für Dein Verständnis und alles Gute bei der Recherche
Diego
TW2600 / TW-ID: 87/ VPN offen, booten jederzeit erlaubt
TW2600 / TW-ID: 173/ VPN offen, booten nach Rücksprache
TW2600 / TW-ID: 173/ VPN offen, booten nach Rücksprache
-
- Reactions:
- Beiträge: 217
- Registriert: Mo Aug 13, 2018 10:44 am
- Hat sich bedankt: 196 Mal
- Danksagung erhalten: 143 Mal
Ergänzung für Dich Jürgen @ztjuu : Zufälligerweise bin ich auf diese Seite gestossen: https://www.rapidtables.com/convert/color/index.html , dort findet sich ein Umrechner, vor allem aber auch eine Farbtabelle. Vielleicht hilft Dir dies beim Umbau dieser Logik weiter.
Gruss
Diego
Gruss
Diego
TW2600 / TW-ID: 87/ VPN offen, booten jederzeit erlaubt
TW2600 / TW-ID: 173/ VPN offen, booten nach Rücksprache
TW2600 / TW-ID: 173/ VPN offen, booten nach Rücksprache
-
- Reactions:
- Beiträge: 105
- Registriert: Sa Mär 07, 2020 8:49 am
- Wohnort: Bleiberg-Nötsch (Kärnten)
- Hat sich bedankt: 86 Mal
- Danksagung erhalten: 74 Mal
Herzlichen Dank für die Infos Diego
TWS 950Q -> 3500XL ID:1424 VPN: aktiviert Reboot: (OK)
EFH-Neubau: KNX, 1-Wire, DALI, VPN, CV & in Zukunft Multiroom Sound mit raspberry pi, Ekey-Zugang, ModBus TCP & RTU, MQTT
EFH-Neubau: KNX, 1-Wire, DALI, VPN, CV & in Zukunft Multiroom Sound mit raspberry pi, Ekey-Zugang, ModBus TCP & RTU, MQTT
-
- Reactions:
- Beiträge: 105
- Registriert: Sa Mär 07, 2020 8:49 am
- Wohnort: Bleiberg-Nötsch (Kärnten)
- Hat sich bedankt: 86 Mal
- Danksagung erhalten: 74 Mal
Angelehnt an Diego seiner Version hab ich den Baustein etwas abgeändert.
Weil meine RGB Strips die Farben sowieso nicht darstellen konnten habe ich die Multiplexer verkleinert und so abgeändert, das nur der äußere Farbring (vom Colorchooser Widget in der CV) dargestellt wird.
Anhand eines int Einganges (DPT5.005) werden 24 Farben des tertiären Farbkreises dargestellt. Das besondere an diesem Farbkreis ist, dass ein RGB Wert immer "0" ist.
Wenn Freigabe =True werden die entsprechenden Wert an die Ausgänge gesendet. Diese können direkt mit den Dimmkanälen verknüpft werden. Ist keine Freigabe vorhanden wird "0" gesendet somit ist der RGB-Strip AUS.
[img]http://C:\Users\Public\Pictures\RGB.jpg[/img]
Das Bild funktioniert leider nicht?!?
Vielleicht kann den Baustein jemand Nutzen der auch viele RGB Strips mit billigen DALI Dimmern verwendet.
Weil meine RGB Strips die Farben sowieso nicht darstellen konnten habe ich die Multiplexer verkleinert und so abgeändert, das nur der äußere Farbring (vom Colorchooser Widget in der CV) dargestellt wird.
Anhand eines int Einganges (DPT5.005) werden 24 Farben des tertiären Farbkreises dargestellt. Das besondere an diesem Farbkreis ist, dass ein RGB Wert immer "0" ist.
Wenn Freigabe =True werden die entsprechenden Wert an die Ausgänge gesendet. Diese können direkt mit den Dimmkanälen verknüpft werden. Ist keine Freigabe vorhanden wird "0" gesendet somit ist der RGB-Strip AUS.
[img]http://C:\Users\Public\Pictures\RGB.jpg[/img]
Das Bild funktioniert leider nicht?!?
Code: Alles auswählen
/**
* Farbwerte des Tertiären Farbkreises anhand eines int Eingangs (0 bis 24) ausgeben
* Das besondere, es ist eine RGB immer 0 somit werden die Basisfarben dargestellt
* Int (Eingang 0 -> RGB Ausgang "0") somit ist der LED Strip AUS
*/
{
"_Meta": { // Optional
"Description": "",
"Version": "1.00",
"Icon": "" // format: "data:image/svg+xml;base64,ENCODED_FILE"
},
"Level": [
["$true","bool",true],
["$false","bool",false],
["$Freigabe","bool",false],
["$In","integer",0],
["$OutR","integer",0],
["$OutG","integer",0],
["$OutB","integer",0],
["$Z0", "integer",0],
["$Z64", "integer",64],
["$Z127", "integer",127],
["$Z128", "integer",128],
["$Z191", "integer",191],
["$Z255", "integer",255]
],
"Input": [
["Farbwahl","Nummer der Farbe, die ausgegeben werden soll","$In","c" ],
["Freigabe","Freigabe / Einschalten des Bausteins","$Freigabe","c"]
],
"Output": [
["Ausgang Rot","","$OutR","a"],
["Ausgang Grün","","$OutG","a"],
["Ausgang Blau","","$OutB","a"]
],
"Module": [
//Auswahl Rot
["Multiplexer",[
"$Z0",
"$Z255",
"$Z255",
"$Z255",
"$Z255",
"$Z255",
"$Z191",
"$Z128",
"$Z64",
"$Z0",
"$Z0",
"$Z0",
"$Z0",
"$Z0",
"$Z0",
"$Z0",
"$Z0",
"$Z0",
"$Z64",
"$Z127",
"$Z191",
"$Z255",
"$Z255",
"$Z255",
"$Z255"
],"$OutR","$In"],
//Auswahl Grün
["Multiplexer",[
"$Z0",
"$Z0",
"$Z64",
"$Z127",
"$Z191",
"$Z255",
"$Z255",
"$Z255",
"$Z255",
"$Z255",
"$Z255",
"$Z255",
"$Z255",
"$Z255",
"$Z191",
"$Z128",
"$Z64",
"$Z0",
"$Z0",
"$Z0",
"$Z0",
"$Z0",
"$Z0",
"$Z0",
"$Z0"
],"$OutG","$In"],
//Auswahl Blau
["Multiplexer",[
"$Z0",
"$Z0",
"$Z0",
"$Z0",
"$Z0",
"$Z0",
"$Z0",
"$Z0",
"$Z0",
"$Z0",
"$Z64",
"$Z127",
"$Z191",
"$Z255",
"$Z255",
"$Z255",
"$Z255",
"$Z255",
"$Z255",
"$Z255",
"$Z255",
"$Z255",
"$Z191",
"$Z128",
"$Z64"
],"$OutB","$In"],
//Wenn keine Freigabe dann "0" auf die Ausgänge schreiben
["Latch","$Z0","$OutR","-$Freigabe",0],
["Latch","$Z0","$OutG","-$Freigabe",0],
["Latch","$Z0","$OutB","-$Freigabe",0]
]
}
Zuletzt geändert von ztjuu am Mo Feb 22, 2021 9:55 am, insgesamt 4-mal geändert.
TWS 950Q -> 3500XL ID:1424 VPN: aktiviert Reboot: (OK)
EFH-Neubau: KNX, 1-Wire, DALI, VPN, CV & in Zukunft Multiroom Sound mit raspberry pi, Ekey-Zugang, ModBus TCP & RTU, MQTT
EFH-Neubau: KNX, 1-Wire, DALI, VPN, CV & in Zukunft Multiroom Sound mit raspberry pi, Ekey-Zugang, ModBus TCP & RTU, MQTT
-
- Elaborated Networks
- Reactions:
- Beiträge: 10452
- Registriert: So Aug 12, 2018 9:27 am
- Wohnort: Frauenneuharting
- Hat sich bedankt: 5149 Mal
- Danksagung erhalten: 8374 Mal
- Kontaktdaten:
Hallo,
lg
Stefan
Wir können leider nicht auf Deine Platte zugreifen. Bitte das Bild hochladen über den Reiter "Dateianhänge" und dann "Einfügen"
lg
Stefan
Stefan Werner
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de
Link zu Impressum und Datenschutzerklärung oben.
Product Owner für Timberwolf Server, 1-Wire und BlitzART
Bitte WIKI lesen. Allg. Support nur im Forum. Bitte keine PN
Zu Preisen, Lizenzen, Garantie, HW-Defekt an service at elabnet dot de
Link zu Impressum und Datenschutzerklärung oben.
-
- Reactions:
- Beiträge: 478
- Registriert: Fr Sep 14, 2018 5:03 pm
- Hat sich bedankt: 1507 Mal
- Danksagung erhalten: 290 Mal
Hallo @ztjuu
1. Text schreiben
2. Vollständiger Editor & Vorschau anklicken
3. den Reiter Dadeianhänge auswählen
4. auf Dateien hinzufügen klicken
5. Datei auswählen
6. in Beitrag anzeigen klicken
7. im Editierten Text Datei positionieren
mfg
Viel Erfolg
1. Text schreiben
2. Vollständiger Editor & Vorschau anklicken
3. den Reiter Dadeianhänge auswählen
4. auf Dateien hinzufügen klicken
5. Datei auswählen
6. in Beitrag anzeigen klicken
7. im Editierten Text Datei positionieren
mfg
Viel Erfolg
TW 2600_99 seit 1.1.2018 / VPN zu
-
- Reactions:
- Beiträge: 105
- Registriert: Sa Mär 07, 2020 8:49 am
- Wohnort: Bleiberg-Nötsch (Kärnten)
- Hat sich bedankt: 86 Mal
- Danksagung erhalten: 74 Mal
Danke für die Infos
Manchmal sieht man den Wald vor lauter Bäumen nicht.
Bin mir ziemlich sicher, dass ich beim letzten mal das Bild über http:\\.... eingefügt hab?!? Die Registerkarte Dateianhänge hab ich bis jetzt noch nicht bemerkt. War schon froh das ich das mit dem Code einfügen gefunden hab
Hier ist das Bild zum Baustein-Code
Manchmal sieht man den Wald vor lauter Bäumen nicht.
Bin mir ziemlich sicher, dass ich beim letzten mal das Bild über http:\\.... eingefügt hab?!? Die Registerkarte Dateianhänge hab ich bis jetzt noch nicht bemerkt. War schon froh das ich das mit dem Code einfügen gefunden hab
Hier ist das Bild zum Baustein-Code
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
TWS 950Q -> 3500XL ID:1424 VPN: aktiviert Reboot: (OK)
EFH-Neubau: KNX, 1-Wire, DALI, VPN, CV & in Zukunft Multiroom Sound mit raspberry pi, Ekey-Zugang, ModBus TCP & RTU, MQTT
EFH-Neubau: KNX, 1-Wire, DALI, VPN, CV & in Zukunft Multiroom Sound mit raspberry pi, Ekey-Zugang, ModBus TCP & RTU, MQTT