I2C AD-Wandler ADS1115 von Texas Instruments

Begonnen von schlawiano, 31 Mai 2016, 11:55:31

Vorheriges Thema - Nächstes Thema

klausw

Hallo Karsten,

ich benötige dein Modul im Mon nicht, aber ein bisschen Senf kann ich trotzdem dazugeben ;)

Theoretisch könntest du beide Module zu einem zusammenfassen.
Die interne Auswahl, ob Master oder Slave führt dann über die Optionen in der Definition.

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

schlawiano

Hallo Klaus,

Dankeschön,
Deine Idee würde das Modul vll. komfortabler machen. Ich ziere mich da gerade ein bisschen.

Nach dem define müsste ich attribute, set's, internals, timer etc. neu setzen bzw. umbauen.
Ggf. kommt im laufenden Betrieb ein re-define.

Das wird mir zu konfus  ;)

Viele Grüße
Karsten

kpl

Hallo Karsten,

eine erste kurze Rückmeldung von meinen Tests. Ich habe häufig das Problem das ein falsches Ergebnis von -6,144 zurück kommt.  Die GAIN Angabe in Worten finde ich etwas verwirrend kann aber durchaus damit leben. Bei der INTERVAL Angabe würde ich Sekunden anstatt Minuten bevorzugen.

2016.07.02 17:48:10 5: [AD2] IC2_ADS1115_Update, Call IC2_ADS1115_CheckSensorState
2016.07.02 17:48:10 1: [AD2] I2C_ADS1115_Current Anzahl = 865
2016.07.02 17:48:10 5: [AD2,I_Wind] IC2_ADS1115_Update
2016.07.02 17:48:10 5: [I_Wind] I2C_ADS1115_AI_Poll call InternalTimer with 300 seconds
2016.07.02 17:48:10 5: [AD2] IC2_ADS1115_I2CRec  received: checksensorstate 193 152
2016.07.02 17:48:10 1: [AD2] I2C_ADS1115_Current Anzahl = 865
2016.07.02 17:48:10 5: [AD2] IC2_ADS1115_ReadValues
2016.07.02 17:48:10 5: [AD2] IC2_ADS1115_I2CRec  received: voltage 255 255
2016.07.02 17:48:10 1: [AD2] I2C_ADS1115_Current Anzahl = 865
2016.07.02 17:48:10 5: [AD2, I_Wind] IC2_ADS1115_GetVoltage  received: word: 65535, voltage: -6.144
2016.07.02 17:53:10 1: [AD2] I2C_ADS1115_Current Anzahl = 865
2016.07.02 17:53:10 5: [AD2,U_Test] IC2_ADS1115_Update
2016.07.02 17:53:10 5: [AD2,U_Test] IC2_ADS1115_Update Threshold:0x8000 - 0x7FFF
2016.07.02 17:53:10 1: [AD2. U_Test] IC2_ADS1115_ConfigWord Word: 0b1101000110011000


Gruß
Peter

schlawiano

Hallo Peter,
ich komme am Wochenende aus dem Urlaub zurück. Da schaue ich es mir genauer an.
Bei mir auf den Rechner gibt es eine gefixte Version und Deiner wird die Qeue nicht sauber abgearbeitet.
Man sieht im Deinem Log die Anzahl über 800.. das sollte nicht so sein.
Mit dem Interval... hatte ich an meiner Verwendung orientiert ( ich benötige nur Minutentakt) auch arbeiten viele andere Sensoren so. Man kann es mit Gleitkommawerten auf Sekunden runterbrechen.. Wenn weitere die Sekundenangabe als besser empfinden , baue ich es um.. kein Problem ;-)
Gruß Karsten

schlawiano

Anbei die neuste Version zum Testen. (Mit einigen Bugfixes)

kpl

Hallo Karsten,

du hast es Prinzipiell richtig erkannt. Ich hatte beim Testaufbau ein Problem mit der Stromversorgung. Ich habe deine Aktualisierte Version jetzt seit gut einen Tag mit einen Abfrage Intervall von einer Minute am laufen und alle Messwerte liegen im erwarteten Bereich. Der Zähler geht auch nicht mehr nach oben.

Danke,
Peter

klausw

@schlawino: ich würde empfehlen die neuste Version immer in den ersten Post zu packen und vor allem ältere Varianten deiner Module zu löschen. Im Moment gehts vielleicht noch, aber wenn der Thread etwas umfangreicher wird wirst du vermutlich mit Fragen gelöchert, die sich auf längst behobene Probleme beziehen.  ;)
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

schlawiano

