FHEM Forum

FHEM => Sonstiges => Thema gestartet von: StefanStrobel am 26 Januar 2014, 12:08:13

Titel: ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 26 Januar 2014, 12:08:13
Hallo,

Ich habe die bisherigen Diskussionen über das Auslesen von S0-Schnittstellen von Stromzählern mit einem Arduino o.ä. verfolgt, bin aber weder mit der Firmata-Lösung noch mit dem Impcount-Modul in der bisherigen Form 100% glücklich und wollte daher mal nachfragen, ob hier noch Bedarf an einem spezialisierten Modul oder einer Weiterentwicklung von Impcount besteht oder wie andere Anwender das handhaben.

Prinzipiell ist es sehr elegant, die zwei Adern der S0-Schnittstelle einfach direkt auf einen digitalen Eingangspin eines Arduino zu legen und dann in einem FHEM-Modul zu zählen. Mit der Firmata-Firmware im Arduino braucht man nicht einmal eine spezialisierte Software im Arduino, und das bestehende FRM_IN macht die Integration ins FHEM.

Was mir nicht so gut gefällt ist:
1. Wenn man FHEM z.B. auf einer Fritzbox laufen lässt, die auch mal mit anderen Dingen beschäftigt ist, "stauen" sich gelegentlich Impulse und FRM_IN zählt diese erst mit 1-2 Sekunden Verzögerung. Bei hohem Stromverbrauch über den Zähler können das viele Impulse sein und so erscheint für FHEM der Verbrauch kurzzeitig mal auf 0 zu sein und danach werden alle verzögerten Impulse innerhalb einer Sekunde gezählt, was einen viel zu hohen Stromverbrauch vortäuscht. In Grafiken ist das recht unschön.

2. Bei hohem Stromverbrauch kommen die Impulse in sehr schneller Folge. Bei einigen KW wird das FHEM-Modul mehrmals pro Sekunde aufgerufen und das belastet den "Server" unnötig. Viel eleganter wäre es meiner Meinung nach wenn die Software im Arduino zunächst selbst zählen würde und nur in einstellbaren Intervallen (z.B. minütlich) den Stand melden würde.

Mit Impcount ist der erste Punkt nach meinem Verständnis besser gelöst, da nicht nur der Status eines Pins an FHEM gemeldet wird, sondern die verstrichene Zeit. Damit verschiebt sich nichts wenn FHEM die Daten mal eine Sekunde später verarbeitet.
Aber: eine Zusammenfassung der Daten auf z.B. minütliche Summen findet auch hier nicht im Arduino statt.

Zudem gäbe es in Impcount sinnvolle Verbesserungsmöglichkeiten wie zum Beispiel die "Modulparameter" in Variablen des Moduls. Die wären in Attributen des Geräts besser aufgehoben und damit auch für jeden Zähler separat einstellbar.

Wie macht Ihr das?

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Prof. Dr. Peter Henning am 28 Januar 2014, 11:18:55
Vielleicht mal nachdenken über 1-Wire mit DS2423 als Zähler.

LG

pah

Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Christian. am 08 Februar 2014, 08:21:01
Hallo Stefan,

schön, dass Dich das Thema auch interessiert.

Ich hatte ja ursprünglich mit impcount begonnen und habe dann zur Firmata-Variante gewechselt. Motivation dafür war vor allem, dass ich damit keinen anwendungsspezifischen Arduino-Sketch und kein eigenes FHEM-Modul benötige. Beides muss gepflegt werden, das wollte ich auf Dauer nicht. Außerdem erlaubt die Verwendung von Firmata einen flexibleren Einsatz des Arduino und ist nicht auf S0-Zähler beschränkt.

Zu 1. (Verzögerte Messung) und 2. (Häufiger Modulaufruf): kann ich nachvollziehen und bestätigen. Ich selber nehme diese Nachteile in Kauf und lebe damit. Das ist der Preis dafür, keinen eigenen Code zu pflegen.

Zu 3. (Mangelnde Flexibilität von impcount): stimmt auch. Zu dem Problem kam ich gar nicht mehr, weil zu Firmata gewechselt bin.

Zu Deinem Verbesserungsvorschlag: das Sammeln der Zeitstempel im Arduino und Übertragen in festen Intervallen, z.B. minütlich, halte ich für eine gute Idee. Das würde die Genauigkeit erhöhen und Last von FHEM (bzw. der Fritz!Box) nehmen. Eine Zusammenfassung der gemessenen Werte im ersten Schritt würde ich aber vermeiden wollen. Ich lege Wert darauf, dass die Signale möglichst unverändert gemessen und protokolliert werden. Aus meiner Sicht wäre also eher ein Puffer im Arduino wünschenswert, der die Zeitstempel sammelt und zur Abholung bereit stellt. Dann wird aber ein weiteres Problem zu lösen sein: die Zeitstempel des Arduino müssen mit denen der Fritz!Box synchronisiert werden. Das wäre aber vielleicht mit einem zusätzlichen Zeitstempel für den Zeitpunkt der Abholung schon erledigt. Dieser könnte in FHEM als Referenzwert genommen werden, auf den sich die abgeholten Werte beziehen.

Ich habe nichts dagegen, wenn Du Dich an eine Änderung oder Erweiterung des bestehenden Codes machen möchtest. Ich kann im Moment aber nur sehr begrenzt helfen, weil ich wenig freie Zeit dafür habe.

Schöne Grüße
Christian
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 14 März 2014, 20:36:30
Ich habe inzwischen doch nochmal bei Null angefangen und einen neuen Sketch und ein neues Modul entwickelt.

Der Sketch verwendet die Pin Change Interrupts, die beim Arduino Uno beispielsweise für jeden Eingang funktionieren. Ich selbst habe keinen Uno sondern einen Jeenode verwendet, da ich noch einen herumliegen hatte. Selbst daran kann man mindestens 8 S0-Zähler direkt anschließen.  Es wird keine weitere Hardware benötigt.

Der Arduino oder Jeenode kann von FHEM aus Konfigurationsbefehle empfangen. Darüber kann man einstellen, wie lange die Intervalle mindestens sein sollen, in denen er zählt bevor er ein Zwischenergebnis zurückmeldet. Ich habe das auf 1 Minute eingestellt. Wenn es etwas zu zählen gab, meldet der Arduino dann die Anzahl der Impulse je Eingang und die zugehörige exakte Zeit zwischen dem ersten und dem letzten Impuls zurück. Damit ist die Messung unabhängig davon, was FHEM in der Zwischenzeit eventuell noch bearbeiten muss und wie ausgelastet das Betriebssystem eventuell ist.
Wenn es im konfigurierten Intervall keine Impulse gab, wartet der Arduino mit dem Bericht bis ein konfiguriertes maximales Intervall abgelaufen ist. Dann meldet er auf jeden Fall die gezählten Impulse und die abgelaufene Zeit.
Das zugehörige FHEM-Modul macht daraus Readings für jeden Eingang am Arduino.

Konfiguriert werden alle Einstellungen über Attribute im Modul und das Modul konfiguriert dann den Arduino.
Beispiel:

define AC ACNT /dev/ttyUSB2@9600
# Umrechnung in kW
attr AC factor 1000
# min und max Intervall
attr AC interval 60 300
# Eingabe-Pins
attr AC pinD4 rising pullup
attr AC pinD5 rising pullup

Damit definiert man die Eingänge D4 bzw. 4 und D5 bzw. 5 als Zähler, gibt an, dass die steigende Flanke gezählt werden soll und dass die pullup-Widerstände aktiviert werden sollen.

Die Readings, die dabei heraus kommen können beispielsweise so aussehen:

pin4        46352.000    2014-03-14 20:26:04
pin5        37958.000    2014-03-14 20:26:04
power4   0.342            2014-03-14 20:26:04
power5   0.036            2014-03-14 20:26:04
version   ACNT V0.9b   2014-03-13 20:51:11

pinX ist der aktuelle Count und powerX der Verbrauch in kW.

Die übliche Doku ist im Modul. Vielleicht kann es ja noch jemand brauchen. Bei Interesse kann ich auch was ausführlicheres ins Wiki stellen.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: fhainz am 15 März 2014, 09:43:25
Hallo Stefan,

danke, so etwas suche ich schon lange.
Sehe ich das richtig, dass ich den Sketch nur verwenden kann wenn ich den Arduino via usb einbinde? Meine Arduino Mega hängt via LAN im Netzwerk und ich nutze derzeit die ConfigurableFirmata.

Grüße
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 15 März 2014, 21:12:46
Hallo,

ich verwende die USB / serielle Verbindung, da ich kein Ethernet-Shield habe. Daher ist eine LAN-Verbindung auch nicht implementiert.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: fhainz am 15 März 2014, 21:21:18
Ok schade.
Meinst du klappt das wenn ich deinen Sketch in die ConfigurableFirmata einfüge? Oder hast du vielleicht eine andere Idee wie ich das via LAN zum laufen bekomme?
Hab leider vom Arduino Code überhaupt keinen Plan :(

Grüße
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 17 März 2014, 15:12:04
Hallo Fhainz,

Evt. ein kleiner Raspberry für ein Remote Fhem?
Oder ein USB-Extender über CAT5?
Ich hab bei mir ein 10m Kabel vom Zählerschrank zur Fritzbox gelegt um die s0 Signale zu übertragen.

Am elegantesten wäre sicher das Ethernet-Shield. Vielleicht kauf ich doch mal eines und bau den Support noch ein. Sollte eigentlich nicht schwer sein. Kurzfristig werde ich da aber leider nicht dazu kommen.

Gruß
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: fhainz am 17 März 2014, 18:39:49
Ein Raspi kommt nicht in frage wegen platzprobleme. Deswegen hab ich mir auch einen arduino geholt. Die S0 Zählung würde über das Raspi auch irgendwie gehen.
Die S0 Signale über die LAN Kabel Adern übertragen und erst anschließend zählen wäre auch eine Möglichkeit.

Am elegantesten wäre sicher das Ethernet-Shield. Vielleicht kauf ich doch mal eines und bau den Support noch ein. Sollte eigentlich nicht schwer sein. Kurzfristig werde ich da aber leider nicht dazu kommen.

Dann warte ich, vielleicht kaufst du dir ja wirklich das shield ;)  Es funktioniert ja zur Zeit, nur würde es mir besser gefallen wenn der arduino zählt und nicht FHEM.

Grüße
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: SvenJust am 18 Dezember 2014, 11:59:04
Hallo,

ich möchte hier StefanStrobel loben für dieses tolle Modul und den Arduino Code. Bei mir läuft läuft ein Arduino Nano mit einem digitaler Drehstromzähler DRT428DC zusammen. Seit einem Monat läuft alles absolut stabil. Top!

Ich verwende die folgenden Definitionen, um eine kontinuierliche Stromzählung zu erreichen.

define AC ACNT /dev/ttyUSB1@9600
attr AC factor 1000
attr AC interval 60 300
attr AC pinD5 rising pullup
attr AC userReadings energy_act {ReadingsVal("AC","power5",0)} ,energy monotonic  { ReadingsVal("AC","pin5",0)/1000}, energy_day monotonic  { ReadingsVal("AC","pin5",0)/1000}, energy_month monotonic  { ReadingsVal("AC","pin5",0)/1000}, energy_year monotonic  { ReadingsVal("AC","pin5",0)/1000}, energy_hauszaehler monotonic  { ReadingsVal("AC","pin5",0)/1000}
define lfenergyday FileLog ./log/EnergieD-%Y-%m-%d.log AC:energy:.*|AC:energy_hauszaehler:.*|AC:power5:.*
attr lfenergyday room Logfiles


Das UserReadings energy_act stellt den aktuellen Stromverbrauch dar, energy ist der Zählerstand des Drehstromzähler DRT428DC, energy_day, energy_month, energy_year sind der Tages-, Monats- und Jahresverbrauch und werden jeden Tag/Monat/Jahr um 00:00 Uhr per at auf 0 gesetzt. energy_hauszaehler ist der Zählerstand des EVU.

Vielleicht hilft die obige Definition jemanden beim Einstieg.

Vielen Dank an Stefan und viele Grüße
Sven
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: hexenmeister am 25 Januar 2015, 15:57:12
Hallo!

Das sieht ja genau danach aus, was ich brauche :)
Werde mir in der nächsten Zeit genauer ansehen. Spricht eigentlich etwas dagegen, das Modul zumindest in Contrib einzuchecken?

Grüße,

Alexander

Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Prof. Dr. Peter Henning am 25 Januar 2015, 18:51:06
Sicher kann man das Einchecken.

Aber bitte ersetzt den Namen ACNT durch irgendetwas Längeres, mindestens 6 Buchstaben. Sonst blickt innerhalb kürzester Zeit niemand mehr durch bei den Modulnamen.

Vorschlag: ARDCOUNT

LG

pah
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 27 Januar 2015, 17:43:29
Hallo,

kann ich gerne umbenennen und einchecken.
ArdCount oder ArduCount ist wirklich sinnvoller als die Abkürzung, die ich damals vergeben hatte.
Ich habe auch mal überlegt, ob ich noch eine Netz-Option (Ethernet-Shield oder sogar ein angelöteter ESP8266) dazubaue, aber bisher hatten andere Projekte Priorität.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Bennemannc am 27 Januar 2015, 22:38:17
Hallo,

ich habe das ganze über einen Panstamp gelöst. Der sendet die aufgelaufenen Impulse alle 15 Minuten an fhem. Das AVERAGE Modul macht mir die Tages und Monatswerte dazu.
Zu dem Sketch benötigt man noch die Device-Beschreibung im SWAP Modul.

Gruß Christoph
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Inputsammler am 04 Februar 2015, 11:37:32
Hallo Bennemannc,

Das hört sich sehr gut an.
Versuche gerade meinen Gaszähler , mit einen Reedrelais, und meinen Wasserzähler, mit einen Hallsensor, auszulesen.

Das würde ich dann gerne per Funk an meinen FHEM Server schicken.
Dazu wäre ja der panstamp sehr gut geeignet dafür. (sind bestellt aber keider noch nicht angekommen)

Meine Frage ist hast du die Impulszähler direkt im panstamp gezählt oder verwendest du einen  extra S0 Zähler.

Wäre sehr interessiert dein Projekt mit den panstamp nach zubauen.

Gruß Gerd

Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Bennemannc am 04 Februar 2015, 12:38:12
Hallo Gert,

die Impulse werden auf den Panstamp gezählt und alle 15 Minuten übertragen. Dann wird auch der Zähler auf dem Panstamp zurückgesetzt. Die Werte wären ja sonst sowieso spätestens bei einem Batteriewechsel oder Reset weg.
Aus den 15 min Werten kann man dann die Leistung (*4) ausrechnen. Die Werte für den Tag und den Monat summiert das Average Modul auf. Um eine Tagesgrafik zu erstellen, schreibe ich den Tageswert vom Average 5sec vor Mitternacht in eine Logdatei.
Das mag so nicht supergenau sein - aber mir ging es mehr darum eine Tagesverlaufskurve zu bekommen. An der kann man dann sehr schön sehen wer wann was macht.

Gruß Christoph
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Inputsammler am 06 Februar 2015, 15:21:09
Hallo Christoph,

Danke dir für deine Rückinfos.

Wenn meine panstamps hier sind werde ich mich, wenn ich darf , deine Config bei mir einsetzen mit deinem Sketch vom panstamp.

Die Genauigkeit reicht mir vollkommen aus.

Gruß Gerd
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 11 Februar 2015, 19:25:24
Hallo,

ich habe das ehemalige ACNT Modul in ArduCounter umbenannt und in contrib eingecheckt.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: noice am 23 Februar 2015, 22:17:00
hallo,
erstmal .. super projekt.
Gibt es dazu schon ein Wiki?
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: sebixvi am 16 Juli 2015, 10:50:21
Hallo zusammen,

auch ich möchte gerne meinen Gaszähler per S0-Schnittstelle auswerten und bin über das Modul gestolpert. Leider funktioniert es bei mir (Arduino pro micro mit 32U4-Atmel) noch nicht wirklich.

Im Arduino-Sketch musste ich die PCINT-Zuordnung anpassen, dass liegt aber am 32U4, der auf D8 und D9 PCINT4 und PCINT5 mappt.

Zudem fehlt in der Hauptschleife auch ein Aufruf von serialEvent(). Erst nachdem ich diesen ergänzt habe, kann ich mit dem Arduino kommunizieren und die Pins aktivieren. Per serieller Konsole funktioniert jedenfalls der Arduino jetzt.

FHEM bekommt aber noch keine Daten, was offenbar daran liegt, dass die gesetzten attrs (insbesondere bezüglich des Pins) beim Initialisieren nicht gesetzt werden, auf "get info" bekomme ich im Log nur Version, Min und Max-Werte angezeigt, aber keine aktiven Pins. Leider werden die Antworten des Arduino im Log nicht aufgezeichnet, was das Debuggen nicht gerade vereinfacht. Hier werde ich heute Abend weitermachen und Euch auf dem Laufenden halten.

Wenn jemand diese Probleme bereits behoben hat, bin ich für Hinweise dankbar ;-)

Sebi
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 22 Juli 2015, 19:37:11
Hallo Sebi,

auf den Arduinos und ähnlichen Boards mit einem Atmel 328 hatte ich bisher keines dieser Probleme, aber der 32U4 kann sich schon anders verhalten.
Wenn Du es portiert bekommst, kann ich die Änderungen gerne in den Sketch / ins Modul einbauen, so dass es der nächste Anwender leichter hat.

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: no_Legend am 11 Februar 2016, 08:21:46
Ich bin gerade aus Zufall auf den Beitrag gestoßen.

Momentan habe ich meinen Gaszähler per Firmata angeschlossen.

Eine Frage zu dem Sketch hier sind, die Eingänge Software seitig schon entprellt?

Gruß Robert
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 13 Februar 2016, 11:20:43
Hallo,

eine Entprellung ist nicht drin. War bei mir nicht nötig.
Wenn Du es einbauen möchtest, übernehme ich gerne einen entsprechenden Patch.
Das sollte jedoch einstellbar sein, sonst gibt es bei Geräten mit hoher Frequenz Probleme.

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: no_Legend am 13 Februar 2016, 11:31:38
Hallo,

eine Entprellung ist nicht drin. War bei mir nicht nötig.
Wenn Du es einbauen möchtest, übernehme ich gerne einen entsprechenden Patch.
Das sollte jedoch einstellbar sein, sonst gibt es bei Geräten mit hoher Frequenz Probleme.

Gruss
    Stefan

So gut kenne ich mich mit dem Programmieren nicht aus.

Ich schau mal ob ich da was hin bekomme.

Gruß Robert
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Bennemannc am 13 Februar 2016, 21:58:47
Hallo,

die einfachste Art softwaremäßig zu entprellen ist sleep oder wait für xx millis. Also einfach alles was nach dem ersten Impuls kommt für die Zeit x ignorieren.

Gruß Christoph
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: no_Legend am 13 Februar 2016, 22:12:21
Ein bisschen kenn ich mich schon mit Arduino aus.
Normal entprelle ich immer mit Delay.

Es gibt aber auch die Bounce Library.

Ich bin nur nicht so firm mich mit solch eine Code auseinander zu setzten und ihn dann richtig Anzupassen.

Gruß Robert
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Bennemannc am 13 Februar 2016, 22:41:34
Hallo,

ich würde auf jeden Fall versuchen hardwaremäßig zu entprellen. Einfach einen Kondensator parallel zum Kontakt. Wenn Du mehrer Eingänge hast, kann es mit delay oder ähnlichem dazu kommen, das während des Delays zu Impulsen auf den anderen Eingängen kommt, die eventuell nicht erkannt werden. Ich mache das mit einem Panstamp und habe bis jetzt keine Probleme mit Prellen gehabt. Meine S0 Geber sind allerdings alle elektronisch - deswegen auch kein Prellen. Das gibt es ja nur bei mechanischen Kontakten.
Hast Du Probleme oder fragst Du nur interessenhalber ?

Gruß Christoph
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: no_Legend am 14 Februar 2016, 10:23:26
Momentan arbeite ich bei meinem Gaszähler mit einem Reed Kontakt und firmata.
Bisher läuft es ganz gut. Habe den reedkontakt per Hardware entprellt.

Bei firmata ist halt das Problem , dass wenn fhem gerade Neustartet die Impulse nicht gezahlt werden.

Gruß Robert
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: sash.sc am 08 Juni 2016, 19:20:55
Hallo zusammen.

Ich möchte gerne ein paar 230V Zähler mit S0  Schnittstelle in fhem einbinden. Mein Gedanke ist, ein arduino nano dafür zu nehmen. Bis zu wieviel Zähler kann man parallel anschließen, die dann einzeln mitgezählt werden?
Würde es auch Sinn machen, die Impulse erst in einem Zwischenspeicher zu puffern und dann in einem intervall an fhem zu senden?
Welche Hardware kann man dafür nehmen, die genug Puffer hat?

Mein raspi sitzt im Wohnzimmer und das Funkmodul dann im Sicherungskasten.

Hatte schon an eine nodemcu gedacht mit WLAN.

Hat da jemand eine Idee, oder schon eine funktionsfähige Lösung?

Danke schonmal im voraus!

Gruß Sascha
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Bennemannc am 08 Juni 2016, 23:33:22
Hallo,

wei schon mal erwähnt - ich habe einen Sketch für einen Panstamp. Der hat 4 Eingänge. Den könnte man natürlich umändern - der Panstamp ist ja auch nur ein Arduion mit Funkmodul. Das Funkmodul wird - soweit ich weiß - seriell angesprochen. Müßte man also umschreiben können. Der Panstamp sendet alle 15 Minuten - das macht der Akku ca. 6 Monate mit. Speicherprobleme habe ich bis jetzt nie gehabt. Die Register zählen die Impulse hoch und können entsprechend groß definiert werden.

Gruß Christoph
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: jorge am 11 Juli 2016, 14:26:08
Hallo,

habe den Counter folegendermaßen definiert:

define ArduCounter ArduCounter COM6@9600
attr ArduCounter factor 1
attr ArduCounter interval 10 60
attr ArduCounter pinD5 falling


Habe an D5 des Ardunino Nano mit D0 einer Lichtschranke (TCRT5000 IR Barrier Line Track sensor) verbunden, krieg aber nur sehr wenig aussagekräftige Readings in fhem angezeigt (Hatte angenommen, dass bei jedem Kontakt der Lichtscharnke um 1 erhöht wird). Vermute so was wie Prellung, obwohl es das doch bei einem digitalen Ausgang nicht gegebn dürfte.... Vielleicht kann mir jemand bei 'debouncen' helfen?

LG

Jorge
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: hermann258 am 13 Juli 2016, 18:22:52
Hallo
Bei mir kommen keine Daten an, es steht seit 4Stunden auf 0.000
Sketch ist ohne Probleme durchgelaufen.
Die Arducount ist aus dem Trunk ,sowie die .Ino auch

usb-FTDI_FT232R_USB_UART_AL021QSK-if00-port0 -> ../../ttyUSB2

Internals:
   DEF        /dev/ttyUSB2@9600
   DeviceName /dev/ttyUSB2@9600
   FD         15
   NAME       AC
   NR         14
   PARTIAL
   STATE      opened
   TYPE       ArduCounter
   buffer
   Readings:
     2016-07-13 17:51:27   state           opened
     2016-07-13 17:51:35   version         ArduCounter V1.0
Attributes:
   factor     2000
   interval   60 300
   pinD10     rising pullup
   pinD11     rising pullup
   pinD12     rising pullup
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 13 Juli 2016, 22:27:33
Hallo Jorge,

Mit GET info sendet das Modul einen show-Befehl an den Arduino. Der gibt dann den aktuellen Zählerstand aus. Das sollte helfen um genauer im Auge zu behalten was gezählt wird und was nicht.
Du kannst auch ohne Fhem per Terminal-Programm direkt mit dem Arduino reden. Das sind einfache Text-Befehle, die ich im Sketch implementiert habe.
Falls Dein Signalgeber prellt, müsstest Du das so erkennen können. Eine Entprellung ist im Sketch nicht drin. Das könnte man zwar einbauen, aber bisher hat das keiner benötigt bzw. haben es die Leute in Hardware gemacht

Gruß
     Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 13 Juli 2016, 22:32:30
Hallo Hermann,

Wenn nichts gezählt wird, dann stimmt vermutlich etwas mit dem Anschluss nicht. Falscher Pin, falsche Polarität o.ä.
Ich würde erst mal mit einem angeklemmten Taster prüfen, ob überhaupt die Anschlussseite passt.
Am besten auch noch ohne Fhem und direkt per Terminal. Wenn die Baudrate stimmt, meldet sich der Sketch im Terminal und Du kannst direkt mit ihm reden. Datails siehst Du am einfachsten direkt im Quellcode des Sketches. Der ist recht kurz und einfach.

Gruß
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: hermann258 am 14 Juli 2016, 08:31:17
Danke StefanStrobel
s0+ s0- waren vertauscht
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: hermann258 am 15 Juli 2016, 08:27:54
Hallo
Wird der Arducounter eigendlich noch weiter entwickelt?
z.B. Euro Rechner
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 17 Juli 2016, 13:01:00
Hallo Hermann,

wenn was wichtiges / sinnvolles fehlt baue ich es gerne ein.
Eine Umrechnung von Verbrauch zu Gebühren kannst Du aber einfach auch ohne Erweiterung machen.
Entweder über das factor Attribut oder nachgelagert über userReadings etc.

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: hermann258 am 22 Juli 2016, 08:09:46
Hallo,

ich möchte hier StefanStrobel loben für dieses tolle Modul und den Arduino Code. Bei mir läuft läuft ein Arduino Nano mit einem digitaler Drehstromzähler DRT428DC zusammen. Seit einem Monat läuft alles absolut stabil. Top!

Ich verwende die folgenden Definitionen, um eine kontinuierliche Stromzählung zu erreichen.

define AC ACNT /dev/ttyUSB1@9600
attr AC factor 1000
attr AC interval 60 300
attr AC pinD5 rising pullup
attr AC userReadings energy_act {ReadingsVal("AC","power5",0)} ,energy monotonic  { ReadingsVal("AC","pin5",0)/1000}, energy_day monotonic  { ReadingsVal("AC","pin5",0)/1000}, energy_month monotonic  { ReadingsVal("AC","pin5",0)/1000}, energy_year monotonic  { ReadingsVal("AC","pin5",0)/1000}, energy_hauszaehler monotonic  { ReadingsVal("AC","pin5",0)/1000}
define lfenergyday FileLog ./log/EnergieD-%Y-%m-%d.log AC:energy:.*|AC:energy_hauszaehler:.*|AC:power5:.*
attr lfenergyday room Logfiles


Das UserReadings energy_act stellt den aktuellen Stromverbrauch dar, energy ist der Zählerstand des Drehstromzähler DRT428DC, energy_day, energy_month, energy_year sind der Tages-, Monats- und Jahresverbrauch und werden jeden Tag/Monat/Jahr um 00:00 Uhr per at auf 0 gesetzt. energy_hauszaehler ist der Zählerstand des EVU.

Vielleicht hilft die obige Definition jemanden beim Einstieg.

Vielen Dank an Stefan und viele Grüße
Sven
Hallo
Wer kann mir sagen, wie ich das auf 3 Zähler anwende.
Gruß Hermann
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 22 Juli 2016, 22:05:00
Hallo Hermann,

Einfach jeden Zähler an einen Eingang hängen und dann ein weiteres Attribut für jeden Eingang setzen. Z.B. pinD6, pinD7,...
Siehe auch http://www.fhemwiki.de/wiki/ArduCounter

Gruß
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: hermann258 am 23 Juli 2016, 07:22:34
kann ich das so machen?
energy_act_1:pin10.* {ReadingsVal("AC","power10",0)}, energy monotonic { ReadingsVal("AC","pin10",0)/2000}, energy_day monotonic { ReadingsVal("AC","pin10",0)/2000}, energy_month monotonic { ReadingsVal("AC","pin10",0)/2000}, energy_year monotonic { ReadingsVal("AC","pin10",0)/2000}, energy_hauszaehler monotonic { ReadingsVal("AC","pin10",0)/2000}, energy_act_2:pin11.* {ReadingsVal("AC","power11",0)}, energy monotonic { ReadingsVal("AC","pin11",0)/2000}, energy_day monotonic { ReadingsVal("AC","pin11",0)/2000}, energy_month monotonic { ReadingsVal("AC","pin11",0)/2000}, energy_year monotonic { ReadingsVal("AC","pin11",0)/2000}, energy_hauszaehler monotonic { ReadingsVal("AC","pin11",0)/2000}, energy_act_3:pin12.* {ReadingsVal("AC","power12",0)}, energy monotonic { ReadingsVal("AC","pin12",0)/2000}, energy_day monotonic { ReadingsVal("AC","pin12",0)/2000}, energy_month monotonic { ReadingsVal("AC","pin12",0)/2000}, energy_year monotonic { ReadingsVal("AC","pin12",0)/2000}, energy_hauszaehler monotonic { ReadingsVal("AC","pin12",0)/2000}er zeigt mir oft auch Werte mit vielen Nachkommazahlen an
2016-07-23_00:02:37 AC energy: 2.55550000000001
2016-07-23_00:02:37 AC energy_hauszaehler: 2.55550000000001
Gruß Hermann
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 25 Juli 2016, 21:53:49
Wenn Du Nachkommastellen entfernen möchtest, kannst Du im Perl-Code z.B. mit sprintf arbeiten ...

Gruß
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: hermann258 am 27 Juli 2016, 11:26:51
ich versuche mal

speichere ich
energy { ReadingsVal("AC","pin10",0)/2000},funktioniert alles
Hour: 0.0060 Day: 0.0060 Month: 0.0060 Year: 0.0060 speichere ich
energy monotonic{ ReadingsVal("AC","pin10",0)/2000},sieht es so aus
Hour: -0.0065000000000 Day: -0.006500000000 Month: -0.0065000000000 Year: -0.006500000000 (since: )gibt es eine ander Möglichkeit monotonic zu ersetzen?
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 29 Juli 2016, 12:27:58
Muss ich mir mal ansehen.
Tagessummen kannst Du aber auch mit dem Average-Modul erzeugen.

Gruß
     Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 14 Oktober 2016, 21:20:23
Hallo Stefan,

ich habe den ArduCounter erfolgreich in Betrieb genommen. Ich danke Dir für das Modul!

Ich habe zwei konkrete Fragen:
- Wenn ich ein neues Pin definiere, dann muss ich danach erstmal den Arduino nano mit Reset neu starten damit das Pin gezählt wird. Ist das so, oder ist das ne Macke in meiner Installation?
- Ich habe zwei Zähler, einer liefert 400 Impulse/kWh (2,5 Watt/Impuls) und der andere 1000 Impulse/kWh (1 Watt/Impuls). Somit muss ich eigentlich zwei unterschiedliche attr factor definieren, einmal 2500 und einmal 1000. Den Fall hast Du nicht vorgesehen?

Ich helfe mir mit einem extra userReading.

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 15 Oktober 2016, 15:34:27
Hallo Otto,

das mit dem Reset ist ein Bug. Das hat auch mal ohne funktioniert.
Einen Faktor je Pin hatte ich bisher nicht vorgesehen. Das wäre aber eine sinnvolle Erweiterung.
Ein Update ist in Arbeit ;-)

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 15 Oktober 2016, 16:12:46
Hallo,

anbei eine neue Version zum Testen.
Der Bug sollte behoben sein und es gibt ein neues Attribut readingFactor[0-9]+ zum setzen eines Faktors je Pin.

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 15 Oktober 2016, 17:30:21
Hallo Stefan,

Du hast ja freie Spitzen!  :D

Viele dank ich teste das dann gleich, ich habe heute meinen IT Zoo neu verkabelt und u.a. dem Arduino nano einen aktive "powered Hub" spendiert.  ;)

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 15 Oktober 2016, 20:48:57
Hallo Stefan,

funktioniert alles prima. Der Bug ist behoben und die Sache mit dem zusätzlichen Faktor ist super.

Danke!

Schönes WE
Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 22 Oktober 2016, 13:08:20
Hallo Stefan,

ich habe jetzt noch ein paar Tage gespielt und insgesamt drei Zähler angebunden. Jetzt ist mir folgendes aufgefallen:

Wobe ich gerade bemerke offenbar nicht nur beim Neustart, in diesem Zeitarum habe ich nichts gemacht:
2016-10-22_13:58:30 AC pin6: 300.000
2016-10-22_13:58:30 AC power6: 1.654
2016-10-22_13:59:30 AC pin6: 302.000
2016-10-22_13:59:30 AC power6: 19199.520
2016-10-22_14:00:30 AC pin6: 304.000
2016-10-22_14:00:30 AC power6: 1.668
2016-10-22_14:01:29 AC pin6: 306.000
2016-10-22_14:01:29 AC power6: 1.595
Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 23 Oktober 2016, 08:22:37
Hallo Otto,

vielen Dank für den Hinweis.
Das mit dem Reset bei Neustart von Fhem liegt daran, dass Fhem des serielle Device neu öffnet und dabei der Arduino wohl einen Reset bekommt. Ich wüsste nicht wie man das verhindern kann.
Es sollte aber auch kein Problem sein, da der Sketch für die power-Berechnung immer nur die Zähler-Differenz für ein angegebenes minimal / maximal Intervall verwendet.

Wegen den Spitzen gehe ich mal auf die Suche. Das sollte nicht vorkommen.
Wie hast Du es denn konfiguriert? Ich vermute dass das mit der Einstellung der Intervalle zusammenhängt, da das Problem bei mir nicht aufgetreten ist ...

Gruss
    Stefan

EDIT: bei der Fehlersuche habe ich festgestellt, dass die ursprüngliche Beschreibung inkorrekt war. Bin weiter auf der Suche nach einer race condition ...
         Falls das Problem bei Dir reproduzierbar ist, wäre ein Log mit verbose 4 oder 5 sehr hilfreich :-)
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 23 Oktober 2016, 11:36:25
Hallo Stefan,

das mit dem Reset und dem Zähler im Sketch habe ich mir gestern auch schon angeschaut und in etwa verstanden  ;) da bin ich am überlegen wie man das eventuell umgehen könnte. Bei jeder erneuten Definition von Pins werden die Zähler im Sketch neu gestartet und beim Start von FHEM werden die Pins neu definiert.
Deine Bemerkung mit dem langfristigen Zähler im Sketch verstehe in nicht ganz, er liefert doch einen kontinuierlichen Zähler solange er läuft - oder?

Hier mein list Internals:
   DEF        /dev/ttyUSB0@9600
   DeviceName /dev/ttyUSB0@9600
   FD         11
   Initialized 1
   ModuleVersion 3.4.4 - 10.10.2016
   NAME       AC
   NR         29
   PARTIAL
   STATE      opened
   TYPE       ArduCounter
   buffer
   Readings:
     2016-10-23 11:23:33   ZaehlerHzg      2884.0225
     2016-10-23 11:23:33   ZaehlerSumme    41781.9866666667
     2016-10-23 11:23:33   ZaehlerWW       4447.42
     2016-10-23 11:23:33   pin4            4305.000
     2016-10-23 11:20:33   pin5            1157.000
     2016-10-23 11:23:33   pin6            2054.000
     2016-10-23 11:23:33   power4          0.308
     2016-10-23 11:20:33   power5          0.000
     2016-10-23 11:23:33   power6          0.735
     2016-10-22 11:33:13   state           opened
     2016-10-22 11:33:16   version         ArduCounter V1.0
Attributes:
   factor     1000
   interval   60 300
   pinD4      rising pullup
   pinD5      rising pullup
   pinD6      rising pullup
   readingFactor4 2500
   readingFactor5 1000
   readingFactor6 13333
   userReadings ZaehlerHzg {ReadingsVal("AC","pin4",0)/400 + ReadingsNum("ZaehlerManuellHzg","ZaehlerHzgKorr",0) },ZaehlerWW {ReadingsVal("AC","pin5",0)/1000 + ReadingsNum("ZaehlerManuellWW","ZaehlerWWKorr",0)},ZaehlerSumme {ReadingsVal("AC","pin6",0)/75 + ReadingsNum("ZaehlerManuellSumme","ZaehlerSummeKorr",0) }

Ganz häufig sind die Spitzen bei dem Zähler (Ferrariszähler mit Abtastkopf (https://www.kompf.de/tech/emeir.html)) an pin6 - siehe auch den kurzen Auszug des Logs von gestern.

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 25 Oktober 2016, 22:38:54
Hallo Otto,

Eine optimierte Version kommt demnächst. Ich bin noch am Testen.
Kann es sein, dass Dein Zähler an Pin 6 immer zwei Impulse in schneller Folge liefert?

Gruß
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 31 Oktober 2016, 08:21:55
Hallo Otto,

hier nochmal eine neue Version. Ich habe einiges optimiert. Könntest Du das mal mit verbose 4 testen und dann ein Stück Fhem-Log posten, dann muss ich nicht so viel spekulieren, was jetzt tatsächlich die Ursache der Spitzen bei Dir gewesen sein könnte?
Im Log sollte dann die komplette Kommunikation zwischen Modul und Sketch zu sehen sein.

Im Doku-Teil des Moduls habe ich die neuen Optionen schon beschrieben, aber ich poste das dann auch nochmal ausführlich auf deutsch wenn Dein Test / Log zeigt, dass es so auch schon gut funktioniert ;-)

Gruss / vielen Dank
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 31 Oktober 2016, 14:05:09
Hier nochmal die ausführlichere Erläuterung wie der Arducounter zählt bzw. wie man das beeinflussen kann:

Der einfachste Weg wäre einfach immer innerhalb von einem festen Intervall (z.B. 60 Sekunden) alle Impulse zu zählen.
Das funktioniert gut, wenn die Impulsfrequenz hoch ist. Wenn jedoch beispielsweise nur alle 90 Sekunden ein Impuls kommt und man immer 60 Sekunden zählt, dann hat man im ersten Intervall keinen Impuls, im zweiten dafür einen und im dritten wieder keinen.
Selbst bei doppelter Frequenz mit Impulsen alle 45 Sekunden wird es unschön, da dann im ersten und zweiten Intervall je ein Impuls gezählt würde, im zweiten vermutlich zwei und im dritten wieder einer. Für eine Stromverbrauchsrechnung würde man dann in den ersten 2 Minuten mit einem Impuls je 60 Sekunden rechnen (obwohl es in Wirklichkeit ja ein Impuls je 45 Sekunden war) und im dritten Intervall mit zwei Impulsen je 60 Sekunden, also zu viel.

Um hier genauere Werte zu bekommen habe ich im Arducounter einen anderen Weg implementiert.
Arducounter hat ein normales und ein maximales Reporting-Intervall, in dem Ergebnisse ausgegeben werden. Unabhängig vom Reporting-Intervall werden Impulse gezählt, dabei aber die Zeit zwischen dem ersten gezählten Impuls und dem zuletzt gezählten Impuls gemessen.
Wenn nun beispielsweise das normale Reporting-Intervall auf 60 Sekunden gesetzt wird und Impulse alle 45 Sekunden kommen, dann kommt beispielsweise der erste Impuls 10 Sekunden nach Beginn des Reporting-Intervalls. Dieser wird noch nicht gezählt sondern bildet nur den Startpunkt für die Zeitmessung.
Der zweite Impuls kommt dann 55 Sekunden nach Beginn des Reporting-Intervalls. Arducounter würde dann nach 60 Sekunden als Ergebnis einen Impuls und eine Zeitdifferenz von 45 Sekunden zurückgeben.

Für das nächste Intervall merkt sich Arducounter den Zeitpunkt des zuletzt gezählten Impulses (nach 55 Sekunden im vorigen Intervall) als Startpunkt und zählt weiter bis das zweite Reporting-Intervall abgelaufen ist. Dabei würde er 40 Sekunden nach Beginn des zweiten Reporting-Intervalls einen weiteren Impuls bekommen. Bis zum Ende des zweiten Report-Intervalls kommt kein neuer Impuls. Als Ergebnis würde Arducounter wieder einen Impuls und eine Zeitdifferenz von 45 Sekunden ausgeben.

Das Messergebnis und die Korrektheit wird so bei niedrigen Frequenzen deutlich genauer und sieht in Plots sichtbar weniger ausgefranst aus.

Leider hat auch diese Methode ihre Grenzen. Wenn die Impulsfrequenz nochmal geringer wird und beispielsweise nur alle 90 Sekunden ein Impuls kommt, könnte Arducounter in 60 Sekunden auch nicht vernünftig zählen. Für diesen Fall habe ich ein zweites Intervall eingebaut - das maximale Intervall. In der früheren Version hat Arducounter für den Fall dass in einem Intervall gar kein Impuls gekommen ist, einfach weitergezählt und noch kein Ergebnis ausgegeben. Nach einem weiteren Ablauf des normalen Intervalls wurde wieder geprüft, ob etwas gezählt wurde und gegebenenfalls weiter gewartet. Erst wenn auch das maximale Intervall abgelaufen ist (z.B. 5 Minuten) wurde dann die Anzahl der Impulse und die Differenz zwischen Startpunkt (letzter Impuls im vorhergehenden Intervall) und letztem gezählten Impuls zurückgegeben. Soweit hat das gut funktioniert.

Wenn nun aber auch im Maximalen Intervall kein Impuls gezählt werden konnte, dann hat Arducounter als Ergebnis 0 ausgegeben und das Ende des maximalen Intervalls als neuen Startpunkt festgelegt. Das funktioniert gut, es sei denn die Impulse kommen so unglücklich, dass direkt nach Ende des maximalen Intervalls ein Impuls kommt und dann wieder 6 Minuten lang keiner.
Dann hätte Arducounter bisher nach Ende des Maximalen Intervalls den Startpunkt auf das Ende des Intervalls gelegt, direkt danach (z.B. nach einer halben Sekunde) einen Impuls gezählt und dann nach Ende des Reporting Intervalls einen Impuls in einer halben Sekunde ausgegeben. Das wäre dann eine falsche Spitze im Stromverbrauch.

Die Spitzen sind immer dann entstanden, wenn wenige Impulse gezählt wurden und diese aber in einem sehr kurzen Zeitintervall berichtet wurden.

Um das zu vermeiden habe ich in der neuen Version ein paar neue Intervall-Parameter eingeführt, die der Anwender per Attribut wählen kann:

1) Neben dem ersten Parameter (ich nenne ihn jetzt "normales Intervall") und dem zweiten Parameter ("maximales Intervall") gibt es noch den neuen dritten Parameter ("minimales Intervall") und einen neuen vierten (minimaler Count).
Wenn am Ende des Reporting-Intervalls weniger Impulse als der minimale Count gezählt wurden oder wenn die gezählten Impulse in einer Zeitspanne gezählt wurden, die kleiner als das minimale Intervall ist, dann greift wieder das maximale Intervall und es wird noch kein Ergebnis ausgegeben sondern weiter gezählt. Die Hoffnung ist, dass dann doch noch Impulse kommen und so ein sinnvolleres Ergebnis berechnet werden kann.

Das Maximale Intervall sollte dabei durchaus ein vielfaches des normalen Intervalls sein. Das bedeutet nicht dass ein Ergebnis entweder innerhalb des ersten normalen Intervalls kommen muss, oder dann gleich auf das Ende des maximalen Intervalls verzögert wird, denn auch wenn verzögert wird, prüft Arducounter jeweils nach Ablauf eines weiteren normalen Intervalls, ob inzwischen Werte zum Reporten vorhanden sind. Beim Ablauf des maximalen Intervalls ohne dass die Kriterien erfüllt sind (minimales Intervall und minimaler Count) wird dann jedoch ein Ergebnis ausgegeben, auch wenn noch zu wenige Impulse gezählt wurden.

Wenn man das normale Intervall beispielsweise auf 60 Sekunden, das maximale auf 20 Minuten und das minimale Intervall auf 20 Sekunden setzt, dann kommen zumindest keine Spitzen heraus, wenn nach einem langen Zeitraum ohne Impulse nur ein Impuls direkt zu Beginn eines neuen Intervalls gezählt wird.

Zusätzlich kann man den minimalen Count auf 2 oder 3 setzen und so generell bei geringen Frequenzen die Zählung auf das maximale Intervall schieben. Das maximale Intervall sollte dann nur groß genug sein.

2) Falls jemand die Berechnungsweise wie oben nicht gefällt und er möchte lieber starr in einem festgesetzten Intervall zählen, dann kann er die ersten beiden Intervall-Parameter auf den gleichen Wert setzen (z.B. 60 Sekunden und 60 Sekunden). Arducounter sieht das als Signal, dass starre Intervalle gewünscht sind und zählt nur Impulse im vorgegebenen Reporting-Intervall. Die Zählung beginnt bei der ersten Sekunde und endet nach 60 Sekunden, egal wie viele Inpulse jeweils darin gezählt wurden. Das Ergebnis wird immer nach 60 Sekunden ausgegeben.

3) Ein weiterer unschöner Effekt war bisher dass der Stromverbrauch am Ende eines Intervalls berechnet und ins Log geschrieben wurde. Zunächst mal ist das "normal", da ja zuerst gezählt werden muss. Aber für weitere Berechnungen in Fhem wird typischerweise davon ausgegangen, dass ein Reading so lange den gleichen Wert hat, bis es sich ändern.
Beim Stromverbrauch ist das aber nicht so. Der ausgegebene Stromverbrauch war bisher so wie er jetzt ausgegeben wurde und nun beginnt die neue Messung.
In der neuen Version wird nun die Stromverbrauchs-Messung mit dem Zeitpunkt des Intervall-Beginns ins Log geschrieben und nur die Zähler- und Zeitwerte bekommen den Zeitstempel der Ausgabe vom Arduino.

Dieses Verhalten werde ich noch per Attribut wählbar machen, denn wenn die Ergebnisse zusammen mit anderen Zählern im gleichen Log landen sollen, kann das zu Problemen führen, da dann die Logeinträge keine starr aufsteigenden Zeitstempel mehr haben könnten.

Ich hoffe das erklärt ein paar Internas. Ich freue mich über Feeback, weitere Tests oder sonstige sinnvolle Verbesserungsvorschläge.

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: BillyPbg am 01 November 2016, 13:57:23
Hallo Stefan,

vorweg vielen Dank für Deine echt tolle Arbeit!

Wenn Du gerade an Deinem Modul so kräftig Dir den Kopf zerbrichst, hätte ich noch - wie ich meine - eine sinnvolle Idee-Anregung-Bitte für Deinen ArduCounter:

Wie Dir bereits ja auch bekannt ist, gibt es immer wieder Störimpulse zwecks Kabellängen, ungeschirmter bzw. falscher Kabel, ungenügend gefilterter Versorgungsspannung etc...

Bau doch bitte eine wählbare Option  "S0-Prüfung" ein, in der Du die Impulslänge von 30ms und Minimal-Impulspause von ebenfalls 30ms (plus Flanken) prüfen läßt (Genauere Daten dazu siehe Anlage...).

Dies noch versehen mit einer zusätzlichen "S0-Karenzzeit"-Option, in der man "+-  X" Millisekunden frei definieren kann, für die nicht ganz so genauen Zähler. Dies würde viele Probleme lösen..
.
Diese Auswertung könnte man dann als aufsummierte Gegenüberstellung "x verworfen von x Impulsen" in FORM eines Readings dem User zur Verfügung stellen oder per "Get" abrufen lassen.

Ich bin nämlich überzeugt, dass viele Spitzen nicht nur aufgrund der Zählmethode entstanden sind, sondern vielmehr aufgrund der Tatsache von unerkannten Störimpulsen, die sonst ja weiterhin unerkannt bleiben würden, und so den Gesamteindruck Deines Moduls und Deiner super Arbeit verfälschen würde.

Viel Grüße aus dem sonnigen Bayern!
Billy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 01 November 2016, 14:07:36
Hallo Billy,

vielen Dank für die gute Anregung.
Das bau ich noch ein.

Gruss / Thanx
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 01 November 2016, 14:35:15
Hallo Otto,

hier nochmal eine neue Version. Ich habe einiges optimiert. Könntest Du das mal mit verbose 4 testen und dann ein Stück Fhem-Log posten, dann muss ich nicht so viel spekulieren, was jetzt tatsächlich die Ursache der Spitzen bei Dir gewesen sein könnte?
Im Log sollte dann die komplette Kommunikation zwischen Modul und Sketch zu sehen sein.

Im Doku-Teil des Moduls habe ich die neuen Optionen schon beschrieben, aber ich poste das dann auch nochmal ausführlich auf deutsch wenn Dein Test / Log zeigt, dass es so auch schon gut funktioniert ;-)

Gruss / vielen Dank
    Stefan
Hallo Stefan,

vielen Dank! Ich war ein paar Tage nicht da und mache mich jetzt ans testen.
Das mit den zwei Impulsen hintereinander an Pin6 würde ich von der Überlegung her ausschließen, da ich ja die gezählten Impulse am  Pin6 mit dem tatsächlichen Zählerstand vergleichen kann. Aber ich prüfe das.

Ich melde mich mit Ergebnissen zurück.

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 02 November 2016, 13:11:49
Hallo Stefan,

so alles "eingebaut" und schon nach wenigen Minuten gibt es wieder Spitzen -> 13:01.
Zunächst mal die Messwerte:
2016-11-02_12:52:33 AC power6: 0.000
2016-11-02_12:53:07 AC pin6: 9
2016-11-02_12:53:05 AC power4: 1.029
2016-11-02_12:54:07 AC pin4: 89
2016-11-02_12:54:06 AC power4: 1.029
2016-11-02_12:55:07 AC pin4: 96
2016-11-02_12:53:17 AC power6: 0.436
2016-11-02_12:55:07 AC pin6: 10
2016-11-02_12:55:06 AC power4: 1.036
2016-11-02_12:56:07 AC pin4: 103
2016-11-02_12:55:01 AC power6: 1.470
2016-11-02_12:56:07 AC pin6: 12
2016-11-02_12:56:06 AC power4: 1.030
2016-11-02_12:57:07 AC pin4: 110
2016-11-02_12:52:05 AC power5: 0.000
2016-11-02_12:57:07 AC pin5: 2
2016-11-02_12:56:34 AC power6: 1.464
2016-11-02_12:57:07 AC pin6: 13
2016-11-02_12:57:05 AC power4: 1.029
2016-11-02_12:58:07 AC pin4: 117
2016-11-02_12:57:01 AC power6: 1.463
2016-11-02_12:58:07 AC pin6: 15
2016-11-02_12:58:13 AC power6: 0.902
2016-11-02_12:59:06 AC pin6: 16
2016-11-02_12:58:32 AC power4: 0.096
2016-11-02_13:00:07 AC pin4: 118
2016-11-02_12:58:43 AC power6: 0.572
2016-11-02_13:00:07 AC pin6: 17
2016-11-02_12:59:38 AC power4: 0.306
2016-11-02_13:01:06 AC pin4: 121
2016-11-02_13:01:00 AC power6: 7.319
2016-11-02_13:01:07 AC pin6: 18
2016-11-02_13:01:07 AC power4: 0.306
2016-11-02_13:02:06 AC pin4: 123
2016-11-02_12:57:06 AC power5: 0.000
2016-11-02_13:02:06 AC pin5: 2
2016-11-02_13:02:08 AC power4: 0.306
2016-11-02_13:03:06 AC pin4: 125
2016-11-02_13:02:01 AC power6: 0.731
2016-11-02_13:03:06 AC pin6: 19
2016-11-02_13:03:08 AC power4: 0.306
2016-11-02_13:04:06 AC pin4: 127
2016-11-02_13:03:01 AC power6: 0.730
2016-11-02_13:04:06 AC pin6: 20
2016-11-02_13:04:07 AC power4: 0.305
2016-11-02_13:05:06 AC pin4: 129
2016-11-02_13:04:01 AC power6: 0.734
2016-11-02_13:05:06 AC pin6: 21
2016-11-02_13:05:07 AC power4: 0.305
2016-11-02_13:06:06 AC pin4: 131
2016-11-02_13:05:01 AC power6: 0.740
2016-11-02_13:06:06 AC pin6: 22
2016-11-02_13:06:07 AC power4: 0.304
2016-11-02_13:07:06 AC pin4: 133
2016-11-02_13:02:06 AC power5: 0.000
2016-11-02_13:07:06 AC pin5: 2
2016-11-02_13:06:01 AC power6: 0.735
2016-11-02_13:07:06 AC pin6: 23

Und hier das Log 2016.11.02 12:58:07 4: AC: Read match msg: Pin 4 count 117 (diff 7) in 61254 Millis, first at 442?, last at 56918
2016.11.02 12:58:07 4: AC: Read match msg: Pin 6 count 15 (diff 2) in 65616 Millis, first at 817, last at 33730
2016.11.02 12:59:06 4: AC: Read match msg: Pin 6 count 16 (diff 1) in 53225 Millis, first at 26955, last at 26955
2016.11.02 13:00:06 4: AC: Read match msg: Pin 4 count 118 (diff 1) in 94090 Millis, first at 91008, last at 91008
2016.11.02 13:00:07 4: AC: Read match msg: Pin 6 count 17 (diff 1) in 83975 Millis, first at 50130, last at 50130
2016.11.02 13:01:06 4: AC: Read match msg: Pin 4 count 121 (diff 3) in 88276 Millis, first at 359, last at 59284
2016.11.02 13:01:07 4: AC: Read match msg: Pin 6 count 18 (diff 1) in 6558 Millis, > Mfirst at 55716, last at 55716
2016.11.02 13:02:06 4: AC: Read match msg: Pin 4 count 123 (diff 2) in 58901 Millis, first at 28745, last at 58185
2016.11.02 13:02:06 4: AC: Read match msg: Pin 5 count 2 (diff 0) in 300800 Millis,
2016.11.02 13:03:06 4: AC: Read match msg: Pin 4 count 125 (diff 2) in 58822 Millis, first at 275<4, last at 57007
2016.11.02 13:03:06 4: AC: Read match msg: Pin 6 count 19 (diff 1) in 65677 Millis, first at 61393, last at 61393
2016.11.02 13:04:06 4: AC: Read match msg: Pin 4 count 127 (diff 2) in 58761 Millis, first at 263?4, last at 55768
2016.11.02 13:04:06 4: AC: Read match msg: Pin 6 count 20 (diff 1) in 65767 Millis, first at 7160, last at 7160
2016.11.02 13:05:06 4: AC: Read match msg: Pin 4 count 129 (diff 2) in 59079 Millis, first at 253;6, last at 54847
2016.11.02 13:05:06 4: AC: Read match msg: Pin 6 count 21 (diff 1) in 65404 Millis, first at 12564, last at 125>4
2016.11.02 13:06:06 4: AC: Read match msg: Pin 4 count 131 (diff 2) in 59086 Millis, first at 243>3, last at 53933
2016.11.02 13:06:06 4: AC: Read match msg: Pin 6 count 22 (diff 1) in 64860 Millis, first at 17424, last at 174:4
2016.11.02 13:07:06 4: AC: Read match msg: Pin 4 count 133 (diff 2) in 59194 Millis, first at 235=4, last at 53127
2016.11.02 13:07:06 4: AC: Read match msg: Pin 5 count 2 (diff 0) in 300000 Millis,
2016.11.02 13:07:06 4: AC: Read match msg: Pin 6 count 23 (diff 1) in 65345 Millis, first at :2769, last at 22769
2016.11.02 13:08:06 4: AC: Read match msg: Pin 4 count 135 (diff 2) in 59259 Millis, first at 22781, last at 52386
2016.11.02 13:08:06 4: AC: Read match msg: Pin 6 count 24 (diff 1) in 63379 Millis, first at 26148, last at 261<8
2016.11.02 13:09:06 4: AC: Read match msg: Pin 4 count 137 (diff 2) in 59291 Millis, first at 22088, last at 51677
2016.11.02 13:09:06 4: AC: Read match msg: Pin 6 count 25 (diff 1) in 63259 Millis, first at 29407, last at 29487
2016.11.02 13:10:06 4: AC: Read match msg: Pin 4 count 139 (diff 2) in 59393 Millis, first at 21391, last at 51070
2016.11.02 13:10:06 4: AC: Read match msg: Pin 6 count 26 (diff 1) in 63318 Millis, first at 32725, last at 327:5

Irgendwie sehen die Zahlen manchmal komisch aus - oder?
Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 02 November 2016, 18:27:21
Hallo Otto,

vielen Dank für's Testen und das Log.
Damit wird die Fehlersuche einfacher :-)

Mal unabhängig davon, dass ich an Deinem Log sehe dass das mit den Zeitstempeln im Log noch verbessert werden muss, liegt das mit den Spitzen vermutlich an Störungen.

Vor 13:01 kommen die Impulse meist im Abstand von 50 bis 80 Sekunden. Um 13:01 kommt dann aber gleich nach 6 Sekunden wieder einer. Wenn Das keine echte Lastspitze ist, wird es wohl ein Störimpuls sein.
In der nächsten Version baue ich noch den vorgeschlagenen 30ms Filter ein. Evt. können wir solche Impulse damit unterdrücken.

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 02 November 2016, 21:07:31
Das mit den Sonderzeichen in den Zahlen ist natürlich ziemlich seltsam.
Sieht nach einem Problem mit der seriellen Ausgabe aus.
Das muss ich mir noch näher ansehen.

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 02 November 2016, 21:15:10
Hallo Stefan,

ich liefere Dir mal noch mehr "Futter"

Hier das Log von FHEM ab 17:00 Uhr 2016.11.02 17:00:56 4: AC: Read match msg: Pin 6 count 318 (diff 1) in 52529 Millis, first at 1534, last at 1534
2016.11.02 17:01:55 4: AC: Read match msg: Pin 6 count 319 (diff 1) in 60690 Millis, first at 2224, last at 2224
2016.11.02 17:03:55 4: AC: Read match msg: Pin 4 count 1219 (diff 1) in 297720 Millis, first at 297450, last at 297450
2016.11.02 17:04:55 4: AC: Read match msg: Pin 5 count 13 (diff 0) in 300000 Millis,
2016.11.02 17:04:55 4: AC: Read match msg: Pin 6 count 320 (diff 1) in 195638 Millis, first at 137862, last at(137862
2016.11.02 17:07:55 4: AC: Read match msg: Pin 6 count 321 (diff 1) in 195849 Millis, first at 15;711, last at 153711
2016.11.02 17:08:55 4: AC: Read match msg: Pin 4 count 1219 (diff 0) in 302550 Millis,
2016.11.02 17:09:55 4: AC: Read match msg: Pin 5 count 13 (diff 0) in 300000 Millis,
2016.11.02 17:10:55 4: AC: Read match msg: Pin 6 count 322 (diff 1) in 196334 Millis, first at 178045, last at 170045
2016.11.02 17:13:55 4: AC: Read match msg: Pin 4 count 1219 (diff 0) in 300000 Millis,
2016.11.02 17:14:55 4: AC: Read match msg: Pin 5 count 13 (diff 0) in 300000 Millis,
2016.11.02 17:14:55 4: AC: Read match msg: Pin 6 count 323 (diff 1) in 198026 Millis, first at 188071, last at(188071
2016.11.02 17:17:55 4: AC: Read match msg: Pin 6 count 324 (diff 1) in 197754 Millis, first at 14=825, last at 145825
2016.11.02 17:18:55 4: AC: Read match msg: Pin 4 count 1219 (diff 0) in 300000 Millis,
2016.11.02 17:19:55 4: AC: Read match msg: Pin 5 count 13 (diff 0) in 300000 Millis,
2016.11.02 17:20:55 4: AC: Read match msg: Pin 6 count 325 (diff 1) in 198449 Millis, first at 16<274, last at 164274
2016.11.02 17:21:55 4: AC: Read match msg: Pin 4 count 1220 (diff 1) in 144341 Millis, first at 1<4341, last at 144341
2016.11.02 17:24:54 4: AC: Read match msg: Pin 5 count 13 (diff 0) in 300000 Millis,
2016.11.02 17:24:55 4: AC: Read match msg: Pin 6 count 326 (diff 1) in 998540 Millis, first at 182814, last at 182814
2016.11.02 17:26:54 4: AC: Read match msg: Pin 4 count 1220 (diff 0) in 335659 Millis,
2016.11.02 17:27:54 4: AC: Read match msg: Pin 6 count 327 (diff 1) in 199174 Millis, first at 149988, last at 141988
2016.11.02 17:29:54 4: AC: Read match msg: Pin 5 count 13 (diff 0) in 300000 Millis,
2016.11.02 17:30:54 4: AC: Read match msg: Pin 6 count 328 (diff 1) in 199507 Millis, first at 161495, last at 161495
2016.11.02 17:31:54 4: AC: Read match msg: Pin 4 count 1220 (diff 0) in 300000 Millis,
2016.11.02 17:34:54 4: AC: Read match msg: Pin 5 count 13 (diff 0) in 300000 Millis,
2016.11.02 17:34:54 4: AC: Read match msg: Pin 6 count 329 (diff 1) in 999115 Millis, first at 180610, last at 180610
2016.11.02 17:36:54 4: AC: Read match msg: Pin 4 count 1220 (diff 0) in 300000 Millis,
2016.11.02 17:37:54 4: AC: Read match msg: Pin 6 count 330 (diff 1) in 199235 Millis, first at 139845, last at 139845
2016.11.02 17:38:54 4: AC: Read match msg: Pin 4 count 1221 (diff 1) in 109973 Millis, first at 189973, last at 109973
2016.11.02 17:39:54 4: AC: Read match msg: Pin 5 count 13 (diff 0) in 300000 Millis,
2016.11.02 17:40:54 4: AC: Read match msg: Pin 5 count 14 (diff 1) in 53263 Millis, first at 53263, last at 53263
2016.11.02 17:40:54 4: AC: Read match msg: Pin 6 count 331 (diff 1) in 17 Millis, ?927 Mfirst at 137772, last at 137772
2016.11.02 17:43:54 4: AC: Read match msg: Pin 4 count 1221 (diff 0) in 310027 Millis,
2016.11.02 17:43:54 4: AC: Read match msg: Pin 6 count 332 (diff 1) in 183156 Millis, first at 140928, last it 140928
2016.11.02 17:44:25 1: Timeout for PRESENCE_DoLocalBluetoothScan reached, terminated process 28565
2016.11.02 17:44:25 2: PRESENCE (BT_iBrina) - device could not be checked (retrying in 10 seconds)
2016.11.02 17:44:56 2: PRESENCE (BT_iBrina) - check returned a valid result after 1 unsuccesful retry
2016.11.02 17:45:53 4: AC: Read match msg: Pin 5 count 14 (diff 0) in 306737 Millis,
2016.11.02 17:46:53 4: AC: Read match msg: Pin 6 count 333 (diff 1) in 181825 Millis, first at 142753, last at 142753
2016.11.02 17:48:53 4: AC: Read match msg: Pin 4 count 1221 (diff 0) in 300000 Millis,
2016.11.02 17:49:53 4: AC: Read match msg: Pin 6 count 334 (diff 1) in 183428 Millis, first at 14>181, last at 146181
2016.11.02 17:50:53 4: AC: Read match msg: Pin 5 count 14 (diff 0) in 300000 Millis,
2016.11.02 17:52:53 4: AC: Read match msg: Pin 6 count 335 (diff 1) in 182068 Millis, first at 148249, last at 148249
2016.11.02 17:53:53 4: AC: Read match msg: Pin 4 count 1221 (diff 0) in 300000 Millis,
2016.11.02 17:55:53 4: AC: Read match msg: Pin 5 count 14 (diff 0) in 300000 Millis,
2016.11.02 17:55:53 4: AC: Read match msg: Pin 6 count 336 (diff 1) in 983187 Millis, first at 151436, last at 151436
2016.11.02 17:56:53 4: AC: Read match msg: Pin 4 count 1222 (diff 1) in 129777 Millis, first at 129777, last at 129777
2016.11.02 17:58:53 4: AC: Read match msg: Pin 6 count 337 (diff 1) in 170884 Millis, first at 142320, last at 142320
2016.11.02 18:00:53 4: AC: Read match msg: Pin 4 count 1227 (diff 5) in 281479 Millis, first at 195972, last at 231256
2016.11.02 18:00:53 3: AC: R5 C14 D0(T300000
2016.11.02 18:00:53 4: AC: Read match msg: Pin 6 count 339 (diff 2) in 156257 Millis, first at 81221, last at 118577
2016.11.02 18:01:53 4: AC: Read match msg: Pin 4 count 1234 (diff 7) in 61836 Millis, first at 103, last at 53092
2016.11.02 18:01:53 4: AC: Read match msg: Pin 6 count 340 (diff 1) in 37 Millis, ;88 Mfirst at 35965, last at 35965
2016.11.02 18:02:53 4: AC: Read match msg: Pin 4 count 1241 (diff 7) in 61914 Millis, first at 1950, last at 55006
2016.11.02 18:02:53 4: AC: Read match msg: Pin 6 count 342 (diff 2) in 7 Millis, <773 Mfirst at 13412, last at 50738
2016.11.02 18:03:53 4: AC: Read match msg: Pin 4 count 1248 (diff 7) in 62023 Millis, first at 3838, last at 57029
2016.11.02 18:03:53 4: AC: Read match msg: Pin 6 count 343 (diff 1) in 3 Millis, ?569 Mfirst at 28307, last at 28307
2016.11.02 18:04:53 4: AC: Read match msg: Pin 4 count 1255 (diff 7) in 61934 Millis, first at 5879, last at 58963
2016.11.02 18:04:53 4: AC: Read match msg: Pin 6 count 345 (diff 2) in 7 Millis, >194 Mfirst at 5694, last at 44501
2016.11.02 18:05:53 4: AC: Read match msg: Pin 4 count 1261 (diff 6) in 52637 Millis, first at 7692, last at 51600
2016.11.02 18:05:53 4: AC: Read match msg: Pin 5 count 14 (diff 0) in 308000 Millis,
2016.11.02 18:05:53 4: AC: Read match msg: Pin 6 count 346 (diff 1) in 38958 Millis, first at 23459, last at 23459
2016.11.02 18:06:53 4: AC: Read match msg: Pin 4 count 1268 (diff 7) in 61624 Millis, first at 376, last at 53224
2016.11.02 18:06:53 4: AC: Read match msg: Pin 6 count 348 (diff 2) in 78868 Millis, first at 2478, last at 41527
2016.11.02 18:07:53 4: AC: Read match msg: Pin 4 count 1275 (diff 7) in 61631 Millis, first at 2039, last at 54855
2016.11.02 18:07:53 4: AC: Read match msg: Pin 6 count 350 (diff 2) in 78190 Millis, first at 20668, last at 59717
2016.11.02 18:08:52 4: AC: Read match msg: Pin 4 count 1282 (diff 7) in 61979 Millis, first at 3708, last at 56834
2016.11.02 18:08:53 4: AC: Read match msg: Pin 6 count 351 (diff 1) in 39201 Millis, first at 38918, last at 38918
2016.11.02 18:09:52 4: AC: Read match msg: Pin 4 count 1289 (diff 7) in 62176 Millis, first at 5763, last at 59010
2016.11.02 18:09:53 4: AC: Read match msg: Pin 6 count 353 (diff 2) in 78732 Millis, first at 18359, last at 57650
2016.11.02 18:10:52 4: AC: Read match msg: Pin 4 count 1295 (diff 6) in 53313 Millis, first at 7889, last at 52323
2016.11.02 18:10:52 4: AC: Read match msg: Pin 5 count 14 (diff 0) in 308000 Millis,
2016.11.02 18:10:53 4: AC: Read match msg: Pin 6 count 354 (diff 1) in 39109 Millis, first at 36759, last at 36759
2016.11.02 18:11:52 4: AC: Read match msg: Pin 4 count 1302 (diff 7) in 62034 Millis, first at 1201, last at 54357
2016.11.02 18:11:52 4: AC: Read match msg: Pin 6 count 356 (diff 2) in 78099 Millis, first at 15869, last at 54858
2016.11.02 18:12:52 4: AC: Read match msg: Pin 4 count 1309 (diff 7) in 61473 Millis, first at 3162, last at 55830
2016.11.02 18:12:52 4: AC: Read match msg: Pin 5 count 15 (diff 1) in 85833 Millis, first at 85033, last at 85033
2016.11.02 18:12:53 4: AC: Read match msg: Pin 6 count 357 (diff 1) in 38807 Millis, first at ;3665, last at 33665
2016.11.02 18:13:52 4: AC: Read match msg: Pin 4 count 1316 (diff 7) in 62015 Millis, first at 46:7, last at 57845
2016.11.02 18:13:52 4: AC: Read match msg: Pin 6 count 359 (diff 2) in 77827 Millis, first at 12413, last at 51<92
2016.11.02 18:14:52 4: AC: Read match msg: Pin 4 count 1323 (diff 7) in 62114 Millis, first at 67:2, last at 59959
2016.11.02 18:14:52 4: AC: Read match msg: Pin 6 count 360 (diff 1) in 39019 Millis, first at 30511, last at 30=11
2016.11.02 18:15:52 4: AC: Read match msg: Pin 4 count 1329 (diff 6) in 53192 Millis, first at 88<3, last at 53151
2016.11.02 18:15:52 4: AC: Read match msg: Pin 6 count 362 (diff 2) in 78159 Millis, first at 9621, last at 486?0
2016.11.02 18:16:52 4: AC: Read match msg: Pin 4 count 1336 (diff 7) in 62431 Millis, first at 20<0, last at 55582
2016.11.02 18:16:52 4: AC: Read match msg: Pin 6 count 363 (diff 1) in 39109 Millis, first at 27779, last at 27?79
2016.11.02 18:17:52 4: AC: Read match msg: Pin 4 count 1337 (diff 1) in 8982 Millis, first at 456<, last at 4564
2016.11.02 18:17:52 4: AC: Read match msg: Pin 5 count 15 (diff 0) in 334967 Millis,
2016.11.02 18:17:52 4: AC: Read match msg: Pin 6 count 364 (diff 1) in 39443 Millis, first at ?222, last at 7222
2016.11.02 18:20:52 4: AC: Read match msg: Pin 6 count 365 (diff 1) in 208574 Millis, first at 15=796, last at 155796
2016.11.02 18:22:52 4: AC: Read match msg: Pin 4 count 1337 (diff 0) in 355436 Millis,
2016.11.02 18:22:52 3: AC: R5 C15 D0 \300000
2016.11.02 18:24:52 4: AC: Read match msg: Pin 6 count 366 (diff 1) in 215072 Millis, first at 198868, last at 190868
2016.11.02 18:25:52 4: AC: Read match msg: Pin 4 count 1338 (diff 1) in 126580 Millis, first at 1:6580, last at 126580
2016.11.02 18:27:52 4: AC: Read match msg: Pin 5 count 15 (diff 0) in 300000 Millis,
2016.11.02 18:27:52 3: AC: R6 C367 D1 T:15858 Mfirst at 166726, last at 166726
2016.11.02 18:30:51 4: AC: Read match msg: Pin 4 count 1338 (diff 0) in 353420 Millis,
2016.11.02 18:30:52 4: AC: Read match msg: Pin 6 count 368 (diff 1) in 193040 Millis, first at 179766, last it 179766
2016.11.02 18:32:51 4: AC: Read match msg: Pin 5 count 15 (diff 0) in 300000 Millis,
2016.11.02 18:33:51 4: AC: Read match msg: Pin 6 count 369 (diff 1) in 177442 Millis, first at 177208, last at 177208
2016.11.02 18:35:51 4: AC: Read match msg: Pin 4 count 1338 (diff 0) in 300000 Millis,
2016.11.02 18:36:51 4: AC: Read match msg: Pin 6 count 370 (diff 1) in 177293 Millis, first at 17<501, last at 174501
2016.11.02 18:37:51 4: AC: Read match msg: Pin 5 count 15 (diff 0) in 300000 Millis,
2016.11.02 18:39:51 4: AC: Read match msg: Pin 6 count 371 (diff 1) in 177474 Millis, first at 171975, last at 171975
2016.11.02 18:40:51 4: AC: Read match msg: Pin 4 count 1338 (diff 0) in 300000 Millis,
2016.11.02 18:42:51 4: AC: Read match msg: Pin 4 count 1339 (diff 1) in 85915 Millis, first at 85915, last at 85915
2016.11.02 18:42:51 4: AC: Read match msg: Pin 5 count 15 (diff 0) in 300000 Millis,
2016.11.02 18:42:51 4: AC: Read match msg: Pin 6 count 372 (diff 1) in 173031 Millis, first(at 165006, last at 165006
2016.11.02 18:45:51 4: AC: Read match msg: Pin 6 count 373 (diff 1) in 173121 Millis, first at 158127, last at 158127
2016.11.02 18:47:51 4: AC: Read match msg: Pin 4 count 1339 (diff 0) in 334085 Millis,
2016.11.02 18:47:51 3: AC: R5 C15 D0 \300000
2016.11.02 18:48:51 4: AC: Read match msg: Pin 6 count 374 (diff 1) in 173243 Millis, first at 159370, last at 151370
2016.11.02 18:51:51 4: AC: Read match msg: Pin 4 count 1357 (diff 18) in 238715 Millis, first at 983894, last at 238715
2016.11.02 18:51:51 4: AC: Read match msg: Pin 6 count 378 (diff 4) in 195820 Millis, first at 120404, las| at 167190
2016.11.02 18:52:51 4: AC: Read match msg: Pin 4 count 1375 (diff 18) in 58151 Millis, first at 1947, last at 56866
2016.11.02 18:52:51 4: AC: Read match msg: Pin 5 count 15 (diff 0) in 300000 Millis,
2016.11.02 18:52:51 4: AC: Read match msg: Pin 6 count 382 (diff 4) in 62111 Millis, first it 2756, last at 49301
2016.11.02 18:53:50 4: AC: Read match msg: Pin 4 count 1394 (diff 19) in 61197 Millis, first at 9;, last at 58063
2016.11.02 18:53:51 4: AC: Read match msg: Pin 6 count 386 (diff 4) in 62775 Millis, first at 4957, last at 5207>
2016.11.02 18:54:50 4: AC: Read match msg: Pin 4 count 1413 (diff 19) in 61416 Millis, first at 1:88, last at 59479
2016.11.02 18:54:50 4: AC: Read match msg: Pin 6 count 390 (diff 4) in 63228 Millis, first at 7822, last at 55;04
2016.11.02 18:55:50 4: AC: Read match msg: Pin 4 count 1431 (diff 18) in 58419 Millis, first at 2?30, last at 57898
2016.11.02 18:55:50 4: AC: Read match msg: Pin 6 count 394 (diff 4) in 63501 Millis, first at 11142, last at 58805
2016.11.02 18:56:50 4: AC: Read match msg: Pin 4 count 1450 (diff 19) in 61781 Millis, first at 1940, last at 59679
2016.11.02 18:56:50 4: AC: Read match msg: Pin 6 count 397 (diff 3) in 47663 Millis, first at 14673, last at 4>468
2016.11.02 18:57:50 4: AC: Read match msg: Pin 4 count 1458 (diff 8) in 26150 Millis, first at 29:9, last at 25829
2016.11.02 18:57:50 4: AC: Read match msg: Pin 5 count 15 (diff 0) in 300000 Millis,
2016.11.02 18:57:50 4: AC: Read match msg: Pin 6 count 399 (diff 2) in 31856 Millis, first a| 2426, last at 18324
2016.11.02 18:59:50 4: AC: Read match msg: Pin 6 count 400 (diff 1) in 123586 Millis, first at 81910, last at 81910
2016.11.02 19:02:50 4: AC: Read match msg: Pin 4 count 1458 (diff 0) in 334171 Millis,
2016.11.02 19:02:50 3: AC: R5 C15 D0 \300000
2016.11.02 19:02:50 4: AC: Read match msg: Pin 6 count 401 (diff 1) in 183307 Millis, first at 145217, last at 145217
2016.11.02 19:05:50 4: AC: Read match msg: Pin 6 count 402 (diff 1) in 189835 Millis, first at 155052, last at 155052
2016.11.02 19:07:50 4: AC: Read match msg: Pin 4 count 1458 (diff 0) in 300000 Millis,
2016.11.02 19:07:50 4: AC: Read match msg: Pin 5 count 15 (diff 0) in 300000 Millis,
2016.11.02 19:08:50 4: AC: Read match msg: Pin 6 count 403 (diff 1) in 200565 Millis, first at 175617, last at 175617
2016.11.02 19:10:54 1: Timeout for PRESENCE_DoLocalBluetoothScan reached, terminated process 12470
2016.11.02 19:10:54 2: PRESENCE (BT_iBrina) - device could not be checked (retrying in 10 seconds)
2016.11.02 19:11:09 2: PRESENCE (BT_iBrina) - check returned a valid result after 1 unsuccesful retry
2016.11.02 19:12:50 4: AC: Read match msg: Pin 4 count 1458 (diff 0) in 300000 Millis,
2016.11.02 19:12:50 4: AC: Read match msg: Pin 5 count 16 (diff 1) in 254454 Millis, first at 254454, last a| 254454
2016.11.02 19:12:50 4: AC: Read match msg: Pin 6 count 404 (diff 1) in 195699 Millis, first at 191316, last at 191316
2016.11.02 19:15:49 4: AC: Read match msg: Pin 6 count 405 (diff 1) in 186722 Millis, first at 138038, last at 138038
2016.11.02 19:16:08 1: Timeout for PRESENCE_DoLocalBluetoothScan reached, terminated process 13473
2016.11.02 19:16:08 2: PRESENCE (BT_iBrina) - device could not be checked (retrying in 10 seconds)
2016.11.02 19:16:38 2: PRESENCE (BT_iBrina) - check returned a valid result after 1 unsuccesful retry
2016.11.02 19:17:49 4: AC: Read match msg: Pin 4 count 1458 (diff 0) in 300000 Millis,
2016.11.02 19:17:50 4: AC: Read match msg: Pin 5 count 16 (diff 0) in 345546 Millis,
2016.11.02 19:17:50 4: AC: Read match msg: Pin 6 count 406 (diff 1) in 156832 Millis, fir{t at 114870, last at 114870
2016.11.02 19:20:49 4: AC: Read match msg: Pin 4 count 1459 (diff 1) in 155105 Millis, first at 1=5105, last at 155105
2016.11.02 19:20:49 4: AC: Read match msg: Pin 6 count 407 (diff 1) in 178471 Millis, first at 173341, last(at 173341
2016.11.02 19:22:49 4: AC: Read match msg: Pin 5 count 16 (diff 0) in 300000 Millis,
2016.11.02 19:23:49 4: AC: Read match msg: Pin 6 count 408 (diff 1) in 183790 Millis, first at 177131, last at 177131
2016.11.02 19:25:49 4: AC: Read match msg: Pin 4 count 1459 (diff 0) in 324895 Millis,
2016.11.02 19:27:49 4: AC: Read match msg: Pin 5 count 16 (diff 0) in 300000 Millis,
2016.11.02 19:27:49 4: AC: Read match msg: Pin 6 count 409 (diff 1) in 985242 Millis, first at 182373, last at 182373
2016.11.02 19:30:49 4: AC: Read match msg: Pin 4 count 1459 (diff 0) in 300000 Millis,
2016.11.02 19:30:49 4: AC: Read match msg: Pin 6 count 410 (diff 1) in 185362 Millis, first at 127735, last it 127735
2016.11.02 19:32:49 4: AC: Read match msg: Pin 5 count 16 (diff 0) in 300000 Millis,
2016.11.02 19:33:49 4: AC: Read match msg: Pin 6 count 411 (diff 1) in 185846 Millis, first at 133581, last at 133581
2016.11.02 19:35:48 4: AC: Read match msg: Pin 4 count 1459 (diff 0) in 300000 Millis,
2016.11.02 19:36:48 4: AC: Read match msg: Pin 6 count 412 (diff 1) in 186722 Millis, first at 148303, last at 140303
2016.11.02 19:37:48 4: AC: Read match msg: Pin 5 count 16 (diff 0) in 300000 Millis,
2016.11.02 19:39:48 4: AC: Read match msg: Pin 6 count 413 (diff 1) in 186904 Millis, first at 147207, last at 147207
2016.11.02 19:40:48 4: AC: Read match msg: Pin 4 count 1459 (diff 0) in 300000 Millis,
2016.11.02 19:42:48 4: AC: Read match msg: Pin 5 count 16 (diff 0) in 300000 Millis,
2016.11.02 19:42:48 4: AC: Read match msg: Pin 6 count 414 (diff 1) in 981706 Millis, first at 148913, last at 148913
2016.11.02 19:45:48 4: AC: Read match msg: Pin 4 count 1460 (diff 1) in 267967 Millis, first at 267967, last at 267967
2016.11.02 19:46:48 4: AC: Read match msg: Pin 6 count 415 (diff 1) in 226042 Millis, first at 194955, last at 194955
2016.11.02 19:47:48 4: AC: Read match msg: Pin 5 count 16 (diff 0) in 300000 Millis,
2016.11.02 19:49:48 4: AC: Read match msg: Pin 5 count 17 (diff 1) in 113511 Millis, first at 113=11, last at 113511
2016.11.02 19:50:48 4: AC: Read match msg: Pin 4 count 1460 (diff 0) in 332033 Millis,
2016.11.02 19:50:48 3: AC: R6 C416 D1(T231998 Mfirst at 186953, last at 186953
2016.11.02 19:54:48 4: AC: Read match msg: Pin 5 count 17 (diff 0) in 306489 Millis,
2016.11.02 19:54:48 4: AC: Read match msg: Pin 6 count 417 (diff 1) in 238163 Millis, first at 185116, last at(185116
2016.11.02 19:55:48 4: AC: Read match msg: Pin 4 count 1460 (diff 0) in 300000 Millis,
2016.11.02 19:58:47 4: AC: Read match msg: Pin 6 count 418 (diff 1) in 240611 Millis, first at 185727, last at 185727
2016.11.02 19:59:47 4: AC: Read match msg: Pin 5 count 17 (diff 0) in 300000 Millis,
2016.11.02 20:00:47 4: AC: Read match msg: Pin 4 count 1460 (diff 0) in 300000 Millis,
2016.11.02 20:02:47 4: AC: Read match msg: Pin 6 count 419 (diff 1) in 240520 Millis, first at 186247, last at 186247
2016.11.02 20:04:47 4: AC: Read match msg: Pin 5 count 17 (diff 0) in 300000 Millis,
2016.11.02 20:05:47 4: AC: Read match msg: Pin 4 count 1460 (diff 0) in 300000 Millis,
2016.11.02 20:06:47 4: AC: Read match msg: Pin 6 count 420 (diff 1) in 240158 Millis, first at 186405, last at 186405
2016.11.02 20:09:47 4: AC: Read match msg: Pin 5 count 17 (diff 0) in 300000 Millis,
2016.11.02 20:09:47 4: AC: Read match msg: Pin 6 count 421 (diff 1) in 224865 Millis, first at 171270, last at(171270
2016.11.02 20:10:47 4: AC: Read match msg: Pin 4 count 1461 (diff 1) in 266192 Millis, first at 2>6192, last at 266192
2016.11.02 20:13:47 4: AC: Read match msg: Pin 6 count 422 (diff 1) in 192857 Millis, first at 18<127, last at 184127
2016.11.02 20:14:47 4: AC: Read match msg: Pin 5 count 17 (diff 0) in 300000 Millis,
2016.11.02 20:15:47 4: AC: Read match msg: Pin 4 count 1461 (diff 0) in 333808 Millis,
2016.11.02 20:16:47 4: AC: Read match msg: Pin 6 count 423 (diff 1) in 191347 Millis, first at 13=474, last at 135474
2016.11.02 20:18:47 4: AC: Read match msg: Pin 4 count 1472 (diff 11) in 178760 Millis, first at 955097, last at 178760
2016.11.02 20:18:47 4: AC: Read match msg: Pin 6 count 426 (diff 3) in 161063 Millis, first at 93234, last(at 116537
2016.11.02 20:19:47 4: AC: Read match msg: Pin 4 count 1497 (diff 25) in 59222 Millis, first at 1934, last at 57982
2016.11.02 20:19:47 4: AC: Read match msg: Pin 5 count 17 (diff 0) in 300000 Millis,
2016.11.02 20:19:47 4: AC: Read match msg: Pin 6 count 431 (diff 5) in 58301 Millis, first it 8203, last at 54838
2016.11.02 20:20:47 4: AC: Read match msg: Pin 4 count 1523 (diff 26) in 61536 Millis, first at 3=5, last at 59518
2016.11.02 20:20:47 4: AC: Read match msg: Pin 5 count 18 (diff 1) in 4381 Millis, first at 4381, last at 4381
2016.11.02 20:20:47 4: AC: Read match msg: Pin 6 count 436 (diff 5) in 58334 Millis, first at 6506, last at 53172
2016.11.02 20:21:46 4: AC: Read match msg: Pin 4 count 1548 (diff 25) in 59819 Millis, first at 1888, last at 59337
2016.11.02 20:21:47 3: AC: R6 C441 D5 T=8877 Mfirst at 4868, last at 52049
2016.11.02 20:22:46 4: AC: Read match msg: Pin 4 count 1572 (diff 24) in 58255 Millis, first at 1755, last at 57592
2016.11.02 20:22:46 3: AC: R6 C446 D5 T=9419 Mfirst at 3986, last at 51468
2016.11.02 20:23:46 4: AC: Read match msg: Pin 4 count 1597 (diff 25) in 60736 Millis, first at 20, last at 58328
2016.11.02 20:23:46 4: AC: Read match msg: Pin 6 count 451 (diff 5) in 59 Millis, ;91 Mfirst at 3438, last at 50859
2016.11.02 20:24:46 4: AC: Read match msg: Pin 4 count 1622 (diff 25) in 60818 Millis, first at 762, last at 59146
2016.11.02 20:24:46 4: AC: Read match msg: Pin 6 count 456 (diff 5) in 59723 Millis, first at 2798, last at 50582
2016.11.02 20:25:46 4: AC: Read match msg: Pin 4 count 1647 (diff 25) in 60697 Millis, first at 1577, last at 59843
2016.11.02 20:25:46 4: AC: Read match msg: Pin 5 count 18 (diff 0) in 3 Millis, =5619
2016.11.02 20:25:46 4: AC: Read match msg: Pin 6 count 461 (diff 5) in 59602 Millis, first at 2521, last at 50184
2016.11.02 20:26:46 4: AC: Read match msg: Pin 4 count 1671 (diff 24) in 58261 Millis, first at 2262, last at 58104
2016.11.02 20:26:46 3: AC: R6 C466 D5 T=9572 Mfirst at 2092, last at 49756
2016.11.02 20:27:46 4: AC: Read match msg: Pin 4 count 1696 (diff 25) in 60652 Millis, first at 529, last at 58756
2016.11.02 20:27:46 4: AC: Read match msg: Pin 6 count 471 (diff 5) in 59571 Millis, first at 1664, last at 49327
2016.11.02 20:28:46 4: AC: Read match msg: Pin 4 count 1721 (diff 25) in 60659 Millis, first at 1181, last at 59415
2016.11.02 20:28:46 3: AC: R6 C478 D7 T?0544 Mfirst at 1235, last at 59871
2016.11.02 20:29:46 4: AC: Read match msg: Pin 4 count 1745 (diff 24) in 58193 Millis, first at 1842, last at 57608
2016.11.02 20:29:46 3: AC: R6 C485 D7 T=5612 Mfirst at 7820, last at 55483
2016.11.02 20:30:46 4: AC: Read match msg: Pin 4 count 1770 (diff 25) in 60620 Millis, first at 34, last at 58228
2016.11.02 20:30:46 4: AC: Read match msg: Pin 5 count 18 (diff 0) in 300800 Millis,
2016.11.02 20:30:46 4: AC: Read match msg: Pin 6 count 493 (diff 8) in 63592 Millis, first at 3432, last at 59075
2016.11.02 20:31:46 4: AC: Read match msg: Pin 4 count 1795 (diff 25) in 60672 Millis, first at 658, last at 58900
2016.11.02 20:31:46 4: AC: Read match msg: Pin 6 count 500 (diff 7) in 5 Millis, >036 Mfirst at 7084, last at 55111
2016.11.02 20:32:46 4: AC: Read match msg: Pin 4 count 1820 (diff 25) in 60746 Millis, first at 1324, last at 59646
2016.11.02 20:32:46 3: AC: R6 C507 D7 T=8273 Mfirst at 3121, last at 53384
2016.11.02 20:33:46 4: AC: Read match msg: Pin 4 count 1844 (diff 24) in 58295 Millis, first at 2070, last at 57941
2016.11.02 20:33:46 3: AC: R6 C512 D5 T=9541 Mfirst at 5473, last at 52925
2016.11.02 20:34:46 4: AC: Read match msg: Pin 4 count 1869 (diff 25) in 60339 Millis, first at 357, last at 58280
2016.11.02 20:34:46 4: AC: Read match msg: Pin 6 count 517 (diff 5) in 5 Millis, ?758 Mfirst at 4500, last at 50683
2016.11.02 20:35:46 4: AC: Read match msg: Pin 4 count 1906 (diff 37) in 61714 Millis, first at 691, last at 59994
2016.11.02 20:35:46 4: AC: Read match msg: Pin 5 count 18 (diff 0) in 308000 Millis,
2016.11.02 20:35:46 4: AC: Read match msg: Pin 6 count 525 (diff 8) in 67551 Millis, first at 1654, last at 58234
2016.11.02 20:36:46 4: AC: Read match msg: Pin 4 count 1942 (diff 36) in 58748 Millis, first at 1626, last at 58742
2016.11.02 20:36:46 3: AC: R6 C532 D7 T=6429 Mfirst at 6334, last at 54663
2016.11.02 20:37:46 4: AC: Read match msg: Pin 4 count 1979 (diff 37) in 60451 Millis, first at 373, last at 59193
2016.11.02 20:37:46 4: AC: Read match msg: Pin 6 count 540 (diff 8) in 6 Millis, <408 Mfirst at 2703, last at 59071
2016.11.02 20:38:46 4: AC: Read match msg: Pin 4 count 2016 (diff 37) in 60544 Millis, first at 825, last at 59737
2016.11.02 20:38:46 4: AC: Read match msg: Pin 6 count 547 (diff 7) in 5 Millis, >489 Mfirst at 7111, last at 55560
2016.11.02 20:39:46 4: AC: Read match msg: Pin 4 count 2052 (diff 36) in 58986 Millis, first at 1374, last at 58723
2016.11.02 20:39:46 4: AC: Read match msg: Pin 5 count 19 (diff 1) in 2 Millis, :8655 Mfirst at 228655, last at 228655
2016.11.02 20:39:46 4: AC: Read match msg: Pin 6 count 554 (diff 7) in 56519 Millis, first(at 3629, last at 52079
2016.11.02 20:40:46 4: AC: Read match msg: Pin 4 count 2089 (diff 37) in 60494 Millis, first at 3=8, last at 59217
2016.11.02 20:40:46 4: AC: Read match msg: Pin 6 count 562 (diff 8) in 64498 Millis, first at 119, last at 5657?
2016.11.02 20:41:46 4: AC: Read match msg: Pin 4 count 2126 (diff 37) in 60563 Millis, first at 8=1, last at 59780
2016.11.02 20:41:46 4: AC: Read match msg: Pin 6 count 569 (diff 7) in 56429 Millis, first at 4648, last at 53086
2016.11.02 20:42:46 4: AC: Read match msg: Pin 4 count 2162 (diff 36) in 58973 Millis, first at 1<15, last at 58753
2016.11.02 20:42:46 4: AC: Read match msg: Pin 6 count 577 (diff 8) in 64529 Millis, first at 1076, last at 57=35
2016.11.02 20:43:45 4: AC: Read match msg: Pin 4 count 2199 (diff 37) in 60685 Millis, first at 391, last at 59438
2016.11.02 20:43:46 4: AC: Read match msg: Pin 6 count 584 (diff 7) in 56610 Millis, first at 5606, last at 541<5
2016.11.02 20:44:45 4: AC: Read match msg: Pin 4 count 2235 (diff 36) in 59120 Millis, first at 1880, last at 58558
2016.11.02 20:44:46 4: AC: Read match msg: Pin 5 count 19 (diff 0) in 311345 Millis,
2016.11.02 20:44:46 4: AC: Read match msg: Pin 6 count 592 (diff 8) in 64861 Millis, first it 2276, last at 59006
2016.11.02 20:45:45 4: AC: Read match msg: Pin 4 count 2272 (diff 37) in 60684 Millis, first at 197, last at 59242
2016.11.02 20:45:45 4: AC: Read match msg: Pin 6 count 599 (diff 7) in 56853 Millis, first at 7137, last at 558=9
2016.11.02 20:46:45 4: AC: Read match msg: Pin 4 count 2309 (diff 37) in 60566 Millis, first at 883, last at 59808
2016.11.02 20:46:45 4: AC: Read match msg: Pin 6 count 607 (diff 8) in 63410 Millis, first at 3959, last at 592>9
2016.11.02 20:47:45 4: AC: Read match msg: Pin 4 count 2345 (diff 36) in 59124 Millis, first at 1<50, last at 58932
2016.11.02 20:47:45 4: AC: Read match msg: Pin 6 count 617 (diff 10) in 55493 Millis, first at 5072, last at 5<762
2016.11.02 20:48:45 4: AC: Read match msg: Pin 4 count 2382 (diff 37) in 60493 Millis, first at 5?1, last at 59425
2016.11.02 20:48:45 4: AC: Read match msg: Pin 6 count 627 (diff 10) in 62534 Millis, first at 51, last at 5729>
2016.11.02 20:49:45 4: AC: Read match msg: Pin 4 count 2419 (diff 37) in 60308 Millis, first at 1854, last at 59733
2016.11.02 20:49:45 4: AC: Read match msg: Pin 5 count 19 (diff 0) in 300000 Millis,
2016.11.02 20:49:45 4: AC: Read match msg: Pin 6 count 634 (diff 7) in 56579 Millis, first it 5396, last at 53875
2016.11.02 20:50:45 4: AC: Read match msg: Pin 4 count 2443 (diff 24) in 57465 Millis, first at 1;62, last at 57198
2016.11.02 20:50:45 4: AC: Read match msg: Pin 6 count 639 (diff 5) in 54676 Millis, first at 1916, last at 48=51
2016.11.02 20:51:45 4: AC: Read match msg: Pin 4 count 2464 (diff 21) in 62266 Millis, first at 1=9, last at 59464
2016.11.02 20:51:45 4: AC: Read match msg: Pin 6 count 644 (diff 5) in 69697 Millis, first at 2455, last at 582<8
2016.11.02 20:52:45 4: AC: Read match msg: Pin 4 count 2484 (diff 20) in 59367 Millis, first at 2<30, last at 58831
2016.11.02 20:52:45 4: AC: Read match msg: Pin 6 count 648 (diff 4) in 55824 Millis, first at 12181, last at 5<072
2016.11.02 20:53:45 4: AC: Read match msg: Pin 4 count 2504 (diff 20) in 59258 Millis, first at 1?97, last at 58089
2016.11.02 20:53:45 4: AC: Read match msg: Pin 6 count 652 (diff 4) in 55340 Millis, first at 8005, last at 49<12
2016.11.02 20:54:45 4: AC: Read match msg: Pin 4 count 2524 (diff 20) in 59313 Millis, first at 1848, last at 57402
2016.11.02 20:54:45 4: AC: Read match msg: Pin 5 count 19 (diff 0) in 300000 Millis,
2016.11.02 20:54:45 4: AC: Read match msg: Pin 6 count 657 (diff 5) in 68367 Millis, first it 2922, last at 57779
2016.11.02 20:55:45 4: AC: Read match msg: Pin 4 count 2545 (diff 21) in 62245 Millis, first at 3?1, last at 59647
2016.11.02 20:55:45 4: AC: Read match msg: Pin 6 count 661 (diff 4) in 54886 Millis, first at 11530, last at 52>65
2016.11.02 20:56:45 4: AC: Read match msg: Pin 4 count 2565 (diff 20) in 59305 Millis, first at 2>07, last at 58952
2016.11.02 20:56:45 4: AC: Read match msg: Pin 6 count 665 (diff 4) in 54857 Millis, first at 6357, last at 47=22
2016.11.02 20:57:45 4: AC: Read match msg: Pin 4 count 2585 (diff 20) in 59388 Millis, first at 1917, last at 58340
2016.11.02 20:57:45 4: AC: Read match msg: Pin 6 count 670 (diff 5) in 68639 Millis, first at 1244, last at 56961
2016.11.02 20:58:45 4: AC: Read match msg: Pin 4 count 2605 (diff 20) in 59545 Millis, first at 1;12, last at 57885
2016.11.02 20:58:45 4: AC: Read match msg: Pin 6 count 674 (diff 4) in 54525 Millis, first at 9853, last at 50>86
2016.11.02 20:59:45 4: AC: Read match msg: Pin 4 count 2623 (diff 18) in 59271 Millis, first at 8?4, last at 57156
2016.11.02 20:59:45 4: AC: Read match msg: Pin 5 count 19 (diff 0) in 300000 Millis,
2016.11.02 20:59:45 4: AC: Read match msg: Pin 6 count 678 (diff 4) in 54312 Millis, first a| 2987, last at 44998
2016.11.02 21:00:45 4: AC: Read match msg: Pin 4 count 2636 (diff 13) in 61990 Millis, first at 1932, last at 59146
2016.11.02 21:00:45 4: AC: Read match msg: Pin 6 count 681 (diff 3) in 60962 Millis, first at 5338, last at 45960
2016.11.02 21:01:45 4: AC: Read match msg: Pin 4 count 2648 (diff 12) in 57061 Millis, first at 3917, last at 56207
2016.11.02 21:01:45 4: AC: Read match msg: Pin 6 count 684 (diff 3) in 60901 Millis, first at 6240, last at 46861
2016.11.02 21:02:45 4: AC: Read match msg: Pin 4 count 2661 (diff 13) in 61828 Millis, first at 9=4, last at 58035
2016.11.02 21:02:45 4: AC: Read match msg: Pin 6 count 687 (diff 3) in 61143 Millis, first at 7353, last at 48084
2016.11.02 21:03:45 4: AC: Read match msg: Pin 4 count 2674 (diff 13) in 61859 Millis, first at 2?93, last at 59894
2016.11.02 21:03:45 4: AC: Read match msg: Pin 6 count 690 (diff 3) in 60872 Millis, first at 8284, last at 48876
2016.11.02 21:04:45 4: AC: Read match msg: Pin 4 count 2686 (diff 12) in 57135 Millis, first at 4>47, last at 57029
2016.11.02 21:04:45 4: AC: Read match msg: Pin 5 count 19 (diff 0) in 300000 Millis,
2016.11.02 21:04:45 4: AC: Read match msg: Pin 6 count 693 (diff 3) in 60901 Millis, first it 9156, last at 49777
2016.11.02 21:05:44 4: AC: Read match msg: Pin 4 count 2699 (diff 13) in 61879 Millis, first at 1?96, last at 58908
2016.11.02 21:05:45 4: AC: Read match msg: Pin 6 count 696 (diff 3) in 60962 Millis, first at 10118, last at 58739
2016.11.02 21:06:44 4: AC: Read match msg: Pin 4 count 2711 (diff 12) in 57227 Millis, first at 3>71, last at 56135
2016.11.02 21:06:45 4: AC: Read match msg: Pin 6 count 699 (diff 3) in 61082 Millis, first at 11080, last at 59821
2016.11.02 21:07:44 4: AC: Read match msg: Pin 4 count 2724 (diff 13) in 61818 Millis, first at 893, last at 57953
2016.11.02 21:07:44 4: AC: Read match msg: Pin 6 count 702 (diff 3) in 60961 Millis, first at 12252, last at 52?82
2016.11.02 21:08:44 4: AC: Read match msg: Pin 4 count 2737 (diff 13) in 61872 Millis, first at 2?11, last at 59825
2016.11.02 21:08:44 4: AC: Read match msg: Pin 6 count 705 (diff 3) in 60147 Millis, first at 12791, last at 5:929

Und hier die Werte ab 17:00 Uhr 2016-11-02_17:00:03 AC power6: 0.914
2016-11-02_17:00:56 AC pin6: 318
2016-11-02_17:00:55 AC power6: 0.791
2016-11-02_17:01:55 AC pin6: 319
2016-11-02_16:58:58 AC power4: 0.030
2016-11-02_17:03:55 AC pin4: 1219
2016-11-02_16:59:55 AC power5: 0.000
2016-11-02_17:04:55 AC pin5: 13
2016-11-02_17:01:40 AC power6: 0.245
2016-11-02_17:04:55 AC pin6: 320
2016-11-02_17:04:39 AC power6: 0.245
2016-11-02_17:07:55 AC pin6: 321
2016-11-02_17:03:53 AC power4: 0.000
2016-11-02_17:08:55 AC pin4: 1219
2016-11-02_17:04:55 AC power5: 0.000
2016-11-02_17:09:55 AC pin5: 13
2016-11-02_17:07:39 AC power6: 0.244
2016-11-02_17:10:55 AC pin6: 322
2016-11-02_17:08:55 AC power4: 0.000
2016-11-02_17:13:55 AC pin4: 1219
2016-11-02_17:09:55 AC power5: 0.000
2016-11-02_17:14:55 AC pin5: 13
2016-11-02_17:11:37 AC power6: 0.242
2016-11-02_17:14:55 AC pin6: 323
2016-11-02_17:14:37 AC power6: 0.243
2016-11-02_17:17:55 AC pin6: 324
2016-11-02_17:13:55 AC power4: 0.000
2016-11-02_17:18:55 AC pin4: 1219
2016-11-02_17:14:55 AC power5: 0.000
2016-11-02_17:19:55 AC pin5: 13
2016-11-02_17:17:36 AC power6: 0.242
2016-11-02_17:20:55 AC pin6: 325
2016-11-02_17:19:30 AC power4: 0.062
2016-11-02_17:21:55 AC pin4: 1220
2016-11-02_17:19:54 AC power5: 0.000
2016-11-02_17:24:54 AC pin5: 13
2016-11-02_17:08:16 AC power6: 0.048
2016-11-02_17:24:55 AC pin6: 326
2016-11-02_17:21:19 AC power4: 0.000
2016-11-02_17:26:54 AC pin4: 1220
2016-11-02_17:24:35 AC power6: 0.241
2016-11-02_17:27:54 AC pin6: 327
2016-11-02_17:24:54 AC power5: 0.000
2016-11-02_17:29:54 AC pin5: 13
2016-11-02_17:27:35 AC power6: 0.241
2016-11-02_17:30:54 AC pin6: 328
2016-11-02_17:26:54 AC power4: 0.000
2016-11-02_17:31:54 AC pin4: 1220
2016-11-02_17:29:54 AC power5: 0.000
2016-11-02_17:34:54 AC pin5: 13
2016-11-02_17:18:15 AC power6: 0.048
2016-11-02_17:34:54 AC pin6: 329
2016-11-02_17:31:54 AC power4: 0.000
2016-11-02_17:36:54 AC pin4: 1220
2016-11-02_17:34:35 AC power6: 0.241
2016-11-02_17:37:54 AC pin6: 330
2016-11-02_17:37:04 AC power4: 0.082
2016-11-02_17:38:54 AC pin4: 1221
2016-11-02_17:34:54 AC power5: 0.000
2016-11-02_17:39:54 AC pin5: 13
2016-11-02_17:40:01 AC power5: 0.068
2016-11-02_17:40:54 AC pin5: 14
2016-11-02_17:40:54 AC power6: 2823.459
2016-11-02_17:40:54 AC pin6: 331
2016-11-02_17:38:44 AC power4: 0.000
2016-11-02_17:43:54 AC pin4: 1221
2016-11-02_17:40:51 AC power6: 0.262
2016-11-02_17:43:54 AC pin6: 332
2016-11-02_17:40:47 AC power5: 0.000
2016-11-02_17:45:53 AC pin5: 14
2016-11-02_17:43:52 AC power6: 0.264
2016-11-02_17:46:53 AC pin6: 333
2016-11-02_17:43:53 AC power4: 0.000
2016-11-02_17:48:53 AC pin4: 1221
2016-11-02_17:46:50 AC power6: 0.262
2016-11-02_17:49:53 AC pin6: 334
2016-11-02_17:45:53 AC power5: 0.000
2016-11-02_17:50:53 AC pin5: 14
2016-11-02_17:49:51 AC power6: 0.264
2016-11-02_17:52:53 AC pin6: 335
2016-11-02_17:48:53 AC power4: 0.000
2016-11-02_17:53:53 AC pin4: 1221
2016-11-02_17:50:53 AC power5: 0.000
2016-11-02_17:55:53 AC pin5: 14
2016-11-02_17:39:30 AC power6: 0.049
2016-11-02_17:55:53 AC pin6: 336
2016-11-02_17:54:43 AC power4: 0.069
2016-11-02_17:56:53 AC pin4: 1222
2016-11-02_17:56:02 AC power6: 0.281
2016-11-02_17:58:53 AC pin6: 337
2016-11-02_17:56:11 AC power4: 0.160
2016-11-02_18:00:53 AC pin4: 1227
2016-11-02_17:58:17 AC power6: 0.614
2016-11-02_18:00:53 AC pin6: 339
2016-11-02_18:00:51 AC power4: 1.019
2016-11-02_18:01:53 AC pin4: 1234
2016-11-02_18:01:53 AC power6: 1297.265
2016-11-02_18:01:53 AC pin6: 340
2016-11-02_18:01:51 AC power4: 1.018
2016-11-02_18:02:53 AC pin4: 1241
2016-11-02_18:02:53 AC power6: 13713.943
2016-11-02_18:02:53 AC pin6: 342
2016-11-02_18:02:51 AC power4: 1.016
2016-11-02_18:03:53 AC pin4: 1248
2016-11-02_18:03:53 AC power6: 15999.600
2016-11-02_18:03:53 AC pin6: 343
2016-11-02_18:03:51 AC power4: 1.017
2016-11-02_18:04:53 AC pin4: 1255
2016-11-02_18:04:53 AC power6: 13713.943
2016-11-02_18:04:53 AC pin6: 345
2016-11-02_18:05:00 AC power4: 1.026
2016-11-02_18:05:53 AC pin4: 1261
2016-11-02_18:00:45 AC power5: 0.000
2016-11-02_18:05:53 AC pin5: 14
2016-11-02_18:05:14 AC power6: 1.232
2016-11-02_18:05:53 AC pin6: 346
2016-11-02_18:05:51 AC power4: 1.022
2016-11-02_18:06:53 AC pin4: 1268
2016-11-02_18:05:34 AC power6: 1.217
2016-11-02_18:06:53 AC pin6: 348
2016-11-02_18:06:51 AC power4: 1.022
2016-11-02_18:07:53 AC pin4: 1275
2016-11-02_18:06:34 AC power6: 1.228
2016-11-02_18:07:53 AC pin6: 350
2016-11-02_18:07:51 AC power4: 1.016
2016-11-02_18:08:53 AC pin4: 1282
2016-11-02_18:08:13 AC power6: 1.224
2016-11-02_18:08:53 AC pin6: 351
2016-11-02_18:08:50 AC power4: 1.013
2016-11-02_18:09:52 AC pin4: 1289
2016-11-02_18:08:34 AC power6: 1.219
2016-11-02_18:09:53 AC pin6: 353
2016-11-02_18:09:59 AC power4: 1.013
2016-11-02_18:10:52 AC pin4: 1295
2016-11-02_18:05:44 AC power5: 0.000
2016-11-02_18:10:52 AC pin5: 14
2016-11-02_18:10:13 AC power6: 1.227
2016-11-02_18:10:53 AC pin6: 354
2016-11-02_18:10:50 AC power4: 1.016
2016-11-02_18:11:52 AC pin4: 1302
2016-11-02_18:10:34 AC power6: 1.229
2016-11-02_18:11:52 AC pin6: 356
2016-11-02_18:11:51 AC power4: 1.025
2016-11-02_18:12:52 AC pin4: 1309
2016-11-02_18:11:27 AC power5: 0.042
2016-11-02_18:12:52 AC pin5: 15
2016-11-02_18:12:14 AC power6: 1.237
2016-11-02_18:12:53 AC pin6: 357
2016-11-02_18:12:50 AC power4: 1.016
2016-11-02_18:13:52 AC pin4: 1316
2016-11-02_18:12:35 AC power6: 1.233
2016-11-02_18:13:52 AC pin6: 359
2016-11-02_18:13:50 AC power4: 1.014
2016-11-02_18:14:52 AC pin4: 1323
2016-11-02_18:14:13 AC power6: 1.230
2016-11-02_18:14:52 AC pin6: 360
2016-11-02_18:14:59 AC power4: 1.015
2016-11-02_18:15:52 AC pin4: 1329
2016-11-02_18:14:34 AC power6: 1.228
2016-11-02_18:15:52 AC pin6: 362
2016-11-02_18:15:50 AC power4: 1.009
2016-11-02_18:16:52 AC pin4: 1336
2016-11-02_18:16:13 AC power6: 1.227
2016-11-02_18:16:52 AC pin6: 363
2016-11-02_18:17:43 AC power4: 1.002
2016-11-02_18:17:52 AC pin4: 1337
2016-11-02_18:12:17 AC power5: 0.000
2016-11-02_18:17:52 AC pin5: 15
2016-11-02_18:17:13 AC power6: 1.217
2016-11-02_18:17:52 AC pin6: 364
2016-11-02_18:17:23 AC power6: 0.230
2016-11-02_18:20:52 AC pin6: 365
2016-11-02_18:16:56 AC power4: 0.000
2016-11-02_18:22:52 AC pin4: 1337
2016-11-02_18:21:17 AC power6: 0.223
2016-11-02_18:24:52 AC pin6: 366
2016-11-02_18:23:45 AC power4: 0.071
2016-11-02_18:25:52 AC pin4: 1338
2016-11-02_18:22:52 AC power5: 0.000
2016-11-02_18:27:52 AC pin5: 15
2016-11-02_18:24:58 AC power4: 0.000
2016-11-02_18:30:51 AC pin4: 1338
2016-11-02_18:27:38 AC power6: 0.249
2016-11-02_18:30:52 AC pin6: 368
2016-11-02_18:27:51 AC power5: 0.000
2016-11-02_18:32:51 AC pin5: 15
2016-11-02_18:30:54 AC power6: 0.271
2016-11-02_18:33:51 AC pin6: 369
2016-11-02_18:30:51 AC power4: 0.000
2016-11-02_18:35:51 AC pin4: 1338
2016-11-02_18:33:54 AC power6: 0.271
2016-11-02_18:36:51 AC pin6: 370
2016-11-02_18:32:51 AC power5: 0.000
2016-11-02_18:37:51 AC pin5: 15
2016-11-02_18:36:54 AC power6: 0.270
2016-11-02_18:39:51 AC pin6: 371
2016-11-02_18:35:51 AC power4: 0.000
2016-11-02_18:40:51 AC pin4: 1338
2016-11-02_18:41:25 AC power4: 0.105
2016-11-02_18:42:51 AC pin4: 1339
2016-11-02_18:37:51 AC power5: 0.000
2016-11-02_18:42:51 AC pin5: 15
2016-11-02_18:39:58 AC power6: 0.277
2016-11-02_18:42:51 AC pin6: 372
2016-11-02_18:42:58 AC power6: 0.277
2016-11-02_18:45:51 AC pin6: 373
2016-11-02_18:42:17 AC power4: 0.000
2016-11-02_18:47:51 AC pin4: 1339
2016-11-02_18:45:57 AC power6: 0.277
2016-11-02_18:48:51 AC pin6: 374
2016-11-02_18:47:52 AC power4: 0.679
2016-11-02_18:51:51 AC pin4: 1357
2016-11-02_18:48:35 AC power6: 0.980
2016-11-02_18:51:51 AC pin6: 378
2016-11-02_18:51:52 AC power4: 2.786
2016-11-02_18:52:51 AC pin4: 1375
2016-11-02_18:47:51 AC power5: 0.000
2016-11-02_18:52:51 AC pin5: 15
2016-11-02_18:51:49 AC power6: 3.091
2016-11-02_18:52:51 AC pin6: 382
2016-11-02_18:52:49 AC power4: 2.794
2016-11-02_18:53:50 AC pin4: 1394
2016-11-02_18:52:48 AC power6: 3.058
2016-11-02_18:53:51 AC pin6: 386
2016-11-02_18:53:49 AC power4: 2.784
2016-11-02_18:54:50 AC pin4: 1413
2016-11-02_18:53:47 AC power6: 3.037
2016-11-02_18:54:50 AC pin6: 390
2016-11-02_18:54:52 AC power4: 2.773
2016-11-02_18:55:50 AC pin4: 1431
2016-11-02_18:54:47 AC power6: 3.023
2016-11-02_18:55:50 AC pin6: 394
2016-11-02_18:55:49 AC power4: 2.768
2016-11-02_18:56:50 AC pin4: 1450
2016-11-02_18:56:03 AC power6: 3.021
2016-11-02_18:56:50 AC pin6: 397
2016-11-02_18:57:24 AC power4: 2.753
2016-11-02_18:57:50 AC pin4: 1458
2016-11-02_18:52:50 AC power5: 0.000
2016-11-02_18:57:50 AC pin5: 15
2016-11-02_18:57:19 AC power6: 3.013
2016-11-02_18:57:50 AC pin6: 399
2016-11-02_18:57:47 AC power6: 0.388
2016-11-02_18:59:50 AC pin6: 400
2016-11-02_18:57:16 AC power4: 0.000
2016-11-02_19:02:50 AC pin4: 1458
2016-11-02_18:59:47 AC power6: 0.262
2016-11-02_19:02:50 AC pin6: 401
2016-11-02_19:02:40 AC power6: 0.253
2016-11-02_19:05:50 AC pin6: 402
2016-11-02_19:02:50 AC power4: 0.000
2016-11-02_19:07:50 AC pin4: 1458
2016-11-02_19:02:50 AC power5: 0.000
2016-11-02_19:07:50 AC pin5: 15
2016-11-02_19:05:29 AC power6: 0.239
2016-11-02_19:08:50 AC pin6: 403
2016-11-02_19:07:50 AC power4: 0.000
2016-11-02_19:12:50 AC pin4: 1458
2016-11-02_19:08:35 AC power5: 0.014
2016-11-02_19:12:50 AC pin5: 16
2016-11-02_19:09:34 AC power6: 0.245
2016-11-02_19:12:50 AC pin6: 404
2016-11-02_19:12:43 AC power6: 0.257
2016-11-02_19:15:49 AC pin6: 405
2016-11-02_19:12:49 AC power4: 0.000
2016-11-02_19:17:49 AC pin4: 1458
2016-11-02_19:12:04 AC power5: 0.000
2016-11-02_19:17:50 AC pin5: 16
2016-11-02_19:15:13 AC power6: 0.306
2016-11-02_19:17:50 AC pin6: 406
2016-11-02_19:18:14 AC power4: 0.058
2016-11-02_19:20:49 AC pin4: 1459
2016-11-02_19:17:51 AC power6: 0.269
2016-11-02_19:20:49 AC pin6: 407
2016-11-02_19:17:49 AC power5: 0.000
2016-11-02_19:22:49 AC pin5: 16
2016-11-02_19:20:45 AC power6: 0.261
2016-11-02_19:23:49 AC pin6: 408
2016-11-02_19:20:24 AC power4: 0.000
2016-11-02_19:25:49 AC pin4: 1459
2016-11-02_19:22:49 AC power5: 0.000
2016-11-02_19:27:49 AC pin5: 16
2016-11-02_19:11:24 AC power6: 0.049
2016-11-02_19:27:49 AC pin6: 409
2016-11-02_19:25:49 AC power4: 0.000
2016-11-02_19:30:49 AC pin4: 1459
2016-11-02_19:27:43 AC power6: 0.259
2016-11-02_19:30:49 AC pin6: 410
2016-11-02_19:27:49 AC power5: 0.000
2016-11-02_19:32:49 AC pin5: 16
2016-11-02_19:30:43 AC power6: 0.258
2016-11-02_19:33:49 AC pin6: 411
2016-11-02_19:30:48 AC power4: 0.000
2016-11-02_19:35:48 AC pin4: 1459
2016-11-02_19:33:42 AC power6: 0.257
2016-11-02_19:36:48 AC pin6: 412
2016-11-02_19:32:48 AC power5: 0.000
2016-11-02_19:37:48 AC pin5: 16
2016-11-02_19:36:41 AC power6: 0.257
2016-11-02_19:39:48 AC pin6: 413
2016-11-02_19:35:48 AC power4: 0.000
2016-11-02_19:40:48 AC pin4: 1459
2016-11-02_19:37:48 AC power5: 0.000
2016-11-02_19:42:48 AC pin5: 16
2016-11-02_19:26:27 AC power6: 0.049
2016-11-02_19:42:48 AC pin6: 414
2016-11-02_19:41:20 AC power4: 0.034
2016-11-02_19:45:48 AC pin4: 1460
2016-11-02_19:43:02 AC power6: 0.212
2016-11-02_19:46:48 AC pin6: 415
2016-11-02_19:42:48 AC power5: 0.000
2016-11-02_19:47:48 AC pin5: 16
2016-11-02_19:47:54 AC power5: 0.032
2016-11-02_19:49:48 AC pin5: 17
2016-11-02_19:45:16 AC power4: 0.000
2016-11-02_19:50:48 AC pin4: 1460
2016-11-02_19:49:41 AC power5: 0.000
2016-11-02_19:54:48 AC pin5: 17
2016-11-02_19:50:50 AC power6: 0.202
2016-11-02_19:54:48 AC pin6: 417
2016-11-02_19:50:48 AC power4: 0.000
2016-11-02_19:55:48 AC pin4: 1460
2016-11-02_19:54:47 AC power6: 0.199
2016-11-02_19:58:47 AC pin6: 418
2016-11-02_19:54:47 AC power5: 0.000
2016-11-02_19:59:47 AC pin5: 17
2016-11-02_19:55:47 AC power4: 0.000
2016-11-02_20:00:47 AC pin4: 1460
2016-11-02_19:58:47 AC power6: 0.200
2016-11-02_20:02:47 AC pin6: 419
2016-11-02_19:59:47 AC power5: 0.000
2016-11-02_20:04:47 AC pin5: 17
2016-11-02_20:00:47 AC power4: 0.000
2016-11-02_20:05:47 AC pin4: 1460
2016-11-02_20:02:47 AC power6: 0.200
2016-11-02_20:06:47 AC pin6: 420
2016-11-02_20:04:47 AC power5: 0.000
2016-11-02_20:09:47 AC pin5: 17
2016-11-02_20:06:02 AC power6: 0.213
2016-11-02_20:09:47 AC pin6: 421
2016-11-02_20:06:21 AC power4: 0.034
2016-11-02_20:10:47 AC pin4: 1461
2016-11-02_20:10:34 AC power6: 0.249
2016-11-02_20:13:47 AC pin6: 422
2016-11-02_20:09:47 AC power5: 0.000
2016-11-02_20:14:47 AC pin5: 17
2016-11-02_20:10:13 AC power4: 0.000
2016-11-02_20:15:47 AC pin4: 1461
2016-11-02_20:13:35 AC power6: 0.251
2016-11-02_20:16:47 AC pin6: 423
2016-11-02_20:15:48 AC power4: 0.554
2016-11-02_20:18:47 AC pin4: 1472
2016-11-02_20:16:06 AC power6: 0.894
2016-11-02_20:18:47 AC pin6: 426
2016-11-02_20:18:47 AC power4: 3.799
2016-11-02_20:19:47 AC pin4: 1497
2016-11-02_20:14:47 AC power5: 0.000
2016-11-02_20:19:47 AC pin5: 17
2016-11-02_20:18:48 AC power6: 4.116
2016-11-02_20:19:47 AC pin6: 431
2016-11-02_20:19:45 AC power4: 3.803
2016-11-02_20:20:47 AC pin4: 1523
2016-11-02_20:20:42 AC power5: 0.822
2016-11-02_20:20:47 AC pin5: 18
2016-11-02_20:19:48 AC power6: 4.114
2016-11-02_20:20:47 AC pin6: 436
2016-11-02_20:20:47 AC power4: 3.761
2016-11-02_20:21:46 AC pin4: 1548
2016-11-02_20:21:48 AC power4: 3.708
2016-11-02_20:22:46 AC pin4: 1572
2016-11-02_20:22:46 AC power4: 3.705
2016-11-02_20:23:46 AC pin4: 1597
2016-11-02_20:23:46 AC power6: 4067.695
2016-11-02_20:23:46 AC pin6: 451
2016-11-02_20:23:46 AC power4: 3.700
2016-11-02_20:24:46 AC pin4: 1622
2016-11-02_20:23:47 AC power6: 4.018
2016-11-02_20:24:46 AC pin6: 456
2016-11-02_20:24:46 AC power4: 3.707
2016-11-02_20:25:46 AC pin4: 1647
2016-11-02_20:25:46 AC power5: 0.000
2016-11-02_20:25:46 AC pin5: 18
2016-11-02_20:24:47 AC power6: 4.027
2016-11-02_20:25:46 AC pin6: 461
2016-11-02_20:25:48 AC power4: 3.707
2016-11-02_20:26:46 AC pin4: 1671
2016-11-02_20:26:46 AC power4: 3.710
2016-11-02_20:27:46 AC pin4: 1696
2016-11-02_20:26:47 AC power6: 4.029
2016-11-02_20:27:46 AC pin6: 471
2016-11-02_20:27:45 AC power4: 3.709
2016-11-02_20:28:46 AC pin4: 1721
2016-11-02_20:28:48 AC power4: 3.712
2016-11-02_20:29:46 AC pin4: 1745
2016-11-02_20:29:45 AC power4: 3.712
2016-11-02_20:30:46 AC pin4: 1770
2016-11-02_20:25:45 AC power5: 0.000
2016-11-02_20:30:46 AC pin5: 18
2016-11-02_20:29:43 AC power6: 6.038
2016-11-02_20:30:46 AC pin6: 493
2016-11-02_20:30:45 AC power4: 3.708
2016-11-02_20:31:46 AC pin4: 1795
2016-11-02_20:31:46 AC power6: 67198.320
2016-11-02_20:31:46 AC pin6: 500
2016-11-02_20:31:45 AC power4: 3.704
2016-11-02_20:32:46 AC pin4: 1820
2016-11-02_20:32:48 AC power4: 3.705
2016-11-02_20:33:46 AC pin4: 1844
2016-11-02_20:33:46 AC power4: 3.729
2016-11-02_20:34:46 AC pin4: 1869
2016-11-02_20:34:46 AC power6: 47998.800
2016-11-02_20:34:46 AC pin6: 517
2016-11-02_20:34:44 AC power4: 5.396
2016-11-02_20:35:46 AC pin4: 1906
2016-11-02_20:30:38 AC power5: 0.000
2016-11-02_20:35:46 AC pin5: 18
2016-11-02_20:34:38 AC power6: 5.684
2016-11-02_20:35:46 AC pin6: 525
2016-11-02_20:35:47 AC power4: 5.515
2016-11-02_20:36:46 AC pin4: 1942
2016-11-02_20:36:45 AC power4: 5.509
2016-11-02_20:37:46 AC pin4: 1979
2016-11-02_20:37:46 AC power6: 63998.400
2016-11-02_20:37:46 AC pin6: 540
2016-11-02_20:37:45 AC power4: 5.500
2016-11-02_20:38:46 AC pin4: 2016
2016-11-02_20:38:46 AC power6: 67198.320
2016-11-02_20:38:46 AC pin6: 547
2016-11-02_20:38:47 AC power4: 5.493
2016-11-02_20:39:46 AC pin4: 2052
2016-11-02_20:39:46 AC power5: 1800.000
2016-11-02_20:39:46 AC pin5: 19
2016-11-02_20:38:49 AC power6: 5.945
2016-11-02_20:39:46 AC pin6: 554
2016-11-02_20:39:45 AC power4: 5.505
2016-11-02_20:40:46 AC pin4: 2089
2016-11-02_20:39:41 AC power6: 5.954
2016-11-02_20:40:46 AC pin6: 562
2016-11-02_20:40:45 AC power4: 5.498
2016-11-02_20:41:46 AC pin4: 2126
2016-11-02_20:40:49 AC power6: 5.954
2016-11-02_20:41:46 AC pin6: 569
2016-11-02_20:41:47 AC power4: 5.494
2016-11-02_20:42:46 AC pin4: 2162
2016-11-02_20:41:41 AC power6: 5.951
2016-11-02_20:42:46 AC pin6: 577
2016-11-02_20:42:45 AC power4: 5.487
2016-11-02_20:43:45 AC pin4: 2199
2016-11-02_20:42:49 AC power6: 5.935
2016-11-02_20:43:46 AC pin6: 584
2016-11-02_20:43:46 AC power4: 5.480
2016-11-02_20:44:45 AC pin4: 2235
2016-11-02_20:39:34 AC power5: 0.000
2016-11-02_20:44:46 AC pin5: 19
2016-11-02_20:43:41 AC power6: 5.920
2016-11-02_20:44:46 AC pin6: 592
2016-11-02_20:44:45 AC power4: 5.487
2016-11-02_20:45:45 AC pin4: 2272
2016-11-02_20:44:49 AC power6: 5.910
2016-11-02_20:45:45 AC pin6: 599
2016-11-02_20:45:45 AC power4: 5.498
2016-11-02_20:46:45 AC pin4: 2309
2016-11-02_20:45:42 AC power6: 6.056
2016-11-02_20:46:45 AC pin6: 607
2016-11-02_20:46:46 AC power4: 5.480
2016-11-02_20:47:45 AC pin4: 2345
2016-11-02_20:46:50 AC power6: 8.650
2016-11-02_20:47:45 AC pin6: 617
2016-11-02_20:47:45 AC power4: 5.505
2016-11-02_20:48:45 AC pin4: 2382
2016-11-02_20:47:43 AC power6: 7.676
2016-11-02_20:48:45 AC pin6: 627
2016-11-02_20:48:45 AC power4: 5.522
2016-11-02_20:49:45 AC pin4: 2419
2016-11-02_20:44:45 AC power5: 0.000
2016-11-02_20:49:45 AC pin5: 19
2016-11-02_20:48:49 AC power6: 5.938
2016-11-02_20:49:45 AC pin6: 634
2016-11-02_20:49:48 AC power4: 3.759
2016-11-02_20:50:45 AC pin4: 2443
2016-11-02_20:49:51 AC power6: 4.389
2016-11-02_20:50:45 AC pin6: 639
2016-11-02_20:50:43 AC power4: 3.035
2016-11-02_20:51:45 AC pin4: 2464
2016-11-02_20:50:35 AC power6: 3.443
2016-11-02_20:51:45 AC pin6: 644
2016-11-02_20:51:46 AC power4: 3.032
2016-11-02_20:52:45 AC pin4: 2484
2016-11-02_20:51:49 AC power6: 3.439
2016-11-02_20:52:45 AC pin6: 648
2016-11-02_20:52:46 AC power4: 3.038
2016-11-02_20:53:45 AC pin4: 2504
2016-11-02_20:52:50 AC power6: 3.469
2016-11-02_20:53:45 AC pin6: 652
2016-11-02_20:53:46 AC power4: 3.035
2016-11-02_20:54:45 AC pin4: 2524
2016-11-02_20:49:45 AC power5: 0.000
2016-11-02_20:54:45 AC pin5: 19
2016-11-02_20:53:37 AC power6: 3.510
2016-11-02_20:54:45 AC pin6: 657
2016-11-02_20:54:43 AC power4: 3.036
2016-11-02_20:55:45 AC pin4: 2545
2016-11-02_20:54:50 AC power6: 3.498
2016-11-02_20:55:45 AC pin6: 661
2016-11-02_20:55:46 AC power4: 3.035
2016-11-02_20:56:45 AC pin4: 2565
2016-11-02_20:55:50 AC power6: 3.500
2016-11-02_20:56:45 AC pin6: 665
2016-11-02_20:56:45 AC power4: 3.031
2016-11-02_20:57:45 AC pin4: 2585
2016-11-02_20:56:36 AC power6: 3.496
2016-11-02_20:57:45 AC pin6: 670
2016-11-02_20:57:45 AC power4: 3.023
2016-11-02_20:58:45 AC pin4: 2605
2016-11-02_20:57:50 AC power6: 3.521
2016-11-02_20:58:45 AC pin6: 674
2016-11-02_20:58:46 AC power4: 2.733
2016-11-02_20:59:45 AC pin4: 2623
2016-11-02_20:54:45 AC power5: 0.000
2016-11-02_20:59:45 AC pin5: 19
2016-11-02_20:58:51 AC power6: 3.535
2016-11-02_20:59:45 AC pin6: 678
2016-11-02_20:59:43 AC power4: 1.887
2016-11-02_21:00:45 AC pin4: 2636
2016-11-02_20:59:44 AC power6: 2.362
2016-11-02_21:00:45 AC pin6: 681
2016-11-02_21:00:48 AC power4: 1.893
2016-11-02_21:01:45 AC pin4: 2648
2016-11-02_21:00:44 AC power6: 2.364
2016-11-02_21:01:45 AC pin6: 684
2016-11-02_21:01:43 AC power4: 1.892
2016-11-02_21:02:45 AC pin4: 2661
2016-11-02_21:01:44 AC power6: 2.355
2016-11-02_21:02:45 AC pin6: 687
2016-11-02_21:02:43 AC power4: 1.891
2016-11-02_21:03:45 AC pin4: 2674
2016-11-02_21:02:44 AC power6: 2.366
2016-11-02_21:03:45 AC pin6: 690
2016-11-02_21:03:47 AC power4: 1.890
2016-11-02_21:04:45 AC pin4: 2686
2016-11-02_20:59:45 AC power5: 0.000
2016-11-02_21:04:45 AC pin5: 19
2016-11-02_21:03:44 AC power6: 2.364
2016-11-02_21:04:45 AC pin6: 693
2016-11-02_21:04:43 AC power4: 1.891
2016-11-02_21:05:44 AC pin4: 2699
2016-11-02_21:04:44 AC power6: 2.362
2016-11-02_21:05:45 AC pin6: 696
2016-11-02_21:05:47 AC power4: 1.887
2016-11-02_21:06:44 AC pin4: 2711
2016-11-02_21:05:43 AC power6: 2.357
2016-11-02_21:06:45 AC pin6: 699
2016-11-02_21:06:43 AC power4: 1.893
2016-11-02_21:07:44 AC pin4: 2724
2016-11-02_21:06:44 AC power6: 2.362
2016-11-02_21:07:44 AC pin6: 702
2016-11-02_21:07:42 AC power4: 1.891
2016-11-02_21:08:44 AC pin4: 2737
2016-11-02_21:07:44 AC power6: 2.394
2016-11-02_21:08:44 AC pin6: 705
2016-11-02_21:08:47 AC power4: 1.893
2016-11-02_21:09:44 AC pin4: 2749
2016-11-02_21:04:44 AC power5: 0.000
2016-11-02_21:09:44 AC pin5: 19
2016-11-02_21:08:44 AC power6: 2.400
2016-11-02_21:09:44 AC pin6: 708
2016-11-02_21:09:42 AC power4: 1.892
2016-11-02_21:10:44 AC pin4: 2762
2016-11-02_21:09:44 AC power6: 2.389
2016-11-02_21:10:44 AC pin6: 711

Der Zählerstand (Pin6) wurde 15:05 manuell abgeglichen und stimmt jetzt 21:12 Uhr exakt! Also zusätzliche Impulse sehe ich da nicht.

Siehe Kurve im Bild. Mein WW Durchlauferhitzer hat 27 kW meine Gesamtleistung könnte theoretisch  45 kW erreichen. Es gibt auch bei der blauen Linie (Warmwasser) Spitzen, dahinter steckt ein S0 Zähler.

Soll ich noch irgendetwas anderes liefern?
Vielleicht hat der Arduino einen Schuss? Ich werde morgen mal einen anderen einbauen.

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 02 November 2016, 22:21:42
Hallo Otto,

Ich habe bei mir jetzt nochmal die Logs angesehen, aber keine Sonderzeichen / Störungen gesehen.
Was für Kabel verwendest Du denn? Kann es sein, dass Du nicht nur Störimpulse auf der S0-Schnittstelle hast, sondern auch auf dem Kabel zwischen Arduino und Fhem?
Was für Hardware verwendest Du denn?

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 02 November 2016, 22:54:01
Hallo Stefan,

vor Ort läuft ein PI Plus, Kabel im Umfeld ca 0,5 meter.
Arduino nano über kurzes USB Kabel am aktive Hub und dann am Pi.
Ein zusätzlicher Arduino nano macht die Abtastung des Ferraris Zählers. Der hängt aber gar nicht an FHEM sondern nur am "Strom".
Siehe letzten Beitrag in meinem Blog  ;)
Bis jetzt sind aus meiner Sicht die Impulse sauber, weil die Zählerstände an den Zählern und in FHEM stimmen exakt.

Aber solche Werte 2016-11-02_20:39:46 AC power5: 1800.000 die sind Außerirdisch   ;)

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 02 November 2016, 23:00:00
Hallo,

Deinen letzen Post hatte ich noch gar nicht bemerkt.
In Deinem neuen Log sieht man gut, dass die vermeintlichen Spitzen daher kommen, dass die seriell übertragenen Werte kaputt sind. Der Wert für die Zeitdiffernz enthält immer wieder Sonderzeichen und wird deshalb auf Fhem-Seite nicht richtig geparsed bzw. abgeschnitten.
17:40:54 ist ein erstes Beispiel.
Es hängt also primär an der Verbindung zwischen Fhem und Arduino...

Gruß
    Stefan


Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 02 November 2016, 23:11:19
Ich tausche morgen den Arduino und schau mir die Kommunikation an.

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 03 November 2016, 17:54:57
Hallo Stefan,

wie sagt das Sprichwort? Kaum stottert der Arduino nano nicht mehr, funktioniert alles! - Oder so ähnlich.

Der hat tatsächlich einen Schuss, ich habe einen neuen genommen ansonsten nichts geändert, die Sonderzeichen sind weg und die Werte sehen gut aus. Keine unerklärlichen Spitzen mehr!

Der kann offenbar über die serielle Schnittstelle nicht richtig lesen - CH340G defekt?

Jetzt hätte ich noch folgende Idee.
Du kannst doch die komplette Config aus dem Arduino auslesen. Wenn Du die mit der Config in FHEM vergleichst und alles stimmt, gibt es doch keinen Grund die Config im Arduino neu zu setzen.
Dann könnte man FHEM neu starten und der Arduino würde während FHEm down ist weiterzählen und man kann die gezählten Impulse später auslesen.

Oder habe ich da einen Denkfehler?

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 03 November 2016, 23:14:06
Hallo Otto,

Es freut mich dass das Problem gelöst ist.
In der nächsten Version kommt dann ein add pin ohne den counter zu nullen, eine verbesserte Fehlererkennung für die serielle Übertragung und die 30ms Filterung als Option.

In den nächsten Tagen werde ich aber nicht gleich dazu kommen.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 13 November 2016, 15:54:38
Hallo,

anbei eine nochmal deutlich überarbeitete Version.
man kann jetzt eine minimale Impulsdauer angeben. Beispiel:
attr AC interval 60 600 10
attr AC pinD4 falling pullup 30
attr AC pinD5 falling pullup 30
setzt das normale Reporting-Intervall im Arduino auf 60 Sekunden und das maximale Intervall auf 10 Minuten.
Wenn die Impulse nicht mindestens 10 Sekunden auseinander liegen wird nach dem normalen Intervall noch nicht reportet sondern witergezählt bis entweder genügend Impulse / Zeit vorhanden ist oder das maximale Intervall abgelaufen ist.

Es werden zwei zu zählende Pins definiert, bei beiden zieht der Impuls den Pin gegen GND und deshalb ist der Pullup aktiviert.
"falling" gibt an, dass der Impuls entsprechend mit der fallenden Flanke beginnt (sonst wird die Länge der Pause gemessen und nicht die Länge des Pulses) und das 30 steht für minimale Pulslänge von 30 ms.

Weitere neue Attribute:
attr AC verboseReadings4 1
attr AC verboseReadings5 1

erzeugt einige Zusatzreadings, zum Beispiel:
lastMsg4 R4 C142 D9 T59230 X0 M first at 2782, last at 54211, average length 89
countDiff4 9
timeDiff4 59230
reject4 0
Damit sollte man besser nachvollziehen können, was genau passiert.
lastMsg zeigt dabei die interne Nachricht vom Arduino an Fhem.

Die Readings bzw. die erste lastMsg4 bedeuten:
Report für Pin4, interner Zählerstand: 142, Differenz zum letzten Report:9, Zeit zwischen dem ersten und letzten Impuls in diesem Analyseintervall: 59,2 Sekunden, keine Impulse waren zu kurz und wurden ignoriert, der erste Impuls kam nach 2,78 Sekunden und der letzte nach 54,2 Sekunden. Die durchschnittliche Länge der Impuls in diesem Zeitraum war 89 ms.

Der alte Sketch ist mit dem neuen Modul nicht mehr kompatibel. Der Arduino muss daher neu geflasht werden. Dafür habe ich auch einen set flash Befehl eingebaut (der Code ist weitgehend vom Jeenode-Modul übernommen).
Die Firmware muss dafür unter ./Fhem/firmware liegen. Da liegen auch die anderen Firmware-Files für Jeenode etc.

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 19 November 2016, 13:18:23
Hi Stefan,

bin jetzt dazu gekommen mal alles auszuprobieren. Danke für Deine Arbeit.
Wann genau wolltest Du mir davon erzählen? 9600 -> 38400  ;D

Braucht man zum flashen aus FHEM heraus noch irgendwelche anderen Vorbereitungen? Bei mir ensteht nicht mal ein Logfile wie in der Ausschrift auf dem Schirm. Also ich drücke flash, es kommen drei Zeilen auf dem Schirm und weiter passiert nichts.
Ich habe dann das ino mit der IDE geflasht.

Edit: habe es gefunden: flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
Das man avrdude braucht gehört in die Doku vom Modul -> commandref  ;)

Weitere Infos folgen, habe es erstmal zum laufen bekommen.

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 22 November 2016, 17:39:12
Hallo Otto,

sorry, das mit der Änderung der Default-Baudrate hätte ich erwähnen sollen.
Die Doku ist nun aktualisiert. Wenn sonst alles klappt, checke ich die neue Version ein.
Das Wiki muss dann leider auch noch aktualisiert werden.

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 22 November 2016, 20:08:38
Hallo Stefan,

ich könnte mich ums Wiki kümmern, ich schau mir das mal an. Vielleicht nicht heute

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: BillyPbg am 23 November 2016, 10:23:06
Hallo Stefan,
hallo Otto,

ein verständlicher Install - Passus für AVRDUDE im Wiki-Beitrag wäre für die breite Anwenderscharr (z. B. für die Raspi-Betreiber) wohl auch ratsam...

Gruß BillyPbg
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: BillyPbg am 02 Dezember 2016, 14:53:21
Hallo Stefan.

brauche mal ein wenig Hilfe...

Bin gerade beim Installieren/ Austesten Deiner aktuellsten Version.

Kannst Du Dirdarauf einen Reim machen ?
Wollte gerade erstmals (auf meinem NANO 3.0) die Flash-Funktion testen und bekam folgendes zurück:

"flashing Arduino as ArduCounter for ArduCOUNTER
hex file: ./FHEM/firmware/ArduCounter.hex
port: /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2.2:1.0-port0
log file: ./log/ArduCounterFlash.log
ArduCOUNTER closed
command: avrdude -p atmega328P -c arduino -P /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2.2:1.0-port0 -D -U flash:w:./FHEM/firmware/ArduCounter.hex 2>./log/ArduCounterFlash.log

--- AVRDUDE ---------------------------------------------------------------------------------
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x1c

avrdude done.  Thank you.

--- AVRDUDE ---------------------------------------------------------------------------------

ArduCOUNTER opened "

Ergänzend dazu als Anlage die AVRDUDE-Datei: "/usr/local/etc/avrdude.conf".

Der Betrieb bzw. die Info-Abfrage läuft hingegen schmerzfrei.
Offensichtliuch ein AVRDUDE Installationsproblem - aber welches, wie beheben?

VG. BillyPbg
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 03 Dezember 2016, 09:57:54
Hallo,

Ich glaube ich hatte das Problem auch schon einmal.
Scheint typischerweise daran zu liegen, das der falsche Port ausgewählt wurde.
Es gibt aber scheinbar auch andere Erklärungen.
Wenn Du die Fehlermeldung in Google eintippst, kommen viele Treffer ...

Wenn Du auf einem Raspi das vorbelegte Attribut nicht änderst
flashCommand avrdude -p atmega328P -c arduino -b 57600 -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]dann ersetzt das Modul selbst die Werte in [] und der Port wird so gewählt, wie auch Fhem mit dem Arduino spricht.
Mit set flash in Fhem klappt dann normalerweise alles.
Alternativ kannst Du natürlich auch alles mit der Arduino IDE machen.

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: hermann258 am 04 Dezember 2016, 13:30:43
Hallo
Ich habe das Hex File mit dem XLoader hochgeladen.
Gruß Hermann
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 12 Dezember 2016, 10:30:52
Hallo Stefan,

nachdem jetzt alles ne Weile gut lief, habe ich folgendes Phänomen:
Ich habe drei Pins definiert, die werden beim reset vom Arduino auch gemeldet:
2016.12.12 10:11:46 3: AC: Arduino reported setup done, Firmware 1.5 - sending config cmds
2016.12.12 10:11:46 3: AC: InitDev calls Attr with pinD4 rising pullup
2016.12.12 10:11:46 3: AC: InitDev calls Attr with pinD5 rising pullup
2016.12.12 10:11:46 3: AC: InitDev calls Attr with interval 60 300
2016.12.12 10:11:46 3: AC: InitDev calls Attr with pinD6 rising pullup
2016.12.12 10:11:46 3: AC: defined pin 4 PCInt pin 20, iMode rising, no min len, count 0 (+0) in 0 ms
2016.12.12 10:11:46 3: AC: defined pin 5 PCInt pin 21, iMode rising, no min len, count 0 (+0) in 0 ms
2016.12.12 10:11:46 3: AC: defined pin 6 PCInt pin 22, iMode rising, no min len, count 0 (+0) in 1 ms
Starte ich jetzt FHEM neu, fehlt pin 6:
2016.12.12 10:15:58 3: AC: Arduino reported setup done, Firmware 1.5 - sending config cmds
2016.12.12 10:15:58 3: AC: InitDev calls Attr with pinD4 rising pullup
2016.12.12 10:15:58 3: AC: InitDev calls Attr with pinD5 rising pullup
2016.12.12 10:15:58 3: AC: InitDev calls Attr with interval 60 300
2016.12.12 10:15:58 3: AC: InitDev calls Attr with pinD6 rising pullup
2016.12.12 10:16:00 3: AC: defined pin 4 PCInt pin 20, iMode rising, no min len, count 0 (+0) in 1 ms
2016.12.12 10:16:00 3: AC: defined pin 5 PCInt pin 21, iMode rising, no min len, count 0 (+0) in 0 ms
Ach der Aufruf get AC info fördert ihn nicht zu Tage
2016.12.12 10:22:34 3: AC: Sending info command to Arduino
2016.12.12 10:22:34 3: AC: Status: ArduCounter V1.5
2016.12.12 10:22:34 3: AC: normal interval 60000
2016.12.12 10:22:34 3: AC: max interval 300000
2016.12.12 10:22:34 3: AC: min interval 2000
2016.12.12 10:22:34 3: AC: min count 1
2016.12.12 10:22:34 3: AC: pin 4 PCInt pin 20, iMode rising, no min len, count 33 (+0) in 200060 ms
2016.12.12 10:22:34 3: AC: pin 5 PCInt pin 21, iMode rising, no min len, count 0 (+0) in 95116 ms
2016.12.12 10:22:34 3: AC: Next report in 24861 Milliseconds
So ist es definiert:
Internals:
   DEF        /dev/ttyUSB0@38400
   DeviceName /dev/ttyUSB0@38400
   FD         10
   Initialized 1
   ModuleVersion 3.5 - 13.11.2016
   NAME       AC
   NR         29
   PARTIAL
   STATE      opened
   TYPE       ArduCounter
   buffer
   Readings:
     2016-12-12 10:15:58   FirmwareVersion 1.5
     2016-12-12 10:28:59   ZaehlerHzg      3639.1825
     2016-12-12 00:35:34   ZaehlerHzgKorr  3639.065
     2016-12-12 10:28:59   ZaehlerSumme    43452.4966666667
     2016-12-12 00:41:58   ZaehlerSummeKorr 43452.3766666667
     2016-12-12 10:28:59   ZaehlerWW       4597.314
     2016-12-12 00:36:20   ZaehlerWWKorr   4597.314
     2016-11-19 12:34:36   countDiff       1
     2016-11-19 12:34:36   lastMsg         first at 7804, last at 7804
     2016-12-12 10:28:59   pin4            47
     2016-12-12 10:25:59   pin5            0
     2016-12-12 10:15:16   pin6            9
     2016-12-12 10:28:59   power4          0.309
     2016-12-12 10:25:59   power5          0.000
     2016-12-12 10:15:16   power6          1.949
     2016-12-12 10:15:53   state           opened
     2016-11-19 12:34:36   timeDiff        9301
     2016-11-03 11:38:13   version         ArduCounter V1.2
Attributes:
   factor     1000
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   interval   60 300
   pinD4      rising pullup
   pinD5      rising pullup
   pinD6      rising pullup
   readingFactor4 2500
   readingFactor5 1000
   readingFactor6 13333
   userReadings ZaehlerHzg {ReadingsVal("AC","pin4",0)/400 + ReadingsNum("AC","ZaehlerHzgKorr",0) },ZaehlerWW {ReadingsVal("AC","pin5",0)/1000 + ReadingsNum("AC","ZaehlerWWKorr",0)},ZaehlerSumme {ReadingsVal("AC","pin6",0)/75 + ReadingsNum("AC","ZaehlerSummeKorr",0) }
   userattr   pinD4 pinD5 pinD6 readingFactor4 readingFactor5 readingFactor6

Habe ich schon wieder ein Problem mit einem Arduino? Hast Du dazu eine Idee?
Wenn ich den Arduino resette dann ist pin 6 wieder da, siehe ersten Code Block.

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: BillyPbg am 12 Dezember 2016, 11:09:08
Hallo Otto,

Dein Arduino dürfte "ok" sein, habe selbiges Phänomen:
bei mir ist Pin 4, 5 und 6 definiert, wobei nur Pin 5 tatsächlich scharf geschalten ist, sprich Impulse erhält.
Und Dieser verabschiedet sich aus unerfindlichen Gründen, konnte noch kein Muster feststellen, deshalb auch mein Schweigen...

VG.
BillyPbg
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 12 Dezember 2016, 11:44:46
Hi,

ja ich habe gerade einen anderen Arduino probiert, gleiches Verhalten. Nachdem neustart von FHEM ist das pin 6 weg. Mit nicht ganz nachvollziehbaren Aktionen bekomme ich es wieder:
- Power Reset
- Reset Knopf
- Neu flashen.

Offensichtlich ein Glücksspiel ob beim Reset das pin 6 wieder mitkommt oder nicht.

Anstatt der letzten Nachricht -> AC: defined pin 6 PCInt pin 22, iMode rising, no min len, count 0 (+0) in 1 ms
habe ich auch so etwas mal gesehen -> AC: unparseable message: Error in input: r

Habe jetzt mal verbose 5 laufen, dass sieht aber alles gut aus  :-[

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 12 Dezember 2016, 21:37:56
Hallo,

das erfreuliche daran ist aber auch dass das Problem offensichtlich reproduzierbar ist.
Dann wird sich der Fehler auch finden lassen :-)

Ich versuche es bei mir auch mal mit den entsprechenden Pins.

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 13 Dezember 2016, 21:36:26
Ich denke das ist ein Problem der Kommunikation zwischen Fhem und Arduino.
Wenn Fhem neu startet und der Arduino noch läuft, dann kommt keine Setup done Meldung und das Fhem-Modul wartet bis sich der Arduino mit den nächsten Zählerständen meldet. Bis dahin ist das interne initialized-Flag nicht gesetzt und es kann nichts an den Arduino gesendet werden.
Zudem scheint in der seriellen Queue Müll zu stehen, was zu den Fehlermeldungen führt.
Außerdem verwende ich im Sketch noch die String-Klasse, was für den dynamischen Speicher sehr ungünstig ist.
Daher baue ich den ganzen Kommunikationsteil nochmal um ...
Wird ein paar Tage dauern.

Gruß
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 23 Dezember 2016, 14:38:12
Hallo,

anbei eine neue Version zum Testen.
Ich habe die Kommunikation zwischen Fhem und dem Arduino komplett umgebaut. Es sollte jetzt robuster laufen.

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: BillyPbg am 23 Dezember 2016, 15:28:02
Hallo Stefan,
Danke für das tolle Weihnachtsgeschenk!

Frohes Fest!
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 23 Dezember 2016, 16:07:46
Hallo Stefan,

na da wird es ja Weihnachten  nicht langweilig!

Danke und schöne Weihnachten
Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 23 Dezember 2016, 19:55:12
Hallo Stefan,

ich wollt endlich mal am Pi flashen und nicht erst den Arduino nano an Windows anstöpseln müssen:
Da muss ich meckern  ;) im flashCommand fehlt die Baudrate, offenbar kann nur mit 57600 geflashed werden.

Also Inhalt vom attr flashCommand avrdude -p atmega328P -b 57600 -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]Und es funktioniert!

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 30 Dezember 2016, 00:50:11
Hallo Stephan,

irgendwie zählt die neue Version zusätzliche Impulse.

Ich werde morgen mal auf die alte Version gehen.

Wie könnte ich das Verhalten analysieren?

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 30 Dezember 2016, 09:28:53
Hallo Otto,

bei Verbose 5 wird alles protokolliert.
Verwendest Du eine Mindestlänge um Störungen auszufiltern?

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 30 Dezember 2016, 22:24:22
Hallo Stefan,

ich zähle drei Zähler, ich kann immer nach einiger Zeit einfach die Zählerstände vergleichen um zu sehen ob es richtig läuft.
Die DEF habe ich nicht verändert
Die Hardware habe ich nicht verändert.

Ich hatte von Version 1.5 zu 1.6 lediglich das pm ausgetauscht und das hex File geflashed.
Jetzt habe ich das Ganze retour gemacht, also altes pm (Version 1.5) und Version 1.5 hex File geflashed.

Anbei zwei Logs,
eines mit der Version 1.6  - das Ergebnis im Vergleich mit meinen Zählern ist Fehlerhaft, AC hat zu viel gezählt!
Das andere mit Version 1.5 - das Ergebnis stimmt exakt.

Hier noch das List (aktuell wieder Version 1.5 andere deswegen aber noch anderes Internal und anderes Reading)
Internals:
   DEF        /dev/ttyUSB0@38400
   DeviceName /dev/ttyUSB0@38400
   FD         4
   Initialized 1
   NAME       AC
   NOTIFYDEV  global
   NR         29
   NTFY_ORDER 50-AC
   PARTIAL
   STATE      opened
   TYPE       ArduCounter
   VersionFirmware 1.6
   VersionModule 4.01 - 21.12.2016
   buffer
   Readings:
     2016-12-30 17:58:37   FirmwareVersion 1.5
     2016-12-30 22:22:09   ZaehlerHzg      3940.3325
     2016-12-30 22:22:09   ZaehlerSumme    44187.4533333335
     2016-12-30 22:22:09   ZaehlerWW       4658.74
     2016-12-30 22:22:09   pin4            2458
     2016-12-30 22:21:09   pin5            1754
     2016-12-30 22:22:09   pin6            1043
     2016-12-30 22:22:09   power4          1.930
     2016-12-30 22:21:09   power5          0.000
     2016-12-30 22:22:09   power6          2.463
     2016-12-30 17:58:36   state           opened
Attributes:
   factor     1000
   flashCommand avrdude -p atmega328P -b57600 -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   interval   60 300
   pinD4      rising pullup
   pinD5      rising pullup
   pinD6      rising pullup
   readingFactor4 2500
   readingFactor5 1000
   readingFactor6 13333
   userReadings ZaehlerHzg monotonic {ReadingsVal("AC","pin4",0)/400},ZaehlerWW monotonic {ReadingsVal("AC","pin5",0)/1000},ZaehlerSumme monotonic {ReadingsVal("AC","pin6",0)/75}

   userattr   pinD4 pinD5 pinD6 readingFactor4 readingFactor5 readingFactor6
   verbose    5

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 31 Dezember 2016, 11:12:26
Hallo Otto,

das ist sehr seltsam. Zwischen 1.5 und 1.6 hat sich der Code nur an den Stellen geändert, an denen der Arduino mit Fhem kommuniziert. Das Zählen ist unverändert. Im Log sehe ich nichts auffälliges.

Könntest Du bitte nochmal einen Test mit 1.6 machen und nach dem Start mit get Info prüfen ob auch alle Werte korrekt sind?

Um wie viel weicht der Zähler denn ab?
Kann es sein, dass die Abweichung nur durch den Ablesezeitpunkt kommt? Fhem bzw. der Arduino aktualisiert den Zählerstand ja erst am Ende eines Intervalls und wenn Du kurz vor Ablauf des Intervalls vergleichst, dann ist eine Abweichung zwangsläufig vorhanden.

Gruss
   Stefan

Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 31 Dezember 2016, 11:34:01
Hallo Stefan,

also jetzt mit Version 1.5 ist seit gestern Abend der Zählerstand mit den physischen Zählern bis auf die Nachkommastellen absolut identisch. Das mit den Nachkommastellen ist Zeitabhängig das ist mir klar.

Mit Version 1.6 waren die Unterschiede an einem Tag erheblich, die Vorkommastellen gingen gegenüber den physischen Zählern um einige 10 bis 200 "vor"

Das war auch zu sehen an den Plots. Man sah deutliche Peaks, die sonst nicht zu sehen waren.
Im Anhang der Plot von gestern. Das ist nicht ganz eindeutig zu sehen, aber es sind ja die Zeitraüme von gestern wo ich Dir auch die Logs angehangen hatte. Die rote Kurve geht im Normalfall nicht über 5 kW Du siehst es aber deutlich vor 18:00 geht sie das mehrfach. Danach hatte ich umgestellt auf 1.5
Ich mache das nochmal mit Version 1.6 aber heute wird das nichts mehr  ;)
Nächste Woche könnte ich das sicher sogar mal mit konstanten Leistungen nachstellen, geht im normalen Familienbetrieb nicht  ;D

Dir eine guten Rutsch in neue Jahr!

Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 03 Januar 2017, 11:09:01
Hallo Otto,

kannst Du nochmal testen und ein paar ausführlichere Daten posten?
- ein SVG nur mit der roten Kurve und mit größerer Y-Achse, so dass man den tatsächlichen Verlauf der Werte sieht
- Die tatsächliche Abweichung im Betrachtungszeitraum zwischen Fhem und Deinem Zähler mit Einheit (Impulse oder kWh?)

Da sich der relevante Code nicht geändert hat und die Kommunikation in Deinen Logs korrekt aussieht, sieht es für mich so aus als ob Deine Heizung tatsächlich mal eine Weile mehr Strom verbraucht hat.
2016.12.30 16:37:35 4: AC: Parsed: Pin 4 count 52627 (diff 50) in 60548 ms, first at 1653, last at 59888
2016.12.30 16:38:35 4: AC: Parsed: Pin 4 count 52675 (diff 48) in 57919 ms, first at 2214, last at 57807
und viele ähnliche Zeilen in dem Zeitraum zeigen ca. 50 Impulse in ca einer Minute.
Das entspricht laut den Logs bei Deinem Faktor für Pin4 von 2500 einem Verbrauch von ca. 7,5kW.
Das geht dann recht lange so und erst gegen 16:47 auf 5,7 kW und gegen 17:04 auf 3,6kW und danach auf 0 herunter.
nach einem Bug sieht das eigentlich nicht aus und die Version 1.5 hätte in der Zeit sicher genau das gleiche gezählt.

Ich baue gerade noch ein ausführlicheres Logging ins Modul ein, aber bei allen meinen bisherigen Tests mit 1.6 hat bei mir jetzt alles korrekt funktioniert.

Gruss
   Stefan


Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 03 Januar 2017, 12:38:11
Hallo Stefan,

ich mache das morgen, heute geht noch nicht.

Ich mache das so, dass es möglichst gut nachvollziehbar ist!

Danke Dir bis dahin

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 04 Januar 2017, 15:45:32
Hallo Stefan,

ich habe mal alle Dateien zusammengepackt.
Ich habe jeweils ein Stunde mitgeschrieben, 13:00 Uhr bis 14:00 mit Version 1.5 dann umgestellt und mit Version 1.6 von 14:30 bis 15:30 Uhr
Hardware ist alles so geblieben, nur geflashed und Modul kopiert, FHEM neu gestartet und Arduino Reset.

Ich habe den Eindruck, der zählt mit Version 1.6 einfach doppelt.

Zählerstände Ac und in echt abgelesen
Filelog
Fhemlog
Bild vom Plot gestreckt
List vom define


Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: BillyPbg am 04 Januar 2017, 18:06:42
Hallo Otto,

ändere Mal von "rising pullup" auf "falling pullup 30" bzw. die "30ms" entsprechend Deines S0-Zählers.

Bei mir, wie offensichtlich auch bei Stefan, sind es z.B. 90ms.
Du zählst die Pausen, keine Impulse, somit zählt Dein Counter bei Spikes bzw. fehlerhaften Impulsen mindestens doppelt...

Zitiere Stefan:
"falling" gibt an, dass der Impuls entsprechend mit der fallenden Flanke beginnt (sonst wird die Länge der Pause gemessen und nicht die Länge des Pulses) und das 30 steht für minimale Pulslänge von 30 ms.

Gruß
BillyPbg
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 04 Januar 2017, 21:19:18
Hi BillyPbg,

kann ich machen, aber Dein Zitat stammt von der Version 1.5. damit funktioniert alles. Meine Zähler haben Open Collector Ausgänge die liefern saubere Impulse. Und warum sollte die Zählung nur von der Version abhängen? Ist für mich unlogisch.

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 04 Januar 2017, 21:29:27
Hallo,

Der entscheidende Hinweis war die Ausgabe zu get info aus dem Log.
Da steht iMode change ... also wird bei jeder Ämderung ein Interrupt ausgelöst.
Ich habe ja die Kommunikation zwischen Fhem und dem Arduino umgebaut. Im Sketch hat in einem case ein break gefehlt. So wurde aus RISING ein CHANGE und bei jedem Impuls wird zwei mal gezählt...
Bei falling bzw. wenn die Pulslänge geprüft wird sollte alles stimmen.
Update kommt. Ich teste es nur noch ein wenig ;-)

Gruß
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 04 Januar 2017, 21:53:27
Hallo Stefan,

na dann war das ja Glück, dass ich mal get info gedrückt hab. Und beim kopieren ist mir das change auch aufgefallen. Da wollte ich noch was dazu schreiben, habe ich aber dann beim zusammenkopieren vergessen.
Ich wollte eigentlich die get info Ausgaben noch separat dazu schreiben, das wäre ja dann der entscheidende Hinweis gewesen.
Jetzt mit 1.5 steht rising.  8)

Gruß Otto


Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 05 Januar 2017, 11:30:34
So, hier eine neue Version mit der letzten Korrektur.
Vielen Dank für die Unterstützung bei der Fehlersuche :-)
Ich hab auch noch was neues eingebaut. Das Modul versucht jetzt nebenbei noch die Abweichung des millis() Timers im Arduino zu ermitteln. Der weicht ja z.B. auch wegen der Interrupts ab. Wenn es sich lohnt, könnte man in einer künftigen Version diese Abweichung bei der Berechnung berücksichtigen. Vermutlich wäre das aber nur Spielerei ;-)

Das neue Modul benötigt auch wieder einen neuen Sketch bzw. neue Firmware. Anbei die Dateien.
Wenn es bei Euch soweit klappt, würde ich alles einchecken und von contrib in den offiziellen Fhem-Zweig verschieben, so dass es künftig per Update verteilt wird. Ich denke inzwischen ist es reif dafür.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 05 Januar 2017, 11:40:25
Moin Stefan,

danke! Test läuft  8) get info sieht gut aus  ;)

2017.01.05 11:37:24 5: AC: ReadAnswer called
2017.01.05 11:37:24 4: AC: device reported firmware 1.8
2017.01.05 11:37:24 3: AC: device: normal interval 60000
2017.01.05 11:37:24 3: AC: device: max interval 300000
2017.01.05 11:37:24 3: AC: device: min interval 2000
2017.01.05 11:37:24 3: AC: device: min count 1
2017.01.05 11:37:24 3: AC: device: pin 4 PCInt pin 20, iMode rising, no min len, count 16 (+4) in 28413 ms
2017.01.05 11:37:24 3: AC: device:   first at 900, last at 22225, avg len 0
2017.01.05 11:37:24 3: AC: device: pin 5 PCInt pin 21, iMode rising, no min len, count 0 (+0) in 112089 ms
2017.01.05 11:37:24 3: AC: device: pin 6 PCInt pin 22, iMode rising, no min len, count 3 (+1) in 29745 ms
2017.01.05 11:37:24 3: AC: device:   first at 540, last at 540, avg len 0
2017.01.05 11:37:24 3: AC: device: Next report in 36557 Milliseconds
2017.01.05 11:37:24 5: AC: ReadAnswer matched Next report in [0-9]+ Milliseconds
Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: BillyPbg am 05 Januar 2017, 20:12:44
Hallo Stefan,

schlechte News...

Die aktuelle Version  ( Vers.1.8 ) hat einen FileLog,Bug:
Beim Zeitstempel fehlt das Datum:

Auszug:
...
20:05:16 ArduCOUNTER power5W: 61 W
20:05:16 ArduCOUNTER lastMsg5: R5 C263 D1 T58542 N8602371 X0 F58542 L58542 A90
20:05:16 ArduCOUNTER pin5: 263
20:04:17 ArduCOUNTER power5: 0.061
2017-01-05_20:04:16 ArduCOUNTER Verbrauch5kWh: 0.298 kWh (UserReading, zum Vergleich)
20:04:16 ArduCOUNTER power5W: 63 W
20:04:16 ArduCOUNTER lastMsg5: R5 C262 D1 T56699 N8542371 X0 F56699 L56699 A90
20:04:16 ArduCOUNTER pin5: 262
20:03:19 ArduCOUNTER power5: 0.063
2017-01-05_20:03:16 ArduCOUNTER Verbrauch5kWh: 0.297 kWh (UserReading, zum Vergleich)
...

Ansonsten bin ich noch beim Austesten - Bericht/ Ergebnis folgt...

Gruß
BillyPbg

Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: BillyPbg am 05 Januar 2017, 20:27:10
Kleiner Nachtrag...

fand gerade zwei Perl-Warnungen direkt nach/während der Einspielung der ".pm" im zentralen LogFile:

2017.01.05 16:37:59.670 1: PERL WARNING: Argument "" isn't numeric in numeric ge (>=) at ./FHEM/98_ArduCounter.pm line 624.
2017.01.05 16:37:18.371 1: PERL WARNING: Argument "" isn't numeric in subtraction (-) at ./FHEM/98_ArduCounter.pm line 631.
[/b]
2017.01.05 16:36:43.716 1: PERL WARNING: Subroutine ArduCounter_Ready redefined at ./FHEM/98_ArduCounter.pm line 808.
2017.01.05 16:36:43.713 1: PERL WARNING: Subroutine ArduCounter_ReadAnswer redefined at ./FHEM/98_ArduCounter.pm line 734.
2017.01.05 16:36:43.709 1: PERL WARNING: Subroutine ArduCounter_Read redefined at ./FHEM/98_ArduCounter.pm line 709.
2017.01.05 16:36:43.705 1: PERL WARNING: Subroutine ArduCounter_Parse redefined at ./FHEM/98_ArduCounter.pm line 536.
2017.01.05 16:36:43.693 1: PERL WARNING: Subroutine ArduCounter_HandleVersion redefined at ./FHEM/98_ArduCounter.pm line 519.
2017.01.05 16:36:43.691 1: PERL WARNING: Subroutine ArduCounter_Get redefined at ./FHEM/98_ArduCounter.pm line 483.
2017.01.05 16:36:43.688 1: PERL WARNING: Subroutine ArduCounter_Set redefined at ./FHEM/98_ArduCounter.pm line 384.
2017.01.05 16:36:43.681 1: PERL WARNING: Subroutine ArduCounter_Attr redefined at ./FHEM/98_ArduCounter.pm line 245.
2017.01.05 16:36:43.673 1: PERL WARNING: Subroutine ArduCounter_HelloTimeout redefined at ./FHEM/98_ArduCounter.pm line 233.
2017.01.05 16:36:43.671 1: PERL WARNING: Subroutine ArduCounter_SendHello redefined at ./FHEM/98_ArduCounter.pm line 214.
2017.01.05 16:36:43.669 1: PERL WARNING: Subroutine ArduCounter_Write redefined at ./FHEM/98_ArduCounter.pm line 195.
2017.01.05 16:36:43.668 1: PERL WARNING: Subroutine ArduCounter_Notify redefined at ./FHEM/98_ArduCounter.pm line 165.
2017.01.05 16:36:43.666 1: PERL WARNING: Subroutine ArduCounter_Undef redefined at ./FHEM/98_ArduCounter.pm line 156.
2017.01.05 16:36:43.665 1: PERL WARNING: Subroutine ArduCounter_ConfigureDevice redefined at ./FHEM/98_ArduCounter.pm line 137.
2017.01.05 16:36:43.663 1: PERL WARNING: Subroutine ArduCounter_Define redefined at ./FHEM/98_ArduCounter.pm line 105.
2017.01.05 16:36:43.660 1: PERL WARNING: Subroutine ArduCounter_Initialize redefined at ./FHEM/98_ArduCounter.pm line 71.

Gruß
BillyPbg
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 05 Januar 2017, 21:14:51
Hallo BillyPbg,

danke für's Testen!
Offensichlich verwendest Du das readingStartTime Feature ;-)

Hier nochmal ein Update. Bei mir kommen keine Warnings mehr.

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: BillyPbg am 05 Januar 2017, 21:31:13
Hallo Stefan,

ALLES SUPI!
Danke für den erstklassigen Support!

Melde mich mit meinem Feedback voraussichtlich Sonntag oder Montag.

Gru
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 06 Januar 2017, 10:17:55
Hallo Stefan,

habe gerade gemerkt: die Zähler im Arduino werden jetzt aber wieder beim neustart von FHEM gelöscht.

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 06 Januar 2017, 14:47:31
Hallo Otto,

bei mir macht er das nicht:
2017.01.06 14:41:34 4: ACTest: Pin 4 (pin4) count 79 (diff 0) in 60.000s, result 0.000
2017.01.06 14:41:34 5: ACTest: interval 14:40:34 until 14:41:34
2017.01.06 14:41:34 5: ACTest: readingStartTime4 specified: setting reading timestamp to 14:40:34
2017.01.06 14:41:34 5: ACTest: set readings power4 to 0.000, timeDiff4 to 60000 and countDiff4 to 0
2017.01.06 14:41:34 5: ACTest: Device Time 63480, Drift -0.099s in 119.901s, -0.08%

2017.01.06 14:41:43 0: Server shutdown
2017.01.06 14:41:46 1: Including fhem.cfg
2017.01.06 14:41:46 3: telnetPort: port 7072 opened
2017.01.06 14:41:47 3: WEB: port 8083 opened
2017.01.06 14:41:47 3: WEBphone: port 8084 opened
2017.01.06 14:41:47 3: WEBtablet: port 8085 opened
2017.01.06 14:41:48 2: eventTypes: loaded 256 events from ./log/eventTypes.txt
2017.01.06 14:41:52 1: Including ./log/fhem.save
2017.01.06 14:41:52 5: ACTest: Notify called with events: INITIALIZED, open device and set timer to send hello to device
2017.01.06 14:41:52 3: Opening ACTest device /dev/ArduinoSainsmart
2017.01.06 14:41:52 3: Setting ACTest serial parameters to 38400,8,N,1
2017.01.06 14:41:52 3: ACTest device opened
2017.01.06 14:41:52 0: Featurelevel: 5.7
2017.01.06 14:41:52 0: Server started with 15 defined entities (fhem.pl:12804/2016-12-17 perl:5.020002 os:linux user:fhem pid:12271)
2017.01.06 14:41:55 3: ACTest: sending h(ello) to device to ask for version
2017.01.06 14:41:55 5: SW: h

2017.01.06 14:41:55 3: ACTest: device replied to hello, V1.8
2017.01.06 14:41:55 4: ACTest: device reported firmware 1.8
2017.01.06 14:41:55 3: ACTest: ConfigureDevice calls Attr with interval 30 60
2017.01.06 14:41:55 5: SW: 30,60,0,0i

2017.01.06 14:41:55 3: ACTest: ConfigureDevice calls Attr with pin4 rising pullup
2017.01.06 14:41:55 5: SW: 4,3,1a

2017.01.06 14:41:55 3: ACTest: device: intervals set to 30 60 0 0
2017.01.06 14:41:55 3: ACTest: device: defined pin 4 PCInt pin 20, iMode rising, no min len, count 79 (+0) in 21021 ms

2017.01.06 14:42:34 4: ACTest: Pin 4 (pin4) count 79 (diff 0) in 60.000s, result 0.000
2017.01.06 14:42:34 5: ACTest: interval 14:41:34 until 14:42:34
2017.01.06 14:42:34 5: ACTest: readingStartTime4 specified: setting reading timestamp to 14:41:34
2017.01.06 14:42:34 5: ACTest: set readings power4 to 0.000, timeDiff4 to 60000 and countDiff4 to 0
2017.01.06 14:42:34 5: ACTest: Initialize clock offset to 1483646614.23288
2017.01.06 14:42:34 5: ACTest: Device Time 63540, Drift 0.000s in 0.000s

Beim Starten schickt Fhem einen (h)ello Befehl an den Arduino, der meldet sich und dann werden die Pins nochmal übermittelt.
Der interne Zähler bleibt dabei unverändert (bei mir im obigen Log auf 79).

Es ist natürlich denkbar, dass ein anderer Arduino sich beim Öffnen der seriellen Schnittstelle resettet.
Wie sieht das bei Dir im Log aus?

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 06 Januar 2017, 15:06:19
Hallo Stefan,

naja bei mir macht er genau das nicht, die Zähler sind null. Ich habe mal ein get info gemacht, dann shutdwon restart dann sieht man was er macht und dann noch ein get info.
2017.01.06 10:08:22 3: AC: Sending info command to device
2017.01.06 10:08:22 3: AC: device: normal interval 60000
2017.01.06 10:08:22 3: AC: device: max interval 300000
2017.01.06 10:08:22 3: AC: device: min interval 2000
2017.01.06 10:08:22 3: AC: device: min count 1
2017.01.06 10:08:22 3: AC: device: pin 4 PCInt pin 20, iMode rising, no min len, count 0 (+0) in 278826 ms
2017.01.06 10:08:22 3: AC: device: pin 5 PCInt pin 21, iMode rising, no min len, count 64 (+0) in 144995 ms
2017.01.06 10:08:22 3: AC: device: pin 6 PCInt pin 22, iMode rising, no min len, count 11 (+0) in 29646 ms
2017.01.06 10:08:22 3: AC: device: Next report in 49917 Milliseconds
2017.01.06 10:14:55 0: Server shutdown
....
2017.01.06 10:15:12 3: AC: device sent setup message, V1.8
2017.01.06 10:15:12 3: AC: ConfigureDevice calls Attr with pinD4 rising pullup
2017.01.06 10:15:12 3: AC: ConfigureDevice calls Attr with pinD5 rising pullup
2017.01.06 10:15:12 3: AC: ConfigureDevice calls Attr with interval 60 300
2017.01.06 10:15:12 3: AC: ConfigureDevice calls Attr with pinD6 rising pullup
2017.01.06 10:15:12 3: AC: device: defined pin 4 PCInt pin 20, iMode rising, no min len, count 0 (+0) in 0 ms
2017.01.06 10:15:12 3: AC: device: defined pin 5 PCInt pin 21, iMode rising, no min len, count 0 (+0) in 0 ms
2017.01.06 10:15:12 3: AC: device: intervals set to 60 300 0 0
2017.01.06 10:15:12 3: AC: device: defined pin 6 PCInt pin 22, iMode rising, no min len, count 0 (+0) in 4 ms
2017.01.06 10:15:41 3: AC: Sending info command to device
2017.01.06 10:15:41 3: AC: device: normal interval 60000
2017.01.06 10:15:41 3: AC: device: max interval 300000
2017.01.06 10:15:41 3: AC: device: min interval 2000
2017.01.06 10:15:41 3: AC: device: min count 1
2017.01.06 10:15:41 3: AC: device: pin 4 PCInt pin 20, iMode rising, no min len, count 6 (+6) in 26665 ms
2017.01.06 10:15:41 3: AC: device:   first at 12, last at 26677, avg len 0
2017.01.06 10:15:41 3: AC: device: pin 5 PCInt pin 21, iMode rising, no min len, count 0 (+0) in 29569 ms
2017.01.06 10:15:41 3: AC: device: pin 6 PCInt pin 22, iMode rising, no min len, count 1 (+1) in 15840 ms
2017.01.06 10:15:41 3: AC: device:   first at 10309, last at 26149, avg len 0
2017.01.06 10:15:41 3: AC: device: Next report in 58883 Milliseconds

Das ging doch aber schon mal  :o der nano ist noch derselbe. Wo kann ich sehen ob der Reset macht?

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 06 Januar 2017, 15:54:31
Hallo Otto,

wenn im Log "device sent setup message, V1.8" steht, dann ist im Ardiuno die setup()-Funktion gelaufen. Sieht nach Reset aus.
Bei mir kommt das ja nicht. Statt dessen wird hello gesendet und danach kommt "device replied to hello, V1.8".

Schau doch mal im Log weiter in die Vergangenheit, seit wann das so ist.
Eventuell hängt es an der Übertragungsrate?

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 06 Januar 2017, 17:00:39
Hallo Stephan,

naja genau genommen hat er das noch nie gemacht  :-\
Ich bin mir zwar sicher diese hello message schon gesehen zu haben, aber das kann auf einem anderen System gewesen sein.

Ich glaube: als ich das auf dem "quasi Produktiven" testen wollte, waren die Pins beim Start weg und da bin ich dann abgestorben.  :-[

Ich überprüfe das und melde mich zurück!

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: BillyPbg am 06 Januar 2017, 20:30:49
Hallo Stefan,
hallo Otto,

vielleicht kann ich bei der Lösung des Problems mit meinen Log ein wenig beitragen:

Fakt ist, auch bei mir sind nach einem "Shutdown Restart" die Zähler  bzw. "Get Info..."auf "0".
Konstellation: Raspi 3, Arduino Nano 3.0 - Aktueller Softwarestand...

Log-Auszug ("Shutdown Restart"-Vorgang, Verbose 5, gekürzt...):
2017.01.06 18:57:56.469 3: ArduCOUNTER: Sending info command to device
2017.01.06 18:57:56.469 5: SW: sh

2017.01.06 18:57:56.471 5: ArduCOUNTER: ReadAnswer called
2017.01.06 18:57:56.586 4: ArduCOUNTER: device reported firmware 1.8
2017.01.06 18:57:56.589 3: ArduCOUNTER: device: normal interval 15000
2017.01.06 18:57:56.589 3: ArduCOUNTER: device: max interval 1200000
2017.01.06 18:57:56.590 3: ArduCOUNTER: device: min interval 5000
2017.01.06 18:57:56.590 3: ArduCOUNTER: device: min count 1
2017.01.06 18:57:56.590 3: ArduCOUNTER: device: pin 4 PCInt pin 20, iMode change, min len 30 ms falling, count 0 (+0) in 664069 ms Rej 0
2017.01.06 18:57:56.590 3: ArduCOUNTER: device: pin 5 PCInt pin 21, iMode change, min len 90 ms falling, count 9934 (+0) in 14472 ms Rej 0
2017.01.06 18:57:56.591 3: ArduCOUNTER: device: pin 6 PCInt pin 22, iMode change, min len 30 ms falling, count 0 (+0) in 664093 ms Rej 0
2017.01.06 18:57:56.591 3: ArduCOUNTER: device: Next report in 10881 Milliseconds
2017.01.06 18:57:56.591 5: ArduCOUNTER: ReadAnswer matched Next report in [0-9]+ Milliseconds
2017.01.06 18:58:22.449 4: ArduCOUNTER: Pin 5 (pin5) count 9935 (diff 1) in 25.766s, reject 0, result 0.140
2017.01.06 18:58:22.450 5: ArduCOUNTER: interval 18:57:56 until 18:58:22, First at 25766
2017.01.06 18:58:22.451 5: ArduCOUNTER: readingStartTime5 specified: setting reading timestamp to 18:57:56
2017.01.06 18:58:22.451 5: ArduCOUNTER: set readings power5 to 0.140, timeDiff5 to 25766 and countDiff5 to 1
2017.01.06 18:58:22.629 5: ArduCOUNTER: Device Time 78700.172, Drift -25.666s in 78604.308s, -0.03%
2017.01.06 18:58:37.481 4: ArduCOUNTER: Pin 5 (pin5) count 9936 (diff 1) in 25.517s, reject 0, result 0.141
2017.01.06 18:58:37.481 5: ArduCOUNTER: interval 18:58:11 until 18:58:37, First at 25517
2017.01.06 18:58:37.482 5: ArduCOUNTER: readingStartTime5 specified: setting reading timestamp to 18:58:11
2017.01.06 18:58:37.482 5: ArduCOUNTER: set readings power5 to 0.141, timeDiff5 to 25517 and countDiff5 to 1
2017.01.06 18:58:37.657 5: ArduCOUNTER: Device Time 78715.172, Drift -25.634s in 78619.340s, -0.03%
2017.01.06 18:59:07.679 4: ArduCOUNTER: Pin 5 (pin5) count 9937 (diff 1) in 25.887s, reject 0, result 0.139
2017.01.06 18:59:07.679 5: ArduCOUNTER: interval 18:58:41 until 18:59:07, First at 25887
2017.01.06 18:59:07.680 5: ArduCOUNTER: readingStartTime5 specified: setting reading timestamp to 18:58:41
2017.01.06 18:59:07.680 5: ArduCOUNTER: set readings power5 to 0.139, timeDiff5 to 25887 and countDiff5 to 1
2017.01.06 18:59:07.855 5: ArduCOUNTER: Device Time 78745.172, Drift -25.436s in 78649.538s, -0.03%
2017.01.06 18:59:28.962 0:
-             ---------------   SHUTDOWN !  ---------------
-
2017.01.06 18:59:29.163 0: Server shutdown

2017.01.06 19:00:21.542 1: Including ./log/fhem.save
2017.01.06 19:00:23.814 5: ArduCOUNTER: Notify called with events: INITIALIZED, open device and set timer to send hello to device
2017.01.06 19:00:23.815 3: Opening ArduCOUNTER device /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2.2:1.0-port0
2017.01.06 19:00:23.822 3: Setting ArduCOUNTER serial parameters to 38400,8,N,1
2017.01.06 19:00:23.839 3: ArduCOUNTER device opened
2017.01.06 19:00:29.279 0: Featurelevel: 5.7
2017.01.06 19:00:29.279 0: Server started with 708 defined entities (fhem.pl:12955/2017-01-04 perl:5.020002 os:linux user:fhem pid:3909)
2017.01.06 19:00:32.649 3: ArduCOUNTER: sending h(ello) to device to ask for version
2017.01.06 19:00:32.649 5: SW: h
2017.01.06 19:00:36.093 4: ArduCOUNTER: Pin 5 (pin5) count 9938 (diff 1) in 26.271s, reject 0, result 0.137
2017.01.06 19:00:36.093 5: ArduCOUNTER: interval 19:00:09 until 19:00:36
2017.01.06 19:00:36.094 5: ArduCOUNTER: readingStartTime5 specified: setting reading timestamp to 19:00:09
2017.01.06 19:00:36.094 5: ArduCOUNTER: set readings power5 to 0.137, timeDiff5 to 26271 and countDiff5 to 1
2017.01.06 19:00:36.182 5: ArduCOUNTER: Initialize clock offset to 1483646860.9212
2017.01.06 19:00:36.183 5: ArduCOUNTER: Device Time 78775.172, Drift 0.000s in 0.000s
2017.01.06 19:00:36.183 3: ArduCOUNTER: device reported count
2017.01.06 19:00:36.184 3: ArduCOUNTER: device sent setup message, V1.8
2017.01.06 19:00:36.185 4: ArduCOUNTER: device reported firmware 1.8
2017.01.06 19:00:36.185 3: ArduCOUNTER: ConfigureDevice calls Attr with interval 15 1200 5 1
2017.01.06 19:00:36.185 5: SW: 15,1200,5,1i
2017.01.06 19:00:36.187 3: ArduCOUNTER: ConfigureDevice calls Attr with pinD5 falling pullup 90
2017.01.06 19:00:36.188 5: SW: 5,2,1,90a
2017.01.06 19:00:36.192 3: ArduCOUNTER: ConfigureDevice calls Attr with pinD6 falling pullup 30
2017.01.06 19:00:36.192 5: SW: 6,2,1,30a
2017.01.06 19:00:36.196 3: ArduCOUNTER: ConfigureDevice calls Attr with pinD4 falling pullup 30
2017.01.06 19:00:36.196 5: SW: 4,2,1,30a
2017.01.06 19:00:36.202 3: ArduCOUNTER: device replied to hello, V1.8
2017.01.06 19:00:36.202 4: ArduCOUNTER: device reported firmware 1.8

2017.01.06 19:01:12.182 3: ArduCOUNTER: device: intervals set to 15 1200 5 1
2017.01.06 19:01:12.182 3: ArduCOUNTER: device: defined pin 5 PCInt pin 21, iMode change, min len 90 ms falling, count 0 (+0) in 2 ms Rej 0
2017.01.06 19:01:12.183 3: ArduCOUNTER: device: defined pin 6 PCInt pin 22, iMode change, min len 30 ms falling, count 0 (+0) in 4 ms Rej 0
2017.01.06 19:01:12.183 3: ArduCOUNTER: device: defined pin 4 PCInt pin 20, iMode change, min len 30 ms falling, count 0 (+0) in 4 ms Rej 0
2017.01.06 19:01:51.179 4: ArduCOUNTER: Pin 5 (pin5) count 1 (diff 1) in 31.270s, reject 1, result 0.115
2017.01.06 19:01:51.180 5: ArduCOUNTER: interval 19:01:19 until 19:01:51
2017.01.06 19:01:51.180 5: ArduCOUNTER: readingStartTime5 specified: setting reading timestamp to 19:01:19
2017.01.06 19:01:51.181 5: ArduCOUNTER: set readings power5 to 0.115, timeDiff5 to 31270 and countDiff5 to 1
2017.01.06 19:01:51.305 5: ArduCOUNTER: device clock wrapped (now 85.919, before 78775.172). New offset is 1483725625.25978
2017.01.06 19:01:51.305 5: ArduCOUNTER: Device Time 85.919, Drift 0.000s in 75.086s, 0.00%

2017.01.06 19:02:36.164 4: ArduCOUNTER: Pin 5 (pin5) count 2 (diff 1) in 45.876s, reject 0, result 0.078
2017.01.06 19:02:36.164 5: ArduCOUNTER: interval 19:01:50 until 19:02:36, First at 45876
2017.01.06 19:02:36.165 5: ArduCOUNTER: readingStartTime5 specified: setting reading timestamp to 19:01:50
2017.01.06 19:02:36.166 5: ArduCOUNTER: set readings power5 to 0.078, timeDiff5 to 45876 and countDiff5 to 1
2017.01.06 19:02:36.353 5: ArduCOUNTER: Device Time 130.919, Drift -0.015s in 120.070s, -0.01%

2017.01.06 19:03:21.148 4: ArduCOUNTER: Pin 5 (pin5) count 3 (diff 1) in 46.496s, reject 0, result 0.077
2017.01.06 19:03:21.149 5: ArduCOUNTER: interval 19:02:34 until 19:03:21, First at 46496
2017.01.06 19:03:21.150 5: ArduCOUNTER: readingStartTime5 specified: setting reading timestamp to 19:02:34
2017.01.06 19:03:21.150 5: ArduCOUNTER: set readings power5 to 0.077, timeDiff5 to 46496 and countDiff5 to 1
2017.01.06 19:03:21.303 5: ArduCOUNTER: Device Time 175.92, Drift -0.031s in 165.055s, -0.02%

Gruß
BillyPbg

PS:
Ist die Log- und Info-Angabe "iMode change" im Modus "falling" korrekt - ein wenig verwirrend wegen rising-falling-change...
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 06 Januar 2017, 23:06:48
Was für Arduinos verwendet Ihr denn?
Ich denke das ganze ist ein Hardware-Thema ...
http://playground.arduino.cc/Main/DisablingAutoResetOnSerialConnection
Ich habe sowohl einen Jeenode als auch einen UNO von Sainsmart, die keinen Reset machen ...
Unabhängig davon sollte es aber auch nicht wirklich stören wenn der Arduino sich beim Neustart von Fhem auch neu startet. Der interne Zähler ist ja unabhängig von der Ausgabe der Impulse je Intervall und alle paar Wochen läuft der sowieso über.

Zum iMode: wenn eine Impulsdauer überwacht werden soll, steht iMode automatisch auf change. Rising der falling bedeutet dann ob der Puls steigend oder fallend beginnt. Sonst werden die Pausen statt der Impulslängen gemessen.
Ich könnte die Ausgbe von iMode natürlich auch weglassen - es ist ja eher eine interne Angabe.

Gruß
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: BillyPbg am 07 Januar 2017, 00:44:25
Hallo Stefan,

Danke für die "iMode" Infos.
Bezüglich der Hardware - wie bereits erwähnt, ist es bei mir ein Nano 3.0, Modell "China-Direct".

Bisher hatte ich die Nullung über die "monotonic"-Userreadings als Basis für weitere Auswertungen gelöst.
Und diesen Mechanismus könntest Du ja auch - somit wäre das Ganze unabhängig von der Hardware - in das Modul  für die beiden Werte implementieren, was zudem das Thema des Überlaufs somit sowieso erschlagen würde.

Ergänzenderweise fände ich (Achtung Idee...  ;) noch einen Lösungsansatz interessant, zwecks fiktive Ergänzung für die verlustig gehenden Impulse während der "Shutdown Restart" Pausen:

Zum Beispiel in der Art, dass wenn man die letzten (z.B.) fünf Werte abgleicht mittels Durchschnittsbildung, diesen in Beziehung setzt mit der Länge der "Pause" bis zum nächsten regulären Impuls, vorausgesetzt dass die Pause nur maximal (z.B.) eine Minute, oder mindestens aber einen "Durchschnitts"-Impuls dauert und der regulär folgende Wert in einem Karenzraum von (z.B.) +-5%, ersatzweise der nächsten (z.B.) fünf Werte im Durchschnitt +-XX Prozent.

Die zur Berechnung nötigen Werte und Daten würde ich unbedingt mittels Temp- oder Log-Datei absturzsicher machen wollen, was dann die Zuverlässigkeit des durchgehenden Zählens und somit die Qualität des Moduls nochmal enorm steigern würde.

Und sollte dann eine "Unterbrechung" stattfinden, die nicht mehr nachberechnet werden kann, sollte das z.B. per INTERNAL Reading eindeutig signalisiert werden (z.B. "Unterbrechung von XX:XX bis XX:XX Uhr/ Datum - Zählerstände prüfen!").
Über dieses Reading könnte man dann auch nachberechnete Impulse im selben Stil mit Handlungsaufforderung, sprich Warnung anzeigen (z.B. "Nachberechnete Impulse von XX:XX bis XX:XX Uhr/ Datum, Anzahl XX - Zählerstände prüfen!")
Dies wiederum könnte dann vom User oder bereits mittels Modulattribut mit einem DevStateIcon (z.B. farbige Warndreiecke) oder entsprechend DevStateStyle (rot/gelb/grün) signalisiert werden.

Zudem würde ich diese berechneten Werte in einem gesonderten Reading (parallel zum "pinDx", oder als Attribut: 'Erkannte verarbeitete Impulse/ Getrennt (verarbeitete und berechnete Impulse, zwei Readings)/ Beide zusammen' ) deklarieren wollen, um diese gesondert mittels Log je nach persönlicher Situation und Gusto auswerten lassen zu können.

Was hältst Du davon, machbar ?

Gruß
BillyPbg
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 29 Januar 2017, 19:44:35
Hallo BillyPbg,

machbar ist vieles. Ich nehme es mal in die langfristige Wunschliste auf.

Übrigens habe ich den Wiki-Eintrag zum ArduCounter heute mal überarbeitet.
Falls jemand noch Fehler / wichtige fehlende Details hat, dürft Ihr das gerne ergänzen.

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 06 Februar 2017, 19:29:11
Hallo,

ich habe die letzt Version im svn eingecheckt und von contrib in den normalen Bereich verschoben, so dass sie per update verteilt wird. Schaut doch mal ob es bei Euch problemlos ankommt.

Gruss / Thanx
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 07 Februar 2017, 16:36:59
Hallo Stefan,

die version ist angekommen -> 98_ArduCounter.pm           13345 2017-02-06 18:22:20Z StefanStrobel
Vielen Dank.
Wegen dem Reset Verhalten bin ich noch am prüfen, ich denke es ist wohl normal/so gewollt. Wenn die serielle Schnittstelle initialisiert wird, wird über DTR ein reset ausgelöst. Aber wie gesagt, habe ich bisher nur gelesen und bin noch dabei zu testen.

Was mir jetzt noch auffiel: Man kann keinen leeren Arduino nano damit in Betrieb nehmen. Das Modul prüft immer ob die Schnittstelle geöffnet ist, ist natürlich ohne Firmware nicht der Fall.
Damit bekommt man leider die Firmware nicht drauf. Geht man ins Terminal und kopiert die Zeile flashCommand dann geht es sofort. Danach habe ich FHEM neu gestartet (reload 98_ArduCounter.pm hätte vielleicht gereicht?) und alles lief.

Vielleicht noch als Idee für Verbesserung, flash auch versuchen wenn Schnittstelle nicht geöffnet.  ;)

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 08 Februar 2017, 14:51:55
Hallo Stefan,

ich habe jetzt die "Eigenheit" des Arduino nano ermittelt.
Das Reset Pin ist mit einem 1 kOhm Widerstand nach 5 Volt geführt und wird über einen Kondensator vom DTR Pin beim Initialisieren der seriellen Schnittstelle kurz nach Masse gezogen. Das löst den Reset aus, da beim Neustart von FHEM auch die serielle Schnittstelle zurückgesetzt/initialisiert wird. Sieht dann so aus:
2017.02.08 14:02:31 3: Opening AC device /dev/ttyUSB0
2017.02.08 14:02:31 3: Setting AC serial parameters to 38400,8,N,1
2017.02.08 14:02:31 3: AC device opened
2017.02.08 14:02:32 0: Server started with 16 defined entities (fhem.pl:13334/2017-02-05 perl:5.020002 os:linux user:fhem pid:17892)
2017.02.08 14:02:34 3: AC: device sent setup message, V1.8
2017.02.08 14:02:34 3: AC: ConfigureDevice calls Attr with pinD4 falling pullup
2017.02.08 14:02:34 3: AC: device: defined pin 4 PCInt pin 20, iMode falling, no min len, count 0 (+0) in 0 ms

Mit einem zusätzlichen Widerstand von 220 Ohm von RST nach 5 Volt kann man den Reset über DTR verhindern, sieht dann so aus:
2017.02.08 14:35:00 3: Opening AC device /dev/ttyUSB0
2017.02.08 14:35:00 3: Setting AC serial parameters to 38400,8,N,1
2017.02.08 14:35:00 3: AC device opened
2017.02.08 14:35:00 0: Server started with 16 defined entities (fhem.pl:13334/2017-02-05 perl:5.020002 os:linux user:fhem pid:18652)
2017.02.08 14:35:03 3: AC: sending h(ello) to device to ask for version
2017.02.08 14:35:03 3: AC: device replied to hello, V1.8
2017.02.08 14:35:03 3: AC: ConfigureDevice calls Attr with pinD4 falling pullup
2017.02.08 14:35:03 3: AC: device: defined pin 4 PCInt pin 20, iMode falling, no min len, count 296 (+0) in 47944 ms

Also irgendwie erklärbar.

Wie schon gesagt, vielleicht kannst Du das Flashen von einem frischen Arduino nano ja noch umstricken, also nicht abfragen ob das Modul schon opened ist.  ;)

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 08 Februar 2017, 17:36:18
Hallo Otto,

vielen Dank für den Hinweis.
Das klingt sinnvoll und ich schau mal wie ich das umgesetzt bekomme.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 08 Februar 2017, 21:32:44
Hallo Stefan,

zur Commandref: Das Modul braucht ja keine besonderen Perlmodule, die FHEM nicht sowieso braucht. Aber zum Flashen braucht man avrdude.  Das solltest Du vielleicht in der commandref am Anfang mit erwähnen, auch das man keine besonderen Berechtigungen braucht. Es ist wirklich simpel. Hier stand ja mal in einem Post: man bräuchte eine Wikianleitung für avrdude, kann ich nicht  nachvollziehen -> das geht einfach.

Ich mag es wenn klar da steht, was ich zusätzlich installieren muss.  ;D

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 11 Februar 2017, 14:55:08
Guter Hinweis, kommt in der nächsten Version.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Naiszen am 13 Februar 2017, 12:45:30
Nach dem Update habe ich jetzt ständig dieses Problem...

2017.02.13 12:35:11 3: Setting AC serial parameters to 9600,8,N,1
2017.02.13 12:35:11 3: AC device opened
2017.02.13 12:35:11 3: NTFY return:  AC:1486985714.53514
2017.02.13 12:35:14 3: AC: sending h(ello) to device to ask for version
2017.02.13 12:35:17 3: AC: device didn't reply to h(ello). Is the right sketch flashed?

vorher ging alles mit der alten Version ohne Probleme
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 13 Februar 2017, 13:34:37
Hi,

Der Sketch (Firmware Arduino) und das Modul wurden geändert.
du musst entweder (einfach):
aus dem Restore Verzeichnis  die alte Modul Version wieder nehmen.
Oder (etwas aufwendiger):
den neuen sketch flashen (geht direkt aus dem Modul, du musst nur avrdude installiert haben)
die DEF von 9600 auf 38400 ändern

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Naiszen am 14 Februar 2017, 12:33:07
Sehr schon, Vielen Dank.
Ich hatte schon alles gemacht, mir leider nicht die DEF auf 38400. Das habe ich wohl übersehen, jedenfalls nicht gelesen. nun klappt alles wieder.

Jetzt habe ich aber doch noch eine Frage, kann man beim Arducounter etwas gegen dieses Alzheimer machen, wenn das Gerät mal kurz ohne Strom ist?
Habe das Problem z.b. wenn ich immer mal wieder von der Karte ein Backup mache.

Viele Grüße
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 14 Februar 2017, 16:20:58
Jetzt habe ich aber doch noch eine Frage, kann man beim Arducounter etwas gegen dieses Alzheimer machen, wenn das Gerät mal kurz ohne Strom ist?
Habe das Problem z.b. wenn ich immer mal wieder von der Karte ein Backup mache.
Hi,

Du meinst, das die Counter zurückgesetzt werden?

Das hat Stefan eigentlich eingebaut, wenn der Arduino nicht vom Strom geht wird in der neuen Version beim Neustart des Moduls abgefragt ob er schon konfiguriert ist, wenn ja wird kein reset gemacht. Damit bleiben theoretisch die gezählten Impulse, während das Modul offline war, erhalten. Die Praxis macht uns allerdings einen Strich durch die Rechnung:
Irgendwie wird während des FHEM Starts die Serielle Schnittstelle initialisiert (Stefan macht das soweit ich sehen konnte nicht explizit im Modul, das wird in DevIo gemacht) der USB/Seriell Chip am Arduino macht über sein DTR Pin ein Reset Signal an den Atmel und das wars dann mit den "Offline Impulsen".

Es hängt davon ab was Du einsetzt, bei mir ist ein Widerstand von Reset nach Plus von 1 kOhm, wenn ich da 220 Ohm außen parallel schalte wird der Reset Impuls unterdrückt.  8)
Reset mit Taster geht dann immer noch, dabei fließt bloß ein bisschen mehr Strom  :)

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: BillyPbg am 14 Februar 2017, 16:46:30
...

ich habe jetzt die "Eigenheit" des Arduino nano ermittelt.
Das Reset Pin ist mit einem 1 kOhm Widerstand nach 5 Volt geführt und wird über einen Kondensator vom DTR Pin beim Initialisieren der seriellen Schnittstelle kurz nach Masse gezogen.
Das löst den Reset aus, da beim Neustart von FHEM auch die serielle Schnittstelle zurückgesetzt/initialisiert wird. ...

Mit einem zusätzlichen Widerstand von 220 Ohm von RST nach 5 Volt kann man den Reset über DTR verhindern,

...

Hallo Otto,

irre ich, wenn ich sage, die Daten bleiben bei einem "Shutdown Restart"-Manöver erhalten,
aber bei einem z. B. "Raspi"-Restart, bzw. einem "sudo /etc/init.d/fhem stop - status - start"-Manöver dagegen sind die Daten nach wie vor weg?

Hast Du mal das Verhalten getestet, wenn Du den NANO mit einer fremden, somit zusätzlichen, eigenen 5V-Quelle (stabilisiert: Pin27, bzw. extern 6-20V: Pin30) und natürlich dann auch den "RST" am besten mit diesen 5V (über 220 Ohm Widerstand) fütterst?

Würde mich echt interessieren, ob er dann seine "Gedächtnislücken" nach wie vor produziert? 

Gruß
BillyPbg

PS:
Für meinen Test habe ich in der ".pm"-Datei (Version 4.5) die Zeile 147 testweise deaktiviert...
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Thorsten Pferdekaemper am 14 Februar 2017, 16:51:32
Hast Du mal das Verhalten getestet, wenn Du den NANO mit einer fremden, somit zusätzlichen, eigenen 5V-Quelle (stabilisiert: Pin27, bzw. extern 6-20V: Pin30) und natürlich dann auch den "RST" am besten mit diesen 5V (über 220 Ohm Widerstand) fütterst?
Normalerweise macht man das mit einem 10uF Kondensator zwischen RST und GND. ...zumindest beim Uno.
Gruß,
   Thorsten
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 14 Februar 2017, 20:18:34
Hi,

also nano an eigener Spannungsversorgung (aktiver Hub) und RST "abgeklemmt" - die Daten bleiben erhalten. Arducounter neuste Version, neuster Flash. Erkennbar am Dialog in meinem Post weiter oben vom 08 Februar 2017, 14:51:55.
->  ... count 296 ...

Gerade nochmal probiert, auch ein reboot vom Raspberry ohne aktiven Hub also einfach am USB wird überlebt.

@ Thorsten wie immer viele Wege :) Widerstand ist kleiner  als Elko ;)

P.S. gerade noch festgestellt: die 10 µ sind stabiler als der 220 Ohm.  :o Der Widerstand ist offenbar die Grenze, wenn man das damit machen will muss man vielleicht besser 100 Ohm nehmen

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Thorsten Pferdekaemper am 14 Februar 2017, 20:42:12
@ Thorsten wie immer viele Wege :) Widerstand ist kleiner  als Elko ;)
Der Elko spart Strom...
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 14 Februar 2017, 22:01:35
Der Elko spart Strom...
Naja das wird jetzt sehr philosophisch und OT aber der Widerstand zieht ja bloß den Eingang der schon auf Plus gezogen ist noch etwas fester nach Plus. Statisch fließt da gar nix.
Dynamisch gesehen muss der Elko auch immer mal geladen werden. :)
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Naiszen am 15 Februar 2017, 02:31:15
Ich besorg mir erstmal einfach ein USB Hub, mit einem Starken Netzteil, und klemme da gleich den Raspberry Pi mit an, dann sollte das in die richtige Richtung gehen....

Jetzt kommt mir da aber noch eine Frage: Ist es auch möglich, den Zähler über LAN bzw. lan an zu sprechen? bzw. was muss man an einem Arduino nano noch alles anklemmen?

Danke schon mal für die Antworten
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 15 Februar 2017, 09:03:03
Jetzt kommt mir da aber noch eine Frage: Ist es auch möglich, den Zähler über LAN bzw. lan an zu sprechen? bzw. was muss man an einem Arduino nano noch alles anklemmen?
Arducounter macht es meines Wissen nur "seriell" ob das dann auch mit irgendwelchen ser2net socat oder sonstwie Umleitungen geht, keine Ahnung.

Für den ESP8266 gibt es im ESPEasy ja auch einen Counter, ich denke damit geht das auch. Da hättest Du wlan.

Beschalten musst Du für Arducounter nix, so hab ich das gemacht ->http://heinz-otto.blogspot.de/2016/10/mein-erstes-arduino-projekt.html

Gruß Otto

Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 18 Februar 2017, 18:52:27
Hallo,

ich habe nochmal einen Bug im ArduCounter-Modul gefixt und das Logging etwas optimiert.
@Otto: das mit dem Flashen sollte jetzt auch funktionieren.
Wenn bei Euch auch noch alles funktioniert, checke ich die neue Version ein.

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 19 Februar 2017, 18:48:10
Hallo Stefan,

das Flashen klappt jetzt bei "leerem" Arduino nano, was mich jetzt nur irritiert: Auch wenn gar keine Firmware drauf ist steht das Modul auf openend.

Ansonsten scheint alles zu laufen.

Danke!

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: BillyPbg am 20 Februar 2017, 10:19:12
Normalerweise macht man das mit einem 10uF Kondensator zwischen RST und GND. ...zumindest beim Uno.
Gruß,
   Thorsten

Hallo Thorsten,
hallo Otto,

zur allgemeinen Info für die asiatische "NANO 3.0"-Gemeinde:

Nachdem ich nach Otto's Anleitung, mit Widerständen (220 Ohm, oder auch 120 Ohm, wie in anderen Gockel-Ergebnissen empfohlen, auch unter zu Hilfenahme von Potis) meine China-Direkt "Nano's 3.0" (anstelle mit FTDI, mit CH340 bestückt, siehe Anlage) nicht annähernd - gar zuverlässig - zähmen konnte, testete ich die "10µF ElKo"- Variante von Thorsten und siehe da, die Dinger schnurren wie gewünscht - ohne "Alzheimer"...

Gruß
BillyPbg

Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 20 Februar 2017, 10:33:20
Hallo Thorsten,
hallo Otto,

zur allgemeinen Info für die asiatische "NANO 3.0"-Gemeinde:

Nachdem ich nach Otto's Anleitung, mit Widerständen (220 Ohm, oder auch 120 Ohm, wie in anderen Gockel-Ergebnissen empfohlen, auch unter zu Hilfenahme von Potis) meine China-Direkt "Nano's 3.0" (anstelle mit FTDI, mit CH340 bestückt, siehe Anlage) nicht annähernd - gar zuverlässig - zähmen konnte, testete ich die "10µF ElKo"- Variante von Thorsten und siehe da, die Dinger schnurren wie gewünscht - ohne "Alzheimer"...

Gruß
BillyPbg
Moin,
ich muss auch zugeben, Thorstens Variante ist viel zuverlässiger! Mir tat der kleine Taster leid, der jetzt einen kurzen Kurzschluss des Elkos ertragen muss.

Mit dieser Maßnahme geht dann natürlich unbeaufsichtigtes Flashen  nicht mehr (irgendwas ist ja immer   :P)
Vorgehen: set AC flash dann den RST Taster kurz drücken.

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: BillyPbg am 20 Februar 2017, 10:39:00
...
ich habe nochmal einen Bug im ArduCounter-Modul gefixt und das Logging etwas optimiert.
@Otto: das mit dem Flashen sollte jetzt auch funktionieren.
Wenn bei Euch auch noch alles funktioniert, checke ich die neue Version ein.
...

Hallo Stefan,

bis dato keine Anomalien feststellbar.

Kleine Anregung - Idee am Rande:

Attribut "FlashAuto:0:1"
Wenn Du eh' eine Versionsprüfung eingebaut hast, könntest Du sie doch für diejenigen, die keine abgewandelte ".ino/.hex"-Datei Variante im Einsatz haben, automatisiert gemäß Anweisung von Attribut "flashCommand" flashen lassen (->"1"), und für die Anderen eben nicht (->"0")...

Gruß
BillyPbg

Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 22 Februar 2017, 19:33:36
Hallo,

ich habe die neue Version eingecheckt.
Der Status "opened" wird übrigens von DevIo gesetzt sobald die Schnittstelle geöffnet wurde.

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: BillyPbg am 16 März 2017, 14:53:02
Hallo Stefan,

kannst Du Dir auf folgende Meldungen einen Reim machen ?

Nach jedem Neustart finden sich genau einmal folgende zwei Warnmeldungen:
-> 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at fhem.pl line 4147. (z.B. 11:48:53.292 Uhr)
-> 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at fhem.pl line 4147. (z.B. 11:48:53.294 Uhr)

HARDWARE::
Arduino Nano 3.0, Clone mit 10µF Elko (Antwort #130, zwischen RST und GND )

LOG-Auszug:
...
2017.03.16 11:48:38.334 3: TEST: sending h(ello) to device to ask for version
2017.03.16 11:48:38.335 5: SW: h
2017.03.16 11:48:53.290 4: TEST: Pin 3 (pin3) count 10923 (diff 1) in 25.642s, result 0.140
2017.03.16 11:48:53.290 5: TEST: interval 11:48:27 until 11:48:53
2017.03.16 11:48:53.290 5: TEST: readingStartTime3 specified: setting reading timestamp to 11:48:27
2017.03.16 11:48:53.291 5: TEST: set readings power3 to 0.140, timeDiff3 to 25642 and countDiff3 to 1
2017.03.16 11:48:53.292 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at fhem.pl line 4147.
2017.03.16 11:48:53.293 1: stacktrace:
2017.03.16 11:48:53.293 1: main::__ANON__ called by fhem.pl (4147)
2017.03.16 11:48:53.293 1: main::readingsEndUpdate called by ./FHEM/98_ArduCounter.pm (652)
2017.03.16 11:48:53.294 1: main::ArduCounter_Parse called by ./FHEM/98_ArduCounter.pm (756)
2017.03.16 11:48:53.294 1: main::ArduCounter_Read called by fhem.pl (3314)
2017.03.16 11:48:53.294 1: main::CallFn called by fhem.pl (676)
2017.03.16 11:48:53.294 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at fhem.pl line 4147.
2017.03.16 11:48:53.295 1: stacktrace:
2017.03.16 11:48:53.295 1: main::__ANON__ called by fhem.pl (4147)
2017.03.16 11:48:53.295 1: main::readingsEndUpdate called by ./FHEM/98_ArduCounter.pm (652)
2017.03.16 11:48:53.295 1: main::ArduCounter_Parse called by ./FHEM/98_ArduCounter.pm (756)
2017.03.16 11:48:53.296 1: main::ArduCounter_Read called by fhem.pl (3314)
2017.03.16 11:48:53.296 1: main::CallFn called by fhem.pl (676)
2017.03.16 11:48:53.403 5: TEST: Initialize clock offset to 1489486007.69165
2017.03.16 11:48:53.404 5: TEST: Device Time 175325.598, Drift 0.000s in 0.000s
2017.03.16 11:48:53.404 3: TEST: device is still counting
2017.03.16 11:48:53.405 3: TEST: device replied to hello, V1.8
2017.03.16 11:48:53.406 4: TEST: device reported firmware 1.8
2017.03.16 11:48:53.406 3: TEST: ConfigureDevice calls Attr with pinD3 falling pullup 89
2017.03.16 11:48:53.407 5: SW: 3,2,1,89a
2017.03.16 11:48:53.410 3: TEST: ConfigureDevice calls Attr with interval 15 1200 5 1
2017.03.16 11:48:53.410 5: SW: 15,1200,5,1i
...

RAW-Definition:
defmod TEST ArduCounter /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2.2:1.0-port0@38400
attr TEST userattr pinD3 readingStartTime3 verboseReadings3
attr TEST flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
attr TEST icon measure_power
attr TEST interval 15 1200 5 1
attr TEST pinD3 falling pullup 89
attr TEST readingStartTime3 1
attr TEST room S0
attr TEST sortby 02
attr TEST stateFormat ZÄHLER: pin3, Verbrauch: power3 W (reject3Result)
attr TEST userReadings reject3Summe:reject3.* monotonic {ReadingsNum ($name, "reject3", 0)},\
reject3Result:reject3.* {"FEHLER: ".ReadingsNum ($name, "reject3", 0)." von ".ReadingsNum ($name, "reject3Summe", 0)}
attr TEST verbose 3
attr TEST verboseReadings3 1

setstate TEST ZÄHLER: 11567, Verbrauch: 0.260 W (FEHLER: 0 von 756)
setstate TEST 2017-03-16 14:47:34 countDiff3 2
setstate TEST 2017-03-16 14:47:34 lastMsg3 R3 C11567 D2 T27696 N186155598 X0 F13873 L27696 A90
setstate TEST 2017-03-16 14:47:34 pin3 11567
setstate TEST 2017-03-16 14:47:06 power3 0.260
setstate TEST 2017-03-16 14:47:34 reject3 0
setstate TEST 2017-03-16 14:47:34 reject3Result FEHLER: 0 von 756
setstate TEST 2017-03-16 14:47:34 reject3Summe 756
setstate TEST 2017-03-16 11:48:04 state opened
setstate TEST 2017-03-16 14:47:34 timeDiff3 27696


VG.
BillyPbg
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 16 März 2017, 21:32:06
Hallo,

Was steht denn in der Zeile in Deiner fhem.pl?
Ich habe vermutlich nicht die gleiche Version und kann es daher nicht prüfen.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: BillyPbg am 17 März 2017, 10:44:56
Hallo Stefan,

Version:
fhem.pl:13700/2017-03-14 (Siehe Anhang)

VG.
BillyPbg
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 18 März 2017, 23:20:00
In 4147 wird die Addition für monotonic gemacht ...
Die Meldung kommt also von Deinem Userreading.

Gruß
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: BillyPbg am 20 März 2017, 20:44:02

Hallo Stefan,

wenn kein Fehler seitens des Arduino gemeldet wird, schickt line 580 'Nichts' rüber, was zu meiner Fehlermeldung beim 'Monotonic' führt:
Ich hab's nun für mich wie folgt gelöst:
          'reject3Summe:reject3:.* monotonic {my $a=ReadingsVal ($name, "reject3", 0); $a =~ /([\d])/g?$a:0}'

... eleganter aber wäre wohl, wenn Du in Line 580 die NULL für diesen Fall setzen könntest...  ;)
         'my $reject = ($6 ? substr($6, 2) : 0);'

VG.
BillyPbg
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 20 März 2017, 23:12:01
Wenn der Arduino keine Rejects hat, sollte er X0 melden.
Ich frage mich woher Meldungen ohne X kommen. Evt. sind das Reste im seriellen Puffer - zumindest bekomme ich nach dem Reset des Arduino gelegentlich erst mal eine Müll-Zeile.
In so einem Fall wäre es aber vermutlich sinnvoller, gar kein Reading zu setzen statt einer 0.
Kannst Du den Fall mal mit verbose 5 protokollieren, so dass ich die Kommunikation zwischen Ardiuno und Fhem sehe wenn Dein Problem auftritt?

Gruss / Thanx
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: BillyPbg am 21 März 2017, 03:37:52
... Wird gemacht...
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: BillyPbg am 21 März 2017, 15:08:25
Wenn der Arduino keine Rejects hat, sollte er X0 melden.
Ich frage mich woher Meldungen ohne X kommen. Evt. sind das Reste im seriellen Puffer - zumindest bekomme ich nach dem Reset des Arduino gelegentlich erst mal eine Müll-Zeile.
In so einem Fall wäre es aber vermutlich sinnvoller, gar kein Reading zu setzen statt einer 0.
Kannst Du den Fall mal mit verbose 5 protokollieren, so dass ich die Kommunikation zwischen Ardiuno und Fhem sehe wenn Dein Problem auftritt?
...

LOG-Auszüge, jeweils in der Restart-Phase:
...
2017.03.21 05:59:23.922 5: TEST: Notify called with events: INITIALIZED DEFINED Melde_Anrufer_A, open device and set timer to send hello to device
2017.03.21 05:59:23.923 3: Opening TEST device /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2.2:1.0-port0
2017.03.21 05:59:23.931 3: Setting TEST serial parameters to 38400,8,N,1
2017.03.21 05:59:23.947 3: TEST device opened
2017.03.21 05:59:24.846 0: Featurelevel: 5.8
2017.03.21 05:59:24.846 0: Server started with 759 defined entities (fhem.pl:13733/2017-03-19 perl:5.020002 os:linux user:fhem pid:9092)
...
2017.03.21 05:59:55.002 3: TEST: sending h(ello) to device to ask for version
2017.03.21 05:59:55.003 5: SW: h
...
2017.03.21 05:59:59.057 4: TEST: Pin 3 (pin3) count 46145 (diff 1) in 58.538s, result 0.061
2017.03.21 05:59:59.057 5: TEST: interval 05:59:00 until 05:59:59
2017.03.21 05:59:59.058 5: TEST: readingStartTime3 specified: setting reading timestamp to 05:59:00
2017.03.21 05:59:59.058 5: TEST: set readings power3 to 0.061, timeDiff3 to 58538 and countDiff3 to 1
2017.03.21 05:59:59.060 1: PERL WARNING: "" isn't numeric in numeric gt (>) at fhem.pl line 4147.
2017.03.21 05:59:59.161 5: TEST: Initialize clock offset to 1489485938.45901
2017.03.21 05:59:59.162 5: TEST: Device Time 586460.598, Drift 0.000s in 0.000s
2017.03.21 05:59:59.162 3: TEST: device is still counting
2017.03.21 05:59:59.163 3: TEST: device replied to hello, V1.8
2017.03.21 05:59:59.163 4: TEST: device reported firmware 1.8
2017.03.21 05:59:59.164 3: TEST: ConfigureDevice calls Attr with interval 15 1200 5 1
2017.03.21 05:59:59.164 5: SW: 15,1200,5,1i

2017.03.21 05:59:59.166 3: TEST: ConfigureDevice calls Attr with pinD3 falling pullup 89
2017.03.21 05:59:59.166 5: SW: 3,2,1,89a

...
2017.03.21 06:00:04.414 3: TEST: device: intervals set to 15 1200 5 1
2017.03.21 06:00:04.414 3: TEST: device: defined pin 3 PCInt pin 19, iMode change, min len 89 ms falling, count 46147 (+1) in 49050 ms Rej 0
2017.03.21 06:00:04.415 3: TEST: device:   first at 37299, last at 37299, avg len 89
2017.03.21 06:00:04.415 4: TEST: Pin 3 (pin3) count 46147 (diff 1) in 49.050s, reject 0, result 0.073
2017.03.21 06:00:04.416 5: TEST: interval 05:59:15 until 06:00:04, First at 49050
2017.03.21 06:00:04.416 5: TEST: readingStartTime3 specified: setting reading timestamp to 05:59:15
2017.03.21 06:00:04.416 5: TEST: set readings power3 to 0.073, timeDiff3 to 49050 and countDiff3 to 1
2017.03.21 06:00:04.519 5: TEST: Device Time 586565.598, Drift -99.642s in 5.358s, -1859.51%
...

...
2017.03.21 09:36:30.216 5: TEST: Notify called with events: INITIALIZED DEFINED Melde_Anrufer_A, open device and set timer to send hello to device
2017.03.21 09:36:30.216 3: Opening TEST device /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2.2:1.0-port0
2017.03.21 09:36:30.224 3: Setting TEST serial parameters to 38400,8,N,1
2017.03.21 09:36:30.241 3: TEST device opened
2017.03.21 09:36:31.144 0: Featurelevel: 5.8
2017.03.21 09:36:31.144 0: Server started with 759 defined entities (fhem.pl:13733/2017-03-19 perl:5.020002 os:linux user:fhem pid:4649)
2017.03.21 09:37:02.669 3: TEST: sending h(ello) to device to ask for version
2017.03.21 09:37:02.669 5: SW: h

2017.03.21 09:37:03.942 4: TEST: Pin 3 (pin3) count 46724 (diff 1) in 15.085s, result 0.239
2017.03.21 09:37:03.942 5: TEST: interval 09:36:48 until 09:37:03
2017.03.21 09:37:03.942 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:36:48
2017.03.21 09:37:03.943 5: TEST: set readings power3 to 0.239, timeDiff3 to 15085 and countDiff3 to 1
2017.03.21 09:37:03.945 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at fhem.pl line 4147.
2017.03.21 09:37:04.050 5: TEST: Initialize clock offset to 1489485928.34374
2017.03.21 09:37:04.051 5: TEST: Device Time 599495.598, Drift 0.000s in 0.000s
2017.03.21 09:37:04.051 3: TEST: device is still counting
2017.03.21 09:37:04.053 4: TEST: Pin 3 (pin3) count 46730 (diff 1) in 15.436s, reject 0, result 0.233
2017.03.21 09:37:04.053 5: TEST: interval 09:36:48 until 09:37:04, First at 15436
2017.03.21 09:37:04.053 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:36:48
2017.03.21 09:37:04.053 5: TEST: set readings power3 to 0.233, timeDiff3 to 15436 and countDiff3 to 1
2017.03.21 09:37:04.157 5: TEST: Device Time 599585.598, Drift -89.889s in 0.111s, -80997.06%
2017.03.21 09:37:04.158 3: TEST: device is still counting
2017.03.21 09:37:04.159 3: TEST: device replied to hello, V1.8
2017.03.21 09:37:04.159 4: TEST: device reported firmware 1.8
2017.03.21 09:37:04.160 3: TEST: ConfigureDevice calls Attr with interval 15 1200 5 1
2017.03.21 09:37:04.160 5: SW: 15,1200,5,1i

2017.03.21 09:37:04.162 3: TEST: ConfigureDevice calls Attr with pinD3 falling pullup 89
2017.03.21 09:37:04.162 5: SW: 3,2,1,89a

2017.03.21 09:37:09.438 3: TEST: device: intervals set to 15 1200 5 1
2017.03.21 09:37:09.438 3: TEST: device: defined pin 3 PCInt pin 19, iMode change, min len 89 ms falling, count 46730 (+0) in 7074 ms Rej 0
2017.03.21 09:37:16.449 4: TEST: Pin 3 (pin3) count 46731 (diff 1) in 15.467s, reject 0, result 0.233
2017.03.21 09:37:16.450 5: TEST: interval 09:37:00 until 09:37:16, First at 15467
2017.03.21 09:37:16.450 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:37:00
2017.03.21 09:37:16.450 5: TEST: set readings power3 to 0.233, timeDiff3 to 15467 and countDiff3 to 1
2017.03.21 09:37:16.563 5: TEST: Device Time 599600.598, Drift -92.493s in 12.507s, -739.51%
2017.03.21 09:37:33.155 4: TEST: Pin 3 (pin3) count 46732 (diff 1) in 15.604s, reject 0, result 0.231
2017.03.21 09:37:33.156 5: TEST: interval 09:37:17 until 09:37:33, First at 15604
2017.03.21 09:37:33.156 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:37:17
2017.03.21 09:37:33.156 5: TEST: set readings power3 to 0.231, timeDiff3 to 15604 and countDiff3 to 1
2017.03.21 09:37:33.261 5: TEST: Device Time 599615.598, Drift -90.786s in 29.214s, -310.77%
2017.03.21 09:38:16.869 4: TEST: Pin 3 (pin3) count 46733 (diff 1) in 15.684s, reject 0, result 0.230
2017.03.21 09:38:16.869 5: TEST: interval 09:38:01 until 09:38:16, First at 15684
2017.03.21 09:38:16.870 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:38:01
2017.03.21 09:38:16.870 5: TEST: set readings power3 to 0.230, timeDiff3 to 15684 and countDiff3 to 1
2017.03.21 09:38:16.975 5: TEST: Device Time 599630.598, Drift -62.073s in 72.927s, -85.12%
2017.03.21 09:38:16.976 4: TEST: Pin 3 (pin3) count 46734 (diff 1) in 15.770s, reject 0, result 0.228
2017.03.21 09:38:16.977 5: TEST: interval 09:38:01 until 09:38:16, First at 15770
2017.03.21 09:38:16.977 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:38:01
2017.03.21 09:38:16.977 5: TEST: set readings power3 to 0.228, timeDiff3 to 15770 and countDiff3 to 1
2017.03.21 09:38:17.083 5: TEST: Device Time 599645.598, Drift -76.965s in 73.035s, -105.38%
2017.03.21 09:38:30.269 4: TEST: Pin 3 (pin3) count 46735 (diff 1) in 15.816s, reject 0, result 0.228
2017.03.21 09:38:30.269 5: TEST: interval 09:38:14 until 09:38:30, First at 15816
2017.03.21 09:38:30.270 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:38:14
2017.03.21 09:38:30.270 5: TEST: set readings power3 to 0.228, timeDiff3 to 15816 and countDiff3 to 1
2017.03.21 09:38:30.374 5: TEST: Device Time 599675.598, Drift -93.673s in 86.327s, -108.51%
2017.03.21 09:38:45.090 4: TEST: Pin 3 (pin3) count 46736 (diff 1) in 15.828s, reject 0, result 0.227
2017.03.21 09:38:45.090 5: TEST: interval 09:38:29 until 09:38:45, First at 15828
2017.03.21 09:38:45.091 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:38:29
2017.03.21 09:38:45.091 5: TEST: set readings power3 to 0.227, timeDiff3 to 15828 and countDiff3 to 1
2017.03.21 09:38:45.205 5: TEST: Device Time 599690.598, Drift -93.852s in 101.148s, -92.79%
2017.03.21 09:39:00.145 4: TEST: Pin 3 (pin3) count 46737 (diff 1) in 15.827s, reject 0, result 0.227
2017.03.21 09:39:00.145 5: TEST: interval 09:38:44 until 09:39:00, First at 15827
2017.03.21 09:39:00.146 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:38:44
2017.03.21 09:39:00.146 5: TEST: set readings power3 to 0.227, timeDiff3 to 15827 and countDiff3 to 1
2017.03.21 09:39:00.257 5: TEST: Device Time 599705.598, Drift -93.797s in 116.203s, -80.72%
2017.03.21 09:39:15.085 4: TEST: Pin 3 (pin3) count 46738 (diff 1) in 15.669s, reject 0, result 0.230
2017.03.21 09:39:15.086 5: TEST: interval 09:38:59 until 09:39:15, First at 15669
2017.03.21 09:39:15.086 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:38:59
2017.03.21 09:39:15.087 5: TEST: set readings power3 to 0.230, timeDiff3 to 15669 and countDiff3 to 1
2017.03.21 09:39:15.199 5: TEST: Device Time 599720.598, Drift -93.856s in 131.144s, -71.57%
2017.03.21 09:39:30.082 4: TEST: Pin 3 (pin3) count 46739 (diff 1) in 15.524s, reject 0, result 0.232
2017.03.21 09:39:30.083 5: TEST: interval 09:39:14 until 09:39:30, First at 15524
2017.03.21 09:39:30.083 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:39:14
2017.03.21 09:39:30.084 5: TEST: set readings power3 to 0.232, timeDiff3 to 15524 and countDiff3 to 1
2017.03.21 09:39:30.204 5: TEST: Device Time 599735.598, Drift -93.859s in 146.141s, -64.23%
2017.03.21 09:39:45.082 4: TEST: Pin 3 (pin3) count 46740 (diff 1) in 15.123s, reject 0, result 0.238
2017.03.21 09:39:45.083 5: TEST: interval 09:39:29 until 09:39:45, First at 15123
2017.03.21 09:39:45.083 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:39:29
2017.03.21 09:39:45.083 5: TEST: set readings power3 to 0.238, timeDiff3 to 15123 and countDiff3 to 1
2017.03.21 09:39:45.221 5: TEST: Device Time 599750.598, Drift -93.860s in 161.140s, -58.25%
2017.03.21 09:40:00.078 4: TEST: Pin 3 (pin3) count 46741 (diff 1) in 15.149s, reject 0, result 0.238
2017.03.21 09:40:00.079 5: TEST: interval 09:39:44 until 09:40:00, First at 15149
2017.03.21 09:40:00.079 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:39:44
2017.03.21 09:40:00.080 5: TEST: set readings power3 to 0.238, timeDiff3 to 15149 and countDiff3 to 1
2017.03.21 09:40:00.210 5: TEST: Device Time 599765.598, Drift -93.863s in 176.137s, -53.29%
2017.03.21 09:40:15.077 4: TEST: Pin 3 (pin3) count 46742 (diff 1) in 15.146s, reject 0, result 0.238
2017.03.21 09:40:15.078 5: TEST: interval 09:39:59 until 09:40:15, First at 15146
2017.03.21 09:40:15.079 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:39:59
2017.03.21 09:40:15.079 5: TEST: set readings power3 to 0.238, timeDiff3 to 15146 and countDiff3 to 1
2017.03.21 09:40:15.191 5: TEST: Device Time 599780.598, Drift -93.864s in 191.136s, -49.11%
2017.03.21 09:40:30.074 4: TEST: Pin 3 (pin3) count 46743 (diff 1) in 15.209s, reject 0, result 0.237
2017.03.21 09:40:30.074 5: TEST: interval 09:40:14 until 09:40:30, First at 15209
2017.03.21 09:40:30.075 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:40:14
2017.03.21 09:40:30.075 5: TEST: set readings power3 to 0.237, timeDiff3 to 15209 and countDiff3 to 1
2017.03.21 09:40:30.187 5: TEST: Device Time 599795.598, Drift -93.868s in 206.132s, -45.54%
2017.03.21 09:40:45.072 4: TEST: Pin 3 (pin3) count 46744 (diff 1) in 15.239s, reject 0, result 0.236
2017.03.21 09:40:45.072 5: TEST: interval 09:40:29 until 09:40:45, First at 15239
2017.03.21 09:40:45.073 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:40:29
2017.03.21 09:40:45.073 5: TEST: set readings power3 to 0.236, timeDiff3 to 15239 and countDiff3 to 1
2017.03.21 09:40:45.179 5: TEST: Device Time 599810.598, Drift -93.870s in 221.130s, -42.45%
2017.03.21 09:41:00.069 4: TEST: Pin 3 (pin3) count 46745 (diff 1) in 15.167s, reject 0, result 0.237
2017.03.21 09:41:00.070 5: TEST: interval 09:40:44 until 09:41:00, First at 15167
2017.03.21 09:41:00.070 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:40:44
2017.03.21 09:41:00.071 5: TEST: set readings power3 to 0.237, timeDiff3 to 15167 and countDiff3 to 1
2017.03.21 09:41:00.181 5: TEST: Device Time 599825.598, Drift -93.873s in 236.127s, -39.76%
2017.03.21 09:41:15.066 4: TEST: Pin 3 (pin3) count 46746 (diff 1) in 15.226s, reject 0, result 0.236
2017.03.21 09:41:15.067 5: TEST: interval 09:40:59 until 09:41:15, First at 15226
2017.03.21 09:41:15.067 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:40:59
2017.03.21 09:41:15.068 5: TEST: set readings power3 to 0.236, timeDiff3 to 15226 and countDiff3 to 1
2017.03.21 09:41:15.178 5: TEST: Device Time 599840.598, Drift -93.875s in 251.125s, -37.38%
2017.03.21 09:41:30.068 4: TEST: Pin 3 (pin3) count 46747 (diff 1) in 15.211s, reject 0, result 0.237
2017.03.21 09:41:30.069 5: TEST: interval 09:41:14 until 09:41:30, First at 15211
2017.03.21 09:41:30.069 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:41:14
2017.03.21 09:41:30.069 5: TEST: set readings power3 to 0.237, timeDiff3 to 15211 and countDiff3 to 1
2017.03.21 09:41:30.174 5: TEST: Device Time 599855.598, Drift -93.873s in 266.127s, -35.27%
2017.03.21 09:41:45.061 4: TEST: Pin 3 (pin3) count 46748 (diff 1) in 15.245s, reject 0, result 0.236
2017.03.21 09:41:45.062 5: TEST: interval 09:41:29 until 09:41:45, First at 15245
2017.03.21 09:41:45.062 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:41:29
2017.03.21 09:41:45.062 5: TEST: set readings power3 to 0.236, timeDiff3 to 15245 and countDiff3 to 1
2017.03.21 09:41:45.166 5: TEST: Device Time 599870.598, Drift -93.880s in 281.120s, -33.40%
2017.03.21 09:42:00.060 4: TEST: Pin 3 (pin3) count 46749 (diff 1) in 15.058s, reject 0, result 0.239
2017.03.21 09:42:00.061 5: TEST: interval 09:41:45 until 09:42:00, First at 15058
2017.03.21 09:42:00.061 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:41:45
2017.03.21 09:42:00.062 5: TEST: set readings power3 to 0.239, timeDiff3 to 15058 and countDiff3 to 1
2017.03.21 09:42:00.172 5: TEST: Device Time 599885.598, Drift -93.881s in 296.119s, -31.70%
2017.03.21 09:42:15.095 4: TEST: Pin 3 (pin3) count 46750 (diff 1) in 15.057s, reject 0, result 0.239
2017.03.21 09:42:15.096 5: TEST: interval 09:42:00 until 09:42:15, First at 15057
2017.03.21 09:42:15.096 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:42:00
2017.03.21 09:42:15.097 5: TEST: set readings power3 to 0.239, timeDiff3 to 15057 and countDiff3 to 1
2017.03.21 09:42:15.222 5: TEST: Device Time 599900.598, Drift -93.847s in 311.153s, -30.16%
2017.03.21 09:42:30.056 4: TEST: Pin 3 (pin3) count 46751 (diff 1) in 15.105s, reject 0, result 0.238
2017.03.21 09:42:30.056 5: TEST: interval 09:42:14 until 09:42:30, First at 15105
2017.03.21 09:42:30.056 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:42:14
2017.03.21 09:42:30.057 5: TEST: set readings power3 to 0.238, timeDiff3 to 15105 and countDiff3 to 1
2017.03.21 09:42:30.183 5: TEST: Device Time 599915.598, Drift -93.886s in 326.114s, -28.79%
2017.03.21 09:42:45.053 4: TEST: Pin 3 (pin3) count 46752 (diff 1) in 15.114s, reject 0, result 0.238
2017.03.21 09:42:45.054 5: TEST: interval 09:42:29 until 09:42:45, First at 15114
2017.03.21 09:42:45.054 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:42:29
2017.03.21 09:42:45.054 5: TEST: set readings power3 to 0.238, timeDiff3 to 15114 and countDiff3 to 1
2017.03.21 09:42:45.182 5: TEST: Device Time 599930.598, Drift -93.889s in 341.111s, -27.52%
2017.03.21 09:43:00.051 4: TEST: Pin 3 (pin3) count 46753 (diff 1) in 15.228s, reject 0, result 0.236
2017.03.21 09:43:00.051 5: TEST: interval 09:42:44 until 09:43:00, First at 15228
2017.03.21 09:43:00.052 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:42:44
2017.03.21 09:43:00.052 5: TEST: set readings power3 to 0.236, timeDiff3 to 15228 and countDiff3 to 1
2017.03.21 09:43:00.157 5: TEST: Device Time 599945.598, Drift -93.891s in 356.109s, -26.37%
2017.03.21 09:43:15.048 4: TEST: Pin 3 (pin3) count 46754 (diff 1) in 15.263s, reject 0, result 0.236
2017.03.21 09:43:15.049 5: TEST: interval 09:42:59 until 09:43:15, First at 15263
2017.03.21 09:43:15.049 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:42:59
2017.03.21 09:43:15.050 5: TEST: set readings power3 to 0.236, timeDiff3 to 15263 and countDiff3 to 1
2017.03.21 09:43:15.160 5: TEST: Device Time 599960.598, Drift -93.893s in 371.107s, -25.30%
2017.03.21 09:43:30.046 4: TEST: Pin 3 (pin3) count 46755 (diff 1) in 15.295s, reject 0, result 0.235
2017.03.21 09:43:30.046 5: TEST: interval 09:43:14 until 09:43:30, First at 15295
2017.03.21 09:43:30.046 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:43:14
2017.03.21 09:43:30.047 5: TEST: set readings power3 to 0.235, timeDiff3 to 15295 and countDiff3 to 1
2017.03.21 09:43:30.158 5: TEST: Device Time 599975.598, Drift -93.896s in 386.104s, -24.32%
...

...
2017.03.21 09:52:10.159 5: TEST: Notify called with events: INITIALIZED DEFINED Melde_Anrufer_A, open device and set timer to send hello to device
2017.03.21 09:52:10.184 3: TEST device opened
2017.03.21 09:52:11.210 0: Featurelevel: 5.8
2017.03.21 09:52:11.211 0: Server started with 759 defined entities (fhem.pl:13733/2017-03-19 perl:5.020002 os:linux user:fhem pid:6421)
---
2017.03.21 09:52:16.497 4: TEST: Pin 3 (pin3) count 46780 (diff 1) in 24.998s, result 0.144
2017.03.21 09:52:16.497 5: TEST: interval 09:51:51 until 09:52:16
2017.03.21 09:52:16.498 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:51:51
2017.03.21 09:52:16.499 5: TEST: set readings power3 to 0.144, timeDiff3 to 24998 and countDiff3 to 1
2017.03.21 09:52:16.502 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at fhem.pl line 4147.
2017.03.21 09:52:16.637 5: TEST: Initialize clock offset to 1489485895.89887
2017.03.21 09:52:16.637 5: TEST: Device Time 600440.598, Drift 0.000s in 0.000s
2017.03.21 09:52:16.638 3: TEST: device is still counting
2017.03.21 09:52:16.638 3: TEST: sending h(ello) to device to ask for version
2017.03.21 09:52:16.638 5: SW: h

...
2017.03.21 09:52:44.798 3: TEST: device didn't reply to h(ello). Is the right sketch flashed? Is speed set to 38400?
...
2017.03.21 09:52:49.934 3: TEST: device replied to hello, V1.8
2017.03.21 09:52:49.934 4: TEST: device reported firmware 1.8
2017.03.21 09:52:49.934 3: TEST: ConfigureDevice calls Attr with interval 15 1200 5 1
2017.03.21 09:52:49.935 5: SW: 15,1200,5,1i

2017.03.21 09:52:49.937 3: TEST: ConfigureDevice calls Attr with pinD3 falling pullup 89
2017.03.21 09:52:49.937 5: SW: 3,2,1,89a

2017.03.21 09:52:49.943 4: TEST: Pin 3 (pin3) count 46783 (diff 1) in 26.369s, reject 0, result 0.137
2017.03.21 09:52:49.943 5: TEST: interval 09:52:23 until 09:52:49, First at 26369
2017.03.21 09:52:49.943 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:52:23
2017.03.21 09:52:49.943 5: TEST: set readings power3 to 0.137, timeDiff3 to 26369 and countDiff3 to 1
2017.03.21 09:52:50.050 5: TEST: Device Time 600515.598, Drift -41.554s in 33.446s, -124.24%
...
2017.03.21 09:52:50.524 3: TEST: device: intervals set to 15 1200 5 1
2017.03.21 09:52:50.524 3: TEST: device: defined pin 3 PCInt pin 19, iMode change, min len 89 ms falling, count 46783 (+0) in 22827 ms Rej 0
...
2017.03.21 09:53:03.191 4: TEST: Pin 3 (pin3) count 46784 (diff 1) in 26.360s, reject 0, result 0.137
2017.03.21 09:53:03.192 5: TEST: interval 09:52:36 until 09:53:03, First at 26360
2017.03.21 09:53:03.192 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:52:36
2017.03.21 09:53:03.192 5: TEST: set readings power3 to 0.137, timeDiff3 to 26360 and countDiff3 to 1
2017.03.21 09:53:03.304 5: TEST: Device Time 600545.598, Drift -58.306s in 46.694s, -124.87%
...
2017.03.21 09:54:03.108 4: TEST: Pin 3 (pin3) count 46785 (diff 1) in 30.463s, reject 0, result 0.118
2017.03.21 09:54:03.108 5: TEST: interval 09:53:32 until 09:54:03, First at 30463
2017.03.21 09:54:03.109 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:53:32
2017.03.21 09:54:03.109 5: TEST: set readings power3 to 0.118, timeDiff3 to 30463 and countDiff3 to 1
2017.03.21 09:54:03.227 5: TEST: Device Time 600575.598, Drift -28.389s in 106.611s, -26.63%
2017.03.21 09:54:03.228 4: TEST: Pin 3 (pin3) count 46786 (diff 1) in 33.255s, reject 0, result 0.108
2017.03.21 09:54:03.228 5: TEST: interval 09:53:29 until 09:54:03, First at 33255
2017.03.21 09:54:03.229 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:53:29
2017.03.21 09:54:03.229 5: TEST: set readings power3 to 0.108, timeDiff3 to 33255 and countDiff3 to 1
2017.03.21 09:54:03.338 5: TEST: Device Time 600605.598, Drift -58.269s in 106.731s, -54.59%
...
2017.03.21 09:54:44.941 4: TEST: Pin 3 (pin3) count 46787 (diff 1) in 34.299s, reject 0, result 0.105
2017.03.21 09:54:44.942 5: TEST: interval 09:54:10 until 09:54:44, First at 34299
2017.03.21 09:54:44.942 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:54:10
2017.03.21 09:54:44.942 5: TEST: set readings power3 to 0.105, timeDiff3 to 34299 and countDiff3 to 1
2017.03.21 09:54:45.048 5: TEST: Device Time 600650.598, Drift -61.555s in 148.445s, -41.47%
2017.03.21 09:55:14.937 4: TEST: Pin 3 (pin3) count 46788 (diff 1) in 34.470s, reject 0, result 0.104
2017.03.21 09:55:14.937 5: TEST: interval 09:54:40 until 09:55:14, First at 34470
2017.03.21 09:55:14.938 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:54:40
2017.03.21 09:55:14.938 5: TEST: set readings power3 to 0.104, timeDiff3 to 34470 and countDiff3 to 1
2017.03.21 09:55:15.044 5: TEST: Device Time 600680.598, Drift -61.560s in 178.440s, -34.50%
2017.03.21 09:55:44.942 4: TEST: Pin 3 (pin3) count 46789 (diff 1) in 31.259s, reject 0, result 0.115
2017.03.21 09:55:44.943 5: TEST: interval 09:55:13 until 09:55:44, First at 31259
2017.03.21 09:55:44.943 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:55:13
2017.03.21 09:55:44.943 5: TEST: set readings power3 to 0.115, timeDiff3 to 31259 and countDiff3 to 1
2017.03.21 09:55:45.059 5: TEST: Device Time 600710.598, Drift -61.555s in 208.445s, -29.53%
2017.03.21 09:56:14.927 4: TEST: Pin 3 (pin3) count 46790 (diff 1) in 30.826s, reject 0, result 0.117
2017.03.21 09:56:14.927 5: TEST: interval 09:55:44 until 09:56:14, First at 30826
2017.03.21 09:56:14.928 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:55:44
2017.03.21 09:56:14.928 5: TEST: set readings power3 to 0.117, timeDiff3 to 30826 and countDiff3 to 1
2017.03.21 09:56:15.033 5: TEST: Device Time 600740.598, Drift -61.570s in 238.430s, -25.82%
2017.03.21 09:56:44.923 4: TEST: Pin 3 (pin3) count 46791 (diff 1) in 30.922s, reject 0, result 0.116
2017.03.21 09:56:44.924 5: TEST: interval 09:56:14 until 09:56:44, First at 30922
2017.03.21 09:56:44.924 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:56:14
2017.03.21 09:56:44.924 5: TEST: set readings power3 to 0.116, timeDiff3 to 30922 and countDiff3 to 1
2017.03.21 09:56:45.028 5: TEST: Device Time 600770.598, Drift -61.574s in 268.426s, -22.94%
2017.03.21 09:57:15.330 4: TEST: Pin 3 (pin3) count 46792 (diff 1) in 30.977s, reject 0, result 0.116
2017.03.21 09:57:15.330 5: TEST: interval 09:56:44 until 09:57:15, First at 30977
2017.03.21 09:57:15.331 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:56:44
2017.03.21 09:57:15.331 5: TEST: set readings power3 to 0.116, timeDiff3 to 30977 and countDiff3 to 1
2017.03.21 09:57:15.459 5: TEST: Device Time 600800.598, Drift -61.168s in 298.832s, -20.47%
2017.03.21 09:57:45.772 4: TEST: Pin 3 (pin3) count 46793 (diff 1) in 30.706s, reject 0, result 0.117
2017.03.21 09:57:45.773 5: TEST: interval 09:57:15 until 09:57:45, First at 30706
2017.03.21 09:57:45.773 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:57:15
2017.03.21 09:57:45.773 5: TEST: set readings power3 to 0.117, timeDiff3 to 30706 and countDiff3 to 1
2017.03.21 09:57:45.882 5: TEST: Device Time 600830.598, Drift -60.725s in 329.275s, -18.44%
2017.03.21 09:57:59.911 4: TEST: Pin 3 (pin3) count 46794 (diff 1) in 16.151s, reject 0, result 0.223
2017.03.21 09:57:59.912 5: TEST: interval 09:57:43 until 09:57:59, First at 16151
2017.03.21 09:57:59.913 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:57:43
2017.03.21 09:57:59.913 5: TEST: set readings power3 to 0.223, timeDiff3 to 16151 and countDiff3 to 1
2017.03.21 09:58:00.027 5: TEST: Device Time 600845.598, Drift -61.585s in 343.415s, -17.93%
2017.03.21 09:58:14.949 4: TEST: Pin 3 (pin3) count 46795 (diff 1) in 15.812s, reject 0, result 0.228
2017.03.21 09:58:14.950 5: TEST: interval 09:57:59 until 09:58:14, First at 15812
2017.03.21 09:58:14.950 5: TEST: readingStartTime3 specified: setting reading timestamp to 09:57:59
2017.03.21 09:58:14.950 5: TEST: set readings power3 to 0.228, timeDiff3 to 15812 and countDiff3 to 1
2017.03.21 09:58:15.060 5: TEST: Device Time 600860.598, Drift -61.548s in 358.452s, -17.17%
...

...
2017.03.21 10:32:38.290 5: TEST: Notify called with events: INITIALIZED DEFINED Melde_Anrufer_A DEFINED firmata_reconnector ATTR firmata_reconnector room ZÄHLER, open device and set timer to send hello to device
2017.03.21 10:32:38.291 3: Opening TEST device /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2.2:1.0-port0
2017.03.21 10:32:38.298 3: Setting TEST serial parameters to 38400,8,N,1
2017.03.21 10:32:38.315 3: TEST device opened
2017.03.21 10:32:39.808 0: Featurelevel: 5.8
2017.03.21 10:32:39.809 0: Server started with 760 defined entities (fhem.pl:13733/2017-03-19 perl:5.020002 os:linux user:fhem pid:10557)
...
2017.03.21 10:32:45.058 4: TEST: Pin 3 (pin3) count 46876 (diff 1) in 33.000s, result 0.109
2017.03.21 10:32:45.059 5: TEST: interval 10:32:12 until 10:32:45
2017.03.21 10:32:45.059 5: TEST: readingStartTime3 specified: setting reading timestamp to 10:32:12
2017.03.21 10:32:45.060 5: TEST: set readings power3 to 0.109, timeDiff3 to 33000 and countDiff3 to 1
2017.03.21 10:32:45.062 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at fhem.pl line 4147.
2017.03.21 10:32:45.164 5: TEST: Initialize clock offset to 1489485894.46045
2017.03.21 10:32:45.164 5: TEST: Device Time 602870.598, Drift 0.000s in 0.000s
2017.03.21 10:32:45.164 3: TEST: device is still counting
2017.03.21 10:32:45.165 3: TEST: sending h(ello) to device to ask for version
2017.03.21 10:32:45.165 5: SW: h

...
2017.03.21 10:33:08.401 3: TEST: device replied to hello, V1.8
2017.03.21 10:33:08.402 4: TEST: device reported firmware 1.8
2017.03.21 10:33:08.402 3: TEST: ConfigureDevice calls Attr with pinD3 falling pullup 89
2017.03.21 10:33:08.403 5: SW: 3,2,1,89a

2017.03.21 10:33:08.406 3: TEST: ConfigureDevice calls Attr with interval 15 1200 5 1
2017.03.21 10:33:08.406 5: SW: 15,1200,5,1i

...
2017.03.21 10:33:19.160 3: TEST: device: defined pin 3 PCInt pin 19, iMode change, min len 89 ms falling, count 46879 (+1) in 29771 ms Rej 0
2017.03.21 10:33:19.161 3: TEST: device:   first at 19695, last at 19695, avg len 90
2017.03.21 10:33:19.161 3: TEST: device: intervals set to 15 1200 5 1
2017.03.21 10:33:19.162 4: TEST: Pin 3 (pin3) count 46879 (diff 1) in 29.771s, reject 0, result 0.121
2017.03.21 10:33:19.162 5: TEST: interval 10:32:49 until 10:33:19, First at 29771
2017.03.21 10:33:19.162 5: TEST: readingStartTime3 specified: setting reading timestamp to 10:32:49
2017.03.21 10:33:19.162 5: TEST: set readings power3 to 0.121, timeDiff3 to 29771 and countDiff3 to 1
2017.03.21 10:33:19.265 5: TEST: Device Time 602960.598, Drift -55.897s in 34.103s, -163.90%
...
2017.03.21 10:33:44.775 4: TEST: Pin 3 (pin3) count 46880 (diff 1) in 33.057s, reject 0, result 0.109
2017.03.21 10:33:44.775 5: TEST: interval 10:33:11 until 10:33:44, First at 33057
2017.03.21 10:33:44.775 5: TEST: readingStartTime3 specified: setting reading timestamp to 10:33:11
2017.03.21 10:33:44.776 5: TEST: set readings power3 to 0.109, timeDiff3 to 33057 and countDiff3 to 1
2017.03.21 10:33:44.881 5: TEST: Device Time 602990.598, Drift -60.284s in 59.716s, -100.95%
...
2017.03.21 10:34:26.214 4: TEST: Pin 3 (pin3) count 46881 (diff 1) in 30.123s, reject 0, result 0.120
2017.03.21 10:34:26.215 5: TEST: interval 10:33:56 until 10:34:26, First at 30123
2017.03.21 10:34:26.215 5: TEST: readingStartTime3 specified: setting reading timestamp to 10:33:56
2017.03.21 10:34:26.215 5: TEST: set readings power3 to 0.120, timeDiff3 to 30123 and countDiff3 to 1
2017.03.21 10:34:26.320 5: TEST: Device Time 603020.598, Drift -48.844s in 101.156s, -48.29%
2017.03.21 10:34:44.814 4: TEST: Pin 3 (pin3) count 46882 (diff 1) in 27.924s, reject 0, result 0.129
2017.03.21 10:34:44.814 5: TEST: interval 10:34:16 until 10:34:44, First at 27924
2017.03.21 10:34:44.814 5: TEST: readingStartTime3 specified: setting reading timestamp to 10:34:16
2017.03.21 10:34:44.815 5: TEST: set readings power3 to 0.129, timeDiff3 to 27924 and countDiff3 to 1
2017.03.21 10:34:44.923 5: TEST: Device Time 603050.598, Drift -60.245s in 119.755s, -50.31%
2017.03.21 10:35:14.578 4: TEST: Pin 3 (pin3) count 46883 (diff 1) in 27.522s, reject 0, result 0.131
2017.03.21 10:35:14.578 5: TEST: interval 10:34:47 until 10:35:14, First at 27522
2017.03.21 10:35:14.579 5: TEST: readingStartTime3 specified: setting reading timestamp to 10:34:47
2017.03.21 10:35:14.579 5: TEST: set readings power3 to 0.131, timeDiff3 to 27522 and countDiff3 to 1
2017.03.21 10:35:14.684 5: TEST: Device Time 603080.598, Drift -60.481s in 149.519s, -40.45%
2017.03.21 10:35:44.792 4: TEST: Pin 3 (pin3) count 46884 (diff 1) in 26.745s, reject 0, result 0.135
2017.03.21 10:35:44.792 5: TEST: interval 10:35:18 until 10:35:44, First at 26745
2017.03.21 10:35:44.792 5: TEST: readingStartTime3 specified: setting reading timestamp to 10:35:18
2017.03.21 10:35:44.793 5: TEST: set readings power3 to 0.135, timeDiff3 to 26745 and countDiff3 to 1
2017.03.21 10:35:44.894 5: TEST: Device Time 603110.598, Drift -60.267s in 179.733s, -33.53%
2017.03.21 10:35:59.572 4: TEST: Pin 3 (pin3) count 46885 (diff 1) in 26.420s, reject 0, result 0.136
2017.03.21 10:35:59.572 5: TEST: interval 10:35:33 until 10:35:59, First at 26420
2017.03.21 10:35:59.573 5: TEST: readingStartTime3 specified: setting reading timestamp to 10:35:33
2017.03.21 10:35:59.573 5: TEST: set readings power3 to 0.136, timeDiff3 to 26420 and countDiff3 to 1
2017.03.21 10:35:59.678 5: TEST: Device Time 603125.598, Drift -60.487s in 194.513s, -31.10%
...

...
2017.03.21 12:52:10.805 5: TEST: Notify called with events: INITIALIZED DEFINED Melde_Anrufer_A, open device and set timer to send hello to device
2017.03.21 12:52:10.806 3: Opening TEST device /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2.2:1.0-port0
2017.03.21 12:52:10.814 3: Setting TEST serial parameters to 38400,8,N,1
2017.03.21 12:52:10.832 3: TEST device opened
2017.03.21 12:52:11.828 0: Featurelevel: 5.8
2017.03.21 12:52:11.828 0: Server started with 759 defined entities (fhem.pl:13733/2017-03-19 perl:5.020002 os:linux user:fhem pid:11749)
...
2017.03.21 12:52:21.533 4: TEST: Pin 3 (pin3) count 49243 (diff 7) in 10.539s, result 2.391
2017.03.21 12:52:21.533 5: TEST: interval 12:52:10 until 12:52:21
2017.03.21 12:52:21.534 5: TEST: readingStartTime3 specified: setting reading timestamp to 12:52:10
2017.03.21 12:52:21.534 5: TEST: set readings power3 to 2.391, timeDiff3 to 10539 and countDiff3 to 7
2017.03.21 12:52:21.536 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at fhem.pl line 4147.
2017.03.21 12:52:21.651 5: TEST: Initialize clock offset to 1489485915.93464
2017.03.21 12:52:21.652 5: TEST: Device Time 611225.598, Drift 0.000s in 0.000s
2017.03.21 12:52:21.652 3: TEST: device is still counting
2017.03.21 12:52:21.652 3: TEST: sending h(ello) to device to ask for version
2017.03.21 12:52:21.653 5: SW: h

...
2017.03.21 12:52:58.501 3: TEST: device replied to hello, V1.8
2017.03.21 12:52:58.502 4: TEST: device reported firmware 1.8
2017.03.21 12:52:58.502 3: TEST: ConfigureDevice calls Attr with pinD3 falling pullup 89
2017.03.21 12:52:58.503 5: SW: 3,2,1,89a

2017.03.21 12:52:58.506 3: TEST: ConfigureDevice calls Attr with interval 15 1200 5 1
2017.03.21 12:52:58.507 5: SW: 15,1200,5,1i

2017.03.21 12:52:58.511 4: TEST: Pin 3 (pin3) count 49249 (diff 1) in 14.527s, reject 0, result 0.248
2017.03.21 12:52:58.512 5: TEST: interval 12:52:43 until 12:52:58, First at 14527
2017.03.21 12:52:58.512 5: TEST: readingStartTime3 specified: setting reading timestamp to 12:52:43
2017.03.21 12:52:58.512 5: TEST: set readings power3 to 0.248, timeDiff3 to 14527 and countDiff3 to 1
2017.03.21 12:52:58.790 5: TEST: Device Time 611315.598, Drift -53.021s in 36.979s, -143.38%
2017.03.21 12:52:58.791 4: TEST: Pin 3 (pin3) count 49251 (diff 2) in 29.331s, reject 0, result 0.245
2017.03.21 12:52:58.792 5: TEST: interval 12:52:29 until 12:52:58, First at 14811
2017.03.21 12:52:58.792 5: TEST: readingStartTime3 specified: setting reading timestamp to 12:52:29
2017.03.21 12:52:58.792 5: TEST: set readings power3 to 0.245, timeDiff3 to 29331 and countDiff3 to 2
2017.03.21 12:52:58.906 5: TEST: Device Time 611330.598, Drift -67.741s in 37.259s, -181.81%
2017.03.21 12:52:58.907 4: TEST: Pin 3 (pin3) count 49252 (diff 1) in 14.305s, reject 0, result 0.252
2017.03.21 12:52:58.907 5: TEST: interval 12:52:44 until 12:52:58, First at 14305
2017.03.21 12:52:58.908 5: TEST: readingStartTime3 specified: setting reading timestamp to 12:52:44
2017.03.21 12:52:58.908 5: TEST: set readings power3 to 0.252, timeDiff3 to 14305 and countDiff3 to 1
2017.03.21 12:52:59.022 5: TEST: Device Time 611345.598, Drift -82.625s in 37.375s, -221.07%
2017.03.21 12:52:59.727 3: TEST: device: defined pin 3 PCInt pin 19, iMode change, min len 89 ms falling, count 49252 (+0) in 816 ms Rej 0
2017.03.21 12:52:59.728 3: TEST: device: intervals set to 15 1200 5 1
2017.03.21 12:53:14.417 4: TEST: Pin 3 (pin3) count 49253 (diff 1) in 13.521s, reject 0, result 0.266
2017.03.21 12:53:14.418 5: TEST: interval 12:53:00 until 12:53:14, First at 13521
2017.03.21 12:53:14.419 5: TEST: readingStartTime3 specified: setting reading timestamp to 12:53:00
2017.03.21 12:53:14.419 5: TEST: set readings power3 to 0.266, timeDiff3 to 13521 and countDiff3 to 1
2017.03.21 12:53:14.534 5: TEST: Device Time 611360.598, Drift -82.115s in 52.885s, -155.27%
...
2017.03.21 12:53:43.830 4: TEST: Pin 3 (pin3) count 49254 (diff 1) in 18.334s, reject 0, result 0.196
2017.03.21 12:53:43.830 5: TEST: interval 12:53:25 until 12:53:43, First at 18334
2017.03.21 12:53:43.831 5: TEST: readingStartTime3 specified: setting reading timestamp to 12:53:25
2017.03.21 12:53:43.831 5: TEST: set readings power3 to 0.196, timeDiff3 to 18334 and countDiff3 to 1
2017.03.21 12:53:43.943 5: TEST: Device Time 611390.598, Drift -82.703s in 82.297s, -100.49%
2017.03.21 12:53:58.511 4: TEST: Pin 3 (pin3) count 49255 (diff 1) in 23.069s, reject 0, result 0.156
2017.03.21 12:53:58.512 5: TEST: interval 12:53:35 until 12:53:58, First at 23069
2017.03.21 12:53:58.513 5: TEST: readingStartTime3 specified: setting reading timestamp to 12:53:35
2017.03.21 12:53:58.513 5: TEST: set readings power3 to 0.156, timeDiff3 to 23069 and countDiff3 to 1
2017.03.21 12:53:58.632 5: TEST: Device Time 611405.598, Drift -83.021s in 96.979s, -85.61%
2017.03.21 12:54:13.941 4: TEST: Pin 3 (pin3) count 49264 (diff 9) in 19.362s, reject 0, result 1.673
2017.03.21 12:54:13.941 5: TEST: interval 12:53:54 until 12:54:13, First at 6914
2017.03.21 12:54:13.942 5: TEST: readingStartTime3 specified: setting reading timestamp to 12:53:54
2017.03.21 12:54:13.942 5: TEST: set readings power3 to 1.673, timeDiff3 to 19362 and countDiff3 to 9
2017.03.21 12:54:14.060 5: TEST: Device Time 611420.598, Drift -82.592s in 112.408s, -73.47%
2017.03.21 12:54:28.482 4: TEST: Pin 3 (pin3) count 49274 (diff 10) in 15.628s, reject 0, result 2.304
2017.03.21 12:54:28.482 5: TEST: interval 12:54:12 until 12:54:28, First at 1577
2017.03.21 12:54:28.483 5: TEST: readingStartTime3 specified: setting reading timestamp to 12:54:12
2017.03.21 12:54:28.483 5: TEST: set readings power3 to 2.304, timeDiff3 to 15628 and countDiff3 to 10
2017.03.21 12:54:28.597 5: TEST: Device Time 611435.598, Drift -83.051s in 126.949s, -65.42%
2017.03.21 12:54:44.467 4: TEST: Pin 3 (pin3) count 49284 (diff 10) in 15.636s, reject 0, result 2.302
2017.03.21 12:54:44.468 5: TEST: interval 12:54:28 until 12:54:44, First at 1562
2017.03.21 12:54:44.469 5: TEST: readingStartTime3 specified: setting reading timestamp to 12:54:28
2017.03.21 12:54:44.469 5: TEST: set readings power3 to 2.302, timeDiff3 to 15636 and countDiff3 to 10
2017.03.21 12:54:44.620 5: TEST: Device Time 611450.598, Drift -82.066s in 142.934s, -57.41%
2017.03.21 12:54:58.479 4: TEST: Pin 3 (pin3) count 49293 (diff 9) in 14.189s, reject 0, result 2.283
2017.03.21 12:54:58.479 5: TEST: interval 12:54:44 until 12:54:58, First at 1569
2017.03.21 12:54:58.480 5: TEST: readingStartTime3 specified: setting reading timestamp to 12:54:44
2017.03.21 12:54:58.480 5: TEST: set readings power3 to 2.283, timeDiff3 to 14189 and countDiff3 to 9
2017.03.21 12:54:58.605 5: TEST: Device Time 611465.598, Drift -83.054s in 156.946s, -52.92%
2017.03.21 12:55:13.638 4: TEST: Pin 3 (pin3) count 49303 (diff 10) in 15.793s, reject 0, result 2.279
2017.03.21 12:55:13.638 5: TEST: interval 12:54:57 until 12:55:13, First at 1576
2017.03.21 12:55:13.639 5: TEST: readingStartTime3 specified: setting reading timestamp to 12:54:57
2017.03.21 12:55:13.639 5: TEST: set readings power3 to 2.279, timeDiff3 to 15793 and countDiff3 to 10
2017.03.21 12:55:13.773 5: TEST: Device Time 611480.598, Drift -82.895s in 172.105s, -48.17%
2017.03.21 12:55:29.152 4: TEST: Pin 3 (pin3) count 49312 (diff 9) in 14.208s, reject 0, result 2.280
2017.03.21 12:55:29.153 5: TEST: interval 12:55:14 until 12:55:29, First at 1585
2017.03.21 12:55:29.153 5: TEST: readingStartTime3 specified: setting reading timestamp to 12:55:14
2017.03.21 12:55:29.153 5: TEST: set readings power3 to 2.280, timeDiff3 to 14208 and countDiff3 to 9
2017.03.21 12:55:29.294 5: TEST: Device Time 611495.598, Drift -82.381s in 187.619s, -43.91%
...

Langzeit-Mitschnitt: 13:44 bis 13:55 Uhr
...
2017.03.21 13:44:51.960 5: TEST: Notify called with events: INITIALIZED DEFINED Melde_Anrufer_A, open device and set timer to send hello to device
2017.03.21 13:44:51.960 3: Opening TEST device /dev/serial/by-path/platform-3f980000.usb-usb-0:1.2.2:1.0-port0
2017.03.21 13:44:51.968 3: Setting TEST serial parameters to 38400,8,N,1
2017.03.21 13:44:51.985 3: TEST device opened
2017.03.21 13:44:52.963 0: Featurelevel: 5.8
2017.03.21 13:44:52.963 0: Server started with 759 defined entities (fhem.pl:13733/2017-03-19 perl:5.020002 os:linux user:fhem pid:17442)
...
2017.03.21 13:44:59.478 4: TEST: Pin 3 (pin3) count 50522 (diff 9) in 14.215s, result 2.279
2017.03.21 13:44:59.478 5: TEST: interval 13:44:45 until 13:44:59
2017.03.21 13:44:59.479 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:44:45
2017.03.21 13:44:59.479 5: TEST: set readings power3 to 2.279, timeDiff3 to 14215 and countDiff3 to 9
2017.03.21 13:44:59.641 5: TEST: Initialize clock offset to 1489485908.87963
2017.03.21 13:44:59.641 5: TEST: Device Time 614390.598, Drift 0.000s in 0.000s
2017.03.21 13:44:59.642 3: TEST: device is still counting
2017.03.21 13:44:59.642 3: TEST: sending h(ello) to device to ask for version
2017.03.21 13:44:59.643 5: SW: h

...
2017.03.21 13:45:43.233 3: TEST: device didn't reply to h(ello). Is the right sketch flashed? Is speed set to 38400?
2017.03.21 13:45:43.463 3: TEST: device replied to hello, V1.8
2017.03.21 13:45:43.463 4: TEST: device reported firmware 1.8
2017.03.21 13:45:43.463 3: TEST: ConfigureDevice calls Attr with interval 15 1200 5 1
2017.03.21 13:45:43.464 5: SW: 15,1200,5,1i

2017.03.21 13:45:43.466 3: TEST: ConfigureDevice calls Attr with pinD3 falling pullup 89
2017.03.21 13:45:43.466 5: SW: 3,2,1,89a

2017.03.21 13:45:43.473 4: TEST: Pin 3 (pin3) count 50579 (diff 10) in 15.946s, reject 0, result 2.258
2017.03.21 13:45:43.474 5: TEST: interval 13:45:27 until 13:45:43, First at 1594
2017.03.21 13:45:43.474 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:45:27
2017.03.21 13:45:43.474 5: TEST: set readings power3 to 2.258, timeDiff3 to 15946 and countDiff3 to 10
2017.03.21 13:45:43.764 5: TEST: Device Time 614480.598, Drift -46.004s in 43.996s, -104.57%
2017.03.21 13:45:43.765 4: TEST: Pin 3 (pin3) count 50588 (diff 9) in 14.313s, reject 1, result 2.264
2017.03.21 13:45:43.765 5: TEST: interval 13:45:29 until 13:45:43, First at 1590
2017.03.21 13:45:43.766 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:45:29
2017.03.21 13:45:43.766 5: TEST: set readings power3 to 2.264, timeDiff3 to 14313 and countDiff3 to 9
2017.03.21 13:45:43.884 5: TEST: Device Time 614495.598, Drift -60.712s in 44.288s, -137.09%
2017.03.21 13:45:43.885 4: TEST: Pin 3 (pin3) count 50598 (diff 10) in 15.846s, reject 0, result 2.272
2017.03.21 13:45:43.885 5: TEST: interval 13:45:28 until 13:45:43, First at 1583
2017.03.21 13:45:43.885 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:45:28
2017.03.21 13:45:43.886 5: TEST: set readings power3 to 2.272, timeDiff3 to 15846 and countDiff3 to 10
2017.03.21 13:45:44.004 5: TEST: Device Time 614510.598, Drift -75.593s in 44.407s, -170.23%
2017.03.21 13:45:45.374 3: TEST: device: intervals set to 15 1200 5 1
2017.03.21 13:45:45.374 3: TEST: device: defined pin 3 PCInt pin 19, iMode change, min len 89 ms falling, count 50598 (+0) in 501 ms Rej 0
...
2017.03.21 13:45:59.170 4: TEST: Pin 3 (pin3) count 50607 (diff 9) in 14.236s, reject 0, result 2.276
2017.03.21 13:45:59.170 5: TEST: interval 13:45:44 until 13:45:59, First at 1584
2017.03.21 13:45:59.171 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:45:44
2017.03.21 13:45:59.171 5: TEST: set readings power3 to 2.276, timeDiff3 to 14236 and countDiff3 to 9
2017.03.21 13:45:59.288 5: TEST: Device Time 614525.598, Drift -75.308s in 59.692s, -126.16%
...
2017.03.21 13:46:25.228 4: TEST: Pin 3 (pin3) count 50617 (diff 10) in 15.824s, reject 0, result 2.275
2017.03.21 13:46:25.229 5: TEST: interval 13:46:09 until 13:46:25, First at 1582
2017.03.21 13:46:25.229 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:46:09
2017.03.21 13:46:25.230 5: TEST: set readings power3 to 2.275, timeDiff3 to 15824 and countDiff3 to 10
2017.03.21 13:46:25.346 5: TEST: Device Time 614540.598, Drift -64.249s in 85.751s, -74.93%
...
2017.03.21 13:46:28.438 4: TEST: Pin 3 (pin3) count 50626 (diff 9) in 14.229s, reject 0, result 2.277
2017.03.21 13:46:28.438 5: TEST: interval 13:46:14 until 13:46:28, First at 1581
2017.03.21 13:46:28.439 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:46:14
2017.03.21 13:46:28.439 5: TEST: set readings power3 to 2.277, timeDiff3 to 14229 and countDiff3 to 9
2017.03.21 13:46:28.571 5: TEST: Device Time 614555.598, Drift -76.040s in 88.960s, -85.48%
2017.03.21 13:46:43.157 4: TEST: Pin 3 (pin3) count 50636 (diff 10) in 15.804s, reject 0, result 2.278
2017.03.21 13:46:43.157 5: TEST: interval 13:46:27 until 13:46:43, First at 1582
2017.03.21 13:46:43.158 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:46:27
2017.03.21 13:46:43.158 5: TEST: set readings power3 to 2.278, timeDiff3 to 15804 and countDiff3 to 10
2017.03.21 13:46:43.297 5: TEST: Device Time 614570.598, Drift -76.321s in 103.679s, -73.61%
2017.03.21 13:46:58.619 4: TEST: Pin 3 (pin3) count 50645 (diff 9) in 14.236s, reject 0, result 2.276
2017.03.21 13:46:58.619 5: TEST: interval 13:46:44 until 13:46:58, First at 1581
2017.03.21 13:46:58.620 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:46:44
2017.03.21 13:46:58.621 5: TEST: set readings power3 to 2.276, timeDiff3 to 14236 and countDiff3 to 9
2017.03.21 13:46:58.763 5: TEST: Device Time 614585.598, Drift -75.860s in 119.140s, -63.67%
2017.03.21 13:47:13.161 4: TEST: Pin 3 (pin3) count 50655 (diff 10) in 15.818s, reject 0, result 2.276
2017.03.21 13:47:13.161 5: TEST: interval 13:46:57 until 13:47:13, First at 1583
2017.03.21 13:47:13.162 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:46:57
2017.03.21 13:47:13.162 5: TEST: set readings power3 to 2.276, timeDiff3 to 15818 and countDiff3 to 10
2017.03.21 13:47:13.283 5: TEST: Device Time 614600.598, Drift -76.317s in 133.683s, -57.09%
2017.03.21 13:47:28.409 4: TEST: Pin 3 (pin3) count 50664 (diff 9) in 14.258s, reject 0, result 2.272
2017.03.21 13:47:28.410 5: TEST: interval 13:47:14 until 13:47:28, First at 1585
2017.03.21 13:47:28.411 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:47:14
2017.03.21 13:47:28.412 5: TEST: set readings power3 to 2.272, timeDiff3 to 14258 and countDiff3 to 9
2017.03.21 13:47:28.573 5: TEST: Device Time 614615.598, Drift -76.070s in 148.930s, -51.08%
2017.03.21 13:47:43.192 4: TEST: Pin 3 (pin3) count 50674 (diff 10) in 15.699s, reject 0, result 2.293
2017.03.21 13:47:43.192 5: TEST: interval 13:47:27 until 13:47:43, First at 1582
2017.03.21 13:47:43.193 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:47:27
2017.03.21 13:47:43.193 5: TEST: set readings power3 to 2.293, timeDiff3 to 15699 and countDiff3 to 10
2017.03.21 13:47:43.312 5: TEST: Device Time 614630.598, Drift -76.286s in 163.714s, -46.60%
2017.03.21 13:47:58.227 4: TEST: Pin 3 (pin3) count 50683 (diff 9) in 14.103s, reject 0, result 2.297
2017.03.21 13:47:58.228 5: TEST: interval 13:47:44 until 13:47:58, First at 1567
2017.03.21 13:47:58.228 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:47:44
2017.03.21 13:47:58.228 5: TEST: set readings power3 to 2.297, timeDiff3 to 14103 and countDiff3 to 9
2017.03.21 13:47:58.340 5: TEST: Device Time 614645.598, Drift -76.250s in 178.750s, -42.66%
2017.03.21 13:48:13.148 4: TEST: Pin 3 (pin3) count 50693 (diff 10) in 15.662s, reject 0, result 2.299
2017.03.21 13:48:13.148 5: TEST: interval 13:47:57 until 13:48:13, First at 1566
2017.03.21 13:48:13.149 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:47:57
2017.03.21 13:48:13.149 5: TEST: set readings power3 to 2.299, timeDiff3 to 15662 and countDiff3 to 10
2017.03.21 13:48:13.269 5: TEST: Device Time 614660.598, Drift -76.330s in 193.670s, -39.41%
2017.03.21 13:48:28.145 4: TEST: Pin 3 (pin3) count 50702 (diff 9) in 14.131s, reject 0, result 2.293
2017.03.21 13:48:28.146 5: TEST: interval 13:48:14 until 13:48:28, First at 1569
2017.03.21 13:48:28.146 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:48:14
2017.03.21 13:48:28.147 5: TEST: set readings power3 to 2.293, timeDiff3 to 14131 and countDiff3 to 9
2017.03.21 13:48:28.259 5: TEST: Device Time 614675.598, Drift -76.332s in 208.668s, -36.58%
2017.03.21 13:48:43.474 4: TEST: Pin 3 (pin3) count 50712 (diff 10) in 15.721s, reject 0, result 2.290
2017.03.21 13:48:43.475 5: TEST: interval 13:48:27 until 13:48:43, First at 1569
2017.03.21 13:48:43.475 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:48:27
2017.03.21 13:48:43.475 5: TEST: set readings power3 to 2.290, timeDiff3 to 15721 and countDiff3 to 10
2017.03.21 13:48:43.590 5: TEST: Device Time 614690.598, Drift -76.003s in 223.997s, -33.93%
2017.03.21 13:48:59.331 4: TEST: Pin 3 (pin3) count 50721 (diff 9) in 14.118s, reject 0, result 2.295
2017.03.21 13:48:59.332 5: TEST: interval 13:48:45 until 13:48:59, First at 1568
2017.03.21 13:48:59.332 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:48:45
2017.03.21 13:48:59.332 5: TEST: set readings power3 to 2.295, timeDiff3 to 14118 and countDiff3 to 9
2017.03.21 13:48:59.449 5: TEST: Device Time 614705.598, Drift -75.146s in 239.854s, -31.33%
2017.03.21 13:49:14.209 4: TEST: Pin 3 (pin3) count 50731 (diff 10) in 15.666s, reject 0, result 2.298
2017.03.21 13:49:14.210 5: TEST: interval 13:48:58 until 13:49:14, First at 1569
2017.03.21 13:49:14.211 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:48:58
2017.03.21 13:49:14.211 5: TEST: set readings power3 to 2.298, timeDiff3 to 15666 and countDiff3 to 10
2017.03.21 13:49:14.325 5: TEST: Device Time 614720.598, Drift -75.268s in 254.732s, -29.55%
2017.03.21 13:49:28.140 4: TEST: Pin 3 (pin3) count 50740 (diff 9) in 14.105s, reject 0, result 2.297
2017.03.21 13:49:28.140 5: TEST: interval 13:49:14 until 13:49:28, First at 1567
2017.03.21 13:49:28.141 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:49:14
2017.03.21 13:49:28.141 5: TEST: set readings power3 to 2.297, timeDiff3 to 14105 and countDiff3 to 9
2017.03.21 13:49:28.254 5: TEST: Device Time 614735.598, Drift -76.338s in 268.662s, -28.41%
2017.03.21 13:49:43.198 4: TEST: Pin 3 (pin3) count 50750 (diff 10) in 15.693s, reject 0, result 2.294
2017.03.21 13:49:43.199 5: TEST: interval 13:49:27 until 13:49:43, First at 1566
2017.03.21 13:49:43.200 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:49:27
2017.03.21 13:49:43.200 5: TEST: set readings power3 to 2.294, timeDiff3 to 15693 and countDiff3 to 10
2017.03.21 13:49:43.335 5: TEST: Device Time 614750.598, Drift -76.279s in 283.721s, -26.89%
2017.03.21 13:49:59.577 4: TEST: Pin 3 (pin3) count 50760 (diff 10) in 15.660s, reject 0, result 2.299
2017.03.21 13:49:59.578 5: TEST: interval 13:49:43 until 13:49:59, First at 1565
2017.03.21 13:49:59.578 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:49:43
2017.03.21 13:49:59.579 5: TEST: set readings power3 to 2.299, timeDiff3 to 15660 and countDiff3 to 10
2017.03.21 13:49:59.693 5: TEST: Device Time 614765.598, Drift -74.900s in 300.100s, -24.96%
2017.03.21 13:50:14.239 4: TEST: Pin 3 (pin3) count 50769 (diff 9) in 14.142s, reject 0, result 2.291
2017.03.21 13:50:14.239 5: TEST: interval 13:50:00 until 13:50:14, First at 1570
2017.03.21 13:50:14.240 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:50:00
2017.03.21 13:50:14.240 5: TEST: set readings power3 to 2.291, timeDiff3 to 14142 and countDiff3 to 9
2017.03.21 13:50:14.362 5: TEST: Device Time 614780.598, Drift -75.239s in 314.761s, -23.90%
2017.03.21 13:50:28.135 4: TEST: Pin 3 (pin3) count 50779 (diff 10) in 15.735s, reject 0, result 2.288
2017.03.21 13:50:28.135 5: TEST: interval 13:50:12 until 13:50:28, First at 1568
2017.03.21 13:50:28.136 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:50:12
2017.03.21 13:50:28.136 5: TEST: set readings power3 to 2.288, timeDiff3 to 15735 and countDiff3 to 10
2017.03.21 13:50:28.249 5: TEST: Device Time 614795.598, Drift -76.343s in 328.657s, -23.23%
2017.03.21 13:50:43.437 4: TEST: Pin 3 (pin3) count 50788 (diff 9) in 14.215s, reject 0, result 2.279
2017.03.21 13:50:43.437 5: TEST: interval 13:50:29 until 13:50:43, First at 1580
2017.03.21 13:50:43.438 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:50:29
2017.03.21 13:50:43.438 5: TEST: set readings power3 to 2.279, timeDiff3 to 14215 and countDiff3 to 9
2017.03.21 13:50:43.577 5: TEST: Device Time 614810.598, Drift -76.041s in 343.959s, -22.11%
2017.03.21 13:50:58.561 4: TEST: Pin 3 (pin3) count 50798 (diff 10) in 15.807s, reject 0, result 2.277
2017.03.21 13:50:58.561 5: TEST: interval 13:50:42 until 13:50:58, First at 1577
2017.03.21 13:50:58.562 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:50:42
2017.03.21 13:50:58.562 5: TEST: set readings power3 to 2.277, timeDiff3 to 15807 and countDiff3 to 10
2017.03.21 13:50:58.675 5: TEST: Device Time 614825.598, Drift -75.917s in 359.083s, -21.14%
2017.03.21 13:51:13.355 4: TEST: Pin 3 (pin3) count 50807 (diff 9) in 14.201s, reject 0, result 2.282
2017.03.21 13:51:13.356 5: TEST: interval 13:50:59 until 13:51:13, First at 1580
2017.03.21 13:51:13.356 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:50:59
2017.03.21 13:51:13.356 5: TEST: set readings power3 to 2.282, timeDiff3 to 14201 and countDiff3 to 9
2017.03.21 13:51:13.469 5: TEST: Device Time 614840.598, Drift -76.122s in 373.878s, -20.36%
2017.03.21 13:51:28.127 4: TEST: Pin 3 (pin3) count 50817 (diff 10) in 15.416s, reject 0, result 2.335
2017.03.21 13:51:28.128 5: TEST: interval 13:51:12 until 13:51:28, First at 1567
2017.03.21 13:51:28.128 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:51:12
2017.03.21 13:51:28.128 5: TEST: set readings power3 to 2.335, timeDiff3 to 15416 and countDiff3 to 10
2017.03.21 13:51:28.248 5: TEST: Device Time 614855.598, Drift -76.350s in 388.650s, -19.65%
2017.03.21 13:51:43.127 4: TEST: Pin 3 (pin3) count 50827 (diff 10) in 15.387s, reject 0, result 2.340
2017.03.21 13:51:43.128 5: TEST: interval 13:51:27 until 13:51:43, First at 1514
2017.03.21 13:51:43.128 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:51:27
2017.03.21 13:51:43.128 5: TEST: set readings power3 to 2.340, timeDiff3 to 15387 and countDiff3 to 10
2017.03.21 13:51:43.245 5: TEST: Device Time 614870.598, Drift -76.350s in 403.650s, -18.92%
2017.03.21 13:51:58.125 4: TEST: Pin 3 (pin3) count 50836 (diff 9) in 14.093s, reject 0, result 2.299
2017.03.21 13:51:58.126 5: TEST: interval 13:51:44 until 13:51:58, First at 1559
2017.03.21 13:51:58.126 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:51:44
2017.03.21 13:51:58.127 5: TEST: set readings power3 to 2.299, timeDiff3 to 14093 and countDiff3 to 9
2017.03.21 13:51:58.264 5: TEST: Device Time 614885.598, Drift -76.352s in 418.648s, -18.24%
2017.03.21 13:52:14.118 4: TEST: Pin 3 (pin3) count 50846 (diff 10) in 15.683s, reject 0, result 2.295
2017.03.21 13:52:14.118 5: TEST: interval 13:51:58 until 13:52:14, First at 1564
2017.03.21 13:52:14.119 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:51:58
2017.03.21 13:52:14.119 5: TEST: set readings power3 to 2.295, timeDiff3 to 15683 and countDiff3 to 10
2017.03.21 13:52:14.255 5: TEST: Device Time 614900.598, Drift -75.360s in 434.640s, -17.34%
2017.03.21 13:52:28.122 4: TEST: Pin 3 (pin3) count 50855 (diff 9) in 14.121s, reject 0, result 2.294
2017.03.21 13:52:28.123 5: TEST: interval 13:52:14 until 13:52:28, First at 1568
2017.03.21 13:52:28.123 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:52:14
2017.03.21 13:52:28.123 5: TEST: set readings power3 to 2.294, timeDiff3 to 14121 and countDiff3 to 9
2017.03.21 13:52:28.264 5: TEST: Device Time 614915.598, Drift -76.356s in 448.644s, -17.02%
2017.03.21 13:52:43.122 4: TEST: Pin 3 (pin3) count 50865 (diff 10) in 15.700s, reject 0, result 2.293
2017.03.21 13:52:43.122 5: TEST: interval 13:52:27 until 13:52:43, First at 1568
2017.03.21 13:52:43.123 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:52:27
2017.03.21 13:52:43.123 5: TEST: set readings power3 to 2.293, timeDiff3 to 15700 and countDiff3 to 10
2017.03.21 13:52:43.236 5: TEST: Device Time 614930.598, Drift -76.356s in 463.644s, -16.47%
2017.03.21 13:52:58.133 4: TEST: Pin 3 (pin3) count 50875 (diff 10) in 14.626s, reject 0, result 2.461
2017.03.21 13:52:58.134 5: TEST: interval 13:52:43 until 13:52:58, First at 1567
2017.03.21 13:52:58.134 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:52:43
2017.03.21 13:52:58.134 5: TEST: set readings power3 to 2.461, timeDiff3 to 14626 and countDiff3 to 10
2017.03.21 13:52:58.252 5: TEST: Device Time 614945.598, Drift -76.344s in 478.656s, -15.95%
2017.03.21 13:53:13.364 4: TEST: Pin 3 (pin3) count 50885 (diff 10) in 14.890s, reject 0, result 2.418
2017.03.21 13:53:13.364 5: TEST: interval 13:52:58 until 13:53:13, First at 1487
2017.03.21 13:53:13.365 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:52:58
2017.03.21 13:53:13.365 5: TEST: set readings power3 to 2.418, timeDiff3 to 14890 and countDiff3 to 10
2017.03.21 13:53:13.512 5: TEST: Device Time 614960.598, Drift -76.114s in 493.886s, -15.41%
2017.03.21 13:53:28.219 4: TEST: Pin 3 (pin3) count 50895 (diff 10) in 14.871s, reject 0, result 2.421
2017.03.21 13:53:28.219 5: TEST: interval 13:53:13 until 13:53:28, First at 1489
2017.03.21 13:53:28.220 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:53:13
2017.03.21 13:53:28.220 5: TEST: set readings power3 to 2.421, timeDiff3 to 14871 and countDiff3 to 10
2017.03.21 13:53:28.333 5: TEST: Device Time 614975.598, Drift -76.259s in 508.741s, -14.99%
2017.03.21 13:53:43.115 4: TEST: Pin 3 (pin3) count 50905 (diff 10) in 14.897s, reject 0, result 2.417
2017.03.21 13:53:43.115 5: TEST: interval 13:53:28 until 13:53:43, First at 1489
2017.03.21 13:53:43.116 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:53:28
2017.03.21 13:53:43.116 5: TEST: set readings power3 to 2.417, timeDiff3 to 14897 and countDiff3 to 10
2017.03.21 13:53:43.230 5: TEST: Device Time 614990.598, Drift -76.363s in 523.637s, -14.58%
2017.03.21 13:53:58.114 4: TEST: Pin 3 (pin3) count 50915 (diff 10) in 14.980s, reject 0, result 2.403
2017.03.21 13:53:58.115 5: TEST: interval 13:53:43 until 13:53:58, First at 1494
2017.03.21 13:53:58.115 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:53:43
2017.03.21 13:53:58.116 5: TEST: set readings power3 to 2.403, timeDiff3 to 14980 and countDiff3 to 10
2017.03.21 13:53:58.256 5: TEST: Device Time 615005.598, Drift -76.364s in 538.636s, -14.18%
2017.03.21 13:54:13.386 4: TEST: Pin 3 (pin3) count 50925 (diff 10) in 14.994s, reject 0, result 2.401
2017.03.21 13:54:13.387 5: TEST: interval 13:53:58 until 13:54:13, First at 1497
2017.03.21 13:54:13.387 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:53:58
2017.03.21 13:54:13.387 5: TEST: set readings power3 to 2.401, timeDiff3 to 14994 and countDiff3 to 10
2017.03.21 13:54:13.509 5: TEST: Device Time 615020.598, Drift -76.092s in 553.908s, -13.74%
2017.03.21 13:54:28.635 4: TEST: Pin 3 (pin3) count 50935 (diff 10) in 14.995s, reject 0, result 2.401
2017.03.21 13:54:28.635 5: TEST: interval 13:54:13 until 13:54:28, First at 1497
2017.03.21 13:54:28.636 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:54:13
2017.03.21 13:54:28.636 5: TEST: set readings power3 to 2.401, timeDiff3 to 14995 and countDiff3 to 10
2017.03.21 13:54:28.777 5: TEST: Device Time 615035.598, Drift -75.843s in 569.157s, -13.33%
2017.03.21 13:54:43.395 4: TEST: Pin 3 (pin3) count 50945 (diff 10) in 15.029s, reject 0, result 2.395
2017.03.21 13:54:43.396 5: TEST: interval 13:54:28 until 13:54:43, First at 1499
2017.03.21 13:54:43.396 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:54:28
2017.03.21 13:54:43.396 5: TEST: set readings power3 to 2.395, timeDiff3 to 15029 and countDiff3 to 10
2017.03.21 13:54:43.761 5: TEST: Device Time 615050.598, Drift -76.083s in 583.917s, -13.03%
2017.03.21 13:55:02.258 4: TEST: Pin 3 (pin3) count 50955 (diff 10) in 15.026s, reject 0, result 2.396
2017.03.21 13:55:02.259 5: TEST: interval 13:54:47 until 13:55:02, First at 1508
2017.03.21 13:55:02.260 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:54:47
2017.03.21 13:55:02.260 5: TEST: set readings power3 to 2.396, timeDiff3 to 15026 and countDiff3 to 10
2017.03.21 13:55:02.448 5: TEST: Device Time 615065.598, Drift -72.220s in 602.780s, -11.98%
2017.03.21 13:55:13.870 4: TEST: Pin 3 (pin3) count 50965 (diff 10) in 15.001s, reject 0, result 2.400
2017.03.21 13:55:13.871 5: TEST: interval 13:54:58 until 13:55:13, First at 1497
2017.03.21 13:55:13.876 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:54:58
2017.03.21 13:55:13.876 5: TEST: set readings power3 to 2.400, timeDiff3 to 15001 and countDiff3 to 10
2017.03.21 13:55:14.022 5: TEST: Device Time 615080.598, Drift -75.608s in 614.392s, -12.31%
2017.03.21 13:55:28.105 4: TEST: Pin 3 (pin3) count 50975 (diff 10) in 15.069s, reject 0, result 2.389
2017.03.21 13:55:28.106 5: TEST: interval 13:55:13 until 13:55:28, First at 1504
2017.03.21 13:55:28.107 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:55:13
2017.03.21 13:55:28.107 5: TEST: set readings power3 to 2.389, timeDiff3 to 15069 and countDiff3 to 10
2017.03.21 13:55:28.224 5: TEST: Device Time 615095.598, Drift -76.372s in 628.628s, -12.15%
2017.03.21 13:55:43.148 4: TEST: Pin 3 (pin3) count 50985 (diff 10) in 15.097s, reject 0, result 2.385
2017.03.21 13:55:43.148 5: TEST: interval 13:55:28 until 13:55:43, First at 1515
2017.03.21 13:55:43.149 5: TEST: readingStartTime3 specified: setting reading timestamp to 13:55:28
2017.03.21 13:55:43.149 5: TEST: set readings power3 to 2.385, timeDiff3 to 15097 and countDiff3 to 10
2017.03.21 13:55:43.279 5: TEST: Device Time 615110.598, Drift -76.330s in 643.670s, -11.86%
VG.
BillyPbg
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 21 März 2017, 18:01:30
Schade, die entscheidenden Zeilen sind auskommentiert ...
Kannst Du im Modul mal die Kommentarzeichen vor Zeile 572 und 752 entfernen damit die Kommunikation zwischen Arduino und Modul auch protokolliert wird?

Gruss / Thanx
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: BillyPbg am 21 März 2017, 19:14:18
OK - wird erledigt...

Gruß
BillyPbg
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 19 April 2017, 23:25:17
Evtl. eine dumme Frage, aber wenn man einen ArduCounter bauen möchte, benötigt man dann zwingend ein Arduino Nano oder geht das auch mit einem Arduino Micro (bzw. dessen Klon)?
Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 21 April 2017, 20:54:17
Hallo,

ich habe es nur mit den 328er Controllern probiert.
Ob die pin change interrupts exakt so auch mit dem 32u4 funktionieren kann ich nicht sagen.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Skusi am 15 Mai 2017, 18:55:03
Hallo zusammen,
nun muß ich doch mal um eure Hilfe bitten:

Ich habe einen WEMOS an meinem S0 Zähler angeschlossen, und lese damit auch erfolgreich meinen  Verbrauch aus. Das Auswerten der Werte funktioniert auch sehr gut.
Nun habe ich mir ein Doif gebaut das am Tagesende den Wert des tagesverbrauchs in ein reading "Gestern" schiebt und den ESP resettet.
Eingebunden ist das ganze über eine ESPBridge und ein entsprechendes ESPEasy Device, also ohne Mosquito.

..sieht dann also so aus:
   
([23:59])
(setreading Strom Vorgestern [Strom:Gestern],
setreading Strom Gestern [Strom:Heute],
setreading Strom Monat [Strom_Statistik:Strom_zaehler_jetzt_EnergyMonth],
setreading Strom zaehler_vortag [Strom:zaehler_jetzt],
set PulsStrom reboot)

Nun ist mein Problem das der reboot nachts nicht ausgeführt wird. Feuer ich das DOIF aber manuell ab, funktioniert es. Alledings habe ich das Gefühl das auch manuell der reboot nicht immer ausgeführt wird.

Kennt das jemand von Euch ?
Warum nimmt der Wemos ESP den reboot nicht immer an. Komischerweise hat er das um 23:59 seit einer guten Woche, die ich nun schon daran rumdoktor, noch nie getan.

Hab ich irgendwo noch eine Atribut falsch gesetzt ?

hier nochmal die defs:

define espBridge ESPEasy bridge 8383
attr espBridge authentication 0
attr espBridge autocreate 1
attr espBridge combineDevices 0
attr espBridge group ESPEasy Bridge
attr espBridge room 9.0_System

define PulsStrom ESPEasy 192.168.12.40 80 espBridge Stromcount_StromImpuls
attr PulsStrom IODev espBridge
attr PulsStrom group Strom
attr PulsStrom presenceCheck 1
attr PulsStrom readingSwitchText 1
attr PulsStrom room 8.2_Energie
attr PulsStrom setState 3

define set_Stromverbrauch DOIF ([23:59])\
(setreading Strom Vorgestern [Strom:Gestern], \
setreading Strom Gestern [Strom:Heute], \
setreading Strom Monat [Strom_Statistik:Strom_zaehler_jetzt_EnergyMonth],\
setreading Strom zaehler_vortag [Strom:zaehler_jetzt])\
\
(set PulsStrom reboot) \
\
DOELSEIF ([00:01] and $mday==1) \
(setreading Strom Vormonat [Strom:Monat], \
setreading Strom Monat 0)
attr set_Stromverbrauch do always
attr set_Stromverbrauch group Strom
attr set_Stromverbrauch room 8.2_Energie
attr set_Stromverbrauch verbose 3

Help...!
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Skusi am 17 Mai 2017, 19:28:37
Hmm, keiner ne Idee ???
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Thorsten Pferdekaemper am 18 Mai 2017, 08:23:57
Hi,
was mir auffällt ist, dass Du zwei verschiedene Definitionen Deines DOIFs zeigst. Im zweiten steht "set PulsStrom reboot" in eigenen Klammern, also  (set PulsStrom reboot), beim ersten steht es mit den setreadings in denselben Klammern.
Keine Ahnung, was das bei DOIF macht, aber bei IF würde die zweite Definition wahrscheinlich gar nicht funktionieren.
Gruß,
   Thorsten
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Skusi am 19 Mai 2017, 12:53:58
Du hast Recht, das hat sich beim schreiben des Postings wohl überschnitten. Den ersten Code habe ich aus der Web Oberfläche und den 2. aus der fhem.cfg. Dazwischen habe ich kein save ausgeführt.

Beide Definitionen funktionieren aber bei DOIF. Mit der (set PulsStrom reboot) ist es möglich eine Verzögerung einzubauen. Mittlerweile habe ich es schon so versucht das ich mit folgender Schreibweise:

([23:59])
(setreading Strom Vorgestern [Strom:Gestern],
setreading Strom Gestern [Strom:Heute],
setreading Strom Monat [Strom_Statistik:Strom_zaehler_jetzt_EnergyMonth],
setreading Strom zaehler_vortag [Strom:zaehler_jetzt],
set PulsStrom reboot)
(set PulsStrom reboot)
(set PulsStrom reboot)

DOELSEIF ([00:02] and $mday==1)
(setreading Strom Vormonat [Strom:Monat],
setreading Strom Monat 0)

und einem wait 0,5,5:0

den reboot Befehl 3 mal im 5 sec Takt schicke. Leider ohne Erfolg.
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Skusi am 22 Mai 2017, 11:57:52
So, nun glaube ich endlich den Fehler gefunden zu haben:

Es lag wohl am Passwortschutz des ESP. Seitdem ich das admin Passwort des ESPEasy entfernt habe, funktioniert der reboot.
Nun habe ich es auch wieder mir dem reboot Befehl des  ESPDevice Moduls laufen.

Meine manuell Tests haben wohl immer funktioniert weil ich auf dem ESP über einen 2. Browser Tab eingeloggt war. Nachdem der ESP sich wieder abgemeldet hatte ist der roboot Befehl wohl nicht durchgegangen, weil ich kein Passwort mit übermittelt habe (geht das eigentlich ? )

Ich beobachte weiter...
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Takero am 17 Juni 2017, 20:57:41
Hallo Zusammen,

ich bräuchte mal etwas Starthilfe zu diesem Projekt.

Ich habe einen B+G E-Tech DRT428DC-V3 Zähler installiert, soweit ich weiß ist der S0 Ausgang Potentialfrei.

Den Arduino Nano habe ich am Bus zwischen GND und D5.
Als Setup habe ich folgendes:

define AC ArduCounter /dev/ttyUSB1@38400
attr AC factor 500
attr AC interval 30 300
attr AC pinD5 falling pullup

Leider zählt er überhaupt nichts. So wie ich das verstehe wird mit "pinD5 falling pullup" der Pin D5 auf high gezogen und reagiert auf die fallende Flanke, bei jedem Impulse wird D5 auf GND gezogen, somit sollte gezählt werden.

Der Faktor sollte eigentlich auch stimmen bei 2000Imp/1kWh

Sieht einen einen Fehler?
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 17 Juni 2017, 21:09:28
Hi Takero,

läuft denn der Nano überhaupt? Gib mal ein list AC Was sagt get AC info?


Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Takero am 17 Juni 2017, 21:12:02
Ja, laufen tut er.

M Status: ArduCounter V1.8
 
normal interval 30000
 
max interval 300000
 
min interval 2000
 
min count 1
 
pin 5 PCInt pin 21, iMode falling, no min len, count 0 (+0) in 110344 ms
 
Next report in 9118 Milliseconds
 


Flashen funktioniert auch tadellos.
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 17 Juni 2017, 21:24:13
Passiert was wenn Du Pin5 manuell mit einem Draht mit Masse impulsartig verbindest? Er sollte dabei zählen.
Richtiges Pin verwendet?

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Takero am 17 Juni 2017, 21:51:56
Also per Hand funktioniert es . . . Wenn ich mit rising arbeite und statt GND 3V3 nehme kommt auch etwas raus, aber das passt nicht wirklich.
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 17 Juni 2017, 22:16:35
Du weißt schon, das die S0 Schnittstelle nicht unipolar ist? Also + muss an Pin5 und - an Masse.
Ich arbeite auch mit rising.

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Takero am 17 Juni 2017, 22:24:53
Du weißt schon, das die S0 Schnittstelle nicht unipolar ist? Also + muss an Pin5 und - an Masse.

Bingo das war es  :-[

Danke!
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 17 Juni 2017, 22:26:26
Steht auch im Handbuch, der Ausgang ist ein optokoppler mit Open Kollektor Ausgang  ;)
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Fritz Muster am 14 August 2017, 09:26:53
Hallo in die Runde,

bei mir will das Attribute readingFactor nicht machen was ich mir vorstelle. Der Counter an sich funktioniert prima, die gezählten Impulse passen mit der Anzeige im Stromzähler. Nur wie gesagt klappt die Umrechnung mit dem readingFactor nicht. Das Kuriose ist, die Werte vom reading "hüpfen" wie es mir scheint nach belieben hin und her. Mal sind es 0.081, dann mal 0.135 dann springt er mal wieder auf 0.081 usw. Bin mir nicht zu 100% sicher, aber ich vermute das es aber immer die selben Werte sind, welche mal im reading stehen. Der Stromzähler ist ein Eltako WSZ12DE-32 A und liefert 2000 Imp/ kWh und hat eine Impulslänge von 50ms.

Hier ein list device
Internals:
   CFGFN
   DEF        /dev/ttyUSB2 /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AH02KF7X-if00-port0@38400
   DeviceName /dev/ttyUSB2@38400
   FD         21
   Initialized 1
   NAME       S0CounterWP
   NOTIFYDEV  global
   NR         2637
   NTFY_ORDER 50-S0CounterWP
   PARTIAL
   STATE      opened
   TYPE       ArduCounter
   VersionFirmware 1.8
   VersionModule 4.7 - 18.2.2017
   buffer
   Readings:
     2017-08-12 22:55:43   S0EnergWp       583
     2017-08-12 22:55:43   S0EnergWp_kWh   1.707
     2017-08-12 13:40:51   power3          0.000
     2017-08-12 13:38:41   state           opened
Attributes:
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   pinD3      rising pullup 30
   readingFactor3 2000
   readingNameCount3 S0EnergWp
   readingNamePower3 S0EnergWp_kWh
   room       System
   userattr   pinD3 readingFactor3 readingNameCount3 readingNamePower3

Und noch die Ausgabe vom get info
M Status: ArduCounter V1.8
 
normal interval 30000
 
max interval 60000
 
min interval 2000
 
min count 1
 
pin 3 PCInt pin 19, iMode change, min len 30 ms rising, count 584 (+1) in 1876 ms Rej 0
 
  first at 1876, last at 1876, avg len 87603
 
Next report in 21594 Milliseconds

Der Arducounter läuft auf einem ArduinoNano mit FTDI Chip. Habe das Device jetzt auch schon 2-3 mal gelöscht und nochmal neu angelegt, leider ohne Erfolg.

Hat jemand eine Idee woran es evtl. liegen könnte.

Danke und Grüße.
Fritz
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 14 August 2017, 21:16:03
Hallo Fritz,

hast Du mal falling statt rising verwendet?

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 14 August 2017, 21:37:17
Hallo Fritz,

ich habe mir das mal so aufgeschrieben:
Zitat
Das power Reading liefert den momentane Leistung am Zähler. Damit die stimmt muss auch der Faktor stimmen.
Mein Zähler SMD630 liefert 400 Impulse pro 1 kWh.
1 Impulse entspricht also 0,0025 kWh.
Um den Zählerstand in kWh zu ermittteln, muss man einfach die Anzahl der Impules durch die Zahl Impulse/kWh dividieren.
ArduCounter ermittelt den Wert für die momentane Leistung in Impulsen/h ((delta count) / (delta time) * factor). Liefert der Zähler 1 Impuls pro 1 W/h, dann erhält man mit dem Faktor 1000 den Wert in kW angezeigt. Da mein Zähler 1 Impuls pro 2,5 W/h liefert, muss ich 2500 (statt Standardwert 1000) als Faktor einstellen.
Danach würde ich bei Dir den readingFactor3 500 setzen und nicht 2000.

Erklärt jetzt sicher nicht Dein eigentliches Problem. Welches Reading meinst Du eigentlich mit hüpft? power3?

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Fritz Muster am 15 August 2017, 10:35:58
hast Du mal falling statt rising verwendet?

Hatte auch mal bei der Fehlersuche / rumprobieren mit falling versucht. Dann waren aber die Zählimpulse nio. Kann aber durchaus sei, das der Arducounter durch das viele hin und her durcheinader war. Werde mal den Counter löschen und mit falling neu aufsetzen.

Danke für den Tipp.

Welches Reading meinst Du eigentlich mit hüpft? power3?

Nein das Reading S0EnergWp_kWh "hüpft"

Auch Dir vielen Dank für Deine Anmerkung, obwohl das mit der Berechnung des Factors ich noch nicht nachvollziehen kann. Aber erstmal will ich das Problem mit dem readingfactor in den Griff bekommen.

Grüße Fritz
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 15 August 2017, 16:03:56
Hallo Fritz,

aber readingNamePower3 S0EnergWp_kWh ist doch power3?!
Zitat
readingNamePower[0-9]+
Change the name of the power reading powerX to something more meaningful.

Und auch wenn Du es so benennst power3 liefert Dir Momentanleistung in Watt und nicht kWh!

Die kWh liefert Dir dein Zähler in Impulsen und bei Dir entspricht 1 Impuls 0,0005 kWh.

Ich hätte ja spontan behauptet die Sprünge kommen einfach von den digitalen Restfehlern bei der Berechnung, aber das kann eigentlich bei 2000 Impulsen  pro kWh nicht sein.

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Fritz Muster am 16 August 2017, 10:16:04
Und auch wenn Du es so benennst power3 liefert Dir Momentanleistung in Watt und nicht kWh!

Danke Otto, dann habe ich den Fehler. Ich bin davon ausgegangen das das power3 reading mir die kWh (mit Hilfe des Factors) ausgibt. Daher auch meine Benennung des readings (S0EnergWp_kWh)  ;).

Habe somit bei dem reading power3 ein stetig steigenden Wert erwartet (kummulierte kWh`s). Da es sich aber um die momentane Leistung handelt machen die angezeigten Werte natürlich Sinn und scheinen korrekt zu sein.

Also muss ich mir mit einem userreading den Wert für die Arbeit (kWh) selber bauen, Richtig?

Nochmal Danke und Grüße
Fritz
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 16 August 2017, 10:23:56
Moin Fritz,

rüschdüsch  ;D ;D ;D

So etwa -> attr userReadings S0CounterWP Zaehler monotonic {ReadingsVal("S0CounterWP","pin3",0)/2000}Dann gehst Du vor Deinen Zähler liest den Zählerstand ab und machst setreading S0CounterWP Zaehler <Wert> in und Zukunft sollte alles synchron laufen.

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: FunkOdyssey am 19 August 2017, 22:26:45
Ich habe auch das Problem, dass sich der Counter bei jedem Pi-Neustart zurücksetzt.
Man kann das also mit nem 10uf-Kondensator lösen?
Aber warum wird das Reading überhaupt überschrieben? Sind die Werte nicht im fhem.state und werden wiederhergestellt? Warum lässt man es dann zu, dass der Nano die Werte nullt?
Oder wo liegt mein Gedankenfehler?
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 19 August 2017, 23:56:43
https://forum.fhem.de/index.php/topic,19285.msg554986/topicseen.html#msg554986
Und dann dort etwas weiter lesen....
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: FunkOdyssey am 20 August 2017, 00:50:07
Ja, das kannte ich schon. Darum hatte ich das mit dem Kondensator auch erwähnt.
Ich frage mich nur, warum sich der Counter davon irritieren lässt, da man in FHEM doch alles hat. Der Arduino muss doch nur inkrementieren. Der eigentliche Wert steckt doch im Reading und nicht im Arduino, oder?
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 20 August 2017, 00:57:22
Zitat
Der interne Zähler ist ja unabhängig von der Ausgabe der Impulse je Intervall und alle paar Wochen läuft der sowieso über.

In dem Du das userreadings wie oben erwähnt anlegst, passiert ja genau das. Die gezählten Impulse werden einfach in FHEM inkrementiert. Dann steckt der eigentliche Wert im Reading.

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: FunkOdyssey am 20 August 2017, 14:24:47
Oh man. Ich war die ganze Zeit auf die Hardware fixiert und sehe jetzt erst, dass in jedem zweiten Post über userreadings die Rede ist. Sorry. Das habe ich glatt übersehen.

Mein Counter-Reading lautet "Gas".

Ich hoffe, dass der folgende Ansatz funktioniert.

userReadings Zaehler:Gas.* monotonic {ReadingsVal($name,"Gas",0)}
Ich wundere mich über den modifier "monotonic". Laut CommandRef:

Zitat
monotonic: wenn die Differenz zw. dem aktuellen und dem vorherigen Wert positiv ist wird diese Differenz zum Reading addiert. Damit lässt sich von einem Zähler der bei Stromverlust zurückgesetzt wird ein monoton wachsender Zähler ableiten.

Den habe ich zuvor noch nie gesehen. Hoffentlich bewirkt er Wunder. :-)



Wieso beschäftige ich mich eigentlich immer in der Sommerzeit mit dem Gas-Zähler? :-)
Da muss man tagelang auf eine Veränderung warten. Eigentlich gut - aber schlecht zum Debuggen.
Da muss der Magnet halt herhalten. :-)
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: FunkOdyssey am 21 September 2017, 12:17:36
Ich habe nun seit etwa einem Monat den ArduCounter im Betrieb. Im Vergleich zu vorher (GPIO) habe ich endlich aussagekräftige Plots und der GasCalculator rechnet nun auch besser. :-)

Aber irgendwie laufen FHEM-Zähler und der echte Gaszähler (Elster BK-4M) auseinander.

Datum FHEM Zähler Differenz
09.09.2017 3953,826 3953,765 0,061
16.09.2017 3957,156 3957,107 0,049
18.09.2017 3957,666 3957,614 0,052

Mein ArduCounter:
Internals:
   DEF        /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@38400
   DeviceName /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@38400
   FD         4
   Initialized 1
   NAME       ArduCounter
   NOTIFYDEV  global
   NR         592
   NTFY_ORDER 50-ArduCounter
   PARTIAL
   STATE      opened
   TYPE       ArduCounter
   VersionFirmware 1.8
   VersionModule 4.71 - 9.5.2017
   buffer
   READINGS:
     2017-09-21 12:14:24   Gas             0
     2017-09-21 12:14:24   Zaehler         867
     2017-09-21 12:14:24   power4          0.000
     2017-09-21 09:39:16   state           opened
Attributes:
   factor     100
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   interval   60 300
   pinD4      falling pullup
   readingNameCount4 Gas
   userReadings Zaehler:Gas.* monotonic {ReadingsVal($name,"Gas",0)}
   userattr   pinD4 readingNameCount4 readingNamePower4

Hat jemand einen Tipp, wie ich das in den Griff bekommen kann? Vielen Dank.



Zu dieser Jahreszeit hat man ja nur wenige Zyklen, wo nur für kurze Zeit Gas benötigt wird. Im Thread habe ich aus ausführlichen Ausführungen (https://forum.fhem.de/index.php/topic,19285.msg513028.html#msg513028) zu den verschiedenen Intervallen (normal max min mincout) gelesen.

Ich versuche es mal mit: interval 60 600 10

Nur mincount habe ich noch nicht verstanden.
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 23 September 2017, 13:42:24
Hallo zusammen

Bin gerade dabei mich mit dem ArduCounter vertraut zu machen. Momentan noch mit einem Versuchsaufbau auf einem Breadboard. Ich verwende einem 10uF Kondensator, Sketch V1.8 und die S0 Schnittstelle simuliere momentan mit einem Taster.

Dabei ist mir aufgefallen, dass jeweils immer der erste Impuls (nach Reset oder Stromunterbruch) ignoriert wird. Ab dem zweiten Impuls wird dann zuverlässig gezählt.
Ist dieses (? Fehl- ?) Verhalten auch sonst noch jemandem aufgefallen?

@ FunkOdyssey: Könnte dies deine Abweichungen erklären?

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 23 September 2017, 14:18:01
Hallo birdy,

wenn der erste Impuls scheinbar nicht gezählt wird, könnte das an einer falschen Polarität liegen,
so dass nicht die Impulse sondern die Pausen zwischen den Impulsen gezählt werden.
Poste doch mal Deine Konfiguration und ein Log mit Verbose 5...

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 23 September 2017, 14:23:08
Hallo FunkOdyssey,

weicht der Zählerstand im laufenden Betrieb ab oder hattest Du Unterbrechungen (Fhem-Neustart o.ä.) dazwischen?

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: FunkOdyssey am 23 September 2017, 20:15:01
Hmm. Ich hatte definitiv einige Neustarts dazwischen. Ich halte mein FHEM fast tagaktuell.
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 23 September 2017, 23:29:24
...könnte das an einer falschen Polarität liegen,

Hallo Stefan

An der falschen Polarität von was?

Konfig:
Internals:
   DEF        /dev/ttyUSB0@38400
   DeviceName /dev/ttyUSB0@38400
   FD         4
   Initialized 1
   NAME       AC
   NOTIFYDEV  global
   NR         21
   NTFY_ORDER 50-AC
   PARTIAL
   STATE      opened
   TYPE       ArduCounter
   VersionFirmware 1.8
   VersionModule 4.71 - 9.5.2017
   buffer
   READINGS:
     2017-09-23 23:02:55   pin4            0
     2017-09-23 23:02:55   power4          0.000
     2017-09-23 11:44:17   state           opened
Attributes:
   factor     10000
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   pinD4      rising pullup
   userattr   pinD4
   verbose    5


Testablauf

23:18:30   Reset ausgelöst
23:18:40   1. Impuls
23:18:50   2. Impuls

Log:

2017.09.23 23:18:30 3: Opening AC device /dev/ttyUSB0
2017.09.23 23:18:30 3: Setting AC serial parameters to 38400,8,N,1
2017.09.23 23:18:30 3: AC device opened
2017.09.23 23:18:30 5: SW: r

2017.09.23 23:18:31 3: AC: device sent setup message, V1.8
2017.09.23 23:18:31 4: AC: device reported firmware 1.8
2017.09.23 23:18:31 3: AC: ConfigureDevice calls Attr with pinD4 rising pullup
2017.09.23 23:18:31 5: SW: 4,3,1a

2017.09.23 23:18:31 3: AC: device: defined pin 4 PCInt pin 20, iMode rising, no min len, count 0 (+0) in 0 ms
2017.09.23 23:19:30 4: AC: Pin 4 (pin4) count 1 (diff 1) in 10.280s, result 3.502
2017.09.23 23:19:30 5: AC: interval 23:19:20 until 23:19:30
2017.09.23 23:19:30 5: AC: set readings power4 to 3.502, timeDiff4 to 10280 and countDiff4 to 1
2017.09.23 23:19:30 5: AC: Device Time 41953.51, Drift -0.141s in 269.974s, -0.05%

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 24 September 2017, 11:00:18
Hallo birdy,

Die ArduCounter Firmware beginnt beim ersten Impuls mit der Messung und hat beim zweiten Impuls erstmals ein Intervall, mit dem gerechnet werden kann.
Der erste Impuls geht daher in der Zählung verloren, was aber normalerweise nicht weiter interessant ist, da vor dem Neustart ja typischerweise noch viel mehr Impulse nicht gezählt werden können
(wenn ArduCounter nicht läuft bzw. Fhem gerade neu startet, kann nicht gezählt werden).

Wenn die Firmware den ersten Impuls schon berücksichtigen würde, würde das die Messung ungenauer machen, da dann das zugehörige Intervall unbekannt ist bzw. Impulse / Intervall nicht korrekt ist.

Man könnte natürlich versuchen abzuschätzen, wie viele Impulse nach einem Neustart unter Annahme des aktuellen Energieverbrauchs bis zum Weiterzählen verpasst worden sein könnten... Aber ich denke das ist so oder so falsch.

Zur Polarität:
Da ist vor allem dann interessant, wenn Du die Pulslängen überwachst (z.B. 30 als minimale Pulslänge um Störsingnale ignorieren zu können). Dann gibt rising oder falling an, ob die Impulse auf 0 gehen oder 1.
wenn Du "pullup" angegeben hast, vermute ich, dass Dein Zähler als Impuls den Ausgang auf Masse zieht. Das ist auch bei meinen Stromzählern der Fall.
Mit "rising sagst Du aber dass die steigende Flanke gezählt werden soll. Das wäre gerade falsch herum und Du würdest Pausen statt Impulse überwachen.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 24 September 2017, 15:43:09
Hallo,

ich hab mal ein neues Feature zum Testen, mit dem evt. die monotonic user readings für den ArduCounter überflüssig werden und der Zählerstand auch beim Restart nicht mehr so weit abdriftet:

Wenn verboseReadingsX (X für den Pin) auf 1 steht, wird nun auch ein Reading longCountX erzeugt (kann aber mit readingNameLongCount umbenannt werden).
Dieses Reading zeigt nicht den internen Zähler im Arduino sondern addiert immer die Differenzen auf.
Wenn der Arduino sich mit seiner Setup-Meldung meldet, ermittelt das Modul die Zeit seit der letzten Zähler-Meldung und der neuen Setup-Meldung und versucht die ausgelassenen Pulse zu schätzen und addiert auch diese Zahl. Korrekt wird sie vermutlich nicht sein...

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: FunkOdyssey am 24 September 2017, 20:29:54
Ich probiere das morgen mal aus.
Ich kann mir aber irgendwie nicht vorstellen, dass ein Neustart die Differenzen vollständig verursacht. Ich habe am Tag gerade einmal zwei-drei Zyklen wo der Gaszähler kurz anläuft. Da muss ich schon richtig Pech haben, dass ich genau dann mein FHEM neu starte. Da stehe ich meistens in der Dusche. 😄

Okay, es wird vielleicht der erste Impulse nicht gezählt, weil es ohne Zeitdelta halt kein Intervall geben kann. Ich werde die Zähler gleich mal wieder angleichen und morgen weiterschauen.
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 25 September 2017, 23:45:31
Hallo Stefan

Ui ja, das hatte ich so nicht bedacht. Der Impuls ist wenn der Ausgang kurzzeitig auf 0=Masse gezogen wird. Das ist bei der S0-Schnittstelle wie auch bei meinem Versuchsaufbau mit dem Taster so. Der Impuls beginnt gem. meinem Verständnis mit einer fallenden Flanke und endet mit einer steigenden. Ist es da wirklich von Bedeutung ob bei der steigenden Flanke, der fallenden oder irgendwo dazwischen gezählt wird?

Wenn man die Impulslänge überwachen möchte (was ich eigentlich möchte) kann man natürlich nicht schon bei der ersten Flanke zählen. Zu diesem Zeitpunkt ist ja noch nicht bekannt ob der Impuls auch die notwendigen 30ms andauern wird. Man muss also zwischendurch, sobald die 30ms erreicht sind, oder am Ende bei steigender Flanke zählen, sofern mind. 30ms verstrichen sind.

Der Energieversorger hat mich nicht direkt an die S0-Schnittstelle des Zählers gelassen. Der hatte Angst mein Nano könnte den Zähler beschädigen. Somit musste der Installateur ein Relais dazwischen schalten. Wie lange diese Relaisimpulse dauern ist mir momentan noch nicht bekannt. Dazu muss ich erst noch ein passendes Messgerät organisieren.

An dieser Stelle ein herzliches Dankeschön für die Tolle Arbeit die Du bisher geleistet hast.


Wir haben doch einen Energiezähler der einfach „nur“ Energie zählt. Dabei entspricht jeder Impuls einer definierten Grösse bei mir z.B. 0.01 KWh. Warum man hier den ersten Impuls ignoriert ist mir nicht klar. Ich kann keinen Sinn dahinter erkennen.

Das Andere ist, wir würden gerne die „momentane“ Leistung im KW kennen. Dabei muss dann die Energie auf eine bestimmte Zeitspanne aufgerechnet werden. Dazu ist ein Startschuss erforderlich (1. Impuls) und natürlich ist erst ab dem zweiten Impuls eine Leistungsangabe möglich. In diesem Zusammenhang wird eine Leistungsangabe ja sowieso immer indirekt ermittelt und ist ein Durchschnitt über ein bestimmtes Zeitfenster. Abhängig davon wie man die Intervalle legt und wann der nächste Impuls kommt oder kommen wird. Das hast Du ja in einem Deiner ersten Post ausführlich beschrieben. Würde die Firmware bereits den ersten Impuls zählen würde die „Messung“ genauer, die errechnete Leistung könnte wie von Dir angesprochen etwas ungenauer werden. Aber dies wäre doch nur für die sehr kurze Dauer der ersten Messperiode für die Leistung von Bedeutung. Meiner Ansicht nach absolut vernachlässigbar, im Vergleich zur Energiemessung. Man könnte sogar überlegen im ersten Intervall die Leistung wegzulassen. Bei der Energiemessung schleppt man aber jede einzelne Abweichung (kumulierend) für immer mit :(

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Markus Bloch am 26 September 2017, 09:26:49
Warum man hier den ersten Impuls ignoriert ist mir nicht klar. Ich kann keinen Sinn dahinter erkennen.

Weil Du bei dem ersten Impuls nicht die genaue Zeit zum vorrangegangenen Impuls kennst (wo ja noch garnicht mitgelauscht wurde). Wenn Du jetzt den ersten Impuls direkt zählst und der kommt nur wenige Sekunden nach dem Start, dann hast du plötzlich einen hohen Stromverbrauch anliegen, obwohl dem in Wirklichkeit nicht so ist. Daher ignoriert man den ersten Impuls, aber zählt von da an die Zeit bis zum zweiten Impuls. Dann hat man einen validen Wert

Gruß
Markus
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 26 September 2017, 11:29:13
.... dann hast du plötzlich einen hohen Stromverbrauch anliegen,....

Hallo Markus

Was verstehst Du unter Stromverbrauch?

Bei mir wird der „Stromverbrauch“ vom „Stromzähler“ gezählt und der ermittelt was ich dem EW zahlen muss. Das wird nun mal in KWh gemessen, schau doch mal auf deinen Zähler. Das was Du meinst ist wohl die (momentane) Leistung. Bezieht man kurzfristig eine hohe Leistung führt dies noch lange nicht zu einem hohen „Stromverbrauch“ und in der Folge zu hohen Kosten. Wie bereits erklärt (mein letzter Post war möglicherweise etwas (zu) lange) kann die Leistung natürlich erst ab den zweiten Impuls gerechnet werden. Für den Energieverbrauch, dass was der „Stromzähler“ zählt, macht es aber absolut keinen Sinn irgendeinen Impuls zu ignorieren.

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: FunkOdyssey am 26 September 2017, 11:48:42
Hallo, ich hab mal ein neues Feature zum Testen, mit dem evt. die monotonic user readings für den ArduCounter überflüssig werden und der Zählerstand auch beim Restart nicht mehr so weit abdriftet:
Wenn verboseReadingsX (X für den Pin) auf 1 steht, wird nun auch ein Reading longCountX erzeugt (kann aber mit readingNameLongCount umbenannt werden).
Dieses Reading zeigt nicht den internen Zähler im Arduino sondern addiert immer die Differenzen auf.
Wenn der Arduino sich mit seiner Setup-Meldung meldet, ermittelt das Modul die Zeit seit der letzten Zähler-Meldung und der neuen Setup-Meldung und versucht die ausgelassenen Pulse zu schätzen und addiert auch diese Zahl. Korrekt wird sie vermutlich nicht sein...

Kurzer Zwischenbericht: Ich habe meinen ArduCounter ein wenig umgebaut und die Umbennenung der Readings entfernt. Also nicht mehr vergleichbar mit den vorherigen Posts.

Internals:
   DEF        /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@38400
   DeviceName /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@38400
   FD         5
   Initialized 1
   NAME       ArduCounter
   NOTIFYDEV  global
   NR         592
   NTFY_ORDER 50-ArduCounter
   PARTIAL
   STATE      opened
   TYPE       ArduCounter
   VersionFirmware 1.8
   VersionModule 4.71 - 9.5.2017
   buffer
   CounterInterpolated:
   READINGS:
     2017-09-26 11:29:13   Zaehler         1023
     2017-09-26 11:29:13   countDiff4      0
     2017-09-26 11:29:13   lastMsg4        R4 C156 D0 T600000 N419047057
 
     2017-09-26 11:29:13   long4           58
     2017-09-26 11:29:13   pin4            156
     2017-09-26 11:29:13   power4          0.000
     2017-09-26 11:29:13   reject4
     2017-09-21 15:06:43   state           opened
     2017-09-26 11:29:13   timeDiff4       600000
Attributes:
   factor     100
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   interval   60 600 10
   pinD4      falling pullup
   readingFactor4 100
   userReadings Zaehler:pin4.* monotonic {ReadingsVal($name,"pin4",0)}
   userattr   pinD4 readingFactor4 readingNameCount4 readingNamePower4 verboseReadings4
   verboseReadings4 1

Mit "longCountX" meinst du das neue Reading "longX", oder? (-Count)
Mir fällt auf, dass beide Werte von pin4 und long4 nicht mehr zurückgesetzt werden. Mein userReading 'Zaehler' habe ich noch drin gelassen. Quasi als temporäres Backup-Reading.
Nachtrag: Beim nächsten Intervall wurde pin4 genullt. long4 hat seine Werte behalten. Also exakt so wie du es beschrieben hast.

Am Rande:
Ich habe den Gaszähler immer schon mit einem 13 kOhm Widerstand auf 3,3 Volt gezogen. So hatte ich das damals bei der GPIO-Variante auch. Das sollte ich doch belassen, oder? "falling pullup" ist doch dennoch korrekt, oder?

Ich hatte gestern übrigens innerhalb von 4 Stunden eine Abweichung von 0,014 kWh zwischen dem ArduCounter und Zähler. Es gab zu dieser Zeit keinen Neustart.
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 26 September 2017, 20:52:41
Hallo birdy,

die neue Version, die ich gepostet habe, hat ein neues Reading, bei dem auch der erste Impuls immer mitgezählt wird.
Probier's doch mal aus.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 26 September 2017, 21:01:05
Hallo FunkOdyssey,

pullup kannst Du weglassen wenn Du extern schon einen pullup-Widerstand angeschlossen hast. Sollte aber auch kein Problem sein.
Wenn auch ohne Neustart Impulse verloren gehen, kann es eigentlich kein Software-Problem mehr sein. Das hätte Otto schon bemerkt ;-)

Vielleicht kommen Impulse zwischendurch mal zu schnell für den Arduino oder die Impulse sind gelegentlich zu schwach. Es gab auch schon Probleme mit defekten Arduinos.

Oder gehen gar keine Impulse verloren sondern die Berechnung des Stromverbrauchs ist das Problem?
Kannst Du zum Testen einen anderen Impuls-Zähler parallel anschließen?

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 27 September 2017, 22:41:52
Probier's doch mal aus.

Funktioniert ausgezeichnet,
Korrektur…
Stefan, wo genau sollte ich das Reading sehen welches ab dem ersten Impuls zählt?

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 29 September 2017, 23:03:56
Mein Problem: Sobald ich verboseReadings4 auf 1 setze geht nichts mehr, aus die Maus :(
Der Webinterface ich nach ein paar Sekunden nicht mehr erreichbar. Wahrscheinlich beim Übergang zum nächsten Intervall.
Was mache ich falsch?
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 29 September 2017, 23:15:55
Hallo Birdy,

poste doch bitte Deine aktuelle Konfiguration und einen Auszug aus dem Log mit verbose 5 für den relevanten Zeitraum.

Gruß
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 02 Oktober 2017, 22:33:51
poste doch bitte Deine aktuelle Konfiguration und einen Auszug aus dem Log mit verbose 5 für den relevanten Zeitraum.

Hier die Konfiguration, natürlich noch bevor ich verboseReadings4 auf 1 gesetzt habe.
Internals:
   CounterResetTime 1506974919.01365
   DEF        /dev/ttyUSB0@38400
   DeviceName /dev/ttyUSB0@38400
   FD         4
   Initialized 1
   NAME       AC
   NOTIFYDEV  global
   NR         21
   NTFY_ORDER 50-AC
   PARTIAL
   STATE      opened
   TYPE       ArduCounter
   VersionFirmware 1.8
   VersionModule 4.8 - 24.9.2017
   buffer
   READINGS:
     2017-10-02 22:12:04   pin4            16
     2017-10-02 22:12:04   power4          0.033
     2017-10-02 22:08:32   state           opened
Attributes:
   factor     100
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   pin4       falling pullup
   userattr   pin4
   verbose    5

Dann habe ich ca. 22:13  verboseReadings4 auf 1 gesetzt..
2017.10.02 22:09:25 3: AC: Sending info command to device
2017.10.02 22:09:25 3: AC: device: normal interval 30000
2017.10.02 22:09:25 3: AC: device: max interval 60000
2017.10.02 22:09:25 3: AC: device: min interval 2000
2017.10.02 22:09:25 3: AC: device: min count 1
2017.10.02 22:09:25 3: AC: device: pin 4 PCInt pin 20, iMode falling, no min len, count 0 (+0) in 6654 ms
2017.10.02 22:09:25 3: AC: device: Next report in 8782 Milliseconds
2017.10.02 22:09:30 3: AC: Sending info command to device
2017.10.02 22:09:30 3: AC: device: normal interval 30000
2017.10.02 22:09:30 3: AC: device: max interval 60000
2017.10.02 22:09:30 3: AC: device: min interval 2000
2017.10.02 22:09:30 3: AC: device: min count 1
2017.10.02 22:09:30 3: AC: device: pin 4 PCInt pin 20, iMode falling, no min len, count 3 (+3) in 11363 ms
2017.10.02 22:09:30 3: AC: device:   first at 39832, last at 51195, avg len 0
2017.10.02 22:09:30 3: AC: device: Next report in 3341 Milliseconds
2017.10.02 22:09:34 1: PERL WARNING: Use of uninitialized value $longCount in concatenation (.) or string at ./FHEM/98_ArduCounter.pm line 642.
2017.10.02 22:10:34 4: AC: Pin 4 (pin4) count 9 longCount  (diff 5) in 56.300s, result 0.032
2017.10.02 22:10:34 5: AC: interval 22:09:37 until 22:10:34, First at 47437
2017.10.02 22:10:34 5: AC: set readings power4 to 0.032, timeDiff4 to 56300 and countDiff4 to 5
2017.10.02 22:10:34 5: AC: Device Time 120, Drift -0.035s in 59.965s, -0.06%
2017.10.02 22:11:04 4: AC: Pin 4 (pin4) count 12 longCount  (diff 3) in 30.580s, result 0.035
2017.10.02 22:11:04 5: AC: interval 22:10:33 until 22:11:04, First at 29313
2017.10.02 22:11:04 5: AC: set readings power4 to 0.035, timeDiff4 to 30580 and countDiff4 to 3
2017.10.02 22:11:04 5: AC: Device Time 150, Drift -0.053s in 89.947s, -0.06%
2017.10.02 22:12:04 4: AC: Pin 4 (pin4) count 16 longCount  (diff 4) in 43.618s, result 0.033
2017.10.02 22:12:04 5: AC: interval 22:11:20 until 22:12:04, First at 42695
2017.10.02 22:12:04 5: AC: set readings power4 to 0.033, timeDiff4 to 43618 and countDiff4 to 4
2017.10.02 22:12:04 5: AC: Device Time 210, Drift -0.088s in 149.912s, -0.06%
2017.10.02 22:13:04 4: AC: Pin 4 (pin4) count 16 longCount  (diff 0) in 81.696s, result 0.000
2017.10.02 22:13:04 5: AC: interval 22:11:42 until 22:13:04
2017.10.02 22:13:04 5: AC: set readings power4 to 0.000, timeDiff4 to 81696 and countDiff4 to 0
2017.10.02 22:13:04 5: AC: Device Time 270, Drift -0.123s in 209.877s, -0.06%
Illegal division by zero at ./FHEM/98_ArduCounter.pm line 625.
2017.10.02 22:15:06 1: Including fhem.cfg
2017.10.02 22:15:06 3: telnetPort: port 7072 opened
2017.10.02 22:15:06 3: WEB: port 8083 opened
2017.10.02 22:15:06 3: WEBphone: port 8084 opened
2017.10.02 22:15:06 3: WEBtablet: port 8085 opened
2017.10.02 22:15:06 2: eventTypes: loaded 75 events from ./log/eventTypes.txt
2017.10.02 22:15:06 2: VCONTROL300: Using USB device
2017.10.02 22:15:06 3: VCONTROL300: Define open DATEI 'VPlusHO1_300.cfg'
2017.10.02 22:15:06 3: VCONTROL300: Opening file 'VPlusHO1_300.cfg'
2017.10.02 22:15:06 3: VCONTROL300: File 'VPlusHO1_300.cfg' refreshed
2017.10.02 22:15:06 3: VCONTROL300: Using protocol 300
2017.10.02 22:15:07 1: Including ./log/fhem.save
2017.10.02 22:15:07 3: WARNING: unsupported character in reading Temp-Aussen? (not A-Za-z/\d_\.-), notify the VCONTROL300 module maintainer.
2017.10.02 22:15:07 5: AC: Notify called with events: INITIALIZED, open device and set timer to send hello to device
2017.10.02 22:15:07 3: Opening AC device /dev/ttyUSB0
2017.10.02 22:15:07 3: Setting AC serial parameters to 38400,8,N,1
2017.10.02 22:15:07 3: AC device opened
2017.10.02 22:15:07 1: usb create starting
2017.10.02 22:15:07 3: Probing CUL device /dev/ttyAMA0
2017.10.02 22:15:07 3: Probing TCM_ESP3 device /dev/ttyAMA0
2017.10.02 22:15:07 3: Probing ZWDongle device /dev/ttyAMA0
2017.10.02 22:15:08 3: Probing FRM device /dev/ttyAMA0
2017.10.02 22:15:13 1: usb create end
2017.10.02 22:15:13 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no associated allowed device with basicAuth. telnetPort has no associated allowed device with password/globalpassword.  Restart FHEM for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2017.10.02 22:15:13 0: Featurelevel: 5.8
2017.10.02 22:15:13 0: Server started with 11 defined entities (fhem.pl:15112/2017-09-21 perl:5.020002 os:linux user:fhem pid:624)
2017.10.02 22:15:13 3: AC: sending h(ello) to device to ask for version
2017.10.02 22:15:13 5: SW: h

2017.10.02 22:15:13 3: VCONTROL300: USB connection opened
2017.10.02 22:15:13 3: Opening Heizung device /dev/ttyUSB1
2017.10.02 22:15:13 3: Can't open /dev/ttyUSB1: Datei oder Verzeichnis nicht gefunden
2017.10.02 22:15:13 2: Attempt to write to disconnected device.
2017.10.02 22:15:13 3: AC: device sent setup message, V1.8
2017.10.02 22:15:13 4: AC: device reported firmware 1.8
2017.10.02 22:15:13 3: AC: ConfigureDevice calls Attr with pin4 falling pullup
2017.10.02 22:15:13 5: SW: 4,2,1a

2017.10.02 22:15:13 3: AC: device replied to hello, V1.8
2017.10.02 22:15:13 4: AC: device reported firmware 1.8
2017.10.02 22:15:13 3: AC: ConfigureDevice calls Attr with pin4 falling pullup
2017.10.02 22:15:13 5: SW: 4,2,1a

2017.10.02 22:15:13 3: AC: device: defined pin 4 PCInt pin 20, iMode falling, no min len, count 0 (+0) in 0 ms
2017.10.02 22:15:13 3: AC: device: defined pin 4 PCInt pin 20, iMode falling, no min len, count 0 (+0) in 8 ms

Kurz darauf habe ich den Pi frisch gestartet weil das Webinterface von FHEM nicht mehr erreichbar war.

Mach ich etwas falsch?
So wie ich verstanden habe muss man verboseReadingsX au 1 setzen um ein Reading longCount zu erzeugen.

Schon mal vielen Dank für Deine Hilfe.

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: FunkOdyssey am 04 Oktober 2017, 12:40:59
Oder gehen gar keine Impulse verloren sondern die Berechnung des Stromverbrauchs ist das Problem?

Ich habe die Werte im Gaszähler, im ArduCounter und im GasCalculator-Device manuell überprüft und kann bestätigen, dass es nicht am GasCalculator-Device und dann auch vermutlich nicht am ArduCounter liegt. Fakt ist, dass die Impulse irgendwie nicht immer 100%ig erkannt werden.

Kannst Du zum Testen einen anderen Impuls-Zähler parallel anschließen?

Leider habe ich keinen zweiten Zähler. Die Investition würde ich mir auch gerne ersparen.

Vielleicht kommen Impulse zwischendurch mal zu schnell für den Arduino oder die Impulse sind gelegentlich zu schwach. Es gab auch schon Probleme mit defekten Arduinos.

Ottos Erfahrung mit einem defekten Arduino hatte ich gelesen. Ich habe aber bereits unterschiedliche Ardus getestet.
Ich könnte mir vorstellen, dass es irgendetwas mit den Flanken und dem PullUp zu tun hat. Gab es nicht auch Wege über Kondensatoren anstatt über PullUp-Widerstände? Kann da jemand eine Empfehlung aussprechen?

Hat irgendjemand den ArduCounter an einem Elster Gas Meter BK-G4M im Einsatz?
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 04 Oktober 2017, 20:40:04
Hallo birdy,

Du hast einen Bug gefunden.
Neue Version kommt ...

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 04 Oktober 2017, 21:35:00
Neue Version kommt ...

Ausgezeichnet, schon mal vielen Dank.

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: AxelSchweiss am 04 Oktober 2017, 22:19:12
Hi
Immer wenn ich FHEM neu starte wird der Counter wieder auf 0 gesetzt.
Mach ich da was falsch oder muss ich noch etwas einstellen?
Meine momentane Config:
define ArduCounter ArduCounter /dev/ttyUSB0
attr ArduCounter userattr pinD5
attr ArduCounter factor 15
attr ArduCounter flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
attr ArduCounter interval 10 60
attr ArduCounter pinD5 rising pullup

Die Modulversion ist $Id: 98_ArduCounter.pm 15148 2017-09-28 18:10:35Z StefanStrobelDie Version vom Sketch ist 1.8

Ansonsten ist FHEM uptodate


Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 04 Oktober 2017, 23:37:54
Hi
Immer wenn ich FHEM neu starte wird der Counter wieder auf 0 gesetzt.
die Beschreibung gab es schon mal viel weiter vorn. Liegt am Reset des Arduino nano.

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: AxelSchweiss am 05 Oktober 2017, 00:06:09
Ah .. Danke .. habe ich nicht gefunden.
Mal sehen ob ich den Code so ändern kann das er die Werte ins EEPROM schreibt ... programmieren is ja nicht so meins  :)
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: AxelSchweiss am 05 Oktober 2017, 00:08:06
Moment ... dann müsste es doch mit einem Arduino Micro und einem FTDI Wandler funktionieren ... mal probieren
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 05 Oktober 2017, 00:10:09
lohnt sich nicht. Der Zähler läuft eh irgendwann über.
Mach ein userreadings mit monotonic BeispielZaehlerHzg monotonic {ReadingsVal("AC","pin4",0)/400}
Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 05 Oktober 2017, 20:27:53
... oder nimm die neue Version des Fhem-Moduls, die hat einen zusätzlichen Zähler, der weiterzählt und beim Neustart nicht auf 0 geht.
(verboseReadings muss dafür je Zähler auf 1 gesetzt sein)
Anbei eine Version, die hoffentlich keine neuen Bugs hat ;-)

Wenn keine neuen Probleme auftreten, checke ich die Version wieder ein.

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 05 Oktober 2017, 22:49:10
Hallo Stefan

Das Webinterface funktioniert nun auch wenn ich verboseReadingsX auf  1 setze.
Internals:
   CounterResetTime 1507233774.81938
   DEF        /dev/ttyUSB0@38400
   DeviceName /dev/ttyUSB0@38400
   FD         4
   Initialized 1
   NAME       AC
   NOTIFYDEV  global
   NR         21
   NTFY_ORDER 50-AC
   PARTIAL
   STATE      opened
   TYPE       ArduCounter
   VersionFirmware 1.8
   VersionModule 4.9 - 3.10.2017
   buffer
   CounterInterpolated:
     4          1
   READINGS:
     2017-10-05 22:04:24   countDiff4      2
     2017-10-05 22:04:24   lastMsg4        R4 C2 D2 T4840 N90522 F0 L4840
 
     2017-10-05 22:04:24   long4           54
     2017-10-05 22:04:24   pin4            2
     2017-10-05 22:04:24   power4          0.149
     2017-10-05 22:04:24   reject4
     2017-10-05 22:02:52   state           opened
     2017-10-05 22:04:24   timeDiff4       4840
Attributes:
   factor     100
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   pin4       falling pullup
   userattr   pin4 verboseReadings4
   verbose    5
   verboseReadings4 1

Ich habe jetzt auch das Reading longX welches nach einen Reset munter weiter zählt.
Aber der erste Impuls wir weiterhin unterschlagen.

Was muss ich beachten, damit jeweils auch der erste Impust gezählt wird?

Ich habe immer noch einen Versuchsaufbau mit Impulsgeber= Taster
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 06 Oktober 2017, 21:05:09
Hallo birdy,

wenn Du verboseReadings das erste mal auf 1 setzt dann wird der erste Impuls noch für den Start der Messung verwendet und nicht gezählt. Sobald aber einmal das Reading existiert, sollte auch nach einem Restart von Fhem jeder Impuls gezählt werden.

Anbei nochmal eine neue Version, in der auch der allererste Impuls gezählt wird wenn verboseReadings das erste mal definiert wurde.

Schau doch mal ob das bei Dir jetzt auch so klappt.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 07 Oktober 2017, 17:02:04
Hallo Stefan

Vielen Dank für Deine Bemühungen.

Ich konnte das folgende Verhalten feststellen. Dieses lässt sich auch jederzeit zuverlässig reproduzieren. Meine manuellen Impulse sehen meiner Meinung nach „sauber“ aus, so dass davon eigentlich kein Problem ausgehen sollte.

Wo wird der erste Impuls unterdrückt, geschieht dies im der Firmware des Arduino oder im AdruCounter Modul?


Internals:
   CounterResetTime 1507381057.041
   DEF        /dev/ttyUSB0@38400
   DeviceName /dev/ttyUSB0@38400
   FD         4
   Initialized 1
   NAME       AC
   NOTIFYDEV  global
   NR         21
   NTFY_ORDER 50-AC
   PARTIAL
   STATE      opened
   TYPE       ArduCounter
   VersionFirmware 1.8
   VersionModule 4.10 - 6.10.2017
   buffer
   CounterInterpolated:
     4          1
   READINGS:
     2017-10-07 15:28:36   countDiff4      0
     2017-10-07 15:28:36   lastMsg4        R4 C1 D0 T60000 N1860521
 
     2017-10-07 15:28:36   long4           147
     2017-10-07 15:28:36   pin4            1
     2017-10-07 15:28:36   power4          0.000
     2017-10-07 15:28:36   reject4
     2017-10-07 14:57:35   state           opened
     2017-10-07 15:28:36   timeDiff4       60000
Attributes:
   factor     100
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   pin4       falling pullup
   userattr   pin4 verboseReadings4
   verbose    5
   verboseReadings4 1

Update:
Ich habe wieder meinen 10uF Kondensator dazu geschaltet und nochmals ein paar Tests gemacht.
Restart von FHEM führt nicht zu einer Erhöhung des longX Wertes.
Ab den ersten Impuls wird korrekt gezählt.

Ich trenne den Arduino vorübergehend von Pi(Strom) und schliesse ihn dann wieder an. Jetzt verschwinden die ersten beiden Impulse wieder im schwarzen Loch.
Anscheinend ist es schwieriger Impulse zu zählen als ich gedacht hätte.

Gruss birdy

Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 08 Oktober 2017, 19:37:00
Hallo birdy,

ich möchte das Problem mit dem ersten Impuls nach einem Neustart nochmal versuchen in Perspektive zu setzen.

der Arducounter versucht eben nicht einfach nur Impulse in einem vorgegebenen Intervall zu zählen und diese an Fhem weiter zu geben.
Das machen andere Sketches. Das Problem ist dabei dass der aktuelle Verbrauch nicht exakt ermittelt werden kann und das Verbrauchs-Ergebnis (Impulse / Zeit) ständig leicht hin und her schwankt.

Die Idee beim Arducounter ist statt dessen, dass möglichst genaue Zeitintervalle von einem Startimpuls bis zu einem Endimpuls gemessen und weiter gegeben werden. Damit bekommt man eine glattere Verbrauchskurve.

Das bedeutet aber auch, dass man nicht direkt nach einem Reset des Arduino mit dem Zählen beginnen kann, da der Beginn des Intervalls seit dem letzten Impuls ja noch unbekannt ist. Deshalb beginnt der Arducounter nach einem Neustart erst nach dem ersten Impuls zu zählen.

Solange der Arducounter läuft, funktioniert das gut. Wenn der Arduino aber neu gestartet wird, muss man wieder bis zu einem ersten Impuls warten, bevor das Zeitmessen und Zählen beginnen kann.

Problematisch sind also die Neustarts des Arduino.

Der ganze Mechanismus mit dem longCount ist ein zum Scheitern verurteilter Versuch, den Zählerstand korrekt zu halten, auch wenn der Arduino zwischendrin neu startet und dabei gar nicht zählen kann und somit der Zählerstand nicht mehr korrekt sein kann.
Das Fhem-Modul berechnet dafür einen Mittelwert aus der letzten Messung vor dem Neustart und der ersten Messung nach dem Neustart und interpoliert für den Zeitraum dazwischen die vermutlich verpassten Impulse.
Diese Interpolation kann manchmal stimmen, sie kann aber auch falsch sein.

In jedem Fall ist es nicht besser als eine Näherung. Wer es genauer braucht, muss hardwareseitig dafür sorgen, dass der Arduino dauerhaft läuft und nicht neu startet.

Das Problem ist also folgendes:
1) Wenn der Arduino nicht läuft oder gerade neu startet, zählt er noch nicht.
2) Wenn der Arduino neu startet, gehen die Zählerstände und die gemessenen Zeitintervalle im Arduino verloren,
    sofern sie noch nicht an Fhem weiter gegeben wurden.
3) Wenn Fhem neu startet und der Arduino nicht hardwareseitig verändert wurde, startet auch der Arduino neu. -> 2)

Wenn verboseReadings noch nicht gesetzt ist, fehlen Readings, die für die Interpolation beim Neustart benötigt werden. Deshalb klappt es in diesem aller ersten Fall noch schlechter.
In der letzten Modulversion habe ich für diesen Fall statt der Interpolation (die noch nicht möglich ist) einfach einen Impuls als angenommenen Startimpuls auf longCount addiert. Das ist aber natürlich Unsinn, wenn gar keine Impulse gekommen sind. Das habe ich jetzt nochmal geändert.

So oder so ist aber jede Zählung falsch wenn der Arduino neu startet und somit Impulse verliert.

Wenn man nun Impulse zum Testen von Hand gibt, kann man bei Starten des Arduinos "Fehler" bemerken.
In der Praxis ist das aber völlig irrelevant, da der "Fehler" durch die verlorenen Impulse beim Neustart viel größer ist.

Um die Internas besser zu verstehen, kann man entweder verbose auf 4 oder sogar 5 setzen, dann schreibt das Modul einige Internas und vor allem die Meldungen vom Arduino ins Log, oder man kann den Quellcode vom Modul und dem Sketch lesen. Beides ist recht kurz und überschaubar.

Anbei nochmal eine neue Version, die für den ersten Neustart des Arduino (wenn verboseReadings zum ersten Mal gesetzt wird und die Readings für die Interpolation noch fehlen) nochmal etwas besser rät.

Ich habe es nicht mit Impulsen per Taster getestet, da mein Arducounter am Stromzähler hängt. Im laufenden Betrieb sieht es für mich gut aus und der Sonderfall für den ersten Start sollte für jeden Anwender eh nur einmal überhaupt relevant sein.
Sobald ich wieder etwas mehr Zeit habe, versuche ich nochmal einen Test-Arduino mit Taster aufzusetzen und das mit den zwei Impulsen nachzustellen.

Für weitere Bug-Reports wäre ein Auszug aus dem Log mit verbose 5 hilfreich. Da sehe ich dann was der Arduino gemeldet hat.

Gruss und vielen Dank für's Testen
   Stefan



Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 08 Oktober 2017, 21:44:47
Ergänzung:

Inzwischen konnte ich nachstellen, dass nach einem Restart des Arduino dieser erst mit dem zweiten Impuls zu zählen beginnt.
Das muss ein Bug bei der Initialisierung sein. Liegt auf jeden Fall im Arduino-Sketch und nicht im Fhem-Modul.
Neue Version kommt, sobald ich die Zeit hatte, den Fehler zu beheben.

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 09 Oktober 2017, 00:36:52
Hallo Stefan

Vielen Dank für Deine Arbeit. Es ist wirklich toll was Du hier gebaut hast. Deine Erklärung verstehe ich durchaus. Ich habe erst mal mit einem manuellen Aufbau getestet, denn ich möchte im Detail verstehen wie das Ganze funktioniert. So wird mir klar auf was ich mich „einlasse“, denn ich möchte nicht im Nachhinein enttäuscht sein. Das nicht immer alles nach meinen Vorstellungen funktioniert ist mir klar. Wenn das aber so ist, möchte ich wissen was abweicht, damit ich mich bewusst dafür oder dagegen entscheiden kann.
der Arducounter versucht eben nicht einfach nur Impulse in einem vorgegebenen Intervall zu zählen und diese an Fhem weiter zu geben.
Das ist ja genau der Vorteil von Deiner Lösung, dass die noch mehr kann. Darum habe ich Sie ja auch gewählt. Ich bin aber davon ausgegangen, dass er „eben einfach nur Impulse Zählen“ auch kann, und das ohne Probleme.

Deshalb beginnt der Arducounter nach einem Neustart erst nach dem ersten Impuls zu zählen.
Meine Meinung: Zählen sollte er schon, aber noch nicht rechnen.

Wenn der Arduino aber neu gestartet wird, muss man wieder bis zu einem ersten Impuls warten, bevor das Zeitmessen und Zählen beginnen kann.
Zeitmessen ist klar.

Möglicherweise hast Du hier einen anderen Standpunkt und dies ist bei Dir nicht die erste Priorität. Wenn das so ist, werde ich damit leben müssen und können. Ich für mich sehe es etwas anders. Ein korrektes Zählen ist für mich die Grundlage und das sollte so korrekt wie nur irgendwie möglich erledigt werden.

auch wenn der Arduino zwischendrin neu startet und dabei gar nicht zählen kann und somit der Zählerstand nicht mehr korrekt sein kann.
Evtl. gibt es in dieser Zeit auch gar nichts zu zählen. Es muss also nicht zwingend so sein, dass der Zählerstand abweichen muss.

Wie auch schon geschrieben ist jeder ignorierte Impuls, ein Fehler der sich bis in alle Ewigkeit weiter zieht. Ein beim Re- /Start falsch oder ungenau errechneter Momentanverbrauch ist für mich nicht von Bedeutung weil sich dieser nur auf den ersten Zyklus auswirkt und danach bereits Geschichte ist.
Toll das Du es mit einer Interpolation versuchst. Ich für mich sehe keinen wirklichen Bedarf. Ist es nicht so, dass Du hier viel Aufwand für etwas fast unmögliches betreibst. Ob sich dieser Einsatz auch auszahlt. Ich hoffe es.

1) Wenn der Arduino nicht läuft oder gerade neu startet, zählt er noch nicht.
Das ist mir klar.
2) Wenn der Arduino neu startet, gehen die Zählerstände und die gemessenen Zeitintervalle im Arduino verloren, sofern sie noch nicht an Fhem weiter gegeben wurden. 
Klar, Wie ich verstanden habe kann hier jeder Einfluss auf die Zeitintervalle und somit auf die Weitergabe nehmen.
3) Wenn Fhem neu startet und der Arduino nicht hardwareseitig verändert wurde, startet auch der Arduino neu. -> 2) 
Dafür habe ich den 10uF im Einsatz.

Wenn man nun Impulse zum Testen von Hand gibt, kann man bei Starten des Arduinos "Fehler" bemerken.
In der Praxis ist das aber völlig irrelevant, da der "Fehler" durch die verlorenen Impulse beim Neustart viel größer ist.
Kein Zweifel, bei einem Neustart könne natürlich Impulse verloren gehen, müssen aber nicht. Das hängt davon ab wie lange der Neustart dauert bzw. in welchen Abständen die Impulse daher kommen.

Evtl. nochmals kurz meine Vorstellung. Ob Du diese mit ArduCounter abdecken kannst oder willst, liegt natürlich bei Dir.
Möglichst korrektes Zählen der Impulse.


Schon mal vielen Dank für die neuen Versionen. 
Ich werte testen und meine Erkenntnisse bekannt geben..

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 14 Oktober 2017, 19:18:35
Hallo,

anbei eine neue Version des Moduls und ein neuer Arduino-Sketch bzw. die Firmware für den Arduino Uno dazu zum Testen.

In der Firmware war ein Bug in der Verarbeitung der Pin-Change-Interrupts, wodurch gelegentlich der erste Impuls nach einem Restart des Arduino ignoriert wurde (zusätzlich zu dem zweiten Impuls, der dann erst das Intervall gestartet hat).

Die neue Modulversion ist nicht mehr kompatibel zur alten Firmware. Sie zählt jetzt alle Impulse. Auch nach einem Restart des Arduino. Nur für die Berechnung des Verbrauchs wird im ersten Intervall der erste Impuls nicht für die Puls-Differenz verwendet sondern als Intervall-Start. Gezählt wird er aber dennoch.
So kann es nach dem Start sein, dass die erste Berechnung nach 30 Sekunden mit 4 Impulsen in 22 Sekunden erfolgt, der Zähler aber von 0 auf 5 geht.

Wen Ihr keine neuen / alten Bugs meldet, checke ich Firmware und Modul in den nächsten Tagen ein.

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: FunkOdyssey am 15 Oktober 2017, 17:46:46
Ich habe Modul und Firmware aktualisiert. Aber mal ne kurze Frage:

Muss ich bei mir evtl. nach einer anderen Ursache suchen, wenn mein Zähler in FHEM größer ist als der Wert am Gaszähler? Bei mir ist FHEM anscheinend schneller. Also sollte das bei mir doch sicherlich ein anderes Problem sein, oder?
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 15 Oktober 2017, 18:57:47
Hallo,

Bei jedem Fhem-Neustart wird ja interpoliert, wie viele Impulse der Zähler möglicherweise verpasst hat. Dadurch können Abweichungen entstehen.
Wenn es aber um größere Abweichungen geht, dann würde ich auch nach anderen Fehlerquellen suchen.
Hast Du eine minimale Pulsweite angegeben?
Das ist sinnvoll um Störimpulse auszufiltern.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 15 Oktober 2017, 21:33:31
Hallo Stefan

Vielen Dank für das Bereitstellen der neuen Versionen.

Ich bin gerade dabei die zu testen.

Bei jedem Fhem-Neustart wird ja interpoliert, wie viele Impulse der Zähler möglicherweise verpasst hat.
Was oder wie wird interpoliert? Es wäre hilfreich wenn Du dazu noch ein paar erklären Worte liefern könntest.

Ist es (nur) der Wert des Long Readings?
Ich denke da habe ich „willkürliche“ Sprünge nach vorne gesehen.

Was ist die Grundlage für die Interpolation.
Kann es sein, dass einfach der letzte Zyklus vor den Restart verwendet wird?
Angenommen der Physische -Zähler steht 1-2 Zyklen vor den Restart von FHEM. Muss ich dann mit einer „künstlichen“ Erhöhung von irgendwelchen Readings rechnen?

Besten Dank und Gruss
birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 16 Oktober 2017, 18:41:15
Hallo birdy,

die Interpolation betrifft nur den longCounter. Es wird der Mittelwert für Impulse / Intervall aus der letzten Messung vor dem Restart und der ersten Messung nach dem Restart genommen und mit der Dauer der Unterbrechung (Ende der letzten erfolgreichen Messung bis zur Started-Meldung des Arduino multipliziert.
Im Log wird das entsprechend protokolliert.
Siehe 98_Arducounter.pm in den Zeilen 626 bis 643.

Ich kann gerne alternative Interpolationen einbauen, sofern sie mit den vorhandenen Readings / Werten mit vertretbarem Aufwand machbar sind ;-)
Ebenso kann ich noch ein Attribut einbauen, mit dem die Interpolation ganz abgeschaltet wird.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 16 Oktober 2017, 22:17:21
Hallo Stefan

Vielen Dank für Deine Erklärungen.
Ich denke wenn Interpolation, dann mach sie so Sinn.
Ich habe vor im Keller neben dem Strom- auch den Ölzähler mit den Arducounter auszuwerten. Da ist mir wichtig, dass beim Ölzähler während den Sommermonaten, wenn die Heizung abgeschaltet ist, nicht irgendetwas interpoliert wird was es gar nicht gibt. Dabei soll egal sein wie oft ich restarte. Mit deiner Implementation der Interpolation scheint mir dies nun ideal gelöst zu sein (zumindest konnte ich noch nichts Gegenteiliges feststellen).

Ein Attribut um die Interpolation ein oder ausschalten zu können ist sicher eine gute Idee. Ich würde aber eher eine Lösung mit einem zweiten LongCounter priorisieren. So hätte man beide Werte zur Verfügung (mit und ohne Interpolation) und könnte den der besser passt auswählen. Aber notwendig ist dies nicht, ich denke ich komme mit der aktuellen Lösung ganz gut zurecht.

Besten Dank und Gruss
birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 17 Oktober 2017, 21:28:54
Hallo Stefan

Noch eine Frage: Ist bei besonders langen Impulsen mit Problemen zu rechnen?

Mein Durchlaufzähler in der Ölleitung hat ein Reedkontakt, welcher pro 0.1L ein Impuls gibt. Das bedeutet der Kontakt ist ca. 0.05L lang geöffnet und bleibt dann 0.05L lang geschlossen. Was eine Impulsdauer von gefühlten 2-3 Minuten ergibt. Stell die Heizung, ab dauert ein begonnener Impuls u.U. ewig.

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 17 Oktober 2017, 21:55:51
hallo birdy,

eigentlich sollte ein so langer Impuls kein Problem sein.
Der Arduino zählt ja über die pin change interrupts und merkt sich dort den vorherigen Zustand je Pin in Variablen.
Einen Timeout habe ich da nicht eingebaut. Wenn sich der Status an einem Pin nicht ändert, passiert einfach nichts weiter.

Anbei habe ich nochmal eine neue Version.
Ich habe Deine Idee aufgegriffen, einen long counter mit und ohne Interpolation einzubauen.
Der longX interpoliert jetzt nicht mehr, dafür gibt es noch ein zusätzliches Reading interpolatedLongX.
Beide Reading-Namen kann man wie üblich per Attribut ändern.
Die Firmware bleibt gleich, nur das Fhem-Modul hat ein paar Zeile Code dazu bekommen.

Ich komme jetzt leider auch in den nächsten Tagen nicht mehr zum Testen oder Programmieren.
Wenn also jemand bei Testen helfen möchte, wäre das schön.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 29 Oktober 2017, 21:27:04
Hallo Stefan

Nach den Breadbord habe ich nun mein Arduino im Keller in Betrieb genommen. Dort ist er mit den Strom- und dem Durchflusszähler (Öl) verbunden.
Die langen Impulse/Pausen des Durchflusszähler scheinen für den ArduCounter problematisch zu sein. Da fehlen mir täglich einige Impulse. Ich konnte aber bis jetzt noch keine genaueren Beobachtungen anstellen.
Hast Du zufällig eine Idee woran dies liegen könnte?

Noch eine Frage zum Intervall. Kann man dies auch pro Pin separat definieren?
(Den Faktor kann man, obwohl in der Commandref nicht explizit beschrieben, auch pro Pin separat angeben.


Danke und Gruss
birdy

Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 30 Oktober 2017, 08:49:25
Hallo birdy,

Die Reporting–Intervalle sind nicht je Pin vorgesehen. Das minimale Intervall für die Überwachung der Puls-Länge wird aber je Pin angegeben.
Für die Fehlersuche solltest Du auf jeden Fall verbose auf 5 stellen und im Log die Meldungen vom Arduino an Fhem ansehen. Ich habe keine Ideen, wie noch Impulse übersehen werden könnten, es sei denn, sie sind so kurz, dass der Arduino sie in der Interrupt-Routine nicht sehen kann.

Wie viele Impulse am Tag hast Du denn, wie viele fehlen Dir und mit was vergleichst Du sie denn?
Wie lange sind die Impulse typischerweise?

Gruss
     Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 30 Oktober 2017, 23:01:53
Hallo Stefan

Die Reporting–Intervalle sind nicht je Pin vorgesehen.
Kein Problem, habe auch keinen direkten Bedarf dafür. Ich wollte nur nachfragen.

…. sie sind so kurz, dass der Arduino sie in der Interrupt-Routine nicht sehen kann.
 
So gut wie ausgeschlossen.

Momentan benötige ich ca. 5-6 Liter Öl pro Tag. Der mechanische Durchlaufzähler zählt mit 1 „Impuls“ pro 0.1 L was also 50 -60 Impulse pro Tag ergeben sollte. Heute fehlen mir im Vergleich zu Gestern 23 Impulse bzw. 2.3L was in etwa 50% entspricht.
Wenn die Heizung läuft ist das Relais jeweils ca. 0.06 L lang offen und danach wieder 0.04L geschlossen. Es dauert zwischen 3 und 5 Minuten bis 0.1L verbraucht sind, abhängig von der aktuellen Leistung (modellierender Brenner). Eine konkrete Messung mit den DMM bei eher hoher Leistung hat ergeben 1:40 offen/ 1:34 geschlossen (Pin 4 wird auf 0 gezogen).
Wenn die Heizung ausschaltet fliest natürlich kein Öl mehr. Dann bleibt das Relais u.U. mehrere Stunden in der momentanen Position stehen.

Anmerkung: Auch beim Stromzähler scheint es so, als ob nicht alle Impulse gezählt würden. Das werde ich aber noch genauer beobachten.

Internals:
   DEF        /dev/ttyUSB0@38400
   DeviceName /dev/ttyUSB0@38400
   FD         4
   Initialized 1
   NAME       AC
   NOTIFYDEV  global
   NR         21
   NTFY_ORDER 50-AC
   PARTIAL
   STATE      opened
   TYPE       ArduCounter
   VersionFirmware 1.9
   VersionModule 5.1 - 17.10.2017
   buffer
   CounterInterpolated:
   READINGS:
     2017-10-30 22:53:08   OelVorrat       1223
     2017-10-30 22:53:08   OelZaehler      231
     2017-10-30 22:53:08   OelZaehlerI     231
     2017-10-30 22:49:08   countDiff4      0
     2017-10-30 22:53:08   countDiff6      1
     2017-10-30 22:49:08   interpolatedLong4 2310
     2017-10-30 22:53:08   interpolatedLong6 2334236
     2017-10-30 22:49:08   lastMsg4        R4 C92 D0 R0 T360000 N175800520 X0
 
     2017-10-30 22:53:08   lastMsg6        R6 C2871 D1 R1 T87200 N176040520 X0 F87200 L87200 A101
 
     2017-10-30 22:49:08   long4           2310
     2017-10-30 22:53:08   long6           2334236
     2017-10-30 22:49:08   pin4            92
     2017-10-30 22:53:08   pin6            2871
     2017-10-30 22:49:08   power4          0.000
     2017-10-30 22:53:08   power6          0.413
     2017-10-30 22:49:08   reject4         0
     2017-10-30 22:53:08   reject6         0
     2017-10-29 11:11:02   state           opened
     2017-10-30 22:49:08   timeDiff4       360000
     2017-10-30 22:53:08   timeDiff6       87200
Attributes:
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   interval   60 360
   pin4       falling pullup 3000
   pin6       falling pullup 90
   readingFactor6 10000
   userReadings OelZaehler {ReadingsVal("AC","long4",0)/10},OelZaehlerI {ReadingsVal("AC","interpolatedLong4",0)/10},OelVorrat {1454-ReadingsVal("AC","OelZaehlerI",0)}
   userattr   pin4 pin6 readingFactor6 verboseReadings4 verboseReadings6
   verbose    5
   verboseReadings4 1
   verboseReadings6 1

Log:
2017.10.30 21:52:10 5: AC: Parse line: R6 C2821 D1 R1 T49629 N172380520 X0 F49629 L49629 A99
2017.10.30 21:52:10 4: AC: adding 1 to long count 2334185 and interpolated count 2334185
2017.10.30 21:52:10 4: AC: Pin 6 (pin6) count 2821 longCount 2334186 interpCount 2334186 (diff 1) in 49.629s, reject 0, Avg Len 99ms, result 0.725
2017.10.30 21:52:10 5: AC: interval 21:51:20 until 21:52:10, First at 49629, Last at 49629
2017.10.30 21:52:10 5: AC: set readings power6 to 0.725, timeDiff6 to 49629 and countDiff6 to 1
2017.10.30 21:52:10 5: AC: Device Time 172380.52, Drift -68.009s in 124851.991s, -0.05%
2017.10.30 21:53:10 5: AC: Parse line: R6 C2822 D1 R1 T43997 N172440520 X0 F43997 L43997 A100
2017.10.30 21:53:10 4: AC: adding 1 to long count 2334186 and interpolated count 2334186
2017.10.30 21:53:10 4: AC: Pin 6 (pin6) count 2822 longCount 2334187 interpCount 2334187 (diff 1) in 43.997s, reject 0, Avg Len 100ms, result 0.818
2017.10.30 21:53:10 5: AC: interval 21:52:26 until 21:53:10, First at 43997, Last at 43997
2017.10.30 21:53:10 5: AC: set readings power6 to 0.818, timeDiff6 to 43997 and countDiff6 to 1
2017.10.30 21:53:10 5: AC: Device Time 172440.52, Drift -68.044s in 124911.956s, -0.05%
2017.10.30 21:54:09 5: AC: Parse line: R6 C2824 D2 R2 T90113 N172500520 X0 F45066 L90113 A99
2017.10.30 21:54:09 4: AC: adding 2 to long count 2334187 and interpolated count 2334187
2017.10.30 21:54:09 4: AC: Pin 6 (pin6) count 2824 longCount 2334189 interpCount 2334189 (diff 2) in 90.113s, reject 0, Avg Len 99ms, result 0.799
2017.10.30 21:54:09 5: AC: interval 21:52:39 until 21:54:09, First at 45066, Last at 90113
2017.10.30 21:54:09 5: AC: set readings power6 to 0.799, timeDiff6 to 90113 and countDiff6 to 2
2017.10.30 21:54:10 5: AC: Device Time 172500.52, Drift -68.080s in 124971.920s, -0.05%
2017.10.30 21:55:09 5: AC: Parse line: R4 C92 D2 R2 T194955 N172560520 X0 F699 L194955 A109219
2017.10.30 21:55:09 4: AC: adding 2 to long count 2282 and interpolated count 2282
2017.10.30 21:55:09 4: AC: Pin 4 (pin4) count 92 longCount 2284 interpCount 2284 (diff 2) in 194.955s, reject 0, Avg Len 109219ms, result 0.037
2017.10.30 21:55:09 5: AC: interval 21:51:55 until 21:55:09, First at 699, Last at 194955
2017.10.30 21:55:09 5: AC: set readings power4 to 0.037, timeDiff4 to 194955 and countDiff4 to 2
2017.10.30 21:55:09 5: AC: Device Time 172560.52, Drift -68.097s in 125031.903s, -0.05%
2017.10.30 21:55:09 5: AC: Parse line: R6 C2825 D1 R1 T44973 N172560520 X0 F44973 L44973 A99
2017.10.30 21:55:09 4: AC: adding 1 to long count 2334189 and interpolated count 2334189
2017.10.30 21:55:09 4: AC: Pin 6 (pin6) count 2825 longCount 2334190 interpCount 2334190 (diff 1) in 44.973s, reject 0, Avg Len 99ms, result 0.800
2017.10.30 21:55:09 5: AC: interval 21:54:25 until 21:55:09, First at 44973, Last at 44973
2017.10.30 21:55:09 5: AC: set readings power6 to 0.800, timeDiff6 to 44973 and countDiff6 to 1
2017.10.30 21:55:09 5: AC: Device Time 172560.52, Drift -68.097s in 125031.903s, -0.05%
2017.10.30 21:56:09 5: AC: Parse line: R6 C2826 D1 R1 T46564 N172620520 X0 F46564 L46564 A101
2017.10.30 21:56:09 4: AC: adding 1 to long count 2334190 and interpolated count 2334190
2017.10.30 21:56:09 4: AC: Pin 6 (pin6) count 2826 longCount 2334191 interpCount 2334191 (diff 1) in 46.564s, reject 0, Avg Len 101ms, result 0.773
2017.10.30 21:56:09 5: AC: interval 21:55:23 until 21:56:09, First at 46564, Last at 46564
2017.10.30 21:56:09 5: AC: set readings power6 to 0.773, timeDiff6 to 46564 and countDiff6 to 1
2017.10.30 21:56:09 5: AC: Device Time 172620.52, Drift -68.149s in 125091.851s, -0.05%
2017.10.30 21:57:09 5: AC: Parse line: R6 C2827 D1 R1 T48386 N172680520 X0 F48386 L48386 A100
2017.10.30 21:57:09 4: AC: adding 1 to long count 2334191 and interpolated count 2334191
2017.10.30 21:57:09 4: AC: Pin 6 (pin6) count 2827 longCount 2334192 interpCount 2334192 (diff 1) in 48.386s, reject 0, Avg Len 100ms, result 0.744
2017.10.30 21:57:09 5: AC: interval 21:56:21 until 21:57:09, First at 48386, Last at 48386
2017.10.30 21:57:09 5: AC: set readings power6 to 0.744, timeDiff6 to 48386 and countDiff6 to 1
2017.10.30 21:57:09 5: AC: Device Time 172680.52, Drift -68.184s in 125151.816s, -0.05%
2017.10.30 21:58:09 5: AC: Parse line: R6 C2828 D1 R1 T54457 N172740520 X0 F54457 L54457 A99
2017.10.30 21:58:09 4: AC: adding 1 to long count 2334192 and interpolated count 2334192
2017.10.30 21:58:09 4: AC: Pin 6 (pin6) count 2828 longCount 2334193 interpCount 2334193 (diff 1) in 54.457s, reject 0, Avg Len 99ms, result 0.661
2017.10.30 21:58:09 5: AC: interval 21:57:15 until 21:58:09, First at 54457, Last at 54457
2017.10.30 21:58:09 5: AC: set readings power6 to 0.661, timeDiff6 to 54457 and countDiff6 to 1
2017.10.30 21:58:09 5: AC: Device Time 172740.52, Drift -68.203s in 125211.797s, -0.05%
2017.10.30 21:59:09 5: AC: Parse line: R6 C2829 D1 R1 T56942 N172800520 X0 F56942 L56942 A100
2017.10.30 21:59:09 4: AC: adding 1 to long count 2334193 and interpolated count 2334193
2017.10.30 21:59:09 4: AC: Pin 6 (pin6) count 2829 longCount 2334194 interpCount 2334194 (diff 1) in 56.942s, reject 0, Avg Len 100ms, result 0.632
2017.10.30 21:59:09 5: AC: interval 21:58:12 until 21:59:09, First at 56942, Last at 56942
2017.10.30 21:59:09 5: AC: set readings power6 to 0.632, timeDiff6 to 56942 and countDiff6 to 1
2017.10.30 21:59:09 5: AC: Device Time 172800.52, Drift -68.238s in 125271.762s, -0.05%
2017.10.30 22:00:09 5: AC: Parse line: R6 C2830 D1 R1 T61125 N172860520 X0 F61125 L61125 A99
2017.10.30 22:00:09 4: AC: adding 1 to long count 2334194 and interpolated count 2334194
2017.10.30 22:00:09 4: AC: Pin 6 (pin6) count 2830 longCount 2334195 interpCount 2334195 (diff 1) in 61.125s, reject 0, Avg Len 99ms, result 0.589
2017.10.30 22:00:09 5: AC: interval 21:59:08 until 22:00:09, First at 61125, Last at 61125
2017.10.30 22:00:09 5: AC: set readings power6 to 0.589, timeDiff6 to 61125 and countDiff6 to 1
2017.10.30 22:00:09 5: AC: Device Time 172860.52, Drift -68.273s in 125331.727s, -0.05%
2017.10.30 22:01:09 5: AC: Parse line: R4 C92 D0 R0 T405045 N172920520 X0
2017.10.30 22:01:09 4: AC: adding 0 to long count 2284 and interpolated count 2284
2017.10.30 22:01:09 4: AC: Pin 4 (pin4) count 92 longCount 2284 interpCount 2284 (diff 0) in 405.045s, reject 0, Avg Len ms, result 0.000
2017.10.30 22:01:09 5: AC: interval 21:54:24 until 22:01:09, First at , Last at
2017.10.30 22:01:09 5: AC: set readings power4 to 0.000, timeDiff4 to 405045 and countDiff4 to 0
2017.10.30 22:01:09 5: AC: Device Time 172920.52, Drift -68.290s in 125391.710s, -0.05%
2017.10.30 22:01:09 5: AC: Parse line: R6 C2831 D1 R1 T62282 N172920520 X0 F62282 L62282 A100
2017.10.30 22:01:09 4: AC: adding 1 to long count 2334195 and interpolated count 2334195
2017.10.30 22:01:09 4: AC: Pin 6 (pin6) count 2831 longCount 2334196 interpCount 2334196 (diff 1) in 62.282s, reject 0, Avg Len 100ms, result 0.578
2017.10.30 22:01:09 5: AC: interval 22:00:07 until 22:01:09, First at 62282, Last at 62282
2017.10.30 22:01:09 5: AC: set readings power6 to 0.578, timeDiff6 to 62282 and countDiff6 to 1
2017.10.30 22:01:09 5: AC: Device Time 172920.52, Drift -68.290s in 125391.710s, -0.05%
2017.10.30 22:01:10 3: VCONTROL300: USB connection opened

Gruss
birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 31 Oktober 2017, 21:43:41
Eine Verständnisfrage

Die Ausganslage: Ein Relais / S0 Schnittstelle welche zwischen Pin X und GND liegt, und den Pin währen dem Impuls von 5V auf 0 zieht.
Auf dem ArduCounter gibt es die folgende Definition (pin4 falling pullup 3000).

Ist dann „falling“ relativ (invers) oder absolut gemeint?
Konkret, wann sollte gezählt werden. Wenn der Pin von 5V auf 0 fällt, oder wenn der von 0 wieder auf 5V geht?

Gruss birdy



Nachtrag:

Ist es gewollt, dass der interpolatedLongX kleiner als die LongX ist?
Ich dachte der sei vorgesehen, um möglicherweise verpasste Impulse zu interpolieren.
Hier werden real existiere Impulse unterdrückt.
Szenario: Arduino resetet, alle Zähler mit setreading auf 0 gestellt, 3 Impulse manuell abgesetzt.

Resultat :

017.10.31 22:51:52 5: AC: ReadAnswer called
2017.10.31 22:51:53 5: AC: Parse line: M Status: ArduCounter V1.9
2017.10.31 22:51:53 4: AC: device reported firmware 1.9
2017.10.31 22:51:53 5: AC: Parse line: M normal interval 60000
2017.10.31 22:51:53 3: AC: device: normal interval 60000
2017.10.31 22:51:53 5: AC: Parse line: M max interval 360000
2017.10.31 22:51:53 3: AC: device: max interval 360000
2017.10.31 22:51:53 5: AC: Parse line: M min interval 2000
2017.10.31 22:51:53 3: AC: device: min interval 2000
2017.10.31 22:51:53 5: AC: Parse line: M min count 1
2017.10.31 22:51:53 3: AC: device: min count 1
2017.10.31 22:51:53 5: AC: Parse line: M pin 4 PCInt pin 20, iMode change, min len 2000 ms falling, count 3 (+2) in 13163 ms Rej 1
2017.10.31 22:51:53 3: AC: device: pin 4 PCInt pin 20, iMode change, min len 2000 ms falling, count 3 (+2) in 13163 ms Rej 1
2017.10.31 22:51:53 5: AC: Parse line: M   first at 97509, last at 110672, avg len 6458
2017.10.31 22:51:53 3: AC: device:   first at 97509, last at 110672, avg len 6458
2017.10.31 22:51:53 5: AC: Parse line: M pin 5 PCInt pin 21, iMode change, min len 2000 ms falling, count 0 (+0) in 112735 ms Rej 0
2017.10.31 22:51:53 3: AC: device: pin 5 PCInt pin 21, iMode change, min len 2000 ms falling, count 0 (+0) in 112735 ms Rej 0
2017.10.31 22:51:53 5: AC: Parse line: M pin 6 PCInt pin 22, iMode change, min len 90 ms falling, count 0 (+0) in 112743 ms Rej 0
2017.10.31 22:51:53 3: AC: device: pin 6 PCInt pin 22, iMode change, min len 90 ms falling, count 0 (+0) in 112743 ms Rej 0
2017.10.31 22:51:53 5: AC: Parse line: M Next report in 7197 Milliseconds
2017.10.31 22:51:53 3: AC: device: Next report in 7197 Milliseconds
2017.10.31 22:51:53 5: AC: ReadAnswer matched Next report in [0-9]+ Milliseconds
2017.10.31 22:52:00 5: AC: Parse line: R4 C3 D2 R3 T13163 N6129504 X1 F0 L13163 A6458
2017.10.31 22:52:00 4: AC: arduino was restarted so some impulses might have got lost for 4 (pin4)
2017.10.31 22:52:00 3: AC: interpolation after counter reset for pin 4 (pin4): offline -43.73 secs, -2 estimated pulses (before 0 in 310355 ms, now 2 in 13163 ms, avg ratio 0.0759705234369065 p/s)
2017.10.31 22:52:00 4: AC: adding interpolated -2 to interpolated count 0
2017.10.31 22:52:00 4: AC: adding 3 to long count 0 and interpolated count -2
2017.10.31 22:52:00 4: AC: Pin 4 (pin4) count 3 longCount 3 interpCount 1 (diff 2) in 13.163s, reject 1, Avg Len 6458ms, result 0.547
2017.10.31 22:52:00 5: AC: interval 22:51:47 until 22:52:00, First at 0, Last at 13163
2017.10.31 22:52:00 5: AC: set readings power4 to 0.547, timeDiff4 to 13163 and countDiff4 to 2
2017.10.31 22:52:00 5: AC: Device Time 6129.504, Drift -2.999s in 5640.268s, -0.05%
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 12 November 2017, 21:22:17
Hallo Stefan

Kannst Du mir verraten ob die folgenden Definition für (m)ein Relais geeignet ist und wann genau (welche Flanke) damit der Zähler im ArduCounter erhöht werden sollte?
Danke
 pin4       falling pullup 3000
Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 13 November 2017, 21:30:31
Hallo Birdy,

sorry für die späte Antwort, ich habe Deine vorletzte Frage erst jetzt bemerkt.

Zitat
Auf dem ArduCounter gibt es die folgende Definition (pin4 falling pullup 3000).
Ist dann „falling“ relativ (invers) oder absolut gemeint?
Konkret, wann sollte gezählt werden. Wenn der Pin von 5V auf 0 fällt, oder wenn der von 0 wieder auf 5V geht?

sobald Du die Pulslängen-Kontrolle aktivierst (3000 setzt die minimale Pulslänge auf 3 Sekunden und aktiviert damit die Pulslängen-Kontrolle), ändert sich das Verhalten des Arducounters.
Um die Pulslänge zu ermitteln, wird bei jeder Flanke ein Interrupt ausgelöst um Beginn und Ende des Impulses zu erfassen. "falling" gibt dann an, dass die Impulse mit einer fallenden Flanke (1->0) beginnen. Erst am Ende des Impulses (wieder steigende Flanke) kann dann ausgewertet werden, ob der Impuls die Mindestlänge erreicht hat. Somit wird auch erst beim Ende des Impulses, in diesem Fall also bei der steigenden Flanke der Impuls gezählt. Wenn er zu kurz war, wird er nicht als gültiger Impuls gezählt sondern der Reject-Counter erhöht.

Zitat
Ist es gewollt, dass der interpolatedLongX kleiner als die LongX ist?
Ich dachte der sei vorgesehen, um möglicherweise verpasste Impulse zu interpolieren.
Hier werden real existiere Impulse unterdrückt.
Szenario: Arduino resetet, alle Zähler mit setreading auf 0 gestellt, 3 Impulse manuell abgesetzt.

Es ist nicht gewollt, dass interpolatedLongX kleiner als LongX ist.
Ich interpretiere das Log so:

Vor dem Beginn Deines Log-Auszugs müsste der Arduino neu gestartet worden sein. Dort sollte im Log eine entsprechende Meldung stehen.
Das Fhem-Modul setzt in diesem Moment auch das Internal CounterResetTime auf die aktuelle Zeit. Zudem wird das Flag gelöscht, an dem das Modul erkennt, dass eine Interpolation bereits gemacht wurde.

Durch Dein anschließendes Löschen aller Readings ziehst Du dem Modul die Zeit der letzten Meldung vom Arduino quasi "unter dem Hintern weg". Diese Zeit wird aber später für die Ermittlung der "Offline-Zeit" benötigt...

ca 13 Sekunden nach dem Reset des Arduino hast Du offenbar get info eingegeben:
Zitat
017.10.31 22:51:52 5: AC: ReadAnswer called
2017.10.31 22:51:53 5: AC: Parse line: M Status: ArduCounter V1.9
2017.10.31 22:51:53 4: AC: device reported firmware 1.9
2017.10.31 22:51:53 5: AC: Parse line: M normal interval 60000
2017.10.31 22:51:53 3: AC: device: normal interval 60000
2017.10.31 22:51:53 5: AC: Parse line: M max interval 360000
2017.10.31 22:51:53 3: AC: device: max interval 360000
2017.10.31 22:51:53 5: AC: Parse line: M min interval 2000
2017.10.31 22:51:53 3: AC: device: min interval 2000
2017.10.31 22:51:53 5: AC: Parse line: M min count 1
2017.10.31 22:51:53 3: AC: device: min count 1
2017.10.31 22:51:53 5: AC: Parse line: M pin 4 PCInt pin 20, iMode change, min len 2000 ms falling, count 3 (+2) in 13163 ms Rej 1
2017.10.31 22:51:53 3: AC: device: pin 4 PCInt pin 20, iMode change, min len 2000 ms falling, count 3 (+2) in 13163 ms Rej 1
2017.10.31 22:51:53 5: AC: Parse line: M   first at 97509, last at 110672, avg len 6458
2017.10.31 22:51:53 3: AC: device:   first at 97509, last at 110672, avg len 6458
2017.10.31 22:51:53 5: AC: Parse line: M pin 5 PCInt pin 21, iMode change, min len 2000 ms falling, count 0 (+0) in 112735 ms Rej 0
2017.10.31 22:51:53 3: AC: device: pin 5 PCInt pin 21, iMode change, min len 2000 ms falling, count 0 (+0) in 112735 ms Rej 0
2017.10.31 22:51:53 5: AC: Parse line: M pin 6 PCInt pin 22, iMode change, min len 90 ms falling, count 0 (+0) in 112743 ms Rej 0
2017.10.31 22:51:53 3: AC: device: pin 6 PCInt pin 22, iMode change, min len 90 ms falling, count 0 (+0) in 112743 ms Rej 0
2017.10.31 22:51:53 5: AC: Parse line: M Next report in 7197 Milliseconds
2017.10.31 22:51:53 3: AC: device: Next report in 7197 Milliseconds
2017.10.31 22:51:53 5: AC: ReadAnswer matched Next report in [0-9]+ Milliseconds
Dann meldet sich der Arducounter mit dem Zwischenergebnis:
Zitat
2017.10.31 22:52:00 5: AC: Parse line: R4 C3 D2 R3 T13163 N6129504 X1 F0 L13163 A6458
Das bedeutet:
Report für Pin 4, Count 3, verwertbare neue Impulse (Differenz) 2, Real Count (tatsächlich gezählte Impulse für LongCount): 3 (da wird auch der erste Impuls mitgezählt, bei dem die Intervall-Messung beginnt), Time: 13 Sekunden,
Now: 6129504, Rejected: 1, First after 0 ms, Last at 13 sec, average 6 sec.

Dann bemerkt das Modul, dass dies die erste Meldung des Arduino seit einem Neustart ist.
Das Modul berechnet die Zeit zwischen der letzten Meldung und dem Neustart des Arduino. Diese Subtraktion geht schief und liefert ein negatives Ergebnis, da Du zum genau richtigen Zeitpunkt die Readings gelöscht hast (da muss ich noch eine Prüfung einbauen, die so etwas erkennt / verhindert ...)

entsprechend interpoliert das Modul eine negative Zahl von Impulsen:
Zitat
2017.10.31 22:52:00 4: AC: arduino was restarted so some impulses might have got lost for 4 (pin4)
2017.10.31 22:52:00 3: AC: interpolation after counter reset for pin 4 (pin4): offline -43.73 secs, -2 estimated pulses (before 0 in 310355 ms, now 2 in 13163 ms, avg ratio 0.0759705234369065 p/s)
2017.10.31 22:52:00 4: AC: adding interpolated -2 to interpolated count 0
2017.10.31 22:52:00 4: AC: adding 3 to long count 0 and interpolated count -2
2017.10.31 22:52:00 4: AC: Pin 4 (pin4) count 3 longCount 3 interpCount 1 (diff 2) in 13.163s, reject 1, Avg Len 6458ms, result 0.547
2017.10.31 22:52:00 5: AC: interval 22:51:47 until 22:52:00, First at 0, Last at 13163
2017.10.31 22:52:00 5: AC: set readings power4 to 0.547, timeDiff4 to 13163 and countDiff4 to 2
2017.10.31 22:52:00 5: AC: Device Time 6129.504, Drift -2.999s in 5640.268s, -0.05%

Gruss
  Stefan

EDIT: Detailformulierung konkretisiert / korrigiert
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 13 November 2017, 22:07:20
Hallo,

anbei eine neue Version zum Testen, die zusätzlich Prüfungen zur Plausibilität der berechneten Offline-Zeit bei der Interpolation enthält.
Falls die benötigten Readings oder die Timestamps der benötigten Readings fehlen oder falls die Zeit negativ wird, wird nichts interpoliert.
@Birdy: Falls Du es schaffst, damit einen ähnlichen Zustand zu reproduzieren, würde ich noch weitere Log-Meldungen einbauen um zu verstehen, wie das genau passiert...

Gruss / vielen Dank fürs Testen
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 14 November 2017, 10:02:51
Hallo Stefan

sorry für die späte Antwort,
Kein Problem es gibt (zum Glück) neben FHEM noch andere interessante Dinge im Leben

Gerne teste ich die neue Version. Doch zuvor möchte ich sicher sein, dass ich eine geeignete Pin Definition verwende. Was kannst Du beim mir empfehlen?

sobald Du die Pulslängen-Kontrolle aktivierst (3000 setzt die minimale Pulslänge auf 3 Sekunden und aktiviert damit die Pulslängen-Kontrolle), ändert sich das Verhalten des Arducounters.

Wenn ich richtig verstanden habe, wird ohne Pulslängen-Kontrolle zu Beginn des Impulses (5>0) gezählt. Mit Pulslängen-Kontrolle erst am Ende des Impulses (0>5) sofern der Impuls genügend lange gedauert hat. Es muss also die Dauer gezählt werden.
Könnte es sein, dass es hier zu einem Zählerüberlauf kommt, Da bei mir einzelne Impulse mehrere Stunden dauern können. Dieser Impuls in der Folge dann ins schwarze Loch fällt und nicht gezählt wird?
Soll ich mal ohne Pulslängen-Kontrolle weiter testen. Was ist Deine Empfehlung?

Vielen Dank für Deine aktive Unterstützung.

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 18 November 2017, 17:12:26
hallo Birdy,

die Zeitwerte werden im Sketch als Millisekunden in einem unsigned long (32 Bit) gespeichert. Das sollte erst nach 49 Tagen überlaufen.
Ich würde schon mit Pulslängen-Kontrolle weiter testen.

Wenn ich es richtig verstehe und Deine Impulse von einem Relais erzeugt werden und Minuten oder sogar Stunden lang sein können, dann könnte ich zur Kontrolle auch in den Sketch eine Debug-Funktion einbauen, die in Fhem bei jedem Zustandswechsel am Arduino-Pin einen Log-Eintrag erzeugt - unabhängig vom Zählen.
Eventuell kommst Du dann dem Problem eher auf die Spur?
(für normale S0-Signale würde das nicht funktionieren ...)

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 21 November 2017, 17:21:28
Hallo Stefan

Ich habe das Ganze mal ein wenig beobachtet und mir ein paar Notizen gemacht.

1.   Mit Pulslängen-Kontrolle.
Über 42 Stunden habe 19.4 Liter verbraucht was 194 Impulsen entsprechen müsste. Der Arducounter hat aber nur 74 Impulse gezählt (120 fehlen).

2.   Ohne Pulslängen-Kontrolle.
Über 31 Stunden habe 11.9 Liter verbraucht was 119 Impulsen entsprechen müsste. Der Arducounter hat aber nur 69 Impulse gezählt (50 fehlen).

Die Pulslängen-Kontrolle scheint also beim Verhalten nicht den entscheidenden Unterschied zu machen.

…..könnte ich zur Kontrolle auch in den Sketch eine Debug-Funktion einbauen, die in Fhem bei jedem Zustandswechsel am Arduino-Pin einen Log-Eintrag erzeugt - unabhängig vom Zählen.

Ja sehr gerne wenn das möglich ist. Ich denke das würde mich dann einen wichtigen Stritt weiter bringen.

So kann ich mein DMM mit USB Ausgang einige Stunden mitlaufen lassen und die Werte Aufzeichnen. Anschliessend die beiden Logs gegeneinander abgleichen und es wird sofort klar wo Differenz entsteht. :)

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 26 November 2017, 11:39:44
Hallo birdy,

anbei eine Variante der Firmware, die bei jedem Status-Change eines im ArduCounter verwendeten Ports eine Log-Zeile ausgibt. Das ganze ist nicht für den Normalbetrieb geeignet, sondern nur zum Debugging.
In Fhem sollte das verbose-Level auf 4 stehen.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 26 November 2017, 12:37:51
Hallo Stefan

Super vielen herzlichen Dank.
Sobald ich neue Erkenntnisse habe, werde ich hier berichten.

Gruss und noch einen schönen Sonntag
birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 27 November 2017, 00:03:46
Hallo Stefan

Ich habe heute wären rund 6 Stunden das Verhalten mit den DMM aufgezeichnet und die Logs abgeglichen.

Zuerst das erfreuliche, die neue Debugg Funktion zeigt den Status Wechsel zuverlässig. Ein Vergleich zum DMM Log ergab über die gesamte Zeit eine vollständige Übereinstimmung.

Aber nach diesen 6 Stunden hatte der ArduCounter an Pin 4 mehr Impulse gezählt als der mechanische Zähler. ::)
Jetzt zählt er plötzlich mehr als die vorhanden Impulse

Ich habe den ArduCounter (unbewusst) ohne Pulslängen-Kontrolle laufen gelassen. gem. meinem Verständnis müsste er also immer bzw. nur bei 5>0 zählen.
Das macht er gem. Log in der Regel auch korrekt z.B. 18:51:01 / 18:51:20
Dann aber 19:20:58 / 19:21:19 Pin geht Pin 4 von 0>5 und ArduCounter erhöht den Zähler aus einem mir nicht ersichtlichen Grund..... ???

2017.11.26 18:49:20 4: AC: adding 0 to long count 4489 and interpolated count 4489
2017.11.26 18:49:20 4: AC: Pin 4 (pin4) count 17 longCount 4489 interpCount 4489 (diff 0) in 360.000s, Avg Len ms, result 0.000
2017.11.26 18:49:20 4: AC: interval 18:43:20 until 18:49:20, First at , Last at
2017.11.26 18:51:01 3: AC: device: pin 4 changed state to 0 , count 18 (+1)
2017.11.26 18:51:20 4: AC: adding 1 to long count 4489 and interpolated count 4489
2017.11.26 18:51:20 4: AC: Pin 4 (pin4) count 18 longCount 4490 interpCount 4490 (diff 1) in 101.144s, Avg Len ms, result 0.036
2017.11.26 18:51:20 4: AC: interval 18:49:39 until 18:51:20, First at 101144, Last at 101144
2017.11.26 18:52:20 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.26 18:52:20 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.26 18:52:20 4: AC: interval 18:46:20 until 18:52:20, First at , Last at
2017.11.26 18:52:20 4: AC: Pin 5 (pin5) count 0 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.26 18:52:20 4: AC: interval 18:46:20 until 18:52:20, First at , Last at
2017.11.26 18:54:22 3: AC: device: pin 4 changed state to 1 , count 18 (+0)
2017.11.26 18:57:20 4: AC: adding 0 to long count 4490 and interpolated count 4490
2017.11.26 18:57:20 4: AC: Pin 4 (pin4) count 18 longCount 4490 interpCount 4490 (diff 0) in 378.856s, Avg Len ms, result 0.000
2017.11.26 18:57:20 4: AC: interval 18:51:01 until 18:57:20, First at , Last at
2017.11.26 18:58:20 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.26 18:58:20 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.26 18:58:20 4: AC: interval 18:52:20 until 18:58:20, First at , Last at
2017.11.26 18:58:20 4: AC: Pin 5 (pin5) count 0 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.26 18:58:20 4: AC: interval 18:52:20 until 18:58:20, First at , Last at
2017.11.26 19:03:20 4: AC: adding 0 to long count 4490 and interpolated count 4490
2017.11.26 19:03:20 4: AC: Pin 4 (pin4) count 18 longCount 4490 interpCount 4490 (diff 0) in 360.000s, Avg Len ms, result 0.000
2017.11.26 19:03:20 4: AC: interval 18:57:20 until 19:03:20, First at , Last at
2017.11.26 19:04:20 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.26 19:04:20 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.26 19:04:20 4: AC: interval 18:58:20 until 19:04:20, First at , Last at
2017.11.26 19:04:20 4: AC: Pin 5 (pin5) count 0 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.26 19:04:20 4: AC: interval 18:58:20 until 19:04:20, First at , Last at
2017.11.26 19:09:20 4: AC: adding 0 to long count 4490 and interpolated count 4490
2017.11.26 19:09:20 4: AC: Pin 4 (pin4) count 18 longCount 4490 interpCount 4490 (diff 0) in 360.000s, Avg Len ms, result 0.000
2017.11.26 19:09:20 4: AC: interval 19:03:20 until 19:09:20, First at , Last at
2017.11.26 19:10:20 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.26 19:10:20 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.26 19:10:20 4: AC: interval 19:04:20 until 19:10:20, First at , Last at
2017.11.26 19:10:20 4: AC: Pin 5 (pin5) count 0 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.26 19:10:20 4: AC: interval 19:04:20 until 19:10:20, First at , Last at
2017.11.26 19:14:47 3: AC: device: pin 4 changed state to 0 , count 19 (+1)
2017.11.26 19:15:20 4: AC: adding 1 to long count 4490 and interpolated count 4490
2017.11.26 19:15:20 4: AC: Pin 4 (pin4) count 19 longCount 4491 interpCount 4491 (diff 1) in 327.078s, Avg Len ms, result 0.011
2017.11.26 19:15:20 4: AC: interval 19:09:52 until 19:15:20, First at 327078, Last at 327078
2017.11.26 19:16:19 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.26 19:16:19 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.26 19:16:19 4: AC: interval 19:10:19 until 19:16:19, First at , Last at
2017.11.26 19:16:19 4: AC: Pin 5 (pin5) count 0 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.26 19:16:19 4: AC: interval 19:10:19 until 19:16:19, First at , Last at
2017.11.26 19:20:58 3: AC: device: pin 4 changed state to 1 , count 20 (+1)
2017.11.26 19:21:19 4: AC: adding 1 to long count 4491 and interpolated count 4491
2017.11.26 19:21:19 4: AC: Pin 4 (pin4) count 20 longCount 4492 interpCount 4492 (diff 1) in 372.010s, Avg Len ms, result 0.010
2017.11.26 19:21:19 4: AC: interval 19:15:07 until 19:21:19, First at 372010, Last at 372010
2017.11.26 19:22:19 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.26 19:22:19 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.26 19:22:19 4: AC: interval 19:16:19 until 19:22:19, First at , Last at
2017.11.26 19:22:19 4: AC: Pin 5 (pin5) count 0 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.26 19:22:19 4: AC: interval 19:16:19 until 19:22:19, First at , Last at
2017.11.26 19:24:06 3: AC: device: pin 4 changed state to 0 , count 21 (+1)
2017.11.26 19:24:19 4: AC: adding 1 to long count 4492 and interpolated count 4492
2017.11.26 19:24:19 4: AC: Pin 4 (pin4) count 21 longCount 4493 interpCount 4493 (diff 1) in 187.734s, Avg Len ms, result 0.019
2017.11.26 19:24:19 4: AC: interval 19:21:11 until 19:24:19, First at 187734, Last at 187734
2017.11.26 19:26:59 3: AC: device: pin 4 changed state to 1 , count 21 (+0)
2017.11.26 19:28:19 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.26 19:28:19 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.26 19:28:19 4: AC: interval 19:22:19 until 19:28:19, First at , Last at
2017.11.26 19:28:19 4: AC: Pin 5 (pin5) count 0 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.26 19:28:19 4: AC: interval 19:22:19 until 19:28:19, First at , Last at



Internals:
   DEF        /dev/ttyUSB0@38400
   DeviceName /dev/ttyUSB0@38400
   FD         4
   Initialized 1
   NAME       AC
   NOTIFYDEV  global
   NR         21
   NTFY_ORDER 50-AC
   PARTIAL
   STATE      opened
   TYPE       ArduCounter
   VersionFirmware 1.91
   VersionModule 5.3 - 26.11.2017
   buffer
   CounterInterpolated:
   READINGS:
     2017-11-26 23:47:10   OelVorrat       1002.9
     2017-11-26 23:47:10   OelZaehler      451.1
     2017-11-26 23:47:10   OelZaehlerI     451.1
     2017-11-26 23:47:10   countDiff4      0
     2017-11-26 23:46:10   countDiff6      0
     2017-11-26 23:47:10   interpolatedLong4 4511
     2017-11-26 23:46:10   interpolatedLong6 13112
     2017-11-26 23:47:10   lastMsg4        R4 C46 D0 R0 T399642 N32826713
 
     2017-11-26 23:46:10   lastMsg6        R6 C0 D0 R0 T360000 N32766695 X0
 
     2017-11-26 23:47:10   long4           4511
     2017-11-26 23:46:10   long6           13112
     2017-11-26 23:47:10   pin4            46
     2017-11-26 23:46:10   pin5            0
     2017-11-26 23:46:10   pin6            0
     2017-11-26 23:47:10   power4          0.000
     2017-11-26 23:46:10   power5          0.000
     2017-11-26 23:46:10   power6          0.000
     2017-11-26 23:47:10   reject4
     2017-11-26 23:46:10   reject6         0
     2017-11-26 14:48:57   state           opened
     2017-11-26 23:47:10   timeDiff4       399642
     2017-11-26 23:46:10   timeDiff6       360000
Attributes:
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   interval   60 360
   pin4       falling pullup
   pin5       falling pullup 2000
   pin6       falling pullup 90
   readingFactor6 10000
   userReadings OelZaehler {ReadingsVal("AC","long4",0)/10},OelZaehlerI {ReadingsVal("AC","interpolatedLong4",0)/10},OelVorrat {1454-ReadingsVal("AC","OelZaehlerI",0)}
   userattr   pin4 pin5 pin6 readingFactor6 verboseReadings4 verboseReadings6
   verbose    4
   verboseReadings4 1
   verboseReadings6 1

Falls Du weitere Angaben benötigst, bitte melden.

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 28 November 2017, 07:14:07
Hallo birdy,

ich gehe davon aus, dass die Differenz von kurzen Störimpulsen ausgeht. Ohne Pulslängenkontrolle werden die mitgezählt.
Das Zählen erfolgt im Sketch über Interrupts und ist daher schnell. Die Debug-Ausgabe der Zustandsänderungen läuft aber in der Hauptschleife und ist für kurze Impulse zu langsam. Daher kann es gut sein, dass so ein kurzer Störimpuls zwar einen Interrupt auslöst und gezählt wird, aber in der Hauptschleife gar nicht bemerkt wird.

Daher würde ich empfehlen mit Pulslängenkontrolle zu zählen. Ein kurzer Störimpuls wird dann als "rejected" gezählt.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 28 November 2017, 14:35:18
Hallo Stefan

Ja möglicherweise prellt der Reed Kontakt. Vielen Dank für den Hinweis. Werde die nächste Messreihe mit Pulslängenkontrolle laufen lassen.

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: GlennDandy am 29 November 2017, 18:19:19
Hallo, hab es nach Gebaut und es scheint Zu funktionieren. :D Und somit bin ich schon einmal begeistert von eurer Arbeit. Hatte vorher den IST Verbrauch mit dem S0COUNTER Modul ausgelesen es geht geht auch schnell. Aber es gab unzählige Impulsspitzen.

Aber jetzt zu Frage?

Gibt es eine Möglichkeit das Modul mit dem HourCounter zuverbinden?
Im HourCounter wiki wird ja define <name> HourCounter <regexp_for_ON>

Gibt es eine Befehl für den on Wert? Oder könnnte man das Implementieren? Dann könnte man eine Tages/Monats/... Statistik führen?
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 30 November 2017, 17:39:10
Hallo,

schau doch mal das an:
https://fhem.de/commandref_DE.html#statistics

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 30 November 2017, 23:06:28
Hallo Stefan

Ich habe heute von 17:30 – 21:20 das Verhalten mit den DMM mitgeschnitten.
Der Durchlaufzähler hat 2.24L gezählt. In dieser Zeit ist das Signal gem. DMM Log 23x von 0>5. Der ArduCounter hat in dieser Zeit aber nur 15 Impulse gezählt. Während dieser Zeit sind also 8 Impulse ignoriert worden.
Die Debugg Funktion des ArduCounter hat alle Statusübergänge übereinstimmend zum DMM Log 1:1 erkannt.
Der Zähler reject4 hatte danach den Wert 0  (siehe List )
Die nicht gezählten Impulse kannst Du hier im Log finden.

18:35:17 / 18:37:04
18:49:57 / 18:51:03
18:54:21 / 18:55:03
19:28:12 / 19:29:02
20:20:14 / 20:01:01
20:46:49 / 20:48:49
20:56:59 / 20:58:59
21:02:43 / 21:04:59

Gruss birdy

Log
2017.11.30 17:28:10 3: AC: device: pin 4 changed state to 0 , count 344 (+0)  Rej 1
2017.11.30 17:29:06 4: AC: adding 0 to long count 4793 and interpolated count 4793
2017.11.30 17:29:06 4: AC: Pin 4 (pin4) count 344 longCount 4793 interpCount 4793 (diff 0) in 360.000s, reject 1, Avg Len ms, result 0.000
2017.11.30 17:29:06 4: AC: interval 17:23:06 until 17:29:06, First at , Last at
2017.11.30 17:31:06 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 17:31:06 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 17:31:06 4: AC: interval 17:25:06 until 17:31:06, First at , Last at
2017.11.30 17:35:06 4: AC: adding 0 to long count 4893 and interpolated count 4893
2017.11.30 17:35:06 4: AC: Pin 4 (pin4) count 344 longCount 4893 interpCount 4893 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 17:35:06 4: AC: interval 17:29:06 until 17:35:06, First at , Last at
2017.11.30 17:37:06 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 17:37:06 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 17:37:06 4: AC: interval 17:31:06 until 17:37:06, First at , Last at
2017.11.30 17:41:05 4: AC: adding 0 to long count 4893 and interpolated count 4893
2017.11.30 17:41:05 4: AC: Pin 4 (pin4) count 344 longCount 4893 interpCount 4893 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 17:41:05 4: AC: interval 17:35:05 until 17:41:05, First at , Last at
2017.11.30 17:41:45 3: AC: device: pin 4 changed state to 1 , count 345 (+1)  Rej 0
2017.11.30 17:42:05 4: AC: adding 1 to long count 4893 and interpolated count 4893
2017.11.30 17:42:05 4: AC: Pin 4 (pin4) count 345 longCount 4894 interpCount 4894 (diff 1) in 39.191s, reject 0, Avg Len 815499ms, result 0.092
2017.11.30 17:42:05 4: AC: interval 17:41:26 until 17:42:05, First at 39191, Last at 39191
2017.11.30 17:43:05 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 17:43:05 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 17:43:05 4: AC: interval 17:37:05 until 17:43:05, First at , Last at
2017.11.30 17:44:36 3: AC: device: pin 4 changed state to 0 , count 345 (+0)  Rej 0
2017.11.30 17:46:58 3: AC: device: pin 4 changed state to 1 , count 346 (+1)  Rej 0
2017.11.30 17:47:05 4: AC: adding 1 to long count 4894 and interpolated count 4894
2017.11.30 17:47:05 4: AC: Pin 4 (pin4) count 346 longCount 4895 interpCount 4895 (diff 1) in 313.321s, reject 0, Avg Len 141880ms, result 0.011
2017.11.30 17:47:05 4: AC: interval 17:41:52 until 17:47:05, First at 313321, Last at 313321
2017.11.30 17:49:05 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 17:49:05 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 17:49:05 4: AC: interval 17:43:05 until 17:49:05, First at , Last at
2017.11.30 17:49:06 3: AC: device: pin 4 changed state to 0 , count 346 (+0)  Rej 0
2017.11.30 17:51:29 3: AC: device: pin 4 changed state to 1 , count 347 (+1)  Rej 0
2017.11.30 17:52:05 4: AC: adding 1 to long count 4895 and interpolated count 4895
2017.11.30 17:52:05 4: AC: Pin 4 (pin4) count 347 longCount 4896 interpCount 4896 (diff 1) in 271.241s, reject 0, Avg Len 143317ms, result 0.013
2017.11.30 17:52:05 4: AC: interval 17:47:34 until 17:52:05, First at 271241, Last at 271241
2017.11.30 17:54:25 3: AC: device: pin 4 changed state to 0 , count 347 (+0)  Rej 0
2017.11.30 17:55:05 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 17:55:05 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 17:55:05 4: AC: interval 17:49:05 until 17:55:05, First at , Last at
2017.11.30 17:57:15 3: AC: device: pin 4 changed state to 1 , count 348 (+1)  Rej 0
2017.11.30 17:58:05 4: AC: adding 1 to long count 4896 and interpolated count 4896
2017.11.30 17:58:05 4: AC: Pin 4 (pin4) count 348 longCount 4897 interpCount 4897 (diff 1) in 346.313s, reject 0, Avg Len 169927ms, result 0.010
2017.11.30 17:58:05 4: AC: interval 17:52:19 until 17:58:05, First at 346313, Last at 346313
2017.11.30 18:01:05 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 18:01:05 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 18:01:05 4: AC: interval 17:55:05 until 18:01:05, First at , Last at
2017.11.30 18:04:05 4: AC: adding 0 to long count 4897 and interpolated count 4897
2017.11.30 18:04:05 4: AC: Pin 4 (pin4) count 348 longCount 4897 interpCount 4897 (diff 0) in 409.934s, reject 0, Avg Len ms, result 0.000
2017.11.30 18:04:05 4: AC: interval 17:57:15 until 18:04:05, First at , Last at
2017.11.30 18:07:05 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 18:07:05 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 18:07:05 4: AC: interval 18:01:05 until 18:07:05, First at , Last at
2017.11.30 18:10:05 4: AC: adding 0 to long count 4897 and interpolated count 4897
2017.11.30 18:10:05 4: AC: Pin 4 (pin4) count 348 longCount 4897 interpCount 4897 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 18:10:05 4: AC: interval 18:04:05 until 18:10:05, First at , Last at
2017.11.30 18:13:04 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 18:13:04 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 18:13:04 4: AC: interval 18:07:04 until 18:13:04, First at , Last at
2017.11.30 18:16:04 4: AC: adding 0 to long count 4897 and interpolated count 4897
2017.11.30 18:16:04 4: AC: Pin 4 (pin4) count 348 longCount 4897 interpCount 4897 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 18:16:04 4: AC: interval 18:10:04 until 18:16:04, First at , Last at
2017.11.30 18:17:32 3: AC: device: pin 4 changed state to 0 , count 348 (+0)  Rej 0
2017.11.30 18:19:04 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 18:19:04 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 18:19:04 4: AC: interval 18:13:04 until 18:19:04, First at , Last at
2017.11.30 18:20:15 3: AC: device: pin 4 changed state to 1 , count 349 (+1)  Rej 0
2017.11.30 18:21:04 4: AC: adding 1 to long count 4897 and interpolated count 4897
2017.11.30 18:21:04 4: AC: Pin 4 (pin4) count 349 longCount 4898 interpCount 4898 (diff 1) in 250.662s, reject 0, Avg Len 163394ms, result 0.014
2017.11.30 18:21:04 4: AC: interval 18:16:54 until 18:21:04, First at 250662, Last at 250662
2017.11.30 18:23:10 3: AC: device: pin 4 changed state to 0 , count 349 (+0)  Rej 1
2017.11.30 18:25:04 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 18:25:04 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 18:25:04 4: AC: interval 18:19:04 until 18:25:04, First at , Last at
2017.11.30 18:27:04 4: AC: adding 0 to long count 4898 and interpolated count 4898
2017.11.30 18:27:04 4: AC: Pin 4 (pin4) count 349 longCount 4898 interpCount 4898 (diff 0) in 409.338s, reject 1, Avg Len ms, result 0.000
2017.11.30 18:27:04 4: AC: interval 18:20:15 until 18:27:04, First at , Last at
2017.11.30 18:31:04 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 18:31:04 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 18:31:04 4: AC: interval 18:25:04 until 18:31:04, First at , Last at
2017.11.30 18:33:04 4: AC: adding 0 to long count 4898 and interpolated count 4898
2017.11.30 18:33:04 4: AC: Pin 4 (pin4) count 349 longCount 4898 interpCount 4898 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 18:33:04 4: AC: interval 18:27:04 until 18:33:04, First at , Last at
2017.11.30 18:35:17 3: AC: device: pin 4 changed state to 1 , count 349 (+0)  Rej 1
2017.11.30 18:37:04 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 18:37:04 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 18:37:04 4: AC: interval 18:31:04 until 18:37:04, First at , Last at
2017.11.30 18:39:04 4: AC: adding 0 to long count 4898 and interpolated count 4898
2017.11.30 18:39:04 4: AC: Pin 4 (pin4) count 349 longCount 4898 interpCount 4898 (diff 0) in 360.000s, reject 1, Avg Len ms, result 0.000
2017.11.30 18:39:04 4: AC: interval 18:33:04 until 18:39:04, First at , Last at
2017.11.30 18:43:03 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 18:43:03 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 18:43:03 4: AC: interval 18:37:03 until 18:43:03, First at , Last at
2017.11.30 18:45:03 4: AC: adding 0 to long count 4898 and interpolated count 4898
2017.11.30 18:45:03 4: AC: Pin 4 (pin4) count 349 longCount 4898 interpCount 4898 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 18:45:03 4: AC: interval 18:39:03 until 18:45:03, First at , Last at
2017.11.30 18:47:22 3: AC: device: pin 4 changed state to 0 , count 349 (+0)  Rej 1
2017.11.30 18:49:03 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 18:49:03 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 18:49:03 4: AC: interval 18:43:03 until 18:49:03, First at , Last at
2017.11.30 18:49:57 3: AC: device: pin 4 changed state to 1 , count 349 (+0)  Rej 2
2017.11.30 18:51:03 4: AC: adding 0 to long count 4898 and interpolated count 4898
2017.11.30 18:51:03 4: AC: Pin 4 (pin4) count 349 longCount 4898 interpCount 4898 (diff 0) in 360.000s, reject 2, Avg Len ms, result 0.000
2017.11.30 18:51:03 4: AC: interval 18:45:03 until 18:51:03, First at , Last at
2017.11.30 18:52:05 3: AC: device: pin 4 changed state to 0 , count 349 (+0)  Rej 1
2017.11.30 18:54:21 3: AC: device: pin 4 changed state to 1 , count 349 (+0)  Rej 2
2017.11.30 18:55:03 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 18:55:03 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 18:55:03 4: AC: interval 18:49:03 until 18:55:03, First at , Last at
2017.11.30 18:57:03 4: AC: adding 0 to long count 4898 and interpolated count 4898
2017.11.30 18:57:03 4: AC: Pin 4 (pin4) count 349 longCount 4898 interpCount 4898 (diff 0) in 360.000s, reject 2, Avg Len ms, result 0.000
2017.11.30 18:57:03 4: AC: interval 18:51:03 until 18:57:03, First at , Last at
2017.11.30 18:57:18 3: AC: device: pin 4 changed state to 0 , count 349 (+0)  Rej 0
2017.11.30 19:01:03 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 19:01:03 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 19:01:03 4: AC: interval 18:55:03 until 19:01:03, First at , Last at
2017.11.30 19:03:03 4: AC: adding 0 to long count 4898 and interpolated count 4898
2017.11.30 19:03:03 4: AC: Pin 4 (pin4) count 349 longCount 4898 interpCount 4898 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 19:03:03 4: AC: interval 18:57:03 until 19:03:03, First at , Last at
2017.11.30 19:07:03 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 19:07:03 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 19:07:03 4: AC: interval 19:01:03 until 19:07:03, First at , Last at
2017.11.30 19:09:03 4: AC: adding 0 to long count 4898 and interpolated count 4898
2017.11.30 19:09:03 4: AC: Pin 4 (pin4) count 349 longCount 4898 interpCount 4898 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 19:09:03 4: AC: interval 19:03:03 until 19:09:03, First at , Last at
2017.11.30 19:13:02 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 19:13:02 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 19:13:02 4: AC: interval 19:07:02 until 19:13:02, First at , Last at
2017.11.30 19:14:44 3: AC: device: pin 4 changed state to 1 , count 350 (+1)  Rej 0
2017.11.30 19:15:02 4: AC: adding 1 to long count 4898 and interpolated count 4898
2017.11.30 19:15:02 4: AC: Pin 4 (pin4) count 350 longCount 4899 interpCount 4899 (diff 1) in 341.257s, reject 0, Avg Len 1046114ms, result 0.011
2017.11.30 19:15:02 4: AC: interval 19:09:21 until 19:15:02, First at 341257, Last at 341257
2017.11.30 19:17:38 3: AC: device: pin 4 changed state to 0 , count 350 (+0)  Rej 0
2017.11.30 19:19:02 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 19:19:02 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 19:19:02 4: AC: interval 19:13:02 until 19:19:02, First at , Last at
2017.11.30 19:19:28 3: AC: device: pin 4 changed state to 1 , count 351 (+1)  Rej 0
2017.11.30 19:20:02 4: AC: adding 1 to long count 4899 and interpolated count 4899
2017.11.30 19:20:02 4: AC: Pin 4 (pin4) count 351 longCount 4900 interpCount 4900 (diff 1) in 284.802s, reject 0, Avg Len 110373ms, result 0.013
2017.11.30 19:20:02 4: AC: interval 19:15:17 until 19:20:02, First at 284802, Last at 284802
2017.11.30 19:21:09 3: AC: device: pin 4 changed state to 0 , count 351 (+0)  Rej 0
2017.11.30 19:22:48 3: AC: device: pin 4 changed state to 1 , count 352 (+1)  Rej 0
2017.11.30 19:23:02 4: AC: adding 1 to long count 4900 and interpolated count 4900
2017.11.30 19:23:02 4: AC: Pin 4 (pin4) count 352 longCount 4901 interpCount 4901 (diff 1) in 199.455s, reject 0, Avg Len 98981ms, result 0.018
2017.11.30 19:23:02 4: AC: interval 19:19:43 until 19:23:02, First at 199455, Last at 199455
2017.11.30 19:25:02 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 19:25:02 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 19:25:02 4: AC: interval 19:19:02 until 19:25:02, First at , Last at
2017.11.30 19:25:23 3: AC: device: pin 4 changed state to 0 , count 352 (+0)  Rej 1
2017.11.30 19:28:12 3: AC: device: pin 4 changed state to 1 , count 352 (+0)  Rej 2
2017.11.30 19:29:02 4: AC: adding 0 to long count 4901 and interpolated count 4901
2017.11.30 19:29:02 4: AC: Pin 4 (pin4) count 352 longCount 4901 interpCount 4901 (diff 0) in 374.486s, reject 2, Avg Len ms, result 0.000
2017.11.30 19:29:02 4: AC: interval 19:22:47 until 19:29:02, First at , Last at
2017.11.30 19:31:02 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 19:31:02 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 19:31:02 4: AC: interval 19:25:02 until 19:31:02, First at , Last at
2017.11.30 19:35:02 4: AC: adding 0 to long count 4901 and interpolated count 4901
2017.11.30 19:35:02 4: AC: Pin 4 (pin4) count 352 longCount 4901 interpCount 4901 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 19:35:02 4: AC: interval 19:29:02 until 19:35:02, First at , Last at
2017.11.30 19:37:02 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 19:37:02 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 19:37:02 4: AC: interval 19:31:02 until 19:37:02, First at , Last at
2017.11.30 19:40:42 3: AC: device: pin 4 changed state to 0 , count 352 (+0)  Rej 0
2017.11.30 19:41:02 4: AC: adding 0 to long count 4901 and interpolated count 4901
2017.11.30 19:41:02 4: AC: Pin 4 (pin4) count 352 longCount 4901 interpCount 4901 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 19:41:02 4: AC: interval 19:35:02 until 19:41:02, First at , Last at
2017.11.30 19:43:01 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 19:43:01 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 19:43:01 4: AC: interval 19:37:01 until 19:43:01, First at , Last at
2017.11.30 19:47:01 4: AC: adding 0 to long count 4901 and interpolated count 4901
2017.11.30 19:47:01 4: AC: Pin 4 (pin4) count 352 longCount 4901 interpCount 4901 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 19:47:01 4: AC: interval 19:41:01 until 19:47:01, First at , Last at
2017.11.30 19:48:46 3: AC: device: pin 4 changed state to 1 , count 353 (+1)  Rej 0
2017.11.30 19:49:01 4: AC: adding 1 to long count 4901 and interpolated count 4901
2017.11.30 19:49:01 4: AC: Pin 4 (pin4) count 353 longCount 4902 interpCount 4902 (diff 1) in 104.928s, reject 0, Avg Len 484137ms, result 0.034
2017.11.30 19:49:01 4: AC: interval 19:47:16 until 19:49:01, First at 104928, Last at 104928
2017.11.30 19:49:01 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 19:49:01 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 19:49:01 4: AC: interval 19:43:01 until 19:49:01, First at , Last at
2017.11.30 19:51:42 3: AC: device: pin 4 changed state to 0 , count 353 (+0)  Rej 0
2017.11.30 19:54:27 3: AC: device: pin 4 changed state to 1 , count 354 (+1)  Rej 0
2017.11.30 19:55:01 4: AC: adding 1 to long count 4902 and interpolated count 4902
2017.11.30 19:55:01 4: AC: Pin 4 (pin4) count 354 longCount 4903 interpCount 4903 (diff 1) in 341.340s, reject 0, Avg Len 165051ms, result 0.011
2017.11.30 19:55:01 4: AC: interval 19:49:20 until 19:55:01, First at 341340, Last at 341340
2017.11.30 19:55:01 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 19:55:01 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 19:55:01 4: AC: interval 19:49:01 until 19:55:01, First at , Last at
2017.11.30 19:57:32 3: AC: device: pin 4 changed state to 0 , count 354 (+0)  Rej 1
2017.11.30 20:00:14 3: AC: device: pin 4 changed state to 1 , count 354 (+0)  Rej 2
2017.11.30 20:01:01 4: AC: adding 0 to long count 4903 and interpolated count 4903
2017.11.30 20:01:01 4: AC: Pin 4 (pin4) count 354 longCount 4903 interpCount 4903 (diff 0) in 393.732s, reject 2, Avg Len ms, result 0.000
2017.11.30 20:01:01 4: AC: interval 19:54:27 until 20:01:01, First at , Last at
2017.11.30 20:01:01 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 20:01:01 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 20:01:01 4: AC: interval 19:55:01 until 20:01:01, First at , Last at
2017.11.30 20:03:13 3: AC: device: pin 4 changed state to 0 , count 354 (+0)  Rej 0
2017.11.30 20:07:01 4: AC: adding 0 to long count 4903 and interpolated count 4903
2017.11.30 20:07:01 4: AC: Pin 4 (pin4) count 354 longCount 4903 interpCount 4903 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 20:07:01 4: AC: interval 20:01:01 until 20:07:01, First at , Last at
2017.11.30 20:07:01 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 20:07:01 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 20:07:01 4: AC: interval 20:01:01 until 20:07:01, First at , Last at
2017.11.30 20:13:00 4: AC: adding 0 to long count 4903 and interpolated count 4903
2017.11.30 20:13:00 4: AC: Pin 4 (pin4) count 354 longCount 4903 interpCount 4903 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 20:13:00 4: AC: interval 20:07:00 until 20:13:00, First at , Last at
2017.11.30 20:13:00 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 20:13:00 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 20:13:00 4: AC: interval 20:07:00 until 20:13:00, First at , Last at
2017.11.30 20:19:00 4: AC: adding 0 to long count 4903 and interpolated count 4903
2017.11.30 20:19:00 4: AC: Pin 4 (pin4) count 354 longCount 4903 interpCount 4903 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 20:19:00 4: AC: interval 20:13:00 until 20:19:00, First at , Last at
2017.11.30 20:19:00 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 20:19:00 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 20:19:00 4: AC: interval 20:13:00 until 20:19:00, First at , Last at
2017.11.30 20:20:49 3: AC: device: pin 4 changed state to 1 , count 355 (+1)  Rej 0
2017.11.30 20:21:00 4: AC: adding 1 to long count 4903 and interpolated count 4903
2017.11.30 20:21:00 4: AC: Pin 4 (pin4) count 355 longCount 4904 interpCount 4904 (diff 1) in 109.240s, reject 0, Avg Len 1056614ms, result 0.033
2017.11.30 20:21:00 4: AC: interval 20:19:11 until 20:21:00, First at 109240, Last at 109240
2017.11.30 20:23:42 3: AC: device: pin 4 changed state to 0 , count 355 (+0)  Rej 0
2017.11.30 20:25:00 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 20:25:00 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 20:25:00 4: AC: interval 20:19:00 until 20:25:00, First at , Last at
2017.11.30 20:26:29 3: AC: device: pin 4 changed state to 1 , count 356 (+1)  Rej 0
2017.11.30 20:27:00 4: AC: adding 1 to long count 4904 and interpolated count 4904
2017.11.30 20:27:00 4: AC: Pin 4 (pin4) count 356 longCount 4905 interpCount 4905 (diff 1) in 339.949s, reject 0, Avg Len 167296ms, result 0.011
2017.11.30 20:27:00 4: AC: interval 20:21:20 until 20:27:00, First at 339949, Last at 339949
2017.11.30 20:29:29 3: AC: device: pin 4 changed state to 0 , count 356 (+0)  Rej 1
2017.11.30 20:31:00 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 20:31:00 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 20:31:00 4: AC: interval 20:25:00 until 20:31:00, First at , Last at
2017.11.30 20:33:00 4: AC: adding 0 to long count 4905 and interpolated count 4905
2017.11.30 20:33:00 4: AC: Pin 4 (pin4) count 356 longCount 4905 interpCount 4905 (diff 0) in 390.811s, reject 1, Avg Len ms, result 0.000
2017.11.30 20:33:00 4: AC: interval 20:26:29 until 20:33:00, First at , Last at
2017.11.30 20:37:00 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 20:37:00 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 20:37:00 4: AC: interval 20:31:00 until 20:37:00, First at , Last at
2017.11.30 20:39:00 4: AC: adding 0 to long count 4905 and interpolated count 4905
2017.11.30 20:39:00 4: AC: Pin 4 (pin4) count 356 longCount 4905 interpCount 4905 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 20:39:00 4: AC: interval 20:33:00 until 20:39:00, First at , Last at
2017.11.30 20:42:59 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 20:42:59 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 20:42:59 4: AC: interval 20:36:59 until 20:42:59, First at , Last at
2017.11.30 20:44:59 4: AC: adding 0 to long count 4905 and interpolated count 4905
2017.11.30 20:44:59 4: AC: Pin 4 (pin4) count 356 longCount 4905 interpCount 4905 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 20:44:59 4: AC: interval 20:38:59 until 20:44:59, First at , Last at
2017.11.30 20:46:49 3: AC: device: pin 4 changed state to 1 , count 356 (+0)  Rej 1
2017.11.30 20:48:59 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 20:48:59 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 20:48:59 4: AC: interval 20:42:59 until 20:48:59, First at , Last at
2017.11.30 20:49:45 3: AC: device: pin 4 changed state to 0 , count 356 (+0)  Rej 1
2017.11.30 20:50:59 4: AC: adding 0 to long count 4905 and interpolated count 4905
2017.11.30 20:50:59 4: AC: Pin 4 (pin4) count 356 longCount 4905 interpCount 4905 (diff 0) in 360.000s, reject 1, Avg Len ms, result 0.000
2017.11.30 20:50:59 4: AC: interval 20:44:59 until 20:50:59, First at , Last at
2017.11.30 20:52:14 3: AC: device: pin 4 changed state to 1 , count 357 (+1)  Rej 0
2017.11.30 20:52:59 4: AC: adding 1 to long count 4905 and interpolated count 4905
2017.11.30 20:52:59 4: AC: Pin 4 (pin4) count 357 longCount 4906 interpCount 4906 (diff 1) in 74.544s, reject 0, Avg Len 149033ms, result 0.048
2017.11.30 20:52:59 4: AC: interval 20:51:45 until 20:52:59, First at 74544, Last at 74544
2017.11.30 20:54:27 3: AC: device: pin 4 changed state to 0 , count 357 (+0)  Rej 1
2017.11.30 20:54:59 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 20:54:59 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 20:54:59 4: AC: interval 20:48:59 until 20:54:59, First at , Last at
2017.11.30 20:56:59 3: AC: device: pin 4 changed state to 1 , count 357 (+0)  Rej 2
2017.11.30 20:58:59 4: AC: adding 0 to long count 4906 and interpolated count 4906
2017.11.30 20:58:59 4: AC: Pin 4 (pin4) count 357 longCount 4906 interpCount 4906 (diff 0) in 405.456s, reject 2, Avg Len ms, result 0.000
2017.11.30 20:58:59 4: AC: interval 20:52:13 until 20:58:59, First at , Last at
2017.11.30 20:59:54 3: AC: device: pin 4 changed state to 0 , count 357 (+0)  Rej 1
2017.11.30 21:00:59 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 21:00:59 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 21:00:59 4: AC: interval 20:54:59 until 21:00:59, First at , Last at
2017.11.30 21:02:43 3: AC: device: pin 4 changed state to 1 , count 357 (+0)  Rej 2
2017.11.30 21:04:59 4: AC: adding 0 to long count 4906 and interpolated count 4906
2017.11.30 21:04:59 4: AC: Pin 4 (pin4) count 357 longCount 4906 interpCount 4906 (diff 0) in 360.000s, reject 2, Avg Len ms, result 0.000
2017.11.30 21:04:59 4: AC: interval 20:58:59 until 21:04:59, First at , Last at
2017.11.30 21:06:59 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 21:06:59 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 21:06:59 4: AC: interval 21:00:59 until 21:06:59, First at , Last at
2017.11.30 21:10:59 4: AC: adding 0 to long count 4906 and interpolated count 4906
2017.11.30 21:10:59 4: AC: Pin 4 (pin4) count 357 longCount 4906 interpCount 4906 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 21:10:59 4: AC: interval 21:04:59 until 21:10:59, First at , Last at
2017.11.30 21:12:58 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 21:12:58 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 21:12:58 4: AC: interval 21:06:58 until 21:12:58, First at , Last at
2017.11.30 21:16:58 4: AC: adding 0 to long count 4906 and interpolated count 4906
2017.11.30 21:16:58 4: AC: Pin 4 (pin4) count 357 longCount 4906 interpCount 4906 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 21:16:58 4: AC: interval 21:10:58 until 21:16:58, First at , Last at
2017.11.30 21:18:58 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 21:18:58 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 21:18:58 4: AC: interval 21:12:58 until 21:18:58, First at , Last at
2017.11.30 21:19:52 3: AC: device: pin 4 changed state to 0 , count 357 (+0)  Rej 0
2017.11.30 21:22:38 3: AC: device: pin 4 changed state to 1 , count 358 (+1)  Rej 0
2017.11.30 21:22:58 4: AC: adding 1 to long count 4906 and interpolated count 4906
2017.11.30 21:22:58 4: AC: Pin 4 (pin4) count 358 longCount 4907 interpCount 4907 (diff 1) in 339.616s, reject 0, Avg Len 165550ms, result 0.011
2017.11.30 21:22:58 4: AC: interval 21:17:19 until 21:22:58, First at 339616, Last at 339616
2017.11.30 21:24:58 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 21:24:58 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 21:24:58 4: AC: interval 21:18:58 until 21:24:58, First at , Last at
2017.11.30 21:25:34 3: AC: device: pin 4 changed state to 0 , count 358 (+0)  Rej 0
2017.11.30 21:28:24 3: AC: device: pin 4 changed state to 1 , count 359 (+1)  Rej 0
2017.11.30 21:28:58 4: AC: adding 1 to long count 4907 and interpolated count 4907
2017.11.30 21:28:58 4: AC: Pin 4 (pin4) count 359 longCount 4908 interpCount 4908 (diff 1) in 346.147s, reject 0, Avg Len 169740ms, result 0.010
2017.11.30 21:28:58 4: AC: interval 21:23:12 until 21:28:58, First at 346147, Last at 346147
2017.11.30 21:30:58 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 21:30:58 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 21:30:58 4: AC: interval 21:24:58 until 21:30:58, First at , Last at
2017.11.30 21:34:58 4: AC: adding 0 to long count 4908 and interpolated count 4908
2017.11.30 21:34:58 4: AC: Pin 4 (pin4) count 359 longCount 4908 interpCount 4908 (diff 0) in 394.237s, reject 0, Avg Len ms, result 0.000
2017.11.30 21:34:58 4: AC: interval 21:28:24 until 21:34:58, First at , Last at
2017.11.30 21:36:58 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 21:36:58 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 21:36:58 4: AC: interval 21:30:58 until 21:36:58, First at , Last at
2017.11.30 21:40:58 4: AC: adding 0 to long count 4908 and interpolated count 4908
2017.11.30 21:40:58 4: AC: Pin 4 (pin4) count 359 longCount 4908 interpCount 4908 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 21:40:58 4: AC: interval 21:34:58 until 21:40:58, First at , Last at
2017.11.30 21:42:57 4: AC: adding 0 to long count 13112 and interpolated count 13112
2017.11.30 21:42:57 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.11.30 21:42:57 4: AC: interval 21:36:57 until 21:42:57, First at , Last at

List
Internals:
   DEF        /dev/ttyUSB0@38400
   DeviceName /dev/ttyUSB0@38400
   FD         4
   Initialized 1
   NAME       AC
   NOTIFYDEV  global
   NR         21
   NTFY_ORDER 50-AC
   PARTIAL
   STATE      opened
   TYPE       ArduCounter
   VersionFirmware 1.91
   VersionModule 5.3 - 26.11.2017
   buffer
   CounterInterpolated:
   READINGS:
     2017-11-30 21:34:58   OelVorrat       963.2
     2017-11-30 21:34:58   OelZaehler      490.8
     2017-11-30 21:34:58   OelZaehlerI     490.8
     2017-11-30 21:34:58   countDiff4      0
     2017-11-30 21:30:58   countDiff6      0
     2017-11-30 21:34:58   interpolatedLong4 4908
     2017-11-30 21:30:58   interpolatedLong6 13112
     2017-11-30 21:34:58   lastMsg4        R4 C359 D0 R0 T394237 N370686695 X0
 
     2017-11-30 21:30:58   lastMsg6        R6 C0 D0 R0 T360000 N370446695 X0
 
     2017-11-30 21:34:58   long4           4908
     2017-11-30 21:30:58   long6           13112
     2017-11-30 21:34:58   pin4            359
     2017-11-30 21:30:58   pin6            0
     2017-11-30 21:34:58   power4          0.000
     2017-11-30 21:30:58   power6          0.000
     2017-11-30 21:34:58   reject4         0
     2017-11-30 21:30:58   reject6         0
     2017-11-28 08:45:23   state           opened
     2017-11-30 21:34:58   timeDiff4       394237
     2017-11-30 21:30:58   timeDiff6       360000
Attributes:
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   interval   60 360
   pin4       falling pullup 2000
   pin6       falling pullup 90
   readingFactor6 10000
   userReadings OelZaehler {ReadingsVal("AC","long4",0)/10},OelZaehlerI {ReadingsVal("AC","interpolatedLong4",0)/10},OelVorrat {1454-ReadingsVal("AC","OelZaehlerI",0)}
   userattr   pin4 pin5 pin6 readingFactor6 verboseReadings4 verboseReadings6
   verbose    4
   verboseReadings4 1
   verboseReadings6 1
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: GlennDandy am 01 Dezember 2017, 02:16:07
Hallo,

schau doch mal das an:
https://fhem.de/commandref_DE.html#statistics

Gruss
    Stefan

Genau das was ich gesucht habe. Danke für die Info.
Hab am Impuls Zähler den Wert mit den vom Arducounter Verglichen von 1Tag.  Konnte keine Abweichung feststellen.

Hab ich etwas übersehen oder gibt's die Möglichkeit nen Start Count zusetzten?

edit: Habs gelesen, userReadings ist das Sprichwort mit dem Monotonic Befehl, damits den Zähler nicht zurück setzt.
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 02 Dezember 2017, 20:56:14
Hallo GlennDandy,

user readings und monotonic brauchst Du nicht wenn Du für das jeweilige Pin verboseReadingsX (X=Pin-Nummer) setzt.
Den Start-Wert des longCounters kannst Du dann mit setreading setzen.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 02 Dezember 2017, 21:10:20
Hallo birdy,

vielen Dank für das ausführliche Testen. Ich denke wir kommen der Sache näher!

2017.11.30 18:35:17 3: AC: device: pin 4 changed state to 1 , count 349 (+0)  Rej 1
zeigt dass gerade auch ein Impuls rejected wurde.
Das scheint bei Dir oft der Fall zu sein. Die Frage ist nun warum die Impulse als rejected gewertet werden.
Nach Deiner Definition müsste dafür der Impuls oder die Pause vor dem Impuls kleiner als 2 Sekunden sein.
Setz doch mal den Minimalwert auf 100 statt 2000. Das sollte ausreichen um ein Prellen auszufiltern.

Anbei eine neue Version, bei der die zurückgewiesenen Pulse auch summiert werden. Das Modul hat das bisher nicht gemacht (Bug).
Zudem habe ich im Sketch eine zusätzliche Debug-Ausgabe eingebaut, die die letzten 4 Impulslängen und die Pausen dazwischen ausgibt.
Ich hoffe, damit finden wir den Fehler bald.

Ergänzung: der angehängte Sketch hat immer noch das spezielle Debugging aktiviert und ist deshalb für den Normalgebrauch nicht geeignet.

Gruss
   Stefan

Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 03 Dezember 2017, 01:16:48
Hallo Stefan

Bin wirklich froh um Deine Unterstützung. Ein hervorragender Service. Vielen vielen Dank.
Ich habe die neuen Versionen installiert. Jetzt zählt der Reject Zähler.

Nachfolgend ein Auszug aus dem Log.
Falls ich mit weiteren Test oder Messungen weiter helfen kann, bitte melden.

Internals:
   DEF        /dev/ttyUSB0@38400
   DeviceName /dev/ttyUSB0@38400
   FD         4
   Initialized 1
   NAME       AC
   NOTIFYDEV  global
   NR         21
   NTFY_ORDER 50-AC
   PARTIAL
   STATE      opened
   TYPE       ArduCounter
   VersionFirmware 1.92
   VersionModule 5.4 - 02.12.2017
   buffer
   CounterInterpolated:
   READINGS:
     2017-12-03 01:08:02   OelVorrat       938.5
     2017-12-03 01:08:02   OelZaehler      515.5
     2017-12-03 01:08:02   OelZaehlerI     515.5
     2017-12-03 01:04:03   countDiff4      1
     2017-12-03 01:08:02   countDiff6      0
     2017-12-03 01:04:03   interpolatedLong4 5155
     2017-12-03 01:08:02   interpolatedLong6 13112
     2017-12-03 01:04:03   lastMsg4        R4 C9 D1 R1 T95078 N10924502 X0 F95078 L95078 A166299
 
     2017-12-03 01:08:02   lastMsg6        R6 C0 D0 R0 T360000 N11164502 X0
 
     2017-12-03 01:04:03   long4           5155
     2017-12-03 01:08:02   long6           13112
     2017-12-03 01:04:03   pin4            9
     2017-12-03 01:08:02   pin6            0
     2017-12-03 01:04:03   power4          0.038
     2017-12-03 01:08:02   power6          0.000
     2017-12-03 01:04:03   reject4         2
     2017-12-03 01:08:02   reject6         0
     2017-12-02 22:02:06   state           opened
     2017-12-03 01:04:03   timeDiff4       95078
     2017-12-03 01:08:02   timeDiff6       360000
Attributes:
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   interval   60 360
   pin4       falling pullup 100
   pin6       falling pullup 90
   readingFactor6 10000
   userReadings OelZaehler {ReadingsVal("AC","long4",0)/10},OelZaehlerI {ReadingsVal("AC","interpolatedLong4",0)/10},OelVorrat {1454-ReadingsVal("AC","OelZaehlerI",0)}
   userattr   pin4 pin5 pin6 readingFactor6 verboseReadings4 verboseReadings6
   verbose    4
   verboseReadings4 1
   verboseReadings6 1

2017.12.02 23:20:06 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.02 23:20:06 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.02 23:20:06 4: AC: interval 23:14:06 until 23:20:06, First at , Last at
2017.12.02 23:22:06 4: AC: Pin 4 debug: adding 0 to long count 5148 and interpolated count 5148
2017.12.02 23:22:06 4: AC: Pin 4 (pin4) count 2 longCount 5148 interpCount 5148 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.02 23:22:06 4: AC: interval 23:16:06 until 23:22:06, First at , Last at
2017.12.02 23:22:40 3: AC: device: pin 4 changed state to 0 , count 2 (+0)  Rej 0   pulse history (ms): 0 pulse, 0 gap,  168738 pulse, 171265 gap,  208399 pulse, 2790606 gap,  0 pulse, 0 gap
2017.12.02 23:25:53 3: AC: device: pin 4 changed state to 1 , count 3 (+1)  Rej 1   pulse history (ms): 0 pulse, 0 gap,  192169 pulse, 1499503 gap,  0 pulse, 0 gap,  168738 pulse, 171265 gap
2017.12.02 23:26:06 4: AC: Pin 4 debug: adding 1 to long count 5148 and interpolated count 5148
2017.12.02 23:26:06 4: AC: Pin 4 (pin4) count 3 longCount 5149 interpCount 5149 (diff 1) in 226.662s, reject 1, Avg Len 192169ms, result 0.016
2017.12.02 23:26:06 4: AC: interval 23:22:19 until 23:26:06, First at 226662, Last at 226662
2017.12.02 23:26:06 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.02 23:26:06 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.02 23:26:06 4: AC: interval 23:20:06 until 23:26:06, First at , Last at
2017.12.02 23:28:50 3: AC: device: pin 4 changed state to 0 , count 3 (+0)  Rej 0   pulse history (ms): 0 pulse, 0 gap,  192169 pulse, 1499503 gap,  0 pulse, 0 gap,  168738 pulse, 171265 gap

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 03 Dezember 2017, 12:07:23
Hallo birdy,

in dem Log-Ausschnitt scheinen keine Impulse verloren zu gehen.
Dein Signal prellt zwar, aber im angehängten Log-Auszug wird der Puls dennoch gezählt.

2017.12.02 23:22:40 3: AC: device: pin 4 changed state to 0 , count 2 (+0)  Rej 0   pulse history (ms): 0 pulse, 0 gap,  168738 pulse, 171265 gap,  208399 pulse, 2790606 gap,  0 pulse, 0 gap
2017.12.02 23:25:53 3: AC: device: pin 4 changed state to 1 , count 3 (+1)  Rej 1   pulse history (ms): 0 pulse, 0 gap,  192169 pulse, 1499503 gap,  0 pulse, 0 gap,  168738 pulse, 171265 gap
2017.12.02 23:26:06 4: AC: Pin 4 debug: adding 1 to long count 5148 and interpolated count 5148
2017.12.02 23:26:06 4: AC: Pin 4 (pin4) count 3 longCount 5149 interpCount 5149 (diff 1) in 226.662s, reject 1, Avg Len 192169ms, result 0.016

um 23:25 geht das Signal auf 1. Es war nach einer Pause von 1499503 ms (24 Minuten) auf 0 gegangen, ist dann 192169 ms (3 Minuten) auf 0 geblieben und dann wieder auf 1 gegangen. Dabei ist es einmal sehr schnell auf 0 und wieder 1 gesprungen (0 pulse, 0 gap). Das hat Interrupts und einen "reject" erzeugt, war aber zu schnell um in der Hauptschleife einen Log-Eintrag zu erzeugen.
Der Zähler ist folglich um 1 erhöht worden (count 3 (+1)).

Schau mal ob Du im Log Einträge findest, bei denen ein langsamer Impuls sichtbar ist (device: pin 4 changed state to 1) aber ohne dass der Zähler erhöht wird.
Dann hoffe ich, dass die puls history uns erklären kann, was da passiert ist ...

Gruss
   Stefan

Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 03 Dezember 2017, 13:22:37
Hallo Stefan

Ich habe soeben (13:00) die Zähler gecheckt. Momentan stimmt der Durchflussmesser und der ArduConter noch überein. Gleichstand keine Abweichung über die Nacht.  :)
Und dies obwohl seit der letzten Synchronisation ca. 50 Impulse gezählt wurden.  Reiner Zufall?

Mach wohl so keinen Sinn das Logs genauer zu untersuchen?

Ich behalte das Ganze im Auge.
Könnte es sein, dass Deine letzte Änderung (Fix Reject Zähler) hier eine Verbesserung bewirkt hat?

Gruss bridy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 03 Dezember 2017, 13:45:12
Hallo birdy,

meine letzten Änderungen können eigentlich keine Auswirkungen haben.
Eventuell hat aber die Einstellung der minimalen Pulsdauer einen Einfluss.
Du könntest die zum Testen wieder auf 2000 setzen.
Wenn es sonst keine Abweichungen gibt, hilft das eventuell bei der Fehlersuche.
Oder Deine Ölpumpe hat zwischendrin "Spurts", bei denen die Impulse tatsächlich kürzer als 2 Sekunden waren ...

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 13 Dezember 2017, 17:39:40
Hallo birdy,

gibt es etwas Neues von Deinem Ölzähler?
Hast Du noch Abweichungen oder stimmen die Zähler inzwischen überein?

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 15 Dezember 2017, 00:07:12
Hallo Stefan

Der AdruConter ist nun knapp 2 Wochen mit einer Pulslängen-Kontrolle von 100 gelaufen. Dabei hat alles ausgezeichnet funktioniert. Über die gesamte Zeit keine Abweichung, 100% Übereinstimmung. Perfekt. Die letzten zwei Tage hab ich noch mit 2000 getestet. Auch hier keine Abweichungen.  :)
Auch wenn Du anderer Meinung bist, der letzte Change hat den entscheidenden Unterschied gebracht, zumindest bei mir.
Die von Dir angenommen „Spurts“ der Ölpumpe sind ausgeschlossen, das würde ja bedeuten, das 0.1 Liter in 2 Sekunden durchlaufen. Unmöglich!

Jetzt könnte die spezielle Debug - Firmwareversion wieder mit einer regulären ersetzt werden.

Internals:
   DEF        /dev/ttyUSB0@38400
   DeviceName /dev/ttyUSB0@38400
   FD         4
   Initialized 1
   NAME       AC
   NOTIFYDEV  global
   NR         21
   NTFY_ORDER 50-AC
   PARTIAL
   STATE      opened
   TYPE       ArduCounter
   VersionFirmware 1.92
   VersionModule 5.4 - 02.12.2017
   buffer
   CounterInterpolated:
   READINGS:
     2017-12-14 23:52:14   OelVorrat       808.2
     2017-12-14 23:52:14   OelZaehler      645.8
     2017-12-14 23:52:14   OelZaehlerI     645.8
     2017-12-14 23:52:14   countDiff4      0
     2017-12-14 23:52:14   countDiff6      0
     2017-12-14 23:52:14   interpolatedLong4 6458
     2017-12-14 23:52:14   interpolatedLong6 13112
     2017-12-14 23:52:14   lastMsg4        R4 C1311 D0 R0 T360000 N1044004502 X0
 
     2017-12-14 23:52:14   lastMsg6        R6 C0 D0 R0 T360000 N1044004502 X0
 
     2017-12-14 23:52:14   long4           6458
     2017-12-14 23:52:14   long6           13112
     2017-12-14 23:52:14   pin4            1311
     2017-12-14 23:52:14   pin6            0
     2017-12-14 23:52:14   power4          0.000
     2017-12-14 23:52:14   power6          0.000
     2017-12-14 23:52:14   reject4         47
     2017-12-14 23:52:14   reject6         0
     2017-12-09 12:58:05   state           opened
     2017-12-14 23:52:14   timeDiff4       360000
     2017-12-14 23:52:14   timeDiff6       360000
Attributes:
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   interval   60 360
   pin4       falling pullup 2000
   pin6       falling pullup 90
   readingFactor6 10000
   userReadings OelZaehler {ReadingsVal("AC","long4",0)/10},OelZaehlerI {ReadingsVal("AC","interpolatedLong4",0)/10},OelVorrat {1454-ReadingsVal("AC","OelZaehlerI",0)}
   userattr   pin4 pin5 pin6 readingFactor6 verboseReadings4 verboseReadings6
   verbose    4
   verboseReadings4 1
   verboseReadings6 1

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 17 Dezember 2017, 20:37:01
hallo,

anbei das ganze wieder ohne Debug-Code.
Eigentlich ist es nur ein #define slowDebug, der geändert werden muss.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 17 Dezember 2017, 22:05:16
Hallo Stefan

Immer noch Gleichstand zwischen dem mechanischen Zähler und dem ArduConter. Also alles bestens, auch mit einer Pulslängen-Kontrolle von 2000 ;)
Jetzt habe ich soeben die neue Firmware (1.93) aufgespielt.
Vielen Dank für bereitstellen.

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: hermann258 am 19 Dezember 2017, 13:23:16
Hallo
Ich habe alles auf den neuesten Stand gebracht ,leider steht jetzt nur noch opened in Fhem.
Wie kann ich das beheben
Gruß Hermann
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 19 Dezember 2017, 14:44:27
Hallo Stefan

Es ist wie verhext. Seit Sonntag habe ich die Firmwaren Version von Post #240 (1.93) im Einsatz. Seit diesem Zeitpunkt treten bei mir wieder täglich massive Abweichungen auf. Etwa 25%-35% der Impulse werden nicht gezählt.  :(

Ich denke ich werde versuchen die Firmware nochmals aufzuspielen. Sonst hat ja nichts geändert gegenüber der letzten Woche.
Hast Du evtl. noch eine Idee was das Problem sein könnte?

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Nighthawk am 19 Dezember 2017, 20:04:49
Hallo zusammen,

auch ich kann bestätigen, dass seit dem Flashen der 1.93 nur ein Bruchteil gezählt wird.
Ich habe eben die 1.90 wieder geflasht und siehe da, es wird alles gezählt.
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 22 Dezember 2017, 15:08:48
Hallo,

das ist wirklich seltsam.
Alles was ich seit Sketch Version 1.9(0) eingebaut habe, waren Debug-Features um herauszufinden, warum in der 1.90er bei birdy Impulse nicht gezählt werden.
Das Zwischenergebnis war, dass die fehlenden Impulse, die ich in birdys Log sehen konnte, als rejected gezählt wurden. Das ist ein Feature der Impulslängenkontrolle, die zu kurze Impulse bzw. Störungen ignoriert. Ob die fehlenden Impulse zu recht ignoriert wurden oder nicht, kann ich natürlich nicht sagen.

Bei den langsamen Impulsen von birdys Ölpumpe wäre ein Vergleich mit dem Protokoll eines DMM ideal zur Fehlersuche, nur leider sind seit der erweiterten Debug-Ausgabe keine Abweichungen mehr aufgetreten. Das ist schon verhext.

Der Unterschied von 1.92 zu 1.93 ist der #define slowdebug.
wenn slowdebug definiert ist, werden zusätzliche Werte (Länge der letzten Impulse und der Pausen dazwischen) gespeichert und ausgegeben. Die Code-Größe und der RAM-Bedarf steigen dadurch. Am Zählen per Interrupt sollte sich dadurch nichts ändern.

@birdy: wenn Du in Zeile 73 die Kommentarzeichen (//) entfernst, wird der Debug-Code wieder reincompiliert. Bitte prüf doch mal, ob bei Dir dann alles wieder klappt.
Das beantwortet dann zwar immer noch nicht warum das so ist, aber immerhin sind wir dann sicher, dass der Debug-Code tatsächlich den Unterschied macht und ich kann da weitersuchen.
Unabhängig von den Debug-Ausgaben habe ich seit 1.9(0) nur zusätzliche Kommentare eingefügt, ein paar Variablennamen geändert, so dass ihre Funktion leichter verständlich ist und unbenutzte Variable entfernt. Das alles darf keine Auswirkungen auf die Funktion des compilats haben.

@Nighthawk: verwendest Du Pulslängenkontrolle? werden Impulse rejected? Womit vergleichst Du die gezählten Impulse? Die 1.9(0), die bei Dir und auch bisher allen anderen Anwendern funktioniert, ist genau die, die bei birdys Ölpumpe nicht funktioniert. Oder meintest Du die 1.92, auf die Du zurück gegangen bist?
Hast Du einen Stromzähler mit S0-Ausgang oder auch einen Spezial-Zähler mit Reedkontakt?

Da ich das Problem leider nicht nachstellen kann, bin ich weiter auf Eure Hilfe beim Testen / Eingrenzen angewiesen.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 23 Dezember 2017, 11:44:25
Hallo Stefan

Erst mal eine Frage:
Ich habe wie in früheren  Post, vor einigen Monaten  diskutieret, einen Kondensator verbaut. Macht dies in der aktuellen Firm- /Software Kombination noch einen Sinn?
Ohne diesen Kondensator würde das flashen der Firmware etwas einfacher gehen.

@birdy: wenn Du in Zeile 73 die Kommentarzeichen (//) entfernst, wird der Debug-Code wieder reincompiliert. Bitte prüf doch mal, ob bei Dir dann alles wieder klappt.
 
Klaro, werde ich in den nächsten Tagen machen.


Ob die fehlenden Impulse zu recht ignoriert wurden oder nicht, kann ich natürlich nicht sagen. 
In der letzten korrekt funktionierenden Version (mit Debug Option) hatte ich immer wieder Rejects. Offensichtlich prellt der Kontakt bei mir (manchmal). Diese Impulse wurden also zu recht ignoriert. Ich hatte ja während rund 2 Wochen keinerlei Abweichung, nicht einen einzigen Impuls. Wie es in der letzten Version (ohne Debut Option) aussieht kann ich auch nicht sagen. Ich sehe gerade auch keine Möglichkeit die berechtigen Rejects von allfälligen nicht berechtigten zu unterscheiden.


Da ich das Problem leider nicht nachstellen kann, bin ich weiter auf Eure Hilfe beim Testen / Eingrenzen angewiesen.
Mache ich sehr gerne, werde ja von Dir auch sehr tatkräftig unterstützt.  :)

Gruss birdy

PS: Ist zwar nicht von Bedeutung aber meine „Ölpumpe“ ist genau genommen ein Ringkolbendurchfluszähler. 
http://www.weinmann-schanz.de/de/de/Heizung/%C3%96l-Installation/%C3%96lz%C3%A4hler/pid.1143.1160/agid.89208.89536.2378/ecm.ag/Ringkolbenz%C3%A4hler-AQUA-METRO-VZO-4-8-mit-Innengewindeanschluss.html
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 23 Dezember 2017, 18:17:48
Hallo birdy,

ich würde den Kondensator drin lassen.
Zum Flashen habe ich auf meinem Fhem-Raspberry, an dem der Arduino angeschlossen ist, avrdude installiert. Dann kann man die neue Firmware (als hex-File) direkt aus Fhem heraus flashen und muss keine Kabel abklemmen. Einfach set flash.

Bin gespannt, was Deine weiteren Tests ergeben.
Ich habe gerade nochmals per diff geprüft, ob ich wirklich nicht versehentlich noch etwas anderes geändert habe, aber zwischen 1.92 und 1.93 ändert sich nur der #define und der Versionsstring. Folglich müsste dann ja mit Debug-Code wieder alles funktionieren.
Ich werde dann schrittweise die Debug-Funktionen wieder entfernen um so einzugrenzen, an welcher Stelle es Seiteneffekte gibt...

Noch eine Frage zum Verhalten mit der 1.93er Version ohne Debug-Ausgabe:
Sind die jetzt fehlenden Pulse als Rejected gezählt worden oder fehlen die einfach spurlos?
Kannst Du mit dem DMM und gleichzeitigem Fhem-Log mit verbose 5 nochmal ein Protokoll posten wo man die fehlenden Pulse sieht?

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Nighthawk am 23 Dezember 2017, 20:50:13
Hallo Stefan,

ich nutze den Arducounter für einen Gas und einen Wasserzähler mit Reedkontakt.
Pulslängenkontrolle habe ich bisher nicht genutzt.
Rejects habe ich wenige mit der 1.90, mit der 1.93 sind die fehlenden Impulse gar nicht da.
Ich teste gerade die 1,92 und hier werden die rejectete Impulse mitgezählt und es ist nun sehr nahe an dem realen Zähler, ich beobachte es noch ein paar tage.

Hier ein List von meiem aktuellen Device:

Internals:
   DEF        /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@38400
   DeviceName /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@38400
   FD         4
   Initialized 1
   NAME       AC
   NOTIFYDEV  global
   NR         1100
   NTFY_ORDER 50-AC
   PARTIAL   
   STATE      opened
   TYPE       ArduCounter
   VersionFirmware 1.92
   VersionModule 5.4 - 02.12.2017
   buffer     
   CounterInterpolated:
 
   READINGS:
     2017-12-23 20:47:12   GasZaehler      96185
     2017-12-18 19:59:54   GasZaehlerStart 91772
     2017-12-23 20:47:12   Gaszaehler_Longcount 4413
     2017-12-23 20:47:12   WasserZaehler   549728
     2017-12-23 17:57:08   WasserZaehlerStart 534835
     2017-12-23 20:45:12   Wasserzaehler_Longcount 14893
     2017-12-23 20:47:12   countDiff4      0
     2017-12-23 20:45:12   countDiff6      0
     2017-12-23 20:47:12   interpolatedLong4 4415
     2017-12-23 20:45:12   interpolatedLong6 1737
     2017-12-23 20:47:12   lastMsg4        R4 C327 D0 R0 T360000 N357120548 X0
     2017-12-23 20:45:12   lastMsg6        R6 C1737 D0 R0 T360000 N357000548 X0
     2017-10-23 10:34:20   long4           2
     2017-12-23 20:47:12   pin4            327
     2017-12-23 20:45:12   pin6            1737
     2017-12-23 20:47:12   power4          0.000
     2017-12-23 20:45:12   power6          0.000
     2017-12-23 20:47:12   reject4         166
     2017-12-23 20:45:12   reject6         21
     2017-12-23 20:47:12   statGasZaehler  Hour: 6 Day: 70 Month: 1993 Year: 4497 (since: 2017-10-23 )
     2017-12-23 20:47:12   statGasZaehlerDay 70
     2017-12-22 23:59:55   statGasZaehlerDayLast 77
     2017-12-23 19:59:55   statGasZaehlerLast Hour: 9 Day: 77 Month: 2127 Year: -
     2017-12-23 20:47:12   statGasZaehlerMonth 1993
     2017-11-30 23:59:55   statGasZaehlerMonthLast 2127
     2017-12-23 20:47:12   statWasserZaehler Hour: 17 Day: 525 Month: 6504 Year: 17674 (since: 2017-10-23 )
     2017-12-23 20:47:12   statWasserZaehlerDay 525
     2017-12-22 23:59:55   statWasserZaehlerDayLast 158
     2017-12-23 19:59:55   statWasserZaehlerLast Hour: 203 Day: 158 Month: 8116 Year: -
     2017-12-23 20:47:12   statWasserZaehlerMonth 6504
     2017-11-30 23:59:55   statWasserZaehlerMonthLast 8116
     2017-12-19 18:56:25   state           opened
     2017-12-23 20:47:12   timeDiff4       360000
     2017-12-19 20:04:35   timeDiff5       360000
     2017-12-23 20:45:12   timeDiff6       360000
   helper:
     _98_statistics myStatDevice
Attributes:
   event-on-change-reading .*
   flashCommand avrdude -p atmega328P -c arduino -b 57600 -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   group      Energie
   interval   60 360
   pinD4      falling 100
   pinD6      falling 100
   readingNameLongCount4 Gaszaehler_Longcount
   readingNameLongCount6 Wasserzaehler_Longcount
   room       Anschlussraum
   sortby     10
   userReadings GasZaehler {ReadingsVal("AC","Gaszaehler_Longcount",0) + ReadingsNum("AC","GasZaehlerStart",0) }, WasserZaehler {ReadingsVal("AC","Wasserzaehler_Longcount",0) + ReadingsNum("AC","WasserZaehlerStart",0) }
   userattr   pinD4 pinD6 readingNameLongCount4 readingNameLongCount6 verboseReadings4 verboseReadings6
   verbose    5
   verboseReadings4 1
   verboseReadings6 1
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 26 Dezember 2017, 15:16:27
Hallo Stefan


ich würde den Kondensator drin lassen.
Zum Flashen habe ich auf meinem Fhem-Raspberry, an dem der Arduino angeschlossen ist, avrdude installiert. Dann kann man die neue Firmware (als hex-File) direkt aus Fhem heraus flashen und muss keine Kabel abklemmen. Einfach set flash.
 

Hast Du auch einen Kondensator verbaut?
Ich muss mit dem verbauten Kondensator immer genau im richtigen Moment den Reset Taster auf dem Arduino drücken um zu flashen. Ohne geht es nicht, auch nicht mit avrdude. Drücke ich den Taster einen Bruchteil einer Sekunde zu früh oder zu säht scheitert der Flashvorgang.

Noch eine Frage zum Verhalten mit der 1.93er Version ohne Debug-Ausgabe:
Sind die jetzt fehlenden Pulse als Rejected gezählt worden oder fehlen die einfach spurlos?
Das habe ich mir auch schon überlegt, aber dazu habe ich noch keinen Ansatz gefunden wie ich das eingrenzen könnte. Mein Reedkontakt prellt offensichtlich. Die „Prell“ Impulse werden zu recht nur bei den Rejcts gezählt. Ich habe keinen Ahnung wie viele und wann solche zu kurzen Impulse auftreten. Somit habe ich auch keine Ahnung wie ich die zurecht ignorierten von den fälschlicherweise ignorierten unterscheiden könnte.

Leider bin ich bis jetzt noch nicht dazu gekommen irgendwelche Test zu machen.

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 27 Dezember 2017, 12:19:44
Hallo birdy,

wo hast Du den Kondensator denn eingebaut? Ich fürchte ich habe Dich hier falsch verstanden und Du hast den Kondensator gar nicht zum Entprellen sondern zum Verhindern des Reset eingebaut oder?
Ich denke auf den kannst Du inzwischen verzichten. Der LongCounter zählt ja im Modul entsprechend weiter. Es bleibt also nur das Risiko, dass während des Restarts ein Impuls übersehen wird.
Ich würde ihn zumindest so lange entfernen bis wir das Problem gelöst / vollständig verstanden haben.

Ich versuche gerade Deine Umgebung zu simulieren und einen zweiten Arduino als Signalgeber an den Eingang zu hängen. Wie hast Du denn den Arducounter genau konfiguriert wenn die Probleme auftreten? In welchen Abständen kommen zu der Zeit ungefähr die Impulse? (dann kann ich versuchen das so nahe wie möglich zu simulieren)

Gruss
   Stefan

Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 27 Dezember 2017, 14:05:53
Hallo Stefan

Genau den Kondensator hatte ich zum Verhindern des Reset eingebaut. 
Diesen habe gestern gegen Abend entfernt (Flashen mit set flash hat trotzdem noch nicht funktioniert) .
Ich habe Deine 1.93 genommen den Kommentar bei Zeile 73 entfern und so die Debug Funktion wieder aktiviert. Seit gestern ca. 17:00 bis jetzt keinerlei Abweichung :)

Der Reedkonkakt hängt zwischen Pin 4 und GND.
Nachfolgend ein Extrakt des Log aus Post @230, aus dem ich alle Statusübergänge extrahiert habe. Diese liegen in der Regel ca. 2:30 auseinander. Je nach aktueller Leistung kann dies etwas variieren. Zwischendurch schaltet die Heizung auch mal für 20, 30 Minuten aus.   

2017.11.30 17:28:10 3: AC: device: pin 4 changed state to 0 , count 344 (+0)  Rej 1
2017.11.30 17:41:45 3: AC: device: pin 4 changed state to 1 , count 345 (+1)  Rej 0
2017.11.30 17:44:36 3: AC: device: pin 4 changed state to 0 , count 345 (+0)  Rej 0
2017.11.30 17:46:58 3: AC: device: pin 4 changed state to 1 , count 346 (+1)  Rej 0
2017.11.30 17:49:06 3: AC: device: pin 4 changed state to 0 , count 346 (+0)  Rej 0
2017.11.30 17:51:29 3: AC: device: pin 4 changed state to 1 , count 347 (+1)  Rej 0
2017.11.30 17:54:25 3: AC: device: pin 4 changed state to 0 , count 347 (+0)  Rej 0
2017.11.30 17:57:15 3: AC: device: pin 4 changed state to 1 , count 348 (+1)  Rej 0
2017.11.30 18:17:32 3: AC: device: pin 4 changed state to 0 , count 348 (+0)  Rej 0
2017.11.30 18:20:15 3: AC: device: pin 4 changed state to 1 , count 349 (+1)  Rej 0
2017.11.30 18:23:10 3: AC: device: pin 4 changed state to 0 , count 349 (+0)  Rej 1
2017.11.30 18:35:17 3: AC: device: pin 4 changed state to 1 , count 349 (+0)  Rej 1
2017.11.30 18:47:22 3: AC: device: pin 4 changed state to 0 , count 349 (+0)  Rej 1
2017.11.30 18:49:57 3: AC: device: pin 4 changed state to 1 , count 349 (+0)  Rej 2
2017.11.30 18:52:05 3: AC: device: pin 4 changed state to 0 , count 349 (+0)  Rej 1
2017.11.30 18:54:21 3: AC: device: pin 4 changed state to 1 , count 349 (+0)  Rej 2
2017.11.30 18:57:18 3: AC: device: pin 4 changed state to 0 , count 349 (+0)  Rej 0
2017.11.30 19:14:44 3: AC: device: pin 4 changed state to 1 , count 350 (+1)  Rej 0
2017.11.30 19:17:38 3: AC: device: pin 4 changed state to 0 , count 350 (+0)  Rej 0
2017.11.30 19:19:28 3: AC: device: pin 4 changed state to 1 , count 351 (+1)  Rej 0
2017.11.30 19:21:09 3: AC: device: pin 4 changed state to 0 , count 351 (+0)  Rej 0
2017.11.30 19:22:48 3: AC: device: pin 4 changed state to 1 , count 352 (+1)  Rej 0
2017.11.30 19:25:23 3: AC: device: pin 4 changed state to 0 , count 352 (+0)  Rej 1
2017.11.30 19:28:12 3: AC: device: pin 4 changed state to 1 , count 352 (+0)  Rej 2
2017.11.30 19:40:42 3: AC: device: pin 4 changed state to 0 , count 352 (+0)  Rej 0
2017.11.30 19:48:46 3: AC: device: pin 4 changed state to 1 , count 353 (+1)  Rej 0
2017.11.30 19:51:42 3: AC: device: pin 4 changed state to 0 , count 353 (+0)  Rej 0
2017.11.30 19:54:27 3: AC: device: pin 4 changed state to 1 , count 354 (+1)  Rej 0
2017.11.30 19:57:32 3: AC: device: pin 4 changed state to 0 , count 354 (+0)  Rej 1
2017.11.30 20:00:14 3: AC: device: pin 4 changed state to 1 , count 354 (+0)  Rej 2
2017.11.30 20:03:13 3: AC: device: pin 4 changed state to 0 , count 354 (+0)  Rej 0
2017.11.30 20:20:49 3: AC: device: pin 4 changed state to 1 , count 355 (+1)  Rej 0
2017.11.30 20:26:29 3: AC: device: pin 4 changed state to 1 , count 356 (+1)  Rej 0
2017.11.30 20:29:29 3: AC: device: pin 4 changed state to 0 , count 356 (+0)  Rej 1
2017.11.30 20:49:45 3: AC: device: pin 4 changed state to 0 , count 356 (+0)  Rej 1
2017.11.30 20:52:14 3: AC: device: pin 4 changed state to 1 , count 357 (+1)  Rej 0
2017.11.30 20:54:27 3: AC: device: pin 4 changed state to 0 , count 357 (+0)  Rej 1
2017.11.30 20:56:59 3: AC: device: pin 4 changed state to 1 , count 357 (+0)  Rej 2
2017.11.30 20:59:54 3: AC: device: pin 4 changed state to 0 , count 357 (+0)  Rej 1
2017.11.30 21:02:43 3: AC: device: pin 4 changed state to 1 , count 357 (+0)  Rej 2
2017.11.30 21:19:52 3: AC: device: pin 4 changed state to 0 , count 357 (+0)  Rej 0
2017.11.30 21:22:38 3: AC: device: pin 4 changed state to 1 , count 358 (+1)  Rej 0
2017.11.30 21:25:34 3: AC: device: pin 4 changed state to 0 , count 358 (+0)  Rej 0
2017.11.30 21:28:24 3: AC: device: pin 4 changed state to 1 , count 359 (+1)  Rej 0

Und List des ArduCounters:
Internals:
   CounterResetTime 1514298686.03582
   DEF        /dev/ttyUSB0@38400
   DeviceName /dev/ttyUSB0@38400
   FD         4
   Initialized 1
   NAME       AC
   NOTIFYDEV  global
   NR         21
   NTFY_ORDER 50-AC
   PARTIAL
   STATE      opened
   TYPE       ArduCounter
   VersionFirmware 1.94
   VersionModule 5.4 - 02.12.2017
   buffer
   CounterInterpolated:
     4          1
     6          1
   READINGS:
     2017-12-27 14:00:38   OelVorrat       681.8
     2017-12-27 14:00:38   OelZaehler      772.2
     2017-12-27 14:00:38   OelZaehlerI     772.2
     2017-12-27 14:00:38   countDiff4      1
     2017-12-27 14:00:38   countDiff6      0
     2017-12-27 14:00:38   interpolatedLong4 7722
     2017-12-27 14:00:38   interpolatedLong6 13112
     2017-12-27 14:00:38   lastMsg4        R4 C94 D1 R1 T275143 N81000523 X0 F275143 L275143 A515709
 
     2017-12-27 14:00:38   lastMsg6        R6 C0 D0 R0 T360000 N81000523 X0
 
     2017-12-27 14:00:38   long4           7722
     2017-12-27 14:00:38   long6           13112
     2017-12-27 14:00:38   pin4            94
     2017-12-27 14:00:38   pin6            0
     2017-12-27 14:00:38   power4          0.013
     2017-12-27 14:00:38   power6          0.000
     2017-12-27 14:00:38   reject4         27
     2017-12-27 14:00:38   reject6         0
     2017-12-26 15:31:24   state           opened
     2017-12-27 14:00:38   timeDiff4       275143
     2017-12-27 14:00:38   timeDiff6       360000
Attributes:
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   interval   60 360
   pin4       falling pullup 2000
   pin6       falling pullup 90
   readingFactor6 10000
   userReadings OelZaehler {ReadingsVal("AC","long4",0)/10},OelZaehlerI {ReadingsVal("AC","interpolatedLong4",0)/10},OelVorrat {1454-ReadingsVal("AC","OelZaehlerI",0)}
   userattr   pin4 pin6 readingFactor6 verboseReadings4 verboseReadings6
   verbose    5
   verboseReadings4 1
   verboseReadings6 1

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 27 Dezember 2017, 15:54:33
vielen Dank!

dann sind es also tatsächlich die Debug-Funktionen.
Jetzt würde ich gerne weiter eingrenzen, welcher Teil der Debug-Funktionen den Unterschied macht.

Als Basis wäre es hilfreich, wenn Du nochmal Dein DMM zum Vergleich mitlaufen lassen würdest und dabei mit der bisherigen Version ohne Debug-Funktionen aber mit verbose 5 einen Log-Auszug posten könntest, in dem man sieht, wo / unter welchen Bedingungen bzw. wie oft Abweichungen auftreten.

Danach würde ich Dir gerne eine neue Version schicken, bei der zunächst nur der Debug-Teil in der Hauptschleife drin steckt, nicht aber der Teil im Interrupt-Handler, der die zusätzlichen Daten bereitstellt.
Eigentlich sollte das dann keinen Unterschied machen, denn gezählt wird ja per Interrupt. Folglich sollten hier wieder Impulse fehlen. Warum auch immer ...

Gruss / Thanx
   Stefan

Anbei schon mal die neue Version für den zweiten Test
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 28 Dezember 2017, 00:37:32
Hallo Stefan

Ich habe heute Abend währen rund 3 Stunden  einen Test durchgeführt.

Start: 20:19

Ende: 23:24

Erklärungen:
Der Reed-Kontakt schliesst jeweils bei x.x1 und öffnet bei x.x6 Liter. Ergibt ein Zyklus per 0.1L
Das DMM Protokoll habe ich bearbeitet, es sind nur noch die Statusübergänge enthalten. Immer der letzte Messwert vor und nach dem Übergang.
Es ist davon auszugehen, dass die beiden Uhren DDM und FHEM nicht ganz synchron laufen.

List:
Internals:
   CounterResetTime 1514402090.93483
   DEF        /dev/ttyUSB0@38400
   DeviceName /dev/ttyUSB0@38400
   FD         10
   Initialized 1
   NAME       AC
   NOTIFYDEV  global
   NR         21
   NTFY_ORDER 50-AC
   PARTIAL
   STATE      opened
   TYPE       ArduCounter
   VersionFirmware 1.93
   VersionModule 5.4 - 02.12.2017
   buffer
   CounterInterpolated:
     4          1
     6          1
   READINGS:
     2017-12-27 23:26:44   OelVorrat       678.7
     2017-12-27 23:26:44   OelZaehler      775.3
     2017-12-27 23:26:44   OelZaehlerI     775.3
     2017-12-27 23:23:44   countDiff4      0
     2017-12-27 23:26:44   countDiff6      0
     2017-12-27 23:23:44   interpolatedLong4 7753
     2017-12-27 23:26:44   interpolatedLong6 13112
     2017-12-27 23:23:44   lastMsg4        R4 C5 D0 R0 T360000 N11340534 X1
 
     2017-12-27 23:26:44   lastMsg6        R6 C0 D0 R0 T360000 N11520534 X0
 
     2017-12-27 23:23:44   long4           7753
     2017-12-27 23:26:44   long6           13112
     2017-12-27 23:23:44   pin4            5
     2017-12-27 23:26:44   pin6            0
     2017-12-27 23:23:44   power4          0.000
     2017-12-27 23:26:44   power6          0.000
     2017-12-27 23:23:44   reject4         23
     2017-12-27 23:26:44   reject6         0
     2017-12-27 20:14:49   state           opened
     2017-12-27 23:23:44   timeDiff4       360000
     2017-12-27 23:26:44   timeDiff6       360000
Attributes:
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   interval   60 360
   pin4       falling pullup 2000
   pin6       falling pullup 90
   readingFactor6 10000
   userReadings OelZaehler {ReadingsVal("AC","long4",0)/10},OelZaehlerI {ReadingsVal("AC","interpolatedLong4",0)/10},OelVorrat {1454-ReadingsVal("AC","OelZaehlerI",0)}
   userattr   pin4 pin6 readingFactor6 verboseReadings4 verboseReadings6
   verbose    5
   verboseReadings4 1
   verboseReadings6 1

DMM-Log:
No Time DC/AC Value Unit
1 20:19:49 DC 0.0060 V
328 20:25:20 DC 0.0060 V
329 20:25:21 DC 04.775 V
502 20:28:17 DC 04.776 V
503 20:28:18 DC 0.0040 V
644 20:30:40 DC 0.0060 V
645 20:30:41 DC 04.775 V
771 20:32:49 DC 04.776 V
772 20:32:50 DC 0.0060 V
888 20:34:48 DC 0.0060 V
889 20:34:49 DC 04.774 V
1047 20:37:30 DC 04.777 V
1048 20:37:31 DC 0.0060 V
1216 20:40:21 DC 0.0060 V
1217 20:40:22 DC 04.775 V
2441 21:01:03 DC 04.777 V
2442 21:01:04 DC 0.0060 V
2584 21:03:28 DC 0.0060 V
2585 21:03:29 DC 04.775 V
2755 21:06:21 DC 04.777 V
2756 21:06:22 DC 0.0060 V
2923 21:09:12 DC 0.0060 V
2924 21:09:13 DC 04.777 V
3098 21:12:09 DC 04.778 V
3099 21:12:10 DC 0.0060 V
4252 21:31:39 DC 00.060 V
4253 21:31:40 DC 04.775 V
4389 21:33:58 DC 04.778 V
4390 21:33:59 DC 0.0060 V
4554 21:36:46 DC 0.0060 V
4555 21:36:47 DC 04.775 V
4730 21:39:44 DC 04.777 V
4731 21:39:45 DC 0.0060 V
6142 22:03:36 DC 0.0060 V
6143 22:03:37 DC 04.774 V
6308 22:06:24 DC 04.777 V
6309 22:06:25 DC 0.0060 V
6439 22:08:37 DC 0.0060 V
6440 22:08:38 DC 04.775 V
6544 22:10:23 DC 04.777 V
6545 22:10:24 DC 0.0060 V
6648 22:12:09 DC 0.0059 V
6649 22:12:10 DC 04.776 V
6813 22:14:56 DC 04.777 V
6814 22:14:57 DC 0.0060 V
6980 22:17:45 DC 00.060 V
6981 22:17:46 DC 04.775 V
8548 22:44:15 DC 04.777 V
8549 22:44:16 DC 0.0060 V
8713 22:47:03 DC 0.0060 V
8714 22:47:04 DC 04.777 V
8887 22:49:59 DC 0.4778 V
8888 22:50:00 DC 0.0060 V
9054 22:52:48 DC 0.0060 V
9055 22:52:49 DC 04.775 V
10068 23:09:57 DC 04.777 V
10069 23:09:58 DC 0.0060 V
10234 23:12:45 DC 0.0060 V
10235 23:12:46 DC 04.775 V
10394 23:15:27 DC 04.777 V
10395 23:15:28 DC 0.0060 V
10563 23:18:18 DC 0.0060 V
10564 23:18:20 DC 04.775 V
10737 23:21:15 DC 04.777 V
10738 23:21:16 DC 0.0060 V
10954 23:24:55 DC 0.0059 V

FHEM-Log:2017.12.27 20:14:51 3: AC: device: Next report in 29861 Milliseconds
2017.12.27 20:14:51 5: AC: ReadAnswer matched Next report in [0-9]+ Milliseconds
2017.12.27 20:20:50 4: AC: arduino was restarted so some impulses might have got lost for 4 (pin4)
2017.12.27 20:20:50 4: AC: interpolation of missed pulses for pin 4 (pin4) not possible - no valid historic data.
2017.12.27 20:20:50 4: AC: Pin 4 debug: adding 0 to long count 7748 and interpolated count 7748
2017.12.27 20:20:50 4: AC: Pin 4 (pin4) count 0 longCount 7748 interpCount 7748 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 20:20:50 4: AC: interval 20:14:50 until 20:20:50, First at , Last at
2017.12.27 20:20:50 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 20:20:50 4: AC: device clock wrapped or reset (now 360.52, before 101340.523). New offset is 1514402090.22161
2017.12.27 20:20:50 5: AC: Device Time 360.52, Drift -59.366s in 326197.966s, -0.02%
2017.12.27 20:20:50 4: AC: arduino was restarted so some impulses might have got lost for 6 (pin6)
2017.12.27 20:20:50 3: AC: interpolation after counter reset for pin 6 (pin6): offline 2304.93 secs, 0 estimated pulses (before 0 in 360000 ms, now 0 in 360000 ms, avg ratio 0 p/s)
2017.12.27 20:20:50 4: AC: adding interpolated 0 to interpolated count 13112
2017.12.27 20:20:50 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 20:20:50 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 20:20:50 4: AC: interval 20:14:50 until 20:20:50, First at , Last at
2017.12.27 20:20:50 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 20:20:50 5: AC: Device Time 360.534, Drift 0.002s in 326197.982s, 0.00%
2017.12.27 20:26:50 4: AC: Pin 4 debug: adding 0 to long count 7748 and interpolated count 7748
2017.12.27 20:26:50 4: AC: Pin 4 (pin4) count 0 longCount 7748 interpCount 7748 (diff 0) in 360.000s, reject 2, Avg Len ms, result 0.000
2017.12.27 20:26:50 4: AC: interval 20:20:50 until 20:26:50, First at , Last at
2017.12.27 20:26:50 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 20:26:50 5: AC: Device Time 720.52, Drift -0.178s in 326557.787s, -0.00%
2017.12.27 20:26:50 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 20:26:50 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 20:26:50 4: AC: interval 20:20:50 until 20:26:50, First at , Last at
2017.12.27 20:26:50 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 20:26:50 5: AC: Device Time 720.534, Drift -0.192s in 326557.787s, -0.00%
2017.12.27 20:32:50 4: AC: Pin 4 debug: adding 1 to long count 7748 and interpolated count 7748
2017.12.27 20:32:50 4: AC: Pin 4 (pin4) count 1 longCount 7749 interpCount 7749 (diff 0) in 129.761s, reject 1, Avg Len ms, result 0.000
2017.12.27 20:32:50 4: AC: interval 20:30:40 until 20:32:50, First at , Last at
2017.12.27 20:32:50 5: AC: set readings power4 to 0.000, timeDiff4 to 129761 and countDiff4 to 0
2017.12.27 20:32:50 5: AC: Device Time 1080.52, Drift -0.390s in 326917.576s, -0.00%
2017.12.27 20:32:50 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 20:32:50 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 20:32:50 4: AC: interval 20:26:50 until 20:32:50, First at , Last at
2017.12.27 20:32:50 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 20:32:50 5: AC: Device Time 1080.534, Drift -0.404s in 326917.576s, -0.00%
2017.12.27 20:38:50 4: AC: Pin 4 debug: adding 0 to long count 7749 and interpolated count 7749
2017.12.27 20:38:50 4: AC: Pin 4 (pin4) count 1 longCount 7749 interpCount 7749 (diff 0) in 360.000s, reject 1, Avg Len ms, result 0.000
2017.12.27 20:38:50 4: AC: interval 20:32:50 until 20:38:50, First at , Last at
2017.12.27 20:38:50 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 20:38:50 5: AC: Device Time 1440.52, Drift -0.601s in 327277.365s, -0.00%
2017.12.27 20:38:50 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 20:38:50 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 20:38:50 4: AC: interval 20:32:50 until 20:38:50, First at , Last at
2017.12.27 20:38:50 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 20:38:50 5: AC: Device Time 1440.534, Drift -0.615s in 327277.365s, -0.00%
2017.12.27 20:40:50 4: AC: Pin 4 debug: adding 1 to long count 7749 and interpolated count 7749
2017.12.27 20:40:50 4: AC: Pin 4 (pin4) count 2 longCount 7750 interpCount 7750 (diff 1) in 90.159s, reject 0, Avg Len 314630ms, result 0.040
2017.12.27 20:40:50 4: AC: interval 20:39:19 until 20:40:50, First at 4294477535, Last at 90159
2017.12.27 20:40:50 5: AC: set readings power4 to 0.040, timeDiff4 to 90159 and countDiff4 to 1
2017.12.27 20:40:50 5: AC: Device Time 1560.534, Drift -0.668s in 327397.311s, -0.00%
2017.12.27 20:44:49 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 20:44:49 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 20:44:49 4: AC: interval 20:38:49 until 20:44:49, First at , Last at
2017.12.27 20:44:49 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 20:44:49 5: AC: Device Time 1800.534, Drift -0.825s in 327637.154s, -0.00%
2017.12.27 20:46:49 4: AC: Pin 4 debug: adding 0 to long count 7750 and interpolated count 7750
2017.12.27 20:46:49 4: AC: Pin 4 (pin4) count 2 longCount 7750 interpCount 7750 (diff 0) in 389.855s, reject 0, Avg Len ms, result 0.000
2017.12.27 20:46:49 4: AC: interval 20:40:20 until 20:46:49, First at , Last at
2017.12.27 20:46:49 5: AC: set readings power4 to 0.000, timeDiff4 to 389855 and countDiff4 to 0
2017.12.27 20:46:49 5: AC: Device Time 1920.534, Drift -0.896s in 327757.084s, -0.00%
2017.12.27 20:50:49 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 20:50:49 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 20:50:49 4: AC: interval 20:44:49 until 20:50:49, First at , Last at
2017.12.27 20:50:49 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 20:50:49 5: AC: Device Time 2160.534, Drift -1.020s in 327996.959s, -0.00%
2017.12.27 20:52:49 4: AC: Pin 4 debug: adding 0 to long count 7750 and interpolated count 7750
2017.12.27 20:52:49 4: AC: Pin 4 (pin4) count 2 longCount 7750 interpCount 7750 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 20:52:49 4: AC: interval 20:46:49 until 20:52:49, First at , Last at
2017.12.27 20:52:49 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 20:52:49 5: AC: Device Time 2280.534, Drift -1.091s in 328116.889s, -0.00%
2017.12.27 20:56:49 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 20:56:49 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 20:56:49 4: AC: interval 20:50:49 until 20:56:49, First at , Last at
2017.12.27 20:56:49 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 20:56:49 5: AC: Device Time 2520.534, Drift -1.231s in 328356.748s, -0.00%
2017.12.27 20:58:49 4: AC: Pin 4 debug: adding 0 to long count 7750 and interpolated count 7750
2017.12.27 20:58:49 4: AC: Pin 4 (pin4) count 2 longCount 7750 interpCount 7750 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 20:58:49 4: AC: interval 20:52:49 until 20:58:49, First at , Last at
2017.12.27 20:58:49 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 20:58:49 5: AC: Device Time 2640.534, Drift -1.302s in 328476.678s, -0.00%
2017.12.27 21:02:49 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 21:02:49 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 21:02:49 4: AC: interval 20:56:49 until 21:02:49, First at , Last at
2017.12.27 21:02:49 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 21:02:49 5: AC: Device Time 2880.534, Drift -1.442s in 328716.537s, -0.00%
2017.12.27 21:04:49 4: AC: Pin 4 debug: adding 0 to long count 7750 and interpolated count 7750
2017.12.27 21:04:49 4: AC: Pin 4 (pin4) count 2 longCount 7750 interpCount 7750 (diff 0) in 360.000s, reject 2, Avg Len ms, result 0.000
2017.12.27 21:04:49 4: AC: interval 20:58:49 until 21:04:49, First at , Last at
2017.12.27 21:04:49 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 21:04:49 5: AC: Device Time 3000.534, Drift -1.513s in 328836.467s, -0.00%
2017.12.27 21:08:49 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 21:08:49 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 21:08:49 4: AC: interval 21:02:49 until 21:08:49, First at , Last at
2017.12.27 21:08:49 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 21:08:49 5: AC: Device Time 3240.534, Drift -1.637s in 329076.342s, -0.00%
2017.12.27 21:10:49 4: AC: Pin 4 debug: adding 0 to long count 7750 and interpolated count 7750
2017.12.27 21:10:49 4: AC: Pin 4 (pin4) count 2 longCount 7750 interpCount 7750 (diff 0) in 360.000s, reject 2, Avg Len ms, result 0.000
2017.12.27 21:10:49 4: AC: interval 21:04:49 until 21:10:49, First at , Last at
2017.12.27 21:10:49 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 21:10:49 5: AC: Device Time 3360.534, Drift -1.708s in 329196.272s, -0.00%
2017.12.27 21:14:48 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 21:14:48 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 21:14:48 4: AC: interval 21:08:48 until 21:14:48, First at , Last at
2017.12.27 21:14:48 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 21:14:48 5: AC: Device Time 3600.534, Drift -1.848s in 329436.132s, -0.00%
2017.12.27 21:16:48 4: AC: Pin 4 debug: adding 0 to long count 7750 and interpolated count 7750
2017.12.27 21:16:48 4: AC: Pin 4 (pin4) count 2 longCount 7750 interpCount 7750 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 21:16:48 4: AC: interval 21:10:48 until 21:16:48, First at , Last at
2017.12.27 21:16:48 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 21:16:48 5: AC: Device Time 3720.534, Drift -1.918s in 329556.061s, -0.00%
2017.12.27 21:20:48 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 21:20:48 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 21:20:48 4: AC: interval 21:14:48 until 21:20:48, First at , Last at
2017.12.27 21:20:48 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 21:20:48 5: AC: Device Time 3960.534, Drift -2.043s in 329795.937s, -0.00%
2017.12.27 21:22:48 4: AC: Pin 4 debug: adding 0 to long count 7750 and interpolated count 7750
2017.12.27 21:22:48 4: AC: Pin 4 (pin4) count 2 longCount 7750 interpCount 7750 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 21:22:48 4: AC: interval 21:16:48 until 21:22:48, First at , Last at
2017.12.27 21:22:48 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 21:22:48 5: AC: Device Time 4080.534, Drift -2.113s in 329915.866s, -0.00%
2017.12.27 21:26:48 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 21:26:48 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 21:26:48 4: AC: interval 21:20:48 until 21:26:48, First at , Last at
2017.12.27 21:26:48 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 21:26:48 5: AC: Device Time 4320.534, Drift -2.254s in 330155.726s, -0.00%
2017.12.27 21:28:48 4: AC: Pin 4 debug: adding 0 to long count 7750 and interpolated count 7750
2017.12.27 21:28:48 4: AC: Pin 4 (pin4) count 2 longCount 7750 interpCount 7750 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 21:28:48 4: AC: interval 21:22:48 until 21:28:48, First at , Last at
2017.12.27 21:28:48 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 21:28:48 5: AC: Device Time 4440.534, Drift -2.324s in 330275.656s, -0.00%
2017.12.27 21:31:48 4: AC: Pin 4 debug: adding 1 to long count 7750 and interpolated count 7750
2017.12.27 21:31:48 4: AC: Pin 4 (pin4) count 3 longCount 7751 interpCount 7751 (diff 1) in 170.321s, reject 0, Avg Len 1169784ms, result 0.021
2017.12.27 21:31:48 4: AC: interval 21:28:58 until 21:31:48, First at 170321, Last at 170321
2017.12.27 21:31:48 5: AC: set readings power4 to 0.021, timeDiff4 to 170321 and countDiff4 to 1
2017.12.27 21:31:48 5: AC: Device Time 4620.534, Drift -2.413s in 330455.566s, -0.00%
2017.12.27 21:32:48 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 21:32:48 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 21:32:48 4: AC: interval 21:26:48 until 21:32:48, First at , Last at
2017.12.27 21:32:48 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 21:32:48 5: AC: Device Time 4680.534, Drift -2.465s in 330515.515s, -0.00%
2017.12.27 21:36:48 4: AC: Pin 4 debug: adding 1 to long count 7751 and interpolated count 7751
2017.12.27 21:36:48 4: AC: Pin 4 (pin4) count 4 longCount 7752 interpCount 7752 (diff 1) in 307.402s, reject 1, Avg Len 167935ms, result 0.012
2017.12.27 21:36:48 4: AC: interval 21:31:40 until 21:36:48, First at 307402, Last at 307402
2017.12.27 21:36:48 5: AC: set readings power4 to 0.012, timeDiff4 to 307402 and countDiff4 to 1
2017.12.27 21:36:48 5: AC: Device Time 4920.534, Drift -2.589s in 330755.391s, -0.00%
2017.12.27 21:38:48 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 21:38:48 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 21:38:48 4: AC: interval 21:32:48 until 21:38:48, First at , Last at
2017.12.27 21:38:48 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 21:38:48 5: AC: Device Time 5040.534, Drift -2.659s in 330875.320s, -0.00%
2017.12.27 21:42:47 4: AC: Pin 4 debug: adding 0 to long count 7752 and interpolated count 7752
2017.12.27 21:42:47 4: AC: Pin 4 (pin4) count 4 longCount 7752 interpCount 7752 (diff 0) in 362.277s, reject 1, Avg Len ms, result 0.000
2017.12.27 21:42:47 4: AC: interval 21:36:45 until 21:42:47, First at , Last at
2017.12.27 21:42:47 5: AC: set readings power4 to 0.000, timeDiff4 to 362277 and countDiff4 to 0
2017.12.27 21:42:47 5: AC: Device Time 5280.534, Drift -2.800s in 331115.180s, -0.00%
2017.12.27 21:44:47 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 21:44:47 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 21:44:47 4: AC: interval 21:38:47 until 21:44:47, First at , Last at
2017.12.27 21:44:47 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 21:44:47 5: AC: Device Time 5400.534, Drift -2.870s in 331235.109s, -0.00%
2017.12.27 21:48:47 4: AC: Pin 4 debug: adding 0 to long count 7752 and interpolated count 7752
2017.12.27 21:48:47 4: AC: Pin 4 (pin4) count 4 longCount 7752 interpCount 7752 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 21:48:47 4: AC: interval 21:42:47 until 21:48:47, First at , Last at
2017.12.27 21:48:47 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 21:48:47 5: AC: Device Time 5640.534, Drift -3.011s in 331474.969s, -0.00%
2017.12.27 21:50:47 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 21:50:47 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 21:50:47 4: AC: interval 21:44:47 until 21:50:47, First at , Last at
2017.12.27 21:50:47 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 21:50:47 5: AC: Device Time 5760.534, Drift -3.081s in 331594.899s, -0.00%
2017.12.27 21:54:47 4: AC: Pin 4 debug: adding 0 to long count 7752 and interpolated count 7752
2017.12.27 21:54:47 4: AC: Pin 4 (pin4) count 4 longCount 7752 interpCount 7752 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 21:54:47 4: AC: interval 21:48:47 until 21:54:47, First at , Last at
2017.12.27 21:54:47 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 21:54:47 5: AC: Device Time 6000.534, Drift -3.205s in 331834.774s, -0.00%
2017.12.27 21:56:47 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 21:56:47 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 21:56:47 4: AC: interval 21:50:47 until 21:56:47, First at , Last at
2017.12.27 21:56:47 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 21:56:47 5: AC: Device Time 6120.534, Drift -3.276s in 331954.704s, -0.00%
2017.12.27 22:00:47 4: AC: Pin 4 debug: adding 0 to long count 7752 and interpolated count 7752
2017.12.27 22:00:47 4: AC: Pin 4 (pin4) count 4 longCount 7752 interpCount 7752 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 22:00:47 4: AC: interval 21:54:47 until 22:00:47, First at , Last at
2017.12.27 22:00:47 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 22:00:47 5: AC: Device Time 6360.534, Drift -3.416s in 332194.563s, -0.00%
2017.12.27 22:02:47 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 22:02:47 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 22:02:47 4: AC: interval 21:56:47 until 22:02:47, First at , Last at
2017.12.27 22:02:47 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 22:02:47 5: AC: Device Time 6480.534, Drift -3.486s in 332314.493s, -0.00%
2017.12.27 22:06:47 4: AC: Pin 4 debug: adding 0 to long count 7752 and interpolated count 7752
2017.12.27 22:06:47 4: AC: Pin 4 (pin4) count 4 longCount 7752 interpCount 7752 (diff 0) in 360.000s, reject 2, Avg Len ms, result 0.000
2017.12.27 22:06:47 4: AC: interval 22:00:47 until 22:06:47, First at , Last at
2017.12.27 22:06:47 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 22:06:47 5: AC: Device Time 6720.534, Drift -3.627s in 332554.353s, -0.00%
2017.12.27 22:08:47 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 22:08:47 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 22:08:47 4: AC: interval 22:02:47 until 22:08:47, First at , Last at
2017.12.27 22:08:47 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 22:08:47 5: AC: Device Time 6840.534, Drift -3.697s in 332674.282s, -0.00%
2017.12.27 22:12:46 4: AC: Pin 4 debug: adding 0 to long count 7752 and interpolated count 7752
2017.12.27 22:12:46 4: AC: Pin 4 (pin4) count 4 longCount 7752 interpCount 7752 (diff 0) in 360.000s, reject 3, Avg Len ms, result 0.000
2017.12.27 22:12:46 4: AC: interval 22:06:46 until 22:12:46, First at , Last at
2017.12.27 22:12:46 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 22:12:46 5: AC: Device Time 7080.534, Drift -3.822s in 332914.158s, -0.00%
2017.12.27 22:14:46 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 22:14:46 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 22:14:46 4: AC: interval 22:08:46 until 22:14:46, First at , Last at
2017.12.27 22:14:46 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 22:14:46 5: AC: Device Time 7200.534, Drift -3.892s in 333034.087s, -0.00%
2017.12.27 22:18:46 4: AC: Pin 4 debug: adding 0 to long count 7752 and interpolated count 7752
2017.12.27 22:18:46 4: AC: Pin 4 (pin4) count 4 longCount 7752 interpCount 7752 (diff 0) in 360.000s, reject 2, Avg Len ms, result 0.000
2017.12.27 22:18:46 4: AC: interval 22:12:46 until 22:18:46, First at , Last at
2017.12.27 22:18:46 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 22:18:46 5: AC: Device Time 7440.534, Drift -4.033s in 333273.947s, -0.00%
2017.12.27 22:20:46 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 22:20:46 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 22:20:46 4: AC: interval 22:14:46 until 22:20:46, First at , Last at
2017.12.27 22:20:46 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 22:20:46 5: AC: Device Time 7560.534, Drift -4.103s in 333393.877s, -0.00%
2017.12.27 22:24:46 4: AC: Pin 4 debug: adding 0 to long count 7752 and interpolated count 7752
2017.12.27 22:24:46 4: AC: Pin 4 (pin4) count 4 longCount 7752 interpCount 7752 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 22:24:46 4: AC: interval 22:18:46 until 22:24:46, First at , Last at
2017.12.27 22:24:46 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 22:24:46 5: AC: Device Time 7800.534, Drift -4.244s in 333633.736s, -0.00%
2017.12.27 22:26:46 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 22:26:46 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 22:26:46 4: AC: interval 22:20:46 until 22:26:46, First at , Last at
2017.12.27 22:26:46 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 22:26:46 5: AC: Device Time 7920.534, Drift -4.314s in 333753.666s, -0.00%
2017.12.27 22:30:46 4: AC: Pin 4 debug: adding 0 to long count 7752 and interpolated count 7752
2017.12.27 22:30:46 4: AC: Pin 4 (pin4) count 4 longCount 7752 interpCount 7752 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 22:30:46 4: AC: interval 22:24:46 until 22:30:46, First at , Last at
2017.12.27 22:30:46 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 22:30:46 5: AC: Device Time 8160.534, Drift -4.438s in 333993.541s, -0.00%
2017.12.27 22:32:46 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 22:32:46 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 22:32:46 4: AC: interval 22:26:46 until 22:32:46, First at , Last at
2017.12.27 22:32:46 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 22:32:46 5: AC: Device Time 8280.534, Drift -4.509s in 334113.471s, -0.00%
2017.12.27 22:36:46 4: AC: Pin 4 debug: adding 0 to long count 7752 and interpolated count 7752
2017.12.27 22:36:46 4: AC: Pin 4 (pin4) count 4 longCount 7752 interpCount 7752 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 22:36:46 4: AC: interval 22:30:46 until 22:36:46, First at , Last at
2017.12.27 22:36:46 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 22:36:46 5: AC: Device Time 8520.534, Drift -4.649s in 334353.330s, -0.00%
2017.12.27 22:38:46 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 22:38:46 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 22:38:46 4: AC: interval 22:32:46 until 22:38:46, First at , Last at
2017.12.27 22:38:46 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 22:38:46 5: AC: Device Time 8640.534, Drift -4.719s in 334473.260s, -0.00%
2017.12.27 22:42:45 4: AC: Pin 4 debug: adding 0 to long count 7752 and interpolated count 7752
2017.12.27 22:42:45 4: AC: Pin 4 (pin4) count 4 longCount 7752 interpCount 7752 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 22:42:45 4: AC: interval 22:36:45 until 22:42:45, First at , Last at
2017.12.27 22:42:45 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 22:42:45 5: AC: Device Time 8880.534, Drift -4.860s in 334713.119s, -0.00%
2017.12.27 22:44:45 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 22:44:45 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 22:44:45 4: AC: interval 22:38:45 until 22:44:45, First at , Last at
2017.12.27 22:44:45 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 22:44:45 5: AC: Device Time 9000.534, Drift -4.930s in 334833.049s, -0.00%
2017.12.27 22:48:45 4: AC: Pin 4 debug: adding 0 to long count 7752 and interpolated count 7752
2017.12.27 22:48:45 4: AC: Pin 4 (pin4) count 4 longCount 7752 interpCount 7752 (diff 0) in 360.000s, reject 2, Avg Len ms, result 0.000
2017.12.27 22:48:45 4: AC: interval 22:42:45 until 22:48:45, First at , Last at
2017.12.27 22:48:45 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 22:48:45 5: AC: Device Time 9240.534, Drift -5.055s in 335072.925s, -0.00%
2017.12.27 22:50:45 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 22:50:45 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 22:50:45 4: AC: interval 22:44:45 until 22:50:45, First at , Last at
2017.12.27 22:50:45 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 22:50:45 5: AC: Device Time 9360.534, Drift -5.125s in 335192.855s, -0.00%
2017.12.27 22:53:45 4: AC: Pin 4 debug: adding 1 to long count 7752 and interpolated count 7752
2017.12.27 22:53:45 4: AC: Pin 4 (pin4) count 5 longCount 7753 interpCount 7753 (diff 1) in 242.745s, reject 0, Avg Len 169465ms, result 0.015
2017.12.27 22:53:45 4: AC: interval 22:49:42 until 22:53:45, First at 242745, Last at 242745
2017.12.27 22:53:45 5: AC: set readings power4 to 0.015, timeDiff4 to 242745 and countDiff4 to 1
2017.12.27 22:53:45 5: AC: Device Time 9540.534, Drift -5.230s in 335372.749s, -0.00%
2017.12.27 22:56:45 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 22:56:45 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 22:56:45 4: AC: interval 22:50:45 until 22:56:45, First at , Last at
2017.12.27 22:56:45 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 22:56:45 5: AC: Device Time 9720.534, Drift -5.336s in 335552.644s, -0.00%
2017.12.27 22:59:45 4: AC: Pin 4 debug: adding 0 to long count 7753 and interpolated count 7753
2017.12.27 22:59:45 4: AC: Pin 4 (pin4) count 5 longCount 7753 interpCount 7753 (diff 0) in 417.255s, reject 0, Avg Len ms, result 0.000
2017.12.27 22:59:45 4: AC: interval 22:52:48 until 22:59:45, First at , Last at
2017.12.27 22:59:45 5: AC: set readings power4 to 0.000, timeDiff4 to 417255 and countDiff4 to 0
2017.12.27 22:59:45 5: AC: Device Time 9900.534, Drift -5.441s in 335732.539s, -0.00%
2017.12.27 23:02:45 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 23:02:45 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 23:02:45 4: AC: interval 22:56:45 until 23:02:45, First at , Last at
2017.12.27 23:02:45 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 23:02:45 5: AC: Device Time 10080.534, Drift -5.530s in 335912.449s, -0.00%
2017.12.27 23:05:45 4: AC: Pin 4 debug: adding 0 to long count 7753 and interpolated count 7753
2017.12.27 23:05:45 4: AC: Pin 4 (pin4) count 5 longCount 7753 interpCount 7753 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 23:05:45 4: AC: interval 22:59:45 until 23:05:45, First at , Last at
2017.12.27 23:05:45 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 23:05:45 5: AC: Device Time 10260.534, Drift -5.636s in 336092.344s, -0.00%
2017.12.27 23:08:45 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 23:08:45 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 23:08:45 4: AC: interval 23:02:45 until 23:08:45, First at , Last at
2017.12.27 23:08:45 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 23:08:45 5: AC: Device Time 10440.534, Drift -5.741s in 336272.238s, -0.00%
2017.12.27 23:11:44 4: AC: Pin 4 debug: adding 0 to long count 7753 and interpolated count 7753
2017.12.27 23:11:44 4: AC: Pin 4 (pin4) count 5 longCount 7753 interpCount 7753 (diff 0) in 360.000s, reject 1, Avg Len ms, result 0.000
2017.12.27 23:11:44 4: AC: interval 23:05:44 until 23:11:44, First at , Last at
2017.12.27 23:11:44 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 23:11:44 5: AC: Device Time 10620.534, Drift -5.846s in 336452.133s, -0.00%
2017.12.27 23:14:44 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 23:14:44 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 23:14:44 4: AC: interval 23:08:44 until 23:14:44, First at , Last at
2017.12.27 23:14:44 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 23:14:44 5: AC: Device Time 10800.534, Drift -5.952s in 336632.028s, -0.00%
2017.12.27 23:17:44 4: AC: Pin 4 debug: adding 0 to long count 7753 and interpolated count 7753
2017.12.27 23:17:44 4: AC: Pin 4 (pin4) count 5 longCount 7753 interpCount 7753 (diff 0) in 360.000s, reject 2, Avg Len ms, result 0.000
2017.12.27 23:17:44 4: AC: interval 23:11:44 until 23:17:44, First at , Last at
2017.12.27 23:17:44 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 23:17:44 5: AC: Device Time 10980.534, Drift -6.057s in 336811.922s, -0.00%
2017.12.27 23:20:44 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 23:20:44 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 23:20:44 4: AC: interval 23:14:44 until 23:20:44, First at , Last at
2017.12.27 23:20:44 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 23:20:44 5: AC: Device Time 11160.534, Drift -6.147s in 336991.833s, -0.00%
2017.12.27 23:23:44 4: AC: Pin 4 debug: adding 0 to long count 7753 and interpolated count 7753
2017.12.27 23:23:44 4: AC: Pin 4 (pin4) count 5 longCount 7753 interpCount 7753 (diff 0) in 360.000s, reject 1, Avg Len ms, result 0.000
2017.12.27 23:23:44 4: AC: interval 23:17:44 until 23:23:44, First at , Last at
2017.12.27 23:23:44 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 23:23:44 5: AC: Device Time 11340.534, Drift -6.252s in 337171.728s, -0.00%
2017.12.27 23:26:44 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 23:26:44 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 23:26:44 4: AC: interval 23:20:44 until 23:26:44, First at , Last at
2017.12.27 23:26:44 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 23:26:44 5: AC: Device Time 11520.534, Drift -6.357s in 337351.622s, -0.00%
2017.12.27 23:29:44 4: AC: Pin 4 debug: adding 0 to long count 7753 and interpolated count 7753
2017.12.27 23:29:44 4: AC: Pin 4 (pin4) count 5 longCount 7753 interpCount 7753 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 23:29:44 4: AC: interval 23:23:44 until 23:29:44, First at , Last at
2017.12.27 23:29:44 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 23:29:44 5: AC: Device Time 11700.534, Drift -6.463s in 337531.517s, -0.00%
2017.12.27 23:32:44 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 23:32:44 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 23:32:44 4: AC: interval 23:26:44 until 23:32:44, First at , Last at
2017.12.27 23:32:44 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 23:32:44 5: AC: Device Time 11880.534, Drift -6.568s in 337711.411s, -0.00%
2017.12.27 23:35:44 4: AC: Pin 4 debug: adding 0 to long count 7753 and interpolated count 7753
2017.12.27 23:35:44 4: AC: Pin 4 (pin4) count 5 longCount 7753 interpCount 7753 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 23:35:44 4: AC: interval 23:29:44 until 23:35:44, First at , Last at
2017.12.27 23:35:44 5: AC: set readings power4 to 0.000, timeDiff4 to 360000 and countDiff4 to 0
2017.12.27 23:35:44 5: AC: Device Time 12060.534, Drift -6.674s in 337891.306s, -0.00%
2017.12.27 23:38:43 4: AC: Pin 6 debug: adding 0 to long count 13112 and interpolated count 13112
2017.12.27 23:38:43 4: AC: Pin 6 (pin6) count 0 longCount 13112 interpCount 13112 (diff 0) in 360.000s, reject 0, Avg Len ms, result 0.000
2017.12.27 23:38:43 4: AC: interval 23:32:43 until 23:38:43, First at , Last at
2017.12.27 23:38:43 5: AC: set readings power6 to 0.000, timeDiff6 to 360000 and countDiff6 to 0
2017.12.27 23:38:43 5: AC: Device Time 12240.534, Drift -6.763s in 338071.217s, -0.00%
2017.12.27 23:41:43 4: AC: Pin 4 debug: adding 1 to long count 7753 and interpolated count 7753
2017.12.27 23:41:43 4: AC: Pin 4 (pin4) count 6 longCount 7754 interpCount 7754 (diff 1) in 326.944s, reject 0, Avg Len 1196436ms, result 0.011
2017.12.27 23:41:43 4: AC: interval 23:36:16 until 23:41:43, First at 326944, Last at 326944
2017.12.27 23:41:43 5: AC: set readings power4 to 0.011, timeDiff4 to 326944 and countDiff4 to 1
2017.12.27 23:41:43 5: AC: Device Time 12420.534, Drift -6.868s in 338251.111s, -0.00%

Ich hoffe Du kannst mit diesen Angaben schon mal etwas anfangen.
Den zweiten Test mit der Version aus #252 werde ich in den nächsten Tagen durchführen.

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 28 Dezember 2017, 21:02:05
Hallo Stefan

Die in #252 enthaltene ArduCounter1.94.ino enthält die folgende Code Zeile

const char versionStr[] PROGMEM = "ArduCounter V1.93";
Ist das korrekt? Bevor ich weiter teste möchte ich sicherstellen, dass ich die richtige V1.94 verwende.

Ich wäre froh um einen Tipp bezüglich avrdude. Ich habe es noch nicht zu Stande gebracht den Arduino direkt zu flashen. Wenn das ginge, würde dies mir das weitere Testen deutlich vereinfachen.

flashing device as ArduCounter for AC
hex file: ./FHEM/firmware/ArduCounter.hex
port: /dev/ttyUSB0
log file: ./log/ArduCounterFlash.log
AC closed
command: avrdude -p atmega328P -c arduino -P /dev/ttyUSB0 -D -U flash:w:./FHEM/firmware/ArduCounter.hex 2>./log/ArduCounterFlash.log

--- AVRDUDE ---------------------------------------------------------------------------------
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x1c
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0xe0
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x1c

avrdude done.  Thank you.

--- AVRDUDE ---------------------------------------------------------------------------------

AC opened


Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 29 Dezember 2017, 12:08:04
Hallo birdy,

das Problem mit dem Flashen und der Fehlermeldung "not in Sync" liegt vermutlich am Aufruf von avrdude (Attribut flashCommand).
Bei einem ArduCounter auf Basis eines Arduino Nano muss man z.B. ein -b57600 einfügen.
attr ArduColunterDevice flashCommand avrdude -p atmega328P -c arduino -b 57600 -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]

Ich habe versucht das im Wiki so zu beschreiben:
Zitat
flash
flashes the ArduCounter firmware ArduCounter.hex from the fhem subdirectory FHEM/firmware
onto the device. This command needs avrdude to be installed.
The attribute flashCommand specifies how avrdude is called.
If it is not modifed then the module sets it to
avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
This setting should work for a standard installation and the placeholders are automatically replaced when the command is used. So normally there is no need to modify this attribute.
Depending on your specific Arduino board however, you might need to insert -b 57600 in the flash Command.

Unabhängig davon habe ich vermutlich das Problem mit den fehlenden Impulsen identifiziert. Ich konnte das Problem in der Simulation mit einem zweiten Arduino als Signalgeber nachstellen.
Auslöser ist der prellende Reed-Kontakt. Das bringt den Mechanismus zur Pulslängenkontrolle durcheinander so dass der Puls nach dem Prellen rejected wird.
Eine einfache Lösung wäre daher ein elektrisches Entprellen mit einem Kondensator und Widerstand:
siehe https://www.mikrocontroller.net/articles/Entprellung

Das erklärt auch warum die Anwender mit Stromzählern mit S0-Ausgang keine Probleme haben. Ein S0-Signal prellt nicht und hat eine Signalbreite von 30ms.
Ich überarbeite gerade den entsprechenden Code-Teil im ArduCounter Sketch und habe hoffentlich bald eine neue Version fertig, die dann auch mit unsauberen Signalen klar kommt.

Mit weiteren Tests kannst Du daher erst mal warten. Ich melde mich sobald ich die neue Version fertig und getestet habe.

Gruss / Thanx
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 29 Dezember 2017, 22:36:41
Hallo Stefan

Vielen Dank für Dein Update.
Ich habe - b 57600 eingefügt, das Flashen funktioniert nun. Vielen Dank für den Hinweis :)

Ich habe versucht mich bezüglich dem elektrischen Entprellen etwas schlau zu machen.
Dabei musste ich zur Kenntnis nehmen, dass von einer Hardware Lösung tendenziell abgeraten und eine Software Lösung empfohlen wird.
Eine Kondensator Lösung kann ich auf die Schnelle nicht realisieren. 1. müsste ich zuerst ausfindig machen wie die Bauteile zu dimensionieren sind. 2. Müsste ich diese dann zuerst noch besorgen.

Welche Flanke müsste Deiner Ansicht nach entprellt werden?


Ich habe mal versucht das Prellen sichtbar zu machen. Ich habe div. Schalvorgänge aufgezeichnet, die haben alle wie folgt ausgesehen….

Bin gerne bereit weitere Test durchzuführen.

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 31 Dezember 2017, 12:51:11
Hallo birdy,

anbei mal ein Zwischenstand zum Jahresende.
Bei Verbose 4 oder 5 wird eine "History" der letzten Pulse je Pin ausgegeben...
Eigentlich sollte der Sketch so mit dem Prellen klar kommen.

Im Oszi wirst Du das Prellen erst bei entsprechender Sample-Rate bzw. Zeitbasis sehen.
Ein Reed-Kontakt prellt (wenn er prellt) angeblich im Bereich < 1ms.
In der History im Fhem-Log sollte es aber angezeigt werden.

Die Zeiten im History-Log sind in ms angegeben, die Buchstaben bedeuten:

C - Puls, wird gezählt
X ignoriere kurzen Drop
R ignoriere kurzen Puls
P Rest eines Puls der schon gezählt wurde (nach einem kurzen Drop)
G Gap zwischen Impulsen

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: FunkOdyssey am 31 Dezember 2017, 15:57:04
Hallo birdy,

anbei mal ein Zwischenstand zum Jahresende.
Bei Verbose 4 oder 5 wird eine "History" der letzten Pulse je Pin ausgegeben...
Eigentlich sollte der Sketch so mit dem Prellen klar kommen.

Meinst du das normale verbose oder das verboseReading?

Im Oszi wirst Du das Prellen erst bei entsprechender Sample-Rate bzw. Zeitbasis sehen.
Ein Reed-Kontakt prellt (wenn er prellt) angeblich im Bereich < 1ms.
In der History im Fhem-Log sollte es aber angezeigt werden.

Die Zeiten im History-Log sind in ms angegeben, die Buchstaben bedeuten:

Sorry, kurze Frage: Was ist ein History-Log? Ich logge das Device ganz normal per FileLog.
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 31 Dezember 2017, 17:23:01
Hallo,

in dem zuletzt geposteten Sketch und Modul erzeugt das Modul nach jeder Meldung des Zählerstandes auch eine Protokollierung der letzten Änderungen an den überwachten Arduino-Eingängen im Fhem-Log mit Loglevel 4. Das meinte ich mit "History-Log".
Ich werde das aber noch weiter umbauen, so dass diese Ausgabe nur bei "get info" oder im Loglevel 5 ausgegeben wird.

Wenn Ihr es schon mal testen wollt, dann am besten für den ArduCounter verbose 4 oder 5 und für die relevanten Pins eine minimale Pulsdauer von 30ms und verboseReadingsX 1 setzen.

Beispiel:
attr ACTest flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
attr ACTest interval 10 20
attr ACTest pinD4 falling pullup 30
attr ACTest pinD5 falling pullup 30
attr ACTest pinD6 falling pullup 30
attr ACTest verbose 4
attr ACTest verboseReadings4 1
attr ACTest verboseReadings5 1
attr ACTest verboseReadings6 1

Die Ausgabe im Fhem-Log sieht dann z.B. so aus:

2017.12.31 12:31:02 4: ACTest: Pin 4 (pin4) count 201 longCount 350625 interpCount 351292 (diff 200) in 19.845s, reject 0, Avg Len 50
ms, result 36.281
2017.12.31 12:31:02 4: ACTest: interval 12:30:43 until 12:31:02, First at 0, Last at 19845
2017.12.31 12:31:03 4: ACTest: Pin 5 (pin5) count 168 longCount 174047 interpCount 1227898 (diff 84) in 9.997s, reject 0, Avg Len 59m
s, result 30.249
2017.12.31 12:31:03 4: ACTest: interval 12:30:52 until 12:31:02, First at 119, Last at 9997
2017.12.31 12:31:03 4: ACTest: Pin 6 (pin6) count 20 longCount 16426 interpCount 146170 (diff 10) in 9.918s, reject 0, Avg Len 495ms,
 result 3.630
2017.12.31 12:31:03 4: ACTest: interval 12:30:53 until 12:31:02, First at 991, Last at 9918
2017.12.31 12:31:03 4: ACTest: device: pulse history:
2017.12.31 12:31:03 4: ACTest: device: slot 3 pin 5 start 10314 len 60 at 1 G
2017.12.31 12:31:03 4: ACTest: device: slot 4 pin 4 start 10357 len 49 at 1 G
2017.12.31 12:31:03 4: ACTest: device: slot 5 pin 6 start 9918 len 495 at 1 G
2017.12.31 12:31:03 4: ACTest: device: slot 6 pin 5 start 10374 len 59 at 0 C
2017.12.31 12:31:03 4: ACTest: device: slot 7 pin 4 start 10406 len 50 at 0 C
2017.12.31 12:31:03 4: ACTest: device: slot 8 pin 5 start 10433 len 60 at 1 G
2017.12.31 12:31:03 4: ACTest: device: slot 9 pin 4 start 10456 len 50 at 1 G
2017.12.31 12:31:03 4: ACTest: device: slot 0 pin 5 start 10493 len 59 at 0 C
2017.12.31 12:31:03 4: ACTest: device: slot 1 pin 4 start 10506 len 49 at 0 C
2017.12.31 12:31:03 4: ACTest: device: slot 2 pin 4 start 10555 len 50 at 1 G

Gruss
   Stefan


Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 01 Januar 2018, 20:25:56
Hallo,

anbei nun der letzte Stand. Die letzten Impulse mit jeweiliger Länge sieht man nun am Ende von get info.
Die Probleme mit prellenden Reed-Kontakten sollten damit eigentlich gelöst sein.
@birdy / @FunkOdissey: Wenn Ihr das bestätigen könnt, checke ich die neue Version ein.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 01 Januar 2018, 23:24:32
Danke Stefan

Das Update ist durchgeführt, die neuen Versionen sind im Einsatz.
Ich schaue mal wie es läuft, und berichte dann wieder.

Ich habe noch 2-3 Messungen mit deutlich erhöhter Sample –Rate gemacht. Doch ein Prellen konnte ich (noch) nicht messen. Ich denke, der Reedkonkakt prellt auch nicht grundsätzlich /immer, und man müsste Glück haben einen entsprechenden Schaltvorgang aufzuzeichnen.

Vielen Dank für Deine hervorragende Unterstützung.
Gruss birdy 
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 03 Januar 2018, 11:14:28
Hier noch ein Update vor dem CheckIn:
Die Doku ist aktualisiert, die Darstellung der Impuls-History optimiert und die Readings etwas angepasst.
Die Long-Counter werden jetzt immer erzeugt. verboseReadingsX ist nur noch nötig wenn man die Impuls-History sowie countDiffX und timeDiffX als Reading sehen möchte.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Kornelius777 am 03 Januar 2018, 11:38:53
Hallo Stefan,

das ist schon ziemlich klasse, was Du hier so auf die Beine gestellt hast! Danke!

Ich war gerade im Wiki - da steht jetzt noch:
Zitat
readingNameLongCount[0-9]+
Change the name of the long counter reading longX (only created when verboseReadingsX is set to 1) to something more meaningful.

Ist das jetzt noch aktuell?

Grüße!

Kornelius
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: FunkOdyssey am 03 Januar 2018, 15:37:10
Hallo,

anbei nun der letzte Stand. Die letzten Impulse mit jeweiliger Länge sieht man nun am Ende von get info.
Die Probleme mit prellenden Reed-Kontakten sollten damit eigentlich gelöst sein.
@birdy / @FunkOdissey: Wenn Ihr das bestätigen könnt, checke ich die neue Version ein.

Gruss
   Stefan

Du hast aber ne ordentliche Schlagzahl drauf in den letzten Tagen. Da komme ich mit dem Flashen und Aktualisieren kaum hinterher. :-)
Ich weiß nicht, ob meine Test wirklich repräsentativ sind. Ich habe in den letzten Wochen ein wenig den Überblick verloren über die neuen Features (long, interpolated, Impuls-History, etc.). Da ich noch geringe Abweichungen hatte, habe ich gestern meinen Counter erst einmal auf das long-Reading umgestellt. Ich muss halt nur immer einige Tage warten bis ich die Abweichung feststelle. Zwar verbrauche ich im Winter mehr Gas, aber die Abweichungen sind bei mir halt nicht nach wenigen Stunden sichtbar. Vom Gefühl her könnten die neuen Readings (bei mir) aber besser passen. Ich werde das mal beobachten.

Ich meine, dass seitdem ich mit einem 10uF Kondensator entprelle, die Abweichungen auch geringer geworden sind. Ich habe halt - wie gesagt - noch keinen repräsentativen Zeitraum, da irgendwie immer etwas war. Einige Wochen habe ich bewusst mit einer Differenz gelebt, die durch eine Offline-Phase des Raspberrys entstanden ist. Dies im Nachhinein zu rekonstruieren, ist ein wenig schwierig.

Aber danke für deine Unterstützung und die neuen Möglichkeiten.
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 03 Januar 2018, 18:54:09
Hallo Stefan

Seit knapp 2 Tagen habe ich die Version aus Post #260 im Einsatz. Die Funktioniert einwandfrei, keinerlei Abweichung bis jetzt. Hervorragende Arbeit, Chapeau. (Die neueste Version habe ich noch nicht getestet, wird aber in Kürze folgen).

Meine Testes sind mit einer Pluslängenkontrolle von 200 gelaufen. Aufgefallen ist mir lediglich, dass in der Kombination Firm-/Software 2.03 / 5.6 keine Rejects gezählt wurden. In der Vergangenheit hatte ich immer ein paar pro Tag.
Ist die Pulslängenkontrolle immer noch sinnvoll oder notwendig. Was ist Deine Empfehlung?

Gruss birdy


Titel: Antw:Stromzähler mit S0 Schnittstelle nochmal
Beitrag von: StefanStrobel am 04 Januar 2018, 16:40:57
Hallo,

Ich würde grundsätzlich eine minimale Pulslänge angeben und damit die Pulslängenkontrolle aktivieren. Bei einem S0–Ausgang eines Stromzählers sollten das 30ms sein.

Die frühere Version der Arducounter–Firmware hatte einen Bug in der Pulslängenkontrolle, so dass bei prellenden Kontakten auch gültige Signale rejected wurden. Die neue Version sollte das Problem behoben haben.

Das verwirrende bei Deinem Reed–Kontakt war, dass er so schnell geprellt hat und die Debug–Funktionen in der Firmware die Analyse etwas verlangsamt haben, so dass das Prellen „übersehen“ wurde. Mit Debug–Funktionen hat deshalb vermutlich alles funktioniert und ohne Debug–Funktionen war das Problem wieder da.

Die Pulse–History–Funktion, die ich jetzt in der neuen Version eingebaut habe, verlangsamt den Sketch auch ein klein wenig, ist aber deutlich effizienter implementiert als die frühere Debug-Funktion.

Ich habe die neue Version auf einem Arduino UNO getestet und an 15 Eingängen jeweils Signale mit nur 5–10 Millisekunden Puls- und Pausenlänge angelegt. Das hat problemlos funktioniert. Deshalb würde ich die Funktion dauerhaft drin lassen. Wenn dann mal etwas seltsam aussieht, kann man mit diesem Feature viel besser nachvollziehen, was passiert ist.

Die Pulse-History speichert zwar insgesamt nur 20 Potential-Änderungen an allen Eingängen zusammen, aber man kann ja das Intervall-Attribut entsprechend klein machen und die pulseHistory-Readings in ein Filelog packen, so dass man tatsächlich alle Änderungen nachvollziehen kann.
Für mehr als 20 Einträge ist der RAM eines Uno etwas knapp. Da müsste man den Zähler für einen Arduino Mega compilieren.

@Kornelius: Danke für den Hinweis auf den Fehler im Wiki. Das korrigiere ich gleich noch.

Gruss
    Stefan



Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Kornelius777 am 05 Januar 2018, 06:39:12
Hallo Stefan,

gestern habe ich (endlich) einen passenden Reedkontakt für meinen Gaszähler geliefert bekommen. Nun tickert ArduCounter fröhlich vor sin hin. Keinerlei Abweichung - kein Reject, keine "vergessenen" Zähler. Läuft klasse!

Jetzt noch eine Newbie-Frage:
Pro "interval" liefert mir ArduCounter ja "ArduCounter.powerX" als Reading.
Was muss ich nun wie anpassen, damit ich ein Delta-Reading bekomme in der Form von: "Während des letzten "interval" hat ArduCounter Y Ticks (Ganzzahl) gezählt"?

Vielen Dank für Deinen großartigen Einsatz!

Kornelius
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 05 Januar 2018, 09:59:27
Hallo Kornelius,

so richtig klar ist mir Deine Frage nicht. Was willst Du denn mit dieser Ganzzahl? Willst Du die Differenz zum vorhergehenden Zählerstand?
Dann mach Dir ein Userreading mit dem modifier difference aber nicht mit Power sondern mit pinx.
Zitat
difference: das Reading wird auf die Differenz zw. dem aktuellen und dem vorherigen Wert gesetzt.

Power liefert die Momentanleistung.
So habe ich mir das mal mit Power für mich verdeutlicht, damit mir klar wird wie ich den factor angeben muss:
Power ist der Wert für die momentane Leistung in Impulsen/h ((delta count) / (delta time) * factor).

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Kornelius777 am 05 Januar 2018, 10:25:26
Danke, Otto!

Genau, was ich gesucht hatte!
Ist eine steile Lernkurve hier!  :)

Vielen Dank!

Kornelius
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 05 Januar 2018, 15:14:45
Hallo,

Wenn z.B. Für Pin4 auch das Attribut verboseReadings4 auf 1 gesetzt ist, dann werden auch Readings countDiff4 und timeDiff4 erzeugt. Die liefern jeweils das Delta zum aktuellen Intervall...

Gruß
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 05 Januar 2018, 21:43:37
Hallo Stefan

Seit ca. 24 h läuft bei mir die Kombination 2.04/5.7 funktioniert zuverlässig, keine Abweichung bis jetzt.

Eine „Spezialität“ ist mir aber noch aufgefallen. Die Pin Attribute werden nach dem Neuaufbau der Webseite korrekt dargestellt -> Bild 1.
Aber sobald der erste Impuls daher kommt, werden die Attribute mit dem Readings des entsprechenden Pin überschrieben -> Bild 2.
Das F5 drücken löst dann das Problem kurzfristig. Trotzdem bin ich mir nicht ganz sicher ob dies wirklich im Sinne des Erfinders ist.  ;)

Beste Grüsse birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 06 Januar 2018, 18:27:56
Hallo birdy,

Das klingt seltsam. Muss ich mal in Ruhe versuchen nachzustellen.
Die Darstellung macht allerdings ein Frontend-Modul bzw. das Fhemweb-Modul. Arducounter zählt und schreibt die Werte in die Readings...

Gruß
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 07 Januar 2018, 16:42:53
Das Phänomen ist zugegebener massen nicht ganz neu. Hat mit Sicherheit schon in der letzten Version bestanden. Aber seit wann oder ab welcher Version kann ich nicht eingrenzen. Könnte dies am identischen Namen liegen der via Longpoll  (oder wie die Technik auch immer heisst) automatisch aktualisiert wird?
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Kornelius777 am 10 Januar 2018, 18:08:46
Hallo,

ich brauche bitte gerade mal etwas Hilfe:

Meine Schaltung im Hausanschlussraum sieht folgendermaßen aus:

Gaszähler --> Hallsensor --> Arduino1 --> Arduino2
Arduino1 legt brav (gerade nachgemessen) 5V bzw 0V an PinD7 von Arduino2 an.

Allerdings misst ArduCounter (läuft auf Arduino2) nix.

hier mein Listing:

Internals:
   CounterResetTime 1515603774.14519
   DEF        /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AH06NIQN-if00-port0@38400
   DeviceName /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AH06NIQN-if00-port0@38400
   FD         5
   Initialized 1
   NAME       HAR.ArduCounter
   NOTIFYDEV  global
   NR         24
   NTFY_ORDER 50-HAR.ArduCounter
   PARTIAL   
   STATE      opened
   TYPE       ArduCounter
   VersionFirmware 2.04
   VersionModule 5.7 - 2.1.2018
   buffer     
   Helper:
     DBLOG:
       GasZaehler:
         DBLogging:
           TIME       1515603671.90253
           VALUE      395.8
       GasZaehlerArdu:
         DBLogging:
           TIME       1515603671.90253
           VALUE      39580
       GasZaehlerTicks:
         DBLogging:
           TIME       1515603671.90253
           VALUE      0
       interpolatedLong7:
         DBLogging:
           TIME       1515603671.90253
           VALUE      0
       pin7:
         DBLogging:
           TIME       1515603671.90253
           VALUE      0
       power7:
         DBLogging:
           TIME       1515603671.90253
           VALUE      0.000
       reject7:
         DBLogging:
           TIME       1515603671.90253
           VALUE      0
   READINGS:
     2018-01-10 18:01:11   GasZaehler      395.8
     2018-01-10 18:01:11   GasZaehlerArdu  39580
     2018-01-10 18:01:11   GasZaehlerTicks 0
     2018-01-10 18:01:11   interpolatedLong7 0
     2018-01-10 18:01:11   pin7            0
     2018-01-10 18:01:11   power7          0.000
     2018-01-10 18:01:11   reject7         0
     2018-01-10 17:41:06   state           opened
Attributes:
   DbLogInclude .*
   event-on-update-reading .*
   flashCommand avrdude -b 57600 -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   interval   60 300
   pinD7      rising
   readingNameLongCount7 GasZaehlerArdu
   room       HAR
   userReadings GasZaehler {ReadingsVal("HAR.ArduCounter","GasZaehlerArdu",0)/100}, GasZaehlerTicks difference {ReadingsVal("HAR.ArduCounter","GasZaehlerArdu",0)}
   userattr   pinD7 readingNameLongCount7

Was mache ich denn bloß falsch?

Vielleicht kann mir mal bitte jemand die Tomaten von den Augen nehmen.

Viele Grüße,

Kornelius

Hier übrigens noch:

M Status: ArduCounter V2.04
normal interval 60000
max interval 300000
min interval 0
min count 0
pin 7 PCInt pin 23, iMode rising, no min len, count 0 (+0) in 109997 ms
Next report in 9982 Milliseconds
pulse history:
pin 7 start -711279 len 8614 at 1 
pin 7 start -702665 len 20624 at 0 
pin 7 start -682041 len 8008 at 1 
pin 7 start -674033 len 19291 at 0 
pin 7 start -654742 len 7886 at 1 
pin 7 start -646856 len 19290 at 0 
pin 7 start -627566 len 7522 at 1 
pin 7 start -620044 len 19655 at 0 
pin 7 start -600389 len 7643 at 1 
pin 7 start -592746 len 20383 at 0 
pin 7 start -572363 len 8493 at 1 
pin 7 start -563870 len 22809 at 0 
pin 7 start -541061 len 9220 at 1 
pin 7 start -531841 len 25235 at 0 
pin 7 start -506606 len 10070 at 1 
pin 7 start -496536 len 28511 at 0 
pin 7 start -468025 len 11526 at 1 
pin 7 start -456499 len 32030 at 0 
pin 7 start -424469 len 12981 at 1 
pin 7 start -736151 len 24872 at 0 
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Kornelius777 am 10 Januar 2018, 19:49:32
Kann es sein, dass das Attribut “factor“ verpflichtend ist?
Ich habe jetzt factor = 1 gesetzt.
Scheint erstmal zu zählen.

Viele Grüße!

Kornelius
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 10 Januar 2018, 22:19:22
Hi Kornelius,

Aus der Doku,
Zitat
factor
Define a multiplicator for calculating the power from the impulse count and the time between the first and the last impulse

Kann sein wenn Du das Attribute löschst, dann Faktor 0  ::)

Ich wiedehole mich:
Zitat
Power liefert die Momentanleistung.
So habe ich mir das mal mit Power für mich verdeutlicht, damit mir klar wird wie ich den factor angeben muss:
Power ist der Wert für die momentane Leistung in Impulsen/h ((delta count) / (delta time) * factor).

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Kornelius777 am 10 Januar 2018, 22:23:46
Hmpf. Aus meiner Sicht ist dieses Vorgehen suboptimal. Denn: 0 x factor = 0!
Meine Empfehlung:
Setze den default-Wert für factor auf “1“.

Viele Grüße!

Kornelius
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 10 Januar 2018, 22:32:15
Der default Wert ist meines Wissens 1000 - wie gesagt wenn Du ihn löschst ...  :-X

Also kann sein die Antwort auf Deine Frage #275 ist Ja.  :D
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 11 Januar 2018, 19:43:31
Hallo,

aus dem Modul-Code (Zeile 607):
my $factor = AttrVal($name, "readingFactor$pin", AttrVal($name, "factor", 1000));

wenn das Atribut nicht existiert, wird mit 1000 gerechnet.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Nighthawk am 12 Januar 2018, 19:54:26
HalloStefan,

vielen Dank für die Änderungen, nach längerer Beobachtung funktioniert der Zähler nun tadellos.

Offtopic:
Da ich einen zusätzlichen Wasserzähler mit Reedkontakt verbaut habe und dieser nicht ganz genau so zählt wie der Hauptzähler, bräuchte ich eine Art Offsetfunktion. Der Hauptzähler Zählt ca 2,25% mehr als der Zähler mit dem Reedkontakt, wie könnte ich diesen Offset im FHEM verarbeiten?

Gruß Alex
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 12 Januar 2018, 20:14:25
Hallo Alex

Versuch es doch mal mit einem User reading in etwa so...

WasserNebenzaehler{ReadingsVal("HAR.ArduCounter","pin7",0)/2.25}

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Nighthawk am 12 Januar 2018, 20:19:06
Das war schnell, danke, werde ich testen.
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Kornelius777 am 12 Januar 2018, 20:55:20
...allerdings eher “* 1.0225“
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Nighthawk am 13 Januar 2018, 08:32:58
Das war klar ;-)
Funktioniert gut, danke!
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 13 Januar 2018, 14:17:21
Hallo,

der Effekt mit den sich selbst in der Anzeige ändernden Attributen bei birdy hat sich übrigens auch geklärt:
https://forum.fhem.de/index.php/topic,82586.0.html

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Oscar am 13 Januar 2018, 18:13:37
Hallo,

als erstes möchte ich mich bei allen Entwicklern für die Arbeit bedanken, ich beschäftige mich seit Jahren mit FHEM und habe (gerade mit der neuesten Version) schon einige gute Lösungen aufbauen können. Klasse.

Nun zu meiner Frage..

Ich habe mir den ArduCounter gebaut um meinen Stromzähler auszulesen.
Dazu habe ich die ArduCounter1.8.ino auf den Nano gespielt und diesen mit
define Verbrauch ArduCounter /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AI04XE7B-if00-port0
in FHEM angelegt.

Die Versionsabfrage in FHEM funktioniert.

Wenn ich jetzt einen Port definieren will mit
attr Verbrauch pinD2 falling pullup 50   (Zähler gibt Impulse mit Impulslänge von 65ms aus)
steht im Logfile von FHEM
Verbrauch: unparseable message from device: Error: Illegal pin specification 2

Kann mir jemand sagen was ich falsch mache.

Weiterhin möchte ich an den anderen Ports andere Zähler anschliesen, diese haben aber andere Verbrauchsfaktoren.
Wie muß ich diese definieren?

Vielen Dank für eure Hilfe.

Gruß Oscar
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 13 Januar 2018, 20:44:17
Hallo Oscar,

der Sketch erlaubt nicht alle Pins, da manche eventuell für andere Zwecke reserviert sind. Im Sketch steht das ab ca. Zeile 80:
/* arduino pins that are typically ok to use
 * (some are left out because they are used
 * as reset, serial, led or other things on most boards) */
byte allowedPins[MAX_ARDUINO_PIN] =
  { 0,  0,  0,  3,  4, 5, 6, 7,
    8,  9, 10, 11, 12, 13,
   14, 15, 16, 17,  0, 0};

Nimm einfach einen Pin ab 4.

Ich habe übrigens gerade die neuen Versionen des Moduls und des Sketches (2.05) eingecheckt.
Da sind ein paar Fehler behoben.

Gruss
   Stefan

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Oscar am 14 Januar 2018, 10:42:50
Hallo Stefan,

Danke, das war der Fehler.
Der Zähler zählt jetzt freudig.

Jetzt werde ich mich mal um die Anpassungen kümmern.

Gruß Oscar
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 15 Januar 2018, 18:16:24
der Effekt mit den sich selbst in der Anzeige ändernden Attributen bei birdy hat sich übrigens auch geklärt:

Ja genau, alle Probleme sind gelöst, alles funktioniert besten. Vielen Dank an alle Beteiligten.

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: tpm88 am 03 März 2018, 19:49:53
Hallo Stefan,

ich setze den ArduCounter zum Auslesen meines Ferraris-Stromzählers ein. Vor allem die im Modul eingebaute Möglichkeit zum Entprellen des Signals ist genial. Vorher habe ich lange Zeit vergeblich mit dem ESPEasy PulseCounter experimentiert.
 
Ich habe das Modul minimal modifiziert, um die serielle Schnittstelle des Arduino via esp-link und ser2net remote lesen zu können. Das funktioniert prinzipiell auch zunächst problemlos.

S0 -> Arduino -> esplink -> ser2net -> FHEM auf RPi3

Heute ist mir aufgefallen, daß das Reading pin4 häufig zurückgesetzt wird.

2018-03-03_16:55:47 AC pin4: 52
2018-03-03_16:57:55 AC pin4: 53
2018-03-03_16:58:49 AC pin4: 54
2018-03-03_16:59:57 AC pin4: 55
2018-03-03_17:01:42 AC pin4: 56
2018-03-03_17:03:42 AC pin4: 57
2018-03-03_17:05:06 AC pin4: 58
2018-03-03_17:06:28 AC pin4: 59
2018-03-03_17:07:48 AC pin4: 60
2018-03-03_17:09:14 AC pin4: 61
2018-03-03_17:10:48 AC pin4: 62
2018-03-03_17:12:24 AC pin4: 63
2018-03-03_17:14:06 AC pin4: 64
2018-03-03_17:16:00 AC pin4: 65
2018-03-03_17:17:52 AC pin4: 66
2018-03-03_17:21:49 AC pin4: 2
2018-03-03_17:24:11 AC pin4: 3
2018-03-03_17:26:21 AC pin4: 4
2018-03-03_17:27:54 AC pin4: 5
2018-03-03_17:28:10 AC pin4: 6
2018-03-03_17:28:56 AC pin4: 7
2018-03-03_17:30:16 AC pin4: 8
2018-03-03_17:30:46 AC pin4: 9
2018-03-03_17:31:36 AC pin4: 10
2018-03-03_17:31:54 AC pin4: 11
2018-03-03_17:32:36 AC pin4: 12
2018-03-03_17:34:38 AC pin4: 13
2018-03-03_17:36:48 AC pin4: 14
2018-03-03_17:40:27 AC pin4: 2
2018-03-03_17:42:29 AC pin4: 3
2018-03-03_17:44:47 AC pin4: 4
2018-03-03_17:47:05 AC pin4: 5
2018-03-03_17:49:23 AC pin4: 6
2018-03-03_17:51:38 AC pin4: 7
2018-03-03_17:53:26 AC pin4: 8
2018-03-03_17:56:37 AC pin4: 2
2018-03-03_17:58:17 AC pin4: 3
2018-03-03_17:59:51 AC pin4: 4
2018-03-03_18:01:33 AC pin4: 5
2018-03-03_18:03:13 AC pin4: 6
2018-03-03_18:04:53 AC pin4: 7
2018-03-03_18:06:31 AC pin4: 8
2018-03-03_18:08:05 AC pin4: 9
2018-03-03_18:10:05 AC pin4: 10
2018-03-03_18:12:01 AC pin4: 11
2018-03-03_18:13:45 AC pin4: 12

Woran kann das liegen?

Hier noch ein list des ArduCounters:

fhem> list AC
Internals:
   CounterResetTime 1520102461.46709
   DEF        192.168.8.69:23
   DeviceName 192.168.8.69:23
   FD         5
   Initialized 1
   NAME       AC
   NOTIFYDEV  global
   NR         213
   NTFY_ORDER 50-AC
   PARTIAL
   STATE      72065.69
   TYPE       ArduCounter
   VersionFirmware 2.05
   VersionModule 5.7 - 2.1.2018
   buffer
   READINGS:
     2018-03-03 19:40:42   TotalKWh        72065.6949999636
     2018-03-03 19:40:42   countDiff4      1
     2018-03-03 19:40:42   interpolatedLong4 21484
     2018-03-03 19:40:42   lastMsg4        R4 C13 D1 R1 T69896 N978594 X0 F69896 L69896 A2883 H-631573/3523:0C, -628050/69726:1G, -558324/2838:0C, -555486/65147:1G, -490339/2823:0C, -487516/65364:1G, -422152/2847:0C, -419305/66294:1G, -353011/2889:0C, -350122/66820:1G, -283302/2907:0C, -280395/67235:1G, -213160/2903:0C, -210257/67622:1G, -142635/2992:0C, -139643/66267:1G, -73376/2917:0C, -70459/67013:1G, -3446/2883:0C
     2018-03-03 19:40:42   long4           18823
     2018-03-03 19:40:42   pin4            13
     2018-03-03 19:40:42   pinHistory4     -631573/3523:0C, -628050/69726:1G, -558324/2838:0C, -555486/65147:1G, -490339/2823:0C, -487516/65364:1G, -422152/2847:0C, -419305/66294:1G, -353011/2889:0C, -350122/66820:1G, -283302/2907:0C, -280395/67235:1G, -213160/2903:0C, -210257/67622:1G, -142635/2992:0C, -139643/66267:1G, -73376/2917:0C, -70459/67013:1G, -3446/2883:0C
     2018-03-03 19:40:42   power4          0.429
     2018-03-03 19:40:42   reject4         6804
     2018-03-03 03:17:19   state           opened
     2018-03-03 19:40:42   timeDiff4       69896
Attributes:
   disable    0
   factor     8333
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   interval   2 300 1 1
   pinD4      falling pullup 30
   room       Strom
   stateFormat { sprintf("%.2f", round( ReadingsVal("AC","TotalKWh",0), 2))}
   userReadings TotalKWh:long4.* monotonic { ReadingsVal("AC","long4",0)/120 }
   userattr   pinD4 verboseReadings4
   verboseReadings4 1


Angehangen ist ein Logfile des Zählers mit debug Readings sowie das von mir für ser2net modifizierte Modul.

VG
Tobias
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 04 März 2018, 16:28:59
Hallo Tobias,

zur Fehlersuche bräuchte ich einen Auszug aus dem Fhem-Log bei dem das Modula auf verbose 5 steht.

Aber eventuell kann ich Dir auch anders helfen:
ich habe angefangen, den ArduCounter auf den ESP8266 (bei mir einen Wemos D1) zu portieren. Es ist zwar noch nicht alles drin, was ich mir vorgenommen habe, aber die bisherigen Features scheinen soweit schon zu funktionieren.
Wenn Du Interesse hast, könnte ich Dir den aktuellen Stand (geändertes Modul und Sketch) zur Verfügung stellen und Du könntest es mal testen.

Was noch nicht drin ist:
- Speichern der aktuellen Konfiguration im Flash, so dass der ESP nach einem Reboot gleich weiter zählen kann
- Aufräumen des Sketch, so dass er auch wieder auf einem normalen Arduino läuft (bisher habe ich viel für den ESP umgebaut)

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: tpm88 am 04 März 2018, 16:39:09
Hallo Stefan,

besten Dank - Log mit verbose 5 ist in Arbeit.

Sehr gerne teste ich auch den Port auf den ESP8266. Einen wemos D1 hierfür habe ich da.

Ist mit dem ESP8266 Port der direkte Anschluß per WLAN an das ArduCounter Modul möglich?

Gruß
Tobias
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 04 März 2018, 19:12:29
Ist mit dem ESP8266 Port der direkte Anschluß per WLAN an das ArduCounter Modul möglich?

Genau das ist die Idee :-)

Ich räume den Code noch ein bisschen auf und poste dann eine Testversion in den nächsten Tagen.

Gruß
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 04 März 2018, 20:11:11

Ist mit dem ESP8266 Port der direkte Anschluß per WLAN an das ArduCounter Modul möglich?
Genau das ist die Idee :-)

Ich räume den Code noch ein bisschen auf und poste dann eine Testversion in den nächsten Tagen.

Gruß
   Stefan

Dann könnte ich ja meinen Keller- RPi  in Rente schicken....
und hätte die Reading direkt in Haupt-FHEM?  Wenn das mal keine guten Neuigkeiten sind!

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 06 März 2018, 19:54:57
Ok, hier eine erste neue Version für den ESP8266 zum Testen.
Im Sketch muss die SSID und der WLAN Key manuell eingetragen werden (Zeile 100 und 101).
Debug kann durch Löschen der Zeile 80 entfernt werden.

Zum Flashen eines Wemos D1 muss in der Arduino IDE per Boardmanager der Support für den ESP8266 nachinstalliert sein. Dann muss das korrekte Board (z.B. Wemos D1 mini) ausgewählt werden.
Das angehängte Modul ist für den neuen Sketch angepasst und funktioniert nicht mehr mit der veröffentlichten stabilen Version des ArduCounter Sketches für den Arduino.

Im Modul wird dann statt z.B. /dev/ttyUSB1 einfach eine IP-Adresse mit Port 80 angegeben, z.B.:
define ACTest ArduCounter 192.168.1.112:80

das ganze ist sicher noch nicht ausgereift. Wer einen stabilen Zähler braucht, sollte die eingecheckte Version des Moduls und Sketches für den Arduino nutzen ;-)

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 06 März 2018, 20:46:50
Ja die aktuelle Version für den Arduino läuft sehr stabil.

Ich werde mir gelegentlich einen ESP8266 zulegen, um das Ganze auszuprobieren. Die Idee mit den ESP8266 finde ich einfach genial!
Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: tpm88 am 07 März 2018, 18:46:13
Hallo Stefan,

auf den ersten Blick sieht der ESP8266 Support schon sehr gut aus:

fhem> list ACtest
Internals:
   CFGFN
   CounterResetTime 1520443884.5059
   DEF        192.168.8.69:80
   DeviceName 192.168.8.69:80
   FD         60
   Initialized 1
   NAME       ACtest
   NOTIFYDEV  global
   NR         10789
   NTFY_ORDER 50-ACtest
   PARTIAL
   STATE      opened
   TCP        1
   TYPE       ArduCounter
   VersionFirmware 2.25
   VersionModule 5.84 - 6.3.2018
   WaitForAlive 0
   allowedPins 0,1,2,5,6,7
   buffer
   nextOpenDelay 60
   CounterInterpolated:
     5          1
   READINGS:
     2018-03-07 18:35:40   interpolatedLong5 3
     2018-03-07 18:35:40   long5           3
     2018-03-07 18:35:40   pin5            3
     2018-03-07 18:36:50   pinHistory5     -326003/81072@1G, -244931/3617@0C, -241314/12@1X, -241302/1@0R, -241301/82031@1G, -159270/3544@0C, -155726/81936@1G, -73790/0@0R, -73790/1@1X, -73789/0@0R, -73789/8@1X, -73781/3605@0C
     2018-03-07 18:35:40   power5          0.351
     2018-03-07 18:35:40   reject5         3
     2018-03-07 18:31:24   state           opened
Attributes:
   factor     8333
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   interval   2 300 1 1
   pinD5      falling pullup 30
   room       Strom
   userattr   pinD0 pinD5

Erste Erkenntnisse:


Mit den oben gesetzten Attributen schreibt das Modul alle 2 Sekunden folgende Meldungen ins Log - auch ohne verboseReadings. Liegt das an dem DebugFlag im Sketch?

2018-03-07_18:44:12 ACtest pinHistory5: -434634/1@0R, -434633/24@1X, -434609/2877@0C, -431732/72774@1G, -358958/3279@0C, -355679/76906@1G, -278773/0@0R, -278773/0@1X, -278773/1@0R, -278772/34@1G, -278738/3485@0C, -275253/79549@1G, -195704/0@0R, -195704/38@1G, -195666/3480@0C, -192186/79954@1G, -112232/3503@0C, -108729/80112@1G, -28617/3497@0C
2018-03-07_18:44:14 ACtest pinHistory5: -436634/1@0R, -436633/24@1X, -436609/2877@0C, -433732/72774@1G, -360958/3279@0C, -357679/76906@1G, -280773/0@0R, -280773/0@1X, -280773/1@0R, -280772/34@1G, -280738/3485@0C, -277253/79549@1G, -197704/0@0R, -197704/38@1G, -197666/3480@0C, -194186/79954@1G, -114232/3503@0C, -110729/80112@1G, -30617/3497@0C
2018-03-07_18:44:16 ACtest pinHistory5: -438634/1@0R, -438633/24@1X, -438609/2877@0C, -435732/72774@1G, -362958/3279@0C, -359679/76906@1G, -282773/0@0R, -282773/0@1X, -282773/1@0R, -282772/34@1G, -282738/3485@0C, -279253/79549@1G, -199704/0@0R, -199704/38@1G, -199666/3480@0C, -196186/79954@1G, -116232/3503@0C, -112729/80112@1G, -32617/3497@0C

Ich werde weiter testen. Aber bereits jetzt: DANKE für die Weiterentwicklung!

Gruß
Tobias
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 07 März 2018, 22:50:51
Hallo Tobias,

die Pins 3,4 und 8 setzen den Boot-Modus des ESP. Wenn da ein Zähler angeschlossen ist, kommt der ESP möglicherweise nach einem Reboot nicht mehr hoch.
Die Pullup-Einstellung für die anderen Pins war noch nicht mit dem ESP kompatibel. Das sollte jetzt funktionieren.
Ebenso habe ich das mit der Pin-History gefixt. Das war noch nicht fertig ...

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: tpm88 am 08 März 2018, 17:00:57
Hallo Stefan,

v2.26 habe ich eingespielt. Funktioniert auf den ersten Blick wieder einwandfrei.
 
Die pinHistoryX readings kommen jetzt nur noch, wenn verboseReadingsX gesetzt ist. Dann allerdings alle zwei Sekunden (möglicherweise abhängig von meinen Intervall Settings)??

interval   2 300 1 1

Was noch nicht drin ist:
- Speichern der aktuellen Konfiguration im Flash, so dass der ESP nach einem Reboot gleich weiter zählen kann
- Aufräumen des Sketch, so dass er auch wieder auf einem normalen Arduino läuft (bisher habe ich viel für den ESP umgebaut)
[/quote]

Interessehalber - speicherst du die longX/interpolatedLongX Counter im Flash des ESP8266? Wenn ja, wie sieht es da mit dem Flash Wear Leveling aus? Siehe z.B. https://design.goeszen.com/mitigating-flash-wear-on-the-esp8266-or-any-other-microcontroller-with-flash.html (https://design.goeszen.com/mitigating-flash-wear-on-the-esp8266-or-any-other-microcontroller-with-flash.html)

Gruß
Tobias
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 08 März 2018, 19:36:30
Hallo Tobias,

die Long Counter existieren bisher nur auf der Fhem/Perl-Seite.
Im EEPROM / Flash speichere ich bisher nichts. Bei den Countern wäre das vermutlich auch ungesund.

Die Idee ist aber, dass die Pin-Konfiguration (aktive Pins, pullup, min length) im Flash gespeichert wird (wenn man das explizit mit einem set initiiert), so dass nach einem Cras / reboot sofort wieder richtig weiter gezählt werden kann. Das habe ich aber noch nicht implementiert.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: tpm88 am 12 März 2018, 12:31:36
Hallo Stefan,

ich habe folgende Verbindungsabbrüche (ESP8266 WLAN) im Log gesehen:

2018-03-09_13:30:36 AC_Strom DISCONNECTED
2018-03-09_13:30:37 AC_Strom CONNECTED
2018-03-09_14:13:00 AC_Strom DISCONNECTED
2018-03-09_14:13:00 AC_Strom CONNECTED
2018-03-09_14:14:02 AC_Strom DISCONNECTED
2018-03-09_14:14:04 AC_Strom CONNECTED
2018-03-09_14:29:36 AC_Strom DISCONNECTED
2018-03-09_14:29:37 AC_Strom CONNECTED
2018-03-09_18:02:54 AC_Strom DISCONNECTED
2018-03-09_18:02:54 AC_Strom CONNECTED
2018-03-09_18:12:36 AC_Strom DISCONNECTED
2018-03-09_18:12:38 AC_Strom CONNECTED
2018-03-09_18:57:31 AC_Strom DISCONNECTED
2018-03-09_18:57:31 AC_Strom CONNECTED
2018-03-09_18:59:33 AC_Strom DISCONNECTED
2018-03-09_18:59:33 AC_Strom CONNECTED
2018-03-09_19:01:25 AC_Strom DISCONNECTED
2018-03-09_19:01:28 AC_Strom CONNECTED
2018-03-09_19:01:40 AC_Strom DISCONNECTED
2018-03-09_19:01:43 AC_Strom CONNECTED
2018-03-10_16:00:39 AC_Strom DISCONNECTED
2018-03-10_16:00:40 AC_Strom CONNECTED
2018-03-11_10:09:50 AC_Strom DISCONNECTED
2018-03-11_10:09:51 AC_Strom CONNECTED
2018-03-11_12:46:11 AC_Strom DISCONNECTED
2018-03-11_12:46:13 AC_Strom CONNECTED

In diesem Zeitraum habe ich definitiv nichts an meinem Setup geändert. Nun hat der wemos im Keller sicherlich nicht den besten WLAN-Empfang - aber als ich ihn an etwa gleicher Stelle noch mit ESPEasy in Betrieb hatte, waren die rssi Werte nicht so schlecht.

Gibt es da (im Sketch) irgendeine Debug-Möglichkeit?

Viele Grüße
Tobias
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 12 März 2018, 18:50:57
Hallo Tobias,

wenn Du das verbose-Attribut im ArduCounter-Gerät auf 5 setzt, dann schreibt das Modul sehr viele Details ins Fhem-Log. Unter anderem auch die Kommunikation mit dem Sketch.
Da sollte dann erkennbar sein, was genau passiert.
Probier das doch mal aus und poste dann einen größeren Ausschnitt aus dem Fhem-Log.

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: tpm88 am 13 März 2018, 12:28:48
Hallo Stefan,

seit ich verbose auf 5 gesetzt habe, gab es wieder zwei kurze Unterbrechungen:

2018-03-12_20:17:14 AC_Strom DISCONNECTED
2018-03-12_20:17:14 AC_Strom CONNECTED
2018-03-13_07:12:19 AC_Strom DISCONNECTED
2018-03-13_07:12:19 AC_Strom CONNECTED

1. Unterbrechung - Ausschnitt aus dem verbose 5 fhem log:

...
2018.03.12 20:16:27 5: AC_Strom: Pin 5 debug: adding 1 to long count 4975 and interpolated count 4975
2018.03.12 20:16:27 4: AC_Strom: Pin 5 (pin5) Cnt 4314 lCnt 4976 iCnt 4976 (diff 1) in 11.162s, Rej 0, Avg 455ms, result 2.688
2018.03.12 20:16:27 5: AC_Strom: interval 20:16:16 until 20:16:27
2018.03.12 20:16:27 5: AC_Strom: set readings power5 to 2.688, timeDiff5 to 11162 and countDiff5 to 1
2018.03.12 20:16:27 5: AC_Strom: Device Time 382075.947, Drift 0.764s in 61108.776s, 0.00%
2018.03.12 20:16:32 5: AC_Strom: sending k(eepAlive) to device
2018.03.12 20:16:32 5: AC_Strom: Write: k
2018.03.12 20:16:32 5: SW: k

2018.03.12 20:16:37 5: AC_Strom: Pin 5 debug: adding 1 to long count 4976 and interpolated count 4976
2018.03.12 20:16:37 4: AC_Strom: Pin 5 (pin5) Cnt 4315 lCnt 4977 iCnt 4977 (diff 1) in 11.153s, Rej 0, Avg 453ms, result 2.690
2018.03.12 20:16:37 5: AC_Strom: interval 20:16:26 until 20:16:37
2018.03.12 20:16:37 5: AC_Strom: set readings power5 to 2.690, timeDiff5 to 11153 and countDiff5 to 1
2018.03.12 20:16:37 5: AC_Strom: Device Time 382085.947, Drift 0.767s in 61118.779s, 0.00%
2018.03.12 20:16:42 5: AC_Strom: sending k(eepAlive) to device
2018.03.12 20:16:42 5: AC_Strom: Write: k
2018.03.12 20:16:42 5: SW: k

2018.03.12 20:16:49 5: AC_Strom: Pin 5 debug: adding 1 to long count 4977 and interpolated count 4977
2018.03.12 20:16:49 4: AC_Strom: Pin 5 (pin5) Cnt 4316 lCnt 4978 iCnt 4978 (diff 1) in 11.132s, Rej 0, Avg 454ms, result 2.695
2018.03.12 20:16:49 5: AC_Strom: interval 20:16:38 until 20:16:49
2018.03.12 20:16:49 5: AC_Strom: set readings power5 to 2.695, timeDiff5 to 11132 and countDiff5 to 1
2018.03.12 20:16:49 5: AC_Strom: Device Time 382097.947, Drift 0.767s in 61130.779s, 0.00%
2018.03.12 20:16:52 5: AC_Strom: sending k(eepAlive) to device
2018.03.12 20:16:52 5: AC_Strom: Write: k
2018.03.12 20:16:52 5: SW: k

2018.03.12 20:17:01 5: AC_Strom: Pin 5 debug: adding 1 to long count 4978 and interpolated count 4978
2018.03.12 20:17:01 4: AC_Strom: Pin 5 (pin5) Cnt 4317 lCnt 4979 iCnt 4979 (diff 1) in 11.178s, Rej 0, Avg 455ms, result 2.684
2018.03.12 20:17:01 5: AC_Strom: interval 20:16:50 until 20:17:01
2018.03.12 20:17:01 5: AC_Strom: set readings power5 to 2.684, timeDiff5 to 11178 and countDiff5 to 1
2018.03.12 20:17:01 5: AC_Strom: Device Time 382109.947, Drift 0.766s in 61142.778s, 0.00%
2018.03.12 20:17:02 5: AC_Strom: sending k(eepAlive) to device
2018.03.12 20:17:02 5: AC_Strom: Write: k

2018.03.12 20:17:12 5: AC_Strom: sending k(eepAlive) to device
2018.03.12 20:17:12 5: AC_Strom: Write: k
2018.03.12 20:17:12 5: SW: k

2018.03.12 20:17:14 3: AC_Strom: device didn't reply to k(eeepAlive). Is the right sketch flashed?
2018.03.12 20:17:14 1: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.03.12 20:17:14 1: 192.168.8.69:80 reappeared (AC_Strom)
2018.03.12 20:17:14 3: AC_Strom: device maybe not initialized yet, set timer to send h(ello
2018.03.12 20:17:14 3: AC_Strom: unparseable message from device: R^M
2018.03.12 20:17:14 3: AC_Strom: device sent hello, V2.26, 0,1,2,5,6,7
2018.03.12 20:17:14 4: AC_Strom: device reported firmware 2.26
2018.03.12 20:17:14 3: AC_Strom: sending configuration from attributes to device
2018.03.12 20:17:14 3: AC_Strom: ConfigureDevice calls Attr with pinD5 falling pullup 30
2018.03.12 20:17:14 5: AC_Strom: Write: 5,2,1,30a
2018.03.12 20:17:14 5: SW: 5,2,1,30a

2018.03.12 20:17:14 3: AC_Strom: ConfigureDevice calls Attr with interval 2 300 1 1
2018.03.12 20:17:14 5: AC_Strom: Write: 2,300,1,1i
2018.03.12 20:17:14 5: SW: 2,300,1,1i

2018.03.12 20:17:14 4: AC_Strom: device sent time: T 382123077 boot at 561^M
2018.03.12 20:17:14 3: AC_Strom: unparseable message from device: P5 falling pullup min 30^M
2018.03.12 20:17:14 3: AC_Strom: device: defined P5 falling pullup min 30^M
2018.03.12 20:17:14 3: AC_Strom: device: intervals set to 2 300 1 1^M
2018.03.12 20:17:23 5: AC_Strom: Pin 5 debug: adding 1 to long count 4979 and interpolated count 4979
2018.03.12 20:17:23 4: AC_Strom: Pin 5 (pin5) Cnt 4319 lCnt 4980 iCnt 4980 (diff 1) in 11.218s, Rej 0, Avg 457ms, result 2.674
2018.03.12 20:17:23 5: AC_Strom: interval 20:17:12 until 20:17:23
2018.03.12 20:17:23 5: AC_Strom: set readings power5 to 2.674, timeDiff5 to 11218 and countDiff5 to 1
2018.03.12 20:17:23 5: AC_Strom: Device Time 382131.947, Drift 0.772s in 61164.784s, 0.00%
2018.03.12 20:17:24 5: AC_Strom: sending k(eepAlive) to device
2018.03.12 20:17:24 5: AC_Strom: Write: k
2018.03.12 20:17:24 5: SW: k

2018.03.12 20:17:33 5: AC_Strom: Pin 5 debug: adding 1 to long count 4980 and interpolated count 4980
2018.03.12 20:17:33 4: AC_Strom: Pin 5 (pin5) Cnt 4320 lCnt 4981 iCnt 4981 (diff 1) in 11.245s, Rej 0, Avg 454ms, result 2.668
2018.03.12 20:17:33 5: AC_Strom: interval 20:17:22 until 20:17:33
2018.03.12 20:17:33 5: AC_Strom: set readings power5 to 2.668, timeDiff5 to 11245 and countDiff5 to 1
2018.03.12 20:17:33 5: AC_Strom: Device Time 382141.947, Drift 0.767s in 61174.779s, 0.00%
2018.03.12 20:17:34 5: AC_Strom: sending k(eepAlive) to device
2018.03.12 20:17:34 5: AC_Strom: Write: k
2018.03.12 20:17:34 5: SW: k

2018.03.12 20:17:44 5: AC_Strom: sending k(eepAlive) to device
2018.03.12 20:17:44 5: AC_Strom: Write: k
2018.03.12 20:17:44 5: SW: k

2018.03.12 20:17:45 5: AC_Strom: Pin 5 debug: adding 1 to long count 4981 and interpolated count 4981
2018.03.12 20:17:45 4: AC_Strom: Pin 5 (pin5) Cnt 4321 lCnt 4982 iCnt 4982 (diff 1) in 11.185s, Rej 0, Avg 454ms, result 2.682
2018.03.12 20:17:45 5: AC_Strom: interval 20:17:34 until 20:17:45
2018.03.12 20:17:45 5: AC_Strom: set readings power5 to 2.682, timeDiff5 to 11185 and countDiff5 to 1
2018.03.12 20:17:45 5: AC_Strom: Device Time 382153.947, Drift 0.765s in 61186.777s, 0.00%
2018.03.12 20:17:54 5: AC_Strom: sending k(eepAlive) to device
2018.03.12 20:17:54 5: AC_Strom: Write: k
2018.03.12 20:17:54 5: SW: k

2018.03.12 20:17:57 5: AC_Strom: Pin 5 debug: adding 1 to long count 4982 and interpolated count 4982
2018.03.12 20:17:57 4: AC_Strom: Pin 5 (pin5) Cnt 4322 lCnt 4983 iCnt 4983 (diff 1) in 11.196s, Rej 0, Avg 456ms, result 2.679
2018.03.12 20:17:57 5: AC_Strom: interval 20:17:46 until 20:17:57
2018.03.12 20:17:57 5: AC_Strom: set readings power5 to 2.679, timeDiff5 to 11196 and countDiff5 to 1
2018.03.12 20:17:57 5: AC_Strom: Device Time 382165.947, Drift 0.766s in 61198.778s, 0.00%
2018.03.12 20:18:04 5: AC_Strom: sending k(eepAlive) to device
2018.03.12 20:18:04 5: AC_Strom: Write: k
2018.03.12 20:18:04 5: SW: k

2018.03.12 20:18:07 5: AC_Strom: Pin 5 debug: adding 1 to long count 4983 and interpolated count 4983
2018.03.12 20:18:07 4: AC_Strom: Pin 5 (pin5) Cnt 4323 lCnt 4984 iCnt 4984 (diff 1) in 11.200s, Rej 0, Avg 454ms, result 2.678
2018.03.12 20:18:07 5: AC_Strom: interval 20:17:56 until 20:18:07
2018.03.12 20:18:07 5: AC_Strom: set readings power5 to 2.678, timeDiff5 to 11200 and countDiff5 to 1
2018.03.12 20:18:07 5: AC_Strom: Device Time 382175.947, Drift 0.765s in 61208.777s, 0.00%
2018.03.12 20:18:14 5: AC_Strom: sending k(eepAlive) to device
2018.03.12 20:18:14 5: AC_Strom: Write: k
2018.03.12 20:18:14 5: SW: k

2018.03.12 20:18:19 5: AC_Strom: Pin 5 debug: adding 1 to long count 4984 and interpolated count 4984
2018.03.12 20:18:19 4: AC_Strom: Pin 5 (pin5) Cnt 4324 lCnt 4985 iCnt 4985 (diff 1) in 11.193s, Rej 0, Avg 458ms, result 2.680
2018.03.12 20:18:19 5: AC_Strom: interval 20:18:08 until 20:18:19
2018.03.12 20:18:19 5: AC_Strom: set readings power5 to 2.680, timeDiff5 to 11193 and countDiff5 to 1
2018.03.12 20:18:19 5: AC_Strom: Device Time 382187.947, Drift 0.767s in 61220.779s, 0.00%
2018.03.12 20:18:24 5: AC_Strom: sending k(eepAlive) to device
2018.03.12 20:18:24 5: AC_Strom: Write: k
2018.03.12 20:18:24 5: SW: k

2018.03.12 20:18:29 5: AC_Strom: Pin 5 debug: adding 1 to long count 4985 and interpolated count 4985
2018.03.12 20:18:29 4: AC_Strom: Pin 5 (pin5) Cnt 4325 lCnt 4986 iCnt 4986 (diff 1) in 11.227s, Rej 0, Avg 457ms, result 2.672
2018.03.12 20:18:29 5: AC_Strom: interval 20:18:18 until 20:18:29
2018.03.12 20:18:29 5: AC_Strom: set readings power5 to 2.672, timeDiff5 to 11227 and countDiff5 to 1
2018.03.12 20:18:29 5: AC_Strom: Device Time 382197.947, Drift 0.766s in 61230.778s, 0.00%
2018.03.12 20:18:34 5: AC_Strom: sending k(eepAlive) to device
2018.03.12 20:18:34 5: AC_Strom: Write: k
2018.03.12 20:18:34 5: SW: k
...

2. Unterbrechung - Ausschnitt aus dem verbose 5 fhem log:

...
2018.03.13 07:10:47 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 07:10:47 5: AC_Strom: Write: k
2018.03.13 07:10:47 5: SW: k

2018.03.13 07:10:57 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 07:10:57 5: AC_Strom: Write: k
2018.03.13 07:10:57 5: SW: k

2018.03.13 07:11:07 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 07:11:07 5: AC_Strom: Write: k
2018.03.13 07:11:07 5: SW: k

2018.03.13 07:11:17 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 07:11:17 5: AC_Strom: Write: k
2018.03.13 07:11:17 5: SW: k

2018.03.13 07:11:27 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 07:11:27 5: AC_Strom: Write: k
2018.03.13 07:11:27 5: SW: k

2018.03.13 07:11:37 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 07:11:37 5: AC_Strom: Write: k
2018.03.13 07:11:37 5: SW: k

2018.03.13 07:11:46 5: AC_Strom: Pin 5 debug: adding 1 to long count 5370 and interpolated count 5370
2018.03.13 07:11:46 4: AC_Strom: Pin 5 (pin5) Cnt 4711 lCnt 5371 iCnt 5371 (diff 1) in 83.901s, Rej 0, Avg 768ms, result 0.358
2018.03.13 07:11:46 5: AC_Strom: interval 07:10:22 until 07:11:46
2018.03.13 07:11:46 5: AC_Strom: set readings power5 to 0.358, timeDiff5 to 83901 and countDiff5 to 1
2018.03.13 07:11:46 5: AC_Strom: Device Time 421393.948, Drift 0.177s in 13974.177s, 0.00%
2018.03.13 07:11:47 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 07:11:47 5: AC_Strom: Write: k
2018.03.13 07:11:47 5: SW: k

2018.03.13 07:11:57 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 07:11:57 5: AC_Strom: Write: k
2018.03.13 07:11:57 5: SW: k

2018.03.13 07:12:07 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 07:12:07 5: AC_Strom: Write: k
2018.03.13 07:12:07 5: SW: k

2018.03.13 07:12:17 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 07:12:17 5: AC_Strom: Write: k
2018.03.13 07:12:17 5: SW: k

2018.03.13 07:12:19 3: AC_Strom: device didn't reply to k(eeepAlive). Is the right sketch flashed?
2018.03.13 07:12:19 1: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.03.13 07:12:19 1: 192.168.8.69:80 reappeared (AC_Strom)
2018.03.13 07:12:19 3: AC_Strom: device maybe not initialized yet, set timer to send h(ello
2018.03.13 07:12:19 3: AC_Strom: unparseable message from device: a^M
2018.03.13 07:12:19 3: AC_Strom: device sent hello, V2.26, 0,1,2,5,6,7
2018.03.13 07:12:19 4: AC_Strom: device reported firmware 2.26
2018.03.13 07:12:19 3: AC_Strom: sending configuration from attributes to device
2018.03.13 07:12:19 3: AC_Strom: ConfigureDevice calls Attr with pinD5 falling pullup 30
2018.03.13 07:12:19 5: AC_Strom: Write: 5,2,1,30a
2018.03.13 07:12:19 5: SW: 5,2,1,30a

2018.03.13 07:12:19 3: AC_Strom: ConfigureDevice calls Attr with interval 2 300 1 1
2018.03.13 07:12:19 5: AC_Strom: Write: 2,300,1,1i
2018.03.13 07:12:19 5: SW: 2,300,1,1i

2018.03.13 07:12:19 4: AC_Strom: device sent time: T 421427741 boot at 561^M
2018.03.13 07:12:19 3: AC_Strom: unparseable message from device: P5 falling pullup min 30^M
2018.03.13 07:12:19 3: AC_Strom: device: defined P5 falling pullup min 30^M
2018.03.13 07:12:19 3: AC_Strom: device: intervals set to 2 300 1 1^M
2018.03.13 07:12:29 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 07:12:29 5: AC_Strom: Write: k
2018.03.13 07:12:29 5: SW: k

2018.03.13 07:12:39 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 07:12:39 5: AC_Strom: Write: k
2018.03.13 07:12:39 5: SW: k

2018.03.13 07:12:48 5: AC_Strom: Pin 5 debug: adding 1 to long count 5371 and interpolated count 5371
2018.03.13 07:12:48 4: AC_Strom: Pin 5 (pin5) Cnt 4713 lCnt 5372 iCnt 5372 (diff 1) in 30.713s, Rej 1, Avg 1284ms, result 0.977
2018.03.13 07:12:48 5: AC_Strom: interval 07:12:17 until 07:12:48
2018.03.13 07:12:48 5: AC_Strom: set readings power5 to 0.977, timeDiff5 to 30713 and countDiff5 to 1
2018.03.13 07:12:48 5: AC_Strom: Device Time 421455.948, Drift 0.177s in 14036.177s, 0.00%
2018.03.13 07:12:49 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 07:12:49 5: AC_Strom: Write: k
2018.03.13 07:12:49 5: SW: k

2018.03.13 07:12:59 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 07:12:59 5: AC_Strom: Write: k
2018.03.13 07:12:59 5: SW: k

2018.03.13 07:13:09 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 07:13:09 5: AC_Strom: Write: k
2018.03.13 07:13:09 5: SW: k

2018.03.13 07:13:19 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 07:13:19 5: AC_Strom: Write: k
2018.03.13 07:13:19 5: SW: k

2018.03.13 07:13:20 5: AC_Strom: Pin 5 debug: adding 1 to long count 5372 and interpolated count 5372
2018.03.13 07:13:20 4: AC_Strom: Pin 5 (pin5) Cnt 4714 lCnt 5373 iCnt 5373 (diff 1) in 31.378s, Rej 1, Avg 1282ms, result 0.956
2018.03.13 07:13:20 5: AC_Strom: interval 07:12:48 until 07:13:20
2018.03.13 07:13:20 5: AC_Strom: set readings power5 to 0.956, timeDiff5 to 31378 and countDiff5 to 1
2018.03.13 07:13:20 5: AC_Strom: Device Time 421487.948, Drift 0.176s in 14068.176s, 0.00%
2018.03.13 07:13:29 5: AC_Strom: sending k(eepAlive) to device
...

Kannst Du aus den Logs eine Ursache herauslesen?

VG
Tobias
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 13 März 2018, 17:46:01
Hallo Tobias,

Das Modul sendet alle 10 Sekunden ein „k“ an den ESP und erwartet eine „alive“-Antwort. Wenn die nicht innerhalb von 2 Sekunden kommt, dann schließt das Modul die TCP-Verbindung und versucht sie neu aufzubauen.
Ohne so einen Mechanismus kann es passieren, dass ein Crash des ESP erst viel später bemerkt wird und dazwischen Impulse nicht gezählt werden.
Bei Deinen Abbrüchen hat aber der ESP gar nicht neu gestartet und ist folglich auch nicht abgestürzt. Nur die alive-Antwort kam nicht rechtzeitig.
Um die genaue Ursache dafür zu finden muss ich vermutlich noch ein paar Debug-Ausgaben einbauen. Ich hoffe dass ich am Wochenende dazu komme und dann poste ich eine neue Version.

Gruß und vielen Dank fürs Testen
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: tpm88 am 13 März 2018, 18:50:20
Hallo Stefan,

hier ist noch etwas, was vielleicht noch nicht optimal funktioniert. Beim Restart von FHEM läuft die Initialisierung des AC offenbar immer zweimal ab. Das konnte ich reproduzieren.

Anbei ein verbose 5 Log vom FHEM-Start - zur besseren Übersicht habe ich alle Nicht-AC Zeilen ausgelassen:

...
2018.03.13 18:42:49 5: AC_Strom: Notify called with events: INITIALIZED, open device and set timer to send hello to device
2018.03.13 18:42:49 5: AC_Strom: ArduCounter_Open trying to open connection
2018.03.13 18:42:49 3: Opening AC_Strom device 192.168.8.69:80
2018.03.13 18:42:49 3: AC_Strom device opened
2018.03.13 18:42:49 5: AC_Strom: ArduCounter_Open succeeded - set timer to send hello
...
2018.03.13 18:42:55 0: Featurelevel: 5.8
2018.03.13 18:42:55 0: Server started with 207 defined entities (fhem.pl:16354/2018-03-09 perl:5.020002 os:linux user:fhem pid:26102)
2018.03.13 18:42:55 3: AC_Strom: sending h(ello) to device to ask for version
2018.03.13 18:42:55 5: AC_Strom: Write: h
2018.03.13 18:42:55 5: SW: h

2018.03.13 18:42:55 3: AC_Strom: device sent hello, V2.26, 0,1,2,5,6,7
2018.03.13 18:42:55 4: AC_Strom: device reported firmware 2.26
2018.03.13 18:42:55 3: AC_Strom: sending configuration from attributes to device
2018.03.13 18:42:55 3: AC_Strom: ConfigureDevice calls Attr with pinD5 falling pullup 30
2018.03.13 18:42:55 1: PERL WARNING: Use of uninitialized value in split at ./FHEM/98_ArduCounter.pm line 375.
2018.03.13 18:42:55 5: AC_Strom: Write: 5,2,1,30a
2018.03.13 18:42:55 5: SW: 5,2,1,30a

2018.03.13 18:42:55 3: AC_Strom: ConfigureDevice calls Attr with interval 2 300 1 1
2018.03.13 18:42:55 5: AC_Strom: Write: 2,300,1,1i
2018.03.13 18:42:55 5: SW: 2,300,1,1i

2018.03.13 18:42:55 4: AC_Strom: device sent time: T 462856493 boot at 561
2018.03.13 18:42:55 3: AC_Strom: unparseable message from device: P5 falling pullup min 30
2018.03.13 18:42:55 3: AC_Strom: device sent hello, V2.26, 0,1,2,5,6,7
2018.03.13 18:42:55 4: AC_Strom: device reported firmware 2.26
2018.03.13 18:42:55 3: AC_Strom: sending configuration from attributes to device
2018.03.13 18:42:55 3: AC_Strom: ConfigureDevice calls Attr with pinD5 falling pullup 30
2018.03.13 18:42:55 5: AC_Strom: Write: 5,2,1,30a
2018.03.13 18:42:55 5: SW: 5,2,1,30a

2018.03.13 18:42:55 3: AC_Strom: ConfigureDevice calls Attr with interval 2 300 1 1
2018.03.13 18:42:55 5: AC_Strom: Write: 2,300,1,1i
2018.03.13 18:42:55 5: SW: 2,300,1,1i

2018.03.13 18:42:55 4: AC_Strom: device sent time: T 462863039 boot at 561
2018.03.13 18:42:55 3: AC_Strom: unparseable message from device: P5 falling pullup min 30
2018.03.13 18:42:56 3: AC_Strom: device: defined P5 falling pullup min 30
2018.03.13 18:42:56 3: AC_Strom: device: intervals set to 2 300 1 1
2018.03.13 18:42:56 3: AC_Strom: device: defined P5 falling pullup min 30
2018.03.13 18:42:56 3: AC_Strom: device: intervals set to 2 300 1 1
...
2018.03.13 18:42:59 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 18:42:59 5: AC_Strom: Write: k
2018.03.13 18:42:59 5: SW: k

2018.03.13 18:43:09 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 18:43:09 5: AC_Strom: Write: k
2018.03.13 18:43:09 5: SW: k

2018.03.13 18:43:19 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 18:43:19 5: AC_Strom: Write: k
2018.03.13 18:43:19 5: SW: k

2018.03.13 18:43:24 5: AC_Strom: Pin 5 debug: adding 1 to long count 5879 and interpolated count 5879
2018.03.13 18:43:24 4: AC_Strom: Pin 5 (pin5) Cnt 5221 lCnt 5880 iCnt 5880 (diff 1) in 112.310s, Rej 0, Avg 4624ms, result 0.267
2018.03.13 18:43:24 5: AC_Strom: interval 18:41:32 until 18:43:24
2018.03.13 18:43:24 5: AC_Strom: set readings power5 to 0.267, timeDiff5 to 112310 and countDiff5 to 1
2018.03.13 18:43:24 5: AC_Strom: Initialize clock offset to 1520500112.61918
2018.03.13 18:43:24 5: AC_Strom: Device Time 462891.949, Drift 0.000s in 0.000s

2018.03.13 18:43:29 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 18:43:29 5: AC_Strom: Write: k
2018.03.13 18:43:29 5: SW: k

2018.03.13 18:43:39 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 18:43:39 5: AC_Strom: Write: k
2018.03.13 18:43:39 5: SW: k

2018.03.13 18:43:49 5: AC_Strom: sending k(eepAlive) to device
2018.03.13 18:43:49 5: AC_Strom: Write: k
2018.03.13 18:43:49 5: SW: k

VG
Tobias
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: tpm88 am 16 März 2018, 11:23:16
Bei Deinen Abbrüchen hat aber der ESP gar nicht neu gestartet und ist folglich auch nicht abgestürzt. Nur die alive-Antwort kam nicht rechtzeitig.
Um die genaue Ursache dafür zu finden muss ich vermutlich noch ein paar Debug-Ausgaben einbauen.

Hallo Stefan.

Ich habe den freezemon eingerichtet, um festzustellen, ob ich zeitgleich mit den Verbindungsabbrüchen freezes im FHEM sehe. Das ist aber definitiv nicht der Fall. Letzter aufgezeichneter freeze war vom FHEM restart nach dem Backup nachts.

fhem> list fm

Internals:
   NAME       fm
   NR         207
   NTFY_ORDER 99-fm
   STATE      s:03:18:38 e:03:18:40 f:2.546 d:DENON_AVR_ConnectionCheck(myDenon) SIP_watch_listen(N/A)
   TYPE       freezemon
   VERSION    0.0.18
   READINGS:
     2018-03-16 03:18:40   fcDay           1
     2018-03-16 00:00:57   fcDayLast       4
     2018-03-16 03:18:40   freezeDevice    DENON_AVR_ConnectionCheck(myDenon) SIP_watch_listen(N/A)
     2018-03-16 03:18:40   freezeTime      2.546
     2018-03-16 03:18:40   ftDay           2.546
     2018-03-16 00:00:57   ftDayLast       7.779
     2018-03-16 03:18:40   state           s:03:18:38 e:03:18:40 f:2.546 d:DENON_AVR_ConnectionCheck(myDenon) SIP_watch_listen(N/A)

Möglicherweise verliert der wemos kurzzeitig die WLAN Verbindung zur FritzBox. Hierzu werde ich mal das Logging für WLAN Anmeldungen in der FritzBox aktivieren.

Vorher gab es vier Abbrüche kurz hintereinander - hierzu nochmal das ungekürzte fhem verbose 5 Log für den Zeitraum:

2018.03.16 10:33:08 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:33:08 5: AC_Strom: Write: k
2018.03.16 10:33:08 5: SW: k

2018.03.16 10:33:18 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:33:18 5: AC_Strom: Write: k
2018.03.16 10:33:18 5: SW: k

2018.03.16 10:33:28 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:33:28 5: AC_Strom: Write: k
2018.03.16 10:33:28 5: SW: k

2018.03.16 10:33:30 3: AC_Strom: device didn't reply to k(eeepAlive). Is the right sketch flashed?
2018.03.16 10:33:30 1: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.03.16 10:33:30 1: 192.168.8.69:80 reappeared (AC_Strom)
2018.03.16 10:33:30 3: AC_Strom: device maybe not initialized yet, set timer to send h(ello
2018.03.16 10:33:33 3: AC_Strom: device sent hello, V2.26, 0,1,2,5,6,7
2018.03.16 10:33:33 4: AC_Strom: device reported firmware 2.26
2018.03.16 10:33:33 3: AC_Strom: sending configuration from attributes to device
2018.03.16 10:33:33 3: AC_Strom: ConfigureDevice calls Attr with pinD5 falling pullup 30
2018.03.16 10:33:33 5: AC_Strom: Write: 5,2,1,30a
2018.03.16 10:33:33 5: SW: 5,2,1,30a

2018.03.16 10:33:33 3: AC_Strom: ConfigureDevice calls Attr with interval 2 300 1 1
2018.03.16 10:33:33 5: AC_Strom: Write: 2,300,1,1i
2018.03.16 10:33:33 5: SW: 2,300,1,1i

2018.03.16 10:33:33 4: AC_Strom: device sent time: T 74773060 boot at 560^M
2018.03.16 10:33:33 3: AC_Strom: unparseable message from device: P5 falling pullup min 30^M
2018.03.16 10:33:33 5: AC_Strom: Pin 5 debug: adding 1 to long count 6726 and interpolated count 6726
2018.03.16 10:33:33 4: AC_Strom: Pin 5 (pin5) Cnt 696 lCnt 6727 iCnt 6727 (diff 1) in 143.070s, Rej 0, Avg 4810ms, result 0.210
2018.03.16 10:33:33 5: AC_Strom: interval 10:31:10 until 10:33:33
2018.03.16 10:33:33 5: AC_Strom: set readings power5 to 0.210, timeDiff5 to 143070 and countDiff5 to 1
2018.03.16 10:33:33 5: AC_Strom: Device Time 74774.566, Drift 1.407s in 26031.407s, 0.01%
2018.03.16 10:33:37 3: AC_Strom: device: defined P5 falling pullup min 30^M
2018.03.16 10:33:38 3: AC_Strom: device: intervals set to 2 300 1 1^M
2018.03.16 10:33:40 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:33:40 5: AC_Strom: Write: k
2018.03.16 10:33:40 5: SW: k

2018.03.16 10:33:50 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:33:50 5: AC_Strom: Write: k
2018.03.16 10:33:50 5: SW: k

2018.03.16 10:34:00 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:34:00 5: AC_Strom: Write: k
2018.03.16 10:34:00 5: SW: k

2018.03.16 10:34:02 3: AC_Strom: device didn't reply to k(eeepAlive). Is the right sketch flashed?
2018.03.16 10:34:02 1: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.03.16 10:34:02 1: 192.168.8.69:80 reappeared (AC_Strom)
2018.03.16 10:34:02 3: AC_Strom: device maybe not initialized yet, set timer to send h(ello
2018.03.16 10:34:02 3: AC_Strom: unparseable message from device: a^M
2018.03.16 10:34:02 3: AC_Strom: device sent hello, V2.26, 0,1,2,5,6,7
2018.03.16 10:34:02 4: AC_Strom: device reported firmware 2.26
2018.03.16 10:34:02 3: AC_Strom: sending configuration from attributes to device
2018.03.16 10:34:02 3: AC_Strom: ConfigureDevice calls Attr with pinD5 falling pullup 30
2018.03.16 10:34:02 5: AC_Strom: Write: 5,2,1,30a
2018.03.16 10:34:02 5: SW: 5,2,1,30a

2018.03.16 10:34:02 3: AC_Strom: ConfigureDevice calls Attr with interval 2 300 1 1
2018.03.16 10:34:02 5: AC_Strom: Write: 2,300,1,1i
2018.03.16 10:34:02 5: SW: 2,300,1,1i

2018.03.16 10:34:02 4: AC_Strom: device sent time: T 74805207 boot at 560^M
2018.03.16 10:34:02 3: AC_Strom: unparseable message from device: P5 falling pullup min 30^M
2018.03.16 10:34:07 3: AC_Strom: device: defined P5 falling pullup min 30^M
2018.03.16 10:34:07 3: AC_Strom: device: intervals set to 2 300 1 1^M
2018.03.16 10:34:12 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:34:12 5: AC_Strom: Write: k
2018.03.16 10:34:12 5: SW: k

2018.03.16 10:34:22 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:34:22 5: AC_Strom: Write: k
2018.03.16 10:34:22 5: SW: k

2018.03.16 10:34:32 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:34:32 5: AC_Strom: Write: k
2018.03.16 10:34:32 5: SW: k

2018.03.16 10:34:34 3: AC_Strom: device didn't reply to k(eeepAlive). Is the right sketch flashed?
2018.03.16 10:34:34 1: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.03.16 10:34:35 1: 192.168.8.69:80 reappeared (AC_Strom)
2018.03.16 10:34:35 3: AC_Strom: device maybe not initialized yet, set timer to send h(ello
2018.03.16 10:34:35 3: AC_Strom: device sent hello, V2.26, 0,1,2,5,6,7
2018.03.16 10:34:35 4: AC_Strom: device reported firmware 2.26
2018.03.16 10:34:35 3: AC_Strom: sending configuration from attributes to device
2018.03.16 10:34:35 3: AC_Strom: ConfigureDevice calls Attr with pinD5 falling pullup 30
2018.03.16 10:34:35 5: AC_Strom: Write: 5,2,1,30a
2018.03.16 10:34:35 5: SW: 5,2,1,30a

2018.03.16 10:34:35 3: AC_Strom: ConfigureDevice calls Attr with interval 2 300 1 1
2018.03.16 10:34:35 5: AC_Strom: Write: 2,300,1,1i
2018.03.16 10:34:35 5: SW: 2,300,1,1i

2018.03.16 10:34:35 4: AC_Strom: device sent time: T 74837316 boot at 560^M
2018.03.16 10:34:35 3: AC_Strom: unparseable message from device: P5 falling pullup min 30^M
2018.03.16 10:34:39 3: AC_Strom: device: defined P5 falling pullup min 30^M
2018.03.16 10:34:39 3: AC_Strom: device: intervals set to 2 300 1 1^M
2018.03.16 10:34:45 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:34:45 5: AC_Strom: Write: k
2018.03.16 10:34:45 5: SW: k

2018.03.16 10:34:55 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:34:55 5: AC_Strom: Write: k
2018.03.16 10:34:55 5: SW: k

2018.03.16 10:34:57 3: AC_Strom: device didn't reply to k(eeepAlive). Is the right sketch flashed?
2018.03.16 10:34:57 1: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.03.16 10:34:57 1: 192.168.8.69:80 reappeared (AC_Strom)
2018.03.16 10:34:57 3: AC_Strom: device maybe not initialized yet, set timer to send h(ello
2018.03.16 10:34:57 3: AC_Strom: unparseable message from device: H^M
2018.03.16 10:34:57 3: AC_Strom: device sent hello, V2.26, 0,1,2,5,6,7
2018.03.16 10:34:57 4: AC_Strom: device reported firmware 2.26
2018.03.16 10:34:57 3: AC_Strom: sending configuration from attributes to device
2018.03.16 10:34:57 3: AC_Strom: ConfigureDevice calls Attr with pinD5 falling pullup 30
2018.03.16 10:34:57 5: AC_Strom: Write: 5,2,1,30a
2018.03.16 10:34:57 5: SW: 5,2,1,30a

2018.03.16 10:34:57 3: AC_Strom: ConfigureDevice calls Attr with interval 2 300 1 1
2018.03.16 10:34:57 5: AC_Strom: Write: 2,300,1,1i
2018.03.16 10:34:57 5: SW: 2,300,1,1i

2018.03.16 10:34:57 4: AC_Strom: device sent time: T 74859513 boot at 560^M
2018.03.16 10:34:57 3: AC_Strom: unparseable message from device: P5 falling pullup min 30^M
2018.03.16 10:34:57 3: AC_Strom: device: defined P5 falling pullup min 30^M
2018.03.16 10:34:57 3: AC_Strom: device: intervals set to 2 300 1 1^M
2018.03.16 10:35:07 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:35:07 5: AC_Strom: Write: k
2018.03.16 10:35:07 5: SW: k

2018.03.16 10:35:17 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:35:17 5: AC_Strom: Write: k
2018.03.16 10:35:17 5: SW: k

2018.03.16 10:35:27 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:35:27 5: AC_Strom: Write: k
2018.03.16 10:35:27 5: SW: k

2018.03.16 10:35:37 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:35:37 5: AC_Strom: Write: k
2018.03.16 10:35:37 5: SW: k

2018.03.16 10:35:38 5: AC_Strom: Pin 5 debug: adding 1 to long count 6727 and interpolated count 6727
2018.03.16 10:35:38 4: AC_Strom: Pin 5 (pin5) Cnt 697 lCnt 6728 iCnt 6728 (diff 1) in 126.528s, Rej 1, Avg 6363ms, result 0.237
2018.03.16 10:35:38 5: AC_Strom: interval 10:33:31 until 10:35:38
2018.03.16 10:35:38 5: AC_Strom: set readings power5 to 0.237, timeDiff5 to 126528 and countDiff5 to 1
2018.03.16 10:35:38 5: AC_Strom: Device Time 74900.566, Drift 0.325s in 26156.325s, 0.00%
2018.03.16 10:35:47 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:35:47 5: AC_Strom: Write: k
2018.03.16 10:35:47 5: SW: k

2018.03.16 10:35:57 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:35:57 5: AC_Strom: Write: k
2018.03.16 10:35:57 5: SW: k

2018.03.16 10:36:07 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:36:07 5: AC_Strom: Write: k
2018.03.16 10:36:07 5: SW: k

2018.03.16 10:36:17 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:36:17 5: AC_Strom: Write: k
2018.03.16 10:36:17 5: SW: k

2018.03.16 10:36:27 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:36:27 5: AC_Strom: Write: k
2018.03.16 10:36:27 5: SW: k

2018.03.16 10:36:37 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:36:37 5: AC_Strom: Write: k
2018.03.16 10:36:37 5: SW: k

2018.03.16 10:36:47 5: AC_Strom: sending k(eepAlive) to device
2018.03.16 10:36:47 5: AC_Strom: Write: k
2018.03.16 10:36:47 5: SW: k
...

Gruß
Tobias
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 18 März 2018, 15:07:51
Hallo,

anbei ein neuerer Entwicklungsstand.
@Tobias: kannst Du parallel auch einen Wireshark mitlaufen lassen?
Falls Deine Fritzbox keine Informationen zu WLAN Disconnects liefert, dann würde man im Packet-Dump am besten sehen, wer die Verbindung beendet.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: tpm88 am 19 März 2018, 09:38:53
Hallo Stefan,

habe den neuen Stand auf Basis 2.31 eingespielt.

Das FritzBox Log hat bei den beobachteten DISCONNECT/CONNECT Ereignissen keine WLAN Ab-/Anmeldung gemeldet. Habe daher jetzt einen tcpdump aufgesetzt. Bisher gab es aber noch keinen neuen Verbindungsabbruch.

Hier für dich noch zur Info das verbose 5 Log vom FHEM Start mit v 2.31 - die doppelte Antwort auf "hello" hängt wohl mit verbose=5 zusammen, oder?

2018.03.19 08:57:02 3: AC_Strom: Notify called with events: INITIALIZED, open device and set timer to send hello to device
2018.03.19 08:57:02 5: AC_Strom: ArduCounter_Open trying to open connection
2018.03.19 08:57:02 3: Opening AC_Strom device 192.168.8.69:80
2018.03.19 08:57:02 3: AC_Strom device opened
2018.03.19 08:57:02 5: AC_Strom: ArduCounter_Open succeeded - set timer to send hello
...
2018.03.19 08:57:08 0: Server started with 201 defined entities (fhem.pl:16403/2018-03-13 perl:5.020002 os:linux user:fhem pid:2884)
2018.03.19 08:57:08 3: CUL_HM set sd_Test statusRequest
2018.03.19 08:57:08 3: AC_Strom: sending h(ello) to device to ask for version
2018.03.19 08:57:08 5: SW: h

2018.03.19 08:57:09 4: AC_Strom: device reported firmware 2.31 on ESP8266 compiled Mar 18 2018 17:24:08
2018.03.19 08:57:09 3: AC_Strom: device sent Hello message, V2.31 on ESP8266 compiled Mar 18 2018 17:24:08 0,1,2,5,6,7
2018.03.19 08:57:09 4: AC_Strom: device sent time: T 55780733 boot at 560^M
2018.03.19 08:57:09 4: AC_Strom: device sent config for pin 5: 5 falling min pullup
2018.03.19 08:57:09 4: AC_Strom: device reported firmware 2.31 on ESP8266 compiled Mar 18 2018 17:24:08
2018.03.19 08:57:09 3: AC_Strom: device sent Hello message, V2.31 on ESP8266 compiled Mar 18 2018 17:24:08 0,1,2,5,6,7
2018.03.19 08:57:09 4: AC_Strom: device sent time: T 55787409 boot at 560^M
2018.03.19 08:57:09 4: AC_Strom: device sent config for pin 5: 5 falling min pullup

2018.03.19 08:57:11 5: AC_Strom: ConfigureDevice: got running config - comparing
2018.03.19 08:57:11 5: AC_Strom: ConfigureDevice: interval attr not set - take default 30 60 2 2
2018.03.19 08:57:11 5: AC_Strom: ConfigureDevice: comparing interval
2018.03.19 08:57:11 5: AC_Strom: ConfigureDevice: interval does not match (>2 300 1 1< vs >30 60 2 2< from attr)
2018.03.19 08:57:11 3: AC_Strom: sending configuration from attributes to device
2018.03.19 08:57:11 3: AC_Strom: ConfigureDevice calls Attr with interval 2 300 1 1
2018.03.19 08:57:11 5: SW: 2,300,1,1i

2018.03.19 08:57:11 3: AC_Strom: ConfigureDevice calls Attr with pinD5 falling pullup 30
2018.03.19 08:57:11 5: SW: 5,2,1,30a

2018.03.19 08:57:11 3: AC_Strom: device: intervals set to 2 300 1 1^M
2018.03.19 08:57:11 3: AC_Strom: device: defined P5 falling pullup min 30^M

2018.03.19 08:57:12 5: AC_Strom: sending k(eepAlive) to device
2018.03.19 08:57:12 5: SW: k

2018.03.19 08:57:22 5: AC_Strom: sending k(eepAlive) to device
2018.03.19 08:57:22 5: SW: k

2018.03.19 08:57:32 5: AC_Strom: sending k(eepAlive) to device
2018.03.19 08:57:32 5: SW: k

2018.03.19 08:57:42 5: AC_Strom: sending k(eepAlive) to device
2018.03.19 08:57:42 5: SW: k

2018.03.19 08:57:47 5: AC_Strom: Pin 5 debug: adding 1 to long count 10266 and interpolated count 10266
2018.03.19 08:57:47 4: AC_Strom: Pin 5 (pin5) Cnt 960 lCnt 10267 iCnt 10267 (diff 1) in 108.302s, Rej 0, Avg 4530ms, result 0.277
2018.03.19 08:57:47 5: AC_Strom: interval 08:55:58 until 08:57:47
2018.03.19 08:57:47 5: AC_Strom: set readings power5 to 0.277, timeDiff5 to 108302 and countDiff5 to 1
2018.03.19 08:57:47 5: AC_Strom: Initialize clock offset to 1521390441.52977
2018.03.19 08:57:47 5: AC_Strom: Device Time 55825.678, Drift 0.000s in 0.000s
...

Und hier noch ein get info nach dem Start:

fhem> get AC_Strom info

Status: ArduCounter V2.31 on ESP8266 compiled Mar 18 2018 17:24:08

I2 300 1 1

P5 falling pullup min 30, R5 C963 D0/0 T0 N56269378 X0 S0

M Next report in 289 Milliseconds

Gruß
Tobias
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 19 März 2018, 19:52:55
Hallo Tobias,

das doppelte Hello ist ein Timing-Problem.
Das Modul wartet nach dem Starten und Öffnen der Verbindung 3 Sekunden ob sich ein Gerät mit "Hello" oder "Started" meldet. Danach fragt es explizit nach.
Wenn danach doch noch ein Hello gelesen wird, kommt es zwei mal. Das stört aber nicht weiter und wird bei verbose < 4 auch nicht angezeigt.
Du kannst aber auch das Attribut helloSendDelay auf z.B. 15 setzen, dann wartet das Modul 15 Sekunden...

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: tpm88 am 23 März 2018, 20:07:52
@Tobias: kannst Du parallel auch einen Wireshark mitlaufen lassen?
Falls Deine Fritzbox keine Informationen zu WLAN Disconnects liefert, dann würde man im Packet-Dump am besten sehen, wer die Verbindung beendet.

Hallo Stefan,

nach fast einer Woche ohne Aussetzer habe ich jetzt mit großer Wahrscheinlichkeit die Ursache gefunden. Unsere Mikrowelle! Diese ist nur selten in Betrieb und verursacht offenbar auch nicht immer dieses Problem. Bei den letzen beiden kurzen Disconnects gestern war sie aber gerade in Betrieb.
Nach meinem Urlaub werde ich schauen, ob ich die Aussetzer reproduzieren kann.

Leider kann ich hierzu (noch) kein Wireshark Protokoll liefern, weil mein Mitschnitt nur 48h gelaufen war. Ich war davon ausgegangen, daß er nach 48h die stündlichen Logs zyklisch überschreibt, aber das war nicht der Fall.

Können bei den kurzen Aussetzern die Zählung von Impulsen verlorengehen oder kann der Sketch damit umgehen?

Ansonsten funktioniert der Zähler auf dem wemos mit der letzten Version top. Kein Vergleich zum PulseCounter und ESPEasy mit dem ich immer wieder falsche Impulse hatte.

Gruß
Tobias
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 24 März 2018, 09:10:54
Hallo Tobias,

Vielen Dank für das Feedback!

Wenn die WLAN-Verbindung unterbrochen ist, zählt der Arducounter normal weiter. Nur wenn die Verbindung in dem Moment weg ist, wenn der Arducounter seinen aktuellen Stand und die Impulse im letzten Intervall an Fhem berichten möchte, kann derzeit etwas verloren gehen.
Da baue ich noch etwas ein um den Bericht dann nachzuholen sobald die Verbindung wieder da ist. Nur bei längeren Unterbrechungen wird das nicht klappen.

Momentan bin ich dabei Firmware-Updates direkt aus Fhem und über WLAN zu ermöglichen.

Gruß
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: tpm88 am 24 März 2018, 11:14:39
Hallo Stefan,

jetzt habe ich doch einen tcpdump mit einem Disconnect/Connect von heute morgen.

Hierbei ist der wemos: 192.168.8.69
Und der RPI mit FHEM: 192.168.8.46 (rpi3)

Leider hat der tcpdump keine Zeitstempel - ich denke aber interessant wird es ab Frame 3490. Davor gab es nur ein paar TCP Retransmits.

Danke für die Analyse. Gruß
Tobias
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 25 März 2018, 21:36:33
Hallo Tobias,

Mit tcpdump -nr pcapfile wird es inkl. Zeitstempel angezeigt.
Sieht schon nach gestörter WLAN Verbindung aus.

Gruß
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 21 April 2018, 23:39:14
Hallo Stefan
Kann man den Arduino/Adrucounter auch remote, mittels ser2net, an FHEM anschliessen. Also direkt ohne esplink?
Etwa so Arduino -> Pi -> ser2net -> (w)lan -> FHEM

Gruss birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 22 April 2018, 09:28:15
Hallo birdy,

der alte ArduCounter geht von einer seriellen Verbindung aus.
In der neuen Version, die dann auch auf dem ESP laufen kann, kann man beim Define auch IP-Adresse und Port angeben.
Dann versucht Fhem direkt per TCP mit dem Zähler zu reden.
Unter der Adresse kann dann entweder direkt ein ESP erreichbar sein oder auch ein Umsetzer:

Fhem - WLAN - ESP8266
oder
Fhem - WLAN - ser2Net - Arduino

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: birdy am 22 April 2018, 21:01:11
Danke Stefan

Ab welcher Version sprechen wir von...
... der neuen Version, die dann auch auf dem ESP laufen kann......
Gruss
birdy
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 22 April 2018, 21:46:24
Hallo,

Die Version für den ESP ist noch nicht eingecheckt. Der letzte Abstand, den ich gepostet habe, ist vom 18.3.
(Hier im Thread gepostet)

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 05 Mai 2018, 12:35:55
Hallo,

anbei der aktuelle Entwicklungsstand des ArduCounters für Arduino und ESP8266.
Ich habe einiges im Modul und im Sketch umgebaut, damit es sowohl mit einem Uno / Nano als auch mit einem ESP funktioniert. Für Kommunikation per TCP sind ein paar neue Features hinzugekommen:

- bei Verbindung per TCP sendet das Modul regelmäßig eine Keepalive-Anfrage an das Zähler-Board um zu prüfen, ob die TCP- bzw. WLAN-Verbindung noch steht. Falls keine Antwort kommt, wird die Verbindung geschlossen und versucht sie neu aufzubauen.
- Auf Board-Seite wird bei Verbindungen über TCP bemerkt wenn die TCP-Verbindung unterbrochen wurde. Dann wird die nächste Meldung des Zählerstandes bis zu drei mal verzögert und weitergezählt.
- Das Modul versucht verpasste Zählerstands-Meldungen zu rekonstruieren.
- Die Pin-History und Debug-Meldungen bei jedem Pegelwechsel an einem Input können per set devVerbose eingestellt werden.

Ich hoffe dass noch alles so wie vorher funktioniert und keine neuen Fehler im Code sind. Da ich aber sehr viel umgebaut habe, ist das nicht auszuschließen. Es wäre daher schön wenn ich ein paar Test-Feedbacks bekomme.

Für den ESP muss das Board noch über die Arduino IDE geflasht werden. Auch die eigene WLAN SSID und das WLAN-Passwort müssen noch manuell in den Code eingetragen werden.

Gruss / vielen Dank
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: tpm88 am 05 Mai 2018, 22:18:29
Hallo Stefan,

danke für die TCP-Erweiterungen - genau mein Anwendungsfall ;-)

Allererstes Feedback: Zähler 2.35 zählt auf meinem Wemos D1 ...

FHEM-Log:
2018.05.05 21:58:38 3: AC_Strom: disable attribute removed
2018.05.05 21:58:38 3: Opening AC_Strom device 192.168.8.69:80
2018.05.05 21:58:38 3: AC_Strom device opened
2018.05.05 21:58:38 3: AC_Strom: device sent hello: ArduCounter V2.35 on ESP8266 ESP8266_WEMOS_D1MINI compiled May  5 2018 21:52:33 Hello, pins 0,1,2,5,6,7 available T99636,0 B559,0
2018.05.05 21:58:39 3: AC_Strom: sending configuration from attributes to device
2018.05.05 21:58:39 3: AC_Strom: ConfigureDevice calls Attr with pinD5 falling pullup 30
2018.05.05 21:58:39 3: AC_Strom: ConfigureDevice calls Attr with interval 2 300 1 1
2018.05.05 21:58:39 3: AC_Strom: device: defined P5 falling pullup min 30
2018.05.05 21:58:39 3: AC_Strom: device: intervals set to 2 300 1 1
2018.05.05 22:01:55 3: AC_Strom: pin 5 (pin5) interpolating for 1067.29 secs until boot, 10 estimated pulses (before 1 in 108133 ms, now 1 in 108133 ms, avg ratio 0.00924787067777644 p/s)

Und das zugehörige Log:

2018-05-05_21:37:48 AC_Strom power5: 0.333
2018-05-05_21:37:48 AC_Strom pin5: 44820
2018-05-05_21:37:48 AC_Strom long5: 54081
2018-05-05_21:37:48 AC_Strom reject5: 12683
2018-05-05_21:37:48 AC_Strom TotalKWh: 72576.3416665697
2018-05-05_21:39:12 AC_Strom power5: 0.350
2018-05-05_21:39:12 AC_Strom pin5: 44821
2018-05-05_21:39:12 AC_Strom long5: 54082
2018-05-05_21:39:12 AC_Strom reject5: 12683
2018-05-05_21:39:12 AC_Strom TotalKWh: 72576.349999903
==== STOP v 2.31

==== Beginn v 2.35
2018-05-05_22:01:55 AC_Strom power5: 0.277
2018-05-05_22:01:55 AC_Strom reject5: 12684
2018-05-05_22:01:55 AC_Strom timeDiff5: 108133
2018-05-05_22:01:55 AC_Strom countDiff5: 1
2018-05-05_22:01:55 AC_Strom pin5: 2
2018-05-05_22:01:55 AC_Strom long5: 54084
2018-05-05_22:01:55 AC_Strom seq5: 1
2018-05-05_22:01:55 AC_Strom TotalKWh: 72576.3666665697
2018-05-05_22:03:43 AC_Strom power5: 0.278
2018-05-05_22:03:43 AC_Strom reject5: 12684
2018-05-05_22:03:43 AC_Strom timeDiff5: 107814
2018-05-05_22:03:43 AC_Strom countDiff5: 1
2018-05-05_22:03:43 AC_Strom pin5: 3
2018-05-05_22:03:43 AC_Strom long5: 54085
2018-05-05_22:03:43 AC_Strom seq5: 2
2018-05-05_22:03:43 AC_Strom TotalKWh: 72576.374999903
2018-05-05_22:05:29 AC_Strom power5: 0.280
2018-05-05_22:05:29 AC_Strom reject5: 12684
2018-05-05_22:05:29 AC_Strom timeDiff5: 107098
2018-05-05_22:05:29 AC_Strom countDiff5: 1
2018-05-05_22:05:29 AC_Strom pin5: 4
2018-05-05_22:05:29 AC_Strom long5: 54086
2018-05-05_22:05:29 AC_Strom seq5: 3
2018-05-05_22:05:29 AC_Strom TotalKWh: 72576.3833332364

Kurze Frage zu den neuen Readings: timeDiff ist wohl selbsterklärend. Welche genaue Bedeutung haben countDiff und seq? In der CommandRef fehlen sie noch...

Gruß,
Tobias
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 06 Mai 2018, 11:27:51
Hallo Tobias,

jede Zählermeldung vom Board an Fhem hat nun eine Sequenz-Nummer. Damit kann das Modul erkennen, wenn es eine Meldung verpasst hat. Das ist das Reading seq.
CountDiff ist das Delte zur letzten Zählermeldung. Dieses Delta wird zusammen mit TimeDiff zur Berechnung des Verbrauchs verwendet.
Ich werd's in der Commandref noch ergänzen. Danke für den Hinweis.
Sind die anderen Werte sonst in Ordnung?

Gruss und vielen Dank fürs Testen
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: tpm88 am 06 Mai 2018, 12:06:57
Hallo Stefan,

danke, bisher sieht alles einwandfrei aus. Ich möchte noch ein wenig testen und Fehler ( TCP / WLAN - Abbrüche ) simulieren, das schaffe ich aber erst frühestens nächstes Wochenende. Bis dahin gleiche ich den Stromzähler noch einmal ab und sehe dann, ob innerhalb einer Woche keine Impulse verloren gehen.

Ich vermute mal, daß die Attribute keepAliveDelay, keepAliveTimeout, nextOpenDelay und openTimeout mit Default Werten vorbelegt sind. Als internal ( mit Default 60s ) habe ich nur nextOpenDelay gefunden. Wäre super, wenn du die Defaults in der CommandRef ergänzen könntest.

VG
Tobias
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: tpm88 am 11 Mai 2018, 21:32:16
Hallo Stefan,

eben ist das neue ArduCounter Modul Amok gelaufen. Der Status des Wemos ist innerhalb ca 3 Minuten etwa 820x ununterbrochen von CONNECTED auf DISCONNECTED gesprungen. Ein Notify schickt mir hierzu jedesmal eine Push Nachricht (1740 Messages...). Nach einem manuellen Reboot des Wemos hat sich das System wieder gefangen. Was das ganze ausgelöst hat, kann ich nicht sagen. Vielleicht kannst Du aus den Logs etwas herauslesen.

AC Log:

2018-05-11_20:59:12 AC_Strom power5: 0.337
2018-05-11_20:59:12 AC_Strom reject5: 14418
2018-05-11_20:59:12 AC_Strom timeDiff5: 89071
2018-05-11_20:59:12 AC_Strom countDiff5: 1
2018-05-11_20:59:12 AC_Strom pin5: 5341
2018-05-11_20:59:12 AC_Strom long5: 59423
2018-05-11_20:59:12 AC_Strom seq5: 220
2018-05-11_20:59:12 AC_Strom TotalKWh: 72620.5583332261
2018-05-11_21:00:52 AC_Strom power5: 0.302
2018-05-11_21:00:52 AC_Strom reject5: 14418
2018-05-11_21:00:52 AC_Strom timeDiff5: 99247
2018-05-11_21:00:52 AC_Strom countDiff5: 1
2018-05-11_21:00:52 AC_Strom pin5: 5342
2018-05-11_21:00:52 AC_Strom long5: 59424
2018-05-11_21:00:52 AC_Strom seq5: 221
2018-05-11_21:00:52 AC_Strom TotalKWh: 72620.5666665594
2018-05-11_21:02:29 AC_Strom DISCONNECTED
2018-05-11_21:02:29 AC_Strom CONNECTED
2018-05-11_21:02:29 AC_Strom DISCONNECTED
2018-05-11_21:02:30 AC_Strom CONNECTED
2018-05-11_21:02:30 AC_Strom DISCONNECTED
2018-05-11_21:02:30 AC_Strom CONNECTED
2018-05-11_21:02:30 AC_Strom DISCONNECTED
2018-05-11_21:02:31 AC_Strom CONNECTED
2018-05-11_21:02:31 AC_Strom DISCONNECTED
2018-05-11_21:02:31 AC_Strom CONNECTED
2018-05-11_21:02:31 AC_Strom DISCONNECTED
2018-05-11_21:02:31 AC_Strom CONNECTED
2018-05-11_21:02:31 AC_Strom DISCONNECTED
2018-05-11_21:02:31 AC_Strom CONNECTED
2018-05-11_21:02:31 AC_Strom DISCONNECTED
2018-05-11_21:02:31 AC_Strom CONNECTED
2018-05-11_21:02:31 AC_Strom DISCONNECTED
2018-05-11_21:02:31 AC_Strom CONNECTED
2018-05-11_21:02:31 AC_Strom DISCONNECTED
2018-05-11_21:02:31 AC_Strom CONNECTED
2018-05-11_21:02:32 AC_Strom DISCONNECTED
2018-05-11_21:02:32 AC_Strom CONNECTED
2018-05-11_21:02:32 AC_Strom DISCONNECTED
2018-05-11_21:02:32 AC_Strom CONNECTED
2018-05-11_21:02:32 AC_Strom DISCONNECTED
2018-05-11_21:02:32 AC_Strom CONNECTED
2018-05-11_21:02:32 AC_Strom DISCONNECTED
2018-05-11_21:02:32 AC_Strom CONNECTED
2018-05-11_21:02:32 AC_Strom DISCONNECTED
2018-05-11_21:02:32 AC_Strom CONNECTED
2018-05-11_21:02:32 AC_Strom DISCONNECTED
2018-05-11_21:02:32 AC_Strom CONNECTED
2018-05-11_21:02:32 AC_Strom DISCONNECTED
2018-05-11_21:02:32 AC_Strom CONNECTED
2018-05-11_21:02:33 AC_Strom DISCONNECTED
...
2018-05-11_21:04:21 AC_Strom DISCONNECTED
2018-05-11_21:04:21 AC_Strom CONNECTED
2018-05-11_21:04:21 AC_Strom DISCONNECTED
2018-05-11_21:04:21 AC_Strom CONNECTED
2018-05-11_21:04:21 AC_Strom DISCONNECTED
2018-05-11_21:04:21 AC_Strom CONNECTED
2018-05-11_21:04:21 AC_Strom DISCONNECTED
2018-05-11_21:04:21 AC_Strom CONNECTED
2018-05-11_21:04:21 AC_Strom DISCONNECTED
2018-05-11_21:04:21 AC_Strom CONNECTED
2018-05-11_21:04:22 AC_Strom DISCONNECTED
2018-05-11_21:04:22 AC_Strom CONNECTED
2018-05-11_21:04:22 AC_Strom DISCONNECTED
2018-05-11_21:04:22 AC_Strom CONNECTED
2018-05-11_21:04:22 AC_Strom DISCONNECTED
2018-05-11_21:04:22 AC_Strom CONNECTED
2018-05-11_21:04:22 AC_Strom DISCONNECTED
2018-05-11_21:04:22 AC_Strom CONNECTED
2018-05-11_21:04:22 AC_Strom DISCONNECTED
2018-05-11_21:04:22 AC_Strom CONNECTED
2018-05-11_21:04:22 AC_Strom DISCONNECTED
2018-05-11_21:04:22 AC_Strom CONNECTED
2018-05-11_21:04:22 AC_Strom DISCONNECTED
2018-05-11_21:05:27 AC_Strom CONNECTED
2018-05-11_21:07:40 AC_Strom power5: 0.386
2018-05-11_21:07:40 AC_Strom reject5: 14418
2018-05-11_21:07:40 AC_Strom timeDiff5: 77777
2018-05-11_21:07:40 AC_Strom countDiff5: 1
2018-05-11_21:07:40 AC_Strom pin5: 2
2018-05-11_21:07:40 AC_Strom long5: 59426
2018-05-11_21:07:40 AC_Strom seq5: 1
2018-05-11_21:07:40 AC_Strom TotalKWh: 72620.5833332261
2018-05-11_21:09:00 AC_Strom power5: 0.378
2018-05-11_21:09:00 AC_Strom reject5: 14418
2018-05-11_21:09:00 AC_Strom timeDiff5: 79390
2018-05-11_21:09:00 AC_Strom countDiff5: 1
2018-05-11_21:09:00 AC_Strom pin5: 3
2018-05-11_21:09:00 AC_Strom long5: 59427
2018-05-11_21:09:00 AC_Strom seq5: 2
2018-05-11_21:09:00 AC_Strom TotalKWh: 72620.5916665594

FHEM Log:

2018.05.11 21:02:04 3: AC_Strom: device didn't reply to k(eeepAlive). Is the right sketch flashed?
2018.05.11 21:02:19 3: AC_Strom: device didn't reply to k(eeepAlive). Is the right sketch flashed?
2018.05.11 21:02:29 3: AC_Strom: device didn't reply to k(eeepAlive). Is the right sketch flashed?
2018.05.11 21:02:29 3: AC_Strom: no retries left, setting device to disconnected
2018.05.11 21:02:29 3: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.05.11 21:02:29 3: 192.168.8.69:80 reappeared (AC_Strom)
2018.05.11 21:02:29 3: AC_Strom: unparseable message from device: connection already busy
2018.05.11 21:02:29 3: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.05.11 21:02:30 3: 192.168.8.69:80 reappeared (AC_Strom)
2018.05.11 21:02:30 3: AC_Strom: unparseable message from device: connection already busy
2018.05.11 21:02:30 3: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.05.11 21:02:30 3: 192.168.8.69:80 reappeared (AC_Strom)
2018.05.11 21:02:30 3: AC_Strom: unparseable message from device: connection already busy
2018.05.11 21:02:30 3: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.05.11 21:02:31 3: 192.168.8.69:80 reappeared (AC_Strom)
2018.05.11 21:02:31 3: AC_Strom: unparseable message from device: connection already busy
2018.05.11 21:02:31 3: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.05.11 21:02:31 3: 192.168.8.69:80 reappeared (AC_Strom)
2018.05.11 21:02:31 3: AC_Strom: unparseable message from device: connection already busy
2018.05.11 21:02:31 3: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.05.11 21:02:31 3: 192.168.8.69:80 reappeared (AC_Strom)
2018.05.11 21:02:31 3: AC_Strom: unparseable message from device: connection already busy
2018.05.11 21:02:31 3: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.05.11 21:02:31 3: 192.168.8.69:80 reappeared (AC_Strom)
2018.05.11 21:02:31 3: AC_Strom: unparseable message from device: connection already busy
2018.05.11 21:02:31 3: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.05.11 21:02:31 3: 192.168.8.69:80 reappeared (AC_Strom)
2018.05.11 21:02:31 3: AC_Strom: unparseable message from device: connection already busy
2018.05.11 21:02:31 3: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.05.11 21:02:31 3: 192.168.8.69:80 reappeared (AC_Strom)
2018.05.11 21:02:31 3: AC_Strom: unparseable message from device: connection already busy
2018.05.11 21:02:31 3: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.05.11 21:02:31 3: 192.168.8.69:80 reappeared (AC_Strom)
2018.05.11 21:02:31 3: AC_Strom: unparseable message from device: connection already busy
2018.05.11 21:02:32 3: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.05.11 21:02:32 3: 192.168.8.69:80 reappeared (AC_Strom)
2018.05.11 21:02:32 3: AC_Strom: unparseable message from device: connection already busy
2018.05.11 21:02:32 3: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.05.11 21:02:32 3: 192.168.8.69:80 reappeared (AC_Strom)
2018.05.11 21:02:32 3: AC_Strom: unparseable message from device: connection already busy
2018.05.11 21:02:32 3: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.05.11 21:02:32 3: 192.168.8.69:80 reappeared (AC_Strom)
...
2018.05.11 21:04:22 3: AC_Strom: unparseable message from device: connection already busy
2018.05.11 21:04:22 3: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.05.11 21:04:22 3: 192.168.8.69:80 reappeared (AC_Strom)
2018.05.11 21:04:22 3: AC_Strom: unparseable message from device: connection already busy
2018.05.11 21:04:22 3: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.05.11 21:04:22 3: 192.168.8.69:80 reappeared (AC_Strom)
2018.05.11 21:04:22 3: AC_Strom: unparseable message from device: connection already busy
2018.05.11 21:04:22 3: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.05.11 21:04:22 3: 192.168.8.69:80 reappeared (AC_Strom)
2018.05.11 21:04:22 3: AC_Strom: unparseable message from device: connection already busy
2018.05.11 21:04:22 3: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.05.11 21:04:22 3: 192.168.8.69:80 reappeared (AC_Strom)
2018.05.11 21:04:22 3: AC_Strom: unparseable message from device: connection already busy
2018.05.11 21:04:22 3: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.05.11 21:04:22 3: 192.168.8.69:80 reappeared (AC_Strom)
2018.05.11 21:04:22 3: AC_Strom: unparseable message from device: connection already busy
2018.05.11 21:04:22 3: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.05.11 21:04:22 3: 192.168.8.69:80 reappeared (AC_Strom)
2018.05.11 21:04:22 3: AC_Strom: unparseable message from device: connection already busy
2018.05.11 21:04:22 3: 192.168.8.69:80 disconnected, waiting to reappear (AC_Strom)
2018.05.11 21:04:24 3: AC_Strom: device didn't reply to k(eeepAlive). Is the right sketch flashed?
2018.05.11 21:04:24 3: AC_Strom: no retries left, setting device to disconnected
2018.05.11 21:04:37 3: AC_Strom: sending h(ello) to device to ask for version
2018.05.11 21:05:27 3: 192.168.8.69:80 reappeared (AC_Strom)
2018.05.11 21:05:27 3: AC_Strom: device sent hello: ArduCounter V2.35 on ESP8266 ESP8266_WEMOS_D1MINI compiled May  5 2018 21:52:33
Hello, pins 0,1,2,5,6,7 available T38156,0 B561,0
2018.05.11 21:05:28 3: AC_Strom: sending configuration from attributes to device
2018.05.11 21:05:28 3: AC_Strom: ConfigureDevice calls Attr with interval 2 300 1 1
2018.05.11 21:05:28 3: AC_Strom: ConfigureDevice calls Attr with pinD5 falling pullup 30
2018.05.11 21:05:28 3: AC_Strom: device: intervals set to 2 300 1 1
2018.05.11 21:05:28 3: AC_Strom: device: defined P5 falling pullup min 30
2018.05.11 21:07:40 3: AC_Strom: pin 5 (pin5) interpolating for 237.60 secs until boot, 3 estimated pulses (before 1 in 77777 ms, no
w 1 in 77777 ms, avg ratio 0.0128572714298572 p/s)
2018.05.11 21:10:12 3: AC_Strom: device didn't reply to k(eeepAlive). Is the right sketch flashed?

Danke & Gruß
Tobias
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 12 Mai 2018, 10:53:10
Hallo Tobias,

Aus den Logs lese ich folgendes:
Das Fhem-Modul hat keine Antworten mehr vom Wemos D1 bekommen. Könnte am WLAN oder anderen Problemen gelegen haben. Das Modul hat daraufhin die TCP-Verbindung beendet und versucht sie neu zu öffnen.
Auf Seite des Wemos werden zwei TCP-Verbindungen verwaltet.
Die erste / primäre Verbindung kommuniziert mit Fhem. Die zweite ist nur dazu da einen weiteren Verbindungsversuch ordentlich abzuweisen. Dabei wird „connection already busy“ gesendet und die Verbindung geschlossen.
In Deinem Fall scheint der Wemos nicht mitbekommen zu haben, dass die erste Verbindung beendet wurde und dann kam Fhem nicht mehr ran ...
Ich denke da muss ich auf Geräteseite auch einen KeepAlive / Timeout für die Verbindung einbauen. Dann würde auch der Wemos die erste Verbindung wegwefen und die neue akzeptieren.
Zudem sollte das Modul nach einer „connection busy“-Meldung kurz warten.

Gruss
    Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 14 Mai 2018, 19:32:05
Hallo,

anbei eine neue Version zum Testen.
Das Modul teilt dem Device nun auch mit, wann die nächste keepalive-Nachricht zu erwarten ist. Wenn die zu lange ausbleibt, beendet auch das Device die TCP-Verbindung und wartet darauf, dass sie neu aufgebaut wird.

Gruss
   Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: tpm88 am 15 Mai 2018, 14:56:59
Hallo Stefan,

vielen Dank für die neue Version. Werde ich gerne testen, bin aber derzeit geschäftlich auswärts unterwegs. Kann also ein wenig dauern, da ich von remote den wemos nicht flashen kann...  8)

Ich melde mich...

Gruß
Tobias

Edit: Habe eben die v 2.36 eingespielt
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Takero am 27 Mai 2018, 10:49:59
Hallo Zusammen,

ich habe vor kurzem die Adapter in Fhem aktualisiert. So weit so gut.

Leider funktioniert seit dem der Counter meine S0 Schnittstelle nicht mehr. Davor funktionierte es tadellos.

Ich habe die aktuell Firmware des Arduino geflashed.

Meine config sieht wie folgt aus:

define AC ArduCounter /dev/ttyUSB0
attr AC factor 500
attr AC interval 10 300
attr AC pinD5 falling pullup
attr AC verboseReadings5
#attr AC userReadings Zaehler {ReadingsVal("AC","pinD5",0)/2000 }

get Info spukt das hier aus:

M Status: ArduCounter V2.05
normal interval 10000
max interval 300000
min interval 0
min count 0
pin 5 PCInt pin 21, iMode falling, no min len, count 0 (+0) in 177374 ms
Next report in 2603 Milliseconds
pulse history:
pin 5 start -7264 len 29 at 0 
pin 5 start -7235 len 746 at 1 
pin 5 start -6489 len 30 at 0 
pin 5 start -6459 len 738 at 1 
pin 5 start -5721 len 30 at 0 
pin 5 start -5691 len 742 at 1 
pin 5 start -4949 len 30 at 0 
pin 5 start -4919 len 741 at 1 
pin 5 start -4178 len 30 at 0 
pin 5 start -4148 len 742 at 1 
pin 5 start -3406 len 31 at 0 
pin 5 start -3375 len 741 at 1 
pin 5 start -2634 len 30 at 0 
pin 5 start -2604 len 739 at 1 
pin 5 start -1865 len 30 at 0 
pin 5 start -1835 len 710 at 1 
pin 5 start -1125 len 29 at 0 
pin 5 start -1096 len 659 at 1 
pin 5 start -437 len 29 at 0 

Ich habe auch schon versucht den PIN D5 manuell auf GND zu ziehen, dabei geschieht auch nichts.

Wo ist mein Fehler?

Ich könnte noch rising versuchen, aber dann müsste der zweite PIN vom S0 auf VCC oder irre ich?

Danke und viele Grüße,
Andreas
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 28 Mai 2018, 10:59:42
Hallo Andreas,

Welche Modulversion verwendest Du denn?
Sketch 2.05 ist der aus dem SVN. Hier im Thread findest Du eine deutlich neuere Version.

Am besten nimmst Du gleich die neue Version des Moduls und des Sketches hier aus dem Thread.
Die beiden Versionen müssen zusammen passen, sonst klappt es nicht.

Bitte gib doch nach falling pullup noch ein 20 als Mindestlänge an.
In der Pulse-History sieht man dass der Zähler durchaus Impulse sieht, die 30ms auf GND liegen.
Nur gezählt werden sie wohl nicht.
Das sollte mit der aktuellen Version und Angabe einer Mindestlänge kein Problem sein.

Gruß
    Stefan

Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Takero am 28 Mai 2018, 16:20:26
Hallo, vielen Dank für die Antwort. Konnte das Problem vorhin schon lösen. Es war wie die auch schreibst das Timing. Falling pullup 30 ist es bei mir.

B+G E-Tech Zähler.
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: Otto123 am 13 Juni 2018, 11:07:06
Hallo, vielen Dank für die Antwort. Konnte das Problem vorhin schon lösen. Es war wie die auch schreibst das Timing. Falling pullup 30 ist es bei mir.

B+G E-Tech Zähler.
Hallo Stefan,

irgendwie hat mir genau der Hinweis beim Update (habe es schon dreimal zurück gedreht) gefehlt. Mit der alten DEF (ohne das Timing) gab es keine Impulse mehr  :'(

Danke  ;)

So jetzt mal die ganz neue Version auf dem ESP testen  ;)

Gruß Otto
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 13 Juni 2018, 18:52:57
Hallo,

Dann ist da wohl ein Bug in der letzten eingecheckten Version.
Umso wichtiger wäre es mir dass die neue Version keine Probleme macht, bevor ich sie einchecke.
Sie sollte sowohl auf dem ESP als auch auf einem Arduino funktionieren.

In der neuen Version wird die Pulslänge übrigens immer geprüft. Falls sie nicht angegeben wurde, wird sie auf 2ms gesetzt. Das Problem sollte mit der neuen Version aus dem Thread also nicht mehr auftreten können.

Gruß
  Stefan
Titel: Antw:Stromzähler mit S0 Schnittstelle nochmals
Beitrag von: StefanStrobel am 04 September 2018, 18:42:42
Hallo,

ich habe die neue Version soeben eingecheckt.

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: sash.sc am 04 September 2018, 19:58:47
Läuft die Version auf nen esp mit wlan?

Habe mit espeasy und dem pulse counter so meine Probleme.

Bin da auf der Suche nach was neuen bzw anderem.

Gruß Sascha

Gesendet von meinem E6653 mit Tapatalk
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 04 September 2018, 21:05:16
Hallo Sascha,

Ich habe es bei mir auf einem Wemos D1 am Laufen.
Zum Flashen musst Du den Sketch (habe ich unter contrib/arduino abgelegt) für Deinen ESP neu übersetzen und von der Arduino IDE aus auf den ESP übertragen. Im Quellcode muss dabei Deine SSID und Passort eingetragen werden.

Gruß
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: sash.sc am 04 September 2018, 21:11:19
Besten Dank.

Gruß Sascha

Gesendet von meinem E6653 mit Tapatalk

Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: GlennDandy am 13 November 2018, 12:20:29
hallo, ich glaube ich bin unfähig die neue Version zuflashen bei mir erscheint immer

Arduino: 1.6.5 (Windows 8.1), Platine: "Arduino Nano, ATmega328"

WARNUNG: Bibliothek ESP8266WiFi behauptet auf [esp8266] Architektur(en) ausgeführt werden zu können und ist möglicherweise inkompatibel mit Ihrer derzeitigen Platine, welche auf [avr] Architektur(en) ausgeführt werden kann.



In file included from C:\Program Files (x86)\Arduino\libraries\ESP8266WiFi\src\ESP8266WiFi.h:33:0,
                 from C:\Program Files (x86)\Arduino\libraries\ESP8266WiFi\src\ESP8266WiFi.cpp:25:
C:\Program Files (x86)\Arduino\libraries\ESP8266WiFi\src\ESP8266WiFiType.h:26:19: fatal error: queue.h: No such file or directory
 #include <queue.h>
                   ^
compilation terminated.
Fehler beim Kompilieren.

  Dieser Report hätte mehr Informationen mit
  "Ausführliche Ausgabe während der Kompilierung"
  aktiviert in Datei > Einstellungen

übersehe ich irgendwo eine einstellung damit es auf dem Arduino Nano zuflashen geht?
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 13 November 2018, 17:35:09
Hallo,

bei mir compiliert ArduCounter 2.36 ohne Problem für den Nano. die ESP8266-Stellen stehen eigentlich immer in einem #ifdef ESP8266 #endif, so dass die beim compilieren ausgeblendet werden sollten wenn Du für einen Nano compilierst.
Ich verwende allerdings die Arduino IDE in Version 1.8.5

Für den Nano muss Du aber auch gar nicht selbst compilieren. Mit set <device> flash kanst Du die Nano-Firmware direkt aus Fhem heraus flashen. Die 2.36er Firmware ist eingecheckt (landet unter FHEM/Firmware).

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: heinemannj66 am 19 November 2018, 21:02:50
Hi,

ist der ArduCounter Sketch in der aktuellen Version auch auf einem Arduino Mega 2560 lauffähig?
Hatte den Sketch mal vor ~2,5 Jahren ausporbiert - bin leider vor die Pumpe gelaufen.

Ich benötige derzeit ~30 S0 Zähler - Tendenz steigend  8)

Gruß
Jörg
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 19 November 2018, 21:47:15
Hallo Jörg,

Der 2560 unterstützt leider nicht auf allen Pins einen Pin change interrupt
https://arduino.stackexchange.com/questions/9481/why-is-my-interrupt-code-not-working
Daran wird es dann wohl scheitern.
Mit 2 oder 3 Nanos parallel kommst Du eher weiter.

Gruß
    Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 09 Januar 2019, 21:07:36
Hallo,

da ich auch noch einen alten Ferraris-Zähler im Keller habe und mir die Auswertung per Funk mit meinem alten Sensor zu unzuverlässig wurde, habe ich die Idee mit Reflexlichtschranke an einem Arduino von Martin Kompf übernommen und die Firmware dazu in den ArduCounter integriert. (siehe https://www.kompf.de/tech/emeir.html)

Als Hardware muss man eigentlich nur einen Fototransistor und eine LED jeweils mit Vorwiderstand an einen Arduino Nano anlöten.
Bei der Gelegenheit habe ich ein paar Altlasten im ArduCounter-Modul behoben:

1) der Faktor zur Umrechnung der Anzahl Impulse in kWh oder andere Einheiten. Das war bisher sehr unschön gelöst. Als Alternative gibt es jetzt ein Attribut pulsesPerKWh. Das würde man bei einem Ferraris-Zähler typischerweise auf 75 setzen (75 Umdrehungen der Scheibe je kWh).

2) die Attribute zum Umbenennen von Readings etc. Die mussten bei Pin D4 z.B. readingNameCount4 lauten, auch wenn der Pin mit dem Attribut pinD4 definiert wurde. Unschön ist das für analoge Pins wie A7 geworden, wie man es für Ferraris-Zähler benötigt. Deshalb habe ich das geändert. Jetzt können die Zusatzattribute immer genauso benannt werden, wie auch der Pin definiert wurde. Bei Pin2 also readingNameCount2, bei PinD2 readingNameCountD2 und bei pinA7 readingNameCountA7.
Auch die Readings (sofern sie nicht mit einem Attribut umbenannt wurden) orientieren sich jetzt klar an der Definition. Wenn Pin 5 als pin5 definiert wurde, wird ein Reading power5 erzeugt. Wenn der gleiche Pin aber als PinD5 definiert wurde, wird auch das Reading powerD5 genannt.

Das könnte in einzelnen Fällen zu Änderungsbedarf führen, ist aber langfristig deutlich klarer. Sorry falls Ihr betroffen seid.

Für Ferraris-Counter, die über eine Reflexlichtschranke analog gelesen werden, gibt es noch das neue Attribut analogThresholds und um die Definition zu erleichtern, gibt es einen neuen get-Befehl, mit denen man die analogen Messwerte ansehen kann (get levels), allerdings liefert der nur werte, wenn vorher das Verbose-Level im Arduino auch mit dem Attribut devVerbose auf 20 gesetzt wurde.

Die Referenz sollte im angehängten Modul aktualisiert sein.

Vielleicht möchte es ja jemand nachbauen.

Gruss
   Stefan


Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Otto123 am 10 Januar 2019, 11:16:33
Hallo Stefan,

Du bist der Größte! Ich habe genau diese Lösung (mangels Fähigkeit) auf zwei Arduinos (eine Lichtschranke und ein Arducounter) nebeneinander/zusammen laufen.
Läuft bei mir sehr zuverlässig.

Danke, ich werde das zeitnah probieren!

Gruß Otto
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: FunkOdyssey am 10 Januar 2019, 11:20:41

2) die Attribute zum Umbenennen von Readings etc. Die mussten bei Pin D4 z.B. readingNameCount4 lauten, auch wenn der Pin mit dem Attribut pinD4 definiert wurde. Unschön ist das für analoge Pins wie A7 geworden, wie man es für Ferraris-Zähler benötigt. Deshalb habe ich das geändert. Jetzt können die Zusatzattribute immer genauso benannt werden, wie auch der Pin definiert wurde. Bei Pin2 also readingNameCount2, bei PinD2 readingNameCountD2 und bei pinA7 readingNameCountA7.
Auch die Readings (sofern sie nicht mit einem Attribut umbenannt wurden) orientieren sich jetzt klar an der Definition. Wenn Pin 5 als pin5 definiert wurde, wird ein Reading power5 erzeugt. Wenn der gleiche Pin aber als PinD5 definiert wurde, wird auch das Reading powerD5 genannt.


Perfekt. Trifft zwar vermutlich viele. Aber ist konsistenter.
Hat mich damals auch schon gewundert.
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 17 Januar 2019, 09:49:14
Besten Dank.

Gruß Sascha

Gesendet von meinem E6653 mit Tapatalk

Kannst du schon etwas dazu sagen?

Habe auch noch einen ESP mit ESPEasy und Impulscounter am laufen.
Gefällt mir so aber auch absolut nicht.

Danke und Gruß Robert
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: sash.sc am 17 Januar 2019, 12:42:54
Kannst du schon etwas dazu sagen?

Habe auch noch einen ESP mit ESPEasy und Impulscounter am laufen.
Gefällt mir so aber auch absolut nicht.

Danke und Gruß Robert
Bis heute noch nicht. Hatte da noch keine Zeit für bzw andere Sachen vorgezogen. Wenn ich was weiß dann sage ich hier bescheid.

Gesendet von meinem E6653 mit Tapatalk

Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 17 Januar 2019, 12:51:28
Bis heute noch nicht. Hatte da noch keine Zeit für bzw andere Sachen vorgezogen. Wenn ich was weiß dann sage ich hier bescheid.

Gesendet von meinem E6653 mit Tapatalk

Ich hoffe der Nachwuchs geht heute früh genüg ins bett.
Dann komm ich vll dazu es ausprobieren.
Ich hab nur gerade garkeine Ahnung mehr wie es momentan verdrahtet ist!  ;D

Noch was anderes, beim Einsatz mit nem Gazähler.
Das zählen erfolgt nur auf die Flanken oder?

Edit: Gefunden, hast sich erledigt.

Gruß Robert
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 17 Januar 2019, 16:48:28
Kann mir jemand kurz erklären wie ich eine Pin in FHEM deklariere.
Sobald ich über die Gui probiere das attr pin.* auszuwählen, kommt immer folgender Fehler:

jquery.min.js line 2:
Error: Syntax error, unrecognized expression: a[name=pin\.*]

Gruß Robert
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Otto123 am 17 Januar 2019, 21:17:45
Meinst Du sowas?
attr AC pinD4 falling pullup 30
Musst Du einfach in der FHEM Kommandozeile machen. Geht nicht mit "klicken".

Gruß Otto
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 17 Januar 2019, 21:30:21
Meinst Du sowas?
attr AC pinD4 falling pullup 30
Musst Du einfach in der FHEM Kommandozeile machen. Geht nicht mit "klicken".

Gruß Otto

Hallo Otto,

schön dich hier auch zu treffen.
Auch wenn du mich mittlerweile echt für bescheuert halten musst, der Befehl geht nicht.
Habe folgender maßen ausprobiert: attr AC pinD4 falling
Dann kommt folgende Fehlermeldung: Invalid / disallowed pin specification pinD4
Es geht nur wenn man attr AC pin.D4 falling eingibt.
Allerdings gezählt wir dann nicht.

Dazu wenn man probiert einen pin zu löschen kommt Invalid pin name pin.0
Edit:
FHEM ist Updtodate.
Sketch ist 2.36 aus den Contribut Ordner

Gruß Robert
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Otto123 am 17 Januar 2019, 21:49:24
Hallo Robert,

also das mit dem Punkt erscheint mir unlogisch.
Hast Du ESP oder Arduino?

Gruß Otto
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 17 Januar 2019, 21:52:16
Hallo Robert,

also das mit dem Punkt erscheint mir unlogisch.
Hast Du ESP oder Arduino?

Gruß Otto

Hab nen Wemoo D1 Mini (also ESP8266 glaub ich)

Wenn ich’s dir sag. Es muss den Punkt nehmen sonst wird die Eingabe nicht akzeptiert.

Gruß Robert


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Otto123 am 17 Januar 2019, 22:03:18
naja aber gezählt wird dann nicht. Ist also auch nicht richtig?
Du ich weiß es nicht, hab es mit dem ESP noch nicht probiert. Mein AC läuft mit dem Arduino nano - und da ist es so wie von mir gepostet (und in der Doku).
Ich weiß es nicht. Kann man den D4 nehmen beim ESP?
Hast Du mal D1 oder D2 probiert? Das sind die einzigen die völlig "frei" sind.

Gruß Otto
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 17 Januar 2019, 22:06:17
naja aber gezählt wird dann nicht. Ist also auch nicht richtig?
Du ich weiß es nicht, hab es mit dem ESP noch nicht probiert. Mein AC läuft mit dem Arduino nano - und da ist es so wie von mir gepostet (und in der Doku).
Ich weiß es nicht. Kann man den D4 nehmen beim ESP?
Hast Du mal D1 oder D2 probiert? Das sind die einzigen die völlig "frei" sind.

Gruß Otto

Nein gezählt wird definitiv nichts.
Arduino hab ich auch noch einige da.
Hab fest verdrahtet am wemoo

Allerdings scheint der wemoo schon zu senden. Die led am wlan Chip blinkt.

Vll kann der maintainer Was dazu sagen?

Gruß Robert


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 17 Januar 2019, 22:29:03
Hallo,

Pin 4 ist beim ESP nicht erlaubt. Dass das mit einem Punkt kein Fehlermeldung gibt ist eher ein Bug.
Muss ich mir mal ansehen.
Zitat aus dem Sketch:
short allowedPins[MAX_APIN] =
  { 0,  1,  2,  -1, 
     -1, 5,  6, 7};
/* Wemos / NodeMCU Pins 3,4 and 8 (GPIO 0,2 and 15) define boot mode and therefore
 * can not be used to connect to signal
 */

Bei den Pins 3,4 und 8 kann es passieren, dass der ESP nicht mehr bootet wenn beim Starten zur falschen Zeit ein Puls kommt. Deshalb habe ich die als "unerlaubt" markiert.
Wenn Du ihn trotzdem verwenden möchtest, musst Du nur in obigem Array  an Position 4 eine 4 statt der -1 eintragen.
Du musst den Sketch ja sowieso neu compilieren, damit Deine WLAN-SSID und das Passwort drin steht.

Ich würde auch empfehlen, gleich die neue Version von Sketch und Modul hier aus dem Thread zu nehmen.

Gruß
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 18 Januar 2019, 05:25:39
Hallo,

Pin 4 ist beim ESP nicht erlaubt. Dass das mit einem Punkt kein Fehlermeldung gibt ist eher ein Bug.
Muss ich mir mal ansehen.
Zitat aus dem Sketch:
short allowedPins[MAX_APIN] =
  { 0,  1,  2,  -1, 
     -1, 5,  6, 7};
/* Wemos / NodeMCU Pins 3,4 and 8 (GPIO 0,2 and 15) define boot mode and therefore
 * can not be used to connect to signal
 */

Bei den Pins 3,4 und 8 kann es passieren, dass der ESP nicht mehr bootet wenn beim Starten zur falschen Zeit ein Puls kommt. Deshalb habe ich die als "unerlaubt" markiert.
Wenn Du ihn trotzdem verwenden möchtest, musst Du nur in obigem Array  an Position 4 eine 4 statt der -1 eintragen.
Du musst den Sketch ja sowieso neu compilieren, damit Deine WLAN-SSID und das Passwort drin steht.

Ich würde auch empfehlen, gleich die neue Version von Sketch und Modul hier aus dem Thread zu nehmen.

Gruß
   Stefan


Guten Morgen Stefan,

Danke für die schnelle Antwort.
Okay also nehme ich am besten einen anderen Pin.
Sind eigentlich D4 und Pin 4 dann gleich?

Den Sketch min Version 3.0 meinst du?
Wenn du die meinst, Hatte ich gestern schon Probiert.
Da kam eine Fehler Meldung beim Compilern, wegen eine LED oder so
Kann ich heute nach der Arbeit noch mal schauen.

Edit:

Die Fehlermeldung kommt bei der Version 3.0 immer
'ledOutPin' was not declared in this scope

Gruß Robert


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 18 Januar 2019, 07:57:07
Hallo Robert,

Der Teil des Sketches für das Auslesen eines Ferraris-Zählers mit Reflexlichtschranke ist für den ESP noch nicht drin. Das habe ich bisher nur für den Arduino Nano eingebaut und es kann sein, dass es für den ESP so auch gar nicht möglich ist, da er angeblich nicht ohne Unterbrechungen A-D wandeln kann.
(angeblich bricht dann die WLAN-Verbundung ab).

Du müsstest also bei der 3.0 die Zeile
#define analogIR 1
auskommentieren.

ich werde im Modul noch ein paar aussagekräftigere Meldungen einbauen, damit es deutlicher wird, wenn ein Pin nicht erlaubt ist.

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 18 Januar 2019, 08:01:22
Hallo Robert,

Der Teil des Sketches für das Auslesen eines Ferraris-Zählers mit Reflexlichtschranke ist für den ESP noch nicht drin. Das habe ich bisher nur für den Arduino Nano eingebaut und es kann sein, dass es für den ESP so auch gar nicht möglich ist, da er angeblich nicht ohne Unterbrechungen A-D wandeln kann.
(angeblich bricht dann die WLAN-Verbundung ab).

Du müsstest also bei der 3.0 die Zeile
#define analogIR 1
auskommentieren.

ich werde im Modul noch ein paar aussagekräftigere Meldungen einbauen, damit es deutlicher wird, wenn ein Pin nicht erlaubt ist.

Gruss
   Stefan

Hallo Stefan,

das mit dem Auskommentieren hatte ich eben auch schon probiert.
Dann kommt gleich wieder ein fehler.
'showThresholds' was not declared in this scope
Ich werde nach der Arbeit den PIN D4 gegen den D2 tauschen.
Damit bin ich dann ja erst mal save.

Gruß Robert
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 18 Januar 2019, 17:05:55
Hab den Pin auf D2 umgelötet.
Zählen Funktioniert nun.

Eine Frage noch zum Factor.
Mein Gaszähler macht 1 Impuls = 0.01 m3
Es scheint als ob der Factor nur ohne Kommastelle zulässig ist.
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Otto123 am 18 Januar 2019, 17:10:17
Dann nimm doch 10 (dm³=Liter) und mach Dir ein userReadings für die m³ (/1000)

Gruß Otto
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 18 Januar 2019, 17:25:08
Dann nimm doch 10 (dm³=Liter) und mach Dir ein userReadings für die m³ (/1000)

Gruß Otto

Gute Idee.
Was wird denn genau unter dem power Reading brechnet.
Arbeitest du auch mit den GasCalculator Modul aus FHEM?

Gruß Robert
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Otto123 am 18 Januar 2019, 17:58:48
Hallo Robert,

ich zitiere mal meine Aufzeichnung, so hatte ich das mal verstanden
Zitat
Feintuning
Das power Reading liefert den momentane Leistung am Zähler. Damit die stimmt muss auch der Faktor stimmen.
Mein Zähler SMD630 liefert 400 Impulse pro 1 kWh.
1 Impulse entspricht also 0,0025 kWh.
Um den Zählerstand in kWh zu ermittteln, muss man einfach die Anzahl der Impules durch die Zahl Impulse/kWh dividieren.
ArduCounter ermittelt den Wert für die momentane Leistung in Impulsen/h ((delta count) / (delta time) * factor). Liefert der Zähler 1 Impuls pro 1 W/h, dann erhält man mit dem Faktor 1000 den Wert in kW angezeigt. Da mein Zähler 1 Impuls pro 2,5 W/h liefert, muss ich 2500 (statt Standardwert 1000) als Faktor einstellen.
Ich nehme das nur für Strom nicht für Gas (ich heize mit Holz)  :D

Wenn ich richtig drüber nachdenke: ist power für Dich sinnvoll?
Der Stromzähler liefert ja Impulse pro Leistung (kWh) du zählst ja Liter. Ein Liter Gas hat auch irgendeinen Wert in kWh, Du könntest also auch die momentane Heizleistung damit anzeigen.

Du müsstest nur den Gas 1 Liter = x kWh (Heizwert) Wert wissen. Steht eventuell  in deinem Gasvertrag.

Gruß Otto
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 18 Januar 2019, 19:48:27
Hallo Robert,

ich zitiere mal meine Aufzeichnung, so hatte ich das mal verstandenIch nehme das nur für Strom nicht für Gas (ich heize mit Holz)  :D

Wenn ich richtig drüber nachdenke: ist power für Dich sinnvoll?
Der Stromzähler liefert ja Impulse pro Leistung (kWh) du zählst ja Liter. Ein Liter Gas hat auch irgendeinen Wert in kWh, Du könntest also auch die momentane Heizleistung damit anzeigen.

Du müsstest nur den Gas 1 Liter = x kWh (Heizwert) Wert wissen. Steht eventuell  in deinem Gasvertrag.

Gruß Otto

Wenn ich den GasCalculator benutze, ist eigentlich eher ein Aktueller Zählerstand wichtig.
Mit dem Firmata den ich mal laufen hatte, habe ich einfach einen Hourcounter mit on und off gefüttert.
Hier wurde dann der Zählerstand gebildet, welcher dann der GasCalculator weiterverarbeitet hat.

Ottos deinen Blog habe ich gelesen.
Hättest du aber nicht mit dem Befehl monotonic arbeiten können?

Das mit dem Dummy hab ich auch nicht ganz verstanden gehabt.
Gibt aber wohl keine einfache Möglichkeit den Zählerstand in ein Userreading einzutragen.
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Otto123 am 18 Januar 2019, 21:01:01
Du hast aber nach Faktor gefragt.  ::)
Zitat
factor
Define a multiplicator for calculating the power from the impulse count and the time between the first and the last impulse
Für den Zählerstand nehme ich sowas attr AC userReadings ZaehlerHzg monotonic {sprintf("%.2f",ReadingsVal("AC","pin4",0)/400)}Dann gehe ich einmal her und mache sein setreading AC ZahlerHzg xxxxxund trage dort einfach den aktuellen Stand ein.

Mein Artikel ist da leider nicht auf dem Stand der Zeit, deswegen gibt es da die rote Zeile  ;)

Gruß Otto
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 19 Januar 2019, 12:24:07
Du hast aber nach Faktor gefragt.  ::)Für den Zählerstand nehme ich sowas attr AC userReadings ZaehlerHzg monotonic {sprintf("%.2f",ReadingsVal("AC","pin4",0)/400)}Dann gehe ich einmal her und mache sein setreading AC ZahlerHzg xxxxxund trage dort einfach den aktuellen Stand ein.

Mein Artikel ist da leider nicht auf dem Stand der Zeit, deswegen gibt es da die rote Zeile  ;)

Gruß Otto

Hallo Otto,

das war genau der Schubs in die Richtige Richtung.

Habe es nun mit dem Readings auf die gleiche weiße gelöst.
GasZaehlerstand monotonic {sprintf("%.2f",ReadingsVal("Gaszaehler","pin2",0)/100)}
Mal schauen wie es nun mit dem GasCalculator weiter geht.

Danke und Gruß Robert
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 21 Januar 2019, 08:23:28
Also seit Funktioniert alles ganz gut.

Irgendwie scheinen ein paar Impulse nicht gezählt zu werden.
Woran es allerdings genau liegt kann ich nicht sagen.

Dazu hab ich dann ein paar fragen:
1. Wie sieht es eigentlicht mit dem Entprellen aus?
2. Ich hab den Pin nun wie folgt definiert: pinD2 falling pullup 5Die Zeit für den minimal Impuls (hier 5ms), wenn man den weg lässt, gibt es einen Default wert?
Also wenn ich nichts definiere, was pinD2 falling pullup, was wird dann genommen?
3. Wird eigentlich immer das pinHistory reading angelegt?
Bei mir ist es nicht zu finden.


Edit:
3. Frage hinzu gefügt

Danke und Gruß Robert
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 21 Januar 2019, 20:04:47
Hallo Robert,

als minimale Impulslänge würde ich 30ms angeben. Das ist auch die Mindestlänge eines Impulses über eine S0-Schnittstelle. Ein Prellen würde damit auch ganz gut entfernt.
Wenn Du nichts angibst, wird 2ms angenommen.

Die pulseHistory wird von der Firmware nur übertragen wenn devVerbose >=5 ist.
Das Fhem-Modul erzeugt selbst bei übertragener History nur Readings dafür wenn verboseReadings gesetzt ist.

In der neuen Version habe ich die Anleitung übrigens etwas ausführlicher geschrieben. Ich poste demnächst noch eine neue Version, die dann auch wieder für einen ESP compilieren sollte.
Gerade bin ich am Testen, ob das mit dem Auslesen per Reflexlichtschranke auch mit einem ESP klappt...

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 21 Januar 2019, 20:13:20
Hallo Robert,

als minimale Impulslänge würde ich 30ms angeben. Das ist auch die Mindestlänge eines Impulses über eine S0-Schnittstelle. Ein Prellen würde damit auch ganz gut entfernt.
Wenn Du nichts angibst, wird 2ms angenommen.

Die pulseHistory wird von der Firmware nur übertragen wenn devVerbose >=5 ist.
Das Fhem-Modul erzeugt selbst bei übertragener History nur Readings dafür wenn verboseReadings gesetzt ist.

In der neuen Version habe ich die Anleitung übrigens etwas ausführlicher geschrieben. Ich poste demnächst noch eine neue Version, die dann auch wieder für einen ESP compilieren sollte.
Gerade bin ich am Testen, ob das mit dem Auslesen per Reflexlichtschranke auch mit einem ESP klappt...

Gruss
   Stefan


Hallo Stefan,

Super Danke.
Echt spitze dein Support.
Momentan scheint er mit 5ms richtig zu zählen.
Ich werde es noch mal mit 30ms testen.
Bin mir halt nicht sicher wie die Impulslänge sein soll.
Hab auch keine Oszi zur hand, leider.

Damit Reflexlichtschranken sollte gehen.
Bei ESPEasy gibt es dafür support.
Vll kannst du ja was von den Jungs adaptieren.
https://www.letscontrolit.com/wiki/index.php?title=Devices


Die Wasseruhr will ich ja auch schon ewig lange erfassen.
Nur die Uhr ist nicht sehr einfach Abzufragen.
Weder mit Lichtschranke noch mit Induktionssensor oder so.
Hat leider kein Rad wo man etwas reflektiert bekommt.
Manche nehmen dafür einen Laser nur der Aufwand, davor kraust es mir schon jetzt.
Hab noch zu viele andere Baustellen.

Danke und Gruß Robert
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 22 Januar 2019, 13:07:53
@StefanStrobel

Mal ne Frage ist der Aufwand groß den Sketch auch ESP32 anzupassen?
Ich bin da auf ein Intresante Lolin Modul gestoßen.
https://www.exp-tech.de/plattformen/esp32/9077/d32-v1.0.0 (https://www.exp-tech.de/plattformen/esp32/9077/d32-v1.0.0)

Der hat gleich die Ladeelektronik mit drauf, die ich beim Wemos D1 mini als Shield dran habe.

Danke und Gruß Robert
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 22 Januar 2019, 21:26:02
Hallo Robert,

eine Anpassung an den ESP32 sollte eigentlich nicht so schwer sein. Ich hatte leider noch keine Zeit mich damit zu beschäftigen.

Anbei nun auch eine aktuelle Version, die bei mir auch auf dem ESP8266 läuft, auch mit der Refelxlichtschranke an A0.

Das Thema mit dem Faktor hat sich übrigens auch erledigt. Dafür gibt es das einfachere Attribut pulsesPerKWh

Gruss
   Stefan

EDIT 9.7.19: neue Version ist eingecheckt (Firmware Quellcode unter contrib/arduino, Hex-File für den Arduino Nano unter FHEM/firmware)
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 22 Januar 2019, 21:40:45
kleine Ergänzung falls jemand die Reflexlichtschranke an einem ESP8266 nachbauen möchte:
Ich musste den pull down Widerstand am Phototransistor ganz weglassen und den Vorwiderstand an der IR-LED mit 330 Ohm etwas höher bemessen als beim Arduino.

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 23 Januar 2019, 06:27:47
Hallo Robert,

eine Anpassung an den ESP32 sollte eigentlich nicht so schwer sein. Ich hatte leider noch keine Zeit mich damit zu beschäftigen.

Anbei nun auch eine aktuelle Version, die bei mir auch auf dem ESP8266 läuft, auch mit der Refelxlichtschranke an A0.

Das Thema mit dem Faktor hat sich übrigens auch erledigt. Dafür gibt es das einfachere Attribut pulsesPerKWh

Gruss
   Stefan

Danke Stefan, für deine Arbeit.
Echt spitze das Modul.

Das mit dem ESP32 ist noch nicht fix.
Ich bin mir nicht sicher, wie ich es genau machen will.
Auf der einen Seite ist es recht einfach ESPs mit BAckup Batterie zu versorgen.
Ich hab allerdings auch keine Lust, so viel müll im WLAN zu haben.
Dazu ist der NUC mit Fhem keine 2 m Weg von der Gas und Wasseruhr
Naja wer die Wahl hat, hat die Qual.

Noch eine allgemein Frage, Frägt das Modul zyklisch beim Counter nach den werten oder sendet der Counter im eingestellten Intervall die Daten?
Mir geht es darum ob bei einem Neustart werte verloren gehen können?

Danke und Gruß Robert
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 23 Januar 2019, 18:16:17
Hallo Robert,

das Arduino / ESP-Board sendet seine Zähl-Ergebnisse von sich aus an Fhem.
Entweder seriell oder über eine TCP-Verbindung, die von Fhem aus zum Board aufgebaut wird.
Falls die TCP-Verbindung unterbrochen ist, wenn das Board gerade seine Zählerstände berichten möchte, wird das Berichten nachgeholt, sobald die Verbindung wieder steht.
Wenn das Board neu startet gehen die noch nicht an Fhem weitergeleiteten Pulse zunächst verloren (zumal Impulse während dem Neustart des Boards sowieso nicht gezählt werden können).
Fhem versucht dann aber nach dem ersten Bereicht nach einem Neustart des Boards aus dem Mittelwert der Impulse je Zeit vor dem Neustart und nach dem Neustart zu interpolieren,
wie viele Impulse vermutlich verpasst wurden. Das kommt dann zusätzlich zum normalen Zähler in den Interpolated counter in Fhem.

Deshalb zeigt das Fhem-Modul so viele verschiedene Zähler an:

Beispiel (Readings meines ArduCounters am Ferraris-Zähler):
state opened
seqA7 5
pinA7 2976
rejectA7 0
countDiffA7 2
timeDiffA7 49810
powerA7 1.927
longA7 2976
interpolatedLongA7 2976
calcCounterA7 39.6799999999992
calcCounterA7_i 0

state opened
Das bedeutet dass die serielle Schnittstelle, an der das Board hängt, geöffnet ist.

seqA7 5
Jeder Bericht für einen Pin wird vom Board fortlaufend durchnummeriert. So kann Fhem erkennen, wenn es einen Bericht verpasst hat, weil die Verbindung unterbrochen war.

pinA7 2976
Das ist der interne Zählerstand für Pin A7 im Board. Bei einem Neustart des Boards beginnt dieser Zähler wieder bei 0

rejectA7 0
Das ist der interne Reject-Zählerstand für Pin A7 im Board. Hier werden die Impulse gezählt, die zu kurz waren (evt. Prellen). Bei einem Neustart des Boards beginnt dieser Zähler wieder bei 0

countDiffA7 2
Das ist die Anzahl der Impulse seit dem letzten Bericht des Boards. Aus dieser Zahl und timeDiffA7 wird der aktuelle Verbrauch (z.B. als kW) berechnet.

timeDiffA7 49810
Das ist die Zeit zwischen dem letzten Impuls des vorherigen Berichts und dem letzten Impuls des aktuellen Berichts-Intervalls.

powerA7 1.927
Das ist der aktuelle Verbrauch als Impulse / Zeit unter Berücksichtigung der Impulse je Einheit (Attribut pulsesPerKwh)

longA7 2976
Das ist ein Zähler in Fhem, der die berichteten Impulse vom Board aufaddiert und damit weiterzählt, auch wenn das Board neu gestartet wurde oder wenn Fhem neu gestartet wurde.

interpolatedLongA7 2976
Das ist ein Zähler, der ähnlich wie logA7 weiter zählt, zusätzlich aber noch verlorene Impulse (während Neustarts) interpoliert.

calcCounterA7 39.6799999999992
Dieser Zähler arbeitet ähnlich wie interpolatedLongA7, berücksichtigt aber pulsesPerKwh und zählt damit nicht Impulse sondern Kilowattstunden oder Liter o.ä. Voraussetzung ist dass das Attribut pulsesPerKwh existiert, sonst wird dieses Reading auch nicht erzeugt.

calcCounterA7_i 0
Dieser Zähler ergänzt calcCounterA7 und zählt nur die eventuell interpolierten Einheiten. Damit kann man sehen, was echt ist und was geraten ist.

zusätzliche User-Readings oder Dummies sollte man somit nicht mehr benötigen.

Die Länge des Intervalls, in dem das Board seine Zählerstände an Fhem berichtet, ist dynamisch und wird über das interval-Attribut beeinflusst. Das ist in der Anleitung ausführlich beschrieben. Der entscheidende Punkt dabei ist dass man bei geringem Stromverbrauch und somit wenigen Impulsen länger warten sollte um den Stromverbrauch sinnvoll berechnen zu können.

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 24 Januar 2019, 10:26:01
Hallo Robert,

das Arduino / ESP-Board sendet seine Zähl-Ergebnisse von sich aus an Fhem.
Entweder seriell oder über eine TCP-Verbindung, die von Fhem aus zum Board aufgebaut wird.
Falls die TCP-Verbindung unterbrochen ist, wenn das Board gerade seine Zählerstände berichten möchte, wird das Berichten nachgeholt, sobald die Verbindung wieder steht.
Wenn das Board neu startet gehen die noch nicht an Fhem weitergeleiteten Pulse zunächst verloren (zumal Impulse während dem Neustart des Boards sowieso nicht gezählt werden können).
Fhem versucht dann aber nach dem ersten Bereicht nach einem Neustart des Boards aus dem Mittelwert der Impulse je Zeit vor dem Neustart und nach dem Neustart zu interpolieren,
wie viele Impulse vermutlich verpasst wurden. Das kommt dann zusätzlich zum normalen Zähler in den Interpolated counter in Fhem.

Gruss
   Stefan

Dank dir für die Erklärung.

Gruß Robert
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 12 Februar 2019, 21:23:45
Hallo,

ich habe die neue Version eingecheckt und hoffe dass sie keine neuen Fehöer / Probleme mit sich bringt.

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Kornelius777 am 14 Februar 2019, 15:43:19
Hallo zusammen,
hallo Stefan,

heute habe ich mir aus irgend einem Grund meinen ArduCounter "zerschossen", der seit einem guten Jahr vollkommen klaglos seinen Dienst verrichtet hat.
Grund muss (aus meiner Sicht) ein Update sein, das ich gemacht habe. Und davon gab es heute "einige":

Am Raspberry habe ich

apt-get update
apt-get dist-upgrade

durchgeführt. Und anschließend in fhem ein
update
Den Arduino Nano habe ich nschließend neu geflasht.

Mein (physikalischer) Aufbau ist wie folgt:

Gaszähler --> HallSensor --> Arduino1 (eigenes Script) --> Arduino2 (ArduCounter) --> Raspberry USB-Port

Pro 0,01 qm Gasverbrauch (eine Umdrehung der letzten Zählerwalze) legt Arduino1 an Port D7 von Arduino2 das Signal einmal auf 3,3V und anschließend wieder auf 0 zurück.
Leider geht seit dem heutigen Update gar nix mehr.  Ich bekomme einfach keine Daten mehr in Port D7 rein.
Arduino1 läuft allerdings munter weiter (die Signal-LED zeigt mir den jeweiligen Zustand des Ausgangs an).

Wie kann ich das Ganze debuggen? Welche Messreihen kann ich liefern, damit Ihr mir helfen könnt?

Mein Device sieht so aus:
Internals:
   Board      NANO
   BoardDet   
   DEF        /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AH06NIQN-if00-port0@38400
   DeviceName /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AH06NIQN-if00-port0@38400
   FD         4
   FUUID      5c5c4798-f33f-f563-c529-cb1480ffee8a50cb
   Initialized 1
   LASTOPEN   1550153626.47919
   NAME       HAR.ArduCounter
   NOTIFYDEV  global
   NR         24
   NTFY_ORDER 50-HAR.ArduCounter
   PARTIAL   
   STATE      1479.89 qm
   SketchCompile Jan  6 2019 17:11:47
   TYPE       ArduCounter
   VersionFirmware 3.10
   VersionModule 6.07 - 27.1.2019
   allowedPins 3,4,5,6,7,8,9,10,11,13,14,A0,15,A1,16,A2,17,A3,18,A4,19,A5,20,A6,21,A7
   buffer     
   deviceBooted 1550153628.49667
   devioLoglevel 3
   nextOpenDelay 60
   Helper:
     DBLOG:
       GasZaehler:
         DBLogging:
           TIME       1550155304.07053
           VALUE      1479.89
       GasZaehlerArdu:
         DBLogging:
           TIME       1550155304.07053
           VALUE      147989
       GasZaehlerTicks:
         DBLogging:
           TIME       1550155304.07053
           VALUE      0
   READINGS:
     2019-02-14 15:41:44   GasZaehler      1479.89
     2019-02-14 15:41:44   GasZaehlerArdu  147989
     2019-02-14 15:41:44   GasZaehlerTicks 0
     2019-02-14 09:08:17   countDiff7      1
     2019-02-14 15:41:44   countDiffD7     0
     2019-02-14 09:08:17   interpolatedLong7 106610
     2019-02-14 15:41:44   interpolatedLongD7 0
     2019-02-14 09:08:17   pin7            187
     2019-02-14 15:41:44   pinD7           0
     2019-02-14 09:08:17   power7          0.000
     2019-02-14 15:41:44   powerD7         0.000
     2019-02-14 09:08:17   reject7         0
     2019-02-14 15:41:44   rejectD7        0
     2019-02-14 09:08:17   seq7            181
     2019-02-14 15:41:44   seqD7           5
     2018-04-02 12:24:58   statStateDay    opened: 12:25:03 opened_Count: 1
     2018-04-01 23:59:55   statStateDayLast opened: 24:00:00 opened_Count: 1
     2018-04-02 12:24:58   statStateMonth  opened: 1d 12:25:03 opened_Count: 1
     2018-03-31 23:59:55   statStateMonthLast opened: 30d 22:59:59 opened_Count: 1
     2018-04-02 12:24:58   statStateYear   opened: 73d 20:15:57 opened_Count: 1 (since: 2018-01-18_15:09:01)
     2019-02-14 15:13:46   state           opened
     2019-02-14 09:08:17   timeDiff7       92909
     2019-02-14 15:41:44   timeDiffD7      300000
   runningCfg:
     I          30 60 2 2
     T          100 110
Attributes:
   DbLogInclude GasZaehler,GasZaehlerArdu,GasZaehlerTicks
   devVerbose 20
   event-on-update-reading .*
   factor     1
   flashCommand avrdude -b 57600 -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   interval   60 300
   pinD7      rising 60
   readingNameLongCount7 GasZaehlerArdu
   room       HAR
   stateFormat GasZaehler qm
   userReadings GasZaehler {ReadingsVal("HAR.ArduCounter","GasZaehlerArdu",0)/100}, GasZaehlerTicks difference {ReadingsVal("HAR.ArduCounter","GasZaehlerArdu",0)}
   userattr   pinD7 readingNameLongCount7

Hoffentlich kann mir jemand helfen...

Dankeschön!

Viele Grüße!

Kornelius
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Kornelius777 am 14 Februar 2019, 15:51:57
Nach einigem Grübeln mal eine kurze Frage:
Muss ich evtl "readingNameLongCount7" durch "readingNameLongCountD7" ersetzen?
Oder wird diese Änderung durch das Modul abgefedert?

Grüße!

Kornelius
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Kornelius777 am 14 Februar 2019, 16:29:43
Yay, Das scheint es gewesen zu sein! Es läuft wieder!

Viele Grüße!

Kornelius
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 14 Februar 2019, 16:57:46
Hallo,

das neue Modul versucht bei der Benennung der Readings und beim verarbeiten der Attribute konsitenter zu sein als früher.
Wenn ein Pin als pinD7 angelegt wird, dann werden auch die Readings mit D7 benannt und die Attribute mit D7 gesucht.
Wenn ein Attribut mit D7 nicht existiert, sollte aber auch eines mit 7 am Ende verwendet werden, damit es weiterhin kompatibel bleibt.
Eigentlich hätte also auch readingNameLongCount7 funktionieren sollen ...
Welches Reading ist denn statt dessen erzeugt worden?

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Kornelius777 am 14 Februar 2019, 17:09:46
Erzeugt wurden countDiffD7, interpolatedLongD7, powerD7, rejectD7, seqD7, timeDiffD7, readingNameLongCountD7
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: FunkOdyssey am 14 Februar 2019, 17:27:03
Ach Mist. Ich habe den Vorhaben vor einigen Wochen sogar gelesen und auch begrüßt.
Nur habe ich überhaupt nicht wahrgenommen, dass es vor wenigen Tagen committed wurde.

Bei mir stimmt mein Device nun auch nicht mehr und meine Statistiken sind daher nutzlos.

Ist die Abwärtskompatibilität nur dann vorhanden, wenn ich die Firmware neu flashe? Das habe ich gerade erst gemacht und ich muss dann nun warten bis der Gas-Zähler erneut auslöst.

Meine letzten Einträge sind die folgenden:
2019-02-10_14:02:20 ArduCounter power4: 0.043
2019-02-10_14:02:20 ArduCounter timeDiff4: 83299
2019-02-10_14:02:20 ArduCounter pin4: 2
2019-02-10_14:02:20 ArduCounter long4: 150254
2019-02-10_14:02:20 ArduCounter interpolatedLong4: 150791
2019-02-10_14:02:20 ArduCounter seq4: 1

Ich nutze Pin D4.

Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 14 Februar 2019, 18:51:44
Hallo FunkOdyssey,

eigentlich sollte es keine Abwärtskompatibilitätsprobleme geben.
Was genau stimmt denn nicht mehr?

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 14 Februar 2019, 19:05:11
Hallo FunkOdyssey,

ich glaube jetzt habe ich Dein Problem doch noch verstanden.
Wenn Du die Readings nicht mit readingNameXY-Attributen umbenannt hast und das Pin als pinD4 definiert ist,
dann lauten die Readings jetzt nicht mehr power4 etc. sondern PowerD4 etc.

Um das wieder so zu haben wir vorher könntest Du die Readings einfach explizit so benennen wie sie vorher waren (readingNamePowerD4 power4)
Bei der Gelegenheit habe ich gerade auch noch einen Tippfehler im Modul gefunden. Update kommt ...

Gruss / Sorry
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: FunkOdyssey am 14 Februar 2019, 20:21:10
Hallo Stefan,
das mit den Readings würde ich später schon irgendwie schaffen.
Ich habe glücklicherweise ein Zaehler-userreading für weitere Zwecke angelegt. Da ist mir die Syntax im AC-Modul erst einmal irrelevant.

Mein Problem ist, dass nichts mehr reinkommt.
Alle Readings sind seit dem Update stumm.

Auch bei einer manuellen Auslösung per Magnet passiert nichts.
Ich nutze jetzt die Version aus denn SVN.



Internals:
   Board      NANO
   BoardDet   
   DEF        /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@38400
   DeviceName /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0@38400
   FD         231
   FUUID      5c42dca7-f33f-47ae-3843-421b6bc9d292319f
   Initialized 1
   LASTOPEN   1550172491.86915
   NAME       ArduCounter
   NOTIFYDEV  global
   NR         538
   NTFY_ORDER 50-ArduCounter
   PARTIAL   
   STATE      opened
   SketchCompile Jan  6 2019 17:11:47
   TYPE       ArduCounter
   VersionFirmware 3.10
   VersionModule 6.07 - 27.1.2019
   allowedPins 3,4,5,6,7,8,9,10,11,13,14,A0,15,A1,16,A2,17,A3,18,A4,19,A5,20,A6,21,A7
   buffer     
   deviceBooted 1550172493.87813
   devioLoglevel 3
   nextOpenDelay 60
   READINGS:
     2019-02-10 14:02:20   Zaehler         147161
     2019-02-10 14:02:20   countDiff4      1
     2019-02-10 14:02:20   interpolatedLong4 150791
     2018-01-03 15:08:56   lastMsg4        R4 C412 D0 R0 T350061 N60314385 X0
     2019-02-10 14:02:20   long4           150254
     2019-02-10 14:02:20   pin4            2
     2019-02-10 14:02:20   power4          0.043
     2019-02-10 14:02:20   reject4         0
     2019-02-10 14:02:20   seq4            1
     2019-02-14 20:28:11   state           opened
     2019-02-10 14:02:20   timeDiff4       83299
   analogLevels:
   runningCfg:
     I          30 60 2 2
     T          100 110
Attributes:
   event-on-change-reading .*
   factor     1000
   flashCommand avrdude -p atmega328P -b 57600 -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   interval   60 300 10
   pinD4      falling pullup 60
   readingFactor4 1000
   userReadings Zaehler:long4.* monotonic {ReadingsVal($name,"pin4",0)}
   userattr   pinD4 readingFactor4 readingNameCount4 readingNamePower4 verboseReadings4
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 14 Februar 2019, 22:38:30
Hallo,

Aus irgendeinem Grund ist die Pin-Konfiguration bei Dir nicht korrekt auf das Board übertragen worden. Sonst wäre ein entsprechender Eintrag im Internal runningCfg.
Kannst Du mal verbose für den ArduCounter auf 5 setzen und dann das Board kurz aus und wieder einstecken oder ersetzen? Dann sollte im Log alles nötige drin stehen um den Fehler einzugrenzen.

Gruß
    Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: FunkOdyssey am 14 Februar 2019, 23:53:52
Hier das V5-Log.

2019.02.14 23:51:04.610 3: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 disconnected, waiting to reappear (ArduCounter)
2019.02.14 23:51:08.980 3: Setting ArduCounter serial parameters to 38400,8,N,1
2019.02.14 23:51:08.981 3: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 reappeared (ArduCounter)
2019.02.14 23:51:08.988 5: ArduCounter: ArduCounter_Open succeeded in callback
2019.02.14 23:51:11.009 3: ArduCounter: device: restoring config from EEPROM
2019.02.14 23:51:11.009 3: ArduCounter: device: intervals set to 60 300 10 0
2019.02.14 23:51:11.009 3: ArduCounter: device: analog thresholds set to 100 110
2019.02.14 23:51:11.009 3: ArduCounter: device sent hello: ArduCounter V3.10 on NANO compiled Jan  6 2019 17:11:47 Hello, pins 3,4,5,6,7,8,9,10,11,13,14,15,16,17,18,19,20,21 available T508,0 B508,0
2019.02.14 23:51:11.011 4: ArduCounter: device sent interval config 60 300 10 0
2019.02.14 23:51:11.011 4: ArduCounter: device sent analog threshold config 100 110
2019.02.14 23:51:12.010 5: ArduCounter: ConfigureDevice: pins in running config:
2019.02.14 23:51:12.010 5: ArduCounter: ConfigureDevice: pins from attrs: pinD4
2019.02.14 23:51:12.010 5: ArduCounter: ConfigureDevice: got running config - comparing
2019.02.14 23:51:12.010 5: ArduCounter: ConfigureDevice: comparing intervals (>60 300 10 0< vs >60 300 10 0< from attr)
2019.02.14 23:51:12.010 3: ArduCounter: ConfigureDevice: no analogThresholds attribute
2019.02.14 23:51:12.010 5: ArduCounter: ConfigureDevice: matches so far - now compare pins
2019.02.14 23:51:12.011 5: ArduCounter: ConfigureDevice: number of defined pins doesn't match ( vs. pinD4)
2019.02.14 23:51:12.011 5: ArduCounter: ConfigureDevice: now check for pins without attr in
2019.02.14 23:51:12.011 3: ArduCounter: ConfigureDevice: no match -> send config
2019.02.14 23:51:12.011 5: ArduCounter: ConfigureDevice calls Attr with interval 60 300 10
2019.02.14 23:51:12.011 5: SW: 60,300,10,0i.
2019.02.14 23:51:12.012 5: ArduCounter: ConfigureDevice can not send pin config for pinD4, internal pin number can not be determined
2019.02.14 23:51:12.013 5: ArduCounter: ConfigureDevice: no pins in running config without attribute in Fhem
2019.02.14 23:51:12.023 3: ArduCounter: device: intervals set to 60 300 10 0
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Kornelius777 am 15 Februar 2019, 19:17:21
Hmpf. Seit dem heutigen Update geht hier gar nix mehr.
HILFE!

Edit: Funktioniert das neue Modul evtl erst ab dem 14.03.2019?
Selbst der Report "nix zu berichten" alle 300 Sekunden findet im Moment nicht statt
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: event horizon am 15 Februar 2019, 20:12:04
Hallo zusammen,

ich habe vor zwei Tagen aktualisiert, dann ging auch nichts mehr.
Habe dann die alte Version wieder eingespielt.
Meine Konfiguration:
Arduino Uno an Raspi

Ansonsten vielen Dank für dieses tolle Modul!

Ferdi

Gesendet von meinem SM-G930F mit Tapatalk

Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: FunkOdyssey am 15 Februar 2019, 20:14:32
Das beruhigt mich sehr. Dann bin ich damit nicht so alleine.
Vielleicht könntet ihr ja auch ein Log zur Verfügung stellen (s.o.), so dass Stefan damit auch etwas anfangen kann. Könnte ja sein, dass mehrere Logs helfen. Kann ich nicht beurteilen.
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Kornelius777 am 15 Februar 2019, 20:27:05
Tja... Log ist so eine Sache.
Nach der Initialisierung passiert einfach nix mehr:

2019.02.15 20:09:25 3: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AH06NIQN-if00-port0 disconnected, waiting to reappear (HAR.ArduCounter)
2019.02.15 20:09:35 3: Setting HAR.ArduCounter serial parameters to 38400,8,N,1
2019.02.15 20:09:35 3: /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_AH06NIQN-if00-port0 reappeared (HAR.ArduCounter)
2019.02.15 20:09:35 5: HAR.ArduCounter: ArduCounter_Open succeeded in callback
2019.02.15 20:09:37 3: HAR.ArduCounter: unparseable message from device:
2019.02.15 20:09:37 3: HAR.ArduCounter: device: no config in EEPROM
2019.02.15 20:09:37 3: HAR.ArduCounter: device sent hello: ArduCounter V3.10 on NANO compiled Jan  6 2019 17:11:47 Hello, pins 3,4,5,6,7,8,9,10,11,13,14,15,16,17,18,19,20,
21 available T499,0 B499,0
2019.02.15 20:09:37 4: HAR.ArduCounter: device sent interval config 30 60 2 2
2019.02.15 20:09:37 4: HAR.ArduCounter: device sent analog threshold config 100 110
2019.02.15 20:09:38 5: HAR.ArduCounter: ConfigureDevice: pins in running config:
2019.02.15 20:09:38 5: HAR.ArduCounter: ConfigureDevice: pins from attrs: pinD7
2019.02.15 20:09:38 5: HAR.ArduCounter: ConfigureDevice: got running config - comparing
2019.02.15 20:09:38 5: HAR.ArduCounter: ConfigureDevice: comparing intervals (>30 60 2 2< vs >60 300 0 0< from attr)
2019.02.15 20:09:38 5: HAR.ArduCounter: ConfigureDevice: intervals don't match (>30 60 2 2< vs >60 300 0 0< from attr)
2019.02.15 20:09:38 5: HAR.ArduCounter: ConfigureDevice: now check for pins without attr in
2019.02.15 20:09:38 3: HAR.ArduCounter: ConfigureDevice: no match -> send config
2019.02.15 20:09:38 5: HAR.ArduCounter: ConfigureDevice can not send pin config for pinD7, internal pin number can not be determined
2019.02.15 20:09:38 5: HAR.ArduCounter: ConfigureDevice calls Attr with interval 60 300
2019.02.15 20:09:38 5: SW: 60,300,0,0i.
2019.02.15 20:09:38 5: HAR.ArduCounter: ConfigureDevice: no pins in running config without attribute in Fhem
2019.02.15 20:09:38 3: HAR.ArduCounter: device: intervals set to 60 300 0 0

Danach: Schweigen....

Edit: Woher die "30 60 2 2" kommen - keine Ahnung. Von mir jedenfalls nicht...
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Kornelius777 am 15 Februar 2019, 21:41:06
Bin jetzt mal auf v6.06 zuruck gegangen. Die läuft auch.
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 15 Februar 2019, 22:18:47
Hallo,

Anbei eine Version mit Bugfix.
Ich hoffe, die löst die Probleme.

Gruß
   Stefan

Edit: Versionsnummer noch erhöht ...
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Kornelius777 am 15 Februar 2019, 22:32:48
Ja - läuft.
Danke für den schnellen fix!
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 15 Februar 2019, 22:49:56
Sorry für den Ärger.
Durch den Umbau für analoge Pins ist ein kleiner Fehler reingekommen, den ich beim Testen nicht bemerkt habe, da ich die Konfiguration im Board EEPROM gespeichert habe (set saveConfig).

Gruß
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: FunkOdyssey am 15 Februar 2019, 23:50:01
Danke, Stefan, für den Fix. Läuft scheinbar.
Übrigens bist du mit der Version einen Monat in der Zukunft. 😃
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 16 Februar 2019, 08:20:58
Danke für den Hinweis.
Hab es korrigiert und eingecheckt.

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: event horizon am 16 Februar 2019, 18:43:04
Bei mir läuft es auch wieder.

Vielen Dank für das rasche Update!

Ferdi
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 18 Februar 2019, 08:08:43
Bei mir gibt läuft es momentan garnicht.

Die Verbindung zum wemos d1 mini bricht immer wieder ab.
Wifi Verbindung steht aber da ein Ping durch geht.

Dazu werden auch wenn er mal verbunden ist keine Impulse gezählt.
Sketch und Modul sind aktuell.

Kann ich noch etwas zum bug tracking beitragen?

Gruß Robert


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: SamNitro am 18 Februar 2019, 09:03:11
Ich stecke selber noch in den Kinderschuhen bei dem Thema, mein wemos d1 Mini hatte auch immer verbindungsabbrüche. Nachdem ich dann ein NodeMCU genommen habe war wenigstens die Verbindung stabil aber mit einer Drahtbrücke zählt er nicht alle impulse.

Hoffe dir hilft das erstmal weiter
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 18 Februar 2019, 09:48:00
Ich stecke selber noch in den Kinderschuhen bei dem Thema, mein wemos d1 Mini hatte auch immer verbindungsabbrüche. Nachdem ich dann ein NodeMCU genommen habe war wenigstens die Verbindung stabil aber mit einer Drahtbrücke zählt er nicht alle impulse.

Hoffe dir hilft das erstmal weiter


Danke.
Ich habe mir am Wochenende eine Lolin d32 bestellt.
Wenn das so klappt wie gedacht, setzte ich lieber wieder auf eine Kabelverbindung.

Hat jemand eigentlich eine Lösung für einen arduino mit einer USV?


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: FunkOdyssey am 18 Februar 2019, 19:55:34
Sorry, Stefan, doofe Frage:
Aber kann es sein, dass es im Modul noch irgendwo eine Stelle gibt, an der die PIN-Zuordnung noch nicht durchgeführt wurde? Ich habe plötzlich starke Abweichung zwischen Gaszähler und ArduCounter.
Der Gaszähler hat höhere Werte.

Kann es am PIN-Attribut liegen, den ich aber immer so schon hatte:
pinD4: falling pullup 60

List vom Device (hier): https://forum.fhem.de/index.php/topic,19285.msg906300.html#msg906300
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 18 Februar 2019, 21:37:12
Hallo,

das eigentliche Zählen im Sketch hat sich nicht geändert. Wenn ein Pin prinzipiell zählt, sollte er so wie vorher auch zählen.
Falls es Abweichungen gibt, würde ich Verbose im Modul auf 5 setzen und wenn der Strom- oder Gaszähler nicht gerade viele Impulse / Sekunde liefert, auch devVerbose auf 20.
Dann sollte sehr viel Zusatzinformation entstehen. Auf einem ESP könnte man außerdem die Pin-History von 20 Impulsen auf z.B. 100 Impulse setzen.
(Zeile 162 im Sketch: #define MAX_HIST 20) Beim Arduino fehlt der nötige Speicher umd mehr als 20 zu speichern.)

Bei devVerbose 20 meldet der Sketch jeden Pegelwechsel an Fhem und dort landet es im Log:
2019.02.18 20:35:16 3: ACF: device: pin 21 ( internal 21 )  to 1  histIdx 11  count 6985  reject 0
2019.02.18 20:35:39 3: ACF: device: pin 21 ( internal 21 )  to 0  histIdx 12  count 6986  reject 0
2019.02.18 20:35:39 3: ACF: device: pin 21 ( internal 21 )  to 1  histIdx 13  count 6986  reject 0

Wenn Verbindungen abbrechen, liegt es vermutlich an der Qualität der WLAN-Verbindung.
Zwischen ESP und Fhem werden Keepalive-Nachrichten ausgetauscht und wenn mehrere verloren gehen, dann wird die Verbindung getrennt und neu aufgebaut. Im Log sollte bei verbose 5 alles drinstehen.
Zur Fehlersuche ist deshalb ein Log die Basis...

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 20 Februar 2019, 21:54:19
Hallo,

das eigentliche Zählen im Sketch hat sich nicht geändert. Wenn ein Pin prinzipiell zählt, sollte er so wie vorher auch zählen.
Falls es Abweichungen gibt, würde ich Verbose im Modul auf 5 setzen und wenn der Strom- oder Gaszähler nicht gerade viele Impulse / Sekunde liefert, auch devVerbose auf 20.
Dann sollte sehr viel Zusatzinformation entstehen. Auf einem ESP könnte man außerdem die Pin-History von 20 Impulsen auf z.B. 100 Impulse setzen.
(Zeile 162 im Sketch: #define MAX_HIST 20) Beim Arduino fehlt der nötige Speicher umd mehr als 20 zu speichern.)

Bei devVerbose 20 meldet der Sketch jeden Pegelwechsel an Fhem und dort landet es im Log:
2019.02.18 20:35:16 3: ACF: device: pin 21 ( internal 21 )  to 1  histIdx 11  count 6985  reject 0
2019.02.18 20:35:39 3: ACF: device: pin 21 ( internal 21 )  to 0  histIdx 12  count 6986  reject 0
2019.02.18 20:35:39 3: ACF: device: pin 21 ( internal 21 )  to 1  histIdx 13  count 6986  reject 0

Wenn Verbindungen abbrechen, liegt es vermutlich an der Qualität der WLAN-Verbindung.
Zwischen ESP und Fhem werden Keepalive-Nachrichten ausgetauscht und wenn mehrere verloren gehen, dann wird die Verbindung getrennt und neu aufgebaut. Im Log sollte bei verbose 5 alles drinstehen.
Zur Fehlersuche ist deshalb ein Log die Basis...

Gruss
   Stefan

Heute ist der wemos Lolin d32 pro gekommen.
Vll komm ich am we dazu ihn kn Betrieb zu nehmen.

Wenn ich die wlan Daten nicht setzte sollte doch die Kommunikation per seriöser Schnittstelle laufen oder?

Weit weg ist der NUC nicht, dann nehme ich lieber ein Kabel. Kabel geht immer, außer man. Bohrt es an [emoji23]

Gruß Robert


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: FunkOdyssey am 21 Februar 2019, 12:23:39
Hallo,

das eigentliche Zählen im Sketch hat sich nicht geändert. Wenn ein Pin prinzipiell zählt, sollte er so wie vorher auch zählen.
Falls es Abweichungen gibt, würde ich Verbose im Modul auf 5 setzen und wenn der Strom- oder Gaszähler nicht gerade viele Impulse / Sekunde liefert, auch devVerbose auf 20.
Dann sollte sehr viel Zusatzinformation entstehen. Auf einem ESP könnte man außerdem die Pin-History von 20 Impulsen auf z.B. 100 Impulse setzen.
(Zeile 162 im Sketch: #define MAX_HIST 20) Beim Arduino fehlt der nötige Speicher umd mehr als 20 zu speichern.)

Bei devVerbose 20 meldet der Sketch jeden Pegelwechsel an Fhem und dort landet es im Log:
2019.02.18 20:35:16 3: ACF: device: pin 21 ( internal 21 )  to 1  histIdx 11  count 6985  reject 0
2019.02.18 20:35:39 3: ACF: device: pin 21 ( internal 21 )  to 0  histIdx 12  count 6986  reject 0
2019.02.18 20:35:39 3: ACF: device: pin 21 ( internal 21 )  to 1  histIdx 13  count 6986  reject 0

Wenn Verbindungen abbrechen, liegt es vermutlich an der Qualität der WLAN-Verbindung.
Zwischen ESP und Fhem werden Keepalive-Nachrichten ausgetauscht und wenn mehrere verloren gehen, dann wird die Verbindung getrennt und neu aufgebaut. Im Log sollte bei verbose 5 alles drinstehen.
Zur Fehlersuche ist deshalb ein Log die Basis...

Danke dir. Ich hatte alles so schön vorbereitet für ein aussagekräftiges Log und sogar Fotos der Zähler gemacht.
Helft mir bitte mal auf die Sprünge: Ich sehe wie die Gas-Therme definitiv um 06:00 Uhr ne Menge Gas verbraucht hat, aber der ArduCounter fing erst um 09:00 Uhr an, Zählerbewegungen festzustellen. Und im Log sehe ich dazu natürlich auch erst etwas um 08:30 Uhr.

Habt ihr einen Tipp wonach ich suchen muss? 10uf-Kondensator ist vorhanden. Widerstand habe ich seit Monaten nicht mehr im Einsatz.

Bis gestern hatte ich noch "falling pullup 60" im Einsatz. Aber ich hatte ja auch gestern schon Probleme mit dem Abdriften der Werte. Gas-Zähler ist weiter als FHEM-Zähler.

List
Internals:
   Board      NANO
   BoardDet   
   DEF        /dev/serial/by-id/usb-xx86_USB2.0-Serial-if00-port0@38400
   DeviceName /dev/serial/by-id/usb-xx86_USB2.0-Serial-if00-port0@38400
   FD         4
   Initialized 1
   LASTOPEN   1550736031.10957
   NAME       ArduCounter
   NOTIFYDEV  global
   NR         538
   NTFY_ORDER 50-ArduCounter
   PARTIAL   
   STATE      opened
   SketchCompile Jan  6 2019 17:11:47
   TYPE       ArduCounter
   VersionFirmware 3.10
   VersionModule 6.10 - 16.2.2019
   allowedPins 3,4,5,6,7,8,9,10,11,13,14,A0,15,A1,16,A2,17,A3,18,A4,19,A5,20,A6,21,A7
   buffer     
   deviceBooted 1550736043.0207
   devioLoglevel 3
   nextOpenDelay 60
   OLDREADINGS:
   READINGS:
     2019-02-21 12:20:59   Zaehler         8502026
     2019-02-21 12:20:59   calcCounterD4   1.75299999999992
     2019-02-21 12:20:59   calcCounterD4_i 0.001
     2019-02-21 12:20:59   countDiffD4     1
     2019-02-21 12:20:59   interpolatedLongD4 1766
     2019-02-21 12:20:59   lastMsgD4       R4 C140 D1/1 T88433 N12030499,0 X0 S139 A11085
     2019-02-21 12:20:59   longD4          1763
     2019-02-21 12:20:59   pinD4           140
     2019-02-21 12:20:59   powerD4         0.041
     2019-02-21 12:20:59   rejectD4        0
     2019-02-21 12:20:59   seqD4           139
     2019-02-21 09:00:31   state           opened
     2019-02-21 12:20:59   timeDiffD4      88433
   runningCfg:
     I          60 300 10 0
     T          100 110
Attributes:
   devVerbose 20
   disable    0
   event-on-change-reading .*
   flashCommand avrdude -p atmega328P -b 57600 -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   interval   60 300 10
   pinD4      falling pullup 30
   pulsesPerKWh 1000
   userReadings Zaehler:longD4.* monotonic {ReadingsVal($name,"pinD4",0)}
   userattr   pinD4 readingFactorD4 readingNameCountD4 readingNamePowerD4 verboseReadingsD4
   verbose    5
   verboseReadingsD4 1


Log
2019.02.21 09:00:31.109 3: ArduCounter: Notify called with events: INITIALIZED, open device and set timer to send hello to device
2019.02.21 09:00:31.109 4: ArduCounter: trying to open connection to /dev/serial/by-id/usb-xxxx_USB2.0-Serial-if00-port0@38400
2019.02.21 09:00:31.109 3: Opening ArduCounter device /dev/serial/by-id/usb-xxxx_USB2.0-Serial-if00-port0
2019.02.21 09:00:31.110 3: Setting ArduCounter serial parameters to 38400,8,N,1
2019.02.21 09:00:31.111 3: ArduCounter device opened
2019.02.21 09:00:31.111 5: ArduCounter: ArduCounter_Open succeeded in callback
2019.02.21 09:00:31.111 5: ArduCounter: ArduCounter_Open succeeded immediately

2019.02.21 09:00:43.020 3: ArduCounter: device: restoring config from EEPROM
2019.02.21 09:00:43.020 3: ArduCounter: device: intervals set to 60 300 10 0
2019.02.21 09:00:43.020 3: ArduCounter: device: analog thresholds set to 100 110
2019.02.21 09:00:43.020 3: ArduCounter: device sent hello: ArduCounter V3.10 on NANO compiled Jan  6 2019 17:11:47 Hello, pins 3,4,5,6,7,8,9,10,11,13,14,15,16,17,18,19,20,21 available T508,0 B508,0
2019.02.21 09:00:43.021 4: ArduCounter: device sent interval config 60 300 10 0
2019.02.21 09:00:43.021 4: ArduCounter: device sent analog threshold config 100 110

2019.02.21 09:00:44.284 5: ArduCounter: ConfigureDevice: pins in running config:
2019.02.21 09:00:44.284 5: ArduCounter: ConfigureDevice: pins from attrs: pinD4
2019.02.21 09:00:44.284 5: ArduCounter: ConfigureDevice: got running config - comparing
2019.02.21 09:00:44.284 5: ArduCounter: ConfigureDevice: comparing intervals (>60 300 10 0< vs >60 300 10 0< from attr)
2019.02.21 09:00:44.284 3: ArduCounter: ConfigureDevice: no analogThresholds attribute
2019.02.21 09:00:44.284 5: ArduCounter: ConfigureDevice: matches so far - now compare pins
2019.02.21 09:00:44.284 5: ArduCounter: ConfigureDevice: number of defined pins doesn't match ( vs. pinD4)
2019.02.21 09:00:44.284 5: ArduCounter: ConfigureDevice: now check for pins without attr in
2019.02.21 09:00:44.284 3: ArduCounter: ConfigureDevice: no match -> send config
2019.02.21 09:00:44.284 5: ArduCounter: ConfigureDevice calls Attr with pinD4 falling pullup 30
2019.02.21 09:00:44.284 5: SW: 4,2,1,30a.
2019.02.21 09:00:44.286 5: ArduCounter: ConfigureDevice calls Attr with interval 60 300 10
2019.02.21 09:00:44.286 5: SW: 60,300,10,0i.
2019.02.21 09:00:44.287 5: ArduCounter: ConfigureDevice: no pins in running config without attribute in Fhem
2019.02.21 09:00:44.326 3: ArduCounter: device: defined P4 falling pullup min 30
2019.02.21 09:00:44.326 3: ArduCounter: device: intervals set to 60 300 10 0


2019.02.21 09:03:03.034 5: ArduCounter: Device Time 150.499
2019.02.21 09:03:03.034 5: ArduCounter: Initialize device clock offset to 1550736032.53496
2019.02.21 09:03:03.034 4: ArduCounter: pin D4 (pin4) Cnt 2 (diff 1/2) in 71.008s from 09:01:52 until 09:03:03, seq 1, Rej 0, Avg 16217ms, result 0.051
2019.02.21 09:03:03.035 5: ArduCounter: pin D4 (pin4) device restarted at 09:00:43, last reported at 20:41:08, count changed from 69 to 2, sequence from 102 to 1
2019.02.21 09:03:03.035 4: ArduCounter: pin D4 (pin4) interpolation of missed pulses for pin D4 (pin4) not possible - no valid historic data.
2019.02.21 09:03:03.035 5: ArduCounter: pin D4 (pin4) adding rDiff 2 to long count 1623 and interpolated count 1626
2019.02.21 09:04:03.015 5: ArduCounter: Device Time 210.499
2019.02.21 09:04:03.016 4: ArduCounter: pin D4 (pin4) Cnt 3 (diff 1/1) in 74.761s from 09:02:48 until 09:04:03, seq 2, Rej 0, Avg 8844ms, result 0.048
2019.02.21 09:04:03.016 5: ArduCounter: pin D4 (pin4) adding rDiff 1 to long count 1625 and interpolated count 1628


2019.02.21 09:06:02.978 5: ArduCounter: Device Time 330.499
2019.02.21 09:06:02.978 4: ArduCounter: pin D4 (pin4) Cnt 4 (diff 1/1) in 76.969s from 09:04:46 until 09:06:02, seq 3, Rej 0, Avg 9195ms, result 0.047
2019.02.21 09:06:02.979 5: ArduCounter: pin D4 (pin4) adding rDiff 1 to long count 1626 and interpolated count 1629
2019.02.21 09:07:02.960 5: ArduCounter: Device Time 390.499
2019.02.21 09:07:02.960 4: ArduCounter: pin D4 (pin4) Cnt 5 (diff 1/1) in 76.198s from 09:05:46 until 09:07:02, seq 4, Rej 0, Avg 9272ms, result 0.047
2019.02.21 09:07:02.961 5: ArduCounter: pin D4 (pin4) adding rDiff 1 to long count 1627 and interpolated count 1630
2019.02.21 09:08:02.942 5: ArduCounter: Device Time 450.499
2019.02.21 09:08:02.942 4: ArduCounter: pin D4 (pin4) Cnt 6 (diff 1/1) in 76.330s from 09:06:46 until 09:08:02, seq 5, Rej 0, Avg 9212ms, result 0.047
2019.02.21 09:08:02.943 5: ArduCounter: pin D4 (pin4) adding rDiff 1 to long count 1628 and interpolated count 1631
2019.02.21 09:09:02.924 5: ArduCounter: Device Time 510.499
2019.02.21 09:09:02.925 4: ArduCounter: pin D4 (pin4) Cnt 7 (diff 1/1) in 76.513s from 09:07:46 until 09:09:02, seq 6, Rej 0, Avg 9236ms, result 0.047
2019.02.21 09:09:02.925 5: ArduCounter: pin D4 (pin4) adding rDiff 1 to long count 1629 and interpolated count 1632
2019.02.21 09:11:02.886 5: ArduCounter: Device Time 630.499
2019.02.21 09:11:02.887 4: ArduCounter: pin D4 (pin4) Cnt 8 (diff 1/1) in 77.407s from 09:09:45 until 09:11:02, seq 7, Rej 0, Avg 9487ms, result 0.047
2019.02.21 09:11:02.887 5: ArduCounter: pin D4 (pin4) adding rDiff 1 to long count 1630 and interpolated count 1633
2019.02.21 09:12:02.868 5: ArduCounter: Device Time 690.499
2019.02.21 09:12:02.869 4: ArduCounter: pin D4 (pin4) Cnt 9 (diff 1/1) in 76.950s from 09:10:45 until 09:12:02, seq 8, Rej 0, Avg 9113ms, result 0.047
2019.02.21 09:12:02.869 5: ArduCounter: pin D4 (pin4) adding rDiff 1 to long count 1631 and interpolated count 1634


2019.02.21 09:13:02.850 5: ArduCounter: Device Time 750.499
2019.02.21 09:13:02.850 4: ArduCounter: pin D4 (pin4) Cnt 10 (diff 1/1) in 76.273s from 09:11:46 until 09:13:02, seq 9, Rej 0, Avg 9103ms, result 0.047
2019.02.21 09:13:02.850 5: ArduCounter: pin D4 (pin4) adding rDiff 1 to long count 1632 and interpolated count 1635
2019.02.21 09:15:02.813 5: ArduCounter: Device Time 870.499
2019.02.21 09:15:02.813 4: ArduCounter: pin D4 (pin4) Cnt 11 (diff 1/1) in 75.508s from 09:13:47 until 09:15:02, seq 10, Rej 0, Avg 9134ms, result 0.048
2019.02.21 09:15:02.814 5: ArduCounter: pin D4 (pin4) adding rDiff 1 to long count 1633 and interpolated count 1636
2019.02.21 09:16:02.795 5: ArduCounter: Device Time 930.499
2019.02.21 09:16:02.796 4: ArduCounter: pin D4 (pin4) Cnt 12 (diff 1/1) in 74.512s from 09:14:48 until 09:16:02, seq 11, Rej 0, Avg 9198ms, result 0.048
2019.02.21 09:16:02.796 5: ArduCounter: pin D4 (pin4) adding rDiff 1 to long count 1634 and interpolated count 1637
2019.02.21 09:17:02.777 5: ArduCounter: Device Time 990.499
2019.02.21 09:17:02.778 4: ArduCounter: pin D4 (pin4) Cnt 13 (diff 1/1) in 74.971s from 09:15:47 until 09:17:02, seq 12, Rej 0, Avg 9447ms, result 0.048
2019.02.21 09:17:02.778 5: ArduCounter: pin D4 (pin4) adding rDiff 1 to long count 1635 and interpolated count 1638
2019.02.21 09:18:02.759 5: ArduCounter: Device Time 1050.499
2019.02.21 09:18:02.759 4: ArduCounter: pin D4 (pin4) Cnt 14 (diff 1/1) in 76.436s from 09:16:46 until 09:18:02, seq 13, Rej 0, Avg 10118ms, result 0.047
2019.02.21 09:18:02.759 5: ArduCounter: pin D4 (pin4) adding rDiff 1 to long count 1636 and interpolated count 1639
2019.02.21 09:20:02.723 5: ArduCounter: Device Time 1170.499
2019.02.21 09:20:02.723 4: ArduCounter: pin D4 (pin4) Cnt 15 (diff 1/1) in 79.163s from 09:18:43 until 09:20:02, seq 14, Rej 0, Avg 10674ms, result 0.045
2019.02.21 09:20:02.724 5: ArduCounter: pin D4 (pin4) adding rDiff 1 to long count 1637 and interpolated count 1640
2019.02.21 09:21:02.705 5: ArduCounter: Device Time 1230.499
2019.02.21 09:21:02.705 4: ArduCounter: pin D4 (pin4) Cnt 16 (diff 1/1) in 79.718s from 09:19:42 until 09:21:02, seq 15, Rej 0, Avg 10701ms, result 0.045
2019.02.21 09:21:02.706 5: ArduCounter: pin D4 (pin4) adding rDiff 1 to long count 1638 and interpolated count 1641
2019.02.21 09:22:02.685 5: ArduCounter: Device Time 1290.499
2019.02.21 09:22:02.686 4: ArduCounter: pin D4 (pin4) Cnt 17 (diff 1/1) in 80.482s from 09:20:42 until 09:22:02, seq 16, Rej 0, Avg 10734ms, result 0.045
2019.02.21 09:22:02.686 5: ArduCounter: pin D4 (pin4) adding rDiff 1 to long count 1639 and interpolated count 1642
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: FunkOdyssey am 21 Februar 2019, 14:40:47
So, jetzt habe ich ein Log über einen kurzen Zeitraum, wo der Gaszähler den ArduCounter wieder überholt hat.

13:52 Uhr      8504.889 (Gaszähler)       8504.889 (FHEM)           START
14:29 Uhr      8505.025 (Gaszähler)       8504.903 (FHEM)           DIFFERENZ

Ergibt ein Delta von 0.122 in 37 Minuten.


FHEM-Log:

2019.02.21 13:49:57.760 5: ArduCounter: Device Time 17370.499
2019.02.21 13:49:57.760 4: ArduCounter: pin D4 (pin4) Cnt 191 (diff 0/0) in 300.000s from 13:44:57 until 13:49:57, seq 193, Rej 0, Avg ms, result 0.000
2019.02.21 13:49:57.761 5: ArduCounter: pin D4 (pin4) adding rDiff 0 to long count 1814 and interpolated count 1817
2019.02.21 13:54:57.668 5: ArduCounter: Device Time 17670.499
2019.02.21 13:54:57.668 4: ArduCounter: pin D4 (pin4) Cnt 191 (diff 0/0) in 300.000s from 13:49:57 until 13:54:57, seq 194, Rej 0, Avg ms, result 0.000
2019.02.21 13:54:57.669 5: ArduCounter: pin D4 (pin4) adding rDiff 0 to long count 1814 and interpolated count 1817
2019.02.21 13:59:57.576 5: ArduCounter: Device Time 17970.499
2019.02.21 13:59:57.576 4: ArduCounter: pin D4 (pin4) Cnt 191 (diff 0/0) in 300.000s from 13:54:57 until 13:59:57, seq 195, Rej 0, Avg ms, result 0.000
2019.02.21 13:59:57.577 5: ArduCounter: pin D4 (pin4) adding rDiff 0 to long count 1814 and interpolated count 1817
2019.02.21 14:04:57.484 5: ArduCounter: Device Time 18270.499
2019.02.21 14:04:57.484 4: ArduCounter: pin D4 (pin4) Cnt 191 (diff 0/0) in 300.000s from 13:59:57 until 14:04:57, seq 196, Rej 0, Avg ms, result 0.000
2019.02.21 14:04:57.485 5: ArduCounter: pin D4 (pin4) adding rDiff 0 to long count 1814 and interpolated count 1817
2019.02.21 14:09:57.391 5: ArduCounter: Device Time 18570.499
2019.02.21 14:09:57.392 4: ArduCounter: pin D4 (pin4) Cnt 191 (diff 0/0) in 300.000s from 14:04:57 until 14:09:57, seq 197, Rej 0, Avg ms, result 0.000
2019.02.21 14:09:57.392 5: ArduCounter: pin D4 (pin4) adding rDiff 0 to long count 1814 and interpolated count 1817
2019.02.21 14:14:57.300 5: ArduCounter: Device Time 18870.499
2019.02.21 14:14:57.300 4: ArduCounter: pin D4 (pin4) Cnt 191 (diff 0/0) in 300.000s from 14:09:57 until 14:14:57, seq 198, Rej 0, Avg ms, result 0.000
2019.02.21 14:14:57.301 5: ArduCounter: pin D4 (pin4) adding rDiff 0 to long count 1814 and interpolated count 1817
2019.02.21 14:17:57.246 5: ArduCounter: Device Time 19050.499
2019.02.21 14:17:57.246 4: ArduCounter: pin D4 (pin4) Cnt 192 (diff 1/1) in 157.845s from 14:15:19 until 14:17:57, seq 199, Rej 0, Avg 4132ms, result 0.023
2019.02.21 14:17:57.247 5: ArduCounter: pin D4 (pin4) adding rDiff 1 to long count 1814 and interpolated count 1817
2019.02.21 14:18:57.228 5: ArduCounter: Device Time 19110.499
2019.02.21 14:18:57.228 4: ArduCounter: pin D4 (pin4) Cnt 195 (diff 3/3) in 62.751s from 14:17:54 until 14:18:57, seq 200, Rej 0, Avg 2774ms, result 0.172
2019.02.21 14:18:57.229 5: ArduCounter: pin D4 (pin4) adding rDiff 3 to long count 1815 and interpolated count 1818
2019.02.21 14:19:57.210 5: ArduCounter: Device Time 19170.499
2019.02.21 14:19:57.210 4: ArduCounter: pin D4 (pin4) Cnt 198 (diff 3/3) in 68.392s from 14:18:48 until 14:19:57, seq 201, Rej 0, Avg 3524ms, result 0.158
2019.02.21 14:19:57.211 5: ArduCounter: pin D4 (pin4) adding rDiff 3 to long count 1818 and interpolated count 1821
2019.02.21 14:20:57.191 5: ArduCounter: Device Time 19230.499
2019.02.21 14:20:57.192 4: ArduCounter: pin D4 (pin4) Cnt 200 (diff 2/2) in 65.801s from 14:19:51 until 14:20:57, seq 202, Rej 0, Avg 5234ms, result 0.109
2019.02.21 14:20:57.193 5: ArduCounter: pin D4 (pin4) adding rDiff 2 to long count 1821 and interpolated count 1824
2019.02.21 14:21:57.172 5: ArduCounter: Device Time 19290.499
2019.02.21 14:21:57.173 4: ArduCounter: pin D4 (pin4) Cnt 201 (diff 1/1) in 40.568s from 14:21:16 until 14:21:57, seq 203, Rej 0, Avg 6194ms, result 0.089
2019.02.21 14:21:57.173 5: ArduCounter: pin D4 (pin4) adding rDiff 1 to long count 1823 and interpolated count 1826
2019.02.21 14:22:57.154 5: ArduCounter: Device Time 19350.499
2019.02.21 14:22:57.154 4: ArduCounter: pin D4 (pin4) Cnt 202 (diff 1/1) in 45.762s from 14:22:11 until 14:22:57, seq 204, Rej 0, Avg 6967ms, result 0.079
2019.02.21 14:22:57.155 5: ArduCounter: pin D4 (pin4) adding rDiff 1 to long count 1824 and interpolated count 1827
2019.02.21 14:23:57.137 5: ArduCounter: Device Time 19410.499
2019.02.21 14:23:57.137 4: ArduCounter: pin D4 (pin4) Cnt 203 (diff 1/1) in 51.460s from 14:23:05 until 14:23:57, seq 205, Rej 0, Avg 7641ms, result 0.070
2019.02.21 14:23:57.138 5: ArduCounter: pin D4 (pin4) adding rDiff 1 to long count 1825 and interpolated count 1828
2019.02.21 14:24:57.118 5: ArduCounter: Device Time 19470.499
2019.02.21 14:24:57.118 4: ArduCounter: pin D4 (pin4) Cnt 204 (diff 1/1) in 56.654s from 14:24:00 until 14:24:57, seq 206, Rej 0, Avg 8406ms, result 0.064
2019.02.21 14:24:57.119 5: ArduCounter: pin D4 (pin4) adding rDiff 1 to long count 1826 and interpolated count 1829
2019.02.21 14:25:57.099 5: ArduCounter: Device Time 19530.499
2019.02.21 14:25:57.099 4: ArduCounter: pin D4 (pin4) Cnt 205 (diff 1/1) in 60.193s from 14:24:56 until 14:25:57, seq 207, Rej 0, Avg 8858ms, result 0.060
2019.02.21 14:25:57.100 5: ArduCounter: pin D4 (pin4) adding rDiff 1 to long count 1827 and interpolated count 1830
2019.02.21 14:30:57.006 5: ArduCounter: Device Time 19830.499
2019.02.21 14:30:57.007 4: ArduCounter: pin D4 (pin4) Cnt 205 (diff 0/0) in 350.574s from 14:25:06 until 14:30:57, seq 208, Rej 0, Avg ms, result 0.000
2019.02.21 14:30:57.008 5: ArduCounter: pin D4 (pin4) adding rDiff 0 to long count 1828 and interpolated count 1831

ArduCounter-Log

2019-02-21_13:49:57 ArduCounter lastMsgD4: R4 C191 D0/0 T300000 N17370499,0 X0 S193
2019-02-21_13:49:57 ArduCounter seqD4: 193
2019-02-21_13:52:55 ArduCounter Zaehler: 8504889
2019-02-21_13:54:57 ArduCounter lastMsgD4: R4 C191 D0/0 T300000 N17670499,0 X0 S194
2019-02-21_13:54:57 ArduCounter seqD4: 194
2019-02-21_13:59:57 ArduCounter lastMsgD4: R4 C191 D0/0 T300000 N17970499,0 X0 S195
2019-02-21_13:59:57 ArduCounter seqD4: 195
2019-02-21_14:04:57 ArduCounter lastMsgD4: R4 C191 D0/0 T300000 N18270499,0 X0 S196
2019-02-21_14:04:57 ArduCounter seqD4: 196
2019-02-21_14:09:57 ArduCounter lastMsgD4: R4 C191 D0/0 T300000 N18570499,0 X0 S197
2019-02-21_14:09:57 ArduCounter seqD4: 197
2019-02-21_14:14:57 ArduCounter lastMsgD4: R4 C191 D0/0 T300000 N18870499,0 X0 S198
2019-02-21_14:14:57 ArduCounter seqD4: 198
2019-02-21_14:17:57 ArduCounter powerD4: 0.023
2019-02-21_14:17:57 ArduCounter timeDiffD4: 157845
2019-02-21_14:17:57 ArduCounter countDiffD4: 1
2019-02-21_14:17:57 ArduCounter lastMsgD4: R4 C192 D1/1 T157845 N19050499,0 X0 S199 A4132
2019-02-21_14:17:57 ArduCounter pinD4: 192
2019-02-21_14:17:57 ArduCounter longD4: 1815
2019-02-21_14:17:57 ArduCounter interpolatedLongD4: 1818
2019-02-21_14:17:57 ArduCounter calcCounterD4: 1.80499999999992
2019-02-21_14:17:57 ArduCounter seqD4: 199
2019-02-21_14:17:57 ArduCounter Zaehler: 8504890
2019-02-21_14:18:57 ArduCounter powerD4: 0.172
2019-02-21_14:18:57 ArduCounter timeDiffD4: 62751
2019-02-21_14:18:57 ArduCounter countDiffD4: 3
2019-02-21_14:18:57 ArduCounter lastMsgD4: R4 C195 D3/3 T62751 N19110499,0 X0 S200 A2774
2019-02-21_14:18:57 ArduCounter pinD4: 195
2019-02-21_14:18:57 ArduCounter longD4: 1818
2019-02-21_14:18:57 ArduCounter interpolatedLongD4: 1821
2019-02-21_14:18:57 ArduCounter calcCounterD4: 1.80799999999992
2019-02-21_14:18:57 ArduCounter seqD4: 200
2019-02-21_14:18:57 ArduCounter Zaehler: 8504893
2019-02-21_14:19:57 ArduCounter powerD4: 0.158
2019-02-21_14:19:57 ArduCounter timeDiffD4: 68392
2019-02-21_14:19:57 ArduCounter lastMsgD4: R4 C198 D3/3 T68392 N19170499,0 X0 S201 A3524
2019-02-21_14:19:57 ArduCounter pinD4: 198
2019-02-21_14:19:57 ArduCounter longD4: 1821
2019-02-21_14:19:57 ArduCounter interpolatedLongD4: 1824
2019-02-21_14:19:57 ArduCounter calcCounterD4: 1.81099999999992
2019-02-21_14:19:57 ArduCounter seqD4: 201
2019-02-21_14:19:57 ArduCounter Zaehler: 8504896
2019-02-21_14:20:57 ArduCounter powerD4: 0.109
2019-02-21_14:20:57 ArduCounter timeDiffD4: 65801
2019-02-21_14:20:57 ArduCounter countDiffD4: 2
2019-02-21_14:20:57 ArduCounter lastMsgD4: R4 C200 D2/2 T65801 N19230499,0 X0 S202 A5234
2019-02-21_14:20:57 ArduCounter pinD4: 200
2019-02-21_14:20:57 ArduCounter longD4: 1823
2019-02-21_14:20:57 ArduCounter interpolatedLongD4: 1826
2019-02-21_14:20:57 ArduCounter calcCounterD4: 1.81299999999992
2019-02-21_14:20:57 ArduCounter seqD4: 202
2019-02-21_14:20:57 ArduCounter Zaehler: 8504898
2019-02-21_14:21:57 ArduCounter powerD4: 0.089
2019-02-21_14:21:57 ArduCounter timeDiffD4: 40568
2019-02-21_14:21:57 ArduCounter countDiffD4: 1
2019-02-21_14:21:57 ArduCounter lastMsgD4: R4 C201 D1/1 T40568 N19290499,0 X0 S203 A6194
2019-02-21_14:21:57 ArduCounter pinD4: 201
2019-02-21_14:21:57 ArduCounter longD4: 1824
2019-02-21_14:21:57 ArduCounter interpolatedLongD4: 1827
2019-02-21_14:21:57 ArduCounter calcCounterD4: 1.81399999999992
2019-02-21_14:21:57 ArduCounter seqD4: 203
2019-02-21_14:21:57 ArduCounter Zaehler: 8504899
2019-02-21_14:22:57 ArduCounter powerD4: 0.079
2019-02-21_14:22:57 ArduCounter timeDiffD4: 45762
2019-02-21_14:22:57 ArduCounter lastMsgD4: R4 C202 D1/1 T45762 N19350499,0 X0 S204 A6967
2019-02-21_14:22:57 ArduCounter pinD4: 202
2019-02-21_14:22:57 ArduCounter longD4: 1825
2019-02-21_14:22:57 ArduCounter interpolatedLongD4: 1828
2019-02-21_14:22:57 ArduCounter calcCounterD4: 1.81499999999992
2019-02-21_14:22:57 ArduCounter seqD4: 204
2019-02-21_14:22:57 ArduCounter Zaehler: 8504900
2019-02-21_14:23:57 ArduCounter powerD4: 0.070
2019-02-21_14:23:57 ArduCounter timeDiffD4: 51460
2019-02-21_14:23:57 ArduCounter lastMsgD4: R4 C203 D1/1 T51460 N19410499,0 X0 S205 A7641
2019-02-21_14:23:57 ArduCounter pinD4: 203
2019-02-21_14:23:57 ArduCounter longD4: 1826
2019-02-21_14:23:57 ArduCounter interpolatedLongD4: 1829
2019-02-21_14:23:57 ArduCounter calcCounterD4: 1.81599999999992
2019-02-21_14:23:57 ArduCounter seqD4: 205
2019-02-21_14:23:57 ArduCounter Zaehler: 8504901
2019-02-21_14:24:57 ArduCounter powerD4: 0.064
2019-02-21_14:24:57 ArduCounter timeDiffD4: 56654
2019-02-21_14:24:57 ArduCounter lastMsgD4: R4 C204 D1/1 T56654 N19470499,0 X0 S206 A8406
2019-02-21_14:24:57 ArduCounter pinD4: 204
2019-02-21_14:24:57 ArduCounter longD4: 1827
2019-02-21_14:24:57 ArduCounter interpolatedLongD4: 1830
2019-02-21_14:24:57 ArduCounter calcCounterD4: 1.81699999999992
2019-02-21_14:24:57 ArduCounter seqD4: 206
2019-02-21_14:24:57 ArduCounter Zaehler: 8504902
2019-02-21_14:25:57 ArduCounter powerD4: 0.060
2019-02-21_14:25:57 ArduCounter timeDiffD4: 60193
2019-02-21_14:25:57 ArduCounter lastMsgD4: R4 C205 D1/1 T60193 N19530499,0 X0 S207 A8858
2019-02-21_14:25:57 ArduCounter pinD4: 205
2019-02-21_14:25:57 ArduCounter longD4: 1828
2019-02-21_14:25:57 ArduCounter interpolatedLongD4: 1831
2019-02-21_14:25:57 ArduCounter calcCounterD4: 1.81799999999992
2019-02-21_14:25:57 ArduCounter seqD4: 207
2019-02-21_14:25:57 ArduCounter Zaehler: 8504903
2019-02-21_14:30:57 ArduCounter powerD4: 0.000
2019-02-21_14:30:57 ArduCounter timeDiffD4: 350574
2019-02-21_14:30:57 ArduCounter countDiffD4: 0
2019-02-21_14:30:57 ArduCounter lastMsgD4: R4 C205 D0/0 T350574 N19830499,0 X0 S208
2019-02-21_14:30:57 ArduCounter seqD4: 208
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 21 Februar 2019, 19:22:28
Hallo FunkOdyssey,

sieht so aus, als ob Dein Arduino in dem besagten Zeitraum gar keine Pegeländerungen am Eingang bekommt.

Kann es sein, dass am Kabel ein Wackelkontakt ist?

Wie ist der Zähler denn am Arduino angeschlossen und wie ist der Pin jetzt definiert? Mit Pullup oder ohne?

Mit minimaler Pulslänge etc. scheint es nichts zu tun zu haben. Soweit ich das Protokoll lese kommen bei Dir ja eher nur 3 Impulse je Minute und die dauern dann auch mehrere Sekunden.

setzte doch mal verbose auf 5 und devVerbose auf 20, damit Du jede Pegeländerung im Protokoll sehen kannst.

Gruss
   Stefan

Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: FunkOdyssey am 21 Februar 2019, 20:19:17
sieht so aus, als ob Dein Arduino in dem besagten Zeitraum gar keine Pegeländerungen am Eingang bekommt.

Sieht danach aus. Und das kann nicht damit zu haben, dass der Arduino die Pegeländerungen einfach nur nicht erkennt?

Kann es sein, dass am Kabel ein Wackelkontakt ist?

Wäre logisch, aber ich habe es doppelt geprüft. Es läuft ja auch relativ lange und das ohne irgendeine Berührung danach.

Wie ist der Zähler denn am Arduino angeschlossen und wie ist der Pin jetzt definiert? Mit Pullup oder ohne?

Ich haben einen Elster IN-Z65, den ich heute sogar richtig festgeschraubt habe. Vorsichtshalber. :-)
Dann geht es auf den Arduino Nano, Pin D4. Und einen 10uf Kondensator, um das Prellen zu vermeiden. Einen Hardware-Pullup-Widerstand habe ich nicht angeschlossen. Nur die Konfiguration in FHEM.
Aktuell: pind4 = falling pullup 5
Aber auch bereits mit 60 und 30 getestet.

Mit minimaler Pulslänge etc. scheint es nichts zu tun zu haben. Soweit ich das Protokoll lese kommen bei Dir ja eher nur 3 Impulse je Minute und die dauern dann auch mehrere Sekunden.

Je nachdem ob ich Heißwasser öffne oder die Fußbodenheizung nachlegt. Dann könnte auch mehr passieren. Aber du hast Recht. Aktuell dürfte der sich nur recht langsam drehen. Ich sehe das nur leider sehr selten.

setzte doch mal verbose auf 5 und devVerbose auf 20, damit Du jede Pegeländerung im Protokoll sehen kannst.

Das habe ich ja bereits gemacht und mich gewundert, dass ich nicht die Ausgabe erhalten wie du gezeigt hattest.
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 23 Februar 2019, 12:57:22
Hallo FunkOdyssey,

Es kann sein, dass devVerbose verloren gegangen ist, wenn Dein Board neu gestartet hat.
Ich habe nochmal eine neue Version angehängt, in der die Debug-Ausgaben erweitert sind.
devVerbose wird jetzt auch nach einem Neustart des Boards neu gesetzt und es gibt ein neues "get History", das (sofern devVerbose >5 ist) die detaillierte pin History nach einer Meldung des Boards lesbarer aufbereitet.

Sieht danach aus. Und das kann nicht damit zu haben, dass der Arduino die Pegeländerungen einfach nur nicht erkennt?
Die Frage ist warum er die Pegeländerungen nicht erkennt.
Ich glaube nicht, dass es an der Firmware liegt, aber mit den Debug-Ausgaben sollte sich das klären lassen.
Bitte versuch nochmal verbose 5 und devVerbose 20.
Die Ausgabe der pin-Änderungen ist dabei dann unabhängig vom Interrupt-Händling und dem Zählen.

Wäre logisch, aber ich habe es doppelt geprüft. Es läuft ja auch relativ lange und das ohne irgendeine Berührung danach.
Ich haben einen Elster IN-Z65, den ich heute sogar richtig festgeschraubt habe. Vorsichtshalber. :-)
Dann geht es auf den Arduino Nano, Pin D4. Und einen 10uf Kondensator, um das Prellen zu vermeiden. Einen Hardware-Pullup-Widerstand habe ich nicht angeschlossen. Nur die Konfiguration in FHEM.
Aktuell: pind4 = falling pullup 5
Aber auch bereits mit 60 und 30 getestet.
Da muss ich nochmal nachfragen:
der Zähler geht auf D4 und das andere Ende? Auf GND?
Der 10 uF Kondensator hängt wo? Direkt zwischen D4 und GND? Das könnte ungesund sein.
Generell sollte so ein Kondensator gar nicht nötig sein. Die Angabe der minimalen Pulslänge (die letzte Zahl beim Attribut "attr XY pinD4 falling pullup 60") - hier also 60 ist genau dazu da, Prellen oder ähnliche Störungen, die kürzer als 60 Millisekunden sind zu filtern. Bei get History sieht man solche Aktivitäten.

Je nachdem ob ich Heißwasser öffne oder die Fußbodenheizung nachlegt. Dann könnte auch mehr passieren. Aber du hast Recht. Aktuell dürfte der sich nur recht langsam drehen. Ich sehe das nur leider sehr selten.
Das habe ich ja bereits gemacht und mich gewundert, dass ich nicht die Ausgabe erhalten wie du gezeigt hattest.

das sollte mit der neuen Version jetzt funktionieren. Ich hoffe die Log-Ausgabe ist dann aufschlussreich.
Wenn wieder Impulse nicht gezählt werden und auch im Log keine Änderung angezeigt wird, dann hätte ich Deinen Kondensator oder den Nano in Verdacht.

Gruss
   Stefan

EDIT 9.7.19: neue Version ist eingecheckt (Firmware Quellcode unter contrib/arduino, Hex-File für den Arduino Nano unter FHEM/firmware)
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 23 Februar 2019, 19:37:22
Hallo,

ich habe noch die Dokumentation für "get History" und das Attribut MaxHist ergänzt und die neue Version eingecheckt.

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: tpm88 am 23 Februar 2019, 19:43:48
Hallo Stefan,

mein ArduCounter auf einem Wemos D1 Mini zählt ebenfalls mit der neuen Version von Ende Januar nicht mehr.

Ich habe eben das neue Modul von heute eingespielt und werde gleich entsprechende Logs zusammenstellen.

Gruß
Tobias
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: SamNitro am 23 Februar 2019, 19:48:55
Könnte mir mal jemand bitte auf die Sprünge helfen wie ich meinen Zaehler auf eine kommastelle bekomme

Internals:
   Board      ESP8266
   BoardDet    ESP8266_NODEMCU
   DEF        10.1.1.44:80
   DeviceName 10.1.1.44:80
   FD         19
   FUUID      5c5b580f-f33f-19ae-2fdd-f55fd3a6f2c1034a
   Initialized 1
   LASTOPEN   1550855874.90837
   NAME       AC
   NOTIFYDEV  global
   NR         175
   NTFY_ORDER 50-AC
   PARTIAL   
   STATE      opened
   SketchCompile Feb 22 2019 18:01:12
   TCP        1
   TYPE       ArduCounter
   VersionFirmware 3.12
   VersionModule 6.10 - 16.2.2019
   WaitForAlive 0
   allowedPins 0,1,2,5,17,A0
   buffer     
   deviceBooted 1550855859.01573
   devioLoglevel 3
   nextOpenDelay 60
   READINGS:
     2019-02-23 19:45:27   Zaehler         410.313000000002
     2019-02-23 19:45:27   calcCounterD2   9.41199999999984
     2019-02-23 19:45:27   calcCounterD2_i 0
     2019-02-23 19:45:27   countDiffD2     2
     2019-02-23 19:45:27   interpolatedLongD2 9469
     2019-02-23 19:45:27   longD2          9453
     2019-02-23 19:45:27   pinD2           9419
     2019-02-23 19:45:27   powerD2         0.273
     2019-02-23 19:45:27   rejectD2        7407
     2019-02-23 19:45:27   seqD2           45
     2019-02-22 18:17:54   state           opened
     2019-02-23 19:45:27   timeDiffD2      26372
   runningCfg:
     2          falling pullup 30
     I          30 60 2 2
     T          100 110
     V          0
Attributes:
   disable    0
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   pinD2      falling pullup 30
   pulsesPerKWh 1000
   room       Zähler,
   userReadings Zaehler:longD2.* monotonic {ReadingsVal($name,"pinD2",0)/1000}
   userattr   pinD2


Danke Gruß Patrick
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: tpm88 am 23 Februar 2019, 19:52:11
Die Pegeländerungen - zeitgleich mit dem Leuchten der roten LED am Ferrarisleser -  werden erkannt, aber offenbar nicht gezählt.

2019.02.23 19:34:36 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 0  histIdx 1  count 0  reject 0
2019.02.23 19:34:40 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 1  histIdx 2  count 0  reject 0


So, hier erste Logs mit verbose 5 und devVerbose 20.


FHEM-Log:

2019.02.23 19:32:14 0: HourCounter CN.S0_Strom Define.228 parameters: CN.S0_Strom HourCounter AC_Strom:long5:.*
2019.02.23 19:32:15 3: AC_Strom: disable attribute cleared
2019.02.23 19:32:17 3: AC_Strom: Notify called with events: INITIALIZED, open device and set timer to send hello to device
2019.02.23 19:32:17 3: Opening AC_Strom device 192.168.8.69:80
2019.02.23 19:32:19 3: AC_Strom device opened
2019.02.23 19:32:19 3: AC_Strom: device sent hello: ArduCounter V3.12 on ESP8266 ESP8266_WEMOS_D1MINI compiled Feb 22 2019 21:44:47 Hello, pins 0,1,2,5,17 available T77966179,0 B560,0
2019.02.23 19:32:23 3: AC_Strom: ConfigureDevice: no analogThresholds attribute
2019.02.23 19:34:08 3: AC_Strom: device: devVerbose set to 20
2019.02.23 19:34:22 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:34:22 5: SW: 1,10k.
2019.02.23 19:34:32 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:34:32 5: SW: 1,10k.
2019.02.23 19:34:36 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 0  histIdx 1  count 0  reject 0
2019.02.23 19:34:40 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 1  histIdx 2  count 0  reject 0
2019.02.23 19:34:42 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:34:42 5: SW: 1,10k.
2019.02.23 19:34:52 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:34:52 5: SW: 1,10k.
2019.02.23 19:35:02 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:35:02 5: SW: 1,10k.
2019.02.23 19:35:12 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:35:12 5: SW: 1,10k.
2019.02.23 19:35:22 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:35:22 5: SW: 1,10k.
2019.02.23 19:35:32 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:35:32 5: SW: 1,10k.
2019.02.23 19:35:42 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:35:42 5: SW: 1,10k.
2019.02.23 19:35:52 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:35:52 5: SW: 1,10k.
2019.02.23 19:36:02 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:36:02 5: SW: 1,10k.
2019.02.23 19:36:12 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:36:12 5: SW: 1,10k.
2019.02.23 19:36:17 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 0  histIdx 5  count 0  reject 0
2019.02.23 19:36:21 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 1  histIdx 6  count 0  reject 0
2019.02.23 19:36:21 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 0  histIdx 10  count 0  reject 0
2019.02.23 19:36:21 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 1  histIdx 10  count 0  reject 0
2019.02.23 19:36:22 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:36:22 5: SW: 1,10k.
2019.02.23 19:36:33 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:36:33 5: SW: 1,10k.
2019.02.23 19:36:43 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:36:43 5: SW: 1,10k.
2019.02.23 19:36:53 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:36:53 5: SW: 1,10k.
2019.02.23 19:37:03 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:37:03 5: SW: 1,10k.
2019.02.23 19:37:13 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:37:13 5: SW: 1,10k.
2019.02.23 19:37:23 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:37:23 5: SW: 1,10k.
2019.02.23 19:37:33 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:37:33 5: SW: 1,10k.
2019.02.23 19:37:43 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:37:43 5: SW: 1,10k.
2019.02.23 19:37:53 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:37:53 5: SW: 1,10k.
2019.02.23 19:37:57 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 0  histIdx 11  count 0  reject 0
2019.02.23 19:38:00 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 1  histIdx 12  count 0  reject 0
2019.02.23 19:38:03 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:38:03 5: SW: 1,10k.
2019.02.23 19:38:13 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:38:13 5: SW: 1,10k.
2019.02.23 19:38:23 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:38:23 5: SW: 1,10k.
2019.02.23 19:38:29 5: AC_Strom: Device Time 78337.54
2019.02.23 19:38:29 4: AC_Strom: pin D5 (pin5) Cnt 0 (diff 0/0) in 300.000s from 19:33:29 until 19:38:29, seq 5, Rej 0, Avg ms, result 0.000
2019.02.23 19:38:29 5: AC_Strom: pin D5 (pin5) adding rDiff 0 to long count 0 and interpolated count 0
2019.02.23 19:38:33 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:38:33 5: SW: 1,10k.
2019.02.23 19:38:43 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:38:43 5: SW: 1,10k.
2019.02.23 19:38:53 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:38:53 5: SW: 1,10k.
2019.02.23 19:39:03 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:39:03 5: SW: 1,10k.
2019.02.23 19:39:13 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:39:13 5: SW: 1,10k.
2019.02.23 19:39:23 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:39:23 5: SW: 1,10k.
2019.02.23 19:39:28 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 0  histIdx 17  count 0  reject 0
2019.02.23 19:39:32 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 1  histIdx 18  count 0  reject 0
2019.02.23 19:39:33 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:39:33 5: SW: 1,10k.
2019.02.23 19:39:43 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:39:43 5: SW: 1,10k.
2019.02.23 19:39:53 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:39:53 5: SW: 1,10k.
2019.02.23 19:40:03 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:40:03 5: SW: 1,10k.
2019.02.23 19:40:13 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:40:13 5: SW: 1,10k.
2019.02.23 19:40:23 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:40:23 5: SW: 1,10k.
2019.02.23 19:40:33 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:40:33 5: SW: 1,10k.
2019.02.23 19:40:43 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:40:43 5: SW: 1,10k.
2019.02.23 19:40:53 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:40:53 5: SW: 1,10k.
2019.02.23 19:40:57 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 0  histIdx 3  count 0  reject 0
2019.02.23 19:41:01 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 1  histIdx 4  count 0  reject 0
2019.02.23 19:41:03 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:41:03 5: SW: 1,10k.
2019.02.23 19:41:13 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:41:13 5: SW: 1,10k.
2019.02.23 19:41:23 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:41:23 5: SW: 1,10k.
2019.02.23 19:41:33 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:41:33 5: SW: 1,10k.
2019.02.23 19:41:43 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:41:43 5: SW: 1,10k.
2019.02.23 19:41:53 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:41:53 5: SW: 1,10k.
2019.02.23 19:42:03 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:42:03 5: SW: 1,10k.
2019.02.23 19:42:13 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:42:13 5: SW: 1,10k.
2019.02.23 19:42:23 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:42:23 5: SW: 1,10k.
2019.02.23 19:42:33 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:42:33 5: SW: 1,10k.
2019.02.23 19:42:34 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 0  histIdx 10  count 0  reject 0
2019.02.23 19:42:34 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 1  histIdx 13  count 0  reject 0
2019.02.23 19:42:34 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 0  histIdx 16  count 0  reject 0
2019.02.23 19:42:34 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 1  histIdx 18  count 0  reject 0
2019.02.23 19:42:34 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 0  histIdx 1  count 0  reject 0
2019.02.23 19:42:38 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 1  histIdx 2  count 0  reject 0
2019.02.23 19:42:43 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:42:43 5: SW: 1,10k.
2019.02.23 19:42:53 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:42:53 5: SW: 1,10k.
2019.02.23 19:43:03 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:43:03 5: SW: 1,10k.
2019.02.23 19:43:13 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:43:13 5: SW: 1,10k.
2019.02.23 19:43:23 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:43:23 5: SW: 1,10k.
2019.02.23 19:43:29 5: AC_Strom: Device Time 78637.54
2019.02.23 19:43:29 4: AC_Strom: pin D5 (pin5) Cnt 0 (diff 0/0) in 300.000s from 19:38:29 until 19:43:29, seq 6, Rej 0, Avg ms, result 0.000
2019.02.23 19:43:29 5: AC_Strom: pin D5 (pin5) adding rDiff 0 to long count 0 and interpolated count 0
2019.02.23 19:43:33 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:43:33 5: SW: 1,10k.
2019.02.23 19:43:43 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:43:43 5: SW: 1,10k.
2019.02.23 19:43:53 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:43:53 5: SW: 1,10k.
2019.02.23 19:44:03 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:44:03 5: SW: 1,10k.
2019.02.23 19:44:13 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:44:13 5: SW: 1,10k.
2019.02.23 19:44:14 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 0  histIdx 5  count 0  reject 0
2019.02.23 19:44:18 3: AC_Strom: device: pin 5 ( internal 14 ) changed to 1  histIdx 6  count 0  reject 0
2019.02.23 19:44:23 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:44:23 5: SW: 1,10k.
2019.02.23 19:44:33 5: AC_Strom: sending k(eepAlive) to device
2019.02.23 19:44:33 5: SW: 1,10k.

Das Device-Log für den gleichen Zeitraum:

2019-02-23_19:33:29 AC_Strom powerD5: 0.000
2019-02-23_19:33:29 AC_Strom rejectD5: 0
2019-02-23_19:33:29 AC_Strom timeDiffD5: 300000
2019-02-23_19:33:29 AC_Strom countDiffD5: 0
2019-02-23_19:33:29 AC_Strom pinD5: 0
2019-02-23_19:33:29 AC_Strom longD5: 0
2019-02-23_19:33:29 AC_Strom interpolatedLongD5: 0
2019-02-23_19:33:29 AC_Strom seqD5: 4
2019-02-23_19:38:29 AC_Strom powerD5: 0.000
2019-02-23_19:38:29 AC_Strom rejectD5: 0
2019-02-23_19:38:29 AC_Strom timeDiffD5: 300000
2019-02-23_19:38:29 AC_Strom countDiffD5: 0
2019-02-23_19:38:29 AC_Strom pinD5: 0
2019-02-23_19:38:29 AC_Strom longD5: 0
2019-02-23_19:38:29 AC_Strom interpolatedLongD5: 0
2019-02-23_19:38:29 AC_Strom seqD5: 5
2019-02-23_19:43:29 AC_Strom powerD5: 0.000
2019-02-23_19:43:29 AC_Strom rejectD5: 0
2019-02-23_19:43:29 AC_Strom timeDiffD5: 300000
2019-02-23_19:43:29 AC_Strom countDiffD5: 0
2019-02-23_19:43:29 AC_Strom pinD5: 0
2019-02-23_19:43:29 AC_Strom longD5: 0
2019-02-23_19:43:29 AC_Strom interpolatedLongD5: 0
2019-02-23_19:43:29 AC_Strom seqD5: 6


Und hier noch ein list des Device:

fhem> list AC_Strom
Internals:
   Board      ESP8266
   BoardDet    ESP8266_WEMOS_D1MINI
   DEF        192.168.8.69:80
   DeviceName 192.168.8.69:80
   FD         4
   FUUID      5c4dc97d-f33f-7f16-106f-1dfbbdd3b8f23dff
   Initialized 1
   LASTOPEN   1550946737.7726
   NAME       AC_Strom
   NOTIFYDEV  global
   NR         205
   NTFY_ORDER 50-AC_Strom
   PARTIAL
   STATE      73902.38
   SketchCompile Feb 22 2019 21:44:47
   TCP        1
   TYPE       ArduCounter
   VersionFirmware 3.12
   VersionModule 6.12 - 23.2.2019
   WaitForAlive 0
   allowedPins 0,1,2,5,17,A0
   buffer
   deviceBooted 1550868774.02701
   devioLoglevel 3
   nextOpenDelay 60
   READINGS:
     2019-02-07 20:07:00   TotalKWh        73902.3833330495
     2019-02-23 03:13:28   calcCounterD5   0
     2019-02-23 03:13:28   calcCounterD5_i 0
     2019-02-07 20:07:00   countDiff5      1
     2019-02-23 19:43:29   countDiffD5     0
     2019-02-07 20:07:00   interpolatedLong5 313494
     2019-02-23 19:43:29   interpolatedLongD5 0
     2018-03-08 16:49:53   lastMsg5        R5 C193 D1/1 T94823 N24086290 X0 A3271
     2019-02-23 03:13:28   lastMsgD5       R5 C0 D0/0 T300000 N19237540,0 X0 S64
     2019-02-07 20:07:00   long5           313392
     2019-02-23 19:43:29   longD5          0
     2019-02-07 20:07:00   pin5            26229
     2019-02-23 19:43:29   pinD5           0
     2018-03-08 16:52:19   pinHistory5     -690172/0@1X, -690172/1@0R, -690171/24@1X, -690147/6303@0C, -683844/157421@1G, -526423/6211@0C, -520212/134914@1G, -385298/5549@0C, -379749/132382@1G, -247367/1@0R, -247366/44@1G, -247322/6100@0C, -241222/91552@1G, -149670/3271@0C, -146399/140151@1G, -6248/1@0R, -6247/1@1X, -6246/0@0R, -6246/13@1X
     2019-02-07 20:07:00   power5          0.396
     2019-02-23 19:43:29   powerD5         0.000
     2019-02-07 20:07:00   reject5         62004
     2019-02-23 19:43:29   rejectD5        0
     2019-02-07 20:07:00   seq5            52
     2019-02-23 19:43:29   seqD5           6
     2019-02-23 19:32:19   state           opened
     2019-02-07 20:07:00   timeDiff5       75847
     2019-02-23 19:43:29   timeDiffD5      300000
   runningCfg:
     5          falling pullup 30
     I          2 300 1 1
     T          100 110
Attributes:
   comment    17.05.18 Korrektur 72682.3 v2.36
   devVerbose 20
   disable    0
   factor     8333
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   interval   2 300 1 1
   pinD5      falling pullup 30
   room       Strom
   stateFormat { sprintf("%.2f", round( ReadingsVal("AC_Strom","TotalKWh",0), 2))}
   userReadings TotalKWh:long5.* monotonic { ReadingsVal("AC_Strom","long5",0)/120 }
   userattr   pinD0 pinD5 verboseReadings5
   verbose    5

Im list sind noch die alten Readings (ohne "D" vor der 5) sowie die neuen Readings. Bis auf die verbose Attribute ist alles unverändert, vor allem auch der elektronische Aufbau.
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: FunkOdyssey am 23 Februar 2019, 20:48:40
Es kann sein, dass devVerbose verloren gegangen ist, wenn Dein Board neu gestartet hat.
Ich habe nochmal eine neue Version angehängt, in der die Debug-Ausgaben erweitert sind.
devVerbose wird jetzt auch nach einem Neustart des Boards neu gesetzt und es gibt ein neues "get History", das (sofern devVerbose >5 ist) die detaillierte pin History nach einer Meldung des Boards lesbarer aufbereitet.

Das macht Sinn. Plötzlich hatte ich nämlich doch die gewünschte Ausgabe. Mal nicht - mal doch. Danke für den Hinweis. Und vielen Dank für die Erweiterung.

Da muss ich nochmal nachfragen:
der Zähler geht auf D4 und das andere Ende? Auf GND?
Der 10 uF Kondensator hängt wo? Direkt zwischen D4 und GND? Das könnte ungesund sein.

Ja, zwischen D4 und GND. Also parallel zum Zähler. Zuvor wurde halt einfach zu viel getriggert.
Aber inwiefern könnte das ungesund werden? Das macht mich jetzt nervös? :-)

Generell sollte so ein Kondensator gar nicht nötig sein. Die Angabe der minimalen Pulslänge (die letzte Zahl beim Attribut "attr XY pinD4 falling pullup 60") - hier also 60 ist genau dazu da, Prellen oder ähnliche Störungen, die kürzer als 60 Millisekunden sind zu filtern. Bei get History sieht man solche Aktivitäten.
Okay, das ist mir - eigentlich - sogar bekannt. Ich kann mich nicht mehr genau daran erinnern, wie die Probleme damals (vor ca. 1,5 Jahren) waren. Seitdem ist der halt noch parallel geschaltet. Ich würde den auch entfernen, aber mir rennt die Zeit davon. Ab Frühling dreht sich mein Gaszähler vermutlich kaum noch. Und die Zeit zum Testen wird immer kürzer.

das sollte mit der neuen Version jetzt funktionieren. Ich hoffe die Log-Ausgabe ist dann aufschlussreich.
Wenn wieder Impulse nicht gezählt werden und auch im Log keine Änderung angezeigt wird, dann hätte ich Deinen Kondensator oder den Nano in Verdacht.

Die Frage ist warum er die Pegeländerungen nicht erkennt.
Ich glaube nicht, dass es an der Firmware liegt, aber mit den Debug-Ausgaben sollte sich das klären lassen.
Bitte versuch nochmal verbose 5 und devVerbose 20.
Die Ausgabe der pin-Änderungen ist dabei dann unabhängig vom Interrupt-Händling und dem Zählen.
Danke.

Jetzt kommt aber der eigentlich Grund wieso ich auf deine vielen Hilfsangebote nur skeptisch eingehe. Ich traue mich kaum, es hier zu erwähnen. Also: Ich würde mich weiterhin vollständig mit allen Logs der Welt rumschlagen und sogar den Kondensator ausbauen und weiter debuggen, wäre das nicht.....
Es scheint zu laufen. Seit zwei Tagen. Und ich denke, dass ich der Fehler war, denn ich habe die ArduCounter/GasCalculator-Konfiguration mit der neuen Version auch neu aufgesetzt. Insbesondere das Zähler-Reading.
Mein Gaszähler gibt einen Impulse bei 0,01 Kubikmeter. Der Zähler wird aber dennoch dreistellig angezeigt. Also habe ich ArduCounter in der dritten Nachkommastelle zählen lassen. Das macht natürlich überhaupt keinen Sinn und erklärt die großen/schnellen Abweichungen.
Ich habe jetzt den Zähler sogar als Dezimalzahl mit Nachkommastelle als userreading im ArduCounter angelegt. Zusätzlich den long-Counter angeglichen (hier aber ohne Nachkommatas) und habe das Verhalten zwei Tage mit den echten Werten des Zählers verglichen.
Zusätzlich habe ich den Thread nun dreimal komplett durchgelesen und mit birdys Probleme mit seinem Öl-Zähler genauer angeschaut. Bei ihm wird auch langsam gezählt. Also habe ich Intervall und Pin-Konfiguration bei birdy abgeguckt.
Und es scheint wirklich zu funktionieren.

Es tut mir wirklich leid, dass ich dich wieder mit dem Support für mich belästigt habe.

Langzeiterfahrung habe ich mit der Konstellation zwar noch nicht, aber ich bin optimistisch.

Mein aktuelles Device:
Internals:
   Board      NANO
   BoardDet   
   DEF        /dev/serial/by-id/usb-xxxx_USB2.0-Serial-if00-port0@38400
   DeviceName /dev/serial/by-id/usb-xxx_USB2.0-Serial-if00-port0@38400
   FD         4
   Initialized 1
   LASTOPEN   1550949722.75865
   NAME       ArduCounter
   NOTIFYDEV  global
   NR         538
   NTFY_ORDER 50-ArduCounter
   PARTIAL   
   STATE      opened
   SketchCompile Jan  6 2019 17:11:47
   TYPE       ArduCounter
   VersionFirmware 3.10
   VersionModule 6.10 - 16.2.2019
   allowedPins 3,4,5,6,7,8,9,10,11,13,14,A0,15,A1,16,A2,17,A3,18,A4,19,A5,20,A6,21,A7
   buffer     
   deviceBooted 1550949734.45458
   devioLoglevel 3
   nextOpenDelay 60
   READINGS:
     2019-02-23 20:28:04   Zaehler         8512.23000000009
     2019-02-22 14:02:03   calcCounterD4   2.00199999999992
     2019-02-22 14:02:03   calcCounterD4_i 0.001
     2019-02-23 20:28:04   countDiffD4     0
     2019-02-23 20:28:04   interpolatedLongD4 2552
     2019-02-23 20:28:04   lastMsgD4       R4 C0 D0/0 T360000 N360508,0 X0 S1
     2019-02-23 20:28:04   longD4          851223
     2019-02-23 20:28:04   pinD4           0
     2019-02-23 20:16:56   pinHistory4     1277s-26080587/77144@1G, 1278s-26003443/11975@0C, 1279s-25991468/76902@1G, 1280s-25914566/12083@0C, 1281s-25902483/76865@1G, 1282s-25825618/12221@0C, 1283s-25813397/77062@1G, 1284s-25736335/11979@0C, 1285s-25724356/76929@1G, 1286s-25647427/11608@0C, 1287s-25635819/76936@1G, 1288s-25558883/11700@0C, 1289s-25547183/77436@1G, 1290s-25469747/11434@0C, 1291s-25458313/77594@1G, 1292s-25380719/11341@0C, 1293s-25369378/77741@1G, 1294s-25291637/11219@0C, 1295s-25280418/77600@1G
     2019-02-23 20:28:04   powerD4         0.000
     2019-02-23 20:28:04   rejectD4        0
     2019-02-23 20:28:04   seqD4           1
     2019-02-23 20:22:02   state           opened
     2019-02-23 20:28:04   timeDiffD4      360000
   runningCfg:
     4          falling pullup 60
     I          60 600 5 2
     T          100 110
Attributes:
   interval   60 360
   pinD4      falling pullup 100
   readingPulsesPerKWhD4 10
   userReadings Zaehler:pinD4.* monotonic {ReadingsVal($name,"pinD4",0)/100}
   userattr   pinD4 readingFactorD4 readingNameCountD4 readingNamePowerD4 readingPulsesPerKWhD4 verboseReadingsD4
   verboseReadingsD4 1



Ich bin ein wenig verwundert über den Wert bei readingPulsesPerKWhD4. Ich habe verschiedene Zehnerpotenzen ausprobiert. Aber der Wert 10 scheint korrekt zu sein.

Obwohl mein GasCalculator sogar auf den ArduCounter aufsetzt, sehen die Heizleistungswerte im Plot nun sauberer aus. Das kann ich irgendwie nicht nachvollziehen, warum GC hier zu "kantig" aussieht. GC berücksichtigt auch die Zeiten zwischen den Verbrauchsimpulsen. Gleiche Datenbasis.

Anbei mal eine Grafik dazu.

Danke, Stefan, für deine Unterstützung.

Macht es noch Sinn, deine Debug-Version zu testen? Hilft dir das denn? Oder wäre das nur für mich gewesen?  ;)
Nachtrag: ich habe die PM mal hochgeladen.

Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 24 Februar 2019, 13:33:31
Hallo Tobias,

könntest Du bitte noch die Ausgabe von "get info" posten?
Damit kannst Du abfragen welche Konfiguration tatsächlich im Board aktiv ist.

Beispiel:
M Status: ArduCounter V3.10 on NANO compiled Jan  6 2019 17:11:47
I60 600 10 0
T100 110
V0
P4 falling pullup min 30, R4 C4 D3/4 T43008 N62090,0 X1 A120
P5 falling pullup min 30, R5 C1 D0/1 T0 N62090,0 X0
M EEPROM Config: Cfg Slots: 3
M Slot: I 60,600,10,0
M Slot: A 4,2,1,30
M Slot: A 5,2,1,30
M Next report in 28291 milliseconds

und dann wäre es noch hilfreich ein get history zu sehen.
Das sieht z.B. so aus:
0 2019-02-24 13:29:39       0 seconds at 0 -> reject
1 2019-02-24 13:29:39    5.86 seconds at 1 -> gap
2 2019-02-24 13:29:45    0.09 seconds at 0 -> count
5 2019-02-24 13:29:45  14.241 seconds at 1 -> gap
6 2019-02-24 13:29:59    0.09 seconds at 0 -> count
7 2019-02-24 13:29:59  14.259 seconds at 1 -> gap
8 2019-02-24 13:30:13    0.09 seconds at 0 -> count
9 2019-02-24 13:30:13  14.238 seconds at 1 -> gap

da seht man dann was der Zähl-Algorithmus genau gemacht hat (auch wenn zu kurze Impuls ignoriert werden etc.)

Gruss / Thanx
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 24 Februar 2019, 13:38:33
Hallo Patrick,

die tatsächlichen Werte würde ich nicht runden.
Wenn Du im State oder anderswo gerundete Werte haben möchtest, kannst Du das mit stateFormat oder in einer ReadingsGoup oder als Userreading etc. mit einem sprintf machen.

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: SamNitro am 24 Februar 2019, 13:46:52
aktuell habe ich mir diese Lösung gebastelt:
attr AC stateFormat {sprintf("Zähler: %.1f kWh / E-Tech: %.1f kWh", ReadingsVal("AC","Haupt_Zaehler",0),ReadingsVal("AC","E-Tech",0))}
attr AC userReadings E-Tech:longD2.* monotonic {ReadingsVal($name,"pinD2",0)/1000},\
Haupt_Zaehler:longD2.* monotonic {ReadingsVal($name,"pinD2",0)/1000}

Wollte eigentlich das userReading schon gerundet haben, aber da habe ich noch keine Lösung
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: tpm88 am 24 Februar 2019, 14:34:19
Hallo Stefan,

aktiv ist jetzt das Modul von heute aus dem normalen Update:

98_ArduCounter.pm           18704 2019-02-23 18:36:06Z StefanStrobel

Hier sehr gerne noch die weiteren Infos:

könntest Du bitte noch die Ausgabe von "get info" posten?

M Status: ArduCounter V3.12 on ESP8266 ESP8266_WEMOS_D1MINI compiled Feb 22 2019 21:44:47
I2 300 1 1
T100 110
V20
P5 falling pullup min 30, R5 C0 D0/0 T0 N146198761,0 X0
M no config in EEPROM
M Next report in 772 milliseconds

und dann wäre es noch hilfreich ein get history zu sehen.

Leider ist die history (noch) leer: no history data so far
Danke für deine Unterstützung!

Gruß
Tobias
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 24 Februar 2019, 15:44:19
Hallo Tobias,

ich konnte den Fehler nachvollziehen. Auch auf meinem Wemos D1 geht Pin D5 nicht.
Pin D2 geht aber. Ich suche jetzt nach der Ursache ...

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 24 Februar 2019, 16:10:22
Also ich denke ich habe den Fehler gefunden.
Wenn die Firmware für einen ESP8266 und mit analogem Support compiliert wurde, dann waren die internen Pin-Nummern für die Interrupt-Routine falsch.
Für den Nano oder den ESP ohne analogen Support sollte das unerheblich sein ...
(#define analogIR 1 sollte dann auskommentiert sein)

Anbei eine neue Version zum Testen. Ich checke sie auch gleich ein, da sich nur der eine Fall (ESP mit analogIR) ändert und der war eh defekt ;-)

Gruss
   Stefan

EDIT 9.7.19: neue Version ist eingecheckt (Firmware Quellcode unter contrib/arduino, Hex-File für den Arduino Nano unter FHEM/firmware)
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: tpm88 am 24 Februar 2019, 16:11:29
ich konnte den Fehler nachvollziehen. Auch auf meinem Wemos D1 geht Pin D5 nicht.
Pin D2 geht aber. Ich suche jetzt nach der Ursache ...

Da hat Murphy wieder zugeschlagen....

Mit dem vorherigen Sketch (2.36) und der alten Modulversion hat der Pin D5 aber problemlos funktioniert...

Danke & Gruß
Tobias
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 24 Februar 2019, 16:12:45
ja, vorher gab es noch keinen Support für Reflexlichtschranken ...

Gruss
  Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: tpm88 am 24 Februar 2019, 16:28:30
Anbei eine neue Version zum Testen. Ich checke sie auch gleich ein, da sich nur der eine Fall (ESP mit analogIR) ändert und der war eh defekt ;-)

Super, das sieht sehr viel besser aus. Jetzt zählt er wieder auf Pin D5 ...

fhem> get AC_Strom history
0 2019-02-24 16:23:00  16.722 seconds at 1 -> gap
1 2019-02-24 16:23:17   0.001 seconds at 0 -> reject
2 2019-02-24 16:23:17   0.002 seconds at 1 -> ignore drop
3 2019-02-24 16:23:17   0.002 seconds at 0 -> reject
4 2019-02-24 16:23:17       0 seconds at 1 -> ignore drop
5 2019-02-24 16:23:17   0.001 seconds at 0 -> reject
6 2019-02-24 16:23:17   0.002 seconds at 1 -> ignore drop
7 2019-02-24 16:23:17   0.001 seconds at 0 -> reject
8 2019-02-24 16:23:17       0 seconds at 1 -> ignore drop
9 2019-02-24 16:23:17   0.001 seconds at 0 -> reject
10 2019-02-24 16:23:17       0 seconds at 1 -> ignore drop
11 2019-02-24 16:23:17   0.001 seconds at 0 -> reject
12 2019-02-24 16:23:17   0.001 seconds at 1 -> ignore drop
13 2019-02-24 16:23:17   3.718 seconds at 0 -> count
14 2019-02-24 16:23:20   0.003 seconds at 1 -> ignore drop
15 2019-02-24 16:23:20       0 seconds at 0 -> reject
16 2019-02-24 16:23:20   0.002 seconds at 1 -> ignore drop
17 2019-02-24 16:23:20   0.001 seconds at 0 -> reject
18 2019-02-24 16:23:20       0 seconds at 1 -> ignore drop
19 2019-02-24 16:23:20   0.001 seconds at 0 -> reject
20 2019-02-24 16:23:20   0.001 seconds at 1 -> ignore drop
21 2019-02-24 16:23:20   0.001 seconds at 0 -> reject
22 2019-02-24 16:23:20   0.001 seconds at 1 -> ignore drop
23 2019-02-24 16:23:20       0 seconds at 0 -> reject
24 2019-02-24 16:23:20   0.001 seconds at 1 -> ignore drop
25 2019-02-24 16:23:20   0.001 seconds at 0 -> reject
26 2019-02-24 16:23:20  82.112 seconds at 1 -> gap
27 2019-02-24 16:24:42   3.879 seconds at 0 -> count
28 2019-02-24 16:24:46   0.006 seconds at 1 -> ignore drop
29 2019-02-24 16:24:46       0 seconds at 0 -> reject
30 2019-02-24 16:24:46   0.002 seconds at 1 -> ignore drop

Vielen Dank für deinen prompten Support und überhaupt für das geniale Modul. Auch die DebugInfos (History) sind jetzt für mich viel aussagekräftiger.

Tobias
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: tpm88 am 24 Februar 2019, 18:05:46
ich habe noch die Dokumentation für "get History" und das Attribut MaxHist ergänzt und die neue Version eingecheckt.

Hmmmm. Ist die Doku zu den beiden Punkten in der letzten Version von heute wieder verlorengegangen?
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 24 Februar 2019, 20:56:08
Nicht wirklich, sie war nur noch nicht vollständig ;-)
Ich habe gerade noch eine neue Version eingecheckt, in der man bei get history auch den Pin angeben kann.
Zudem war maxHist fälschlicherweise MaxHist. Ist jetzt auch korrigiert.

Gruss
   Stefan

EDIT 9.7.19: neue Version ist eingecheckt (Firmware Quellcode unter contrib/arduino, Hex-File für den Arduino Nano unter FHEM/firmware)
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 24 Februar 2019, 21:00:26
Ich sehe übrigens gerade in der Ausgabe Deines get history, dass es kräftig prellt ;-)
Die Erläuterung "ignore drop" sollte eher "ignore spike" sein. Das ändere ich dann noch mit dem nächsten Update ...

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: tpm88 am 24 Februar 2019, 22:40:01
Ich sehe übrigens gerade in der Ausgabe Deines get history, dass es kräftig prellt ;-)

Das ist genau der Grund, warum ich anfangs mit EspEasy und PulseCounter schier verzweifelt bin. Egal mit welcher Parametrisierung habe ich das nie entprellt bekommen. Erst der ArduCounter hat dann von Anfang an „richtig“ gezählt.

Gruß
Tobias
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: andreas.maurer am 11 März 2019, 19:55:33
Nabend, ich setzte den ArduCounter seit ein paar Tagen in einem Testsystem ein. Das Modul läuft was Aussetzer betrifft besser als meine Firmata Lösung. Allerdings hängt sich die Verbindung zum nano in unterschiedlichen Abständen weg. Ein reconnect hilft dann immer.

Im Log steht nichts auffälliges:

2019.03.10 22:59:17 3: serverElectricityCounter: device: pin 4 ( internal 4 ) changed to 0  histIdx 0  count 2019  reject 0
2019.03.10 22:59:17 3: serverElectricityCounter: device: pin 4 ( internal 4 ) changed to 1  histIdx 1  count 2020  reject 0
2019.03.10 22:59:18 5: serverElectricityCounter: HandleHistory no CL
2019.03.10 22:59:18 5: serverElectricityCounter: HandleHistory   5122 2019-03-10 22:48:24 4   0.069 seconds at 0 -> count (5122s-654238/69@0C)
2019.03.10 22:59:18 5: serverElectricityCounter: HandleHistory   5123 2019-03-10 22:48:24 4  93.578 seconds at 1 -> gap (5123s-654169/93578@1G)
2019.03.10 22:59:18 5: serverElectricityCounter: HandleHistory   5124 2019-03-10 22:49:57 4   0.066 seconds at 0 -> count (5124s-560591/66@0C)
2019.03.10 22:59:18 5: serverElectricityCounter: HandleHistory   5125 2019-03-10 22:49:57 4  93.474 seconds at 1 -> gap (5125s-560525/93474@1G)
2019.03.10 22:59:18 5: serverElectricityCounter: HandleHistory   5126 2019-03-10 22:51:31 4   0.068 seconds at 0 -> count (5126s-467051/68@0C)
2019.03.10 22:59:18 5: serverElectricityCounter: HandleHistory   5127 2019-03-10 22:51:31 4  92.158 seconds at 1 -> gap (5127s-466983/92158@1G)
2019.03.10 22:59:18 5: serverElectricityCounter: HandleHistory   5128 2019-03-10 22:53:03 4   0.069 seconds at 0 -> count (5128s-374825/69@0C)
2019.03.10 22:59:18 5: serverElectricityCounter: HandleHistory   5131 2019-03-10 22:53:03 4  94.024 seconds at 1 -> gap (5131s-374756/94024@1G)
2019.03.10 22:59:18 5: serverElectricityCounter: HandleHistory   5132 2019-03-10 22:54:37 4   0.065 seconds at 0 -> count (5132s-280732/65@0C)
2019.03.10 22:59:18 5: serverElectricityCounter: HandleHistory   5133 2019-03-10 22:54:37 4  93.638 seconds at 1 -> gap (5133s-280667/93638@1G)
2019.03.10 22:59:18 5: serverElectricityCounter: HandleHistory   5134 2019-03-10 22:56:11 4   0.068 seconds at 0 -> count (5134s-187029/68@0C)
2019.03.10 22:59:18 5: serverElectricityCounter: HandleHistory   5135 2019-03-10 22:56:11 4  94.235 seconds at 1 -> gap (5135s-186961/94235@1G)
2019.03.10 22:59:18 5: serverElectricityCounter: HandleHistory   5136 2019-03-10 22:57:45 4   0.065 seconds at 0 -> count (5136s-92726/65@0C)
2019.03.10 22:59:18 5: serverElectricityCounter: HandleHistory   5139 2019-03-10 22:57:45 4  92.184 seconds at 1 -> gap (5139s-92661/92184@1G)
2019.03.10 22:59:18 5: serverElectricityCounter: HandleHistory   5140 2019-03-10 22:59:17 4   0.065 seconds at 0 -> count (5140s-477/65@0C
)
2019.03.10 22:59:18 5: serverElectricityCounter: HandleHistory no CL
2019.03.10 22:59:18 5: serverElectricityCounter: HandleHistory   5129 2019-03-10 22:48:07 5 301.584 seconds at 1 -> gap (5129s-671030/301584@1G)
2019.03.10 22:59:18 5: serverElectricityCounter: HandleHistory   5130 2019-03-10 22:53:08 5   0.066 seconds at 0 -> count (5130s-369446/66@0C)
2019.03.10 22:59:18 5: serverElectricityCounter: HandleHistory   5137 2019-03-10 22:53:09 5 304.532 seconds at 1 -> gap (5137s-369380/304532@1G)
2019.03.10 22:59:18 5: serverElectricityCounter: HandleHistory   5138 2019-03-10 22:58:13 5   0.068 seconds at 0 -> count (5138s-64848/68@0C
)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory no CL
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5122 2019-03-10 22:48:24 4   0.069 seconds at 0 -> count (5122s-684099/69@0C)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5123 2019-03-10 22:48:24 4  93.578 seconds at 1 -> gap (5123s-684030/93578@1G)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5124 2019-03-10 22:49:57 4   0.066 seconds at 0 -> count (5124s-590452/66@0C)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5125 2019-03-10 22:49:57 4  93.474 seconds at 1 -> gap (5125s-590386/93474@1G)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5126 2019-03-10 22:51:31 4   0.068 seconds at 0 -> count (5126s-496912/68@0C)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5127 2019-03-10 22:51:31 4  92.158 seconds at 1 -> gap (5127s-496844/92158@1G)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5128 2019-03-10 22:53:03 4   0.069 seconds at 0 -> count (5128s-404686/69@0C)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5131 2019-03-10 22:53:03 4  94.024 seconds at 1 -> gap (5131s-404617/94024@1G)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5132 2019-03-10 22:54:37 4   0.065 seconds at 0 -> count (5132s-310593/65@0C)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5133 2019-03-10 22:54:37 4  93.638 seconds at 1 -> gap (5133s-310528/93638@1G)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5134 2019-03-10 22:56:11 4   0.068 seconds at 0 -> count (5134s-216890/68@0C)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5135 2019-03-10 22:56:11 4  94.235 seconds at 1 -> gap (5135s-216822/94235@1G)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5136 2019-03-10 22:57:45 4   0.065 seconds at 0 -> count (5136s-122587/65@0C)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5139 2019-03-10 22:57:45 4  92.184 seconds at 1 -> gap (5139s-122522/92184@1G)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5140 2019-03-10 22:59:17 4   0.065 seconds at 0 -> count (5140s-30338/65@0C
)
2019.03.10 22:59:48 5: serverElectricityCounter: Device Time 189181.566
2019.03.10 22:59:48 4: serverElectricityCounter: pin 5 (pin5) Cnt 545 (diff 0/0) in 60.000s from 22:58:48 until 22:59:48, seq 81, Rej 0, Avg ms, result 0.000
2019.03.10 22:59:48 5: serverElectricityCounter: pin 5 (pin5) adding rDiff 0 to long count 1063 and interpolated count 1063
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory no CL
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5129 2019-03-10 22:48:07 5 301.584 seconds at 1 -> gap (5129s-700891/301584@1G)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5130 2019-03-10 22:53:08 5   0.066 seconds at 0 -> count (5130s-399307/66@0C)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5137 2019-03-10 22:53:09 5 304.532 seconds at 1 -> gap (5137s-399241/304532@1G)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5138 2019-03-10 22:58:13 5   0.068 seconds at 0 -> count (5138s-94709/68@0C
)
2019.03.10 22:59:48 5: serverElectricityCounter: Device Time 189181.705
2019.03.10 22:59:48 4: serverElectricityCounter: pin 4 (pin4) Cnt 2020 (diff 1/1) in 60.000s from 22:58:48 until 22:59:48, seq 81, Rej 0, Avg 65ms, result 0.060
2019.03.10 22:59:48 5: serverElectricityCounter: pin 4 (pin4) adding rDiff 1 to long count 3955 and interpolated count 3955
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory no CL
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5122 2019-03-10 22:48:24 4   0.069 seconds at 0 -> count (5122s-684238/69@0C)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5123 2019-03-10 22:48:24 4  93.578 seconds at 1 -> gap (5123s-684169/93578@1G)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5124 2019-03-10 22:49:57 4   0.066 seconds at 0 -> count (5124s-590591/66@0C)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5125 2019-03-10 22:49:57 4  93.474 seconds at 1 -> gap (5125s-590525/93474@1G)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5126 2019-03-10 22:51:31 4   0.068 seconds at 0 -> count (5126s-497051/68@0C)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5127 2019-03-10 22:51:31 4  92.158 seconds at 1 -> gap (5127s-496983/92158@1G)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5128 2019-03-10 22:53:03 4   0.069 seconds at 0 -> count (5128s-404825/69@0C)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5131 2019-03-10 22:53:03 4  94.024 seconds at 1 -> gap (5131s-404756/94024@1G)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5132 2019-03-10 22:54:37 4   0.065 seconds at 0 -> count (5132s-310732/65@0C)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5133 2019-03-10 22:54:37 4  93.638 seconds at 1 -> gap (5133s-310667/93638@1G)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5134 2019-03-10 22:56:11 4   0.068 seconds at 0 -> count (5134s-217029/68@0C)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5135 2019-03-10 22:56:11 4  94.235 seconds at 1 -> gap (5135s-216961/94235@1G)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5136 2019-03-10 22:57:45 4   0.065 seconds at 0 -> count (5136s-122726/65@0C)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5139 2019-03-10 22:57:45 4  92.184 seconds at 1 -> gap (5139s-122661/92184@1G)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5140 2019-03-10 22:59:17 4   0.065 seconds at 0 -> count (5140s-30477/65@0C
)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory no CL
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5129 2019-03-10 22:48:07 5 301.584 seconds at 1 -> gap (5129s-701030/301584@1G)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5130 2019-03-10 22:53:08 5   0.066 seconds at 0 -> count (5130s-399446/66@0C)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5137 2019-03-10 22:53:09 5 304.532 seconds at 1 -> gap (5137s-399380/304532@1G)
2019.03.10 22:59:48 5: serverElectricityCounter: HandleHistory   5138 2019-03-10 22:58:13 5   0.068 seconds at 0 -> count (5138s-94848/68@0C
)
Das wars ..

Info vom Arduino:
D got 0s size 1
M Status: ArduCounter V3.10 on NANO compiled Jan  6 2019 17:11:47
I30 60 2 2
T100 110
V20
P4 falling pullup min 5, R4 C2822 D0/0 T0 N264431404,0 X0
P5 falling pullup min 5, R5 C779 D0/0 T0 N264431404,0 X0
M no config in EEPROM
M Next report in 20142 milliseconds

Im Device ist nichts aus der Reihe konfiguriert:
defmod serverElectricityCounter ArduCounter /dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A900D4IC-if00-port0
attr serverElectricityCounter userattr pin4 pin5
attr serverElectricityCounter devVerbose 20
attr serverElectricityCounter event-on-change-reading .*
attr serverElectricityCounter flashCommand avrdude -p atmega328P -b 57600 -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
attr serverElectricityCounter pin4 falling pullup 5
attr serverElectricityCounter pin5 falling pullup 5
attr serverElectricityCounter pulsesPerKWh 1000
attr serverElectricityCounter room 7. Keller
attr serverElectricityCounter verbose 5

Jemand eine Idee?
Andreas
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 11 März 2019, 20:16:08
Hallo Andreas,

Was genau meinst Du denn mit „hängt sich weg“?
Was steht denn in so einem Moment im Log?

Gruß
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: andreas.maurer am 11 März 2019, 20:56:32
Das Modul stellt dann komplett den Dienst ein. Keine Einträge im Log, kein update irgendwelcher readings. der "state" bleibt auf "open" stehen.

Tot.

nur ein "Set .. reconnect" hilft.
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 11 März 2019, 21:24:37
Hallo Andreas,

Kommt in diesem Zustand denn noch eine Reaktion auf "get info"?
Bzw. Was steht im Log wenn Du "get info" ausführst?

Bitte poste doch das Log von dem letzten Eintrag vor einem Hänger bis 1 Minute nach dem "set reconnect" wenn es mal wieder passiert.

Gruß
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: andreas.maurer am 11 März 2019, 21:44:45
Get Info bringt irgendwas wie "geht nicht weil keine Antwort kommt"
Das Log oben im ersten Beitrag von mir ist genau dieser Zustand. Das waren die letzten Zeilen, die das Modul produziert hat.
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 11 März 2019, 22:41:16
Hallo Andreas,

Klingt für mich so als ob sich Dein Arduino aufhängt.
Das Modul auf Fhem-Seite ist nicht "tot", es bekommt nur keine Reports oder Antworten mehr vom Aduino.
Hast Du mal einen anderen ausprobiert?
Nicht dass es an der Hardware hängt ...

Gruß
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: andreas.maurer am 11 März 2019, 22:48:02
Ich habe grade nur einen Schwung identisch da. Mal sehen was ich noch so im Fundus habe.

Ist aber auch meine erste Idee gewesen. Ich hatte nur erwartet ein Hinweis darauf im Log zu finden.
Wenn ich das richtig sehe liesst doch das Modul regelmäßig den Arduino aus.

Ich probier mal was und melde mich.
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 12 März 2019, 16:26:34
Zitat
Wenn ich das richtig sehe liesst doch das Modul regelmäßig den Arduino aus.

Nein. Der Arduino berichtet die Zählerstände, Deltas und Zeitdifferenzen abhängig davon, wie viele Impulse er schon zählen konnte und wie er konfiguriert wurde (Intervall-Attribute, minimale Anzahl Impulse etc.)

Das Fhem-Modul reagiert daher meist nur auf die Ausgaben des Arduino, es sei denn Du fragst explizit mit "get info" nach dem aktuelle Status.

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: andreas.maurer am 12 März 2019, 20:54:44
So macht es Sinn, danke für die Aufklärung.
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: SamNitro am 14 März 2019, 17:50:24
Hallo, ich würde gerne meinen Hauptzähler anpassen, da er minimal schneller läuft als mein Zähler womit ich den Verbrauch messe (E-Tech).
Aber leider funktioniert mein vorhaben nicht, kann mir einer auf die Sprünge helfen?

Internals:
   Board      ESP8266
   BoardDet    ESP8266_NODEMCU
   DEF        10.1.1.44:80
   DeviceName 10.1.1.44:80
   FD         13
   FUUID      5c5b580f-f33f-19ae-2fdd-f55fd3a6f2c1034a
   Initialized 1
   LASTOPEN   1552534479.47636
   NAME       AC
   NOTIFYDEV  global
   NR         162
   NTFY_ORDER 50-AC
   PARTIAL   
   STATE      Zähler: 25457.25 kWh / E-Tech: 537.38 kWh
   SketchCompile Feb 22 2019 18:01:12
   TCP        1
   TYPE       ArduCounter
   VersionFirmware 3.12
   VersionModule 6.14 - 24.2.2019
   WaitForAlive 0
   allowedPins 0,1,2,5,17,A0
   buffer     
   deviceBooted 1552204818.71553
   devioLoglevel 3
   nextOpenDelay 60
   READINGS:
     2019-03-14 17:42:25   E-Tech          537.381999999884
     2019-03-14 17:42:25   Haupt_Zaehler   25457.2460000007
     2019-03-14 17:42:25   calcCounterD2   136.624999999971
     2019-03-14 17:42:25   calcCounterD2_i 0.013
     2019-03-14 17:42:25   countDiffD2     3
     2019-03-14 17:42:25   interpolatedLongD2 136682
     2019-03-14 17:42:25   longD2          136653
     2019-03-14 17:42:25   pinD2           28573
     2019-03-14 17:42:25   powerD2         0.171
     2019-03-14 17:42:25   rejectD2        7556
     2019-03-14 17:42:25   seqD2           3
     2019-03-14 04:34:48   state           opened
     2019-03-14 17:42:25   timeDiffD2      63076
   runningCfg:
     2          falling pullup 30
     I          30 60 2 2
     T          100 110
Attributes:
   disable    0
   event-on-change-reading .*
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   pinD2      falling pullup 30
   pulsesPerKWh 1000
   room       Zähler,
   stateFormat {sprintf("Zähler: %.2f kWh / E-Tech: %.2f kWh", ReadingsVal("AC","Haupt_Zaehler",0),ReadingsVal("AC","E-Tech",0))}
   userReadings E-Tech:longD2.* monotonic {ReadingsVal($name,"pinD2",0)/1000},
Haupt_Zaehler:longD2.* monotonic {ReadingsVal($name,"pinD2",0)/1000}
   userattr   pinD2

Dachte ich könnte das so erledigen, geht aber nicht.
Zitat
   userReadings E-Tech:longD2.* monotonic {ReadingsVal($name,"pinD2",0)/1000},
Haupt_Zaehler:longD2.* monotonic {ReadingsVal($name,"pinD2",0)/1000+0.005}

Gruß Patrick
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Otto123 am 14 März 2019, 18:04:41
Hallo Patrick,

so addierst Du bei jedem Event auf das userReadings 0.005 drauf - völlig unabhängig vom Zählerwert.

Ich verstehe das Ansinnen nicht ganz, aber wenn Du den Zähler pinD2 korrigieren willst, sollte Du auch genau das tun.
Also ReadingsVal($name,"pinD2",0)*1.005 um ihn etwas zu vergrößern oder ReadingsVal($name,"pinD2",0)*0.9995 um ihn etwas zu verkleinern.

Oder hattest Du Dir Deine Rechnung so gedacht? {ReadingsVal($name,"pinD2",0)/(1000+0.005)}
Gruß Otto
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: SamNitro am 14 März 2019, 18:12:13
Dann ist mein Ansatz eigentlich schon richtig. Ich habe einen Hauptzähler den ich nicht messen kann, dahinter meinen E-Tech Zähler der auch exakt gemessen wird (PinD2).

Da ich aber auch den Wert des Hauptzähler haben möchte, der aber schneller läuft muss ich die Differenz auffangen. (In einem Tag ist es NUR 0.02 kWh)


Edit: Ach jetzt verstehe ich was du meinst, aber muss ich den wert nach oben oder unten korriegieren?
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 14 März 2019, 19:34:10
Man müsste auch einfach pulsesPerKWh anpassen können.
Der Wert muss keine ganze Zahl sein, kann auch Nachkommastellen haben ...

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: SamNitro am 14 März 2019, 19:38:42
Man müsste auch einfach pulsesPerKWh anpassen können.

Der wert stimmt ja ich möchte nur ein separates Reading mit Anpassung haben.


Edit:
Haupt_Zaehler:longD2.* monotonic {ReadingsVal($name,"pinD2",0)/950}So funktioniert es, jetzt nur noch Feintuning den wert finden.

Danke :)
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: GlennDandy am 15 April 2019, 17:42:03
Hallo, nutze den Arducounter schon länger.
Aber kann mir jemand erklären warum der so Prellt bei werten ab 50W? Sobald man mehr Leistung zieht geht es wieder genauer?
So sieht es Aktuell aus wie auf Bild Messung1.

Messung2 ist letztes Jahr vor dem 13.Nov, weil ab da muss ich ein Update gemacht haben. Seit dem, findet dieses Prellen? im untern Lastbereich statt.
Erspringt von 50 auf 150Watt.
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 15 April 2019, 19:22:02
Das sieht nicht nach Prellen aus.
Kann es sein, dass Du die Intervalle zu kurz konfiguriert hast?
Poste doch mal Deine Konfiguration und Details zu Deinem Zähler.

Gruß
    Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: FunkOdyssey am 15 April 2019, 20:03:38
Ist das nicht das gleiche "Problem" wie ich hier habe: https://forum.fhem.de/index.php/topic,19285.msg910573.html#msg910573

Ich habe ständig wechselnde Sprünge in der Grafik.
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: GlennDandy am 15 April 2019, 20:28:09
hallo, das sind die werte aus get info

M Status: ArduCounter V3.14 on NANO compiled Mar  3 2019 11:59:16
I30 60 2 2
T100 110
V0
P4 falling pullup min 30, R4 C53 D1/1 T4751 N4407519,0 X0 A33
M EEPROM Config: Cfg Slots: 2
M Slot: I 30,60,2,2
M Slot: A 4,2,1,2
M Next report in 2829 milliseconds

und das sind die Attribute

Factor            1000
pinD4             falling pullup 30
pulsesPerKWh 1000
room             System
userReadings gesammtP monotonic {ReadingsVal("Energie","pinD4",0)/1000}, Leistung {ReadingsVal("Energie","powerD4",0)*1000}, power4
                   {ReadingsVal("Energie","powerD4",0)}
userattr         pinD4

Hab noch nen Monotonic, weil früher glaube kein "long" gab. Hab das nie umstellt.

Der Zähler ist ein Eurocount3 SDM72D der hat 1000impulse pro kw/h und impulsebreite ist 30ms

hatte vorher falling pullup keine zeit stehen hab jetzt mal 30 getestet. Spingt aber leider immer noch.
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 15 April 2019, 21:01:15
Hallo GlenDaddy,

Du solltest das Attribut interval setzen. Vor allem die zweite Zahl sollte deutlich höher sein.
Versuch es doch mal mit
attr myCounter interval 60 600 2 2
oder auch 30 600 2 2
Ich sollte vermutlich den Default-Wert im Modul höher stellen, falls jemand das Attribut nicht selbst setzt ...

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: GlennDandy am 16 April 2019, 07:42:13
danke StefanStrobel,
das hat geholfen die Messungen im unteren Bereich sind deutlich genauer.

Hab 30 600 2 2 genommen.
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 20 April 2019, 10:17:44
Heute gab es ein Update, kann mir jemand sagen wo die Release notes zu finden sind?


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Otto123 am 20 April 2019, 12:15:15
Hilft Dir das? https://forum.fhem.de/index.php?topic=97725.0

Gruß Otto
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 21 April 2019, 07:13:09
Hilft Dir das? https://forum.fhem.de/index.php?topic=97725.0

Gruß Otto
Danke für den tip. Wenn ich das richtig verstanden habe, müssen die maintainer in die changed Datei von Hand eintragen.
Wird das nicht gemacht bekommt man wohl auch nichts angezeigt.

Lass mich aber auch gerne eines besser belehren.


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 21 April 2019, 09:43:16
So ist es.

Alternativ:
https://forum.fhem.de/index.php/topic,99711.msg930968.html#msg930968

Gruß / frohe Ostern
    Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 12 Mai 2019, 09:48:38
@StefanStrobel
Mir hängt sich allen Anschein nach der ESP immer wieder auf.
Genau erklären kann ich es mir nicht. Hab einen Backup Batterie dran, also Stromausfall kommt nicht in frage.
Es kommen einfach keine Daten mehr vom ESP an FHEM.
Das letzt mal kamen bei mir wohl Daten am 8.5.
Ich muss dann immer an den ESP und ein Reset machen, dann geht er eigentlich wieder.
Es läuft noch die 3.12 auf dem ESP.

Dazu hab ich mal eine Frage:
Kannst du den Sketch so erweitern, dass man erkennen kann, wie die WLAN Qualität ist?
Woran kann ich erkennen, wann das letzte mal Daten eingegangen sind?

Danke und Gruß Robert

EDit: hier noch ein list vom device
Internals:
   Board      ESP8266
   BoardDet    ESP8266_WEMOS_D1MINI
   CFGFN      /opt/fhem/FHEM/energie.cfg
   DEF        192.168.1.135:80
   DeviceName 192.168.1.135:80
   FD         108
   FUUID      5c4308fc-f33f-abd1-e93e-a415c376f9ee59ca
   FVERSION   98_ArduCounter.pm:0.192040/2019-04-17
   Initialized 1
   LASTOPEN   1557646821.82885
   NAME       Gaszaehler
   NOTIFYDEV  global
   NR         876
   NTFY_ORDER 50-Gaszaehler
   PARTIAL   
   STATE      2862.34 m3 opened
   SketchCompile Feb 17 2019 10:08:27
   TCP        1
   TYPE       ArduCounter
   VersionFirmware 3.12
   VersionModule 6.14 - 24.2.2019
   WaitForAlive 0
   allowedPins 0,1,2,5,17,A0
   buffer     
   deviceBooted 1557646818.09485
   devioLoglevel 3
   nextOpenDelay 60
   OLDREADINGS:
   READINGS:
     2019-05-12 09:49:18   GasZaehlerstand 286234
     2019-05-12 09:49:18   GasZaehlerstand2 2862.34
     2019-05-12 09:49:18   countDiffD2     0
     2019-05-12 09:49:18   interpolatedLongD2 52121
     2019-05-12 09:49:18   longD2          52121
     2019-05-12 09:49:18   pinD2           0
     2019-05-12 09:49:18   powerD2         0.000
     2019-05-12 09:49:18   rejectD2        105593
     2019-05-12 09:49:18   seqD2           9
     2019-05-12 09:40:21   state           opened
     2019-05-12 09:49:18   timeDiffD2      60000
   runningCfg:
     2          falling pullup 5
     I          15 60 0 0
     T          100 110
     V          0
Attributes:
   DbLogExclude .*
   comment    Letzter Reset am Gerät = 2019-05-12
GasZaehlerstand = Wert für GasCallculator
GasZaehlerstand2 = Wert der am Gaszähler abgelesen werden kann in m3
   disable    0
   event-on-change-reading .*
   factor     10
   flashCommand avrdude -p atmega328P -c arduino -P [PORT] -D -U flash:w:[HEXFILE] 2>[LOGFILE]
   group      EVerbrauch.Devices
   interval   15 60
   pinD2      falling pullup 5
   room       9.04_Energiewerte
   stateFormat GasZaehlerstand2 m3 state
   userReadings GasZaehlerstand monotonic {ReadingsVal("Gaszaehler","pinD2",0)},
GasZaehlerstand2 {sprintf("%.2f",ReadingsVal("Gaszaehler","GasZaehlerstand",0)/100)}
   userattr   pinD2
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 15 Mai 2019, 10:44:50
Hallo,

Wenn Du verbose auf 5 stellst dann sollten im Log viele hilfreiche Informationen landen.
Poste das doch mal so dass man sieht, was protokolliert wird solange es noch klappt und was dann passiert.

Gruß
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 16 Juni 2019, 13:49:14
Hallo,

Wenn Du verbose auf 5 stellst dann sollten im Log viele hilfreiche Informationen landen.
Poste das doch mal so dass man sieht, was protokolliert wird solange es noch klappt und was dann passiert.

Gruß
   Stefan

Hallo Stefan,

vor meinem Urlaub (letzte Woche) ist es wieder passiert.
Der Controller war noch per Ping zu erreichen.
Er lieferte allerdings keine Zahlen mehr an FHEM.

Ich habe Logfiles, nur kann ich es nicht genau eingrenzen.
Da es aber das fhem Log ist, würde ich die Dateien hier nicht unbedingt im Forum teilen.
Kann ich dir die Daten auf eine andere Art zukommen lassen?

Ich hab jetzt noch mal eine Filelog device nur für den ESP angelegt.

Danke und Gruß Robert
 
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 17 Juni 2019, 08:04:59
Hallo Robert,

Du kannst mir gerne einen Freigabelink zu Dropbox, OneDrive o.ä. als PM schicken.

Gruß
    Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 17 Juni 2019, 08:41:14
Hallo Robert,

Du kannst mir gerne einen Freigabelink zu Dropbox, OneDrive o.ä. als PM schicken.

Gruß
    Stefan

Hallo Stefan,

Geht klar.
Mach ich dir heute Abend nach der Arbeit fertig.
Bekommst dann ne PM.

Danke und Gruß Robert


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 17 Juni 2019, 18:31:05
Hallo Robert,

Sieht nach verzögerten Antworten auf den Keepalive aus. Das könnte auch daran liegen, dass Fhem in dem Moment mit anderen Dingen beschäftigt ist.
Die Log-Meldungen muss ich noch mal überarbeiten. Die passen nicht ganz.
Wenn ein Keepalive nicht innerhalb des definierten Timeouts (Default 2 Sekunden) beantwortet wird, dann versucht das Modul es nochmal. Erst wenn es auch beim zweiten Mal nicht beantwortet wird, wird tatsächlich die Verbindung neu aufgebaut.
Die Log-Meldung wäre dann "no retries left ...".
Soweit kommt es bei Dir aber scheinbar nicht.
Probier doch mal den Timeout per Attribut keepAliveTimeout auf einen höheren Wert, z.B. 6 Sekunden zu setzen.
Ein überarbeitetes Modul mit klareren Log-Meldungen kommt.

Gruß
    Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 17 Juni 2019, 19:30:35
Ergänzung:
Am 6.6. um 6:11 scheint sich Dein Wemos im Log das letzte Mal gemeldet zu haben.
Danach antwortet er zwar auf Keepalive, aber er berichtet seinen Zählerstand nicht mehr.
Das muss ich mir noch näher ansehen. Irgendwie scheint der Wemos sich hier anders als ein Arduino zu verhalten.

Gruß
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 17 Juni 2019, 21:05:05
Ergänzung:
Am 6.6. um 6:11 scheint sich Dein Wemos im Log das letzte Mal gemeldet zu haben.
Danach antwortet er zwar auf Keepalive, aber er berichtet seinen Zählerstand nicht mehr.
Das muss ich mir noch näher ansehen. Irgendwie scheint der Wemos sich hier anders als ein Arduino zu verhalten.

Gruß
   Stefan

Hallo Stefan,

okay alles klar, kein Stress.

Hat sonst keiner einen ESP im Einsatz?

Gruß Robert
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 18 Juni 2019, 06:56:32
Bis jetzt habe ich selbst nur Arduinos im Einsatz, werde aber demnächst noch einen Wasserzähler per Wemos anbinden.

Gruß
    Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 01 Juli 2019, 20:41:48
Hallo,

Ich habe den Code der Firmware überarbeitet, der die Zeitsteuerung für das Melden der Zählerstände etc. an Fhem regelt.
Da war wohl ein Bug drin, so dass der Zähler nach 3-4 Wochen aufgehört hat sich zu melden.
Ich hoffe die neue Version behebt das Problem. Der Test läuft zur Zeit.
Falls es jemand auch schon testen möchte -> anbei der Code.

Gruss
   Stefan


EDIT 9.7.19: neue Version ist eingecheckt (Firmware Quellcode unter contrib/arduino, Hex-File für den Arduino Nano unter FHEM/firmware)
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 01 Juli 2019, 21:28:41
Hallo,

Ich habe den Code der Firmware überarbeitet, der die Zeitsteuerung für das Melden der Zählerstände etc. an Fhem regelt.
Da war wohl ein Bug drin, so dass der Zähler nach 3-4 Wochen aufgehört hat sich zu melden.
Ich hoffe die neue Version behebt das Problem. Der Test läuft zur Zeit.
Falls es jemand auch schon testen möchte -> anbei der Code.

Gruss
   Stefan


Danke dir schon Stefan für die Arbeit.
Ich komme leider erst am Mittwoch zum aufspielen der neuen Software.

Melde mich noch mal sobald ich etwas Neues habe.

Gruß Robert


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 09 Juli 2019, 20:22:24
Hallo,

ich habe nochmal einen Bug im Code für den ESP entdeckt und behoben.
Der war allerdings nur relevant wenn man per Reflexlichtschranke am analogen Eingang zählen wollte.
Die neue Version habe ich eingecheckt (Sketch unter contrib/arduino)

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 10 Juli 2019, 12:33:30
Ich hab die letzte Woche den neuen Sketch auf den esp gepackt.
Bisher keine Auffälligkeiten.
Normal war aber auch immer erst nach einem Monat ein Ausfall circa zu verzeichnen.

Ich meld mich noch mal in ne paar Wochen wenn doch noch ein bug auftauchen sollte.


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 05 August 2019, 20:57:53
Es scheint als ob sich der esp schon wieder verabschiedet hat.
Das letzte mal hat er am 30.7 gezahlt.
Zumindest stehen hierzu einig Readings zu das Datum seit dem.
Eine Ping an den esp bekomme ich beantwortet.
Auch ein get info liefert eine Ausgabe zurück.
Allerdings werden keine Zählerstände übertragen.
Das Verhalten ist extrem komisch.
Soll ich doch mal auf die neuste Version Updaten?



Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 06 August 2019, 10:31:24
Hallo Robert,

kannst Du bitte die Ausgabe von get info posten?

Gruss / Thanx
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 06 August 2019, 17:37:42
Hallo Robert,

kannst Du bitte die Ausgabe von get info posten?

Gruss / Thanx
   Stefan
Hier die Ausgabe, wenn die ne Screenshot lieber ist lass es mich wissen.
Gruß Robert

M Status: ArduCounter V3.2 on ESP8266 ESP8266_WEMOS_D1MINI compiled Jul  5 219 16:57:2
I15 60 
T100 110
V
P2 falling pullup min 5, R2 C6275 D/ T N-1531473924, X


M EEPROM Config: Cfg Slots: 3
M Slot: I 15,60,,
M Slot: T 100,110,,
M Slot: A 2,2,1,5
M Next report in 4294966781 milliseconds


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 07 August 2019, 14:52:35
Hallo Robert,

ein Screenshot wäre tatsächlich hilfreich.
Bitte mach doch nach dem ersten Screenshot mit der aktuellen Situation einen "set reset" für das Fhem-Arducounter-Device
und dann nach ein paar Minuten einen zweiten Screenshot von "get info".

Dann um sicherzugehen einen Hardware-Reset des ESP und nochmal ein paar Minuten später einen dritten Screenshot von "get info".

Gruss und vielen Dank!
    Stefan


Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 07 August 2019, 19:15:19
Hallo Robert,

ein Screenshot wäre tatsächlich hilfreich.
Bitte mach doch nach dem ersten Screenshot mit der aktuellen Situation einen "set reset" für das Fhem-Arducounter-Device
und dann nach ein paar Minuten einen zweiten Screenshot von "get info".

Dann um sicherzugehen einen Hardware-Reset des ESP und nochmal ein paar Minuten später einen dritten Screenshot von "get info".

Gruss und vielen Dank!
    Stefan

Alles klar.
Erledigt. Genau in der von dir vorgeschlagen Reihenfolge.
Wie gesagt, ich hab nicht den letzten Stand von dir drauf.
Du hattest ja gesagt es ist nur für Relaxlichtschranken relevant.

Edit: Wenn du willst kann ich dir auch wieder die Logs vom entsprechenden Zeitraum zur verfügung stellen.

Gruß Robert
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 08 August 2019, 08:52:38
Hallo Robert,

bei der Ausgabe fehlen ein paar uint32_t Zahlen.
ich vermute fast dass da beim Compilieren des Sketch etwas schief gelaufen ist.
Mit welcher Version des Arduino- bzw. 8266-Frameworks hast Du es denn compiliert?

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 08 August 2019, 09:07:26
Hallo Robert,

bei der Ausgabe fehlen ein paar uint32_t Zahlen.
ich vermute fast dass da beim Compilieren des Sketch etwas schief gelaufen ist.
Mit welcher Version des Arduino- bzw. 8266-Frameworks hast Du es denn compiliert?

Gruss
   Stefan

Muss ich nachher schauen.
Hab ich im Stegreif nicht im Kopf.

Ich werd nachher noch mal Neu am mac Compileren, das letzte mal war es per altem Windows Laptop.

Gruß Robert


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 08 August 2019, 15:11:38
Hallo Robert,

ich würde je Pin eine Ausgabe wie z.B.
P4 falling pullup min 30, R4 C135624 D2/2 T30625 N1654170639,0 X0 A89
P5 falling pullup min 30, R5 C131744 D1/1 T84943 N1654170639,0 X0 A80
P17 rising min 50, R17 C0 D0/0 T0 N87614519,0 X0
erwarten.
Bei Dir fehlen einige Zahlen.

Der entsprechende Code in der Funktion showPinCounter lautet:

short activePin[MAX_PIN];                       // printed arduino pin number for index if active - otherwise -1
...

    uint32_t count, countDiff, realDiff;
    uint32_t startT, endT, timeDiff, widthSum;
    uint16_t rejCount, rejDiff;
    uint8_t countIgn;
   
    noInterrupts();                                 // copy counters while they cant be changed in isr
    startT   = intervalStart[pinIndex];             // start of interval (typically first pulse)
    endT     = intervalEnd[pinIndex];               // end of interval (last unless not enough)
    count    = counter[pinIndex];                   // get current counter (counts all pulses
    rejCount = rejectCounter[pinIndex];
    countIgn = counterIgn[pinIndex];                // pulses that mark the beginning of an interval
    widthSum = pulseWidthSum[pinIndex];
    interrupts();
       
    timeDiff  = endT - startT;                      // time between first and last impulse
    realDiff  = count - lastCount[pinIndex];        // pulses during intervall
    countDiff = realDiff - countIgn;                // ignore forst pulse after device restart
    rejDiff   = rejCount - lastRejCount[pinIndex];

    Output->print(F("R"));                          // R Report
    Output->print(activePin[pinIndex]);
    Output->print(F(" C"));                         // C - Count
    Output->print(count);
    Output->print(F(" D"));                         // D - Count Diff (without pulse that marks the begin)
    Output->print(countDiff);
    Output->print(F("/"));                          // R - real Diff for long counter - includes first after restart
    Output->print(realDiff);
    Output->print(F(" T"));                         // T - Time
    Output->print(timeDiff); 
    Output->print(F(" N"));                         // N - now
    Output->print((long)now);
    Output->print(F(","));
    Output->print(millisWraps);   
    Output->print(F(" X"));                         // X Reject
    Output->print(rejDiff); 

bisher hat Output->print() mit uint32_t problemlos funktioniert, auch auf meinem Wemos D1 Mini.

Gruss
    Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 08 August 2019, 20:59:27
Hallo Robert,

ein Screenshot wäre tatsächlich hilfreich.
Bitte mach doch nach dem ersten Screenshot mit der aktuellen Situation einen "set reset" für das Fhem-Arducounter-Device
und dann nach ein paar Minuten einen zweiten Screenshot von "get info".

Dann um sicherzugehen einen Hardware-Reset des ESP und nochmal ein paar Minuten später einen dritten Screenshot von "get info".

Gruss und vielen Dank!
    Stefan

Ich hab jetzt den Aktuellen Sketch 3.2 auf den Wemos D1 Mini gepackt.
Sobald ich nun probiere den Mini per FHEM anzusprechen, schmiert er immer ab.

Ich hab hier auch mal die Konsolen Ausgabe vom D1:

I30 60 2 2
T100 110
V0
M WiFi already connected to fligglsnetz-sh
M Server started
M Use this IP: 192.168.30.130
M new connection from 192.168.1.11 accepted
ISR not in IRAM!

Abort called

>>>stack>>>

ctx: cont
sp: 3ffffce0 end: 3fffffc0 offset: 01b0
3ffffe90:  00000000 4bc6a7f0 000024ee 000024ee 
3ffffea0:  00000000 00000000 4bc6a7f0 00000002 
3ffffeb0:  3ffee30c 3ffee5cc 00000002 40100496 
3ffffec0:  00000000 3fffdad0 3ffee5bd 40201425 
3ffffed0:  3ffee30c 3ffee308 00000002 40202b6f 
3ffffee0:  00000004 00000004 00000004 00000001 
3ffffef0:  3ffee594 00000000 3ffef55c 40206d70 
3fffff00:  00000000 4bc6a7f0 000024ee 000024ee 
3fffff10:  3ffee30a 3ffee308 3ffee30c 40203132 
3fffff20:  00000000 00000000 3ffef654 40204334 
3fffff30:  3fffdad0 3ffee5d7 00000061 000024ee 
3fffff40:  3fffdad0 3ffee5d7 3ffee5f0 402032a0 
3fffff50:  40207430 00000000 4010018e 44189374 
3fffff60:  40205ffc 00000000 402074e0 00000000 
3fffff70:  3fffdad0 00000000 00000000 3ffee6e4 
3fffff80:  3fffdad0 00000000 3ffee67c 402033cc 
3fffff90:  00000000 00000000 00000001 3ffee6e4 
3fffffa0:  3fffdad0 00000000 3ffee6b4 40205478 
3fffffb0:  feefeffe feefeffe 3ffe8568 40100811 
<<<stack<<<
1s⸮⸮YY}.x⸮10i<⸮⸮⸮`p⸮9p⸮h2⸮⸮jY⸮8⸮Y⸮⸮;⸮
M no config in EEPROM

ArduCounter V3.20 on ESP8266 ESP8266_WEMOS_D1MINI compiled Aug  8 2019 20:55:42 Hello, pins 0,1,2,5,17 available T560,0 B560,0
I30 60 2 2
T100 110
V0
M WiFi already connected to fligglsnetz-sh
M Server started
M Use this IP: 192.168.30.130
M new connection from 192.168.1.11 accepted
ISR not in IRAM!

Abort called

>>>stack>>>

ctx: cont
sp: 3ffffce0 end: 3fffffc0 offset: 01b0
3ffffe90:  00000000 4bc6a7f0 0000f63f 0000f63f 
3ffffea0:  00000000 00000000 4bc6a7f0 00000002 
3ffffeb0:  3ffee30c 3ffee5cc 00000002 40100496 
3ffffec0:  00000000 3fffdad0 3ffee5bd 40201425 
3ffffed0:  3ffee30c 3ffee308 00000002 40202b6f 
3ffffee0:  00000004 00000004 00000004 00000001 
3ffffef0:  3ffee594 3fffdad0 3ffee6e4 00000030 
3fffff00:  00000000 4bc6a7f0 0000f63f 0000f63f 
3fffff10:  3ffee30a 3ffee308 3ffee30c 40203132 
3fffff20:  00000000 00000000 3ffef89c 40204334 
3fffff30:  3fffdad0 3ffee5d7 00000061 0000f63f 
3fffff40:  3fffdad0 3ffee5d7 3ffee5f0 402032a0 
3fffff50:  40207430 00000000 4010018e 4ccccccc 
3fffff60:  40205ffc 00000000 402074e0 00000000 
3fffff70:  3fffdad0 00000000 00000000 3ffee6e4 
3fffff80:  3fffdad0 00000000 3ffee67c 402033cc 
3fffff90:  00000000 00000000 00000001 3ffee6e4 
3fffffa0:  3fffdad0 00000000 3ffee6b4 40205478 
3fffffb0:  feefeffe feefeffe 3ffe8568 40100811 
<<<stack<<<
⸮a`⸮⸮p2⸮1⸮c⸮⸮18⸮r⸮⸮ 2⸮S⸮8⸮⸮r⸮y⸮{
M no config in EEPROM

ArduCounter V3.20 on ESP8266 ESP8266_WEMOS_D1MINI compiled Aug  8 2019 20:55:42 Hello, pins 0,1,2,5,17 available T560,0 B560,0
I30 60 2 2
T100 110
V0
M WiFi already connected to fligglsnetz-sh
M Server started
M Use this IP: 192.168.30.130

Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 08 August 2019, 23:55:39
Ich habe mal auf die Schnelle gegoogelt und folgendes gefunden:

https://forum.arduino.cc/index.php?topic=616264.0

Scheint ein bekanntes Problem seit Version 2.5.1 der ESP8266 Library zu sein und ich muss wohl eine kleine Anpassung am Code machen.
Ich schau mir das morgen genauer an poste dann ein Update.

Gruß
    Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 09 August 2019, 08:39:40
Ich habe mal auf die Schnelle gegoogelt und folgendes gefunden:

https://forum.arduino.cc/index.php?topic=616264.0

Scheint ein bekanntes Problem seit Version 2.5.1 der ESP8266 Library zu sein und ich muss wohl eine kleine Anpassung am Code machen.
Ich schau mir das morgen genauer an poste dann ein Update.

Gruß
    Stefan
Hallo Stefan,

Ich hab echt ein schlechtes Gewissen, dass ich dir so viel Arbeit mache.
Wenn ich es richtig verstanden habe sollte alles mit der lib 2.5.0 laufen?
Ich kann auch erst mal so kompilieren. Mir ist das relativ.

Gruß Robert


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 09 August 2019, 10:36:39
Hallo Robert,

kein Problem.
Ich freue mich ja wenn es jemand testet.
Anbei eine neue Version, die bei mir mit der Core-Version 2.5.2 zu funktionieren scheint :-)
Leider ist es so weit ich gesehen habe beim 8266 nicht so einfach den Millis()-Counter zum Testen in die Zukunft zu setzen...

Gruss
   Stefan

EDIT 10.8.19: angehängte Datei entfernt, aktuelle Version ist im SVN
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 09 August 2019, 14:28:13
Hallo Robert,

kein Problem.
Ich freue mich ja wenn es jemand testet.
Anbei eine neue Version, die bei mir mit der Core-Version 2.5.2 zu funktionieren scheint :-)
Leider ist es so weit ich gesehen habe beim 8266 nicht so einfach den Millis()-Counter zum Testen in die Zukunft zu setzen...

Gruss
   Stefan

Sobald ich zuhause bin, wird geflashed.
Ich meld mich dann noch mal.

Danke und Gruß Robert


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 10 August 2019, 14:53:39
Hallo,

bei der Suche nach weiteren potentiellen Problemen habe ich noch mehr Bugs gefunden und entfernt.
Die neue Version habe ich gleich eingecheckt (Modul + Firmware).

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 10 August 2019, 17:46:41
Hallo,

bei der Suche nach weiteren potentiellen Problemen habe ich noch mehr Bugs gefunden und entfernt.
Die neue Version habe ich gleich eingecheckt (Modul + Firmware).

Gruss
   Stefan

Hallo Stefan. Alles klar danke.
Gestern Abend hab ich die 3.31 auf den esp geflasht. Bis jetzt scheint alles gut zu funktionieren.

Mal eine Frage wenn sind dein FHEM Modul und uC abwärtskompatibel?
Oder muss immer seas aktuellste Modul mit der aktuellsten uC Firmware laufen?

Mal schauen ob ich morgen dazu komme die aktuellste Firmware aufzuspielen.
Sind die Änderungen nur für den esp relevant oder auch für die arduinos?

Gruß Robert


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 10 August 2019, 23:34:47
Hallo Robert,

Ich glaube dass ich mit der heutigen Änderung endlich den letzten Bug fixen konnte, der dazu geführt hat, dass nach 25 Tagen keine Zählerstände mehr an Fhem gemeldet wurden. Das müsste auch bei Arduinos ein Problem gewesen sein. Seltsamerweise hat sich bisher keiner beschwert. Ich habe es aber auch nicht bemerkt, da mein Fhem nie so lange ohne Neustart gelaufen ist und ich immer wieder was Neues ausprobiert habe.
Die Firmware und das Modul sollten seit eine Jahr weitgehend kompatibel sein. Es ist aber trotzdem ratsam, beides immer aktuell zu halten.

Gruß
    Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 11 August 2019, 10:52:55
Hallo Stefan,

Danke für die antwortet.
Ich hab heute als aktualisiert.

Beim arduino kommt ja auch jeder Neustart dazwischen.

Warten wir mal ab was der neue Sketch so in ein paar Tagen anstellt.

Danke für deine Arbeit


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Otto123 am 11 August 2019, 11:34:51
Hallo Stefan,

doch ich muss gestehen ich war offenbar betroffen von den 25 Tagen (Arduino nano) aber wie es so ist: Ich habe es nicht näher untersucht, hab mich nur gewundert nach Strom weg ist alles wieder gut. Und es waren bei uns ein paar ungeplante Stromausfälle dazwischen  :o
Ich werde also dann mal updaten  ;)

Gruß Otto
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: tpm88 am 11 August 2019, 15:13:17
Hallo Stefan,

ich habe meinen Zähler auf Wemos D1 auf die neueste FW 3.32 und Modulversion aktualisiert. Die eigentliche Zählung funktioniert seit langer Zeit schon problemlos. Ich habe aber immer wieder Reconnects - manchmal nur ein oder zwei Reconnects und dann auch mal 100+ direkt hintereinander. Natürlich tippe ich auf schlechten WLAN Empfang - direkt daneben habe ich aber noch einen zweiten Wemos mit ESP Easy, der absolut unauffällig läuft. Ich habe den ArduCounter Wemos auch schon gegen einen anderen getauscht, um die Hardware auszuschließen. Allerdings ohne Besserung.

Gäbe es eine Möglichkeit in der Firmware den WLAN RSSI Wert mit zu übertragen? Hättest Du einen Vorschlag, wie ich das Problem noch besser eingrenzen kann?

Danke & Gruß
Tobi
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 11 August 2019, 15:36:24
Hallo Stefan,

ich habe meinen Zähler auf Wemos D1 auf die neueste FW 3.32 und Modulversion aktualisiert. Die eigentliche Zählung funktioniert seit langer Zeit schon problemlos. Ich habe aber immer wieder Reconnects - manchmal nur ein oder zwei Reconnects und dann auch mal 100+ direkt hintereinander. Natürlich tippe ich auf schlechten WLAN Empfang - direkt daneben habe ich aber noch einen zweiten Wemos mit ESP Easy, der absolut unauffällig läuft. Ich habe den ArduCounter Wemos auch schon gegen einen anderen getauscht, um die Hardware auszuschließen. Allerdings ohne Besserung.

Gäbe es eine Möglichkeit in der Firmware den WLAN RSSI Wert mit zu übertragen? Hättest Du einen Vorschlag, wie ich das Problem noch besser eingrenzen kann?

Danke & Gruß
Tobi

Soweit ich es gesehen habe, gibt es eine funktion WiFi.RSSI. Gut wäre es schon.
Meine Unifi Accesspoint geben mir an, mit welcher stärke der ESP arbeitet.

Hast du die Kanal Funktion im Router auf Auto stehen?
Und die Sendeleistung vielleicht auch?
So ein Kanalwechsel oder Poweranpassung kann schon mal zum Abbruch der Verbindung führen.

Gruß Robert
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 12 August 2019, 17:54:49
Hallo Tobi,

Das Fhe,-Modul und die Firmware tauschen bei Verbindung über WLAN ständig (per Default alle 10 Sekunden) Keepalives aus. Wenn die nicht rechtzeitig (per Default innerhalb 2 Sekunden) beantwortet werden, wird die TCP-Verbindung geschlossen und neu aufgebaut. Dabei gehen allerdings keine Daten verloren. Der ESP zählt munter weiter und meldet seine Stände bei der nächsten Gelegenheit.
Ich hatte schon einen Fall, in dem Fhem von anderen Modulen so sehr ausgelastet war, dass der Timeout zugeschlagen hat.
Es ist also eher nicht die WLAN-Verbindung, sonst würde eventuell der Reconnect auch Probleme machen. Ich tippe eher auf Verzögerte Bearbeitung o.ä.
Um das herauszufinden kannst Du Verbose 5 einstellen und das Log beobachten bzw. posten.
Du kannst auch mal die Attribute verändern:

Zitat
keepAliveDelay
defines an interval in which the module sends keepalive messages to a counter device that is conected via tcp.
This attribute is ignored if the device is connected via serial port.
If the device doesn't reply within a defined timeout then the module closes and tries to reopen the connection.
The module tells the device when to expect the next keepalive message and the device will also close the tcp connection if it doesn't see a keepalive message within the delay multiplied by 2.5
The delay defaults to 10 seconds.
Example: attr myCounter keepAliveDelay 30
keepAliveTimeout
defines the timeout when wainting for a keealive reply (see keepAliveDelay) The timeout defaults to 2 seconds.
Example: attr myCounter keepAliveTimeout 3
keepAliveRetries
defines how often sending a keepalive is retried before the connection is closed and reopened.
It defaults to 2.
Example: attr myCounter keepAliveRetries 3

Das mit der RSSI packe ich auf die Wunschliste. Sobald ich dazu komme, schau ich mir das an.

Gruss
    Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 12 August 2019, 19:43:35
Hallo,

mir ist heute nochmal ein Bug in der Firmware aufgefallen.
Deshalb habe ich gerade nochmal ein Update eingecheckt.

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 12 August 2019, 21:21:07
Korrektur:

der letzte check in war fehlerhaft.
Jetzt ist nochmal eine neue Version (3.34+aktualisiertes Modul) eingecheckt, die bei devVerbose >= 5 auch ein RSSI-Reading erzeugt.
Ich hoffe es dabei keine neuen Fehler reingekommen ;-)

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: tpm88 am 12 August 2019, 21:50:18
Meine Unifi Accesspoint geben mir an, mit welcher stärke der ESP arbeitet.

Hast du die Kanal Funktion im Router auf Auto stehen?
Und die Sendeleistung vielleicht auch?
So ein Kanalwechsel oder Poweranpassung kann schon mal zum Abbruch der Verbindung führen.

Hallo Robert,

tatsächlich habe ich auch einen Unifi AP. Im Controller sehe ich für beide (direkt benachbarte) Wemos RSSI Werte um -70dbm. Der ArduCounter Wemos hat allerdings stets einen deutlich schlechteren WiFi Experience Wert ( um 30% ), während der andere ESPEasy Wemos eher stabile WiFi Experience Werte > 60% zeigt. Für den ArduCounter Wemos meldet der Unifi AP meist hohe Receive Retries. Deshalb tippe ich ja auch bei den ArduCounter Reconnects zunächst auf WLAN Aussetzer. Im Unifi Controller habe ich noch kein Log gefunden, welches WLAN Abbrüche bzw. Neuanmeldungen eines einzelnen Clients loggt.

Zusätzlich habe ich testweise in der Firmware den WiFi PHY Mode mal fix auf 11G gesetzt. Hierzu habe ich vor dem Connect folgende Zeile eingefügt:

WiFi.setPhyMode(WIFI_PHY_MODE_11G);
Laut  https://github.com/esp8266/Arduino/issues/2795  (https://github.com/esp8266/Arduino/issues/2795) ( vgl. Antwort vom 8.10.2018 ) soll das die Stabilität von WiFi Verbindungen beim ESP8266 verbessern.

Gruß
Tobias
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: tpm88 am 12 August 2019, 21:55:34
Ich hatte schon einen Fall, in dem Fhem von anderen Modulen so sehr ausgelastet war, dass der Timeout zugeschlagen hat.
Es ist also eher nicht die WLAN-Verbindung, sonst würde eventuell der Reconnect auch Probleme machen. Ich tippe eher auf Verzögerte Bearbeitung o.ä.
Um das herauszufinden kannst Du Verbose 5 einstellen und das Log beobachten bzw. posten.

Hallo Stefan,

vielen Dank für diesen Aspekt und die Tipps zur Problemeingrenzung. Bezüglich verzögerter Verarbeitung werde ich mal sehen, ob der freezemon da ggf. korrelierte Einträge erzeugt hat. Ich werde weiter testen und versuchen, via verbose 5 mehr Licht ins Dunkel zu bringen. Danke auch für den um RSSI erweiterten Sketch - Feedback hierzu kann ich aber vsl. erst nächste Woche liefern.

Gruß
Tobi
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: msome am 07 September 2019, 20:03:53
Hallo, ich wollte mich mal bedanken für den ArduCounter.  :)

Ich hab den Wasserzähler im Haus damit ausgestattet und muss sagen ich bin überaus zufrieden.
Eine Woche hat er mit einem Näherungssensor der über ein Relais am ArduCounter angeschlossen war gezählt. Total falsch - viel zu viel, da der Relaiskontakt scheinbar geprellt hat. Hardware-Problem. Eine Entprellung mit Kondensator wie ab und zu zu lesen ist, gefällt mir wegen der Mini-Kurzschlüsse beim Aufladen nicht.

Letzte Woche habe ich das Relais dann gegen einen Optokoppler getauscht. War scheinbar die richtige Entscheidung.
Seit einer Woche zählt der ArduCounter jetzt richtig. Kein einziger Liter fehlt oder zu viel. Bei einem 4-Personen-Haushalt, d.h. da läuft (speziell jetzt in den Ferien) doch der eine oder andere Liter durch.

Das ArduCounter FHEM Modul läuft zusammen mit einem statistics Modul und zählt somit den Wasserverbrauch pro Tag.

Vielen Dank nochmal für die Entwicklung und das Debugging bisher - an Stefan und alle die mitgeholfen haben.

Matthias
[7. Sept 2019: ArduCounter Firmware 3.34 + WIFI_PHY_MODE_11G Option; FHEM Modulversion 6.18)
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 14 September 2019, 13:02:35
Korrektur:

der letzte check in war fehlerhaft.
Jetzt ist nochmal eine neue Version (3.34+aktualisiertes Modul) eingecheckt, die bei devVerbose >= 5 auch ein RSSI-Reading erzeugt.
Ich hoffe es dabei keine neuen Fehler reingekommen ;-)

Gruss
   Stefan

Hallo Stefan,

ich bekomme die 3.34 nicht kompiliert.
hier dei Fehlermeldung:
Arduino: 1.8.9 (Mac OS X), Board: "LOLIN(WEMOS) D1 R2 & mini, 80 MHz, Flash, Disabled, All SSL ciphers (most compatible), 4M (no SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 921600"

sketch_sep14b:131:35: error: ArduCounterTestConfig.h: No such file or directory
 #include "ArduCounterTestConfig.h"
                                   ^
compilation terminated.
exit status 1
ArduCounterTestConfig.h: No such file or directory

Dieser Bericht wäre detaillierter, wenn die Option
"Ausführliche Ausgabe während der Kompilierung"
in Datei -> Voreinstellungen aktiviert wäre.


Ich glaube Zeile 107 sollte wie folgt aussehen:
/*#define TestConfig // include my SSID / secret*/
Gruß Robert
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 15 September 2019, 21:01:39
Hi Robert,

da hast Du natürlich recht.
In der Zeile darüber habe ich ja sogar geschrieben: "remove this ..."

Ich hätte das vor dem Checkin auskommentieren sollen und checke bei nächster Gelegenheit eine neue Version ein.

Hat eigentlich jemand Interesse an einer Version für den esp32?
Ich habe den Code mal so umgestellt, dass er mit PlatformIO und für den ESP32 compiliert.
Es gäbe da aber sicher noch einiges zu testen.

Gruß
    Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 19 September 2019, 10:54:54
Hallo Matthias,

das mit dem induktiven Näherungssensor klingt gut!
Ich habe meinen Wasserzähler bisher noch nicht angeschlossen, möchte das aber auch noch tun.
Bisher habe ich es mit einer einfachen IR Reflexlichtschranke versucht. Der Reflektionsunterschied bei einem kleinen Rädchen war aber zu gering. Dann habe ich eine Laserdiode verwendet, aber da der Zeiger des Zählers eine ähnliche Farbe hat, klappt das leider zumindest mit einem roten Laser auch nicht.

Hast Du verschiedene Näherungssensoren ausprobiert?
Kann man den Ausgang nicht einfach per Spannungsteiler an den Arduino hängen?
Gibt es Erfahrungswerte zur Maximalfrequenz?

Gruß / Thanks
    Stefan

Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 19 September 2019, 10:58:29
Hallo Matthias,

das mit dem induktiven Näherungssensor klingt gut!
Ich habe meinen Wasserzähler bisher noch nicht angeschlossen, möchte das aber auch noch tun.
Bisher habe ich es mit einer einfachen IR Reflexlichtschranke versucht. Der Reflektionsunterschied bei einem kleinen Rädchen war aber zu gering. Dann habe ich eine Laserdiode verwendet, aber da der Zeiger des Zählers eine ähnliche Farbe hat, klappt das leider zumindest mit einem roten Laser auch nicht.

Hast Du verschiedene Näherungssensoren ausprobiert?
Kann man den Ausgang nicht einfach per Spannungsteiler an den Arduino hängen?
Gibt es Erfahrungswerte zur Maximalfrequenz?

Gruß / Thanks
    Stefan

Hallo Stefan,

ich hab mir einen Panasonic (Sunx) EX-26a dafür angeschafft.
Leider bisher noch nicht eingebaut.
Es gibt dazu aber schon Erfahrungsberichte dazu um netz.

Gruß Robert
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: msome am 30 September 2019, 20:38:10
Hast Du verschiedene Näherungssensoren ausprobiert?
Kann man den Ausgang nicht einfach per Spannungsteiler an den Arduino hängen?
Gibt es Erfahrungswerte zur Maximalfrequenz?

Hallo Stefan, tut mir leid dass ich erst so spät antworte, war beruflich 2 Wochen unterwegs und da war nicht viel Zeit.

Ich habe 2 Sensoren ausprobiert, da der erste nicht jede Umdrehung erkannt hat.
Zuerst diesen blauen hier (http://blog.steveundkristin.de/2015/09/13/fhem-wasserzaehler-auslesen-mit-hilfe-von-mysensors/) und jetzt nutze ich einen empfindlicheren in orange. (https://www.amazon.de/gp/product/B00QTNRNLQ/ref=oh_aui_detailpage_o04_s00?ie=UTF8&psc=1)

Man könnte natürlich einen Spannungsteiler nutzen, aber da der Sensor über einen Stepup mit Spannung versorgt wird und ich mit der Zuverlässigkeit der <hüstel> günstigen Stepups aus China nicht so ganz zufrieden bin, wollte ich auf Nummer sicher gehen. Lieber stirbt ein 50ct Optokoppler als der D1.

Mit der Frequenz habe ich nicht gespielt, aber bisher hat der Sensor noch nichts verpasst. Bis heute liegt der Sensor keinen einzigen Liter daneben und hat dabei (eben kontrolliert) schon 8609 Liter gezählt.

Wenn du Interesse an dem blauen Sensor hast, schreib 'ne PN mit der Adresse und ich schick ihn dir; Ich habe keine Verwendung mehr dafür.

Den EX-26a habe ich mir angeschaut, aber ehrlich gesagt war er mir viel zu teuer (>75€). Deshalb habe ich den orangen Sensor (8€) noch ausprobiert.
Der einzige Vorteil des EX-26a wäre, ich könnte (ich glaub) in 50ml Schritten das Zahn-Rad abtasten - aber mir ist kein Anwendungsfall dafür eingefallen.

Matthias
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 02 Oktober 2019, 22:08:31
Hallo Matthias,

danke für die Details.
Ich hab jetzt auch mal so einen orangen Sensor bestellt.
Das mit dem Step up ist auch eine gute Idee. Ich dachte erst an ein Netzteil mit höherer Spannung und dann einen Spannungsregler für den ESP.

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Oscar am 12 Oktober 2019, 16:32:59
Hallo,

da mein Stromzähler bisher gemacht hat was er sollte, habe ich begonnen das System zu erweitern.
Dabei hat mit das Update von FHEM natürlich meinen Zähler zerschossen.
Ich habe also dem ArduCounter die aktuellste Version 3.34 verpasst und die Userreadings auf die neuen Bedingungen angepasst.
Soweit funktioniert das ganz gut, aber ich bekomme meinen Zählerstand nicht eingelesen.

Ich habe erst einen Dummy für den Zählerstand angelegt und mit Daten gefüttert
define StromZaehlerstand dummy
set StromZaehlerstand „aktueller Zählerstand“

und danach das Userreading erzeugt
attr Verbrauch userReadings energy_act {ReadingsVal("Verbrauch","powerD4",0)} ,energy monotonic { ReadingsVal("Verbrauch","pinD4",0)/800} ,energy_day monotonic { ReadingsVal("Verbrauch","pinD4",0)/800} ,energy_month monotonic { ReadingsVal("Verbrauch","pinD4",0)/800} ,energy_year monotonic { ReadingsVal("Verbrauch","pinD4",0)/800} ,energy_hauszaehler monotonic {ReadingsVal("Verbrauch","pinD4",0)/800+ReadingsNum("StromZaehlerstand","state",0)}
Die erzeugten Werte stimmen alle, aber dem Wert von energy_hauszaehler wird nicht der Startzählerstand hinzugefügt.

Kann mir da jemand auf die Sprünge helfen?

Danke.
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 12 Oktober 2019, 17:38:04
Hallo Oscar,

das mit dem Dummy, einer eigenen Umrechnung und monotonic ist schon lange nicht mehr nötig.
Setz statt dessen einfach das Attribut pulsesPerKWh auf den richtigen Wert.
Das Modul erzeugt dann ein entsprechend umgerechnetes Reading mit Namen calcCounter$pinName, das nach nach Neustarts weiter gezählt wird.
Den Namen des Readings kannst Du aber auch mit dem Attribut readingNameCalcCount$pin ändern.

Gruss
    Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Oscar am 12 Oktober 2019, 18:13:26
Hallo Stefan,

Danke für die schnelle Hilfe.

Ich hatte beim durchforsten des Threads schon gesehen das sich in den letzten paar Jahren seeehr viel geändert hat. Alle Achtung.
Ich werde wohl meine Programmierung entsprechend anpassen müssen.

Wenn die userreadings wegfallen können, hat man wenigstens weniger Fehlerquellen.

Nochmal Danke und ein schönes Restwochenende.

Gruß Oscar
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Oscar am 13 Oktober 2019, 11:47:45
Hallo Stefan,

ich habe jetzt den ArduCounter neu angelegt. Das funktioniert soweit gut.

Ist es gewollt das calcCounterD4 nur angelegt wird wenn pulsesPerKWh definiert wird und nicht schon bei readingPulsesPerKWhD4?

Ich hatte angenommen das pulsesPerKWh eine Geräteweite Definition ist und die readingPulsesPerKWh überschreibt.

Gruß Oscar
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 13 Oktober 2019, 12:12:33
Hallo Oscar,

da hast Du einen Bug gefunden.
pulsesPerKWh und readingPulsesPerKWh4 wurden geprüft, aber readingPulsesPerKWhD4 hat gefehlt.

anbei eine neue Version zum Testen.
Wenn alles andere noch funktioniert checke ich die neue Version demnächst ein.

Gruss
   Stefan
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Oscar am 13 Oktober 2019, 12:46:51
Hallo Stefan,

ich habe Deine neue Version eingespielt und das Attribut pulsePerKWh gelöscht.
calcCounterD4 geht jetzt.

Danke

Gruß Oscar
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Tonno am 27 Oktober 2019, 20:42:41
Hallo Zusammen!

Ich experimentiere seit einigen Tagen mit Arducounter und hatte bisher immer das Problem, dass der erfasste Wert von dem im Display abweicht.
Heute morgen habe ich meinen Arduino-Nano gegen einen Uno gewechselt um dabei einen Hardware-Fehler auszuschließen. Allerdings war eben wieder knapp eine kWh zu wenig in FHEM erfasst.

Mir ist dann eben noch aufgefallen, dass der Wert rejectD4 bei 1255 liegt (was so ziemlich genau die Anzahl an Impulsen ist, die gegenüber dem Display gefehlt hat). Ich habe die Impulslänge nun auf 5ms geändert und seit dem hat sich der Wert nicht mehr erhöht. Der Zähler ist ein DSZ15D-3x80A von Eltako. Laut Datenblatt beträgt die Impulslänge 30ms. Entweder stimmt was mit dem Signal nicht oder der Arduino ist zu langsam?

Bin jedenfalls gespannt ob es bis morgen geklappt hat.

Anbei meine Konfiguration:

interval 10 600 2 2
pinD4 falling pullup 5  (vorher 30)

Ansonsten macht ArduCounter schon was her! Ich hatte bevor ich es gefunden habe selbst einen sketch geschrieben. Aber warum das Rad neu erfinden?  ;)
Grüße

Tonno
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Tonno am 28 Oktober 2019, 17:18:17
Hallo Zusammen!

Wie sich zeigt erfasst der Arduino teilweise nur eine Impuls-Zeit von 0,029s. Diese Impulse werden dann natürlich verworfen.
Obs nun am Zähler liegt oder am Sketch kann ich nicht sagen... Jedenfalls läuft es jetzt  :)

Anbei ein kurzer Ausschnitt!

Grüße

Tonno
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Badflex am 04 Dezember 2019, 21:17:57
Hallo, hab mir jetzt mal ein NodeMCU mit ESP8266 zugelegt. Ich gebe zu ich habe keine Ahnung von Adruino.
Habe darauf ESP Easy geflasht und mit einer Youtube Anleitung den Zähhler ausgelesen.

Jetzt habe ich hier das Modul endeckt und finde es viel interesanter.
Muss ich für den AdruCounter eine ander Softwar flashen oder wie bekomme ich die Counts angezeigt?

Gibt's da eine Anleitung? Ich lese hier immer etwas von Sketch aber ich habe keine Ahnung was das ist?
Vielleicht hat jemand einen Tipp.

Vielen Dank
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: tpm88 am 05 Dezember 2019, 11:18:54
Am Besten erst einmal hier einlesen: https://wiki.fhem.de/wiki/ArduCounter
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 05 Dezember 2019, 20:35:25
Arducounter ist ein arduino Sketch. Dieser Sketch muss per arduino ide auf den esp übertrage  werden. Wie das genau geht am besten mal Googles.


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Badflex am 05 Dezember 2019, 22:04:30
Danke, aber wenn ich den Arducounter 3.o kompilieren will. kommen 1000de von # und , Fehlern. Irgendwas muss ich da doch falsch machen?!
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 06 Dezember 2019, 06:21:01
Danke, aber wenn ich den Arducounter 3.o kompilieren will. kommen 1000de von # und , Fehlern. Irgendwas muss ich da doch falsch machen?!
Damit du in der arduino ide eine esp überhaupt Flashen kannst, muss die vorher die esp Libs hinzu gefügt haben.
Schau mal hier https://www.heise.de/ct/artikel/Arduino-IDE-installieren-und-fit-machen-fuer-ESP8266-und-ESP32-4130814.html


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: no_Legend am 06 Dezember 2019, 08:56:17
Hallo nochmal.
Also ich bekomme die Beispiele in Arduino geflasht. Aber beim der Arducounter3.0 kommen viele Komma # Fehler.

Hat das Programm schon jemand auf dem NodeMcu V3 geflasht?


Bei mir lauft der Sketch auf dem wemos d1 Mini. Zu deinem Node kann ich nichts sagen


Gesendet von iPhone mit Tapatalk Pro
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Badflex am 06 Dezember 2019, 12:40:26
Aber wenn es beim kompilieren Fehler gibt. Kann es dann überhaupt am  NodeMCU liegen?
Ich verstehe nicht das es bei jedem klappt aber bei mir nicht.
Habe es schon auf mehreren Rechnern ausprobiert und verschiedene  Anleitungen gelesen. Finde aber nichts was ich falsch mache.
Wie gesagt die Beispiele gehen ja zu flashen ohne Fehler.

Kann man die Software auch anderst als mit Arduino IDE flashen?
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: tpm88 am 06 Dezember 2019, 13:16:57
Hallo nochmal.
Also ich bekomme die Beispiele in Arduino geflasht. Aber beim der Arducounter3.0 kommen viele Komma # Fehler.

Hat das Programm schon jemand auf dem NodeMcu V3 geflasht?

Wir werden hier nicht weiterkommen, wenn Du uns nicht mehr Informationen bereitstellst...

Was für Fehler genau? Log?
Welche Arduino IDE?
Welche Libraries hast Du eingebunden?
etc etc

Hast Du im Sketch zumindest folgende Zeilen gepflegt?

const char* ssid = "<deine WLAN SSID>";
const char* password = "<dein WLAN PW>";

Die Glaskugel ist gerade eingefroren  ;)

Tobi
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Badflex am 07 Dezember 2019, 14:38:44
Wir werden hier nicht weiterkommen, wenn Du uns nicht mehr Informationen bereitstellst...

Was für Fehler genau? Log?
Welche Arduino IDE?
Welche Libraries hast Du eingebunden?
etc etc

Hast Du im Sketch zumindest folgende Zeilen gepflegt?

const char* ssid = "<deine WLAN SSID>";
const char* password = "<dein WLAN PW>";

Die Glaskugel ist gerade eingefroren  ;)

Tobi

Danke. jetzt bin ich um einiges schlauer. Deine Zeile mit der WLAN SSID hat mir die Lösung gebracht.
Ich habe gesehen das sie bei mir ganz anders aussieht. Ich wusste nicht das man von GitHub keine einzelnen Dateien speichern kann. Habe mir das ganze Packet runtergeladen, dann sah die ArduCounter.ino auch nicht wie HTML Code aus.

Ich denke typischer Anfängerfehler:-)


Jetzt hätte ich aber noch zwei fragen:

Im Wiki steht das man Analogzähler mit dem ESP Board noch nicht auslesen kann.
Habe eiben NodeMCU V3 mit einem TCRT5000 an Pin D5 hängen und es Zählt. Aber wohl nicht so genau.


Was muss ich im Sketch genau ändern damit ich die Analogzähler auslesen kann?

Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: StefanStrobel am 08 Dezember 2019, 22:41:50
Hallo Badflex,

Der Zusatz, dass das mit einem ESP noch nicht unterstützt wird, ist veraltet. Ich habe das gerade schon im Wiki korrigiert.
Hinweise zur Verwendung stehen im Wiki ja schon drin.

Gruß
    Stefan
Titel: ArduCounter mit KNX Zähler
Beitrag von: lichtimc am 09 Dezember 2019, 11:54:04
Hallo,

eine Frage: Ist dieses Modul mit einem anderen Impulszählgerät als dem Arduino verwendbar?
Ich habe einen KNX-Binäreingang, der die S0-Impulse meines Stromzählers zählt und als ganzzahligen Wert nach Fhem übermittelt:
(siehe Bild Dateianhang, den ich übrigens nicht hier einfügen kann... mir fehlt ein "Bild einfügen Button" im WYSIWYG-Editor)

Könnte ich das Modul so konfigurieren, dass die ganzen Stromwert-Berechnungen auch mit meinem Zähler funktionieren? Das wäre sehr praktisch, da bspw. auch der Binäreingang wieder von 0 beginnt, wenn er neu programmiert wird...
Wenn ja, was müsste ich ändern?

Vielen Dank für die Antwort,
glg, David


EDIT: Habe es nun mit dem ElectricityCounter-Modul realisiert.
Titel: Antw:ArduCounter Support und neue Versionen (war: Stromzähler mit S0 Schnitt...)
Beitrag von: Badflex am 20 Dezember 2019, 17:19:44
Hallo mal wieder.
Mein Arducounter zählt immer nur ein  paar Stunden und dann steht er auf disconected. Verliert mein ESP vielleicht die Wlan Verbindung?

Muss man da noch was konfigurieren?

Hier ein Log:
2019.12.20 17:02:52 3: AC: device: pin 5 (internal 14) changed to 0, histIdx 1, count 2994, reject 58349
2019.12.20 17:03:04 3: AC: device: pin 5 (internal 14) changed to 1, histIdx 15, count 2994, reject 58357
2019.12.20 17:03:04 3: AC: device: pin 5 (internal 14) changed to 0, histIdx 3, count 2995, reject 58358
2019.12.20 17:03:16 3: AC: device: pin 5 (internal 14) changed to 1, histIdx 18, count 2995, reject 58362
2019.12.20 17:03:16 3: AC: device: pin 5 (internal 14) changed to 0, histIdx 10, count 2996, reject 58363
2019.12.20 17:03:55 3: AC: device: pin 5 (internal 14) changed to 1, histIdx 9, count 2996, reject 58388
2019.12.20 17:03:57 3: AC: device: pin 5 (internal 14) changed to 0, histIdx 6, count 2997, reject 58413
2019.12.20 17:04:36 3: AC: device: pin 5 (internal 14) changed to 1, histIdx 0, count 2997, reject 58419
2019.12.20 17:04:36 3: AC: device: pin 5 (internal 14) changed to 0, histIdx 8, count 2998, reject 58420
2019.12.20 17:04:47 3: AC: device: pin 5 (internal 14) changed to 1, histIdx 1, count 2998, reject 58424
2019.12.20 17:04:47 3: AC: device: pin 5 (internal 14) changed to 0, histIdx 8, count 2999, reject 58424
2019.12.20 17:04:55 3: AC: device didn't reply to k(eeepAlive), count=1
2019.12.20 17:05:03 3: AC: device: pin 5 (internal 14) changed to 1, histIdx 1, count 2999, reject 58427
2019.12.20 17:05:03 3: AC: device: pin 5 (internal 14) changed to 0, histIdx 12, count 3000, reject 58428
2019.12.20 17:05:13 3: AC: device: pin 5 (internal 14) changed to 1, histIdx 10, count 3000, reject 58434
2019.12.20 17:05:13 3: AC: device: pin 5 (internal 14) changed to 0, histIdx 1, count 3001, reject 58435
2019.12.20 17:05:25 3: AC: device didn't reply to k(eeepAlive), count=1
2019.12.20 17:05:29 3: AC: device: pin 5 (internal 14) changed to 1, histIdx 16, count 3001, reject 58443
2019.12.20 17:05:29 3: AC: device: pin 5 (internal 14) changed to 0, histIdx 6, count 3002, reject 58444
2019.12.20 17:05:35 3: AC: device: pin 5 (internal 14) changed to 1, histIdx 19, count 3002, reject 58450
2019.12.20 17:05:36 3: AC: device: pin 5 (internal 14) changed to 0, histIdx 8, count 3003, reject 58451
2019.12.20 17:05:47 3: AC: device: pin 5 (internal 14) changed to 1, histIdx 16, count 3003, reject 58455
2019.12.20 17:05:48 3: AC: device: pin 5 (internal 14) changed to 0, histIdx 7, count 3004, reject 58456
2019.12.20 17:06:18 3: AC: device didn't reply to k(eeepAlive), count=1
2019.12.20 17:06:28 3: AC: device didn't reply to k(eeepAlive), count=2
2019.12.20 17:06:38 3: AC: device didn't reply to k(eeepAlive), count=3
2019.12.20 17:06:51 3: AC: device didn't reply to k(eeepAlive), count=4
2019.12.20 17:07:01 3: AC: device didn't reply to k(eeepAlive), count=5
2019.12.20 17:07:02 3: AC: device: pin 5 (internal 14) changed to 1, histIdx 18, count 3004, reject 58488
2019.12.20 17:07:02 3: AC: device: pin 5 (internal 14) changed to 0, histIdx 4, count 3005, reject 58510
2019.12.20 17:07:09 3: AC: device: pin 5 (internal 14) changed to 1, histIdx 0, count 3005, reject 58529
2019.12.20 17:07:11 3: AC: device: pin 5 (internal 14) changed to 0, histIdx 18, count 3006, reject 58550
2019.12.20 17:07:55 3: AC: device: pin 5 (internal 14) changed to 1, histIdx 1, count 3006, reject 58571
2019.12.20 17:07:58 3: AC: device: pin 5 (internal 14) changed to 0, histIdx 14, count 3007, reject 58597
2019.12.20 17:08:24 3: AC: device didn't reply to k(eeepAlive), count=1
2019.12.20 17:08:47 3: AC: device: pin 5 (internal 14) changed to 1, histIdx 15, count 3007, reject 58624
2019.12.20 17:08:50 3: AC: device: pin 5 (internal 14) changed to 0, histIdx 15, count 3008, reject 58666
2019.12.20 17:09:17 3: AC: device didn't reply to k(eeepAlive), count=1
2019.12.20 17:09:47 3: AC: device didn't reply to k(eeepAlive), count=1
2019.12.20 17:09:58 3: AC: device: pin 5 (internal 14) changed to 1, histIdx 0, count 3008, reject 58709
2019.12.20 17:09:58 3: AC: device: pin 5 (internal 14) changed to 0, histIdx 19, count 3009, reject 58738
2019.12.20 17:10:10 3: AC: device didn't reply to k(eeepAlive), count=1
2019.12.20 17:10:19 3: 192.168.178.59:80 disconnected, waiting to reappear (AC)
2019.12.20 17:10:30 3: AC: device didn't reply to k(eeepAlive), count=1
2019.12.20 17:10:40 3: AC: device didn't reply to k(eeepAlive), count=2
2019.12.20 17:10:50 3: AC: device didn't reply to k(eeepAlive), count=3
2019.12.20 17:11:03 3: AC: device didn't reply to k(eeepAlive), count=4
2019.12.20 17:11:13 3: AC: device didn't reply to k(eeepAlive), count=5
2019.12.20 17:11:23 3: AC: device didn't reply to k(eeepAlive), count=6
2019.12.20 17:11:33 3: AC: device didn't reply to k(eeepAlive), count=7
2019.12.20 17:11:43 3: AC: device didn't reply to k(eeepAlive), count=8
2019.12.20 17:11:53 3: AC: device didn't reply to k(eeepAlive), count=9
2019.12.20 17:12:06 3: AC: device didn't reply to k(eeepAlive), count=10
2019.12.20 17:12:16 3: AC: device didn't reply to k(eeepAlive), count=11
2019.12.20 17:12:26 3: AC: device didn't reply to k(eeepAlive), count=12
2019.12.20 17:12:36 3: AC: device didn't reply to k(eeepAlive), count=13
2019.12.20 17:12:46 3: AC: device didn't reply to k(eeepAlive), count=14
2019.12.20 17:12:56 3: AC: device didn't reply to k(eeepAlive), count=15
2019.12.20 17:13:09 3: AC: device didn'