SmartHome-yourself / m5-dial-for-esphome

M5 Stack Dial - Custom Component for ESPHome
MIT License
57 stars 8 forks source link

M5Dial loosing connection to HA or HA disconnecting #17

Open ArduFox opened 3 months ago

ArduFox commented 3 months ago

Im aktuellen Developer Code verliert der M5Dial immer wieder die Verbindung zu HA, nach sleep eigentlich immer. In diesem Fall bleibt das Display auf "DISCONNECTED", auch wenn HA wieder verbunden ist. Der M5Dial reagiert nach kurzer Zeit meistens wieder auf Input:

[13:40:00][D][api.connection:197]: Home Assistant 2024.3.3 (❌❌❌) requested disconnected [13:40:00][D][HA_API:264]: API is not connected [13:40:07][D][api:102]: Accepted ❌❌❌ [13:40:07][I][DEVICE:056]: Rotary right [13:40:07][D][DEVICE:150]: HaDevice.onRotary: right [13:40:07][I][DISPLAY:070]: refreshInnerMenu( ,4) = 60 ° [13:40:07][D][api.connection:1121]: Home Assistant 2024.3.3 (❌❌❌): Connected successfully

Ich habe den Eindruck, dass sich das im aktuellen DEV verschlechtert hat bzw. erstmals auftritt.

danielscheidler commented 2 months ago

ich habe den Dial diesbezüglich die letzten Tage extra mal beobachtet. Konnte das allerdings nur ein einziges mal überhaupt sehen, aber leider bisher noch nicht erneut reproduzieren. Reagiert hat der Dial bei mir aber immer. Das einzige was ich gesehen habe war, dass der DISCONNECTED Screen sich in diesem Fall nicht aktualisiert hat, wenn der Dial die Verbindung wieder herstellt. Also, das was ich gesehen habe, war ein reines Anzeigeproblem. Verbunden und aktiv war der Dial da auf jeden Fall. Ein vermehrtes trennen der Verbindung habe ich hier allerdings bisher nicht feststellen können.

Tritt das eventuell nur in einem bestimmten Mode auf?

prankousky commented 2 months ago

Bei mir reagiert der Dial gar nicht.

Geflasht nach Anleitung. Dann steht er erst auf "OFFLINE", kurz danach auf "DISCONNECTED". Das Gerät lässt sich auch nicht anpingen. Die Verbindung wird vom Home Assistant discovered, aber eine Verbindung lässt sich nicht herstellen (da das Gerät ja anscheinend wirklich nicht mehr mit dem Netzwerk verbunden ist).

NACH dem Flashen möchte ESPHome das Gerät übrigens neu "adapten". Auch das geht nicht, da keine Verbindung hergestellt werden kann.

Ich habe zwei M5Dial bestellt. Bei beiden dasselbe Problem. Wenn ich sie übrigens nur mit dem Minimum ESPHome Default flashe, verbinden sie sich problemlos mit dem Netzwerk (aber dann fehlt halt die Funktionalität dieses Projektes, für das ich die Geräte extra bestellt hatte).

Also WiFi scheint zu gehen, sobald aber dieses Projekt installiert wird, geht WiFi nur einmal ganz kurz und dann gar nicht mehr (also davon gehe ich aus, da das Gerät weder über ESPHome, noch über ping, noch über Home Assistant, ansprechbar ist).

Ob es an der Version liegt, kann ich nicht sagen; Auf dem Aufkleber steht nur "M5Dial" und "K130" (und eine Seriennummer, die bei beiden Geräten ebenfalls mit K130 beginnt).

Ich hatte mit den M5Stack Atom Echos schon erhebliche Probleme, obwohl diese ja super mit ESPHome funktionieren sollen. Die funktionierten zwar, allerdings sehr schlecht (Audio Feedback verzerrt, verzögert und unverstehbar).

Da ich dieses Projekt in Deinen Videos so genial fand, habe ich trotzdem noch mal in M5 investiert, und diesmal geht gar nichts (abgesehen vom Offline bzw. Disconnected Bildschirm).

Wenn die tatsächlich verschiedene Versionen raushauen, ohne dies irgendwie deutlich erkennbar zu kennzeichnen, sollte die Geräte doch wenigstens untereinander kompatibel sein..?

Ich habe es zwischendurch ein paar Mal "geschafft" (leider keine Ahnung, wie), das Gerät dann doch in Home Assistant einzubinden und auch die Kontrolle über Services zu erlauben. Der Dial zeigte dann tatsächlich die zu bedienende Testlampe an; allerdings ohne sie tatsächlich zu steuern. Obwohl dies in der ESPHome Konfiguration beim hinzufügen erlaubt wurde.

Dieser Bildschirm, der die steuerbare Lampe anzeigte, blieb aber immer nur für wenige Sekunden und dann wechselte das Gerät wieder zu DISCONNECTED. Das hat allerdings nur wenige Male (und für sehr kurze Zeit) funktioniert und lässt sich jetzt gar nicht mehr reproduzieren. Offline/Disconnected, mehr geht nicht.

Ideen, was man verändern könnte? Ich würde das Projekt so gerne zu Hause einsetzen. Danke :)

prankousky commented 2 months ago

Wie versorgt Ihr Eure Dials mit Strom?

Ich hatte bislang per USB-C zugeführt, weil ich so ja auch geflasht hatte. Dann fiel mir aber auf, dass auf der Pappkarte in der Verpackung von 6~36V angegeben wird.

Also habe ich es mit einem Labornetzteil probiert. Erst 6V, dann bis 12 hoch gegangen. Bei 12V und 0.06A hat das Gerät aber auch kaum WLAN gehabt, bzw. nur so viel, um einmal kurz vom Home Assistant discovered zu werden; beim Versuch, dann eine Verbindung herzustellen, war schon Schluss:

grafik

Im Video wird gesagt, man soll die gesamte yaml durch den Code hier im Repo ersetzen. Das hat bei mir nicht funktioniert. Nach dem Flashen gab es keine Verbindung, das Gerät blieb offline/disconnected.

Versuch 1: da ich mit verschiedenen VLAN arbeite, habe ich dem Gerät Zugriff auf das WLAN (und damit auch VLAN) gegeben, in dem sich der Home Assistant befindet (normalerweise haben alle IOT Geräte ein separates VLAN). Das hat leider keinen Unterschied gemacht, ging genauso gut / schlecht wie zuvor.

Versuch 2: Abändern der yaml.

Und zwar habe ich die Codezeilen aus der hier gehosteten yaml manuell übertagen; die fertige Datei sah dann so aus

substitutions:
  name: m5-dial
  friendly_name: m5-dial

esphome:
  name: ${name}
  friendly_name: ${friendly_name}
  name_add_mac_suffix: false
  project:
    name: esphome.web
    version: '1.0'
  platformio_options:
    board_build.flash_mode: dio
    lib_deps:
      - WiFi
      - SPI
      - FS
      - Wire
      - EEPROM
      - ArduinoJson
      - m5stack/M5Unified
      - m5stack/M5Dial

esp32:
  board: esp32-s3-devkitc-1
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:

# Allow Over-The-Air updates
ota:

# Allow provisioning Wi-Fi via serial
improv_serial:

wifi:
  # Set up a wifi access point
  ap: {}
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  use_address: 10.0.0.144

# In combination with the `ap` this allows the user
# to provision wifi credentials to the device via WiFi AP.
captive_portal:

packages:
  m5_tough_package:
    url: https://github.com/SmartHome-yourself/m5-dial-for-esphome
    ref: main
    file: shys-m5-dial.yaml
    refresh: 1h

shys_m5_dial:
  name: Dial
  screen_off_time: 45000
  rotary_step_width: 5
  long_press_duration: 1200
  font: FreeSans12pt7b
  font_factor: 1

  devices:
    lights:      
      - entity: light.unten_arbeitszimmer_strasse_schwenker
        name: Schwenker
        modes:
              dimm_mode:
                enable: true
                rotary_step_width: 10
              rgb_mode: 
                enable: false
                rotary_step_width: 30
              white_mode: 
                enable: true
                rotary_step_width: 100
                min_kelvin: 2500
                max_kelvin: 7000

Das use_address musste sein, weil die Geräte bei mir nicht automatisch eine .local Adresse zugewiesen bekommen; gebe ich die tatsächliche IP an, funktionieren dann auch OTA Updates usw.

Entschuldigung, falss das jetzt gar nicht mehr die Konfiguration ist, die ansatzweise funktioniert hatte... Ich habe so viel herumprobiert, dass es eine frühere (aber inhaltlich ähnliche) Variante war, die funktioniert hatte.

Was heißt "funktioniert"? Das Gerät war weitestgehend pingbar und lies sich auch in den Home Assistant einbinden. Es wurde sogar meine im Code eingetragene Lampe angezeigt -- allerdings war sie nicht steuerbar (obwohl ich den entsprechenden Haken gesetzt hatte)

grafik

Also auf dem Display wurde tatsächlich meine Lampe angezeigt, das Regeln der Werte funktionierte allerdings nicht. Egal ob 0, 50, oder 100%, das Licht blieb so, wie es vor dem Ändern über den Dial auch schon war.

Nach jedem Ändern der Konfiguration war das OTA Update russisches Roulette. Mal lies sich eine Änderung im Code durchsetzen, mal musste ich das Gerät wieder von Grundauf neu einrichten (via AP mit meinem Netzwerk verbinden, in Home Assistant löschen, neu hinzufügen). Ich verstehe nicht ganz, wo das Problem liegen kann. Mal geht es, mal geht es nur halb, mal geht es gar nicht. Aber jeweils nicht reproduzierbar bzw. nach keinem für mich erkennbaren Muster.

danielscheidler commented 2 months ago

@prankousky wie flashst du? direkt aus esphome heraus? adopt sollte eigtl nie notwendig sein wenn direkt aus esphome über usb geflasht wird. Das ist ja eigt nur bei abweichenden Namen der Fall. Mir ist dabei aber gerade aufgefallen, dass sich hier ein kleiner Fehler in der Readme eingeschlichen hat. Die substitution für den Namen sollte "name" lauten und nicht "devicename". Wenn du den Namen geändert hattest, könnte das die Ursache für das adopt gewesen sein. Ich hab die Readme wieder korrigiert.

Ich hab es vorgestern gerade erst mit einem frischen ESPHome Projekt getestet und die Beispielconfig aus der Readme 1:1 auf den dial geflasht und es lief anstandslos. Wenn allerdings etwas mit der Config nicht passt, was ggf. zu abstürzen des Dial führt kann es natürlich sein, dass er sobald die API intern verbunden ist, der ESP crasht und neu startet. Das sollte aber im Log über USB zu sehen sein. Die yaml aus dem Projekt wird über den package-eintrag ja eigtl. importiert und muss daher nicht kopiert werden. Wenn man etwas davon abändern/überschreiben möchte, kann man die Einträge einfach in der eigenen yaml anlegen. Die Einträge der lokalen yaml haben immer Vorrang vor den Einträgen im Package.

Bzgl. "use_address". Wenn dein Netzwerk über DHCP nicht wie für ESPHome erforderlich funktioniert, vergib lieber fixe IPs direkt über die esphome-config. Dazu kannst du wie gewohnt einfach den Wifi-Block der Beispiel-Config hinzufügen. https://esphome.io/components/wifi.html#manual-ips

Wenn du trotzdem nicht weiter kommst, können wir uns das ganze gerne auch einmal gemeinsam in einem Talk auf Discord ansehen, wo du mir deinen Bildschirm teilen kannst.

prankousky commented 2 months ago

