Neues Modul: TEK603

Begonnen von eisler, 23 September 2014, 10:58:32

Vorheriges Thema - Nächstes Thema

CQuadrat

Der Sensor unterstellt einen nicht nutzbaren Totraum am Boden des Tanks.
Ich habe einen 10.000 Liter-Tank und ein Totraum von 8 cm (entspricht 533 l).
TotalUsableCapacity ist bei mir demnach 9.467 l.
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), KM271 (per ser2net), SONOS (div. Gimmicks), OneWire, Hue

OliS.

Guten Morgen und danke Euch allen für die zahlreichen Antworten.

Zitatwerden die werde nach nach dem Anlernen im Echtzeit-Modus korrekt in FHEM angezeigt?

Die Werte werden auch im Echtzeitmodus nicht korrekt angezeigt.

ZitatDer Sensor unterstellt einen nicht nutzbaren Totraum am Boden des Tanks.

Den voreingestellten Totraum habe ich ja schon über die Einstellungen mit der Konfigurations-Software eliminiert. Das untere Offset steht bei mir auf 0. Bei den Maßen meines Tanks wären das bei einem Offset von 8 cm auch bloß 342 Liter.

ZitatIch nehme an, dass Deine Maße die Außenabmessungen und das Bruttovolumen vom Typenschild sind. Für die Innenabmessungen kannst Du in jeder Richtung 1-2 Zentimeter abziehen. Falls Du  einen doppelwandigen Tank, dann dürfen es eher 5 Zentimeter sein.

Nein, das sind die von mir gemessenen Innenmaße des Tanks.

ZitatHast Du bei proteus-meter.com gekauft? Der Support dort antwortet erfahrungsgemäß schnell und umfangreich

Ja, habe ich. Ich werde denen mal schreiben.

Oli
FHEM in Debian VM auf DS720+, HMLAN und HMUARTLGW, RFXTRX, Conbee II, Homebridge, Alexa
Geräte: Homematic, Tradfri, Shelly, IT, ESA2000, VU+, Denon-AVR, Sonos, Fritz!Box, Harmony Hub, IP-Cams, Roborock, Automower

OliS.

Jetzt läuft es bei mir.
Problem war wohl meine alte Windows-Möhre. Die hat die Einstellungen der Offset-Werte nicht korrekt auf dem Monitor gespeichert. Jetzt bekomme ich auch plausible Werte angezeigt.

Danke für das schöne Modul. Jetzt muss ich nicht mehr jeden Monat meinen Zollstock in den Tank stippen.

Jetzt muss ich nur noch einen Weg finden, wie die Monatsverbräuche automatisch in einer Excel-Tabelle landen. Aber das ist ein anderes Thema.

Oli
FHEM in Debian VM auf DS720+, HMLAN und HMUARTLGW, RFXTRX, Conbee II, Homebridge, Alexa
Geräte: Homematic, Tradfri, Shelly, IT, ESA2000, VU+, Denon-AVR, Sonos, Fritz!Box, Harmony Hub, IP-Cams, Roborock, Automower

arne.dien

Ich hab' da mal 'ne Frage  ;)

Das Modul funktioniert bei mir einwandfrei.

Wäre es möglich, das Attribut "stateFormat" mit einzubauen?
Dann hätte ich schneller eine Überblick  8)

FHEM 5.9, RasPi 3 B, HM-LAN, RFXtrx433, Harmony
Homematic, Licht, Rolladen, Heizkörper, Rauchmelder...
ESP RGBWW, LD316...

Es ist selten zu spät aber immer höchste Zeit...

Johnnyflash

Hallo,
ich habe das Modul modifiziert um auch event-on-change-reading zu Unterstützen. Ich habe lediglich die AttrList geändert in
$hash->{AttrList} = 'do_not_notify:0,1 dummy:1,0 loglevel:0,1,2,3,4,5,6 '
.$readingFnAttributes;

eisler

Hallo Johnnyflash,

danke. Ist jetzt im fhem repository: https://svn.fhem.de/trac/changeset/17651/

Grüße
Stephan

alaska3586

Hallo,

zwar bin ich hier im FHEM-Forum nicht ganz richtig, da ich eine Homematic CCU2 nutze. Mein Problem ist jedoch recht allgemein, so dass ich trotzdem mal nachfrage:

den Monitor habe ich über USB als ttyUSB0 eingebunden:
20:22:09 [ttyUSB0] *** connect(115200:8N1) CP2102 USB to UART Bridge Controller
USB 1-1.2 - {SONIC} CP2102 USB to UART Bridge Controller [FF] - /dev/ttyUSB0 {:202s} - connected

Nun hätte ich erwartet, dass alle 30min ein Datenstrom empfangen wird, der in einem Terminal angezeigt werden kann.
Dies ist jedoch nicht der Fall, auch nach Stunden / Reboot etc. etc. kommen keine Werte an.
Muss vorher eine Initialisierungssequenz an den Proteus Monitor gesendet werden, oder sollte das von alleine gehen?

eisler

Eine Initialisierungssequenz ist nicht notwendig.

EcoMeter für Heizöl liefert alle 60 Minuten einen Messwert.
EcoMeter Zisterne alle 30 Minuten.
In den ersten 10 Minuten nach dem Anlernen jede Sekunde.

Grüße
Stephan

alaska3586

Danke. So hatte ich es erwartet,  als Wassersensor für die Zisterne sollte der TeK603 alle30min (oder manchmal auch länger) seine Daten senden.

Da mir die Baudrate unbekannt ist, habe ich mt verschiedenen Baudraten 4800 / 9600 /38400 / 115200  Baud jeweils mehrere Stunden getestet (der Wasserpegel ändert sich derzeit nur minimal - Nieselregen) , bekomme aber keine Daten in Empfangsrichtung angezeigt. Gibt es sonstige Voraussetzungen für den Empfang von Daten, die ich nicht beachtet habe?
Restliche Parameter für die serielle Schnittstelle: 8N1, keine Flußsteuerung.

eisler

115200 8N1 passt.

Voraussetzung ist das die Basisstation Daten vom Sensor empfängt, die werden dann auch via USB zur verfügung gestellt.

Grüße
Stephan

alaska3586

Das ist auch erfüllt, der Sensor ist mit der Basisstation gekoppelt, der Pegelstand hat sich über Nacht leicht erhöht und wird im Monitor angezeigt.

fiedel

Steck das Teil doch mal ans Laptop und beobachte dort das Terminal.
Falls das geht könntest du noch eine Weile mit dem Treiber und der Schnittstellenkonfig spielen,
aber letztendlich wäre der wohl der Wechsel zur CCU3 oder Raspberrymatic zu überlegen.
FeatureLevel: 6.1 auf Wyse N03D ; Deb. 11 ; Perl: v5.14.2 ; IO: HM-MOD-RPI-PCB + VCCU|CUL 868 V 1.66|LinkUSBi |TEK603
HM: SEC-SCO|SCI-3-FM|LC-SW4-PCB|ES-PMSW1-PL|RC-4-2|SEN-MDIR-O|SEC-WDS-2
CUL: HMS100TF|FS20 S4A-2 ; OWDevice: DS18S20|DS2401|DS2406|DS2423

choetzu

#87
Hallo

super Modul, es hat auf Anhieb funktioniert.. Herzlichen Dank dafür... Wo ich mich aber etwas schwer tue, ist mit der Konfiguration des Eco Meter S (Proteus) für meine Regenwassertonne.

Mein Betonregenwassertank liegt unter der Garage und hat folgende Innenmasse:

Breite: 3.2m
Tiefe: 2.3m
Höhe: 2m, wovon eine Maximalhöhe von 1.65m erlangt werden kann. Alles darüber fliesst in die Kanalisation.
Die Proteus-Rakete habe ich auf 1.80m (1.65 +15cm) montiert.

Siehe auch Handbild anbei.

Wenn ich also richtig rechne, hab ich ein Fassungsvolumen von 12.144liter. 1cm Wasserhöhe entspricht also knapp 74liter.

Wenn ich nun also im Eco Meter 12.144 Liter, 165cm Höhe, Offset 15cm, Boden 0cm eingebe, erhalte ich eine aktuelle Wasserhöhe von 1.55cm. Effektiv (mit Massstab gemessen) habe ich aber 160cm. 5cm macht rund 370liter aus. Wo ist da die Diskrepanz? Oder muss ich irgendwo was anderes eingeben?

Danke für die Hilfe.

Lg C

EDIT: Ich habe nochmals alles von vorne konfiguriert. Jetzt gehts prima..
Raspi3, EnOcean, Zwave, Homematic

choetzu

Guten Nachmittag,

ich kriege in regelmässigen Abständen folgende Fehlermeldungen mit meinem Proteus bei meinem Regenwassertank:

[Sun Apr  7 03:50:39 2019] fhem.pl: substr outside of string at ./FHEM/44_TEK603.pm line 160.
[Sun Apr  7 03:50:39 2019] fhem.pl: Use of uninitialized value in hex at ./FHEM/44_TEK603.pm line 160.
[Sun Apr  7 03:50:39 2019] fhem.pl: substr outside of string at ./FHEM/44_TEK603.pm line 164.
[Sun Apr  7 03:50:39 2019] fhem.pl: substr outside of string at ./FHEM/44_TEK603.pm line 165.
[Sun Apr  7 03:50:39 2019] fhem.pl: Use of uninitialized value $crc in string ne at ./FHEM/44_TEK603.pm line 170.
[Sun Apr  7 03:50:39 2019] fhem.pl: substr outside of string at ./FHEM/44_TEK603.pm line 165.
[Sun Apr  7 03:50:39 2019] fhem.pl: Use of uninitialized value $crc in string ne at ./FHEM/44_TEK603.pm line 170.


Die Zeilen 160-170 im 44_TEK603.pm sind wie folgt.

my $time = sprintf '%02d:%02d:%02d', hex(substr($hash->{buffer},12,2)), hex(substr($hash->{buffer},14,2)), hex(substr($hash->{buffer},16,2));
#my $epromStart      = hex(substr($hash->{buffer},18,4));
#my $epromEnd        = hex(substr($hash->{buffer},22,4));
my $payloadlenght = $lenght - 26 - 4;
my $payload        = substr($hash->{buffer},26,$payloadlenght);
my $crc            = substr($hash->{buffer},26 + $payloadlenght,4);

my $ctx = Digest::CRC->new(width=>16, init=>0x0, poly=>0x1021, refout=>0, xorout=>0);
$ctx->add(pack 'H*',(substr($hash->{buffer},0,26 + $payloadlenght)));
my $digest = $ctx->hexdigest;
return '' if($crc ne $digest);

woran könnte das liegen? oder kann ich das getrost ignorieren?

Dann verstehe ich Ullage auch nicht. Gemäss Wiki ist das der Ölpegel. Bei mir steht nun 39 bei 10456l .. Was sind nun diese 39??

danke für die Antworten.
Lg c
Raspi3, EnOcean, Zwave, Homematic

eisler

Hallo choetzu,

sieht aus als wenn der Proteus was unbekanntes sendet, kannst du bitte
ab Zeile 156 folgendes mit einbauen und mir dann das Logfile zukommen lassen.
Log3 $name, 5, $hash->{buffer};

Ullage ist der vertikalen Abstand zwischen der Oberfläche der Flüssigkeit in dem Tank und dem Tanksensor.

Grüße
Stephan