NEWS
Benutzen von ESPHome an einem Beispiel **Update 05.01.22 **
-
@tontechniker
Also ich hab die config so abgeändert und übertragen. Leider ohne Erfolg. Keine Ausgabe beim Tag auflegen.Verstehe das System nicht. Ich möchte das jeder gelesene Tag zum Datenpunkt im Iobroker geschickt wird. Nicht auserwählte die ich vorher einlesen und abspeichern muss.
Vielleicht ist das einfach nicht möglich.
-
@david83
Hast Du in der api kein Passwort? -
@yoshi said in Benutzen von ESPHome an einem Beispiel **Update 05.01.22 **:
Hallo Leute,
ich komme einfach nicht mehr weiter. Ich habe einen ESP und einen mmwave Radar Sensor verlötet.
Wenn ich nun alles überspiele, dann baut der ESP zum ESPHome keine richtige Verbindung auf. Immer kommen diese Fehermeldungen.
Was ich auch komisch finde ist. In der Anleitung oben soll ich ja das Passwort für OTA vergeben und dann bei zufügen des Devices eingeben, aber er sagt immer falsches Passwort und wenn ich keins eingebe, dann nimmt er es. Baut sich kurz auf und dann warst das.esphome.0 2022-07-22 17:15:41.347 warn Client 192.168.0.88 Timeout, connection Lost, will reconnect automatically when device is available! esphome.0 2022-07-22 17:15:36.384 error ESPHome client 192.168.0.88 TypeError: Cannot read property 'deserializeBinary' of undefined esphome.0 2022-07-22 17:15:36.370 error ESPHome client 192.168.0.88 TypeError: Cannot read property 'deserializeBinary' of undefined esphome.0 2022-07-22 17:15:06.315 warn Client 192.168.0.88 Timeout, connection Lost, will reconnect automatically when device is available! esphome.0 2022-07-22 17:15:01.348 error ESPHome client 192.168.0.88 TypeError: Cannot read property 'deserializeBinary' of undefined esphome.0 2022-07-22 17:15:01.330 error ESPHome client 192.168.0.88 TypeError: Cannot read property 'deserializeBinary' of undefined
Wenn ich mich über Web draufwähle läuft es an sich. Ich sehe wie sich die Zustände ändern, aber auch hier bekomme ich das die Verbindung schliesst.
[16:02:53][D][api:102]: Accepted 192.168.0.64 [16:02:54][D][api:102]: Accepted 192.168.0.64 [16:02:54][W][api.connection:083]: raspberrypi4-iob (192.168.0.64): Connection closed [16:02:54][W][api.connection:083]: raspberrypi4-iob (192.168.0.64): Connection closed [16:02:58][W][api.connection:083]: raspberrypi4-iob (192.168.0.64): Connection closed [16:02:59][W][api.connection:083]: raspberrypi4-iob (192.168.0.64): Connection closed [16:02:59][W][api.connection:083]: raspberrypi4-iob (192.168.0.64): Connection closed [16:03:03][D][api:102]: Accepted 192.168.0.64 [16:03:03][D][api:102]: Accepted 192.168.0.64 [16:03:03][W][api.connection:083]: raspberrypi4-iob (192.168.0.64): Connection closed [16:03:03][W][api.connection:083]: raspberrypi4-iob (192.168.0.64): Connection closed [16:03:19][D][api:102]: Accepted 192.168.0.64 [16:03:19][D][api:102]: Accepted 192.168.0.64 [16:03:19][W][api.connection:083]: raspberrypi4-iob (192.168.0.64): Connection closed [16:03:19][W][api.connection:083]: raspberrypi4-iob (192.168.0.64): Connection closed [16:03:21][D][api:102]: Accepted 192.168.0.64 [16:03:21][D][api:102]: Accepted 192.168.0.64
mein Yaml
esphome: name: tinypico-mmwave platform: ESP8266 board: esp01_1m substitutions: device_name: tinypico-mmwave # Enable logging logger: # Enable Home Assistant API api: ota: password: "yadda" mdns: disabled: false wifi: ssid: !secret wifi_ssid password: !secret wifi_password power_save_mode: none web_server: port: 80 ota: false switch: - platform: safe_mode internal: true name: use_safe_mode - platform: template name: "mmwave_sensor" id: "mmwave_sensor" optimistic: true restore_state: true assumed_state: true turn_on_action: - uart.write: "sensorStart" - delay: 1s turn_off_action: - uart.write: "sensorStop" - delay: 1s - platform: template name: "LED" id: "led" optimistic: true restore_state: true assumed_state: true turn_on_action: - switch.turn_off: mmwave_sensor - delay: 1s - uart.write: "setLedMode 1 0" - delay: 1s - uart.write: "saveConfig" - delay: 3s - switch.turn_on: mmwave_sensor turn_off_action: - switch.turn_off: mmwave_sensor - delay: 1s - uart.write: "setLedMode 1 1" - delay: 1s - uart.write: "saveConfig" - delay: 3s - switch.turn_on: mmwave_sensor - platform: template name: "uart_presence_output" id: "uart_presence_output" optimistic: true restore_state: true assumed_state: true turn_on_action: - switch.turn_off: mmwave_sensor - delay: 1s - uart.write: "setUartOutput 1 1" - delay: 1s - uart.write: "saveConfig" - delay: 3s - switch.turn_on: mmwave_sensor turn_off_action: - switch.turn_off: mmwave_sensor - delay: 1s - uart.write: "setUartOutput 1 0" - delay: 1s - uart.write: "saveConfig" - delay: 3s - switch.turn_on: mmwave_sensor - platform: template name: "uart_target_output" id: "uart_target_output" optimistic: true restore_state: true assumed_state: false turn_on_action: - switch.turn_off: mmwave_sensor - delay: 1s - uart.write: "setUartOutput 2 1 1 1" - delay: 1s - uart.write: "saveConfig" - delay: 3s - switch.turn_on: mmwave_sensor turn_off_action: - switch.turn_off: mmwave_sensor - delay: 1s - uart.write: "setUartOutput 2 0" - delay: 1s - uart.write: "saveConfig" - delay: 3s - switch.turn_on: mmwave_sensor binary_sensor: - platform: gpio name: mmwave_in_bedroom pin: number: GPIO16 mode: INPUT_PULLDOWN uart: id: uart_bus tx_pin: GPIO4 rx_pin: GPIO5 baud_rate: 115200 debug: direction: BOTH dummy_receiver: true after: delimiter: "\n" sequence: - lambda: UARTDebug::log_string(direction, bytes); number: - platform: template name: distance id: distance min_value: 0 max_value: 1350 initial_value: 315 optimistic: true step: 15 restore_value: true unit_of_measurement: cm mode: box set_action: - switch.turn_off: mmwave_sensor - delay: 1s - uart.write: !lambda int cm = (int)ceil(x / 15.0); std::string cms = "detRangeCfg -1 0 " + to_string(cm); return std::vector<unsigned char>(cms.begin(), cms.end()); - delay: 1s - uart.write: "saveCfg 0x45670123 0xCDEF89AB 0x956128C6 0xDF54AC89" - delay: 1s - switch.turn_on: mmwave_sensor - platform: template name: latency id: latency min_value: 0 max_value: 65000 initial_value: 12500 optimistic: true step: 25 restore_value: true unit_of_measurement: ms mode: box set_action: - switch.turn_off: mmwave_sensor - delay: 1s - uart.write: !lambda int ms = (int)ceil(x / 25.0); std::string mss = "outputLatency -1 0 " + to_string(ms); return std::vector<unsigned char>(mss.begin(), mss.end()); - delay: 1s - uart.write: "saveCfg 0x45670123 0xCDEF89AB 0x956128C6 0xDF54AC89" - delay: 1s - switch.turn_on: mmwave_sensor - platform: template name: sensitivity id: sensitivity min_value: 0 max_value: 9 initial_value: 7 optimistic: true step: 1 restore_value: true set_action: - switch.turn_off: mmwave_sensor - delay: 1s - uart.write: !lambda std::string mss = "setSensitivity " + to_string((int)x); return std::vector<unsigned char>(mss.begin(), mss.end()); - delay: 1s - uart.write: "saveConfig" - delay: 1s - switch.turn_on: mmwave_sensor button: - platform: restart name: Restart $device_name - platform: template name: "factory_reset_dfrobot" id: "factory_reset_dfrobot" on_press: - switch.turn_off: mmwave_sensor - delay: 1s - uart.write: "resetCfg" - delay: 3s - switch.turn_on: mmwave_sensor
Wenn ich mein Yaml reduziere auf folgenden code:
esphome: name: tinypico-mmwave platform: ESP8266 board: esp01_1m substitutions: device_name: tinypico-mmwave # Enable logging logger: # Enable Home Assistant API api: ota: password: "yadda" mdns: disabled: false wifi: ssid: !secret wifi_ssid password: !secret wifi_password power_save_mode: none web_server: port: 80 ota: false switch: - platform: safe_mode internal: true name: use_safe_mode - platform: template name: "mmwave_sensor" id: "mmwave_sensor" optimistic: true restore_state: true assumed_state: true turn_on_action: - uart.write: "sensorStart" - delay: 1s turn_off_action: - uart.write: "sensorStop" - delay: 1s - platform: template name: "LED" id: "led" optimistic: true restore_state: true assumed_state: true turn_on_action: - switch.turn_off: mmwave_sensor - delay: 1s - uart.write: "setLedMode 1 0" - delay: 1s - uart.write: "saveConfig" - delay: 3s - switch.turn_on: mmwave_sensor turn_off_action: - switch.turn_off: mmwave_sensor - delay: 1s - uart.write: "setLedMode 1 1" - delay: 1s - uart.write: "saveConfig" - delay: 3s - switch.turn_on: mmwave_sensor - platform: template name: "uart_presence_output" id: "uart_presence_output" optimistic: true restore_state: true assumed_state: true turn_on_action: - switch.turn_off: mmwave_sensor - delay: 1s - uart.write: "setUartOutput 1 1" - delay: 1s - uart.write: "saveConfig" - delay: 3s - switch.turn_on: mmwave_sensor turn_off_action: - switch.turn_off: mmwave_sensor - delay: 1s - uart.write: "setUartOutput 1 0" - delay: 1s - uart.write: "saveConfig" - delay: 3s - switch.turn_on: mmwave_sensor - platform: template name: "uart_target_output" id: "uart_target_output" optimistic: true restore_state: true assumed_state: false turn_on_action: - switch.turn_off: mmwave_sensor - delay: 1s - uart.write: "setUartOutput 2 1 1 1" - delay: 1s - uart.write: "saveConfig" - delay: 3s - switch.turn_on: mmwave_sensor turn_off_action: - switch.turn_off: mmwave_sensor - delay: 1s - uart.write: "setUartOutput 2 0" - delay: 1s - uart.write: "saveConfig" - delay: 3s - switch.turn_on: mmwave_sensor binary_sensor: - platform: gpio name: mmwave_in_bedroom pin: number: GPIO16 mode: INPUT_PULLDOWN uart: id: uart_bus tx_pin: GPIO4 rx_pin: GPIO5 baud_rate: 115200 debug: direction: BOTH dummy_receiver: true after: delimiter: "\n" sequence: - lambda: UARTDebug::log_string(direction, bytes);
Dann bleibt die Verbindung stabil. Ich weiss echt nicht weiter.
Ist es ein bug ? kann mir denn da niemand eine Auskunft geben?
-
@opensourcenomad
ESP8266
Funksteckdosen "arendo Funkschalterset Mod.-Nr.: 300812" (baugl. mit Brennstuhl). Protokoll: transmit_rc_swich_type_a.Hallo, kannst Du mir eventuell bei einem yaml-Problem weiterhelfen (oder ein "Mitleser")?
Ich steuere mit einem ESP8266 / 433Mhz-Transmitter, mit ESPHome Funksteckdosen an. Das funktioniert mit folgenden Listing (hier mal nur für eine Steckdose):# 433Mhz Steckdose remote_transmitter: - id: Mhz pin: GPIO10 # RF uses a 100% carrier signal carrier_duty_percent: 100% switch: - platform: template id: A name: Funk A turn_on_action: - remote_transmitter.transmit_rc_switch_type_a: group: '10000' device: '10000' state: on protocol: 1 repeat: times: 10 wait_time: 0s turn_off_action: - remote_transmitter.transmit_rc_switch_type_a: group: '10000' device: '10000' state: off protocol: 1 repeat: times: 10 wait_time: 0s
Mein Problem, ich finde in den Objekten die entsprechenden Stati, kann trotz Vorgabe "write: true" aber beim Setzen auf true oder false keine Auswirkungen auf die Funksteckdose auslösen. Was mich weiter stutzig macht ist, dass ich in ESPHome über "visit" die Steckdose steuern kann. Ich muß dazu jeweils einen Doppelkick auf "on-off" zum Einschalten und Ausschalten machen.
Für mich richtig wäre, wenn ich auf "on" 1 mal klicke einschalte und wenn ich auf "off" klicke ausschalte. Was mache ich falsch?
In dem Beitrag, aus dem ich das oben stehende Listing kopiert habe, ist noch ein zweiter Teil des Listings:cover: # Steckdose - platform: template name: "Steckdose A" open_action: - switch.turn_on: A close_action: - switch.turn_off: A optimistic: true assumed_state: true
Das macht mir in "visit" eine zusätzliche Bedienebene "Rolladen" (Pfeil hoch, Stop, Pfeil runter. Damit kann ich zwar die Funksteckdose ein/aus schalten, in den "Objekten" ist aber ein Schalten nicht möglich.
Was mache ich falsch??EDIT:
Es funktioniert mit dem oberen Listing!
Ich hatte in der Instanz ESPHome das Feld "Konfiguration als Zustände anzeigen" angehakt. Nachdem ich den Haken entfernt hatte, funktionierte es.Nachtrag zum oberen Listing: Der Eintrag "wait_time: 0s" ist für die Funktion unbedingt nötig (habe daran ca. 1 Tag gesucht)!
-
Sorry Leute dumme Frage aber welche URL gebe ich bei der Adapter Installation jetzt an?
@FredF -
@sushibomba
Gar keine, stelle kurz das Repo auf Beta um, dann kannst du ganz normal über Admin installieren. -
@fredf
Super ich danke dirSag mal mein vorhaben ist folgendes. Wollte mehrere Temp/Humidity Sensoren von Xiaomi kaufrn da reletiv günstig und sie dann über einen ESP8266MOD in meinen ioBroker bringen.
Verbinden sich dann die Geräte alle mit meinem Bluetooth ESP8266MOD und dann kann ich sie mir in ioBroker anzeigen lassen? Oder kann ich pro ESP nur einen Temp Sensor verbinden? -
@fredf
Und leider schlägt die Installation fehlNPM version: 8.11.0 Installing iobroker.esphome@0.2.4... (System call) host.Pi4ioBroker Cannot install iobroker.esphome@0.2.4: 1 ERROR: Process exited with code 25
-
@sushibomba
Da die Sensoren per MAC Adresse angesprochen werden, können IMHO mehrere Sensoren im YAML abgefragt werden. Ich nutze in ESPhome aber nur einen.@sushibomba sagte in Benutzen von ESPHome an einem Beispiel **Update 05.01.22 **:
@fredf
Und leider schlägt die Installation fehlERROR: Process exited with code 25
Kann ich dir nicht wirklich helfen. Bitte nach dieser Fehlermeldung im Forum suchen, bzw. neuen Beitrag.
-
@yoshi Hast du hierzu eine Lösung gefunden? Ich habe genau das gleiche Problem
-
@stadtschloss Da ist vermutlich mal bei einer der letzten Installationen was hängen geblieben. Kannst mal versuchen die Überbleibel zu löschen (vorher Backup anlegen ) :
cd /opt/iobroker/node-modules for i in $(ls -d .[^.]*-*/); do rm -rf ${i%%/}; done
Dann nochmals die Installation probieren.
-
@sborg sagte in Benutzen von ESPHome an einem Beispiel **Update 05.01.22 **:
for i in $(ls -d .[^.]-/); do rm -rf ${i%%/}; done
Bei mir erscheint folgendes:
root@ioBroker:~# cd /opt/iobroker/node_modules root@ioBroker:/opt/iobroker/node_modules# for i in $(ls -d .[^.]*-*/); do rm -rf ${i%%/}; done ls: cannot access '.[^.]*-*/': No such file or directory root@ioBroker:/opt/iobroker/node_modules# sudo for i in $(ls -d .[^.]*-*/); do rm -rf ${i%%/}; done bash: syntax error near unexpected token `do'
Wolltest du mir antworten?
-
@stadtschloss sagte in Benutzen von ESPHome an einem Beispiel **Update 05.01.22 **:
Wolltest du mir antworten?
Jein, und sorry, aber habe es mit "ERROR: Process exited with code 25" verwechselt, dafür ist die Lösung.
-
@sushibomba
Hast Du maliobroker stop iobroker fix iobroker start
ausgeführt?
Danach nochmal versuchen zu installieren. -
Ja habe ich auch schon probiert. Hat leider auch nichts funktioniert.
@SBorg Was löst dein Befehl genau aus?
-
@sushibomba Der/dein Fehler hat per se nichts mit dem esphome-Adapter zu tun. "ERROR: Process exited with code 25" kann bei jeder Installation/Update vorkommen, je nach dem welche Verzeichnisse des Adapters involviert sind. Da hat irgend wann mal ein NPM-Upgrade geklemmt.
Am besten sieht man es wenn man den Adapter dann in der Konsole aktualisiert/installiertiobroker upgrade iobroker.esphome@0.2.4 --debug
Dann erhält man einen Fehler in etwa der Art, dass er Verzeichnis "/opt/iobroker/node-modules/.....esphome.0584d37" nicht löschen kann weil es nicht leer ist. Dies kann man dann per Hand löschen + neu versuchen. Mit Glück geht es dann, oder man muss noch zig andere Verzeichnisse löschen.
Das "versucht" der Befehl alles in einem Rutsch zu erledigen. Erwischt aber leider nicht immer alle...
Dann ist Handarbeit angesagt... -
@Slowman Danke für den Beitrag. hab nix verstanden da ich Tasmota-Nutzer bin. Bevor ich mich umsonst einarbeite...
Ich möchte/ will unbedingt an einen Wemos D1 Mini Pro (ESP8266) diese Folientastatur anschliessen... Hier hat auch jemand gefragt: https://www.reddit.com/r/Esphome/comments/qf2nvd/is_there_any_way_to_use_this_keypad_with_esphome/
Hab auch das hier gesehen: https://github.com/Syralist/esphomekeypadMangels ESPHome Kentnisse kann ich nicht beurteilen ob das funktionieren wird.
Mit dem selben ESP möchte ich gern zusätzlich Relais schalten, LEDs schalten, ExtenderBoard (PCFirgendwas) anschließen, BME680, SR04 und BH1750 als Sensoren anbinden. Das ganze dann natürlich via MQTT auslesen. Ist das alles überhaupt zusammen machbar? Via Tasmota bekomme ich alles...bisauf diese Folientatstur hin!
Update: Ich hab mal testweise den Wemos mit ESPHome geflasht (via ESP-Web-Tools).
Wie gehts jetzt weiter? So ein .yaml file unter OTA Update einspielen oder brauch ich da ein .bin file. Das hab ich noch nicht verstanden wie ich vom .yaml zum .bin komme... -
@oberfragger hier hat einer seinen eigenen Sketch erstellt (also weder Tasmota noch ESPhome): https://forum.iobroker.net/post/474663
Das Problem ist ja die Auswertung, die Zahlen ergeben sich ja aus einer Kombination der Ausgänge und das muss übersetzt werden. Wenn die dann als Eingänge in Tasmota oder ESPHome definiert sind braucht es eine Auswertung/Betrachtung aller Eingänge um zu entscheiden was gerade gedrückt wurde
-
@bananajoe Danke für den heinweis. Aber soweit ich das überblicken kann, kann man mit dem Scetch dann wirklich nur die Folientastatur benutzen... und nicht noch den Krempel den ich möchte zusätzlich auf einem Gerät.
Oder wie "mischt" man mehrere .ino Dateien? in dem Arduino-Krams bin ich auch nicht soo firm.
-
@oberfragger eine
.ino
ist wie ein Skript in ioBroker. Den anderen "Krempel" müsstest du im Script mit einbauen.
Ich habe gerade mal gelesen was du da alles an einem Wemos D1 Mini anschließen willst ... puhh da brauchts du ja schon einen Portexpander Chip wie den mcp23017 über i2c zusätzlich (mit denen habe ich mal eine 32-fach Relaiskarte an einem Raspberry Pi betrieben). Denn die Folientastatur frisst ja verhältnismäßig viele Anschlüsse (8 meine ich).
Über i2c gibt es auch andere Chips, sollte es auch gehen: https://www.bastelgarage.ch/index.php?route=extension/d_blog_module/post&post_id=8Oder halt 2 Wemos? einen für die Folientatstatur und einen für den Rest?