Ich habe zuerst direkt aus ESPHome heraus geflasht. Mir ist aufgefallen, dass es bei "exzessivem Flashen" dort manchmal zu Problemen kommt; also bsp. in einem Fall wie diesem, wo etwas nicht auf Anhieb klappt, werden manchmal neu kompilierte Dinge anscheinend (??) nicht übernommen. Als ich die WiFi Credentials geändert hatte, verband sich das Gerät trotzdem noch mit dem zuvor konfigurierten Netzwerk.

Also habe ich es auch mit esptool versucht, und zwar 1) esptool.py --port /dev/ttyACM0 erase_flash 2) esptool.py --port /dev/ttyACM0 write_flash 0x0 m5-dial.bin bzw. testweise auch einmal esptool.py --port /dev/ttyACM0 write_flash --baud 921600 0x0 m5-dial.bin, wobei ich zwischen verschiedenen versuchen jedes Mal erase_flash durchgeführt habe.

Ich probiere es gleich noch einmal und frisch; also erase per esptool, dann flashen via ESPHome, mit dem Beispielcode aus der README.md und zusätzlich use_address. Das Ergebnis hänge ich diesem Post dann an.


UPDATE I (2024-05-15 ~08:00)

Das frisch gelöschte und dann geflashte Gerät gibt folgenden Log aus..


[I][logger:158]: Log initialized
[C][ota:483]: There have been 0 suspected unsuccessful boot attempts.
[D][esp32.preferences:114]: Saving 1 preferences to flash...
[D][esp32.preferences:143]: Saving 1 preferences [I][app:102]: ESPHome version 2024.3.2 compiled on Apr 15 2024, 07:46:38
[I][app:104]: Project smarthomeyourself.m5_dial version 1.0
[C][wifi:580]: WiFi:
[C][wifi:408]:   Local MAC: ja
[C][wifi:413]:   SSID: [redacted]
[C][wifi:416]:   IP Address: 10.0.0.144
[C][wifi:420]:   BSSID: [redacted]
[C][wifi:421]:   Hostname: 'm5-dial'
[C][wifi:423]:   Signal strength: -61 dB ▂▄▆█
[C][wifi:427]:   Channel: 6
[C][wifi:428]:   Subnet: 255.255.255.0
[C][wifi:429]:   Gateway: 10.0.0.2
[C][wifi:430]:   DNS1: 10.0.0.2
[C][wifi:431]:   DNS2: 0.0.0.0
[C][logger:166]: Logger:
[C][logger:167]:   Level: DEBUG
[C][logger:169]:   Log Baud Rate: 115200
[C][logger:170]:   Hardware UART: USB_CDC
[C][shys_m5_dial:042]: -----------------------------------
[C][shys_m5_dial:043]: Shys M5 Dial
[C][shys_m5_dial:044]: -----------------------------------
[C][captive_portal:088]: Captive Portal:
[C][mdns:115]: mDNS:
[C][mdns:116]:   Hostname: m5-dial
[C][ota:096]: Over-The-Air Updates:
[C][ota:097]:   Address: m5-dial.local:3232
[C][ota:103]:   OTA version: 2.
[C][api:139]: API Server:
[C][api:140]:   Address: m5-dial.local:6053
[C][api:144]:   Using noise encryption: NO
[C][improv_serial:032]: Improv Serial:
[D][api:102]: Accepted 10.0.0.25
[W][api:165]: Warning cleared
[D][DISPLAY:047]: refresh Display: Helligkeits-Modus
[I][DEVICE:056]: Rotary right
[D][DEVICE:150]: HaDevice.onRotary: right
[D][DISPLAY:047]: refresh Display: Helligkeits-Modus
[I][DEVICE:056]: Rotary right
[D][DEVICE:150]: HaDevice.onRotary: right
[D][DISPLAY:047]: refresh Display: Helligkeits-Modus
[D][HA_API:043]: light on values: light.unten_arbeitszimmer_strasse_schwenker (20) Color: -1
[I][HA_API:067]: turn light on: light.unten_arbeitszimmer_strasse_schwenker (20)
[W][api.connection:104]: aioesphomeapi (10.0.0.25): Connection closed
[W][api:152]: Warning set: unspecified
[D][HA_API:284]: API is not connected
Terminal disconnected: NetworkError: The device has been lost.

Das Licht wurde kurzzeitig auf dem Display angezeigt, bevor es zu DISCONNECTED wechselte; steuern ließ es sich nicht. Was wohl daran liegt, dass zu dem Zeitpunkt noch keine API Verbindung zu Home Assistant bestand, ich also dementsprechend auch keine Möglichkeit hatte, dem Gerät Service Calls zu genehmigen. Aber nach kurzem Testen (ändern der Helligkeitswerte) war die Verbindung dann sowieso schon wieder weg.

Zu diesem Zeitpunkt hatte ich vergessen, use_address zu übergeben. Das habe ich ergänzt. Dann wollte sich das Gerät allerdings nicht mehr mit dem Netzwerk verbinden. Also habe ich den gesamten wifi Block ergänzt:

substitutions:
  name: "m5-dial"
  wifi_ssid: !secret wifi_ssid
  wifi_password: !secret wifi_password  

packages:
  m5_tough_package:
    url: https://github.com/SmartHome-yourself/m5-dial-for-esphome
    ref: main
    file: shys-m5-dial.yaml
    refresh: 1h

shys_m5_dial:
  name: Dial
  screen_off_time: 45000
  rotary_step_width: 5
  long_press_duration: 1200
  font: FreeSans12pt7b
  font_factor: 1

  devices:
    lights:
      - entity: light.unten_arbeitszimmer_strasse_schwenker
        name: Schwenker
        modes:
          dimm_mode:
            enable: true
            rotary_step_width: 10

wifi:
  ssid: ja
  password: auch
  use_address: 10.0.0.144

Jetzt sieht der Log folgendermaßen aus


[I][logger:158]: Log initialized
[C][ota:483]: There have been 2 suspected unsuccessful boot attempts.
[D][esp32.preferences:114]: Saving 1 preferences to flash...
[D][esp32.preferences:143]: Saving 1 preferences [I][DEVICE:248]: Register Callbacks...
# [an dieser Stelle werden sämtliche Netzwerke aufgelistet, die gefunden werden; das blende ich hier aus]
[I][wifi:303]: WiFi Connecting to 'ja'...
[I][wifi:594]: WiFi Connected!
[C][wifi:408]:   Local MAC: ja
[C][wifi:413]:   SSID: [redacted]
[C][wifi:416]:   IP Address: 10.0.0.144
[C][wifi:420]:   BSSID: [redacted]
[C][wifi:421]:   Hostname: 'm5-dial'
[C][wifi:423]:   Signal strength: -52 dB ▂▄▆█
[C][wifi:427]:   Channel: 6
[C][wifi:428]:   Subnet: 255.255.255.0
[C][wifi:429]:   Gateway: 10.0.0.2
[C][wifi:430]:   DNS1: 10.0.0.2
[C][wifi:431]:   DNS2: 0.0.0.0
[D][wifi:603]: Disabling AP...
[D][HA_API:284]: API is not connected
[C][ota:096]: Over-The-Air Updates:
[C][ota:097]:   Address: m5-dial.local:3232
[C][ota:103]:   OTA version: 2.
[W][ota:107]: Last Boot was an unhandled reset, will proceed to safe mode in 8 restarts
[C][api:025]: Setting up Home Assistant API server...
[I][app:062]: setup() finished successfully!
[W][wifi:165]: Warning cleared
[W][api:152]: Warning set: unspecified
[I][app:102]: ESPHome version 2024.3.2 compiled on Apr 15 2024, 07:46:38
[I][app:104]: Project smarthomeyourself.m5_dial version 1.0
[C][wifi:580]: WiFi:
[C][wifi:408]:   Local MAC: ja
[C][wifi:413]:   SSID: [redacted]
[C][wifi:416]:   IP Address: 10.0.0.144
[C][wifi:420]:   BSSID: [redacted]
[C][wifi:421]:   Hostname: 'm5-dial'
[C][wifi:423]:   Signal strength: -52 dB ▂▄▆█
[C][wifi:427]:   Channel: 6
[C][wifi:428]:   Subnet: 255.255.255.0
[C][wifi:429]:   Gateway: 10.0.0.2
[C][wifi:430]:   DNS1: 10.0.0.2
[C][wifi:431]:   DNS2: 0.0.0.0
[C][logger:166]: Logger:
[C][logger:167]:   Level: DEBUG
[C][logger:169]:   Log Baud Rate: 115200
[C][logger:170]:   Hardware UART: USB_CDC
[C][shys_m5_dial:042]: -----------------------------------
[C][shys_m5_dial:043]: Shys M5 Dial
[C][shys_m5_dial:044]: -----------------------------------
[C][captive_portal:088]: Captive Portal:
[C][mdns:115]: mDNS:
[C][mdns:116]:   Hostname: m5-dial
[C][ota:096]: Over-The-Air Updates:
[C][ota:097]:   Address: m5-dial.local:3232
[C][ota:103]:   OTA version: 2.
[W][ota:107]: Last Boot was an unhandled reset, will proceed to safe mode in 8 restarts
[C][api:139]: API Server:
[C][api:140]:   Address: m5-dial.local:6053
[C][api:144]:   Using noise encryption: NO
[C][improv_serial:032]: Improv Serial:

Weiter geht es nicht. Das Display wechselt von kurzzeitig OFFLINE (grauer Hintergrund) zu DISCONNECTED (blauer Hintergrund). Das Gerät kann nicht angepingt werden. Im Home Assistant wird es wieder gefunden, aber dann ist Schluß:

grafik

Ich werde das Gerät nun noch einmal vollständig zurücksetzen und mit der letzten Config (also inkl. wifi Block, der use_address sowie ssid und password enthält), neu flashen. Update folgt dann wieder :)


UPDATE II (~ 8:30)

Gerät gelöscht und neu geflasht. Vor dem Flashen habe ich außerdem Clean Build Files in ESPHome angeklickt, damit die Datei wirklich vollständig frisch kompiliert wurde.

Der Log sagt folgendes, also es bleibt wieder einfach bei Improv Serial stehen.

[I][logger:158]: Log initialized
[C][ota:483]: There have been 0 suspected unsuccessful boot attempts.
[D][esp32.preferences:114]: Saving 1 preferences to flash...
[D][esp32.preferences:143]: Saving 1 preferences [I][app:102]: ESPHome version 2024.3.2 compiled on Apr 15 2024, 07:46:38
[I][app:104]: Project smarthomeyourself.m5_dial version 1.0
[C][wifi:580]: WiFi:
[C][wifi:408]:   Local MAC: ja
[C][wifi:413]:   SSID: [redacted]
[C][wifi:416]:   IP Address: 10.0.0.144
[C][wifi:420]:   BSSID: [redacted]
[C][wifi:421]:   Hostname: 'm5-dial'
[C][wifi:423]:   Signal strength: -55 dB ▂▄▆█
[C][wifi:427]:   Channel: 6
[C][wifi:428]:   Subnet: 255.255.255.0
[C][wifi:429]:   Gateway: 10.0.0.2
[C][wifi:430]:   DNS1: 10.0.0.2
[C][wifi:431]:   DNS2: 0.0.0.0
[C][logger:166]: Logger:
[C][logger:167]:   Level: DEBUG
[C][logger:169]:   Log Baud Rate: 115200
[C][logger:170]:   Hardware UART: USB_CDC
[C][shys_m5_dial:042]: -----------------------------------
[C][shys_m5_dial:043]: Shys M5 Dial
[C][shys_m5_dial:044]: -----------------------------------
[C][captive_portal:088]: Captive Portal:
[C][mdns:115]: mDNS:
[C][mdns:116]:   Hostname: m5-dial
[C][ota:096]: Over-The-Air Updates:
[C][ota:097]:   Address: m5-dial.local:3232
[C][ota:103]:   OTA version: 2.
[C][api:139]: API Server:
[C][api:140]:   Address: m5-dial.local:6053
[C][api:144]:   Using noise encryption: NO
[C][improv_serial:032]: Improv Serial:

Laut UniFi ist das Gerät mit dem WiFi verbunden

grafik

Ping sagt nein

grafik

Man sieht den einen, sehr kurzen Augenblick, während dem das Gerät mit dem Netzwerk verbunden war. Zu diesem Zeitpunkt war es mir auch Möglich, es in Home Assistant zu integrieren

grafik

Wobei mich das Keine Geräte oder Entitäten stutzig macht. Eigentlich müsste ein Gerät und eine Entität da sein, nämlich Firmware... Ich denke, das liegt daran, dass das sich zwar gerade noch verbinden ließ, dann aber -- bevor jegliche Daten übermittelt wurden -- schon wieder offline war.

Ich habe dann im Logviewer RESET DEVICE probiert, woraufhin sich diese Änderung ergeben hat

grafik

Die Verbindung war wieder nur von kurzer Dauer. Der Log

ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x15 (USB_UART_CHIP_RESET),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x420b47ba
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3808,len:0x43c
load:0x403c9700,len:0xbec
load:0x403cc700,len:0x2a3c
entry 0x403c98d8
[I][logger:158]: Log initialized
[C][ota:483]: There have been 3 suspected unsuccessful boot attempts.
[D][esp32.preferences:114]: Saving 1 preferences to flash...
[D][esp32.preferences:143]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed
[I][DEVICE:139]: setScreenOffTime 45000
[I][DEVICE:145]: setLongPressDuration 1200
[I][DEVICE:151]: setApiSendDelay 1200
[I][DEVICE:156]: setApiSendLock 3000
[I][DEVICE:161]: setRotaryStepWidth 5
[I][DEVICE:166]: setFontName t.�?
[I][DEVICE:171]: setFontFactor 1
[W][DEVICE:051]: Modes JSON: {"dimm_mode": {"enable": true, "rotary_step_width": 10}, "rgb_mode": {"enable": false}, "white_mode": {"enable": false, "min_kelvin": 2000, "max_kelvin": 6500}}
[D][DEVICE:115]: New Device: Schwenker
[D][HA_DEVICE:023]: Init Light: light.unten_arbeitszimmer_strasse_schwenker
[D][HA_DEVICE:035]: Dimm-Mode enabled (steps: 10)
[D][DEVICE:126]: Device added
[I][app:029]: Running through setup()...
[I][DEVICE:243]: Initialisierung...
[I][DEVICE:248]: Register Callbacks...
[D][DEVICE:027]: register on_rotary_left Callback
[D][DEVICE:022]: register on_rotary_right Callback
[D][DEVICE:032]: register on_short_button_press Callback
[D][DEVICE:037]: register on_long_button_press Callback
[D][DEVICE:030]: register on_touch Callback
[D][DEVICE:034]: register on_swipe Callback
[I][log:018]: M5 is initialized
[C][wifi:038]: Setting up WiFi...
[C][wifi:051]: Starting WiFi...
[C][wifi:052]:   Local MAC: ja
[D][wifi:462]: Starting scan...
[W][wifi:152]: Warning set: unspecified
[D][wifi:292]: Network is not connected
[D][wifi:477]: Found networks:
[I][wifi:521]: - '' [redacted]▂▄▆█
[D][wifi:522]:     Channel: 6
[D][wifi:523]:     RSSI: -57 dB
[I][wifi:521]: - '' [redacted]▂▄▆█
[D][wifi:522]:     Channel: 6
[D][wifi:523]:     RSSI: -65 dB
[I][wifi:521]: - '' [redacted]▂▄▆█
[D][wifi:522]:     Channel: 11
[D][wifi:523]:     RSSI: -83 dB
[D][wifi:526]: - [redacted] [redacted]▂▄▆█
[D][wifi:526]: - [redacted] [redacted]▂▄▆█
[D][wifi:526]: - [redacted] [redacted]▂▄▆█
[D][wifi:526]: - [redacted] [redacted]▂▄▆][wifi:526]: - [redacted] [redacted][D][wifi:526]: - [redacted] [redacted]][wifi:526]: - [redacted] [redacted]▂▄▆█
[D][wifi:526]: - [redacted] [redacted]▂▄[D][wifi:526]: - [redacted] [redacted][D][wifi:526]: - [redacted] [redacted][D][wifi:526]: - [redacted] [redacted][D][wifi:526]: - [redacted] 0;32m[I][wifi:303]: WiFi Connecting to 'beiGertrud'...
[I][wifi:594]: WiFi Connected!
[C][wifi:408]:   Local MAC: ja
[C][wifi:413]:   SSID: [redacted]
[C][wifi:416]:   IP Address: 10.0.0.144
[C][wifi:420]:   BSSID: [redacted]
[C][wifi:421]:   Hostname: 'm5-dial'
[C][wifi:423]:   Signal strength: -58 dB ▂▄▆█
[C][wifi:427]:   Channel: 6
[C][wifi:428]:   Subnet: 255.255.255.0
[C][wifi:429]:   Gateway: 10.0.0.2
[C][wifi:430]:   DNS1: 10.0.0.2
[C][wifi:431]:   DNS2: 0.0.0.0
[D][wifi:603]: Disabling AP...
[D][HA_API:284]: API is not connected
[C][ota:096]: Over-The-Air Updates:
[C][ota:097]:   Address: m5-dial.local:3232
[C][ota:103]:   OTA version: 2.
[W][ota:107]: Last Boot was an unhandled reset, will proceed to safe mode in 7 restarts
[C][api:025]: Setting up Home Assistant API server...
[I][app:062]: setup() finished successfully!
[W][wifi:165]: Warning cleared
[W][api:152]: Warning set: unspecified
[I][app:102]: ESPHome version 2024.3.2 compiled on Apr 15 2024, 07:46:38
[I][app:104]: Project smarthomeyourself.m5_dial version 1.0
[C][wifi:580]: WiFi:
[C][wifi:408]:   Local MAC: C0:4E:30:12:BA:68
[C][wifi:413]:   SSID: [redacted]
[C][wifi:416]:   IP Address: 10.0.0.144
[C][wifi:420]:   BSSID: [redacted]
[C][wifi:421]:   Hostname: 'm5-dial'
[C][wifi:423]:   Signal strength: -58 dB ▂▄▆█
[C][wifi:427]:   Channel: 6
[C][wifi:428]:   Subnet: 255.255.255.0
[C][wifi:429]:   Gateway: 10.0.0.2
[C][wifi:430]:   DNS1: 10.0.0.2
[C][wifi:431]:   DNS2: 0.0.0.0
[C][logger:166]: Logger:
[C][logger:167]:   Level: DEBUG
[C][logger:169]:   Log Baud Rate: 115200
[C][logger:170]:   Hardware UART: USB_CDC
[C][shys_m5_dial:042]: -----------------------------------
[C][shys_m5_dial:043]: Shys M5 Dial
[C][shys_m5_dial:044]: -----------------------------------
[C][captive_portal:088]: Captive Portal:
[C][mdns:115]: mDNS:
[C][mdns:116]:   Hostname: m5-dial
[C][ota:096]: Over-The-Air Updates:
[C][ota:097]:   Address: m5-dial.local:3232
[C][ota:103]:   OTA version: 2.
[W][ota:107]: Last Boot was an unhandled reset, will proceed to safe mode in 7 restarts
[C][api:139]: API Server:
[C][api:140]:   Address: m5-dial.local:6053
[C][api:144]:   Using noise encryption: NO
[C][improv_serial:032]: Improv Serial:
[D][api:102]: Accepted 10.0.0.25
[W][api:165]: Warning cleared
[D][DISPLAY:047]: refresh Display: Helligkeits-Modus
[D][api.connection:1159]: Home Assistant 2024.4.3 (10.0.0.25): Connected successfully
[I][DEVICE:056]: Rotary right
[D][DEVICE:150]: HaDevice.onRotary: right
[D][DISPLAY:047]: refresh Display: Helligkeits-Modus
[I][DEVICE:056]: Rotary right
[D][DEVICE:150]: HaDevice.onRotary: right
[D][DISPLAY:047]: refresh Display: Helligkeits-Modus
[D][HA_API:043]: light on values: light.unten_arbeitszimmer_strasse_schwenker (20) Color: -1
[I][HA_API:067]: turn light on: light.unten_arbeitszimmer_strasse_schwenker (20)
[I][DEVICE:056]: Rotary right
[D][DEVICE:150]: HaDevice.onRotary: right
[D][DISPLAY:047]: refresh Display: Helligkeits-Modus
[I][DEVICE:056]: Rotary right
[D][DEVICE:150]: HaDevice.onRotary: right
[D][DISPLAY:047]: refresh Display: Helligkeits-Modus
[D][HA_API:043]: light on values: light.unten_arbeitszimmer_strasse_schwenker (40) Color: -1
[I][HA_API:067]: turn light on: light.unten_arbeitszimmer_strasse_schwenker (40)

Man kann hier sehr schön sehen, wann das Device resettet wurde, denn dann ist jeweils eine kurze Verbindung vorhanden

grafik

Okay, und jetzt wird es richtig komisch... Ich habe das Gerät einfach laufen gelassen und diesen relativ langen Post hier verfasst... Plötzlich Video. Es funktioniert. Wenn auch mit ziemlichem Delay mitunter, aber es geht.

Auf einmal (!!) lässt sich das Gerät auch halbwegs durchgehend anpingen.

grafik

Zwar nicht das vollständig durchgehende Grün, was meine anderen Geräte im Netzwerk haben, aber hey :laughing: es läuft.

Ich werde nun die Konfiguration durch weitere Geräte ergänzen und dann neu flashen... mal sehen, wie lange es diesmal dauert, bis das Gerät funktioniert. Aktuell sieht es so aus, als wenn es lediglich Startschwierigkeiten hat, aber sich dann irgendwann auf einmal doch verbindet und verbunden bleibt :man_shrugging: strange, aber okay, sofern das nur einmal der Fall ist, kann man damit doch leben :) Also, mehr dann in Update III ;)

prankousky commented 2 months ago

Update III, ich mache mal einen neuen Comment dafür, weil hier jetzt vielleicht der Haken liegen könnte...

[W][ota:107]: Last Boot was an unhandled reset, will proceed to safe mode in 0 restarts

und

[C][ota:483]: There have been 10 suspected unsuccessful boot attempts.
[D][esp32.preferences:114]: Saving 1 preferences to flash...
[D][esp32.preferences:143]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed
[E][ota:490]: Boot loop detected. Proceeding to safe mode.
[E][ota:159]: Error set: unspecified

Da wieder keine Verbindung hergestellt wurde (Flashen war 08:28 fertig, bis 08:43 keine Verbindung) habe ich über die Logs mehrfach einen Reset durchgeführt. Bis dann oben diese Meldung kam, dass irgendwann ein safe mode restart durchgeführt wurde. Diesen habe ich proviziert, indem ich immer wieder neu gestartet habe, bis eben der Counter voll war.

Nach diesem Safe Mode war tatsächlich eine kurze Verbindung möglich; ich konnte den Fan, den ich hinzugefügt hatte, einschalten. Das war es dann aber auch schon wieder. Die Verbindung war wieder weg. Noch ein paar Restarts... keine Verbindung.

Eben gerade wechselte das Display von DISCONNECTED auf die Licht Entity; ich kann sie ändern, aber das Gerät lässt sich auch weiterhin nicht anpingen, entsprechend werden die geänderten Werte im Home Assistant auch nicht übernommen. Aber der Dial selbst scheint ja "der Ansicht zu sein", eine Verbindung zu haben, denn normalerweise wird einfach DISCONNECTED auf blau angezeigt, kein Piepen beim Drehen des Rades, und auf einmal ist die Lampe da und es piept.

