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

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

Vorheriges Thema - Nächstes Thema

eki

Ich habe nach verschiedenen Ansätzen mit Impuls basiertem Auslesen meiner Wasseruhr jetzt eine Methode gefunden, die, zumindest bei mir, ganz gut funktioniert und möchte das hier mal vorstellen.

Im Gegensatz zu den Ansätzen, die über Lichtschranken oder Näherungsschaltern etc. versuchen Impulse zu zählen, wird hier eine Kamera verwendet (ESP32-CAM), deren Bild über ein auf die entsprechenden Anzeigeelemente trainiertes neuronales Netz den Wert des Zählers erfasst. Der Vorteil ist, dass der Sensor immer absolute Werte liefert und somit nicht wegdriften kann. Das funktioniert auch, wenn das System zwischendurch mal "Aussetzer" hat.

Der Ansatz basiert auf folgendem Projekt https://github.com/jomjol/AI-on-the-edge-device/wiki

Das Ganze ist relativ günstig machbar mit folgender Hardware:
- ESP32-CAM Modul (bei AliExpress für 2 Euro, wenn man es etwas schneller haben will, 5 - 10 Euro)
- FTDI Programmer (kann man sich auch leihen, kostet ca. 5 Euro)
- USB Breakout Board (2 Euro, man kann auch ein altes USB Kabel  nehmen, die 5V und GND Anschlüsse zugänglich machen und das direkt an das ESP Modul verbinden).
- USB Netzteil

Die Verbindung zu FHEM geht über den schon integrierten MQTT Client. Unten sind Bilder meiner (zugegeben recht hemdsärmeligen) Installation zu sehen.

Noch ein paar Tipps:
- Wenn man das Bild der Wasseruhr halbwegs füllend haben möchte, dann sollte man den Fokus der Kamera etwas verändern. Dazu muss man auf dem kleinen Kameramodul eventuell vorhandenen Siegellack entfernen und den gezackten Ring etwa 1/4 Umdrehung entgegen dem Uhrzeigersinn drehen.
- Die Tonne, auf der das Kameramodul angebracht ist, ist bei mir ca. 10 cm hoch und wurde aus einer Müslidose zugeschnitten (im Link oben sind aber auch professionellere Möglichkeiten gezeigt, wie man das Ganze per 3D Drucker mit einem Gehäuse versehen kann).
- Die Erkennungssoftware erzeugt absichtlich beim Nulldurchgang der Rollenzähler N (NaN) als Ergebnis für die einzelnen Digits. Um das in FHEM zu "korrigieren", habe ich entsprechende Korrekturen in meinem MQTT2 Device gemacht (user Readings, die das entsprechend abfangen). Siehe List unten.



