neues Modul: Atlas Scientific Sensoren I2C_EZODO, I2C_EZOPH und I2C_EZOEC

Begonnen von danieljo, 05 Dezember 2015, 19:01:05

Vorheriges Thema - Nächstes Thema

danieljo

Beim EZODO wird das "SAT" auf dem Eventmonitor ausgeben als Sauerstoffsaettigung:

2017-04-10 22:12:56 I2C_EZODO DO S: 1 DO: 7.85mg/l SAT: 95.7%
2017-04-10 22:12:56 I2C_EZODO DO Sauerstoffgehalt: 7.85
2017-04-10 22:12:56 I2C_EZODO DO Sauerstoffsaettigung: 95.7
2017-04-10 22:12:56 I2C_EZODO DO Status: 1


Mittels einem "notify" übermittelt man den Temperaturwert eines Beliebigen Temperatursensors an die EZO Sensoren. Hier ein Beispiel welches den Temperaturwert eines DS18B20 an alle EZO Sensoren gleichzeitig übermittel:

define TempComp notify GPIO4_DS18B20_041500825bff:temperature:.* set PH,DO,EC TemperaturCompensation [GPIO4_DS18B20_041500825bff:temperature]

Die Änderung bezüglich dem Reading "Set_ReadTempComp" habe ich übernommen. Das "T," ist somit entfernt und nur der reine Zahlenwert wird angezeigt.

Wegen der Perl Fehlermeldung bin ich bis jetzt noch nicht weitergekommen. Da augenscheinlich alles stimmt. Da benötige ich Hilfe von einem Profi der da bitte mal drüber schaut.

Die aktualisierten Module findet ihr im erstens Thread.

Mfg, Daniel Joachims

Burny4600

Danke für die Rückmeldung.
Benötigst du noch irgenwelche Infos?
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

danieljo

Das Problem was ich habe das ich die Fehlermeldung von Perl nicht nachvollziehen kann da sie bei mir nicht angezeigt wir. wohl aber im Modul RPII2C. Zumal die anderen EZO Module genauso aufgebaut sind ?!

Burny4600

Vielleicht hängt es mit dem fehlenden Reading des DO Sensors zusammen welches nicht angezeigt wird.
Hier fehlt bei SAT ein Wert.

Was auch stört ist die Ausgabe der TemperaturCompensation die mit T, ausgegeben wird.
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

BumpetyBoo90


Burny4600

@danieljo
ZitatZumal die anderen EZO Module genauso aufgebaut sind ?
Das Modul I2C_EZODO unterscheidet sich dennoch da hier zwei Werte ausgegeben werden sollten anstatt einem wie beim EC- und pH-Modul

Im I2C_EZODO ist definitiv ein Schreibfehler in Zeile 222
readingsBulkUpdate($hash,'state','S: ' . $erster . ' DO: ' . $split1[0] . 'mg/l SAT: ' . $split1[1] . '%');
Müsste das nicht anders heißen? Diese Definition 'mg/l SAT: ' kann nicht stimmen so weit ich das verstehe.
readingsBulkUpdate($hash,'state','S: ' . $erster . ' DO: ' . $split1[0] . ' mg/l ' .  ' SAT: ' . $split1[1] .  '%');

Zudem dürfte für split1[1] noch die Definition für die Auswertung in Zeile 211 bis 219 fehlen.
Leider habe ich zu wenig Kenntnisse aber dennoch dürfte hier der Fehler liegen.
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

Burny4600

@danieljo

Hast du an dem EZODO schon in diesem Bereich der Zeile 222 etwas entdeckt was fehlt?
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

zappolon

Hallo Daniel,

ich hätte da ne Bitte: Wenn Du bei Gelegenheit Änderungen an den Modulen vornimmst, kannst Du es einrichten das im Menü "set" ... nicht als erste Auswahl "calibrate...." steht? Ich habe mit beim "rumspielen" mit dem Smartphone schon mehrfach die Calibrierung überschrieben (versehentlich "set" berührt)..... Gut wäre als erstes die Auswahl "read Value" . Ansonsten läuft alles klasse. Weiter so....

Burny4600

@danieljo

Könntest du bitte den Eintrag bei dir ab Zeile 202 des 52_I2C_EZODO.pm nochmals vornehmen.
In den Files vom 10.04.2017 spuckt er bei mir immer noch nichts aus unter SAT.
Mir kommt die Schreibweise in Zeile 222 nicht korrekt vor.
sub I2C_EZODO_I2CRec ($$) {
my ($hash, $clientmsg) = @_;
my $name = $hash->{NAME}; 
my $phash = $hash->{IODev};
my $pname = $phash->{NAME};
while ( my ( $k, $v ) = each %$clientmsg ) { #erzeugen von Internals fuer alle Keys in $clientmsg die mit dem physical Namen beginnen
$hash->{$k} = $v if $k =~ /^$pname/ ;
}
   
    if ( $clientmsg->{direction} && $clientmsg->{$pname . "_SENDSTAT"} && $clientmsg->{$pname . "_SENDSTAT"} eq "Ok" ) {
    if ( $clientmsg->{direction} eq "i2cread" && defined($clientmsg->{received}) ) {
    Log3 $hash, 5, "empfangen: $clientmsg->{received}";
        my $raw = $clientmsg->{received};
my @ascii = split(" ", $raw);
my $erster = shift(@ascii);
my $new = pack("C*", @ascii);
$new =~ s/\0+$//;
my @split1 = split(",", $new);

readingsBeginUpdate($hash);
readingsBulkUpdate($hash,'state','S: ' . $erster . ' DO: ' . $split1[0] . 'mg/l SAT: ' . $split1[1] . '%');
readingsBulkUpdate($hash, 'Sauerstoffgehalt', $split1[0]);
readingsBulkUpdate($hash, 'Sauerstoffsaettigung', $split1[1]);
readingsBulkUpdate($hash, 'Status', $erster);
readingsEndUpdate($hash, 1);
        }
    }
}

Die Ausgabe des Readings Sauerstoffsaettigung fehlt zudem bei mir.
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

bicmac

hi,
Wird an dem Modul noch weiter entwickelt.
Ich frage weil mich auch das auslesen vom EZORTD circuit mit einem angeschlossenem PT1000 Fühler interessiert.

bigtruite



bigtruite

Ok. Danke. Aber ich muss das an den Raspi anschließen wo fhem läuft. Oder an einen zweiten und dann mit fhem2fhem auf die Daten zugreifen, oder?

tomster

Ja. Ich hab auch einen separaten Pi am Teich und diesen per FHEM2FHEM mit meiner Hauptinstanz verbunden. Funktioniert seit Monaten problemlos.