Da aber auch jetzt (~08:48) kein Ping da ist, funktioniert die Steuerung nicht. Der Dial meint wohl, er sei verbunden, UniFi zeigt ihn auch noch als Online an (seit über 17 Minuten, dabei ist er längst nicht mehr anpingbar und/oder kann irgend etwas steuern), ping und Home Assistant sagen, er ist nicht verbunden.

Mehrere Resets haben bis jetzt auch nichts mehr gebracht. Ich muss gleich noch einmal weg -- es würde mich nicht wundern, wenn ich das Gerät einfach am Strom lasse und dann eine Verbindung besteht, wenn ich wieder da bin. Aber jetzt sind es halt schon wieder über 20 Minuten (inkl. mehrerer Resets) und eine stabile Verbindung fehlt.

Während ich das schreibe, hat der Dial wieder für eine ganze Weile zu DISCONNECTED gewechselt (OFFLINE ist er immer nur ganz kurz während des Restarts), plötzlich ein Piep und die Lampe wird angezeigt -- allerdings wieder, ohne dass sie gesteuert werden kann. Nach ca. 20 Sekunden wieder ein Wechsel zu DISCONNECTED.

Das war dieser Ping

grafik

Ich habe den Dial jetzt mit einem anderen USB Kabel versorgt, welches direkt an der Steckdose steckt (anstatt des USB Kabels, über das ich vom PC aus geflasht habe). Hier war er kurzzeitig sofort online, aber bevor ich etwas schalten konnte, war die Verbindung schon wieder weg

grafik

Sorry, so viel Text auf einmal... aber ich schreibe immer, was passiert ist, teste neu, und schreibe dann wieder... Jetzt habe ich eine halbwegs stabile Verbindung. Rot markiert ist der Zeitpunkt, seitdem der Dial an der Steckdose hängt (zuvor PC).

grafik

Jetzt ist die Verbindung stabil. Also wie im vorherigen Post, nicht so stabil, wie sie sein sollte, aber stabil genug, dass sich Geräte steuern lassen.

Das hier ist der Ping aktuell... Die Verbindung bricht wohl immer mal ein, aber wenn ich eine Aktion ausführe (ich teste anhand der Lampe, also toggle oder ändern des Helligkeitswertes), dann ist die Verbindung wieder da.


So weit, so gut :) Aber ich habe jetzt halt um ca. 8:30 neu geflasht (und zwar, weil ich der Konfiguration den Fan hinzugefügt habe), und knapp eine halbe Stunde später funktioniert das Gerät, ohne dass ich weiß, warum.

Als die Verbindung vorhin plötzlich stabil wurde, so wie jetzt, war das Gerät weiterhin mit dem PC verbunden; dass es jetzt plötzlich funktioniert hat, als ich von PC auf Steckdose gewechselt habe, war also vermutlich ein Zufall. Ich dachte erst, vielleicht gibt der PC einfach nicht genug Energie raus, aber warum hat es dann vorhin geklappt? Jetzt läuft alles, also Verbindung Dial mit Steckdose, ping fast so stabil wie alle anderen Geräte im Netz. Allerdings traue ich mich aktuell nicht, die Konfiguration zu erweitern und/oder den Dial zu trennen.

Ich nehme meinen Termin wahr und probiere danach weiter.

Sorry, so viel Text... Ich beschreibe alles deshalb so genau, weil vielleicht sonst genau die entscheidende Information fehlt und in einer Woche oder so die nächste Person ein ähnliches Problem hat.

danielscheidler commented 2 months ago

Wie gesagt, vergib lieber eine fixe ip über die yaml, anstatt use_address zu verwenden. Das nutzen einer Statischen IP sorgt auch dafür, dass er nicht mehr per mdns versucht die Adresse zum Hostnamen zu ermitteln, wäre aber mMn. der saubere Weg. Das use_address ist eigtl ja eher dafür da, wenn du z.b. den Gerätenamen änderst, um temporär auf eine abweichende IP flashen zu können.

Am Mo., 15. Apr. 2024 um 07:40 Uhr schrieb prankousky < @.***>:

Ich habe zuerst direkt aus ESPHome heraus geflasht. Mir ist aufgefallen, dass es bei "exzessivem Flashen" dort manchmal zu Problemen kommt; also bsp. in einem Fall wie diesem, wo etwas nicht auf Anhieb klappt, werden manchmal neu kompilierte Dinge anscheinend (??) nicht übernommen. Als ich die WiFi Credentials geändert hatte, verband sich das Gerät trotzdem noch mit dem zuvor konfigurierten Netzwerk.

Also habe ich es auch mit esptool versucht, und zwar 1) esptool.py --port /dev/ttyACM0 erase_flash 2) esptool.py --port /dev/ttyACM0 write_flash 0x0 m5-dial.bin bzw. testweise auch einmal esptool.py --port /dev/ttyACM0 write_flash --baud 921600 0x0 m5-dial.bin, wobei ich zwischen verschiedenen versuchen jedes Mal erase_flash durchgeführt habe.

Ich probiere es gleich noch einmal und frisch; also erase per esptool, dann flashen via ESPHome, mit dem Beispielcode aus der README.md und zusätzlich use_address. Das Ergebnis hänge ich diesem Post dann an.

— Reply to this email directly, view it on GitHub https://github.com/SmartHome-yourself/m5-dial-for-esphome/issues/17#issuecomment-2055372771, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFMJPFGCMPC33QBXMLLRFTY5NR4PAVCNFSM6AAAAABFQLF37WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANJVGM3TENZXGE . You are receiving this because you commented.Message ID: @.***>

danielscheidler commented 2 months ago

Also ich nutze den Dial recht viel nur über USB. Kann aber natürlich durchaus sein, dass wenn der USB weniger Strom liefert, sich das ggf negativ aufs Wifi auswirken kann. Was Wifi angeht, ist der Dial auch teilweise recht empfindlich, hab ich den Eindruck.

Aber ich vermute auch, dass das "here have been 10 suspected unsuccessful boot attempts." eher zu verfolgen ist. Die Frage hier wäre, welches Geräte und welcher Mode dabei aktiv sind. Ist es immer der gleiche? Eventuell ist ein Attribut in dem Moment nicht abrufbar oder liefert unerwartete Werte zurück?

Hier wäre spannend, was im log vor dem Absturz ausgegeben wird. So kann ich vllt Rückschlüsse darauf ziehen, wobei er abstürzt.

Am Mo., 15. Apr. 2024 um 09:10 Uhr schrieb Daniel Scheidler < @.***>:

Wie gesagt, vergib lieber eine fixe ip über die yaml, anstatt use_address zu verwenden. Das nutzen einer Statischen IP sorgt auch dafür, dass er nicht mehr per mdns versucht die Adresse zum Hostnamen zu ermitteln, wäre aber mMn. der saubere Weg. Das use_address ist eigtl ja eher dafür da, wenn du z.b. den Gerätenamen änderst, um temporär auf eine abweichende IP flashen zu können.

Am Mo., 15. Apr. 2024 um 07:40 Uhr schrieb prankousky < @.***>:

Ich habe zuerst direkt aus ESPHome heraus geflasht. Mir ist aufgefallen, dass es bei "exzessivem Flashen" dort manchmal zu Problemen kommt; also bsp. in einem Fall wie diesem, wo etwas nicht auf Anhieb klappt, werden manchmal neu kompilierte Dinge anscheinend (??) nicht übernommen. Als ich die WiFi Credentials geändert hatte, verband sich das Gerät trotzdem noch mit dem zuvor konfigurierten Netzwerk.

Also habe ich es auch mit esptool versucht, und zwar 1) esptool.py --port /dev/ttyACM0 erase_flash 2) esptool.py --port /dev/ttyACM0 write_flash 0x0 m5-dial.bin bzw. testweise auch einmal esptool.py --port /dev/ttyACM0 write_flash --baud 921600 0x0 m5-dial.bin, wobei ich zwischen verschiedenen versuchen jedes Mal erase_flash durchgeführt habe.

Ich probiere es gleich noch einmal und frisch; also erase per esptool, dann flashen via ESPHome, mit dem Beispielcode aus der README.md und zusätzlich use_address. Das Ergebnis hänge ich diesem Post dann an.

— Reply to this email directly, view it on GitHub https://github.com/SmartHome-yourself/m5-dial-for-esphome/issues/17#issuecomment-2055372771, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAFMJPFGCMPC33QBXMLLRFTY5NR4PAVCNFSM6AAAAABFQLF37WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDANJVGM3TENZXGE . You are receiving this because you commented.Message ID: @.***>

prankousky commented 2 months ago

Bei der zu steuernden Lampe handelt es sich um ein zigbee Gerät; dieses macht selten bis gar keine Probleme, aber eben, selten. Deshalb habe ich sie aus der neuen Konfiguration herausgenommen, siehe hier:

substitutions:
  name: "m5-dial"
  wifi_ssid: !secret wifi_ssid
  wifi_password: !secret wifi_password

packages:
  m5_tough_package:
    url: https://github.com/SmartHome-yourself/m5-dial-for-esphome
    ref: main
    file: shys-m5-dial.yaml
    refresh: 1h

shys_m5_dial:
  name: Dial
  screen_off_time: 45000
  rotary_step_width: 5
  long_press_duration: 1200
  font: FreeSans12pt7b
  font_factor: 1

  devices:
    # lights:
    #   - entity: light.unten_arbeitszimmer_strasse_schwenker
    #     name: Schwenker
    #     modes:
    #       dimm_mode:
    #         enable: true
    #         rotary_step_width: 10
    fans:
      - entity: fan.unten_arbeitszimmer_deckenfans
        name: Decke
        modes:
          speed_mode:
            changeable_direction: false
            rotary_step_width: 10

wifi:
  ssid: JA
  password: OK
  use_address: 10.0.0.144
  manual_ip:
    # Set this to the IP of the ESP
    static_ip: 10.0.0.144
    gateway: 10.0.0.1
    # The subnet of the network. 255.255.255.0 works for most home networks.
    subnet: 255.255.255.0

Laut UniFi ist das Gerät jetzt seit 20 Minuten online (also das ist nach dem folgenden Log), hat aber nur jeweils knapp 240bps Up/Down Speed und

Down Pkts/Bytes
1009 / 82.2 KB
Up Pkts/Bytes
752 / 43.3 KB

Während dieser Zeit war das Gerät die ganze Zeit per USB verbunden, da ich nur so Einblick in die Logfiles habe. Ich habe es jetzt (ebenfalls schon nach den unten stehenden Logs) wieder mit der Stromversorgung über die Steckdose probiert. Es ist weiterhin kein ping da und das Display zeigt DISCONNECTED.

Diese Sachen hier sind mir aufgefallen; ich weiß allerdings nicht, was genau sie bedeuten bzw. ob/wie sie zu beheben sind.

[W][wifi_esp32:482]: Event: Disconnected ssid='meinnetzwerk' bssid=[redacted] reason='Auth Expired'
[W][wifi:630]: Error while connecting to network.
[I][wifi:303]: WiFi Connecting to 'meinnetzwerk'...
[W][wifi_esp32:482]: Event: Disconnected ssid='meinnetzwerk' bssid=[redacted] reason='Association Expired'
[I][wifi:303]: WiFi Connecting to 'meinnetzwerk'...
[W][wifi_esp32:482]: Event: Disconnected ssid='meinnetzwerk' bssid=[redacted] reason='4-Way Handshake Timeout'

Log inkl. Anmerkungen


: There have been 5 suspected unsuccessful boot attempts.

[D][esp32.preferences:114]: Saving 1 preferences to flash...
[D][esp32.preferences:143]: Saving 1 preferences [I][DEVICE:248]: Register Callbacks...
[D][DEVICE:027]: register on_rotary_left Callback
############## [D][DEVI[W][wifi_esp32:479]: Event: Disconnected ssid='meinnetzwerk' reason='Probe Request Unsuccessful'
[W][wifi:630]: Error while connecting to network.
[D][wifi:673]: Retrying with hidden networks...
[I][wifi:303]: WiFi Connecting to 'meinnetzwerk'...
[W][wifi:640]: WiFi network can not be found anymore.
[I][wifi:303]: WiFi Connecting to 'meinnetzwerk'...
############## [W][wifi_esp32:482]: Event: Disconnected ssid='meinnetzwerk' bssid=[redacted] reason='Association Leave'
[I][wifi:594]: WiFi Connected!
[C][wifi:408]:   Local MAC: ja
[C][wifi:413]:   SSID: [redacted]
[C][wifi:416]:   IP Address: 10.0.0.144
[C][wifi:420]:   BSSID: [redacted]
[C][wifi:421]:   Hostname: 'm5-dial'
[C][wifi:423]:   Signal strength: -65 dB ▂▄▆█
[C][wifi:427]:   Channel: 6
[C][wifi:428]:   Subnet: 255.255.255.0
[C][wifi:429]:   Gateway: 10.0.0.1
[C][wifi:430]:   DNS1: 0.0.0.0
[C][wifi:431]:   DNS2: 0.0.0.0
[D][wifi:603]: Disabling AP...
[D][HA_API:284]: API is not connected
[C][ota:096]: Over-The-Air Updates:
[C][ota:097]:   Address: 10.0.0.144:3232
[C][ota:103]:   OTA version: 2.
[W][ota:107]: Last Boot was an unhandled reset, will proceed to safe mode in 5 restarts
[C][api:025]: Setting up Home Assistant API server...
[I][app:062]: setup() finished successfully!
[W][wifi:165]: Warning cleared
############## [W][api:152]: Warning set: unspecified
[I][app:102]: ESPHome version 2024.3.2 compiled on Apr 15 2024, 09:55:50
[I][app:104]: Project smarthomeyourself.m5_dial version 1.0
[C][wifi:580]: WiFi:
[C][wifi:408]:   Local MAC: ja
[C][wifi:413]:   SSID: [redacted]
[C][wifi:416]:   IP Address: 10.0.0.144
[C][wifi:420]:   BSSID: [redacted]
[C][wifi:421]:   Hostname: 'm5-dial'
[C][wifi:423]:   Signal strength: -62 dB ▂▄▆█
[C][wifi:427]:   Channel: 6
[C][wifi:428]:   Subnet: 255.255.255.0
[C][wifi:429]:   Gateway: 10.0.0.1
[C][wifi:430]:   DNS1: 0.0.0.0
[C][wifi:431]:   DNS2: 0.0.0.0
[C][logger:166]: Logger:
[C][logger:167]:   Level: DEBUG
[C][logger:169]:   Log Baud Rate: 115200
[C][logger:170]:   Hardware UART: USB_CDC
[C][shys_m5_dial:042]: -----------------------------------
[C][shys_m5_dial:043]: Shys M5 Dial
[C][shys_m5_dial:044]: -----------------------------------
[C][captive_portal:088]: Captive Portal:
[C][mdns:115]: mDNS:
[C][mdns:116]:   Hostname: m5-dial
[C][ota:096]: Over-The-Air Updates:
[C][ota:097]:   Address: 10.0.0.144:3232
[C][ota:103]:   OTA version: 2.
[W][ota:107]: Last Boot was an unhandled reset, will proceed to safe mode in 5 restarts
[C][api:139]: API Server:
[C][api:140]:   Address: 10.0.0.144:6053
[C][api:144]:   Using noise encryption: NO
[C][improv_serial:032]: Improv Serial:
############## hier eine lange Pause, in der nichts passiert
############## dann
[D][api:102]: Accepted 10.0.0.25
[W][api:165]: Warning cleared
[D][DISPLAY:093]: refresh Display: Speed-Modus
[I][DISPLAY:058]: Sleep after 45000 ms
[D][api.connection:1159]: Home Assistant 2024.4.3 (10.0.0.25): Connected successfully
[I][HA_API:110]: Got State off for fan.unten_arbeitszimmer_deckenfans
[I][HA_API:127]: Got Percentage value 50 for fan.unten_arbeitszimmer_deckenfans
############## während das hier passiert, ist der Dial benutzbar,
############## die Änderungen werden im Home Assistant aber nicht übernommen
############## per ping ist das Gerät momentan NICHT erreichbar

############## Da ich nicht mehr sicher war, ob ich __sämtliche__ vorgeschlagenen
############## Änderungen bereits übernommen hatte, habe ich das Gerät noch mal
############## neu geflasht; es folgt der Log mit frischer Firmware

