Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Einsteigerfragen
  4. Einbindung von Geräten
  5. Temperatur mit Potentiometer simulieren: Lösung mit ESPHome

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    772

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Temperatur mit Potentiometer simulieren: Lösung mit ESPHome

Geplant Angeheftet Gesperrt Verschoben Einbindung von Geräten
1 Beiträge 1 Kommentatoren 1.2k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • fu_zhouF Offline
    fu_zhouF Offline
    fu_zhou
    schrieb am zuletzt editiert von fu_zhou
    #1

    Hallo zusammen,

    lange habe ich gebraucht, aber am Ende hat es doch geklappt...

    Folgende Ausgangsituation:
    In meiner Lüftungsanlage sind 2 Enthalpierückgewinner (Wärmeräder) verbaut. Die Drehzahl (=Leistung zur Rückgewinnung von Feuchte und Temperatur aus der Abluft) ist abhängig von der Außentemperatur, die mit einem NTC 10kOhm im Gerät gemessen wird (niedrige Außentemperatur = hohe Leistung, hohe Außentemperatur = k(l)eine Leistung). Problem ist, dass die Effizienz der Wärmeräder so hoch ist, dass ich im Winter die Feuchtigkeit nicht aus dem Haus bekomme und ich zusätzlich Stoßlüften muss, was ja nicht im Sinne des Erfinders ist. Ich muss also irgendwie die Drehzahl der Wärmeräder steuern, um noch die maximale Wärme aus der Abluft zu holen, ohne dass mir die Hütte zu feucht wird.

    Das einfachste erscheint mir, den NTC 10kOhm mit einem Potentiometer zu simulieren. Dazu habe ich das x9c104s (0 - ca. 100 kOhm) ausgewählt, damit kann ich den gesamten Temperaturbereich abdecken, um die Drehzahl von 0 - 100% anzusteuern. Besser wäre der x9c503s (50 kOhm) gewesen (feinere Abstufung), den habe ich aber nicht als fertiges Bauteil gefunden. Die NTC 10 kOhm Kennlinie steht im Internet als Wertetabelle zur Verfügung.

    Ich habe also den NTC-Fühler im Gerät von der Platine abgeklemmt (Garantie ist aufgrund des Alters schon erloschen) und das digitale Potentiometer angeschlossen, um eine Temperatur und damit die über eine Kennlinie in der Elektronik vorgegebene Drehzahl einzustellen.

    Lösung mit ESPHome:
    Es kommen folgende Komponenten zum Einsatz:

    • x9c104s als fertiges Bauteil
      f3883d79-129b-44ca-94eb-a97e64365628-image.png

    • ESP8266 D1 Mini mit USB-Netzteil
      91cf0f4a-7810-4b81-a73e-a32dfdbc495a-image.png

    • 8.1 kOhm Widerstand
      ea49785f-1e48-43d9-a09d-8b753bbad73b-image.png

    Das Ganze wird wie folgt verkabelt:
    139e5c54-944b-4ee6-80ae-97ada3f1f306-image.png

    • 5V und G vom D1 Mini abgreifen und an VCC und GND vom x9c anschließen (einer von beiden Pins, welcher ist egal)
    • D1 an CS (im Bild: graues Kabel)
    • D2 an U/D (rotes Kabel)
    • D3 an INC (gelbes Kabel)
    • RL unbedingt auf GND (orangenes Kabel), sonst werden Fantasie-Widerstandswerte gemessen.
    • RW mit dem 8.1 kOhm Widerstand beschalten, so dass bei Potentiometeransteuerung "0" (=0.00 kOhm) 8.1 kOhm (= ca. 29.5°) gemessen werden und die Steuerung keine Störung erkennt. Ich hatte zufällig 8.1 kOhm rumliegen, was für meinen Anwendungsfall passt. Je nach Anwendungsfall können andere Widerstände besser geeignet sein oder man braucht gar keinen.
    • Am Ausgang vom 8.1 kOhm Widerstand wird der variablen Widerstand zur Verfügung gestellt (weißes Kabel), gemessen gegen
    • RL: Das ist die Masse des digitalen Potis (grünes Kabel).

    Angesteuert wird das Potentiometer mit einem Wert von 0-100%, wobei man die Auflösung von 100 Schritten beachten muss (also ganze Zahlen zur Ansteuerung nehmen). In manchen Situationen verhält sich das Poti etwas eigenwillig, z.B.:

    • Zu schnelle Wertänderungen (z.B. < 3 Sekunden) führen dazu, dass der Widerstandswert nicht mehr zur Ansteuerung passt. 50% sollten 50 kOhm sein (+-20% Toleranz lt. Hersteller beachten), das kann aber bei zu schneller Änderung auseinanderlaufen, das heißt bei 50% hat das Ding auf einmal z.B. nur noch 40 kOhm.
    • Wird der selbe Wert mehrfach hintereinander geschrieben (z.B. zeitgetriggert) verändert sich der Widerstandswert, so dass Ansteuerung und Widerstand auseinanderlaufen (z.B. 46% = 46 kOhm, 46% = 44 kOhm, 46% = 42kOhm etc.). Wert also nur schreiben, wenn er sich verändert.
    • Bei erhöhen des Wertes um 1% (z.B. 42 % => 43 % => 44%) - trotz ausreichender Zeit zwischen den Sprüngen - kann es sein, dass der Widerstand schrittweise reduziert wird, obwohl er steigen sollte und irgendwann ist bei einer Ansteuerung von z.B. 50% der Widerstand 0 kOhm. Hier probiere ich gerade, ob sich das über z.B. 5% Schritte verhindern lässt.
    • Ein Auseinanderlaufen lässt sich beheben, wenn das Poti genullt wird (Ansteuerung 0% = 0 kOhm).
    • Es kann noch mehr Eigenwilligkeiten geben, die oben sind mir bisher aufgefallen.

    Die yaml Konfiguration sieht wie folgt aus:

    esphome:
      name: "lueftung-drehzahl-wrg"
    
    esp8266:
      board: d1_mini
    
    # Enable logging
    logger:
    
    # Enable Home Assistant API
    api:
      reboot_timeout: 0s
    
    # Allow OTA updates
    ota:
      
    # "Visit" im Dashboard
    web_server:
    
    wifi:
      ssid: ...
      password: ...
      manual_ip:
        static_ip: ...
        gateway: ...
        subnet: ...
    
    #Potentiometer
    output:
      - platform: x9c
        id: x9c_pot
        cs_pin: D1
        ud_pin: D2
        inc_pin: D3
        initial_value: 0.01
     
    number:
      - platform: template
        id: Drehzahl_Input
        name: "Drehzahl Input"
        optimistic: true
        min_value: -20
        max_value: 120
        initial_value: 0
        step: 2
        on_value:
          then:
            - output.set_level:
                id: x9c_pot
                level: !lambda |-
                        return id(Drehzahl_Input).state / 100.0;
    
    wifi:
    

    muss natürlich den lokalen Gegebenheiten angepasst werden.

    output:
    
    • hier wird das Poti nach ESPHome-Anleitung konfiguriert. Die Pins können anders vergeben werden, dann muss die Verdrahtung entsprechend angepasst werden
    number:
    
    • wird über den ESPHome-Adapter als Objekt im ioBroker angelegt
      5515a6b6-c8d0-4fea-8105-386fe76c1c44-image.png
    • lässt sich damit aus ioBroker über die API verändern
    • min: -20, max: 120: Warum Werte > 100 und < 0? Es kann vorkommen, dass durch das Auseinanderlaufen von Ansteuerung und Widerstandswert bei 0% z.B. 4 kOhm anstatt 0 kOhm ausgegeben werden. Mit einer negativen Ansteuerung zieht man 0% wieder auf 0 kOhm. Analog dazu die 100% Ansteuerung.
    • mit
    on_value:
          then:
            - output.set_level:
                id: x9c_pot
                level: !lambda |-
                        return id(Drehzahl_Input).state / 100.0;
    

    wird der Wert (number), der von ioBroker oder über den Schieberegler (Web-Server vom D1 Mini) kommt, an den "output" mit der ID des Poti gegeben.

    Jetzt kann man sich überlegen, wie man den Wert des Poti (number) im ioBroker generiert: über manuelle Eingabe oder automatisiert über ein Script. In meinem Fall verwende ich den PID-Regler-Adapter und regle die Zuluft-Feuchte.

    Synology DS920+ VM, S7-315 PN mit ET200S

    1 Antwort Letzte Antwort
    1
    Antworten
    • In einem neuen Thema antworten
    Anmelden zum Antworten
    • Älteste zuerst
    • Neuste zuerst
    • Meiste Stimmen


    Support us

    ioBroker
    Community Adapters
    Donate

    366

    Online

    32.6k

    Benutzer

    82.0k

    Themen

    1.3m

    Beiträge
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
    ioBroker Community 2014-2025
    logo
    • Anmelden

    • Du hast noch kein Konto? Registrieren

    • Anmelden oder registrieren, um zu suchen
    • Erster Beitrag
      Letzter Beitrag
    0
    • Home
    • Aktuell
    • Tags
    • Ungelesen 0
    • Kategorien
    • Unreplied
    • Beliebt
    • GitHub
    • Docu
    • Hilfe