Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Ich habe bei mir über den EibPC eine Zufallsfunktion für die RGB LEDs realisiert.
Sieht so aus:
[Highlight=epc]
LEDsBadRot=0%
LEDsBadGruen=0%
LEDsBadBlau=0%
if event("LEDs Bad Anforderung-1/2/21") and ("LEDs Bad Anforderung-1/2/21"==EIN) then\\
LEDsBadRot=convert(random(255u32),0%);LEDsBadGruen =convert(random(255u32),0%);LEDsBadBlau=convert(ra ndom(255u32),0%)\\
endif
if event("LEDs Bad Anforderung-1/2/21") and ("LEDs Bad Anforderung-1/2/21"==EIN) then\\
write("Dimmwert LEDs Dusche rot-1/2/56",LEDsBadRot); write("Dimmwert LEDs Dusche grün-1/2/57",LEDsBadGruen); write("Dimmwert LEDs Dusche blau-1/2/58",LEDsBadBlau)\\
endif
if ("LEDs Bad Anforderung-1/2/21"==AUS) then write("Dimmwert LEDs Dusche rot-1/2/56",0); write("Dimmwert LEDs Dusche grün-1/2/57",0); write("Dimmwert LEDs Dusche blau-1/2/58",0) endif
if after("LEDs Bad Anforderung-1/2/21"==AUS,5000u64) then write("LEDs Dusche an/aus-1/2/12",AUS) endif
[/Highlight]Grüße,
Felix
was mich an dem Ansatz noch ein wenig "stört" ist, dass manchmal eben alle drei Farben geringen Werte bekommen und dadurch nicht nur die Farbe sondern auch die Gesamt-Helligkeit stark schwankt.
Ich habe schon überlegt den HS-Sequenzer von MatthiasS (im Downloadbereich) auf eibPC-Makro zu portieren. Aber ich kann diese komische Syntax des HS nicht lesen.
mal sehen ...
Visualisierung, Rule/Logic-Engine, Integrationsplattform mit openhab (Supportforum)
gibt es hier was neues? stehe mehr oder weniger vor der gleichen Situation und suche auch einen RGB Sequenzer aufbauend auf dem EIB PC.
Da gab es einen Code aus dem Wettbewerb - wir sind nur noch nicht dazugekommen, den zu veröffentlichen. Wenn gewünscht, kann ich den mal ungefiltert hier rein stellen.
Die nächsten 14 Tage haben hier einige Urlaub (ich inklusive).
hier der RGB-Sequenzer.
Müsste die aktuelle Version sein. Hoffe ich zumindest.
In ein Makro hab ich das immer noch nicht geschafft.
Viel zu viel Arbeit im Moment. Hoffentlich wird das ab 1.7. besser.
Code:
//---------------------------------------------------------------------------------------------------------------------
//--- RGB-Fader/Sequenzer ---------------------------------------------------------------------------------------------
//---------------------------------------------------------------------------------------------------------------------
RGBSequenz=AUS
RGBSqRepeat=AUS
RGBSqRed=$$
RGBSqRedPos=0u16
RGBSqGreen=$$
RGBSqGreenPos=0u16
RGBSqBlue=$$
RGBSqBluePos=0u16
RGBByteSize=3u16
RGBSqArray=$000001002002002003003004005006007008010011013016019023027032038045054064076091108128152181215255$
//Das Array kann beliebig verändert werden. Es müssen nur alle Werte mit 3 Stelle angegeben werden und der letzte Wert muss 255 sein
//Hier haben wir ein Array mit 32 Werten. Damit geht die Sequenz schon relativ sanft
// An dieser Stelle können die Gruppenandressen angepasst werden
// Schreiben auf den Bus
if change(RGBSqRed) then {
write("DALI-EVG1 (Wert)-12/1/0",convert(RGBSqRed,0u08))
} endif
//Grün
if change(RGBSqGreen) then {
write("DALI-EVG2 (Wert)-12/1/1",convert(RGBSqGreen,0u08))
} endif
//Blau
if change(RGBSqBlue) then {
write("DALI-EVG3 (Wert)-12/1/2",convert(RGBSqBlue,0u08))
} endif
// Millisekungen Timer bauen
// Der EIBPC kann das ja nicht, da geht das nur auf Sekunden genau...
// RGBSeqRepeat geht alle 600 ms auf EIn und triggert damit die nächste IF Anweisung
if RGBSequenz==EIN then RGBSqRepeat=EIN endif
if after(RGBSqRepeat==EIN,600u64) and RGBSequenz==EIN then RGBSqRepeat=AUS endif
if after(RGBSqRepeat==AUS,10u64) and RGBSequenz==EIN then RGBSqRepeat=EIN endif
if after(RGBSequenz==AUS,1000u64) then RGBSqRepeat=AUS endif
// Init bei Systemstart
if systemstart() then {
RGBSqRed=split(RGBSqArray,RGBSqRedPos*RGBByteSize,(RGBSqRedPos*RGBByteSize)+2u16);
RGBSqGreen=split(RGBSqArray,RGBSqGreenPos*RGBByteSize,(RGBSqGreenPos*RGBByteSize)+2u16);
RGBSqBlue=split(RGBSqArray,RGBSqBluePos*RGBByteSize,(RGBSqBluePos*RGBByteSize)+2u16);
} endif
//Das Array pro Farbe nach oben und unten in der Reiehnfolge Rot->Grün->Blau durchlaufen
if RGBSequenz==EIN and RGBSqRepeat==EIN then {
/* rot hochlaufen lassen; START!*/;
if ((convert(RGBSqRed,0u16)<255u16) and (convert(RGBSqBlue,0u16)==0u16) and (convert(RGBSqGreen,0u16)==0u16)) then {
RGBSqRedPos=RGBSqRedPos+1u16
} endif;
/* Wenn rot auf 255 ist, grün hochlaufen lassen*/;
if ((convert(RGBSqRed,0u16)==255u16) and (convert(RGBSqBlue,0u16)==0u16) and (convert(RGBSqGreen,0u16)<255u16)) then {
RGBSqGreenPos=RGBSqGreenPos+1u16
} endif;
/* Wenn grün auf 255 ist, rot wieder auf 0 laufen lassen*/;
if ((convert(RGBSqRed,0u16)>0u16) and (convert(RGBSqBlue,0u16)==0u16) and (convert(RGBSqGreen,0u16)==255u16)) then {
RGBSqRedPos=RGBSqRedPos-1u16
} endif;
/* Wenn rot auf 0 ist und grün noch auf 255, dann Blau auf 255 laufen lassen*/;
if ((convert(RGBSqRed,0u16)==0u16) and (convert(RGBSqBlue,0u16)<255u16) and (convert(RGBSqGreen,0u16)==255u16)) then {
RGBSqBluePos=RGBSqBluePos+1u16
} endif;
/* Wenn grün auf 255 ist und Blau auf 255 ist, dann grün wieder auf 0 laufen lassen*/;
if ((convert(RGBSqRed,0u16)==0u16) and (convert(RGBSqBlue,0u16)==255u16) and (convert(RGBSqGreen,0u16)>0u16)) then {
RGBSqGreenPos=RGBSqGreenPos-1u16
} endif;
/* Wenn grün wieder auf 0 ist, dann muss Rot wieder auf 255 laufen. Blau bleibt auf 255*/;
if ((convert(RGBSqRed,0u16)<255u16) and (convert(RGBSqBlue,0u16)==255u16) and (convert(RGBSqGreen,0u16)==0u16)) then {
RGBSqRedPos=RGBSqRedPos+1u16
} endif;
/*Wenn rot wieder auf 255 ist, muss blau wieder auf 0 laufen; grün ist auf 0*/;
if ((convert(RGBSqRed,0u16)==255u16) and (convert(RGBSqBlue,0u16)>0u16) and (convert(RGBSqGreen,0u16)==0u16)) then {
RGBSqBluePos=RGBSqBluePos-1u16
} endif;
} endif
// Bei Änderung einer Variable wird das Array neu ausgelesen
//Rot
if change(RGBSqRedPos) then {
RGBSqRed=split(RGBSqArray,RGBSqRedPos*RGBByteSize,(RGBSqRedPos*RGBByteSize)+2u16)
} endif
//Grün
if change(RGBSqGreenPos) then {
RGBSqGreen=split(RGBSqArray,RGBSqGreenPos*RGBByteSize,(RGBSqGreenPos*RGBByteSize)+2u16)
} endif
//Blau
if change(RGBSqBluePos) then {
RGBSqBlue=split(RGBSqArray,RGBSqBluePos*RGBByteSize,(RGBSqBluePos*RGBByteSize)+2u16)
} endif
//Zur Sicherheit, falls jemand doch 256 oder einen falschen Wert in das Array schreibt, dann gehen die Farben auf MAXIMUM 255
if (convert(RGBSqRed,0u16)>255u16) then RGBSqRed=$255$ endif
if (convert(RGBSqGreen,0u16)>255u16) then RGBSqGreen=$255$ endif
if (convert(RGBSqBlue,0u16)>255u16) then RGBSqBlue=$255$ endif
//--------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------------------
// RGB Fader Ende
mein EIB PC befindet sich zwar noch auf dem Postweg, aber ich habe in der Richtung auch eine Frage. Da ich noch Neuling auf dem Gebiet des EIB PC bin mag sein dass bereits eine Lösung existiert die ich nicht kenne.
Ich habe unter anderem ein Arcus Touch_IT, auf dem ist eine Farbskala abgebildet über die man jede gewünschte Farbe aufrufen kann. Der Touch sendet dann die entsprechenden RGB Dimmwerte ans Dali GW. Gibt es sowas auch für den EIB PC um es in der Visu anzeigen zu lassen und die RGB Streifen so zu steuern?
hier der RGB-Sequenzer.
Müsste die aktuelle Version sein. Hoffe ich zumindest.
In ein Makro hab ich das immer noch nicht geschafft.
Viel zu viel Arbeit im Moment. Hoffentlich wird das ab 1.7. besser.
vielen Dank! Ich nehme an der Code ist von Dir selbst entwickelt? Respekt! Da steckt ja ganz schön arbeit drin! Super, dass Du den hier einfach so "frei gibst"!
Werde gleich mal in den nächsten Tagen testen.....
Danke für die Blumen.
Mich hat das mal interessiert und als ich damit begonnen hatte, hatte ich noch etwas mehr Zeit bzw. einfach weniger Projektstress.
Der Wettbewerb hat dann dafür gesorgt, dass ich es auch fertig gemacht habe.
Es geht mit Sicherheit besser, schöner und eleganter. Aber ich bin im Moment zufrieden damit.
Und wenn ich dann auch mal wieder mehr Zeit hab, dann kann man immern och ne V2 nachreichen.
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar