NEWS
ESPhome & ioBroker (Docker) - Verständnisfragen
-
Guten Morgen in die Runde.
Am Wochenende hat mich das Thema ESPhome umgetrieben.
Die Idee war: Eine PWM-Lüftersteuerung für meinen Wechselrichter per ESP32 (erstmal per Blockly gesteuert) und in der Folge eine Lüstersteuerung für meinen Netzwerkschrank (per Temp-Sensor gesteuert).Was bisher geschah:
Der ioBroker läuft bei mir auf einem Raspberry Pi4 in Docker. Hier hab ich dann den ESPhome-Adapter installiert und den Port 6052 durchgereicht. Darüber erreiche ich auch problemlos das Dashboard von ESPhome.
Zur einfacheren Programmierung des ESP32 hab ich noch den UART per USB durchgereicht an den Container. Ein einfaches passendes YAML für eine PWM-Steuerung war auch schnell gefunden.
Also schnell den ESP mit ESPhome geflasht, die YAML im Dashboard angepasst und drübergebügelt und den ESP entsprechend mit dem Lüfter verkabelt.
Nun wird mir der ESP im iobroker auch unter Objekte/ESPhome angezeigt und liefert Daten, allerdings dreht sich der Lüfter erstmal nicht. Im Dashboard steht dabei weiterhin "offline".
Zieh ich jetzt den PWM-Pin ab, dreht der Lüfter und zeigt auch die Drehzahl im iobroker an. Zum testen hab ich dann mal eine min/max-Einstellung für den PWM-Pin gesetzt und kann darüber tatsächlich die Grundgeschwindigkeit des Lüfters regulieren. Damit war ich erstmal sicher, dass die Konfig und Verkabelung soweit passt.Aber warum zeigt mit das Dashboard das Device immer als "offline" an und wie kann ich das Ding jetzt steuern, um die Lüfterdrehzahl anzupassen? Ich finde nirgendwo eine einstellbare Option in den Objekten.
Hab mittlerweile etliche Youtube-Videos und Tutorials durchsucht, aber irgendwie beschäftigen die sich alle eher mit HomeAssistant und viel zu vielen Extra-Funktionen, die mir als ESPhome-Neuling einfach too much sind.Aber vielleicht liegt mein Fehler ja schon vorher. Wenn also jemand eine ähnliche Grundkonfig mit Docker hat, wär ich für Tips sehr dankbar
Gruß
Marian -
@t-147 Das hier hast Du schon gesehen?
https://forum.iobroker.net/topic/44522/benutzen-von-esphome-an-einem-beispiel-update-05-01-22
-
@martinp
Ja, da bin ich schon größtenteils durch.Aktuell kann ich in der Instanz auch keine Devices mit IP und Key angeben, bzw. da kommt keine Reaktion und der ESP wird dort nicht angezeigt/erkannt. Ich hab dort den Verschlüsselungskey verwendet, der mir beim Flashen des ESP asugeworfen wurde und danach in der YAML drin steht. IP ist definitiv korrekt.
-
@t-147 Ich versuche die Vielfalt in meinem Smart-Home-Zoo einzuschränken, und habe mich vor einiger Zeit für Tasmota statt ESPHome entschieden.
Deshalb kann ich da leider keine weiteren Tipps geben ...
-
@T-147
Ich verstehe das Problem momentan nicht so richtig.
Geht es jetzt nur noch darum, das es als Offline angezeigt wird?
Welches Dashboard benutzt du, das vom Adapter oder hast du ein externes eingebunden?Ich benutze ESPHome nicht in einem Docker, deshalb kann ich dazu nichts sagen, sollte aber genauso wie in Proxmox einfach laufen.
Da die Daten ja kommen, kann ich das mit dem Offline nicht verstehen.
In der Reiterkarte Geräte ist dein Sensor mit IP und Verschlüsselungsschlüssel eingetragen?
Ich meine mich zu erinnern, das Offline/Online aktiv vom Adapter über die API abgerufen wird, obwohl das meiste von Sensor gepushed wird.Output für den PWM und Fan hast du wie konfiguriert?
Ich benutze solche Lüfter für Zwei Heizkörper, die regeln sich jedoch normerweise selbstständig. Funktioniert jedoch auch über Werte aus IOBroker.
-
@ralf-2
Aktuell ergeben sich hauptsächlich 3 Probleme:- Warum wird das Device als offline angezeigt (ESPhome Dashboard von iob)
- Wieso kann ich das Device in der Instanz mit IP und Schlüssel nicht hinzufügen?
und - Wie kann ich den Lüfter über den iob steuern? Ich hab keinen Tempsensor am ESP dran, weil die Temperatur vom Wechselrichter ja entscheidend ist. Die wird von iob über MQTT über eine OpenDTU abgefragt.
Erstmal würde es mir reichen, den Lüfter überhaupt steuern zu können und würde mir dann ein Script bauen. Wenn ich das vollständig automatisiert machen könnte mit der Temperatur vom Wechselrichter, umso besser.
hier der Code, den ich aus einem Tutorial habe:
sensor: - platform: pulse_counter pin: GPIO13 name: PWM Fan RPM id: fan_pulse unit_of_measurement: 'RPM' filters: - multiply: 0.5 count_mode: rising_edge: INCREMENT falling_edge: DISABLE update_interval: 3s output: - platform: ledc pin: GPIO12 frequency: "25000 Hz" id: fanhub_pwm fan: - platform: speed output: fanhub_pwm name: "PWM Fan"
Dazu kam dann zum Testen noch ein max/min speed-Parameter, wobei der min_speed gezeigt hat, dass es zu funktionieren scheint. Ich hab nur keinerlei Möglichkeit, die Geschwindigkeit dann zu steuern.
Gruß
Marian -
@t-147
MMmmm... ich habe eine andere platform statt ledc gewählt:output: - platform: esp8266_pwm pin: GPIO12 frequency: 10000 Hz id: pwm_output fan: - platform: speed output: pwm_output name: Ventilatoren id: fans on_turn_on: # - logger.log: "Fan - on_turn_on - Relais turn On!" - switch.turn_on: id: FanRelais on_turn_off: # - logger.log: "Fan - on_turn_off - Relais turn Off!" - switch.turn_off: id: FanRelais sensor: - platform: pulse_counter pin: GPIO13 name: "Drehzahl" update_interval: 10s # default 60s benötigt 100k nach 3,3V filters: - multiply: 0.05
EDIT: Das fanrelais wirst du jedoch nicht brauchen, das habe ich bei mir noch dazu gebastelt!
Für Gerät hinzufügen:
Ich habe den Haken bei Geräteerkennung aktiviert an
Dann die IP und den Verschlüsselungsschlüssel eingetragen und dann auf Geräte hinzufügen/ändern geklickt.
Wichtig ist jedoch, das API überhaupt im yaml eingeschaltet ist:# Enable Home Assistant API api: encryption: key: "XvcblablablaxxxxxuswuswuswundnochmehrIkH0="
Ich denke, punkt 1 löst sich, wenn das im Dashboard hinzugefügt ist.
-
@ralf-2
Danke, das probier ich nachher nochmal aus.Hast du einen ESP32 oder einen 8266? Hab gelesen der 8266 kann kein echtes PWM und verwendet daher eine andere platform.
-
-
@ralf-2
Nabend.Ich hab jetzt nochmal das Device mit dem API-Key in der iob-Instanz hinzugefügt und jetzt zeigt er mir das Gerät dort auch aufgelistet.
Ich kann in den Logs vom ESPhome Dashboard und auch beim iob sehen, dass der ESP regelmäßig den Pulse-counter des Lüfters auswertet und die RPM damit aktualisiert. Das Device steht wird als connected aufgelistet und ich kann es wieder entfernen und neu hinzufügen.
Im ESPhome Dashboard bleibt das Device aber "offline", obwohl ich auch hier die logs und die Aktivität sehen kann.Also irgendwie ist da bei mir noch ein Wurm drin...
-
@t-147
Hi, wie hast du WIFI konfiguriert, hast du dort auch folgenden Block drin:domain: ""
Ich kann mich dunkel daran erinnern, das die Domain unbedingt angegeben werden mußte, ansonsten funktiert das mDNS nicht.
Trag das mal mit diesem leeren Namen ein. -
@ralf-2
Danke vielmals!mDNS war das Stichwort!
Der Port für mDNS fehlte mir im Docker-Container und damit konnten die Nodes das Dashboard nicht erreichen.
Port eingetragen und schon wird der ESP als online angezeigt.Da das Problem jetzt schon mal erledigt ist, kann ich mich ja voll und ganz der PWM-Steuerung des Lüfters widmen.
Für Tips bin ich da trotzdem noch dankbar