Modul für I2C 16Kanal 12bit PWM Controller PCA9685

Begonnen von klausw, 15 Dezember 2015, 23:48:17

Vorheriges Thema - Nächstes Thema

projectsun

Wo soll ich die LED mit Vorwiderstand hinhängen? Zw. V+ und PWM?
Oder ohne Vorwiderstand zwischen PWM und GND? Das hatte ich nämlich schon versucht. Bleibt dunkel. Bis ich INVRT setze.
Zentrale Ubuntu, Rpi B+ mit Busware 868 CUL ser2net, Rpi 2 an Aquarium mit DS18B20, und S0Counter, Rpi 3 mit nanoCUL 433 und 868 ser2net, 7x Revolt NC-5462, 1x miniCUL WLAN, 3x IT-1000, 6x ELRO AB440, KS300, EM1000-HSM, EM1000-WZ, FHT80B, 5x FHT8v2, 20x Nodemcu mit Sensoren, 6x Echo, Sonos


projectsun

Ich weiss nicht warum.... jetzt funktioniert alles. Allerdings an einem anderen Port (14). Möglich, das da Port 1 bei mir einen Defekt hat.
Zentrale Ubuntu, Rpi B+ mit Busware 868 CUL ser2net, Rpi 2 an Aquarium mit DS18B20, und S0Counter, Rpi 3 mit nanoCUL 433 und 868 ser2net, 7x Revolt NC-5462, 1x miniCUL WLAN, 3x IT-1000, 6x ELRO AB440, KS300, EM1000-HSM, EM1000-WZ, FHT80B, 5x FHT8v2, 20x Nodemcu mit Sensoren, 6x Echo, Sonos

Joe4630

Moin,

ich habe ein seltsames Phänomen mit den PCA_9685 Modul. (Raspberry 3)

Einige Attribute (Bsp. modereg2 INVRT) werden nicht korrekt angenommen. Als Ergebnis erscheint eine leere Seite in FHEM mit einer 1 oben links.

In FHEM ist bisher nicht viel initialisiert bis auf einem OWController mit ca. 20 Temperatursensoren. Auch wenn ich diese rausnehme klappt das setzen der Attribute manchmal, meistens aber nicht.

Hat einer vielleicht eine Idee was ich falsch mache?

Danke im Vorraus!

klausw

Zitat von: Joe4630 am 27 Januar 2017, 23:44:17
Moin,

ich habe ein seltsames Phänomen mit den PCA_9685 Modul. (Raspberry 3)

Einige Attribute (Bsp. modereg2 INVRT) werden nicht korrekt angenommen. Als Ergebnis erscheint eine leere Seite in FHEM mit einer 1 oben links.

Was bringt denn

version I2C_PCA9685?
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

Joe4630

Hallo Klaus,

Hier die Version:

52_I2C_PCA9685.pm 12059 2016-08-22 21:14:59Z klauswitt

LG

klausw

#66
Gut, die ist schonmal aktuell. Da muss ich das Teil mal wieder in Betrieb nehmen.
Evtl. komme ich am We dazu.

Grüße
Klaus

Edit:
Poste bitte deine Config (von PCA9685 und RPII2C).
Und ein list beider Devices.
Ist die Adresse korrekt?
Kannst du das Modul über die Konsole erreichen? (i2cdetect/i2cget)
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

Joe4630

Hallo Klaus,

Über I2C kann ich die Devices erreichen. Auch kann ich im Prinzip Dimmen, die Werte die ich mit set vorgebe werden umgesetzt, aber eben wie auch die Attribute nicht immer in der Oberfläche angezeigt. Ich bekomme immer die leere Oberfläche mit der einzelnen 1 oben links.
Nach einem Neustart werden mir für die PCA9685 auch "Error during initialistation" angezeigt und die modereg2 Attribute sind weg. (Dann geht bei mir überall das Licht an....) Wenn ich allerdings dann einmal einen Wert auf einen Kanal schreibe, wird das Device mit "OK" angezeigt.
Hier die config:
#################################
# I2C Controller
#################################
define I2C_IO RPII2C 1
attr I2C_IO alias Onboard I2C Controller 1

