Alternative Methode zum Auslesen von Zählern (Wasseruhr, Gaszähler etc)

Begonnen von eki, 02 November 2020, 17:25:39

Vorheriges Thema - Nächstes Thema

Ajuba

Zitat von: rabehd am 06 April 2023, 13:34:26War bei mir auch so.
Ein paar Tage warten und es füllt sich mit Wasser.

Stimmt, heute ist es schon wesentlich besser.  :)
FHEM auf RPi3, Homematic CCU3 mit Cuxd und CUL 868 für FS20, Siemens S7 über CP343-1,
DbLog zu MySQL auf NAS QNAP TS-253D,
Yeelight

dieter114

Kann mir mal Jemand verraten wie man das Teil vom "Normalbetrieb" zurück
in den "Init" Modus bekommt?
Das mus doch auch ohne totale Neuinstallation gehen?
RPi II+III+IV,OWX,div.1W Module,HM Zisterne,div. CUL, sduino MAPLEMINI, div ESPEasy, div Tasmota, MQTT2Server,WU-Upload,TabletUI, Indego,Poolsteuerung mit fhem

MartinD

Hallo,

das Auslesen funktioniert bei mir im Prinzip sehr gut. Die sehr seltene Fehlwerte kann ich problemlos durch Korrektur (direkter Zugriff auf ESP-Adresse) beheben. Allerdings nur nur im lokalen Netzsegment (192.168.....).
Ich habe mir ein Proxy-Zugriff auf Fhem gebastelt. Dadurch kann ich über https-Port von Außen auf fhem zugreifen. Ein Versuch so etwas auf AI on the Edge auszuweiten scheiterte.
Nun versuche ich hochgradig erfolglos prevalue neu zu setzen.

setreading MQTT2_watermeter pre ....

setzt zwar das Reading in fhem auf gewünschtes Wert, dieses wird aber nicht aus das device weitergegeben. Die Auswirkung: einmal falsch ausgelesenes Wert produziert (bei 0.00 qm Verbrauch - bin gerade im Urlaub) wiederholt ,,error Neg. Rate". Siehe Details.

Weiß jemand ein Rat?

Mit besten Grüßen

Martin

Details:

——-
defmod MQTT2_watermeter MQTT2_DEVICE watermeter
attr MQTT2_watermeter DbLogInclude Wasserverbrauch
attr MQTT2_watermeter event-min-interval .*:1800
attr MQTT2_watermeter event-on-change-reading Wasserverbrauch:0.01,.*
attr MQTT2_watermeter readingList watermeter:watermeter/status:.* status\
watermeter:watermeter/MAC:.* MAC\
watermeter:watermeter/IP:.* IP\
watermeter:watermeter/hostname:.* hostname\
watermeter:watermeter/interval:.* interval\
watermeter:watermeter/connection:.* connection\
watermeter:watermeter/uptime:.* uptime\
watermeter:watermeter/freeMem:.* freeMem\
watermeter:watermeter/wifiRSSI:.* wifiRSSI\
watermeter:watermeter/CPUtemp:.* CPUtemp\
watermeter:watermeter/main/error:.* error\
watermeter:watermeter/main/raw:.* raw\
watermeter:watermeter/main/json:.* { json2nameValue($EVENT) }\
watermeter:watermeter/main/value:.* value\
watermeter:watermeter/main/rate:.* rate\
watermeter:watermeter/main/rate_per_time_unit:.* rate_per_time_unit\
watermeter:watermeter/main/changeabsolut:.* changeabsolut\
watermeter:watermeter/main/rate_per_digitalization_round:.* rate_per_digitalization_round\
watermeter:watermeter/main/timestamp:.* timestamp
attr MQTT2_watermeter room MQTT2_DEVICE,Messungen
attr MQTT2_watermeter stateFormat value
attr MQTT2_watermeter userReadings Wasserverbrauch {sprintf("%.4f",ReadingsVal("MQTT2_watermeter","value","???"))}

setstate MQTT2_watermeter 2023-08-19 10:12:13 CPUtemp 56
setstate MQTT2_watermeter 2023-07-11 10:14:19 IODev myBroker
setstate MQTT2_watermeter 2023-07-22 21:38:45
setstate MQTT2_watermeter 2023-07-22 21:38:45
setstate MQTT2_watermeter 2023-08-19 10:21:55 Wasserverbrauch 0.0000
setstate MQTT2_watermeter 2023-08-19 10:12:13 changeabsolut 0.0000
setstate MQTT2_watermeter 2023-08-19 10:12:13 connection connected
setstate MQTT2_watermeter 2023-08-19 10:12:13 error Neg. Rate - Read:  - Raw: 0124.7562 - Pre: 124.7663
setstate MQTT2_watermeter 2023-08-19 10:12:13 freeMem 814739
setstate MQTT2_watermeter 2023-07-22 21:38:45 hostname wasseruhr
setstate MQTT2_watermeter 2023-07-22 21:38:45 interval 10.0
setstate MQTT2_watermeter 2023-08-19 10:12:13 pre 124.7663
setstate MQTT2_watermeter 2023-08-19 10:12:13 rate
setstate MQTT2_watermeter 2023-08-19 10:12:13 rate_per_digitalization_round 0.0000
setstate MQTT2_watermeter 2023-08-15 02:03:15 rate_per_time_unit 0.000000
setstate MQTT2_watermeter 2023-08-19 10:12:13 raw 0124.7562
setstate MQTT2_watermeter 2023-08-19 10:21:55 status Aligning
setstate MQTT2_watermeter 2023-07-11 10:15:19 subscriptions watermeter/ctrl/flow_start watermeter/ctrl/set_prevalue
setstate MQTT2_watermeter 2023-08-19 10:12:13 timestamp 2023-08-15T02:09:27+0200
setstate MQTT2_watermeter 2023-08-19 10:12:13 uptime 2378414
setstate MQTT2_watermeter 2023-08-19 10:12:13 value
setstate MQTT2_watermeter 2023-08-19 10:12:13 wifiRSSI -89
—-



