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

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

Vorheriges Thema - Nächstes Thema

tpm88

Zitat von: StefanStrobel am 23 Februar 2019, 19:37:22
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?
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

StefanStrobel

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)

StefanStrobel

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

tpm88

Zitat von: StefanStrobel am 24 Februar 2019, 21:00:26
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
Test FHEM Server on RPi, CUL_HM
Prod FHEM Server on Odroid HC1, HM-USB, JeeLink
Devices: diverse HM, IT1500, 1wire, LaCrosse, MQTT

andreas.maurer

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

StefanStrobel

Hallo Andreas,

Was genau meinst Du denn mit ,,hängt sich weg"?
Was steht denn in so einem Moment im Log?

Gruß
   Stefan

andreas.maurer

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.

StefanStrobel

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

andreas.maurer

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.

StefanStrobel

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

andreas.maurer

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.

StefanStrobel

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

andreas.maurer


SamNitro

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
(Intel-Nuc Proxmox) (Homematic) (EnOcean) (CUL868) (CUL433) (Zigbee2MQTT) (ESP8266) (Echo) (DUOFERN)

Otto123

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
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz