ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)

Begonnen von StefanStrobel, 26 Januar 2014, 12:08:13

Vorheriges Thema - Nächstes Thema

DasQ

Fhem on MacMini/Ubuntu.
Absoluter Befürworter der Konsequenten-Kleinschreibung https://de.wikipedia.org/wiki/Kleinschreibung
Infos zu Klimawandel http://www.globalcarbonatlas.org

birdy

Zitat von: DasQ am 20 Oktober 2022, 09:17:33
Ok, wieviel mA hat das Netzteil?
momentan 20'000  (hängt am USB Port meines Desktop PC's wegen Serial Monitor)

Verstehe die Frage nicht. Der WeMos hängt immer an der gleichen Stromversorgung. Manchmal kommt eine funktionierende Verbindung WeMos <-> FHEM zu Stande manchmal nicht. Wenn einmal eine funktionierende Verbindung zustande gekommen ist, läuft diese ja über Tage stabil.

FHEM  @Debian bullseye @Proxmox VE 8.1.3
@intelNUC's  (i5)
CUL 433(a-culfw), CUL 868(SlowRF), Max-Cube CUN geflash, HM-CFG-USB-2 (HMALND)

DerD

Ich habe da mal eine Frage zum Auslesen der Analogeingänge. Wenn ich mein DMM mit dem Pin verbinde, wird dieser bei

attr Powercounter5 pinD4 falling pulldown min 5 => low
attr Powercounter5 pinD4 falling pullup min 5 => high

So soll es sein.
Bei

attr PowerCounter5 pinA0 rising pullup min 4 analog out 27 threshold 120,220
oder
attr PowerCounter5 pinA0 rising pulldown min 4 analog out 27 threshold 120,220

ändert sich am Pegel nichts, egal ob er vorher auf High oder low war. Erwartet hätte ich jetzt, dass tatsächlich Widerstände trotz Analogeingang zugeschaltet werden, oder aber dieser immer als richtiger Analogeingang ohne pullup/pulldown beschaltet wird. Aber so scheint mir, dass einmal zugeschaltete Widerstände nicht mehr aufgehoben werden.
Kann das denn sein?

Und eine Ergänzungsfrage, an meinem dev-board wäre demnach Pin5 gleichzeitig digitaler / D4 und analoger / A0 input. Oder wo ist mein Fehler?

so sehen die Attributes aus:

pinA0 rising pullup min 4 analog out 27 threshold 120,220 deleteattr
pinD4 falling pulldown min 5 deleteattr


Eine weitere Frage: meine Reflex-Lichtschranke hat "aus" bzw. ohne Reflexion ~3,2V, und generiert negative Pulse. Mit dem Oszi schön erkennbar, bis 1,5V Höhe. Beobachete Analoglevel sind immer immer 0. In der Beschreibung steht, es wird die Differenz gemessen. Ich vermute, damit ist wohl die positive Differenz gemeint, eine negative erkennt er nicht. Kann das sein?

ich konnte aufklären:
Habe die Lichtschranke umgelötet auf positive Pulse, immer noch nichts. Dann finde ich im source-code     36, FF, FF, 39};                // 36 is A0, 39 is avaliable but also input only

Ein D36 ist auf meinem board nicht beschriftet, aber laut Pinout ist das Pin "VP", den gibt es. Probiert und funktioniert.
Damit ist auch klar, dass D4 und A0 nicht derselbe Pin ist. Oh mei.
Gruß,
Dieter

thymjan

Habe ein TTGO T-Display ESP32 mit der entsprechenden Firmware geflasht. Möchte einen Ferraris-Zähler damit auslesen. Das Display funktioniert wie beschrieben.
Wenn ich das attr enableHistory auf 1 setze kann ich mir auch mit get history die Werte anzeigen lassen.
Aber das Anzeigen der analogen Werte zum Justieren/Optimieren der Triggerlevel will nicht gelingen.
Die Liste ist immer leer.

Wie funktioniert das?

Hier meine momentane Konfiguration:

defmod ACT ArduCounter 192.168.1.161:80
attr ACT board T-Display
attr ACT deviceDisplay 36,kWh,kW
attr ACT disable 0
attr ACT enableAnalogDebug 0
attr ACT enableHistory 1
attr ACT enableSerialEcho 0
attr ACT interval 5,60,2,15,10,3
attr ACT keepAliveDelay 30
attr ACT keepAliveRetries 3
attr ACT keepAliveTimeout 3
attr ACT nextOpenDelay 20
attr ACT pin36 rising pullup min 4 analog out 27 threshold 120,220
attr ACT pulsesPerKWh 75
attr ACT room ArduCounter ACT
attr ACT stateFormat Momentanverbrauch Wärme: [$name:power36] kW\
<br>\
Zählerstände Wärme kumuliert: [$name:calcCounter36f] kWh\
<br>\
Update\
[$name:pin36:t]\
<br>\
<br>\
Wärme\
<br>\
Now [$name:statCalcCounter36f]\
<br>\
Last [$name:statCalcCounter36fLast]
attr ACT userReadings calcCounter36f:calcCounter36.* {sprintf('%.1f',ReadingsNum($name,"calcCounter36",0))}

setstate ACT Momentanverbrauch Wärme: 7.200 kW\
<br>\
Zählerstände Wärme kumuliert: 2.5 kWh\
<br>\
Update\
2022-11-11 20:21:32\
<br>\
<br>\
Wärme\
<br>\
Now [ACT:statCalcCounter36f]\
<br>\
Last [ACT:statCalcCounter36fLast]
setstate ACT 2022-11-11 20:21:36 RSSI -68
setstate ACT 2022-11-11 20:21:32 calcCounter36 2.53333333333333
setstate ACT 2022-11-11 20:21:32 calcCounter36_i 0.946666666666667
setstate ACT 2022-11-11 20:21:32 calcCounter36f 2.5
setstate ACT 2022-11-11 20:21:32 countDiff36 9
setstate ACT 2022-11-11 20:21:32 interpolatedLong36 190
setstate ACT 2022-11-11 20:21:32 long36 119
setstate ACT 2022-11-11 20:21:32 pin36 21
setstate ACT 2022-11-11 20:21:32 power36 7.200
setstate ACT 2022-11-11 20:21:32 reject36 0
setstate ACT 2022-11-11 20:19:35 state opened
setstate ACT 2022-11-11 20:21:32 timeDiff36 60001


history