[I][logger:158]: Log initialized
[C][ota:483]: There have been 0 suspected unsuccessful boot attempts.
[D][esp32.preferences:114]: Saving 1 preferences to flash...
[D][esp32.preferences:143]: Saving 1 preferences [I][app:102]: ESPHome version 2024.3.2 compiled on Apr 15 2024, 09:55:50
[I][app:104]: Project smarthomeyourself.m5_dial version 1.0
[C][wifi:580]: WiFi:
[C][wifi:408]:   Local MAC: ja
[C][wifi:413]:   SSID: [redacted]
[C][wifi:416]:   IP Address: 10.0.0.144
[C][wifi:420]:   BSSID: [redacted]
[C][wifi:421]:   Hostname: 'm5-dial'
[C][wifi:423]:   Signal strength: -64 dB ▂▄▆█
[C][wifi:427]:   Channel: 6
[C][wifi:428]:   Subnet: 255.255.255.0
[C][wifi:429]:   Gateway: 10.0.0.1
[C][wifi:430]:   DNS1: 0.0.0.0
[C][wifi:431]:   DNS2: 0.0.0.0
[C][logger:166]: Logger:
[C][logger:167]:   Level: DEBUG
[C][logger:169]:   Log Baud Rate: 115200
[C][logger:170]:   Hardware UART: USB_CDC
[C][shys_m5_dial:042]: -----------------------------------
[C][shys_m5_dial:043]: Shys M5 Dial
[C][shys_m5_dial:044]: -----------------------------------
[C][captive_portal:088]: Captive Portal:
[C][mdns:115]: mDNS:
[C][mdns:116]:   Hostname: m5-dial
[C][ota:096]: Over-The-Air Updates:
[C][ota:097]:   Address: 10.0.0.144:3232
[C][ota:103]:   OTA version: 2.
[C][api:139]: API Server:
[C][api:140]:   Address: 10.0.0.144:6053
[C][api:144]:   Using noise encryption: NO
[C][improv_serial:032]: Improv Serial:
############## vor dem Abschicken habe ich noch mal in die Logs geschaut
############## dass eine Verbindung zu Home Assistant succesfull war, wundert
############## mich, denn über die gesamte Dauer war das Gerät wieder 
############## gar nicht anpingbar;
############## zum Zeitpunkt des folgenden Log-Parts ist und bleibt das
############## Display übrigens schwarz,  auch kein Pipen wird ausgegeben
[D][api:102]: Accepted 10.0.0.25
[W][api:165]: Warning cleared
[I][DISPLAY:058]: Sleep after 45000 ms
[D][DISPLAY:093]: refresh Display: Speed-Modus
[D][api.connection:1159]: Home Assistant 2024.4.3 (10.0.0.25): Connected successfully
[W][api.connection:104]: Home Assistant 2024.4.3 (10.0.0.25): Connection closed
[W][api:152]: Warning set: unspecified
[D][HA_API:284]: API is not connected
############## es folgt ein RESET DEVICE
[I][ota:117]: Boot seems successful, resetting boot loop counter.
[D][esp32.preferences:114]: Saving 1 preferences to flash...
[D][esp32.preferences:143]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x15 (USB_UART_CHIP_RESET),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x420aedca
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3808,len:0x43c
load:0x403c9700,len:0xbec
load:0x403cc700,len:0x2a3c
entry 0x403c98d8
[I][logger:158]: Log initialized
[C][ota:483]: There have been 0 suspected unsuccessful boot attempts.
[D][esp32.preferences:114]: Saving 1 preferences to flash...
[D][esp32.preferences:143]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed
[I][DEVICE:139]: setScreenOffTime 45000
[I][DEVICE:145]: setLongPressDuration 1200
[I][DEVICE:151]: setApiSendDelay 1200
[I][DEVICE:156]: setApiSendLock 3000
[I][DEVICE:161]: setRotaryStepWidth 5
[I][DEVICE:166]: setFontName t.�?
[I][DEVICE:171]: setFontFactor 1
[W][DEVICE:051]: Modes JSON: {"speed_mode": {"changeable_direction": false, "rotary_step_width": 10}}
[D][DEVICE:115]: New Device: Decke
[D][HA_DEVICE:017]: Init Fan: fan.unten_arbeitszimmer_deckenfans
[D][DEVICE:126]: Device added
[I][app:029]: Running through setup()...
[I][DEVICE:243]: Initialisierung...
[I][DEVICE:248]: Register Callbacks...
[D][DEVICE:027]: register on_rotary_left Callback
[D][DEVICE:022]: register on_rotary_right Callback
[D][DEVICE:032]: register on_short_button_press Callback
[D][DEVICE:037]: register on_long_button_press Callback
[D][DEVICE:030]: register on_touch Callback
[D][DEVICE:034]: register on_swipe Callback
[I][log:018]: M5 is initialized
[C][wifi:038]: Setting up WiFi...
[C][wifi:051]: Starting WiFi...
[C][wifi:052]:   Local MAC: ja
[D][wifi:462]: Starting scan...
[W][wifi:152]: Warning set: unspecified
[D][wifi:292]: Network is not connected
[D][wifi:477]: Found networks:
[I][wifi:521]: - 'meinnetzwerk' [redacted]▂▄▆█
[D][wifi:522]:     Channel: 6
[D][wifi:523]:     RSSI: -57 dB
[I][wifi:521]: - 'meinnetzwerk' [redacted]▂▄▆█
[D][wifi:522]:     Channel: 6
[D][wifi:523]:     RSSI: -67 dB
[I][wifi:521]: - 'meinnetzwerk' [redacted]▂▄▆█
[D][wifi:522]:     Channel: 11
[D][wifi:523]:     RSSI: -77 dB
[D][wifi:526]: - [redacted] [redacted]▂▄▆█
[D][wifi:526]: - [redacted] [redacted]▂▄▆█
[D][wifi:526]: - [redacted] [redacted]▂▄▆�[D][wifi:526]: - [redacted] [redacted]][wifi:526]: - [redacted] [redacted][D][wifi:526]: - [redacted] [redacted]][wifi:526]: - [redacted] 0;36m[D][wifi:526]: - [redacted] [redacted][D][wifi:526]: - [redacted] [redacted]▂▄▆█
[D][wifi:526]: - [redacted] [redacted]][wifi:526]: - [redacted] [redacted][D][wifi:526]: - [redacted] [redacted][I][wifi:303]: WiFi Connecting to 'meinnetzwerk'...
[I][wifi:594]: WiFi Connected!
[C][wifi:408]:   Local MAC: ja
[C][wifi:413]:   SSID: [redacted]
[C][wifi:416]:   IP Address: 10.0.0.144
[C][wifi:420]:   BSSID: [redacted]
[C][wifi:421]:   Hostname: 'm5-dial'
[C][wifi:423]:   Signal strength: -55 dB ▂▄▆█
[C][wifi:427]:   Channel: 6
[C][wifi:428]:   Subnet: 255.255.255.0
[C][wifi:429]:   Gateway: 10.0.0.1
[C][wifi:430]:   DNS1: 0.0.0.0
[C][wifi:431]:   DNS2: 0.0.0.0
[D][wifi:603]: Disabling AP...
[D][HA_API:284]: API is not connected
[C][ota:096]: Over-The-Air Updates:
[C][ota:097]:   Address: 10.0.0.144:3232
[C][ota:103]:   OTA version: 2.
[C][api:025]: Setting up Home Assistant API server...
[I][app:062]: setup() finished successfully!
[W][wifi:165]: Warning cleared
[W][api:152]: Warning set: unspecified
[I][app:102]: ESPHome version 2024.3.2 compiled on Apr 15 2024, 09:55:50
[I][app:104]: Project smarthomeyourself.m5_dial version 1.0
[C][wifi:580]: WiFi:
[C][wifi:408]:   Local MAC: ja
[C][wifi:413]:   SSID: [redacted]
[C][wifi:416]:   IP Address: 10.0.0.144
[C][wifi:420]:   BSSID: [redacted]
[C][wifi:421]:   Hostname: 'm5-dial'
[C][wifi:423]:   Signal strength: -57 dB ▂▄▆█
[C][wifi:427]:   Channel: 6
[C][wifi:428]:   Subnet: 255.255.255.0
[C][wifi:429]:   Gateway: 10.0.0.1
[C][wifi:430]:   DNS1: 0.0.0.0
[C][wifi:431]:   DNS2: 0.0.0.0
[C][logger:166]: Logger:
[C][logger:167]:   Level: DEBUG
[C][logger:169]:   Log Baud Rate: 115200
[C][logger:170]:   Hardware UART: USB_CDC
[C][shys_m5_dial:042]: -----------------------------------
[C][shys_m5_dial:043]: Shys M5 Dial
[C][shys_m5_dial:044]: -----------------------------------
[C][captive_portal:088]: Captive Portal:
[C][mdns:115]: mDNS:
[C][mdns:116]:   Hostname: m5-dial
[C][ota:096]: Over-The-Air Updates:
[C][ota:097]:   Address: 10.0.0.144:3232
[C][ota:103]:   OTA version: 2.
[C][api:139]: API Server:
[C][api:140]:   Address: 10.0.0.144:6053
[C][api:144]:   Using noise encryption: NO
[C][improv_serial:032]: Improv Serial:
############## dann plötzlich
[D][api:102]: Accepted 10.0.0.25
[W][api:165]: Warning cleared
[D][DISPLAY:093]: refresh Display: Speed-Modus
[D][api.connection:1159]: Home Assistant 2024.4.3 (10.0.0.25): Connected successfully
[I][DISPLAY:058]: Sleep after 45000 ms
############## allerdings DIREKT gefolgt von
[W][api.connection:104]: Home Assistant 2024.4.3 (10.0.0.25): Connection closed
[W][api:152]: Warning set: unspecified
[D][HA_API:284]: API is not connected
############## während das Display gerade noch die Fan-Entität zeigte,
############## ist das Display jetzt wieder komplett schwarz und das
############## Dial quasi "tot"
##############
############## PAUSE
##############
##############
############## auf einmal:
[D][api:102]: Accepted 10.0.0.25
[W][api:165]: Warning cleared
[I][DEVICE:056]: Rotary right
[I][DISPLAY:062]: Display on
[D][api.connection:1159]: Home Assistant 2024.4.3 (10.0.0.25): Connected successfully
############## das Display zeigt wieder den Fan an, dieser lässt sich aber nicht
############## steuern; nach einigen Sekunden wechselt das Display jetzt
############## zu DISCONNECTED
############## dann folgt
[W][api.connection:104]: Home Assistant 2024.4.3 (10.0.0.25): Connection closed
[W][api:152]: Warning set: unspecified
[D][HA_API:284]: API is not connected
############## kannst Du mit dem set: unspecified etwas anfangen?
############## das Gerät war die gesamte Zeit über (also im Laufe
############## dieses Logfiles) nicht anpingbar, auch dann nicht,
############## wenn es angeblich mit Home Assistant verbunden war
##############
##############
############## PAUSE
##############
############## Ich habe nun noch einmal den safe mode boot forciert
[I][logger:158]: Log initialized
[C][ota:483]: There have been 10 suspected unsuccessful boot attempts.
[D][esp32.preferences:114]: Saving 1 preferences to flash...
[D][esp32.preferences:143]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed
[E][ota:490]: Boot loop detected. Proceeding to safe mode.
[E][ota:159]: Error set: unspecified
[I][app:029]: Running through setup()...
[C][wifi:038]: Setting up WiFi...
[C][wifi:051]: Starting WiFi...
[C][wifi:052]:   Local MAC: C0:4E:30:12:BA:68
[D][wifi:462]: Starting scan...
[W][wifi:152]: Warning set: unspecified
[W][ota:107]: Last Boot was an unhandled reset, will proceed to safe mode in 0 restarts
[W][wifi_esp32:482]: Event: Disconnected ssid='meinnetzwerk' bssid=[redacted] reason='4-Way Handshake Timeout'
[W][wifi:153]: WiFi Connection lost... Reconnecting...
[I][wifi:303]: WiFi Connecting to 'meinnetzwerk'...
[W][wifi:152]: Warning set: unspecified
[W][wifi_esp32:482]: Event: Disconnected ssid='meinnetzwerk' bssid=[redacted] reason='Auth Expired'
[W][wifi:630]: Error while connecting to network.
[D][wifi:673]: Retrying with hidden networks...
[I][wifi:303]: WiFi Connecting to 'meinnetzwerk'...
[W][wifi_esp32:482]: Event: Disconnected ssid='meinnetzwerk' bssid=[redacted] reason='Association Expired'
[W][wifi:651]: WiFi Unknown connection status 0
[I][wifi:303]: WiFi Connecting to 'meinnetzwerk'...
[W][wifi_esp32:482]: Event: Disconnected ssid='meinnetzwerk' bssid=[redacted] reason='Association Expired'
[W][wifi:651]: WiFi Unknown connection status 0
[I][wifi:303]: WiFi Connecting to 'meinnetzwerk'...
[W][wifi_esp32:482]: Event: Disconnected ssid='meinnetzwerk' bssid=[redacted] reason='4-Way Handshake Timeout'
[W][wifi:651]: WiFi Unknown connection status 0
[D][wifi:673]: Retrying with hidden networks...
[I][wifi:303]: WiFi Connecting to 'meinnetzwerk'...
[W][wifi_esp32:482]: Event: Disconnected ssid='meinnetzwerk' bssid=[redacted] reason='Auth Expired'
[W][wifi:630]: Error while connecting to network.
[D][wifi:673]: Retrying with hidden networks...
[I][wifi:303]: WiFi Connecting to 'meinnetzwerk'...
I][wifi:594]: WiFi Connected!
[C][wifi:408]:   Local MAC: C0:4E:30:12:BA:68
[C][wifi:413]:   SSID: [redacted]
[C][wifi:416]:   IP Address: 10.0.0.144
[C][wifi:420]:   BSSID: [redacted]
[C][wifi:421]:   Hostname: 'm5-dial'
[C][wifi:423]:   Signal strength: -63 dB ▂▄▆█
[C][wifi:427]:   Channel: 6
[C][wifi:428]:   Subnet: 255.255.255.0
[C][wifi:429]:   Gateway: 10.0.0.1
[C][wifi:430]:   DNS1: 0.0.0.0
[C][wifi:431]:   DNS2: 0.0.0.0
[D][wifi:603]: Disabling AP...
[W][wifi:165]: Warning cleared
[W][wifi_esp32:482]: Event: Disconnected ssid='meinnetzwerk' bssid=[redacted] reason='4-Way Handshake Timeout'
[W][wifi:153]: WiFi Connection lost... Reconnecting...
[I][wifi:303]: WiFi Connecting to 'meinnetzwerk'...
[W][wifi:152]: Warning set: unspecified
[W][wifi_esp32:482]: Event: Disconnected ssid='meinnetzwerk' bssid=[redacted] reason='Auth Expired'
[W][wifi:630]: Error while connecting to network.
[D][wifi:673]: Retrying with hidden networks...
[I][wifi:303]: WiFi Connecting to 'meinnetzwerk'...
############## jetzt noch einmal RESET DEVICE
############## nach dem Reset zeigt das Display den Fan an
############## allerdings ohne diesen zu steuern
############## ich habe ein Statusupdate forciert, indem ich
############## über Home Assistant getoggled habe; das hat keine
############## Änderung auf dem Bildschirm des Dials ergeben
ESP-ROM:esp32s3-20210327
Build:Mar 27 2021
rst:0x15 (USB_UART_CHIP_RESET),boot:0x8 (SPI_FAST_FLASH_BOOT)
Saved PC:0x403807ad
SPIWP:0xee
mode:DIO, clock div:1
load:0x3fce3808,len:0x43c
load:0x403c9700,len:0xbec
load:0x403cc700,len:0x2a3c
entry 0x403c98d8
[I][logger:158]: Log initialized
[C][ota:483]: There have been 0 suspected unsuccessful boot attempts.
[D][esp32.preferences:114]: Saving 1 preferences to flash...
[D][esp32.preferences:143]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed
[I][DEVICE:139]: setScreenOffTime 45000
[I][DEVICE:145]: setLongPressDuration 1200
[I][DEVICE:151]: setApiSendDelay 1200
[I][DEVICE:156]: setApiSendLock 3000
[I][DEVICE:161]: setRotaryStepWidth 5
[I][DEVICE:166]: setFontName t.�?
[I][DEVICE:171]: setFontFactor 1
[W][DEVICE:051]: Modes JSON: {"speed_mode": {"changeable_direction": false, "rotary_step_width": 10}}
[D][DEVICE:115]: New Device: Decke
[D][HA_DEVICE:017]: Init Fan: fan.unten_arbeitszimmer_deckenfans
[D][DEVICE:126]: Device added
[I][app:029]: Running through setup()...
[I][DEVICE:243]: Initialisierung...
[I][DEVICE:248]: Register Callbacks...
[D][DEVICE:027]: register on_rotary_left Callback
[D][DEVICE:022]: register on_rotary_right Callback
[D][DEVICE:032]: register on_short_button_press Callback
[D][DEVICE:037]: register on_long_button_press Callback
[D][DEVICE:030]: register on_touch Callback
[D][DEVICE:034]: register on_swipe Callback
[I][log:018]: M5 is initialized
[C][wifi:038]: Setting up WiFi...
[C][wifi:051]: Starting WiFi...
[C][wifi:052]:   Local MAC: C0:4E:30:12:BA:68
[D][wifi:462]: Starting scan...
[W][wifi:152]: Warning set: unspecified
[D][wifi:292]: Network is not connected
[D][wifi:477]: Found networks:
[I][wifi:521]: - 'meinnetzwerk' [redacted]▂▄▆█
[D][wifi:522]:     Channel: 6
[D][wifi:523]:     RSSI: -58 dB
[I][wifi:521]: - 'meinnetzwerk' [redacted]▂▄▆█
[D][wifi:522]:     Channel: 6
[D][wifi:523]:     RSSI: -66 dB
[D][wifi:526]: - [redacted] [redacted]▂▄▆█
[D][wifi:526]: - [redacted] [redacted]▂▄▆█
[D][wifi:526]: - [redacted] [redacted]▂▄▆█
[D][wifi:526]: - [redacted] [redacted][D][wifi:526]: - [redacted] [redacted][D][wifi:526]: - [redacted] 
[D][wifi:526]: - [redacted] [redacted]▂▄▆█
[D][wifi:526]: - [redacted] [redacted][D][wifi:526]: - [redacted] [redacted]][wifi:526]: - [redacted] [redacted][I][wifi:303]: WiFi Connecting to 'meinnetzwerk'...
[I][wifi:594]: WiFi Connected!
[C][wifi:408]:   Local MAC: C0:4E:30:12:BA:68
[C][wifi:413]:   SSID: [redacted]
[C][wifi:416]:   IP Address: 10.0.0.144
[C][wifi:420]:   BSSID: [redacted]
[C][wifi:421]:   Hostname: 'm5-dial'
[C][wifi:423]:   Signal strength: -57 dB ▂▄▆█
[C][wifi:427]:   Channel: 6
[C][wifi:428]:   Subnet: 255.255.255.0
[C][wifi:429]:   Gateway: 10.0.0.1
[C][wifi:430]:   DNS1: 0.0.0.0
[C][wifi:431]:   DNS2: 0.0.0.0
[D][wifi:603]: Disabling AP...
[D][HA_API:284]: API is not connected
[C][ota:096]: Over-The-Air Updates:
[C][ota:097]:   Address: 10.0.0.144:3232
[C][ota:103]:   OTA version: 2.
[C][api:025]: Setting up Home Assistant API server...
[I][app:062]: setup() finished successfully!
[W][wifi:165]: Warning cleared
[W][api:152]: Warning set: unspecified
[I][app:102]: ESPHome version 2024.3.2 compiled on Apr 15 2024, 09:55:50
[I][app:104]: Project smarthomeyourself.m5_dial version 1.0
[C][wifi:580]: WiFi:
[C][wifi:408]:   Local MAC: C0:4E:30:12:BA:68
[C][wifi:413]:   SSID: [redacted]
[C][wifi:416]:   IP Address: 10.0.0.144
[C][wifi:420]:   BSSID: [redacted]
[C][wifi:421]:   Hostname: 'm5-dial'
[C][wifi:423]:   Signal strength: -62 dB ▂▄▆█
[C][wifi:427]:   Channel: 6
[C][wifi:428]:   Subnet: 255.255.255.0
[C][wifi:429]:   Gateway: 10.0.0.1
[C][wifi:430]:   DNS1: 0.0.0.0
[C][wifi:431]:   DNS2: 0.0.0.0
[C][logger:166]: Logger:
[C][logger:167]:   Level: DEBUG
[C][logger:169]:   Log Baud Rate: 115200
[C][logger:170]:   Hardware UART: USB_CDC
[C][shys_m5_dial:042]: -----------------------------------
[C][shys_m5_dial:043]: Shys M5 Dial
[C][shys_m5_dial:044]: -----------------------------------
[C][captive_portal:088]: Captive Portal:
[C][mdns:115]: mDNS:
[C][mdns:116]:   Hostname: m5-dial
[C][ota:096]: Over-The-Air Updates:
[C][ota:097]:   Address: 10.0.0.144:3232
[C][ota:103]:   OTA version: 2.
[C][api:139]: API Server:
[C][api:140]:   Address: 10.0.0.144:6053
[C][api:144]:   Using noise encryption: NO
[C][improv_serial:032]: Improv Serial:
[D][api:102]: Accepted 10.0.0.25
[W][api:165]: Warning cleared
[D][DISPLAY:093]: refresh Display: Speed-Modus
[D][api.connection:1159]: Home Assistant 2024.4.3 (10.0.0.25): Connected successfully
[I][DEVICE:056]: Rotary right
[D][DEVICE:150]: HaDevice.onRotary: right
[D][DEVICE:089]: set direction: forward
[I][HA_API:325]: fan direction: forward for fan.unten_arbeitszimmer_deckenfans
[D][DISPLAY:093]: refresh Display: Speed-Modus
[I][DEVICE:056]: Rotary right
[D][DEVICE:150]: HaDevice.onRotary: right
[D][DISPLAY:093]: refresh Display: Speed-Modus
[I][DEVICE:056]: Rotary right
[D][DEVICE:150]: HaDevice.onRotary: right
[D][DISPLAY:093]: refresh Display: Speed-Modus
[I][DEVICE:056]: Rotary right
[D][DEVICE:150]: HaDevice.onRotary: right
[D][DISPLAY:093]: refresh Display: Speed-Modus
[I][DEVICE:056]: Rotary right
[D][DEVICE:150]: HaDevice.onRotary: right
[D][DISPLAY:093]: refresh Display: Speed-Modus
[I][DEVICE:056]: Rotary right
[D][DEVICE:150]: HaDevice.onRotary: right
[D][DISPLAY:093]: refresh Display: Speed-Modus
[I][DEVICE:056]: Rotary right
[D][DEVICE:150]: HaDevice.onRotary: right
[D][DISPLAY:093]: refresh Display: Speed-Modus
[I][HA_API:344]: fan speed: 70 for fan.unten_arbeitszimmer_deckenfans
[I][DEVICE:059]: Rotary left
[D][DEVICE:150]: HaDevice.onRotary: left
[D][DISPLAY:093]: refresh Display: Speed-Modus
[I][DEVICE:059]: Rotary left
[D][DEVICE:150]: HaDevice.onRotary: left
[D][DISPLAY:093]: refresh Display: Speed-Modus
[I][DEVICE:059]: Rotary left
[D][DEVICE:150]: HaDevice.onRotary: left
[D][DISPLAY:093]: refresh Display: Speed-Modus
[I][DEVICE:059]: Rotary left
[D][DEVICE:150]: HaDevice.onRotary: left
[D][DISPLAY:093]: refresh Display: Speed-Modus
[I][HA_API:344]: fan speed: 30 for fan.unten_arbeitszimmer_deckenfans
[W][api.connection:104]: Home Assistant 2024.4.3 (10.0.0.25): Connection closed
[W][api:152]: Warning set: unspecified
[D][HA_API:284]: API is not connected
############## jetzt steht es wieder auf DISCONNECTED
prankousky commented 2 months ago