# PWM PCA9685 Addr. 40
define PCB1_PWM24V I2C_PCA9685 0x40 60
attr PCB1_PWM24V IODev I2C_IO
attr PCB1_PWM24V modereg2 INVRT,OUTDRV
attr PCB1_PWM24V room PWM

# PWM PCA9685 Addr. 41
define PCB1_PWM3V I2C_PCA9685 0x41 60
attr PCB1_PWM3V IODev I2C_IO
attr PCB1_PWM3V modereg2 INVRT,OUTDRV
attr PCB1_PWM3V room PWM

Listings:
#####################################
Internals:
   DEF        1
   DeviceName /dev/i2c-1
   NAME       I2C_IO
   NOTIFYDEV  global
   NR         31
   NTFY_ORDER 50-I2C_IO
   STATE      Ok
   TYPE       RPII2C
   ioctl_ph_exists 1
Attributes:
   alias      Onboard I2C Controller 1

#################################
Internals:
   DEF        0x41 60
   Frequency  196.9 Hz
   I2C_Address 65
   I2C_Buff   60
   I2C_IO_SENDSTAT Ok
   IODev      I2C_IO
   NAME       PCB1_PWM3V
   NR         51
   STATE      Ok
   TYPE       I2C_PCA9685
   Readings:
     2017-02-05 20:25:45   Port00          896
     2017-01-27 23:10:17   Port01          off
     2017-02-01 22:32:38   Port02          1139
     2017-01-27 23:10:17   Port03          off
     2017-01-27 23:10:17   Port04          off
     2017-01-27 23:10:17   Port05          off
     2017-02-03 19:51:21   Port06          off
     2017-02-05 21:02:40   Port07          off
     2017-02-05 20:57:29   Port08          4000
     2017-02-05 20:27:34   Port09          off
     2017-02-05 20:57:38   Port10          on
     2017-01-27 23:10:17   Port11          off
     2017-01-27 23:10:17   Port12          off
     2017-02-01 22:30:56   Port13          2385
     2017-02-05 21:04:18   Port14          759
     2017-02-05 21:06:16   Port15          off
     2017-01-27 23:11:52   Port_d00        0
     2017-02-01 22:32:38   Port_d02        0
     2017-02-03 18:57:15   Port_d06        0
     2017-01-27 23:22:00   Port_d07        0
     2017-02-01 22:36:17   Port_d08        0
     2017-01-29 17:13:39   Port_d09        0
     2017-01-29 11:25:32   Port_d10        0
     2017-02-01 22:30:56   Port_d13        0
     2017-01-28 00:10:36   Port_d14        0
     2017-01-28 00:49:53   Port_d15        400
     2017-02-05 21:06:16   state           Ok
   Confregs:
     ALLCALLADR 224
     PRESCALE   30
     SUBADR1    226
     SUBADR2    228
     SUBADR3    232
     modereg1   32
     modereg2   20
Attributes:
   IODev      I2C_IO
   modereg2   INVRT,OUTDRV
   room       PWM
######################################


Die modereg2 Attribute werden nicht nach einem Neustart übernommen. Von Hand kann ich die (manchmal) einzeln setzen, aber wie gesagt dann mit leerer Seite und der einzelnen 1 oben links.
Während ich das Listing erstellt habe, waren einige Ports auch definitiv auf andere Werte. Das INVRT Attribut war auch nicht aktiv. OUTDRV dagegen schon.

Ich habe mir gerade noch einen Raspberry bestellt, damit ich in Ruhe testen kann. Auch will ich den neu aufsetzen. In FHEM habe ich neuerdings auch noch das Problem das es sehr, sehr lange dauert bis ich nach dem Klick auf "save fhem.cfg" auf die Startseite von fhem geleitet werde.
Auch wir z.bsp. ein "get PCB1_PWM3V" mit "no get implemented for PCB1_PWM3V" quittiert..
Vielleicht ist ja auch meine Konfiguration irgendwie zerschossen?...