@Klaus, Danke werde ich künftig beherzigen..

Viele Grüße
Karsten

Per

Bevor ich was Eigenes baue, frage ich lieber hier nach: lebt das Modul noch? Wird es noch gepflegt? Die letzte Version ist fast nen Jahr alt, das es die finale ist, habe ich aber nicht lesen können.

schlawiano

Es lebt zumindest bei mir im Fhem noch  ;)
Ich bräuchte auch ein bisschen Feedback, ob und wie es bei anderen läuft.
Bei Problemen würde ich mich darum kümmern, und wenn es andere länger im Einsatz hatten auch ins Repository heben.

Grüße Karsten

Per

OK, mein aktueller Plan ist folgender: erstmal ein wenig mit dem Teil auf dem Test-Raspi spielen, anschließend die Soll-Sensoren (Stromfühler) darum stricken, dann mit deinem Modul ins FHEM heben. Kann also 1-2 Wochen dauern, bis es wieder eine Rückmeldung gibt (wenn die RGBWW-Controller kommen, kann es sich nochmal etwas verschieben :-[).
Aber jetzt lag das es schon ne Weile, denke, da kommt es nicht auf Stunden an.

Prof. Dr. Peter Henning

Es ist zwar immer gut, wenn wir Verstärkung bei der Entwicklung neuer Module bekommen.  Allerdings ist es nicht sonderlich zielführend, wenn für jeden Chip gleich mehrere Module mit kryptischen Namen wie "52_I2C_ADS1115.pm" und "52_I2C_ADS1115_AI.pm" existieren. Irgendwann blickt nicht einmal mehr der Experte durch.

Darum erstens: Volle Unterstützung für den Vorschlag von klausw, diese beiden Module zusammenzuführen.

Zweitens die Bitte, dieses Modul auch so generisch anzulegen, dass es für beliebige AD-Wandler am I2C-Bus erweiterbar wäre.

LG

pah

Per

#27
Ob das mit beliebigen Wandlern machbar ist, weiss ich nicht, aber zumindest die ganze ADS1x1x-Familie und das Zusammenfassen beider Module sollte problemlos machbar sein.

@schlawiano: könntest du im ersten Post den aktuellen Status sowie die aktuellen Downloads hinterlegen (und die anderen löschen)?

schlawiano

Hallo,

da ich es bisher auch nur von der Hardware her den ADS 1115 genutzt habe, wurde es so benannt. Ich habe nichts gegen eine Umbenennung, wenn sich bestätigt, dass
die ganze Produktfamilie kompatibel ist.
Ich hatte die anderen Datenblätter noch nicht in der Hand. Wenn jemand mehr weiß, ich lasse mich hier gerne beraten.

Mir wäre es auch lieber, wenn wir beide Module in eine Datei packen könnten (sofern das inkludieren von FHEM das so hergibt, das müsste ich prüfen).

Die beiden Module zu einem zu vereinen, widerspricht der Programmierung und Idee dahinter. Ziel war es für jeden Eingang eine beliebig Einstellung hinterlegen zu können.
Daher gibt es für jeden Eingang auch eine einzelne konfigurierbare Instanz. So kann ich auch einfach einen Timer pro Eingang hinterlegen. So wird es bei mir genutzt.
Der Regensensor sollte bereits nach 5 Sekunden merken, dass sich was ändert (Alarmierung bei offenen Fenster). Beim Lichtsensor am anderen Eingang benötige ich nur Werte aller 5 Minuten.
Das Hauptmodul managt (Locking, Queues) die Eingänge.
Das zu ändern, wäre ein grundsätzlicher Neuaufbau, damit ein neues Modul ... und auch ein anderer Entwickler, der das dann programmiert. ;)

Per

Zitat von: schlawiano am 10 April 2017, 13:45:56Ich habe nichts gegen eine Umbenennung, wenn sich bestätigt, dass
die ganze Produktfamilie kompatibel ist.
Sind sie nicht, sie unterscheiden sich u.a. in der Auflösung (111x = 16 bit, 101x = 12 bit), das sollte aber zu beherrschen sein.

Zitat von: schlawiano am 10 April 2017, 13:45:56Die beiden Module zu einem zu vereinen, widerspricht der Programmierung und Idee dahinter. Ziel war es für jeden Eingang eine beliebig Einstellung hinterlegen zu können.
Das eine schließt das andere nicht aus. Erst definierst du einen Master und danach darauf basierend die Eingänge. Musst "nur" :D die Syntax anpassen und die define/set... dem entsprechenden Modul-Teil zuordnen.