Internals:
   CID        wasser
   DEF        wasser
   DEVICETOPIC MQTT2_wasser
   FUUID      5f9ead58-f33f-e3e4-2281-808fda8662129912
   IODev      MQTT2_SERVER
   LASTInputDev MQTT2_SERVER
   MQTT2_SERVER_MSGCNT 2382
   MQTT2_SERVER_TIME 2020-11-15 18:17:12
   MSGCNT     2382
   NAME       MQTT2_wasser
   NR         677
   STATE      <b>Zählerstand:</b> 352.9943 m<sup>3</sup><br><b>Verbrauch heute:</b> 186.30 Liter<br><b>Durchfluss:</b> 0.00 Liter/min
   TYPE       MQTT2_DEVICE
   READINGS:
     2020-11-15 18:17:12   dtime           291
     2020-11-15 18:17:12   flow            0
     2020-11-15 18:17:12   readout         352.9943
     2020-11-15 18:17:12   statFlowDay     Min: 0.0000000000000000 Avg: 0.5684304279088133 Max: 4.1095890410839298
     2020-11-14 23:59:59   statFlowDayLast Min: 0.0000000000000000 Avg: 0.2020594939095479 Max: 18.4931506849314999
     2020-11-15 18:17:12   statFlowHour    Min: 0.0000000000000000 Avg: 0.1531409785800242 Max: 0.5436241610761700
     2020-11-15 17:59:59   statFlowHourLast Min: 0.0000000000000000 Avg: 0.7177600293217195 Max: 4.1095890410839298
     2020-11-15 18:17:12   statFlowMonth   Min: 0.0000000000000000 Avg: 0.3232424416625271 Max: 240.0000000000000000 (since: 2020-11-05_16:14:32 )
     2020-11-15 18:17:12   statFlowYear    Min: 0.0000000000000000 Avg: 0.3232420963145669 Max: 240.0000000000000000 (since: 2020-11-05_16:14:32 )
     2020-11-15 18:17:12   statValue       Hour: 0.0027 Day: 0.1863 Month: 2.5249 Year: 2.5249 (since: 2020-11-06 )
     2020-11-03 20:58:26   statValueDay    Min: 349.6454 Avg: 349.7521 Max: 349.9343
     2020-11-02 23:59:58   statValueDayLast Min: 349.6413 Avg: 349.6445 Max: 349.6454
     2020-11-03 20:58:26   statValueHour   Min: 349.8718 Avg: 349.9236 Max: 349.9343
     2020-11-03 19:59:59   statValueHourLast Min: 349.8347 Avg: 349.8373 Max: 349.8718
     2020-11-15 17:59:59   statValueLast   Hour: 0.0166 Day: 0.2962 Month: - Year: -
     2020-11-03 20:58:26   statValueMonth  Min: 349.6349 Avg: 349.7416 Max: 349.9343 (since: 2020-11-02_21:49:01 )
     2020-11-03 20:58:26   statValueYear   Min: 349.6349 Avg: 349.7416 Max: 349.9343 (since: 2020-11-02_21:49:01 )
     2020-11-03 20:58:26   statVolume      Hour: -34.200000000011642 Day: -34.200000000011642 Month: -34.200000000011642 Year: -34.200000000011642 (since: 2020-11-03_19:59:59 )
     2020-11-15 18:17:12   statVolumeDay   Min: 0.0000000000000000 Avg: 0.3839366275272189 Max: 19.9999999999417994
     2020-11-14 23:59:59   statVolumeDayLast Min: 0.0000000000000000 Avg: 0.4234710648145521 Max: 30.0000000000000000
     2020-11-15 18:17:12   statVolumeHour  Min: 0.0000000000000000 Avg: 0.0000000000000000 Max: 0.0000000000000000
     2020-11-15 17:59:59   statVolumeHourLast Min: 0.0000000000000000 Avg: 1.9202777777795557 Max: 16.5000000000000000
     2020-11-03 19:59:59   statVolumeLast  Hour: - Day: - Month: - Year: -
     2020-11-15 18:17:12   statVolumeMonth Min: 0.0000000000000000 Avg: 0.5355140315624055 Max: 141.3999999999649901 (since: 2020-11-05_16:14:32 )
     2020-11-15 18:17:12   statVolumeYear  Min: 0.0000000000000000 Avg: 0.5355026699735286 Max: 141.3999999999649901 (since: 2020-11-05_16:14:32 )
     2020-11-15 18:17:12   value           352.9943
     2020-11-15 18:17:12   valueDay        186.3
     2020-11-15 18:17:12   valueHour       2.7
     2020-11-15 18:17:12   volume          0
   helper:
     _98_statistics homeStatistics
