http mit Cuxd absetzen.

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

superuser002
Beiträge: 699
Registriert: 30.08.2013, 09:55
Hat sich bedankt: 1 Mal
Danksagung erhalten: 29 Mal

CuxD Dimmer Wert und RGB

Beitrag von superuser002 » 28.12.2022, 21:21

Hallo.
Das mit dem ein und aus funktioniert ja schon gut.

Jetzt möchte ich den Dimm und RGB wert übergeben, und zwar per Skript.
Ich habe unter CuxD einen RGB Dimmer unter (28) Exec angelegt.

Mein Skript bei Änderung.

Code: Alles auswählen

var source = dom.GetObject("CUX2801002:1.LEVEL").Value();
string url="http://192.168.21.239/win&A=" # source;
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State( "wget -q -O - '"#url#"'");
Ich gehe mal davon aus, dass das Skript so nicht richtig ist? Ich möchte gerne den Wert vom Dimmer
auslesen und an mein Wled Controller übergeben. RGB Werte später auch noch.

Gruß Holger

Benutzeravatar
Baxxy
Beiträge: 10646
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 596 Mal
Danksagung erhalten: 2180 Mal

Re: http mit Cuxd absetzen.

Beitrag von Baxxy » 28.12.2022, 22:51

superuser002 hat geschrieben:
28.12.2022, 21:21
Ich gehe mal davon aus, dass das Skript so nicht richtig ist?
Sieht jetzt auf den ersten Blick nicht falsch aus.*
Da du aber so komisch fragst wird es wohl nicht funktionieren? :wink:

Code: Alles auswählen

WriteLine("Source-Value: "# source);
Als zweite Zeile mal einfügen und gucken ob ein plausibler Wert rauskommt den du auch so an deinen Wled - Stripe übergeben kannst.

Geht's direkt im Browser?

* auf den zweiten Blick dann doch... siehe @Henke und @uwe111
Zuletzt geändert von Baxxy am 28.12.2022, 23:05, insgesamt 1-mal geändert.

Benutzeravatar
Henke
Beiträge: 1498
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 133 Mal
Danksagung erhalten: 302 Mal

Re: http mit Cuxd absetzen.

Beitrag von Henke » 28.12.2022, 22:59

var source = dom.GetObject("CUX2801002:1.LEVEL").Value();
vs.
var source = dom.GetObject("CUxD.CUX2801002:1.LEVEL").Value();

Eins davon sieht falsch aus.

Benutzeravatar
uwe111
Beiträge: 4807
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 239 Mal
Kontaktdaten:

Re: http mit Cuxd absetzen.

Beitrag von uwe111 » 28.12.2022, 23:04

Henke hat geschrieben:
28.12.2022, 22:59
var source = dom.GetObject("CUxD.CUX2801002:1.LEVEL").Value();
So ist es richtig.
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

Benutzeravatar
Henke
Beiträge: 1498
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 133 Mal
Danksagung erhalten: 302 Mal

Re: http mit Cuxd absetzen.

Beitrag von Henke » 28.12.2022, 23:30

Da habe ich wohl richtig geraten. 8)

superuser002
Beiträge: 699
Registriert: 30.08.2013, 09:55
Hat sich bedankt: 1 Mal
Danksagung erhalten: 29 Mal

Re: http mit Cuxd absetzen.

Beitrag von superuser002 » 29.12.2022, 09:54

Henke hat geschrieben:
28.12.2022, 23:30
Da habe ich wohl richtig geraten. 8)
Moin.
Ja hast Du. Danke für die Hilfe. Ich musste noch umrechnen, weil der Dimmer ja 0 bis 1 macht und ich 0 bis 255 brauche.
Mein Skript sieht jetzt so aus und funktioniert so weit. Geht wahrscheinlich auch kompakter?

Code: Alles auswählen