Seq      1 2022-11-11 20:19:32 Pin 36   2.171 seconds at 1 (analog 1319) -> pulse continued after ignored drop
Seq      2 2022-11-11 20:19:34 Pin 36   5.782 seconds at 1 (analog 1503) -> pulse continued after ignored drop
Seq      3 2022-11-11 20:19:40 Pin 36   0.124 seconds at 0 (analog 48) -> gap
Seq      4 2022-11-11 20:19:40 Pin 36   0.384 seconds at 1 (analog 377) -> pulse counted
Seq      5 2022-11-11 20:19:40 Pin 36   0.200 seconds at 0 (analog 55) -> gap
Seq      6 2022-11-11 20:19:40 Pin 36   0.476 seconds at 1 (analog 1728) -> pulse counted
Seq      7 2022-11-11 20:19:41 Pin 36   0.108 seconds at 0 (analog 42) -> gap
Seq      8 2022-11-11 20:19:41 Pin 36   0.556 seconds at 1 (analog 2857) -> pulse counted
Seq      9 2022-11-11 20:19:41 Pin 36   0.120 seconds at 0 (analog 39) -> gap
Seq     10 2022-11-11 20:19:42 Pin 36   0.805 seconds at 1 (analog 3045) -> pulse counted
Seq     11 2022-11-11 20:19:42 Pin 36   0.124 seconds at 0 (analog 42) -> gap
Seq     12 2022-11-11 20:19:43 Pin 36   0.616 seconds at 1 (analog 1328) -> pulse counted
Seq     13 2022-11-11 20:19:43 Pin 36   0.156 seconds at 0 (analog 41) -> gap
Seq     14 2022-11-11 20:19:43 Pin 36   0.676 seconds at 1 (analog 2180) -> pulse counted
Seq     15 2022-11-11 20:19:44 Pin 36   0.096 seconds at 0 (analog 46) -> gap
Seq     16 2022-11-11 20:19:44 Pin 36   0.532 seconds at 1 (analog 1984) -> pulse counted
Seq     17 2022-11-11 20:19:45 Pin 36   0.124 seconds at 0 (analog 37) -> gap
Seq     18 2022-11-11 20:19:45 Pin 36   0.604 seconds at 1 (analog 2821) -> pulse counted
Seq     19 2022-11-11 20:19:45 Pin 36   0.088 seconds at 0 (analog 59) -> gap
Seq     20 2022-11-11 20:19:45 Pin 36   0.552 seconds at 1 (analog 1286) -> pulse counted
Seq     21 2022-11-11 20:19:46 Pin 36   0.132 seconds at 0 (analog 45) -> gap
Seq     22 2022-11-11 20:19:46 Pin 36   1.260 seconds at 1 (analog 2167) -> pulse counted
Seq     23 2022-11-11 20:19:47 Pin 36   0.108 seconds at 0 (analog 45) -> gap
Seq     24 2022-11-11 20:19:47 Pin 36   0.512 seconds at 1 (analog 2022) -> pulse counted
Seq     25 2022-11-11 20:19:48 Pin 36   0.176 seconds at 0 (analog 58) -> gap
Seq     26 2022-11-11 20:19:48 Pin 36   0.228 seconds at 1 (analog 1236) -> pulse counted
Seq     27 2022-11-11 20:19:48 Pin 36  48.102 seconds at 0 (analog 26) -> gap
Seq     28 2022-11-11 20:20:37 Pin 36   0.387 seconds at 1 (analog 1759) -> pulse counted
Seq     29 2022-11-11 20:20:37 Pin 36   0.108 seconds at 0 (analog 48) -> gap
Seq     30 2022-11-11 20:20:37 Pin 36   0.436 seconds at 1 (analog 2507) -> pulse counted
Seq     31 2022-11-11 20:20:37 Pin 36   0.116 seconds at 0 (analog 49) -> gap
Seq     32 2022-11-11 20:20:38 Pin 36   0.440 seconds at 1 (analog 1696) -> pulse counted
Seq     33 2022-11-11 20:20:38 Pin 36   0.100 seconds at 0 (analog 46) -> gap
Seq     34 2022-11-11 20:20:38 Pin 36   0.316 seconds at 1 (analog 2039) -> pulse counted
Seq     35 2022-11-11 20:20:38 Pin 36   0.136 seconds at 0 (analog 45) -> gap
Seq     36 2022-11-11 20:20:39 Pin 36   0.432 seconds at 1 (analog 2118) -> pulse counted
Seq     37 2022-11-11 20:20:39 Pin 36   0.088 seconds at 0 (analog 49) -> gap
Seq     38 2022-11-11 20:20:39 Pin 36   0.348 seconds at 1 (analog 2208) -> pulse counted
Seq     39 2022-11-11 20:20:39 Pin 36   0.112 seconds at 0 (analog 53) -> gap
Seq     40 2022-11-11 20:20:40 Pin 36   0.444 seconds at 1 (analog 1717) -> pulse counted
Seq     41 2022-11-11 20:20:40 Pin 36   0.096 seconds at 0 (analog 46) -> gap
Seq     42 2022-11-11 20:20:40 Pin 36   0.940 seconds at 1 (analog 2143) -> pulse counted
Seq     43 2022-11-11 20:20:41 Pin 36   0.088 seconds at 0 (analog 64) -> gap
Seq     44 2022-11-11 20:20:41 Pin 36   0.368 seconds at 1 (analog 2618) -> pulse counted


Muss da "enableAnalogDebug" gesetzt sein?

thymjan

Au Mann, habe eben erst kapiert, das der Aufruf von "get levels" keine Messdatenreihe ausgibt, sondern die Häufigkeit der jeweils gemessenen analogen Level.

Folgendes gilt doch?
Habe ich beim ESP32 einen Eingang analog definiert, kann dort an eine Spannung von 0 bis 3,3 Volt angelegt werden oder gemessen werden.
Die Wertebereich beinhaltet Werte von 0 bis 4095.
Beim ESP8266 sind es doch 0 bis 1 Volt und Werte von 0 bis 1023, oder?


Bei meinem Testaufbau (Ferrariszähler) werden im reflektierenden Bereich Level-Werte um 4000 ausgegeben, bei der Markierung Werte um 1000.
Wenn ich die Markierung als Puls definiere, dann suche ich einen fallenden Puls, oder?
Mit folgender PIN Definition:
falling pullup min 4 analog out 27 threshold 2000,1200
habe ich jedoch keinen Erfolg. Es werden keine Pulse gezählt.

Ist pullup / pulldown beim analogen Eingang überhaupt sinnvoll?

Irgendwie stehe ich auf dem Schlauch.
Kann mich jemand in die richtige Richtung schubsen?

thymjan

Kann es sein, dass threshold-Werte über 1023 nicht richtig interpretiert werden?

void CmdThreshold() {   
    if (!checkVal(0,1,1023)) return;                            // analog threshold min, min 1, max 1023
    if (!checkVal(1,1,1023)) return;                            // analog threshold max, min 1, max 1023
    for (uint8_t aIdx = 0; aIdx < maxAnalogIndex; aIdx++)
        analogData[aIdx].thresholdMin = commandData[0];
    for (uint8_t aIdx = 0; aIdx < maxAnalogIndex; aIdx++)
        analogData[aIdx].thresholdMax = commandData[1];

    Output->print(F("D analog thresholds set to ")); Output->print(commandData[0]);
    Output->print(F(" ")); Output->println(commandData[1]);
}


Angehängt mein Diagramm der gemessenen Level-Werte des Ferraris-Zählers.
So kann ich doch nicht so richtig Spass haben, oder?

thymjan

Habe den Vorwiderstand der IR-LED von 120 Ohm auf 300 Ohm erhöht.
Jetzt klappt's.

attr ACT pin36 rising pullup min 4 analog out 27 threshold 900,950


Als Faustregel für den threshold: Die "ruhige" Mitte zwischen den zwei verrauschten Peaks (bzw. verrauschten Stellen am Anfang und Ende des Diagramms) nehmen und dann für den min und max Wert 20 abziehen bzw. dazuzählen. Kann man das so sagen?
Jeweils die Punkte, wo die "Datenberge" die Talsole erreichen ergibt bei mir eine noch präzisere Erkennung der Impulse.
Beim Blick in die History werden dann, bei gleichbleibendem Verbrauch, die Zeiten für Impuls und Lücke noch besser angeglichen.

RalfRog

Hallo Thymjan

Welchen Sensor hattest du an dem Konstrukt verbaut?

Beim mir stockt es... beim Weitermachen. Zähle noch digitale Pulse und bin den Umbau zu analog noch nicht angegangen.
Digital ist es ein bischen ein Schätzeisen -zählt leider viel zuviel: in 100 Tagen statt 600 kWh etwa 800 kWh (+30%)

Gruß Ralf
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

thymjan

Habe zunächst mit dem KY-033 Modul angefangen, da ist ein TCRT5000 verbaut. Da das Modul unmodifiziert die Impulse nicht richtig erkannt hat, habe ich die IR Lichtschranke kurzerhand ausgelötet (das ist aber auch nix anderes als ein Phototransistor und eine darauf abgestimmte IR-Diode in einem speziell gewinkelten Kunststoffkäfig). Den TCRT5000 habe ich direkt mit Heißkleber in folgendes Gehäuse geklebt:
https://www.mwinklerblog.de/smarthome/aktoren-sensoren/stromzähler/
Die hatte ich zunächst an einem Nano, der die Impulse digital an den Arducounter weitergeleitet hat.
https://heinz-otto.blogspot.com/2016/10/ferrariszahler-abtasten-ein-experiment.html
Jetzt ist es mir endlich gelungen den Nano und den ESP8266 durch einen ESP32 mit Display zu ersetzen.

RalfRog

Hi
Den TCRT5000 im separaten Gehäuse, aber mit den Vorwiderständen wie im Plan?

Da bin ich (immer noch digitale Auswertung) am Ende auch gelandet.
Ich musste im fertigen Modul (mit TCRT5000) den Vorwiderstand des Fototransistors deutlich von 10k Richtung 2.2k ändern um den Arbeitpunkt am Analogausgang von 0,16V auf etwa 1,5V bis 2V anzuheben. Sonst geht das DeltaU beim Durchlaufen der roten Markierun im Rauschen unter. Den Vorwiderstand an der IR Diode weiss ich gerade nicht.

Muss mich mal aufraffen statt D0 den A0 per Analogeingang am ESP32 auszuwerten. Dein Erfolg spricht dafür  ;D
Zählt dein Modul denn weitgehend sauber?
FHEM auf Raspi 2B mit nanoCUL, HM-MOD-RPI-PCB und über LAN MAX!Cube mit a-culFW (Stack 868 + 433)
HM- Fensterkontakte, UP-Schalter, Bewegungsmelder und ein Rauchmelder

thymjan

Schreibe gerade von unterwegs. Habe gestern noch den ArduCounter auf einem ESP8266 getestet. Hier hatte ich nur Erfolg bei Anschluss über die serielle Schnittstelle. Über WLAN ist die Verbindung häufig zusammengebrochen.
Stabil über WLAN funktioniert es jetzt über den ESP32 mit Display (TTGO T-Display).
Die Zählung läuft weitestgehend sauber. Hab's aber noch nicht so lange am Laufen.
Kann heute abend mal schauen.
Meine Stromversorgung ist nicht optimal. Steckernetzteil mit 3A ist über ein gut 5m langes Kabel in den Schaltschrank verlegt und teilt sich die Versorgung mit einem ESP8266 mit Tasmota.

thymjan

Zitat von: RalfRog am 16 November 2022, 15:06:39
Den TCRT5000 im separaten Gehäuse, aber mit den Vorwiderständen wie im Plan?
Ja.
Zitat
Muss mich mal aufraffen statt D0 den A0 per Analogeingang am ESP32 auszuwerten. Dein Erfolg spricht dafür  ;D
Zählt dein Modul denn weitgehend sauber?
Der ESP32 kann die Analogeingänge ja an verschiedene Pins zuweisen. Bei mir läuft momentan pin36 (also nicht a0). Innerhalb eines Tages war es jetzt auf eine Nachkommastelle genau (sind knapp 20kWh durchgelaufen).

Das sind meine momentanen Einstellungen:
defmod ACT ArduCounter XXX.XXX.XXX.XXX:80
attr ACT board T-Display
attr ACT devStateIcon .*opened:15px-green .*disconnected:15px-red
attr ACT deviceDisplay 36,kWh,kW
attr ACT disable 0
attr ACT enableAnalogDebug 1
attr ACT enableHistory 1
attr ACT enableSerialEcho 0
attr ACT interval 30,1800,5,2,10,3
attr ACT keepAliveDelay 10
attr ACT keepAliveRetries 3
attr ACT keepAliveTimeout 3
attr ACT nextOpenDelay 60
attr ACT pin36 falling pullup min 50 analog out 27 threshold 560,640
attr ACT pulsesPerKWh 75
attr ACT room ArduCounter ACT
attr ACT userReadings calcCounter36f:calcCounter36.* {sprintf('%.1f',ReadingsNum($name,"calcCounter36",0))}


Allerdings kämpfe ich seit wenigen Tagen wieder mit Verbindungsabrüchen. Immerhin hatte das auf die Zählgenauigkeit keine Auswirkungen.
Ein manuelles set ACT reconnect ergibt sofort wieder eine Verbindung. Bin mir nicht sicher ob die keepAlive / nextOpenDelay Einstellungen so wie ich sie gewählt habe sinnvoll sind.
Mit einem notify oder doif auf den state disconnected hatte ich bisher keinen Erfolg:

defmod doifACT DOIF ([ACT:state] eq "disconnected") (set ACT reconnect; setreading ACT watchdog warning) DOELSEIF ([ACT:state] eq "opened") (setreading ACT watchdog ok)
attr doifACT devStateIcon .*initialized:15px-yellow .*cmd_2:15px-green .*cmd_1:15px-red
attr doifACT do resetwait
attr doifACT wait 20,10


Jetzt behelfe ich mir mit einem stündlichen per defmod atACT at +*01:00:00 set ACT reconnect abgesetzten Kommando...  :-\

StefanStrobel

Hallo,

was steht denn im Log wenn die Verbindung weg ist?
Eigentlich ist ja der keepAlive-Mechanismus dazu da, die Verbindung neu aufzubauen wenn sie abbricht.
Das hilft natürlich alles nichts wenn der ESP sich nicht mit dem Access-Point verbindet.
Das sollte das Framework eigentlich selbst regeln, aber offenbar klappt das nicht immer ...

Gruß
    Stefan

thymjan

Hallo Stefan,

das steht im log mit verbose 5:

2022.11.20 09:21:58 5: DevIo_SimpleWrite ACT: 1,10k.
2022.11.20 09:21:58 5: ACT: device sent alive response: AR-70
2022.11.20 09:22:08 5: ACT: sending k(eepAlive) to device
2022.11.20 09:22:08 5: DevIo_SimpleWrite ACT: 1,10k.
2022.11.20 09:22:08 5: ACT: device sent alive response: AR-70
2022.11.20 09:22:18 5: ACT: sending k(eepAlive) to device
2022.11.20 09:22:18 5: DevIo_SimpleWrite ACT: 1,10k.
2022.11.20 09:22:18 5: ACT: device sent alive response: AR-70
2022.11.20 09:22:28 5: ACT: sending k(eepAlive) to device
2022.11.20 09:22:28 5: DevIo_SimpleWrite ACT: 1,10k.
2022.11.20 09:22:28 5: ACT: device sent alive response: AR-71
2022.11.20 09:22:38 5: ACT: sending k(eepAlive) to device
2022.11.20 09:22:38 5: DevIo_SimpleWrite ACT: 1,10k.
2022.11.20 09:22:38 5: ACT: device sent alive response: AR-70
2022.11.20 09:22:48 5: ACT: sending k(eepAlive) to device
2022.11.20 09:22:48 5: DevIo_SimpleWrite ACT: 1,10k.
2022.11.20 09:22:48 5: ACT: device sent alive response: AR-69
2022.11.20 09:22:58 5: ACT: sending k(eepAlive) to device
2022.11.20 09:22:58 5: DevIo_SimpleWrite ACT: 1,10k.
2022.11.20 09:22:58 5: ACT: device sent alive response: AR-69
2022.11.20 09:23:08 5: ACT: sending k(eepAlive) to device
2022.11.20 09:23:08 5: DevIo_SimpleWrite ACT: 1,10k.
2022.11.20 09:23:08 5: ACT: device sent alive response: AR-69
2022.11.20 09:23:18 5: ACT: sending k(eepAlive) to device
2022.11.20 09:23:18 5: DevIo_SimpleWrite ACT: 1,10k.
2022.11.20 09:23:18 5: ACT: device sent alive response: AR-69
2022.11.20 09:23:28 5: ACT: sending k(eepAlive) to device
2022.11.20 09:23:28 5: DevIo_SimpleWrite ACT: 1,10k.
2022.11.20 09:23:28 5: ACT: device sent alive response: AR-69
2022.11.20 09:23:38 5: ACT: sending k(eepAlive) to device
2022.11.20 09:23:38 5: DevIo_SimpleWrite ACT: 1,10k.
2022.11.20 09:23:38 5: ACT: device sent alive response: AR-69
2022.11.20 09:23:42 3: 192.168.1.161:80 disconnected, waiting to reappear (ACT)
2022.11.20 09:23:48 5: ACT: sending k(eepAlive) to device
2022.11.20 09:23:48 5: ACT: Write: device is disconnected, dropping line to write
2022.11.20 09:23:51 3: ACT: device didn't reply to k(eeepAlive), count=1
2022.11.20 09:23:58 5: ACT: sending k(eepAlive) to device
2022.11.20 09:23:58 5: ACT: Write: device is disconnected, dropping line to write
2022.11.20 09:24:01 3: ACT: device didn't reply to k(eeepAlive), count=2
2022.11.20 09:24:08 5: ACT: sending k(eepAlive) to device
2022.11.20 09:24:08 5: ACT: Write: device is disconnected, dropping line to write
2022.11.20 09:24:11 3: ACT: device didn't reply to k(eeepAlive), count=3
2022.11.20 09:24:18 5: ACT: sending k(eepAlive) to device
2022.11.20 09:24:18 5: ACT: Write: device is disconnected, dropping line to write
2022.11.20 09:24:21 3: ACT: device didn't reply to k(eeepAlive), no retries left, setting device to disconnected
2022.11.20 10:16:38 4: ACT: set reconnect called
2022.11.20 10:16:38 4: ACT: trying to open connection to 192.168.1.161:80
2022.11.20 10:16:38 3: Opening ACT device 192.168.1.161:80
2022.11.20 10:16:38 5: HttpUtils url=http://192.168.1.161:80/ NonBlocking via http
2022.11.20 10:16:38 4: IP: 192.168.1.161 -> 192.168.1.161
2022.11.20 10:16:38 5: ACT: DoOpen waiting for callback
2022.11.20 10:16:38 3: ACT device opened
2022.11.20 10:16:38 5: ACT: DoOpen succeeded in callback
2022.11.20 10:16:38 5: ACT: sending k(eepAlive) to device
2022.11.20 10:16:38 5: DevIo_SimpleWrite ACT: 1,10k.
2022.11.20 10:16:38 5: attribute board is set to T-Display and is overwriting board ESP32 reported by device
2022.11.20 10:16:38 5: ACT: device sent hello: ArduCounter V4.26 on ESP32 Espressif ESP32 Dev Module with display compiled Jun  6 2020 12:41:51 Hello
2022.11.20 10:16:38 5: ACT: Device Time 135551.13, Offset 1668800.251, Drift -3.283s in 64035.155s, -0.01%
2022.11.20 10:16:38 4: ACT: device sent time info: N135551130,0B1107,0
2022.11.20 10:16:38 5: ACT: Device sent available pins 4,17,21,22,25,26,27,32,33,34,35,36,39
2022.11.20 10:16:38 4: ACT: device sent interval config 30,1800,5,2,0,10
2022.11.20 10:16:38 4: ACT: device sent devVerbose 1,0,0,1,0
2022.11.20 10:16:38 4: ACT: device sent config for pin 36: P36fp m50out27t560/640
2022.11.20 10:16:38 5: ACT: device sent alive response: AR-70
2022.11.20 10:16:39 5: ACT: ConfigureDevice: send config
2022.11.20 10:16:39 5: ACT: ConfigurePin creates command 36,2,1,50,27,560,640a
2022.11.20 10:16:39 5: DevIo_SimpleWrite ACT: 36,2,1,50,27,560,640a.
2022.11.20 10:16:39 5: ACT: ConfigureDevice: no pins in running config without attribute in Fhem
2022.11.20 10:16:39 5: ACT: ConfigureIntervals creates command 30,1800,5,2,,10,3,10i
2022.11.20 10:16:39 5: DevIo_SimpleWrite ACT: 30,1800,5,2,,10,3,10i.
2022.11.20 10:16:39 5: ACT: ConfigureVerboseLevels creates command 1,0,0,1,0v
2022.11.20 10:16:39 5: DevIo_SimpleWrite ACT: 1,0,0,1,0v.
2022.11.20 10:16:39 5: ACT: ConfigureDisplay pin 36 / 36, ppu 75, fut 60
2022.11.20 10:16:39 5: ACT: ConfigureDisplay 36, 75, 1, kWh, 60, kW
2022.11.20 10:16:39 5: ACT: ConfigureDisplay creates command 36,75,1,22379,104,60,22379,0u
2022.11.20 10:16:39 5: DevIo_SimpleWrite ACT: 36,75,1,22379,104,60,22379,0u.
2022.11.20 10:16:39 5: DevIo_SimpleWrite ACT: s.
2022.11.20 10:16:40 4: ACT: device: defined P36fp m50out27t560/640
2022.11.20 10:16:40 4: ACT: device sent interval config 30,1800,5,2,0,10
2022.11.20 10:16:40 4: ACT: device sent devVerbose 1,0,0,1,0
2022.11.20 10:16:40 4: ACT: device sent unit display config 36,75,1,kWh,60,kW
2022.11.20 10:16:40 4: ACT: device: Status: ArduCounter V4.26 on ESP32 Espressif ESP32 Dev Module with display compiled Jun  6 2020 12:41:51
2022.11.20 10:16:40 4: ACT: device: Connected to mellificium with IP 192.168.1.161 RSSI -69
2022.11.20 10:16:40 4: ACT: device sent interval config 30,1800,5,2,0,10
2022.11.20 10:16:40 4: ACT: device sent devVerbose 1,0,0,1,0
2022.11.20 10:16:40 4: ACT: device sent unit display config 36,75,1,kWh,60,kW
2022.11.20 10:16:40 4: ACT: device sent config for pin 36: P36fp m50out27t560/640, DR36C3046D0/0T0X0
2022.11.20 10:16:40 4: ACT: device: EEPROM Config: 30,1800,5,2,0,10i1,0,0,1,0v36,75,1,22379,104,60,22379u36,2,1,50,27,560,640a
2022.11.20 10:16:40 4: ACT: device: Next report in 24590 milliseconds
2022.11.20 10:16:48 5: ACT: sending k(eepAlive) to device
2022.11.20 10:16:48 5: DevIo_SimpleWrite ACT: 1,10k.
2022.11.20 10:16:48 5: ACT: device sent alive response: AR-70
2022.11.20 10:16:58 5: ACT: sending k(eepAlive) to device
2022.11.20 10:16:58 5: DevIo_SimpleWrite ACT: 1,10k.
2022.11.20 10:16:58 5: ACT: device sent alive response: AR-70
2022.11.20 10:17:08 5: ACT: sending k(eepAlive) to device
2022.11.20 10:17:08 5: DevIo_SimpleWrite ACT: 1,10k.
2022.11.20 10:17:08 5: ACT: device sent alive response: AR-69
2022.11.20 10:17:18 5: ACT: sending k(eepAlive) to device
2022.11.20 10:17:18 5: DevIo_SimpleWrite ACT: 1,10k.


Der Disconnect wird gemeldet, aber es wird nochmal versucht die Kommunikation aufzunehmen? Dann nach drei Versuchen wird der Status disconnected gesetzt.

Habe die ArduCounter Version geflasht, die bei fhem dabei ist.

Grüße
(auch) Stefan

StefanStrobel

Hallo Stefan,

das ist seltsam. Kannst Du mal ein list ACT posten?
Eigentlich sollte das Modul alle 60 Sekunden versuchen, die Verbindung wieder aufzubauen. Ein set reconnect sollte überflüssig sein.
Bei mir sieht das so aus:


2022.11.21 18:39:05 5: ACESPTest: sending k(eepAlive) to device
2022.11.21 18:39:05 5: DevIo_SimpleWrite ACESPTest: 1,10k.
2022.11.21 18:39:05 5: ACESPTest: device sent alive response: AR-61

2022.11.21 18:39:15 5: ACESPTest: sending k(eepAlive) to device
2022.11.21 18:39:15 5: DevIo_SimpleWrite ACESPTest: 1,10k.
2022.11.21 18:39:17 3: ACESPTest: device didn't reply to k(eeepAlive), count=1
2022.11.21 18:39:25 5: ACESPTest: sending k(eepAlive) to device
2022.11.21 18:39:25 5: DevIo_SimpleWrite ACESPTest: 1,10k.
2022.11.21 18:39:27 3: ACESPTest: device didn't reply to k(eeepAlive), count=2
2022.11.21 18:39:35 5: ACESPTest: sending k(eepAlive) to device
2022.11.21 18:39:35 5: DevIo_SimpleWrite ACESPTest: 1,10k.
2022.11.21 18:39:37 3: ACESPTest: device didn't reply to k(eeepAlive), no retries left, setting device to disconnected
2022.11.21 18:39:37 3: 192.168.70.198:80 disconnected, waiting to reappear (ACESPTest)

2022.11.21 18:39:37 5: HttpUtils url=http://192.168.70.198:80/ NonBlocking via http
2022.11.21 18:39:37 4: IP: 192.168.70.198 -> 192.168.70.198
2022.11.21 18:39:40 5: ACESPTest: Open callback: connect to http://192.168.70.198:80 timed out
2022.11.21 18:40:00 3: EnOcean set Bew_Beet_rechts B0
2022.11.21 18:40:40 5: HttpUtils url=http://192.168.70.198:80/ NonBlocking via http
2022.11.21 18:40:40 4: IP: 192.168.70.198 -> 192.168.70.198
2022.11.21 18:40:43 5: ACESPTest: Open callback: connect to http://192.168.70.198:80 timed out

2022.11.21 18:41:43 5: HttpUtils url=http://192.168.70.198:80/ NonBlocking via http
2022.11.21 18:41:43 4: IP: 192.168.70.198 -> 192.168.70.198
2022.11.21 18:41:43 3: 192.168.70.198:80 reappeared (ACESPTest)
2022.11.21 18:41:43 5: ACESPTest: DoOpen succeeded in callback
2022.11.21 18:41:43 5: ACESPTest: sending k(eepAlive) to device
2022.11.21 18:41:43 5: DevIo_SimpleWrite ACESPTest: 1,10k.
2022.11.21 18:41:43 5: ACESPTest: device sent hello: ArduCounter V4.27 on ESP8266 PLATFORMIO_D1_MINI_PRO compiled Oct 14 2022 20:43:41 with core version 3.0.2 Hello
2022.11.21 18:41:43 4: ACESPTest: device did reset (now 52.202, before 53.352). New offset is 1669052451.36845
2022.11.21 18:41:43 5: ACESPTest: Device Time 52.202, Offset 1669052.451, Drift 1191.980s in 1677.644s, 71.05%
2022.11.21 18:41:43 4: ACESPTest: device sent time info: N52202,0B567,0
2022.11.21 18:41:43 5: ACESPTest: Device sent available pins 0,1,2,5,6,7,17
2022.11.21 18:41:43 4: ACESPTest: device sent interval config 30,60,2,2,50,4
...


Gruss
   Stefan