FS20 TC8 und LW12

Begonnen von Pythonf, 05 September 2014, 22:09:45

Vorheriges Thema - Nächstes Thema

Pythonf

Hallo Forum,

Ich möchte meinen TC8 als Steuerung für meinen LW12 RGB LED Controller verwenden.
Der Controller bietet verschiedene Readings. Interessant sind für meine Idee der Ansteuerung "BRIGHTNESS""HUE" und "SATURATION".
Ich möchte über das erste Tastenpaar des TC8 Die Helligkeit der LEDs steuern. Kurzerklick auf Tasterpaar1 soll ein set LED on/off auslösen was ich mit $EVENT auch einfach hinbekommen habe.
Doch weiter bin ich nicht gekommen :/. Bei einem langen Klick auf Tastenpaar1 soll sekündlich ein dimup/dimdown ausgelöst werden: notify Tastenpaar1 if($EVENT eq "on) dimup else dimdown.
Ich weiß nur leider nicht, wie ich das in FHEM verwende.
Noch weniger komme ich bei Sättigung bzw. Farbwert weiter. Beides beruht auf folgender Idee:
set LED HSV readingsVal("LED","HUE") + 10,readingsVal("LED","SATURATION"),readingsVal("LED","BRIGHTNESS")
bei der Sättigung kommt als ausnahme noch dazu, dass das ganze nur zwischen 0..100 sein darf.
Sprich auch hier bei Tastenpaar2(on) immer einen Wert von +10 und bei off einen Wert von -10. Die Werte sind jedoch nur von 0..360.
Hier möchte ich noch, dass es von 0 ausgehend dann statt nach -10 zu 350 springt.
Ich freue mich sehr über Tipps und Lösungsvorschläge

Beste Grüße
Fabian

Puschel74

#1
Hallo,

es heisst ReadingsVal und nicht readingsval - FHEM ist Case sensitiv.

Zitatnotify Tastenpaar1 if($EVENT eq "on) dimup else dimdown.
Kann so nicht klappen - das machen aber die unzähligen Beispiele im Forum und auch im Einsteiger.pdf sowie um Wiki klar.

Sorry aber es wird immer gejammert das es sowenig Beispiele gibt aber die vorhandenen werden auch nicht benutzt.

Eine Prüfung auf einen bestimmten Wert (oder eben nicht) kannst du auch mit ReadingsVal durchführen sofern Brightness und Saturation als Reading im Device stehen.
Pseudocode wird dir nicht helfen - Funktionslosen Pseudocode hast du ja schon gezeigt.

Alles in allem ist dein Vorhaben lösbar sobald das benötigte Wissen dazu vorhanden ist.

Tipps habe ich dir genannt - Lösungsvorschläge?? wie stellst du dir diese vor?
Dazu fehlt einfach noch das Wissen.

http://forum.fhem.de/index.php/topic,16311.0.html

Grüße

Edith: Deine Frage hat aber mit FS20 nicht viel zu tun (ausser den Geräten) und wäre besser in den Anfängerfragen aufgehoben gewesen.
Wobei du sehen wirst das sich deine Fragen in Luft auflösen wenn du nur ein bischen suchst und im Hinterkopf behälst das Namen nur Schall und Rauch sind (auch in FHEM).
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.

Pythonf

Meine Lösung:

LED_Schalter2 {
my $Bri = ReadingsVal("LED_Fabian","BRIGHTNESS","0");;
my $Sat = ReadingsVal("LED_Fabian","SATURATION","0");;
my $Hue = ReadingsVal("LED_Fabian","HUE","0");;
if ( "$EVENT" eq "on") {
$Hue = $Hue + 20;;
fhem("set LED_Fabian HSV $Hue,$Sat,$Bri")
}
if ( "$EVENT" eq "off") {
if( $Hue <= 19) { $Hue = 340 }
$Hue = $Hue - 20;;
fhem("set LED_Fabian HSV $Hue,$Sat,$Bri")
}
}


Ich habe nur leider keine Lösung dafür gefunden, wie ich den Farbton ändere, solange die Taste gedrückt ist, weil immer nur ein "dimup/dimdown" gesendet wird (anders als bei HM, da hätte ich das ganze schon gelöst bekommen). Gibt es hierfür eine Lösung, muss ich einen Dummy anlegen, der mit dem Schalter gepeert wird? Ich komm hier iwie nicht weiter :/.

Dies ist mir auch nicht erklärlich:
LED_Schalter1 {
if ( "$EVENT" eq "on" || "$EVENT" eq "off") {
fhem("set LED_Fabian $EVENT")
}
if ( "$EVENT" eq "dimup") {
fhem("set LED_Fabian dim 100 20")
}
if ( "$EVENT" eq "dimdown") {
fhem("set LED_Fabian dim 0 10")
}
}


das erste und zweite "IF" funktionieren, nicht jedoch das Dritte? Der Befehl set LED dim 0 10 funktioniert bei direkter Eingabe, ich verstehe nur nicht, weshalb er das nicht ausführt? "dimdown" wird genau so im LOG angezeigt. (Auch wenn dies wahrscheinlich eher eine Frage für das Anfängerforum wäre, hoffe ich, dass man mir helfen kann, ansonsten werde ich dies noch einmal separat posten).

Grüße
Fabian