var source = dom.GetObject("CUxD.CUX2801002:1.LEVEL").Value();
var wert = source * 255 ;
string url="http://192.168.21.239/win&A=" # wert;
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State( "wget -q -O - '"#url#"'");
Welcher Datenpunkt ist jetzt für den RGB Wert zuständig? Den möchte ich auch übermitteln.

Den Datenpunkt habe ich gefunden ( var wert = dom.GetObject("CUxD.CUX2801002:1.RGBW").Value();)
Leider kommt da kein vernüftiger Wert heraus. Ausgabe ist rgb(212,32,32,255)
Kann ich das irgendwie umrechnen? Zu einem Wert, den ich übergeben kann?

Das steht in WLED zur Verfügung
Screenshot 2022-12-29 104035.png
Screenshot 2022-12-29 104002.png

Gruß Holger

Benutzeravatar
uwe111
Beiträge: 4807
Registriert: 26.02.2011, 22:22
Hat sich bedankt: 3 Mal
Danksagung erhalten: 239 Mal
Kontaktdaten:

Re: http mit Cuxd absetzen.

Beitrag von uwe111 » 29.12.2022, 12:00

Hallo Holger,
superuser002 hat geschrieben:
29.12.2022, 09:54
Ich musste noch umrechnen, weil der Dimmer ja 0 bis 1 macht und ich 0 bis 255 brauche.
Nein, musst Du nicht wenn Du MAX_VAL auf 255 setzt und anstelle von LEVEL den SET_STATE Datenpunkt abfragst.
superuser002 hat geschrieben:
29.12.2022, 09:54
Welcher Datenpunkt ist jetzt für den RGB Wert zuständig?
Ab Seite 105 der aktuellen CUxD Doku habe ich alle Datenpunkte beschrieben.
superuser002 hat geschrieben:
29.12.2022, 09:54
Den Datenpunkt habe ich gefunden ( var wert = dom.GetObject("CUxD.CUX2801002:1.RGBW").Value();)
Leider kommt da kein vernüftiger Wert heraus. Ausgabe ist rgb(212,32,32,255)
Kann ich das irgendwie umrechnen?
rgb(RRR,GGG,BBB,255) entspricht den gesuchten RGB Werten nach HM-Standard. Allerdings musst Du den Wertebereich der einzelnen Werte eventuell noch von 0..255 auf 0..100 umrechnen, bevor Du die Werte für Deine WLED-Funktionen verwenden kannst.

Viele Grüße

Uwe
Alle sagten: Das geht nicht. Dann kam einer, der wußte das nicht und hat's einfach gemacht.
SPENDEN :wink: Download: CUxD 2.11, SSH KeyDir

superuser002
Beiträge: 699
Registriert: 30.08.2013, 09:55
Hat sich bedankt: 1 Mal
Danksagung erhalten: 29 Mal

Re: http mit Cuxd absetzen.

Beitrag von superuser002 » 29.12.2022, 13:47

uwe111 hat geschrieben:
29.12.2022, 12:00
Hallo Holger,
superuser002 hat geschrieben:
29.12.2022, 09:54
Ich musste noch umrechnen, weil der Dimmer ja 0 bis 1 macht und ich 0 bis 255 brauche.
Nein, musst Du nicht wenn Du MAX_VAL auf 255 setzt und anstelle von LEVEL den SET_STATE Datenpunkt abfragst.
superuser002 hat geschrieben:
29.12.2022, 09:54
Welcher Datenpunkt ist jetzt für den RGB Wert zuständig?
Ab Seite 105 der aktuellen CUxD Doku habe ich alle Datenpunkte beschrieben.
superuser002 hat geschrieben:
29.12.2022, 09:54
Den Datenpunkt habe ich gefunden ( var wert = dom.GetObject("CUxD.CUX2801002:1.RGBW").Value();)
Leider kommt da kein vernüftiger Wert heraus. Ausgabe ist rgb(212,32,32,255)
Kann ich das irgendwie umrechnen?
rgb(RRR,GGG,BBB,255) entspricht den gesuchten RGB Werten nach HM-Standard. Allerdings musst Du den Wertebereich der einzelnen Werte eventuell noch von 0..255 auf 0..100 umrechnen, bevor Du die Werte für Deine WLED-Funktionen verwenden kannst.

Viele Grüße

Uwe
Moin.
Aber ich muss die Werte ja irgendwie aus den klammern befreien 😂. Es wird ja kein zahlen Wert übermittelt, sondern der Wert in klammern. Oder sehe ich das falsch? ich könnte die RGB Werte auch einzeln übermitteln. Bloß ich muss die einzelnen Werte ja aus der Klammer aus lesen und dann übermitteln. Oder denke ich da falsch.

superuser002
Beiträge: 699
Registriert: 30.08.2013, 09:55
Hat sich bedankt: 1 Mal
Danksagung erhalten: 29 Mal

Re: http mit Cuxd absetzen.

Beitrag von superuser002 » 29.12.2022, 16:55

Hallo.
Ich habe es mit abschneiden versucht, aber leider scheitert es daran, dass die nach Komma stellen immer verschieden sind.

Code: Alles auswählen

var wert = dom.GetObject("CUxD.CUX2801002:1.RGBW").Value();
var RGB = wert;
var R = RGB.Substr(4, 3);
var G = RGB.Substr(7, 3);
var B = RGB.Substr(11, 3);
WriteLine("Source-Value: "# wert);
WriteLine("Source-Value R: "# R);
WriteLine("Source-Value G: "# G);
WriteLine("Source-Value B: "# B);
dom.GetObject("SRGB").State(wert);
Siehe R, da ist jetzt ein "," mit drinnen.

Source-Value: rgb(64,120,159,255)
Source-Value R: 64,
Source-Value G: 120
Source-Value B: 159

Benutzeravatar
Henke
Beiträge: 1498
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 133 Mal
Danksagung erhalten: 302 Mal

Re: http mit Cuxd absetzen.

Beitrag von Henke » 29.12.2022, 17:38

Klar, wenn du mit fixer Länge schneidest.

Code: Alles auswählen

var R = RGB.StrValueByIndex( ",", 0);
var G = RGB.StrValueByIndex( ",", 1);
var B = RGB.StrValueByIndex( ",", 2);

Antworten

Zurück zu „CUxD“