Attributes:
   IODev      MQTT2_SERVER
   alias      Haus_Wasserverbrauch
   event-on-change-reading .*(flow|volume|value|stat).*
   event-on-update-reading .*readout|statFlowHourLast.*
   group      Energie
   icon       sani_water_tap
   readingList wasser:watermeter/readout:.* readout
   room       Haus,MQTT2_DEVICE
   stateFormat {
  my @dayval = split(" ",ReadingsVal($name,"statValue","Hour: 0 Day: 0 Month: 0"));;
  sprintf("<b>Zählerstand:</b> %.4f m<sup>3</sup><br>".
          "<b>Verbrauch heute:</b> %0.2f Liter<br>".
          "<b>Durchfluss:</b> %0.2f Liter/min",
          ReadingsVal($name,"value",0),
          $dayval[3]*1000,
          ReadingsVal($name,"flow",0)
         );;
}
   userReadings flow:readout.* {
  my $td = ReadingsVal($name,"dtime",1);;
  my $oldval = ReadingsVal($name,"flow",0);;
  ($td lt 20) ? $oldval : ReadingsVal($name,"volume",0)/$td*60;;
},
valueHour:readout.* {
  my ($d,$value) = split(" ",ReadingsVal($name,"statValue","Hour: 0 Day: 0 Year: 0"));;
  $value*1000;;
},
valueDay:readout.* {
  my ($d1,$d2,$d3,$value) = split(" ",ReadingsVal($name,"statValue","Hour: 0 Day: 0 Year: 0"));;
  $value*1000;;
},
volume:readout.* difference {ReadingsVal($name,"value",0)*1000;;},
dtime:readout.* difference {time_str2num(ReadingsTimestamp($name,"value",0));;},
value:readout.* {
  my ($inint,$inrest) = split(/\./,ReadingsVal($name,"readout",0));;
  my ($valint,$valrest) = split(/\./,ReadingsVal($name,"value",0));;
  my $oldval = ($valint.".".$valrest);;
  $valint = $inint if ($inint !~ m/.*N.*/);;
  $valrest = $inrest if ($inrest !~ m/.*N.*/);;
  $valint++ if (($valrest-$inrest) > 8000);; # wahrscheinlich Nulldurchgang
  $valint = int($oldval) if (($valint - int($oldval)) > 1);; # wahrscheinlich Fehlerkennung
  my $result = ($valint.".".$valrest);;
  return ($result ge $oldval)?$result:$oldval;; # sichere monotones Steigen
}

jomjol

Hi,
ich bin der Autor des "AI-on-the-edge" devices. Ich freue mich sehr, wenn es weitere Verbreitung findet.

Folgender Hinweis noch zu den "N": es gibt eine eingebaute Logik, die bei diesen undefinierten Zwischenwerten das "N" durch einen plausibiliserten Wert aus der vorher gültigen Auswertung ersetzt. Dieser Wert wird als "PreValue" auf die SD-Karte abgespeichert und übersteht daher auch einen Reboot. Gleichzeit ist auch eine Logik integriert, die auf Konsiszenzen prüft. Eigentlich bedarf es daher keines externen Scripts.
Stehe für Rückfragen und Details zur Konfiguration gerne zur Verfügung.
Beste Grüße,
  jomjol

eki

Hallo jomjol, erst mal vielen Dank für das Projekt :), ich habe einiges mit Impuls basierten Ansätzen probiert, hat aber bei mir eher nicht geklappt und mit Deinem Ansatz lief das in ca. 2 Stunden.
Hier mal meine Konfiguration, wenn Du mir sagst, was ich da ändern soll damit die Ns verschwinden, freue ich mich.

[MakeImage]
;LogImageLocation = /log/source
WaitBeforeTakingPicture=5
ImageQuality = 5
ImageSize = VGA

[Alignment]
InitialRotate = -126
/config/ref0.jpg 82, 219
/config/ref1.jpg 414, 111
SearchFieldX = 20
SearchFieldY = 20


[Digits]
Model=/config/dig0650s3.tflite
LogImageLocation = /log/digit
ModelInputSize 20, 32
digit1, 185, 100, 30, 43
digit2, 230, 104, 29, 38
digit3, 271, 102, 30, 40
digit4, 317, 103, 28, 40
digit5, 360, 104, 29, 41

[Analog]
Model=/config/ana0630s2.tflite
LogImageLocation = /log/analog
ModelInputSize 32, 32
analog1, 392, 253, 93, 90
analog2, 332, 321, 92, 91
analog3, 242, 342, 92, 91
analog4, 134, 289, 93, 92

[PostProcessing]
DecimalShift = 0
PreValueUse = True
PreValueAgeStartup = 30
AllowNegativeRates = False
MaxRateValue = 0.1
ErrorMessage = True
CheckDigitIncreaseConsistency = False

[MQTT]
Uri = mqtt://192.168.178.90:1883
Topic = watermeter/readout
ClientID = wasser
;user = USERNAME
;password = PASSWORD

[AutoTimer]
AutoStart= True
Intervall = 4.85

[Debug]
Logfile = False

[Ende]

jomjol