Sailor

Hallo Martin

Zitat von: MartinD am 19 August 2023, 11:16:35Nun versuche ich hochgradig erfolglos prevalue neu zu setzen.
setreading MQTT2_watermeter pre ....
setzt zwar das Reading in fhem auf gewünschtes Wert, dieses wird aber nicht aus das device weitergegeben. Die Auswirkung: einmal falsch ausgelesenes Wert produziert (bei 0.00 qm Verbrauch - bin gerade im Urlaub) wiederholt ,,error Neg. Rate". Siehe Details.
Weiß jemand ein Rat?

Ich habe mir ein userReadings wie folgt angelegt:
lastValue:value:.* {
my $value    = ReadingsVal($NAME,"value","");
my $OldValue = ReadingsVal($NAME,"lastValue","");
Log 5, $NAME . "_____________________________________";
Log 5, $NAME . " - value             : " . $value;
if ($value ne "") {
Log 5, $NAME . " - returnvalue       : " . $value;
$value
}
else {
Log 5, $NAME . " - returnvalue       : " . $OldValue;
$OldValue
}
}

Gruß
    Sailor
******************************
Man wird immer besser...

MartinD

Hallo Sailor.

vielen Dank!
Allerdings verstehe ich nicht ganz:
was bewirkt:
ZitatLog 5, $NAME . "_____________________________________";

und:
wird ein Eintrag in der Log-Datei korrigiert oder ein Wert an ESP32 gesendet?

Ich logge alles mir DBLog.

Mit besten Grüßen

Martin

Sailor

Hallo Martin

Zitat von: MartinD am 21 August 2023, 20:19:49Allerdings verstehe ich nicht ganz:
was bewirkt:
Log 5, $NAME . "_____________________________________";
Das bewirkt nur, das du einen Strich in deinem Log-File bekommst, damit du die Werte zwecks Fehlersuche besser finden kannst.


Zitat von: MartinD am 21 August 2023, 20:19:49und: wird ein Eintrag in der Log-Datei korrigiert oder ein Wert an ESP32 gesendet?
Ich logge alles mir DBLog.
Du erhälst ein neues Reading namens "lastValue".
Die Log- Datei speichert alle Fehlermeldungen und Einträge, die mit "Log [1-5]," geschrieben werden - Beispiel: /opt/fhem/log/fhem-2023-08.log
Die DB-Log Datenbank speichert alle definierten bzw. gefilterten Werte der Readings - Beispiel: /opt/fhem/fhem.db

Zwei verschiedene Baustellen.

Gruß
    Sailor
******************************
Man wird immer besser...

MartinD

Hallo,

OK, vielen Dank!
Das hat auch geholfen!

Mit besten Grüßen
Martin

JWRu

Hallo zusammen!
Ich habe Probleme bei der richtigen Interpretation von (digitalen) Zahlenübergängen.
Der korrekte Wert 679 (siehe Foto) wird entweder als 659 oder 669 erkannt.
Ich habe alle digitalen Modelle ausprobiert - kein Unterschied.
"Post processing previous value" ist aktiviert - "Analog/Digital Transition Start" steht auf 9,2
Du darfst diesen Dateianhang nicht ansehen.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter

jnewton957

Wenn ich das richtig sehe, bietet
https://smart-stuff.nl/product/esphome-waterlezer-dongle/

das Teil für ca. 30 € zzgl. Versand und ggf. 5 € 3D-Druck-Halter an.

Hat vielleicht zufällig schon jemand dieses Teil und wie beschrieben angeschlossen?
FHEM6.2 auf Pi5
V 1.66 nanoCUL 433 (IT)
V 1.66 nanoCUL868 (HM)
sqlite3 LogDb
ELRO AB440, DECT200,  TFA30.3125, esp8266, HM, TabletUI, IR-Schreiblesekopf (Udo),tibber Pulse, Kostal Pico, cfos Wallbox, Modbus TCP

JWRu

ZitatHat vielleicht zufällig schon jemand dieses Teil und wie beschrieben angeschlossen?
Das ist kein optischer Sensor (AI on the Edge) sondern ein induktiver.
Dafür muss man eine geeignete Wasseruhr haben.
ZBox; RasPi 3B; RasPi Zero W; Homematic; Z-Wave; EnOcean, Shelly; DuoFern; Oregon-Sensoren; TFA-Sensoren; Steuerung Viessmann-Heizung; Arduinos für Strom-, Wasser-, Gaszähler, Rauchmelder und FI-Schutzschalter