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

birdy

Hallo Stefan
Ich habe zurzeit nur zwei WeMos D1 Mini Pro zur Hand.  Kannst Du mir evtl. eine funktionierende Variante empfehlen?

Nein, das habe das noch nicht probiert, ich weiss auch (noch) nicht genau wie das geht.

Du meinst das .bin zum flashen selbst generieren?
Ich kann mal versuchen ob ich das zu Stande bringe. Was brauche ich dazu alles?
Arduion IDE, Source Code vom ArduCounter, WifiManager........................und sonst noch etwas?

Ich habe schon mal die Arduino IDE und die HW Erweiterung für die WeMos ESP's installiert. Und auch den SourceCode für ArduionCounter aus GIT runtergeladen. Aber da muss ich mich erst einarbeiten. Ich bin mir momentan noch etwas unsicher, ob ich das auch schaffe.. 
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)

SamNitro

Was auch wichtig ist, mal den esp komplett löschen entweder mit einer leeren Datei beschreiben die den ganzen Speicher ausnutzt oder mit einem Tool.
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

birdy

Compilation error: 'now' was not declared in this scope; did you mean 'pow'?

bool checkKeepAlive() {       
    now = millis();                                         
    if((now - lastKeepAlive) > (keepAliveTimeout*3000)) {   // check keepAlive timout (* 3 secs)
        Serial.println(F("D no keepalive - close"));
        Output->println(F("D no keepalive - close"));   
        //Output->print(F("D timeout was "));
        //Output->print(keepAliveTimeout);
        //Output->print(F(" last at "));
        //Output->print(lastKeepAlive);
        //Output->print(F(" now "));
        //Output->print(now);
        Output->println();
        Client1.stop();                                     // close connection due to keepalive timeout
        return false;
    }
    return true;
}
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)

birdy

Zitat von: SamNitro am 30 September 2022, 16:55:44
Was auch wichtig ist, mal den esp komplett löschen entweder mit einer leeren Datei beschreiben die den ganzen Speicher ausnutzt oder mit einem Tool.
Das habe ich gemacht, ändert aber nichts am Problem.
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)

birdy

Zitat von: birdy am 30 September 2022, 17:12:43
Compilation error: 'now' was not declared in this scope; did you mean 'pow'?

bool checkKeepAlive() {       
    now = millis();                                         
    if((now - lastKeepAlive) > (keepAliveTimeout*3000)) {   // check keepAlive timout (* 3 secs)
        Serial.println(F("D no keepalive - close"));
        Output->println(F("D no keepalive - close"));   
        //Output->print(F("D timeout was "));
        //Output->print(keepAliveTimeout);
        //Output->print(F(" last at "));
        //Output->print(lastKeepAlive);
        //Output->print(F(" now "));
        //Output->print(now);
        Output->println();
        Client1.stop();                                     // close connection due to keepalive timeout
        return false;
    }
    return true;
}

Ich denke das habe ich gefixed......

Akutelles Probelm:
Compilation error: 'SERIAL_SPEED' was not declared in this scope; did you mean 'SERIAL_8E2'?

bei
    Serial.begin(SERIAL_SPEED);             // initialize serial



Ist die ArduCounter Source auf GIT aktuell ?
https://github.com/StefanStrobel/ArduCounter
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)

StefanStrobel

Hallo birdy,

Du solltest PlatformIO nehmen und dann in der platformio.ini die Zeile 19 statt der 18 auskommentieren:
Zitat
;default_envs = d1_mini_pro
Damit geht es sehr viel einfacher als mit dem Arduino IDE.
Allerdings kommt es auch bei PlatformIO vor, dass eine neuere Bibliothek auf einmal Probleme beim compilieren macht.
Ich teste es morgen selbst mal wieder, ob noch alles passt ...

Gruß
    Stefan

birdy

Hallo Stefan

PlatformIO kenne ich (noch) nicht.
Ich habe gestern mit Arduino IDE compiliert. Im Moment ,,läuft" diese Version bei mir. Ich muss einfach nach jedem Restart des WeMos auch noch meinen Router restarten. Das ist etwas umständlich, aber so bekomme ich mindestens eine Verbindung zwischen ArduCounter und FHEM .
Evtl. werde ich mich in den nächsten Tagen auch mal noch mit PlatformIO beschäftigen.

Falls Du mit PlatformIO ein neues .bin erstellst, könntest Du es mir zu Verfügung stellen?

Danke und Gruss
Birdy
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)

Kornelius777

Hallo Stefan,

ich habe ArduCounter seit Jahren am Gaszähler laufen. Grundsätzlich klappt alles prima - allerdings wird immer mal wieder ein Einzelevent "verschluckt". Warum auch immer.

Mein Aufbau ist:
Der Gaszähler hat einen Magneten im letzten Rädchen des Zählwerkes.
Ein elektronischer Kompass an einem eigenen Arduino wird ausgewertet, und der Arduino macht daraus "digital high/low". Natürlich alles seeeeehr langsam, da sich der Gaszähler zum Glück nur langsam dreht.
Der Digitalausgang geht auf einen zweiten Arduino, auf dem ArduCounter läuft.

Meine Frage an dich:
Benötige ich das Attribut "interval" eigentlich?
Im Wiki wird darauf relativ "dünn" eingegangen.

Danke dir für deine tolle Arbeit!

Grüße!

Kornelius

StefanStrobel

#698
Zitat von: birdy am 01 Oktober 2022, 13:34:00
Falls Du mit PlatformIO ein neues .bin erstellst, könntest Du es mir zu Verfügung stellen?

Eine neu compiliertes bin für den D1 Mini Pro hängt an.
Habs auch im SVN aktualisiert.

Gruss
   Stefan

EDIT: neue Firmware hat scheinbar noch ein Problem mit der Kommunikation -> entfernt

birdy

Hallo Stefan

Vielen Dank für den neuen Compile

Wenn ich den WeMos restarte, verbindet er sich gem. Serial Monitor wieder mit meinem Home Wlan.
D Try reconnecting WiFi
D Wifi Disconnected
D Try reconnecting WiFi
D Wifi Disconnected
D Try reconnecting WiFi
D Wifi Connected to blackhole with IP 10.10.10.124 RSSI -43
D TCP Server started


Auch kann ich den WeMos aus dem Home Wlan problemlos an pingen. Die technische Verbindung scheint also grundsätzlich zu bestehen.
Aber eine Verbindung zwischen AruCounter und FHEM scheint nicht zu Stande zu kommen. Zwar zeigt FHEM mehrheitlich den Status = opened, wechselt aber immer wieder kurz auf diconnected. Readings werden nicht mehr aktualisiert und auch set oder get Commands werden nicht mehr angenommen.

Merkwürdig, warum zeigt FHEM opened, obwohl keine brauchbare Verbindung besteht?
Auch ein set reconnect löst das Problem nicht.

Also durchaus denkbar, dass im Verbindungsmanagement zwischen ArduCounter und FHEM noch Optimierungspotential besteht.

Gruss, birdy
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)

birdy

Wie hoch kann man die Puls Länge maximal setzen?  (Ich habe dazu in der Beschreibung nichts gefunden)
Ich habe meinen PIN wie folgt definiert.
attr AC pinD1 falling pullup min 2000

Wenn ich mir die History anschaue sehe ich folgendes.

Seq   1244 2022-10-02 15:15:15 Pin D1   0.001 seconds at 0 -> short pulse reject
Seq   1245 2022-10-02 15:15:15 Pin D1   0.291 seconds at 0 -> pulse counted
Seq   1246 2022-10-02 15:15:15 Pin D1   3.382 seconds at 1 -> gap
Seq   1247 2022-10-02 15:15:18 Pin D1   0.355 seconds at 0 -> pulse counted
Seq   1248 2022-10-02 15:15:19 Pin D1   0.000 seconds at 0 -> short pulse rejec


Gem. meinem Vertändnis dürften die beiden Pulse von 0.291 /0.355 nicht gezählt werden. 
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)

StefanStrobel

Hallo birdy,

Du hast recht, da muss ich die Doku ergänzen. Auf die Idee dass jemand versuchen könnte, den Wert so hoch zu setzen, bin ich nicht gekommen.
Gedacht war das Minimum um prellende Kontakte in den Griff zu bekommen. Also Werte < 100ms
Gespeichert wird der als uint8_t, als 8 Bit.
bei der nächsten Überarbeitung begrenze ich die Eingabe. Bitte setz ihn maximal auf 255.

Wegen der Verbindung: Wenn Fhem nicht mit dem Gerät reden kann, dann wird das per keepalive bemerkt und es gibt einen reconnect.
Offenbar hab ich Dir einen unausgereiften Zwischenstand gegeben. Nimm am besten wieder die alte Firmware bis mich mir das ansehen konnte.

Gruss / Thanx
   Stefan

birdy

Hallo Stefan 
Vielen Dank für den Hinweis mit den 255.
Bei mir kommen die ,,Pulse" aus einem Reedreleais welches in einem Durchflussmesser verbaut ist. Die sind definitiv im Minuten Bereich.
Weil ich immer wieder Falschzählungen hatte, habe ich den Wert hochgeschraubt. Offenbar mit negativen Effekt.

-> Ich hätte also nichts dagegen wenn da ein uint16_t verwendet würde.

Edit:  mit der .bin welche seit Heute in FHEM/firmware zu finden ist, konnte ich bis jetzt noch keine Verbindungsprobleme erkennen.
         Bis jetzt läuft alles bestens  :)
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)

StefanStrobel

Hallo Birdy,

nachdem Du Probleme berichtet hattest, habe ich die alte Firmware wieder ins SVN gestellt.
Jetzt kommt es drauf an, wann Du ein Update gemacht hast ...

Inzwischen habe ich aber die neue Version bei mir auf einen D1 Mini Pro aufgespielt und konnte keine Verbindungsprobleme erkennen.
Die neue meldet sich in den Internals folgendermaßen:

SketchCompile Oct 1 2022 19:54:03 with core version 3.0.2
VersionFirmware 4.27
VersionModule 8.00 - 21.10.2021


Hast Du die 4.27 geflasht oder wieder die alte?
Könntest Du sonst die neu compilierte Version auch nochmal testen und bei Problemen Deine Konfiguration und einen Auszug aus dem Log mit verbose 5 posten?

Gruss
   Stefan

birdy

Hallo Stefan
FHEM sagt, bei mir laufe Version 4.27. Die läuft seit Sonntag stabil. Probleme ich Ich aber immer nur am Anfang bis mal eine Verbindung zustande gekommen ist, danach nicht mehr. Ich bin unterwegs im Urlaub. Ich melde mich in ein paar Tagen, wenn ich zurück bin.
Gruss birdy
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)