Die Konfiguration scheint mir auf den ersten Blick okay. Damit die "N" verschwinden muss der Wasserzähler entweder einmal alle Ziffer erkennen, oder zu setzt in der Oberfläche den korrekten Wert über den Menüpunkt: "Configuration" --> "Set PreValue".
Der Wert wir auf der SD-Karte gespeichert und überlebt i.d.R. auch den Neustart. Ich würde noch zusätzlich den Wert "PreValueAgeStartup" auf 720 setzen.

eki

Danke, werde ich beim nächsten Nulldurchlauf mal probieren (ist ja nicht so oft, bis wir einen Kubikmeter verbraucht haben dauert es glücklicherweise ein paar Tage)

Gisbert

Hallo eki,
hallo jomjol,

ihr habt ein sehr interessantes Projekt vorgestellt, was ich versuche bei mir umzusetzen.
Das ESP32 Board sieht so aus, als wenn es eine SD-Karte aufnehmen könnte. Das interessiert mich erstmal nicht, sondern im Gegenteil möchte ich gerne wissen, ob man einen Betrieb ohne SD-Karte (wenn denn die Annahme stimmt) laufen lassen kann.

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

jomjol

  Hallo Gisbert,
das ESP-Board ist ein ESP32-CAM mit integrierter OV2640 und SD-Karte.
Das Projekt läßt sich leider nicht ohne SD-Karte implementieren. Die verwendeten beiden neuronalen Netzen und auch die Bildverarbeitung (Alignment, Referenzstrukturen, ROI-Ausschneiden) erfordert so viel Speicherplatz, dass sich nicht alles im Hauptspeicher halten läßt, sondern als Datei auf der SD-Karte zwischengespeichert werden muss.

Gruß,
  jomjol

rcmcronny

Hallo Jomjol,

ich habs bei mir mal aufgesetzt, weil ich immernoch für die Wasseruhr was sinnvolles suche ;) Die Installation war etwas nervig, das liegt aber eher an dem ESP32 Cam Modul und meinen verlegten FTDI :)
Nachdem aber alles gefunden und geflash war, sah ich auch auf der seriellen den Start. Er bleibt bei mir aber beim WLAN wohl hängen.
Ich habe nun meine beiden WLAN SSIDs probiert, bei beiden ist es gleich. WLAN Verbindung steht, aber er bekommt / oder fordert keine IP an, damit kann ich dann natürlich nicht zugreifen.
Hattest Du das schonmal ? Wenn nicht würde ich mal das Log noch aus der Seriellen rauskopieren,vielleicht siehtst Du da irgendwas hilfreiches ?

Danke
Ronny

Gisbert

Zitat von: jomjol am 07 November 2020, 21:51:45
  Hallo Gisbert,
das ESP-Board ist ein ESP32-CAM mit integrierter OV2640 und SD-Karte.

Gruß,
  jomjol

Hallo jomol,
bei den Angeboten bei Aliexpress, ist da üblicherweise eine SD-Karte dabei? Oder ist da üblicherweise nie eine SD-Karte dabei?
Wenn nicht, ist das die richtige Karte und Größe?
ZitatHier gefunden:
Unterstützt microSD TF-Karte mit einer maximalen Größe von 4 GB

Viele Grüße Gisbert
Aktuelles FHEM | PROXMOX | Fujitsu Futro S740 | Debian 12 | UniFi | Homematic, VCCU, HMUART | ESP8266 | ATtiny85 | Wasser-, Stromzähler | Wlan-Kamera | SIGNALduino, Flamingo Rauchmelder FA21/22RF | RHASSPY

rcmcronny

Hi Gisbert,

da ist doch nie eine dabe

Aktuell sehe ich gerade bei heise,das es eine neue Version mit  USB-C Anschluss wohl gibt. (von M5stack)
https://www.heise.de/news/ESP32CAM-mit-USB-C-Anschluss-4951429.html

jomjol

Zitat von: rcmcronny am 08 November 2020, 10:17:39
Hallo Jomjol,

