93_DbLog - DbLog_SplitFn

Begonnen von klausw, 18 Mai 2015, 17:50:47

Vorheriges Thema - Nächstes Thema

klausw

Hallo zusammen,

ich würde die DbLog_SplitFn in diverse I2C Module einbauen.
Dazu habe ich 2 Fragen:


  • Bleibt das "globale Abfragen" von temperature und humidity drin? Wenn nein, würde ich das SHT21 Modul entsprechend nachrüsten.
  • Für das MCP342x Modul (ADC) möchte ich die Einheit per Attribut einstellbar machen. Schließlich lässt sich auch ein Shunt für die Strommessung oder NTC, etc. anschließen.
    DbLog_SplitFn bekommt, wenn ich das richtig verstanden habe, aber nur reading und value übertragen.
    Gibt es eine Möglichkeit den namen oder hash von dem diese Werte kommen zu ermitteln?
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

Tobias

Als erstes wird immer geschaut, aber das dazugehörige Modul des Events die splitfn bereitstellt. Falls ja, wird der Rückgabewert benutzt. Langfristig soll die globale (interne dblog) Ermittlung von Value/Unit/Reading wegfallen.

So siehts aus:
($reading,$value,$unit) =
        &{$modules{$dtype}{DbLog_splitFn}}($event);


Das heißt, das komplette event wird der splitfn übergeben. Das Modul des Events enscheidet selbsständig, was und wie zurückgegeben wird.
Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

klausw

Zitat von: Tobias am 19 Mai 2015, 08:25:27
Als erstes wird immer geschaut, aber das dazugehörige Modul des Events die splitfn bereitstellt. Falls ja, wird der Rückgabewert benutzt. Langfristig soll die globale (interne dblog) Ermittlung von Value/Unit/Reading wegfallen.

So siehts aus:
($reading,$value,$unit) =
        &{$modules{$dtype}{DbLog_splitFn}}($event);


Das heißt, das komplette event wird der splitfn übergeben. Das Modul des Events enscheidet selbsständig, was und wie zurückgegeben wird.

soweit hatte ich es verstanden.
Nur was steht im $event drin?

Beispiel:
wenn im Event Monitor
2015-05-19 17:15:28 I2C_SHT21 SHT21 temperature: 24.562
auftaucht, ist dies das identisch mit $event
oder mit
temperature: 24.562

Die Implementierung in 10_MAX.pm beispielsweise macht den Eindruck, das es die zweite Variante ist.
Aus dieser würde ich ja nicht den Namen des Gerätes bekommen.

Die readings im Modul I2C_MCP342x lauten Channel1, Channel2 ...
Wenn ich mehrere devices von I2C_MCP342x definiert habe und diese unterschiedliche Größen messen (z.B. Strom und Spannung) kann ich dies im Nachhinein nicht mehr den entsprechenden Einheitenatributen zuordnen.
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

Tobias

Maintainer: Text2Speech, TrashCal, MediaList

Meine Projekte: https://github.com/tobiasfaust
* PumpControl v2: allround Bewässerungssteuerung mit ESP und FHEM
* Ein Modbus RS485 zu MQTT Gateway für SolarWechselrichter

klausw

Zitat von: Tobias am 19 Mai 2015, 21:00:35
zweitere: temperature: 24.562

habe ich mir fast gedacht  :)
Dann habe ich keine Idee wie ich dem AD Wandler eine per Attribut einstellbare Einheit spendieren kann.
Ist aber eher ein kosmetisches Problem.
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