Hall Sensor + ESP8266 in ESPHome?

Hi,

ich habe probiert den folgenden Sensor an einen ESP8266 anzubringen und damit dann zu messen, was ich an Ampere durch die Leitung bekomme.

Leider bin ich da nicht wirklich erfolgreich gewesen, die Zahlen passen leider vorne und hinten nicht.

Da ich mich aber leider auch nicht so mega gut auskenne mit Strom, was genau diese ganzen Angaben auf dem Mess-Gerät (Hall Sensor) bedeuten etc. wird da sicherlich irgendwie ein Rechenfehler drin sein.

Vielleicht kann ja jemand helfen?
Das ist der Sensor:
https://www.amazon.de/dp/B07W5P8RMT

Diese ist an einen D1_Mini

Das hier mein ESPHome Code:

esphome:
  name: solarproduktion
  friendly_name: Solarproduktion

# d1 mini pro but only with 4MB -> d1_mini
esp8266:
  board: d1_mini 
  restore_from_flash: no

sensor:
  - platform: ct_clamp
    sensor: adc_sensor
    name: "Power Sensor Live Power"
    update_interval: 5s
    accuracy_decimals: 0
    filters:
      - calibrate_linear:
          - 0 -> 0.0
          - 0.0006 -> 5.0
  - platform: adc
    pin: A0
    id: adc_sensor
    internal: true
    update_interval: 5s
    filters:
      - multiply: 3.3

switch:
  - platform: factory_reset
    name: Restart with Factory Default Settings

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Solarproduktion Fallback Hotspot"
    password: "xxxxx"

captive_portal:

Bei den calibrate werten habe ich rumprobiert, aber leider ohne Erfolg.
Das Problem, in meinem Log werden halt nur in den “Raw” Daten nur 3 Kommastellen angezeigt. Dahinter scheint aber mehr zu sein…

Ab und an kommt auch 0.001A, manchmal aber nur 0.000A…

'Power Sensor Live Power' - Raw AC Value: 0.001A after 246 different samples (1230 SPS)

Signal usw. kommt, aber leider hab ich echt kein Plan warum da nur 2.7V kommen, wenn ich mit 13V und 4.0A Konstant eine Batterie auflade…

Vielleicht kennt sich ja hier einer besser aus? Würde mich sehr freuen und sicherlich vielen anderen auch helfen :slight_smile:

Hallo @Reudiga,
ich betrachte erstmal den Hall Sensor unabhängig vom ESP.
Was sagt das Datenblatt des Sensors für einen Strom von 4 A DC, welche Ausgangsspannung in V soll da rauskommen? Kannst Du diese am Eingang des ESP messen? Er macht ja erstmal nix anders als Strom zu Spannung.
Dies muss erstmal stimmen, die ESP Bearbeitung ist dann ein anders Thema um aus Spannung eine Stromanzeige zu machen.

Gruß
Frank

Hi,

das hier ist das Datenblatt.
Hab da leider nicht so die Ahnung von, vielleicht magst du mir ja helfen, den ESPHome richtig zu “programmieren”? :slight_smile:

Hallo @Reudiga
wenn ich alles richtig deute, löst dein Sensor 6,66 mV/A auf. (1/150)
D.h. es bei +4 A 2,5266 Volt am Eingang des ESP.
-150 A (1,875 V)0 A (2,5 V)+150 A (3,125 V)

Was ist denn Dein Anwendungsfall? 150 A kommt mir etwas dicke vor und geht auf Kosten der Auflösung. Es gibt diese Sensoren ja auch kleiner und damit ggf. eine bessere Auflösung
Bei 1,3 A / Bit und den Ungenauigkeiten / ADC Schwankungen der Praxis kannst Du Dich auf keine Kommastelle verlassen und alles unter ein paar Ampere ist, ist nur ein Hinweis das Strom fließt.

Der ESP ADC hat 10 Bit, also eine digitale Auflösung von 1024.
Der ESP8266 CHIP hat eine max. analoge Eingansspannung von 1 V, DEV-Board idR 3,3 V über onBoard Spannungsteiler.

Daher ergibt sich ein raw Input von 784 bei +4 A und 776 bei 0 A.
Dies musst Du erstmal ohne Anpassungsschnickschnack im ESP als Eingangswert sehen.

Rechenwerte ohne Gewähr :wink:

Gruß
Frank

Erscheint mir logisch!

Kannst du mir das als ESPHome Code basteln?

Habe meinen ja gezeigt nur versteh ich nicht so ganz, wie ich das da rein bauen soll. :confused:

@Reudiga
Sorry, YAML ist nicht gerade mein Steckenpferd :grimacing: und würde mich einige Stunden mit Try&Error kosten. Ich bin mit altmodischen Programmiersprachen groß geworden.
Das können hier genug Leute besser als ich.

Gruß
Frank

Trotzdem schon mal vielen Dank!

Ist echt nicht so einfach, wenn man sowas noch nie gemacht hat und nicht so die Ahnung davon und auch nicht von ESPHome hat :smiley:

Aber vielleicht kann ja jemand anders helfen?

Hab jetzt den Code, mal ohne irgendwelche Mulitply oder so

esphome:
  name: solarproduktion
  friendly_name: Solarproduktion

# d1 mini pro but only with 4MB -> d1_mini
esp8266:
  board: d1_mini 
  restore_from_flash: no

sensor:
  - platform: ct_clamp
    sensor: adc_sensor
    name: "Power Sensor Live Power"
    update_interval: 5s
    #accuracy_decimals: 0
    filters:
      #- calibrate_linear:
      #    - 0 -> 0.0
      #    - 0.0006 -> 5.0
  - platform: adc
    pin: A0
    id: adc_sensor
    internal: true
    update_interval: 5s
    #filters:
    #  - multiply: 3.3

switch:
  - platform: factory_reset
    name: Restart with Factory Default Settings

# Enable logging
logger:

# Enable Home Assistant API
api:

ota:

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Solarproduktion Fallback Hotspot"
    password: "xx"

captive_portal:

Da bekomme ich angezeigt:

[07:49:03][D][ct_clamp:040]: 'Power Sensor Live Power' - Raw AC Value: 0.001A after 154 different samples (770 SPS)
[07:49:03][D][sensor:093]: 'Power Sensor Live Power': Sending state 0.00073 A with 2 decimals of accuracy
[07:49:06][D][sensor:093]: 'adc_sensor': Sending state 0.83398 V with 2 decimals of accuracy

Warum 0.83398V?
Wenn ich das jetzt Multiply mit 3.3 mache, bin ich halt bei 2,75V oder so, was ja viel zu viel wäre bei 4A die da eigentlich fließen… ich blicks echt nicht :frowning:

EDIT:
Hab am Sensor selbst hinten zwei solche Regler die man mit einem Schraubendreher ändern kann. Wenn ich da drehe, komme ich bei 4A auf 0.767xxV. Was ja schon nah dran wäre…

Oder hat das irgendwie damit zutun, das ich gerade 12V 4A teste? Also wegen 12V oder so nur?
Lade gerade einen Akku mit 12V und 4A auf, um daran halt Plus zu prüfen

[08:15:34][D][ct_clamp:040]: 'Power Sensor Live Power' - Raw AC Value: 0.000A after 1 different samples (5 SPS)
[08:15:34][D][sensor:093]: 'Power Sensor Live Power': Sending state 0.00000 A with 2 decimals of accuracy
[08:15:37][D][sensor:093]: 'adc_sensor': Sending state 0.76758 V with 5 decimals of accuracy

Hier ohne irgendwelche Multiplier oder so

Komme raw auf 786 bei 4A

@Reudiga
786 ist ja schonmal nicht schlecht zu den errechenten 784.
Ich denke damit kann man arbeiten. Jetzt braucht Du noch einen 'Code-Künstler" der daraus 4 A in der Anzeige macht. Ich bin auf den Code gespannt.

Gruß
Frank