Noch mal ein neuer Post, damit es nicht zu unübersichtlich wird... JETZT, also nachdem ich das alles abgeschickt hatte, ist das Gerät kurzzeitig funktionell.

Ich konnte den Fan ein- und ausschalten; dann wollte ich die Prozentzahl abändern, da war aber schon wieder Schluss. Also konnte ich dann auch nicht mehr in die Logs gucken. Anpingbar war das Gerät dann ebenfalls nicht mehr.

Nach einem weiteren Neustart (USB raus und wieder rein) war die Anzeige sofort wieder auf Fan, also kein -- oder wenn, dann nur minimal, konnte ich nicht genau sehen -- OFFLINE oder DISCONNECTED.

Der Ping war ganz kurz da

grafik

Und es gab folgenden Minilog

INFO ESPHome 2024.3.2 INFO Reading configuration /config/esphome/esphome-web-12b6c4.yaml... INFO Starting log output from 10.0.0.144 using esphome API INFO Successfully connected to m5-dial @ 10.0.0.144 in 7.637s WARNING Can't connect to ESPHome API for m5-dial @ 10.0.0.144: Timeout waiting for HelloResponse, ConnectResponse after 30.0s (TimeoutAPIError) INFO Trying to connect to m5-dial @ 10.0.0.144 in the background WARNING m5-dial @ 10.0.0.144: Connection error occurred: m5-dial @ 10.0.0.144: Connection lost

Das Gerät muss immer mal wieder zwischendurch kurz eine Verbindung zu Home Assistant hergestellt haben

grafik

Das Gerät funktioniert aktuell sporadisch. Von 10 Drehern / Touches wird vielleicht 1 - 2 registriert; im Log steht zwar nichts davon, aber die Verbindung ist immer wieder weg. Wenn ich das Fenster schließe und den Log neu aufrufe, kriege ich wieder etwas Output (nichts abweichend von dem zuvor geposteten), dann kommt irgendwann einfach nichts mehr... also auch kein "Disconnected" oder so, der Log wird einfach nicht weiter übertragen.

Eben wurden dann diverse Aktionen zugleich ausgeführt. Ich habe ein bisschen am Rad gedreht, dann gedrückt, gedreht, gedrückt, und plötzlich habe ich die Relais des Fans klicken gehört, weil es anscheinend plötzlich all diese Aktionen direkt hintereinander ausgeführt hat. Also an, schneller, noch schneller, aus, wieder an, usw.


Jetzt ist ein wenig Zeit vergangen, während ich diesen letzten Kommentar geschrieben habe. Plötzlich funktioniert das Gerät einwandfrei. Seltsamerweise ist es immer noch nicht anpingbar, aber Änderungen werden sofort übertragen.

Das heißt, wenn ich bsp. zwischen 0% und 33% wechsle, schaltet sich der Fan tatsächlich auch ein und umgekehrt wieder aus. Wenn ich über den Home Assistant toggle, wird unverzüglich auf dem Display ebenfalls von bsp. 0% auf 33% gewechselt. Also kein Delay wie vorhin noch, sondern es klappt sofort.

Das große ABER: ich habe in der Zwischenzeit ja nichts geändert. Das ist immer noch die neu geflashte Konfiguration aus dem vorherigen Post. Seitdem ist das Gerät bestimmt seit mindestens 45 Minuten mit Strom versorgt (erst vom PC, dann per Steckdose), aber hat nie richtig funktioniert. Auf einmal funktioniert es nun.

Was mich wirklich wundert, ist, dass es immer noch nicht anpingbar ist. Der Ping läuft ins Leere. Also gar kein Output, weder rote Balken, noch sonstwas, einfach gar kein Output. Zur selben Zeit ist aber eine Verbindung da, denn der Fan wird geschaltet.

Ich kann der Tatsache, dass der Dial anscheinend einfach so lange braucht, um sich fest mit dem Netzwerk zu verbinden, nicht ganz folgen. Also dass es auf einmal problemlos läuft. War heute Vormittag ja genau so -- auf einmal lief alles. Dann habe ich die Konfiguration geändert, neu geflasht, es ging wieder nichts, und plötzlich läuft es wieder.

Wenn ich jetzt wüsste, ich muss jeweils neu flashen, dann die Stromversorgung wechseln, dann läuft es, wäre das ja schon ein Schritt in die richtige Richtung... Aber dass es ja trotzdem eine relativ große Zeitspanne braucht, bis man die Änderungen in der Config dann live auf dem Gerät testen kann, ist natürlich zum Ausprobieren nicht ganz so vorteilhaft.


Um Deine Frage beantworten zu können, habe ich eben noch den anderen Dial neu geflasht. Dieselbe Konfiguration wie zuvor gepostet, nur use_address und static_ip entsprechend abgeändert.

Das Gerät wurde nach dem Wechsel der Stromversorgung relativ zeitnah von Home Assistant erkannt; das Hinzufügen hat einen Powercycle benötigt, dann klappte es. Allerdings sendet das Gerät wohl keine Updates:

grafik

Hier müsste wieder die Firmware angezeigt werden. Die Erlaubnis für Service Calls habe ich gegeben, das Gerät zeigt den Fan auch an -- aber er ist nicht steuerbar. Ich habe die Integration neu geladen, was keinen Unterschied gemacht hat. Das Gerät wechselt aktuell immer zwischen Anzeige des Fans und DISCONNECTED hin und her.

Für heute mache ich Schluß. Beide Geräte sind geflasht und sollten so funktionieren (denn nach der beschriebenen Wartezeit ging der erste Dial ja, was für mich heißt, der zweite, mit derselben Firmware, sollte auch laufen). Ich werde morgen Vormittag weiter testen. Wenn es "nur" eine gewisse Wartezeit braucht, bis die Dials verbunden sind, könnte man ja damit arbeiten - aber ich hoffe, dass mir morgen noch irgend etwas auffällt, was bisher übersehen blieb. Schönen Abend :)

PaulMofers commented 2 months ago

For me it is almost the same. A lot of times disconnected. If it works it works slow and only a few of the dials or clicks show up in the logs. Sometimes the action works, but most of the times not. Almost as it is overloaded and can not handle it anymore. Sometimes waiting helps and you can see a dial or whatever does the action. What does work is that the changes in the display keep working but not the actual action to dim or change color or switch the light on/off. Also the device looses the connection to the ha api.

