Dummy device als Dimmer nutzen

Begonnen von klausw, 01 August 2013, 13:00:40

Vorheriges Thema - Nächstes Thema

klausw

Hallo zusammen,

an meinem Rasperry Pi habe ich über I2C ein LED Dimmer IC angeschlossen (PCA9532).
Über Systembefehle bekomme ich damit auch die Vitrinenbeleuchtung gedimmt.
Jetzt möchte ich das ganze über FHEM steuern. Das habe ich im Moment wie folgt gelöst, allerings funktioniert es nur teilweise:

define d1 dummy
attr d1 room Wohnzimmer
attr d1 webCmd state
attr d1 setList state:slider,0,1,99

define act_d1 notify d1 { \
system "sudo i2cset -y 1 0x60 0x05 0x%";;\
Log 1, "dimmwert von @ geändert auf %x";;\
}


nun sind einige Fragen offen:
- kann ich den state Wert irgendwie in Hexwerte umrechnen? (momentan übertrage ich einfach 0-99 Dezimal als hex, was nicht so toll ist)
- lässt sich der slider als Prozentwert anzeigen (der dann auf 0x00-0xFF umgerechnet wird)
- ist es auch möglich, die Dimmung zu verändern, während der Slider bewegt wird?

Danke schonmal und Grüße
Klaus
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280

klausw

so, ich beginne mal meine Fragen selbst zu beantworten ;) vielleicht hilft es jemandem.

Die Hex Umrechnung habe ich wie folgt gelöst:

define d1 dummy
attr d1 room Wohnzimmer
attr d1 webCmd state
attr d1 setList state:slider,0,1,255

define act_d1 notify d1 { \
my $dimwert = %;;\
my $hexwert = sprintf("0x%%x",$dimwert);;\
system "sudo i2cset -y 1 0x60 0x05 $hexwert";;\
Log 1, "dimmwert von @ geändert auf $hexwert";;\
}


jetzt fehlt nur noch Prozentanzeige und Livesteuerung
RasPi B v2 mit FHEM 18B20 über 1Wire, LED PWM Treiber über I2C, Luchtdruck-, Feuchtesensor und ein paar Schalter/LED\'s zum testen
Module: RPI_GPIO, RPII2C, I2C_EEPROM, I2C_MCP23008, I2C_MCP23017, I2C_MCP342x, I2C_PCA9532, I2C_PCF8574, I2C_SHT21, I2C_BME280