Ich denke ich habe Mittwoch ein neu aufgesetztes (Test)System zur Verfügung. Der jetzige steuert bei mir schon die halbe Wohnung....

Danke für Deine Hilfe!



Joe4630

Kurzes Update,

das es nach dem klick auf "save fhem.cfg" so lange dauert bis ich zur Startseite zurück geleitet werde liegt wahrscheinlich an dem ROLLO Modul. Wenn ich die rausnehme geht alles wie gewohnt schnell.
Ich werde da mal nach dem Phänomen nachfragen.


klausw

#69
oh mann, mein Fehler. beim letzten commit habe ich eine falsche Version verwendet
im Moment bekomme ich den SVN Zugriff nicht hin.

In Zeile 484 gehört:                   
return undef;

Direkt vor
} else {
            if (AttrVal($hash->{NAME}, "dummy", 0) == 1) {


Du kannst es, bis das Modul im SVN aktualisiert ist, händisch eintragen.

Edit:
ist eingecheckt
nach einem Update morgen sollte es funktionieren
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

Joe4630

Hallo Klaus,

ich habe jetzt geupdated und das Verhalten mit der leeren Seite ist behoben. Danke!
Leider habe ich immer noch das Problem das die zwei modereg2 Attribute INVRT und OUTDRV nicht gleichzeitig gesetzt werden können. Beim Start von FHEM habe ich immer noch "Error during initialisation" stehen.
Wenn ich INVRT zuerst einzeln setzte, dann separat OUTDRV setze wird mir zwar INVRT nicht mehr angezeigt, ist aber dennoch aktiv. Dann funktioniert alles.
Woran könnte es liegen das beim Start die Attribute nicht übernommen werden obwohl diese unter Attributes angezeigt werden?

Danke und Grüße

klausw

Zitat von: Joe4630 am 09 Februar 2017, 23:19:15
Leider habe ich immer noch das Problem das die zwei modereg2 Attribute INVRT und OUTDRV nicht gleichzeitig gesetzt werden können. Beim Start von FHEM habe ich immer noch "Error during initialisation" stehen.
Wenn ich INVRT zuerst einzeln setzte, dann separat OUTDRV setze wird mir zwar INVRT nicht mehr angezeigt, ist aber dennoch aktiv. Dann funktioniert alles.
Woran könnte es liegen das beim Start die Attribute nicht übernommen werden obwohl diese unter Attributes angezeigt werden?

Seltsam, bei mir läuft das jetzt. Hier ein List welches ich direkt nach "shutdown restart" gemacht habe:

Internals:
   DEF        0x68 60
   IODev      RPiI2C
   NAME       PCB1_PWM24V
   NR         541
   STATE      defined
   TYPE       I2C_PCA9685
   Readings:
     2017-02-15 20:31:22   Port00          3929
     2017-02-07 22:23:28   Port01          off
     2017-02-07 22:23:28   Port02          off
     2017-02-07 22:23:28   Port03          off
     2017-02-07 22:23:29   Port04          off
     2017-02-07 22:23:29   Port05          off
     2017-02-07 22:23:29   Port06          off
     2017-02-07 22:23:29   Port07          off
     2017-02-07 22:23:30   Port08          off
     2017-02-07 22:23:30   Port09          off
     2017-02-07 22:23:30   Port10          off
     2017-02-07 22:23:30   Port11          off
     2017-02-07 22:23:30   Port12          off
     2017-02-07 22:23:31   Port13          off
     2017-02-07 22:23:31   Port14          off
     2017-02-07 22:23:31   Port15          off
     2017-02-07 22:24:00   Port_d00        0
     2017-02-15 20:31:22   state           Ok
   Confregs:
Attributes:
   IODev      RPiI2C
   modereg2   INVRT,OUTDRV
   room       UniPi


Beide modereg Attribute sind auch korrekt im IC angekommen.

Du hast nicht zufällig noch ein weiteres I2C Device auf der selben Adresse (war bei mir so.... und da hatte ich Fehler)
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