ich habs bei mir mal aufgesetzt, weil ich immernoch für die Wasseruhr was sinnvolles suche ;) Die Installation war etwas nervig, das liegt aber eher an dem ESP32 Cam Modul und meinen verlegten FTDI :)
Nachdem aber alles gefunden und geflash war, sah ich auch auf der seriellen den Start. Er bleibt bei mir aber beim WLAN wohl hängen.
Ich habe nun meine beiden WLAN SSIDs probiert, bei beiden ist es gleich. WLAN Verbindung steht, aber er bekommt / oder fordert keine IP an, damit kann ich dann natürlich nicht zugreifen.
Hattest Du das schonmal ? Wenn nicht würde ich mal das Log noch aus der Seriellen rauskopieren,vielleicht siehtst Du da irgendwas hilfreiches ?

Danke
Ronny

Hi Ronny,
das Problem kenne ich nicht, bitte mal das Log-File und das Log aus der Seriellen. Dann schau ich mir das gerne an.
Gruß,
  jomjol

pink99panther

Hallo
das nenne ich mal eine Lösung zum erfassen von ...zählern  8) 8) 8).
Habe es sofort nachgebaut als ich diesen Thread entdeckt habe.
ESP32CAM lief bei mir auf anhieb ohne Probleme.
Auch die Ns wurden erfolgreich durch plausible Werte ersetzt.

@eki
Habe versucht Dein MQTT2_Device zu benutzen,
komme aber mit den einstellungen für des Statistics-Modul nicht zurecht.
Wäre schön, wenn Du mir mal helfen könntest.
Auch habe ich keine Idee, wo das Reading "dtime" her kommt.
Ist das händisch gesetzt?

LG
p99p

rcmcronny

Hi Jomjol,

Du hattest ja mir schon auf meine PM geantwortet :)  Danke dafür.

Ich hatte die Woche wenig Zeit, von daher habe ich bisher noch nicht weiterschauen können. Und gerade wo ich hier tippe, habe ich das Gerät nochmal angeschlossen und es bekommt eine IP und die Webseite ist erreichbar. Hmm nun bin ich echt baff und etwas zerknirscht, weil ich Dir Umstände gemacht habe ^^

Auch nach einem PowerCycle klappt es weiterhin, tja, es läuft, kann ich auch weitermachen nun ;) Super :D

Zitat von: jomjol am 13 November 2020, 22:28:13
das Problem kenne ich nicht, bitte mal das Log-File und das Log aus der Seriellen. Dann schau ich mir das gerne an.

Das war die Serielle Ausgabe (auch in der PM schon gewesen). Ich würde ja auch gern mehr machen, wenn Du mir sagst, was noch machbar wäre,damit man sieht, wo es hängt ? :)


rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:4
load:0x3fff0030,len:4
load:0x3fff0034,len:7140
load:0x40078000,len:13856
load:0x40080400,len:4052
entry 0x40080688
I (31) boot: ESP-IDF 3.40100.200827 2nd stage bootloader
I (31) boot: compile time 18:41:37
I (31) boot: chip revision: 1
I (35) boot_comm: chip revision: 1, min. bootloader chip revision: 0
I (42) boot.esp32: SPI Speed      : 20MHz
I (46) boot.esp32: SPI Mode       : DIO
I (51) boot.esp32: SPI Flash Size : 4MB
I (55) boot: Enabling RNG early entropy source...
I (61) boot: Partition Table:
I (64) boot: ## Label            Usage          Type ST Offset   Length
I (72) boot:  0 nvs              WiFi data        01 02 00009000 00004000
I (79) boot:  1 otadata          OTA data         01 00 0000d000 00002000
I (86) boot:  2 phy_init         RF data          01 01 0000f000 00001000
I (94) boot:  3 ota_0            OTA app          00 10 00010000 001db000
I (101) boot:  4 ota_1            OTA app          00 11 001f0000 001db000
I (109) boot: End of partition table
I (113) boot_comm: chip revision: 1, min. application chip revision: 0
I (120) esp_image: segment 0: paddr=0x00010020 vaddr=0x3f400020 size=0x4a908 (305416) map
I (298) esp_image: segment 1: paddr=0x0005a930 vaddr=0x3ffb0000 size=0x0490c ( 18700) load
I (309) esp_image: segment 2: paddr=0x0005f244 vaddr=0x40080000 size=0x00404 (  1028) load
I (310) esp_image: segment 3: paddr=0x0005f650 vaddr=0x40080404 size=0x009c8 (  2504) load
I (318) esp_image: segment 4: paddr=0x00060020 vaddr=0x400d0020 size=0x148c1c (1346588) map
I (1068) esp_image: segment 5: paddr=0x001a8c44 vaddr=0x40080dcc size=0x1ce64 (118372) load
I (1140) esp_image: segment 6: paddr=0x001c5ab0 vaddr=0x50000000 size=0x00004 (     4) load
I (1157) boot: Loaded app from partition at offset 0x10000
I (1157) boot: Disabling RNG early entropy source...
I (1158) psram: This chip is ESP32-D0WD
I (1164) spiram: Found 64MBit SPI RAM device
I (1167) spiram: SPI RAM mode: flash 40m sram 40m
I (1173) spiram: PSRAM initialized, cache is in low/high (2-core) mode.
I (1180) cpu_start: Pro cpu up.
I (1184) cpu_start: Application information:
I (1189) cpu_start: Project name:     esp32cam-server-only
I (1195) cpu_start: App version:      0.0.9.3
I (1200) cpu_start: Compile time:     Oct 14 2020 18:40:30
I (1206) cpu_start: ELF file SHA256:  61e286d166c84123...
I (1212) cpu_start: ESP-IDF:          3.40100.200827
I (1218) cpu_start: Starting app cpu, entry point is 0x40081a88
I (0) cpu_start: App cpu up.
I (2110) spiram: SPI SRAM memory test OK
I (2110) heap_init: Initializing. RAM available for dynamic allocation:
I (2111) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (2117) heap_init: At 3FFC1D68 len 0001E298 (120 KiB): DRAM
I (2123) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (2129) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (2136) heap_init: At 4009DC30 len 000023D0 (8 KiB): IRAM
I (2142) cpu_start: Pro cpu start user code
I (2147) spiram: Adding pool of 4096K of external SPI memory to heap allocator
CreateClassCamera
I (2173) spi_flash: detected chip: generic
I (2173) spi_flash: flash io: dio
I (2173) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
I (2181) spiram: Reserving pool of 32K of internal memory for DMA/internal allocations
Do Reset Camera
I (2191) gpio: GPIO[32]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
I (4241) connect_wlan_main: Initializing SD card
I (4241) gpio: GPIO[13]| InputEn: 0| OutputEn: 1| OpenDrain: 0| Pullup: 0| Pulldown: 0| Intr:0
Name: GB1QT
Type: SDHC/SDXC
Speed: 20 MHz
Size: 30528MB
I (4291) server_ota: Start CheckOTAUpdateCheck ...
Start CheckOTAUpdateCheck ...
I (4301) server_ota: SHA-256 for the partition table: : 9d4a2809ae90fb20709a8ca3dd3ac3462e1e73286bcd31b689060c91de06fa3a
I (4361) server_ota: SHA-256 for bootloader: : 89132105f9eac6c57e8c6318ca5dcd592350d6a5c71941e340c90ffc41747c8c
I (5041) server_ota: SHA-256 for current firmware: : cbae74eb1fde135033f9411bbba15cb51cc9e8ae0372ddb24169fcc4578dc060
CheckOTAUpdate Partition: ESP_OK
To use WLan: xxx, xxx
To set Hostename: watermeter
I (5091) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE
I (5091) system_api: Base MAC address is not set, read default base MAC address from BLK0 of EFUSE
I (5211) phy: phy_version: 4180, cb3948e, Sep 12 2019, 16:39:13, 0, 0
I (5221) gpio: GPIO[33]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0


Papaloewe

Verstehe ich das jetzt richtig, dass diese Methode auch mit anderen Zählern funktionieren sollte, z.B. Ferraris E-Zähler und Gaszähler?
Hat das auch schon jemand ausprobiert?

rob

So hab es ich auch verstanden und lese gespannt mit  ;D
Beim schnellen Überfliegen hab ich noch nicht erkannt, welche Schritte konkret nötig sind - liegt aber halt an mir. Muss erstmal bestellen und mich dann genauer reinlesen.

VG
rob