prankousky commented 2 months ago

@PaulMofers summarizes the issues my devices show very well.

When did you purchase your dial? I ordered mine around the beginning of April 2024 or at the very earliest mid March.

How many entities does your Home Assistant have? I believe we need to pinpoint why @danielscheidler does not have any issues, but we do.

Possible reasons

  1. his m5 dials are built differently, due to him ordering earlier versions. This would mean that his custom firmware simply does not work as well with our devices.
  2. his infrastructure differs considerably from ours; for example, we have way more entities than he does and it somehow "confuses" (for a lack of better words) the dial
  3. something network / VLAN related I am crossing this out right away because I first had my dial in a different VLAN than my Home Assistant; to assure that this was not the case, I changed the wifi network (and thus VLAN) of the device to be in the same network as HA
  4. power supply crossing this out as well. Daniel wrote that he often powers his devices via regular USB. I have used my computers USB and an Anker USB power supply (you connect it to an outlet and it provides several USB ports to charge / power your devices). Both these should have provided ~5V. According to the packing, the m5 dial should support 6-36V. So I also tested a lab power supply and supplied between 6V and 12V; I didn't want to go higher than that, even though it's supposedly supported, because what's the point? If it works for Daniel with 5V but not for me with 12V, this should not be causing the issue, either.

Perhaps we can compare the output of the code below? I just googled a quick way to count different entities. Code at the bottom of this post, output right here:

                94 lights

                3840 sensors

                126 automations

                63 scripts

                304 switches

                266 binary sensors

                94 lights

                15 device trackers

I don't feel like this is a lot. Considering that Daniel is a youtuber, he will likely have way more entities than me. But I am just trying to find the reason why it works for him, not for me or rather for us.

((just realized I got lights in there twice))

Then perhaps it could be the amount of devices on the network? Perhaps Daniel has a better infrastructure and/or we have just too much traffic resulting in the m5 dial to keep disconnecting? I doubt that this is the case as well, but just to be safe:

I have multiple UniFi APs around the house; they are powered via PoE+ by an UniFi 24 switch. Firewall is pfSense on a dedicated machine (not virtualized, running on bare metal).

At the moment, this is my count

That should not be too much, either. But again, just trying to find a common ground here.

So yeah, I kinda mentioned this again, but it feels like this might really be the case: does m5 change their hardware without making these changes clear to the customer? I have four m5 atom echo devices. I bought them to use as voice assistants. All of them don't work quite as expected. They are sluggish and audio feedback is terrible. However, they are one of the devices officially mentioned by ESPHome and I didn't mess with the default code -- so they should work fine out of the box, correct?

Now the same happens with these m5 dials. Daniel has produced multiple videos about this project. It looks so cool and works without issues for him. So even though I was already skeptic about m5, I bought two dials to test this. Both dials don't work as expected, causing problems that the original creator (who - naturally - has purchased his devices way earlier than I did) does not have.

It feels like people buy some generation of these devices and create firmwares for them (ESPHome voice assistant); then some time passes and the hardware changes. Why else would there be countless videos of the m5 atom echo as voice assistant working just fine, but when I order multiple devices (months !! afters these videos have been released), none of those atom echos work as well as they did in the videos?

And now the same with the dials. While I have no idea whether this is the case, I feel like it might most likely be a possibility.

Lastly: @danielscheidler I have two of these, both working equally badly. We are both located in Germany (or well, I am, just assuming you are as well). I could send you one of my devices so that you can have a look at it and then mail it back to me. Would you want to do this? I am on your discord, I will link this github issue there after submitting my post here. Wed Apr 24, around 08:00, in the CHATS>>smarthome channel. So if you want, you can contact me there and give me your address or Packstation or whatever and I'll send you the device to look at.


           {%- set domains = ['light'] -%}
          {%- for domain in domains -%}
            {%- for item in states[domain] -%}
              {% if loop.first %}
                {{loop.length}} lights
              {% endif %}
            {%- endfor -%}
          {%- endfor -%}
                    {%- set domains = ['sensor'] -%}
          {%- for domain in domains -%}
            {%- for item in states[domain] -%}
              {% if loop.first %}
                {{loop.length}} sensors
              {% endif %}
            {%- endfor -%}
          {%- endfor -%}
          {%- set domains = ['automation'] -%}
          {%- for domain in domains -%}
            {%- for item in states[domain] -%}
              {% if loop.first %}
                {{loop.length}} automations
              {% endif %}
            {%- endfor -%}
          {%- endfor -%}

          {%- set domains = ['script'] -%}
          {%- for domain in domains -%}
            {%- for item in states[domain] -%}
              {% if loop.first %}
                {{loop.length}} scripts
              {% endif %}
            {%- endfor -%}
          {%- endfor -%}

          {%- set domains = ['switch'] -%}
          {%- for domain in domains -%}
            {%- for item in states[domain] -%}
              {% if loop.first %}
                {{loop.length}} switches
              {% endif %}
            {%- endfor -%}
          {%- endfor -%}

          {%- set domains = ['binary_sensor'] -%}
          {%- for domain in domains -%}
            {%- for item in states[domain] -%}
              {% if loop.first %}
                {{loop.length}} binary sensors
              {% endif %}
            {%- endfor -%}
          {%- endfor -%}

          {%- set domains = ['light'] -%}
          {%- for domain in domains -%}
            {%- for item in states[domain] -%}
              {% if loop.first %}
                {{loop.length}} lights
              {% endif %}
            {%- endfor -%}
          {%- endfor -%}

          {%- set domains = ['device_tracker'] -%}
          {%- for domain in domains -%}
            {%- for item in states[domain] -%}
              {% if loop.first %}
                {{loop.length}} device trackers
              {% endif %}
            {%- endfor -%}
          {%- endfor -%}        
danielscheidler commented 2 months ago

Not realy more ;) Not all of tested products find their way in my productive system.

120 lights
1140 sensors
151 automations
60 scripts
350 switches
326 binary sensors
120 lights
189 device trackers

But these counts are not the problem. The Dial only pulls the Values of the devices, it handles and only the values, it needs to work.

I think the problem is more likely to be in the network or power supply area, although you have already tested a few things with regard to the power supply. And my Dial has been connected to the PC's USB (3.0) for a long time now so that I can flash faster via cable while I'm developing.

PaulMofers commented 2 months ago

Power supply is no issue. It could be the network, also Unifi, as i understand prankousky also uses, but then this would be the only thing that has these problems. Edit: On other thing noticed. Flashing the m5stack dial i could a few times update over air, but most of the time i get a time out to, so only able to flash it connected via usb.

PaulMofers commented 2 months ago

Screenshot_20240424-162736

To me it looks as if most likely it does not work ok between the home assistant api and the dial

prankousky commented 1 month ago

Has anybody found any improvements? I wasn't able to fix anything / find any hint on how to, but I don't want these m5stack dials to become the same paperweights as the m5stack atom echos.

danielscheidler commented 1 month ago

Es ist schwer für mich etwas zu fixen, was ich nicht nachvollziehen kann.

image

Schick mir aber bitte noch mal ein vollständiges Log an dial@smarthomeyourself.de

Wenn es dort durch den Code zu Abstürzen kommt, kann ich diese natürlich korrigieren. Wenn aber schon Pings nicht durchgehen, habe ich hier eher das Netzwerk im Verdacht und da kann ich wenig dran tun.

prankousky commented 1 month ago

@danielscheidler Sorry, falls das falsch rüber kam. Das war jetzt nicht so gemeint "ey, mach mal hin" und direkt an Dich gerichtet, sondern eher, ob irgendjemand irgend etwas herausgefunden hat; also bsp. @PaulMofers scheint ja auch ähnliche Probleme zu haben, wie ich.

An den bisherigen Logs hat sich soweit erst mal nichts geändert. Nutzt Du im Code bezüglich des Netzwerkes / WiFi irgend etwas, was nicht dem Standard entspricht bzw. ggf. freigeschaltet werden muss? UniFi hat zum Beispiel verschiedene Einstellungen bezüglich der WLAN Netzwerke, vielleicht hapert es daran (denn, soweit ich das jetzt richtig in Erinnerung habe, nutzt auch Paul UniFi, wie ich). Es könnte ja sein, dass das Gerät irgend ein WiFi Features benötigt, das Paul und ich nicht aktiviert haben. Ich habe am Ende des Posts Screenshots meiner aktuellen Einstellungen angehängt.

Und klar, es kann natürlich am Netzwerk liegen -- aber sämtliche Geräte (bei mir aktuell 69 WiFi und 14 Ethernet) laufen wunderbar. Sie lassen sich alle anpingen. Also wirklich instant; ist ein Gerät nicht verbunden (bsp. kein Strom) und wird dann verbunden, während ping bereits läuft, kann ich anhand des pings genau nachvollziehen, wann eine Verbindung zum WLAN hergestellt wurde. Das ist bei allen Geräten so, außer bei den Dials.

Und jetzt kommt's: wenn ich einen der Dials mit der default ESPHome firmware flashe, dann lässt er sich anpingen. Also klar, dann fungiert er auch nur als "leeres" ESPHome Gerät, Deine Firmware ist dann nicht installiert, es lässt sich nichts steuern etc. - aber anpingen und (auch dauerhaft) eine Verbindung mit Home Assistant herstellen ist möglich.

Wenn ich dann m5-dial-for-esphome flashe, läuft es wieder, wie zuvor beschrieben.


grafik

grafik

prankousky commented 1 month ago

Kleiner Nachtrag: ich habe die UniFi Einstellungen folgendermaßen geändert. Keine Ahnung, ob es Zufall ist, aber das Gerät funktioniert aktuell. Also ich kann eine light entity und eine fan group steuern. Zwar mit ein wenig delay, aber es funktioniert.

Interessanterweise lässt sich das Gerät jedoch weiterhin nicht anpingen. Also die Verbindung zu Home Assistant steht, Geräte werden gesteuert -- aber ping tut so, als wäre das Gerät offline.

@PaulMofers perhaps try changing / adapting your UniFi settings to this. I don't know if this is the fix or mere coincidence, but, at least for now, it works fine for me.

grafik

danielscheidler commented 1 month ago

@prankousky An der Wifi Komponente mach ich absolut nix. Ich greife nur auf die API zu, welche halt die Netzwerkverbindung voraussetzt. Dass das Problem auftritt mit Komponente aber ohne diese der Dial sauber verbindet hatte einer meiner Mods vor ein paar Tagen auch beobachtet. Wobei bei Ihm die Signalstärke wohl eingebrochen ist, was ich mir gar nicht erklären kann. Bei mir war in beiden Versuchen das Signal mit Abweichungen von 2-3db konstant. Ich kenn die unifis nicht aber Multicast klingt schon mal nicht verkehrt, da esphome ja auch mDNS einsetzt (sofern das in diese Option mit rein spielt)

Aber hier scheint fribse der selbe Ansatz zum Erfolg geführt zu haben: https://community.ui.com/questions/Problem-with-esp8266-connectivity-and-mDNS-after-moving-to-U6-lite-from-ap-ac-lite/7bfc2ff5-5d11-4f36-bd7f-41db3e3d604f#answer/f5bb1211-e539-4929-881b-7825992de0c1

pfender commented 1 month ago

Guten Morgen zusammen, ich habe genau identische Probleme mit dem M5Dial - läuft nur kurz am Anfang, ist dauerhaft nicht anpingbar, Steuerung ist nicht möglich. Nach kurzer Zeit sagt er dann Status Disconnected.. :( Ich nutze auch UniFi / Ubiquitti habe hier auch schon alle Einstellungen auf links und rechts gedreht, konnte aber das Problem bisher leider nicht lösen.