Einen vorhanden Wert von einem Lichtsensor umrechnen

Hallo

ich habe lichtsensoren Ky 018 von azdelivery.

einen hab ich an einen shelly angeschlossen. der liefert saubere prozent werte.
einen sehr kleinen wert bei licht aus und einen hohen prozent wert bei licht an.

so soll es sein.

einen hab ich an einen esp d1 mini angeschlossen.
und programmiert. wird erkannt und liefert auch werte.
allerdings vollkommen andere werte.

einen hohen wert bei licht aus und einen kleinen bei licht an

die werte sind aber insgesamt schon so niedrig dass ich sie im programm code bereits mit 10 multipliziert habe.

bei licht aus hab ich einen wert von 10 und bei licht an einen wert von ca 6

also ohne multiplicator 1 und 0.6

ich würde das ganze zumindest umdrehen wollen. also licht an 10 und licht aus 6

kann man das irgendwie mit einem helfer umrechnen oder umkehren?

lg

Habe diesen Sensor nicht :nerd_face:

Aber hier ist der multiplicator sehr viel kleiner

Versorgung an 5V?

Versorgung ist 3.3volt.

Multiplikator war ursprünglich viel kleiner. Aber dann waren die Werte noch geringer.

Helfer Binärsensor-Template
==10 oder ==6
Oder auch Bereich

Teste ich. Jetzt hab ich erst mal einen schwellenwert Sensor gemacht dann kann ich wenigstens abfragen ob Licht an oder aus ist. Danke dir.

Ich habe einen ESP32 mit einem Bodenfeuchtesensor, ist ja fast das gleiche Prinzip :grinning:

Da bei allen ESP die Vcc Messung nicht so hervorragend ist habe ich zusätzlich noch einen tca9548a verbaut, aber auch das spielt eigentlich keine Rolle

Und auch der Bodenfeuchtesensor liefert mehr Volt wenn Trocken und weniger Volt wenn es Feucht wird :wink: siehe „calibrate_linear“
Umrechnen direkt im ESP32 von Volt zu Prozent sieht dann bei mir so aus:

  - platform: ads1115
    multiplexer: 'A2_GND'
    gain: 4.096 #measures up to 4.096V default 6.144
    name: "ADS1115 Channel A2-GND DFRobot prozent"
    update_interval: 5s
    unit_of_measurement: "%"
    state_class: "measurement"
    device_class: "moisture"
    accuracy_decimals: 0
    filters:
    -  calibrate_linear:
       - 2.874 -> 0
       - 0.002 -> 120
    - lambda: |
       if (x < 0) return 0;
       else return (x);
1 „Gefällt mir“

vielen dank für deine Hilfe. Das werd ich bei Gelegenheit mal testen. Jetzt erst mal ein schönes Gehäuse drucken um das ganze Teil anschaulich zu verstauen.
lg