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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Off Topic
  4. Microcontroller
  5. [ESPHome] welche Komponenten sind resourcenhungrig?

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.5k

[ESPHome] welche Komponenten sind resourcenhungrig?

Geplant Angeheftet Gesperrt Verschoben Microcontroller
3 Beiträge 2 Kommentatoren 270 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • W Offline
    W Offline
    WolfgangFB
    schrieb am zuletzt editiert von
    #1

    Ich habe versucht bei einem ESP8266 mit einem Bewegungsmelder ein paar Informationen (Zeitzpunkt letzte Bewegung Bewegung, Inaktiv seit... , Anzahl Bewegungen) direkt im ESP zu erfassen und in einem Textsensor auszugeben. Prinzipiell funktioniert das, aber das ganze scheint den ESP derart zu überlasten, dass er ständig abstürzt, neu bootet oder den Kontakt zum IO-Broker verliert.
    Gibt es irgendwelche Richtlinien, welche Komponenten besonders recourcenhungrig sind?
    Beim Compilieren wird mir gemeldet, dass sowohl RAM als auch Flash zu ca. 50% belegt sind.
    Die verwendeten Komponenten sind:
    -Webserver
    -MQTT
    -Globals
    -Text_sensor (template)
    -Sensor (gpio, adc, wifi_signal, uptime, template)
    -Binary_sensor (gpio)
    -Switch (gpio)
    -Time (sntp)

    Die Textsensoren werden alle 10 Sekunden aktualisiert.

    arteckA 1 Antwort Letzte Antwort
    0
    • W WolfgangFB

      Ich habe versucht bei einem ESP8266 mit einem Bewegungsmelder ein paar Informationen (Zeitzpunkt letzte Bewegung Bewegung, Inaktiv seit... , Anzahl Bewegungen) direkt im ESP zu erfassen und in einem Textsensor auszugeben. Prinzipiell funktioniert das, aber das ganze scheint den ESP derart zu überlasten, dass er ständig abstürzt, neu bootet oder den Kontakt zum IO-Broker verliert.
      Gibt es irgendwelche Richtlinien, welche Komponenten besonders recourcenhungrig sind?
      Beim Compilieren wird mir gemeldet, dass sowohl RAM als auch Flash zu ca. 50% belegt sind.
      Die verwendeten Komponenten sind:
      -Webserver
      -MQTT
      -Globals
      -Text_sensor (template)
      -Sensor (gpio, adc, wifi_signal, uptime, template)
      -Binary_sensor (gpio)
      -Switch (gpio)
      -Time (sntp)

      Die Textsensoren werden alle 10 Sekunden aktualisiert.

      arteckA Offline
      arteckA Offline
      arteck
      Developer Most Active
      schrieb am zuletzt editiert von
      #2

      @wolfgangfb und die yaml?

      zigbee hab ich, zwave auch, nuc's genauso und HA auch

      1 Antwort Letzte Antwort
      0
      • W Offline
        W Offline
        WolfgangFB
        schrieb am zuletzt editiert von
        #3

        @arteck
        Hier die yaml, sollte eigetnlich alle 10 Sekunden die aktuelle Zeit ausgeben, aktualisiert wird aber nur ca. 2-3 mal pro Minute, nach ein paar Minuten stürzt der ESP ab und bootet dann neu (zu sehen an der Laufzeit). Welche der Komponenten bringt den ESP so arg ins schwitzen?

        esphome:
          name: mini-werkbank
          platform: ESP8266
          board: d1_mini
          project:
            name: "wolfgang.mini-werkbank"
            version: "105"
          includes:
            - MyTime.h
            - Mini-Wekbank.h
          on_boot:
            - sensor.template.publish:
                id: D5AnzahlId
                state: !lambda return id(D5Anzahl);
        # D4 LED 
        # D5 Bewegung.Werkbank
        
        # 68:C6:3A:D4:5C:B6
        
        # Enable logging
        logger:
        
        # Enable Home Assistant API
        api:
        
        ota:
          password: "xxxxxxx"
        
        wifi:
          ssid: !secret wifi_ssid
          password: !secret wifi_password
        
          # Enable fallback hotspot (captive portal) in case wifi connection fails
          ap:
            ssid: "Mini-Wekbank"
            password: "xxxxx"
        
        captive_portal:
        
        mqtt:
          broker: 192.168.1.203
          on_connect:
            then:
            - text_sensor.template.publish:
                id: MQTTVerbundenId
                state: "true"
          on_disconnect:
            then:
            - text_sensor.template.publish:
                id: MQTTVerbundenId
                state: "false"
        
        
        globals:
          - id: Zeit
            type: std::string
          - id: D5InaktivSek
            type: int
            initial_value: '0'
            restore_value: yes
          - id: D5Anzahl
            type: int
            initial_value: '0'
            restore_value: yes
        
        text_sensor:
          - platform: template
            name: "105 Raum.Hobby.ESP.mini-werkbank.IP"
            lambda: 'return {WiFi.localIP().toString().c_str()};'
          - platform: template
            name: 105 Raum.Hobby.ESP.mini-werkbank.MQTT.Verbunden
            id: MQTTVerbundenId
            update_interval: never
          - platform: template
            name: "105 Raum.Hobby.ESP.mini-werkbank.HTML"
            id: HTML
            update_interval: never
          - platform: template
            name: "105 Raum.Hobby.ESP.mini-werkbank.Zeit"
            id: Aktuellezeit
            update_interval: never
        # D5 Bewegung
          - platform: template
            name: "105 Raum.Hobby.Bewegung.Werkbank.Ausloesezeit"
            id: D5AusloesezeitID
            update_interval: never
          - platform: template
            name: "105 Raum.Hobby.Bewegung.Werkbank.Inaktiv"
            id: D5InaktivZeitId
            update_interval: never
          - platform: template
            name: "105 Raum.Hobby.Bewegung.Werkbank.IP"
            lambda: 'return {WiFi.localIP().toString().c_str()};'
        
        sensor:
          - platform: adc
            name: "105 Raum.Hobby.ESP.mini-werkbank.Spannung"
            id: IDCore
            pin: VCC
            update_interval: 60s
          - platform: wifi_signal
            name: "105 Raum.Hobby.ESP.mini-werkbank.Signal"
            update_interval: 60s
            id: IDSignal
          - platform: uptime
            name: "105 Raum.Hobby.ESP.mini-werkbank.Laufzeit"
            id: IDUptime
          - platform: template
            name: "105 Raum.Hobby.Bewegung.Werkbank.Anzahl"
            id: D5AnzahlId
            update_interval: never
            accuracy_decimals: 0
          - platform: wifi_signal
            name: "105 Raum.Hobby.Bewegung.Werkbank.Signal"
            update_interval: 60s
        
        binary_sensor:
          - platform: gpio
            name: "105 Raum.Hobby.Bewegung.Werkbank.Zustand"
            id: D5Bewegung
            filters:
            - delayed_on_off: 100ms
            pin:
              number: D5
              mode:
                INPUT
            on_press:
              then:
              - switch.turn_on: LED
              - lambda: id(D5Anzahl) += 1;
              - lambda: id(D5InaktivSek) = 0;
              - text_sensor.template.publish:
                  id: D5AusloesezeitID
                  state: !lambda return id(Zeit).c_str();
              - sensor.template.publish:
                  id: D5AnzahlId
                  state: !lambda return id(D5Anzahl);
              - mqtt.publish:
                  topic: "Bewegung.Last"
                  payload: !lambda return std::string("HobbyWerkbank ") + id(Zeit).c_str();
              - mqtt.publish:
                  topic: "Bewegung.Lastabs"
                  payload: !lambda return str_sprintf("%llu", id(MySntp).now().timestamp);
              - text_sensor.template.publish:
                  id: HTML
                  state: !lambda return MyTabelle();
            on_release:
              then:
              - text_sensor.template.publish:
                  id: HTML
                  state: !lambda return MyTabelle();
        
        
        switch:
          - platform: gpio
            pin:
              number: GPIO02
              mode: OUTPUT
              inverted: true
            id: LED
            on_turn_on:
            - delay: 500ms
            - switch.turn_off: LED
            restore_mode: ALWAYS_OFF
            name: "105 Raum.Hobby.ESP.mini-werkbank.LED"
          - platform: restart
            name: "105 Raum.Hobby.ESP.mini-werkbank.Neustart"
        
        time:
          - platform: sntp
            timezone: Europe/Berlin
            id: MySntp
            on_time:
              - seconds: /10
                then:
                  - lambda: id(Zeit) = id(MySntp).now().strftime("%d.%m %H:%M:%S");
                  - lambda: |-
                      id(D5InaktivSek) += 10;
                  - text_sensor.template.publish:
                      id: D5InaktivZeitId
                      state: !lambda return MyTime(id(D5InaktivSek));
                  - text_sensor.template.publish:
                      id: HTML
                      state: !lambda return MyTabelle();
                  - text_sensor.template.publish:
                      id: Aktuellezeit
                      state: !lambda return id(Zeit).c_str();
              - seconds: 0
                minutes: 0
                hours: 0
                then:
                  - lambda: |-
                      id(D5Anzahl) = 0;
                      id(D5InaktivSek) = 0;
        
        

        MyTime.h sieht wie folgt aus:

        std::string MyTime(int secs){
          char Plural = ' ';
          if (secs > 60 * 60 * 24 *2 ) 
            {
            Plural = 'e';
            }
          if (secs < 60){
            return str_sprintf("%02.0f Sek", float(secs));
            } else
            {
            if (secs < 60 * 60){
              return str_sprintf("%2.0f Min", abs(float(secs/60)));
              } else
              {
              if (secs < 60 * 60 * 24){
              	return str_sprintf("%2.0f Std", abs(float(secs/(60 * 60))));
              	} else
              	{
              	return str_sprintf("%2.0f Tag%c", abs(float(secs/(60 * 60 * 24))), Plural);
              	}
              }
            }
          }
        

        mini-werkbank.h wie folgt:

        std::string MyTabelle(){
            std::string CrLf = "\r\n";
            std::string Rot = " style=\"background-color: red; font-size: 12pt;\"";
            std::string Gruen = " style=\"background-color: #44ff44; font-size: 12pt;\"";
            std::string Start = "<table style=\"width: 450 + px; font-size: 10pt; border-collapse: collapse;\" border=\"0\">" + CrLf;
            std::string Tabelle = Start;
            std::string Style = id(MQTTVerbundenId).state == "true" ? Gruen:Rot;
            Tabelle = Tabelle + "<td><tr><td" + Style + ">Mini-Wekbank</td><td style=\"width: 180px; font-size: 8pt;\">"  + WiFi.localIP().toString().c_str() + "<br>" + WiFi.macAddress().c_str() +  "</td></tr>";
            Tabelle = Tabelle + "<tr><td>Signal: </td><td> "+ str_sprintf("%.0f", id(IDSignal).state) + " dBm</td></tr>";
            Tabelle = Tabelle + "<tr><td>Laufzeit: </td><td> "+ str_sprintf("%.0f", id(IDUptime).state) + " s</td></tr>";
            Tabelle = Tabelle + "<tr><td>Spannung: </td><td> "+ str_sprintf("%.2f", id(IDCore).state) + " V</td></tr>";
            Tabelle = Tabelle + "<tr><td>Zeit: </td><td> "+ id(Zeit) + "</td></tr>";
            Style = id(D5Bewegung).state == true ? Rot: "";
            Tabelle = Tabelle + "<tr><td" + Style + ">Werkbank</td><td> "+ str_sprintf("%.0f", id(D5AnzahlId).state) + "</td></tr>";
            Tabelle = Tabelle + "<tr><td>Werkbank</td><td> "+ id(D5InaktivZeitId).state + "</td></tr>";
            Tabelle = Tabelle + "<tr><td>Werkbank</td><td> "+ id(D5AusloesezeitID).state + "</td></tr>";
            Tabelle = Tabelle + "<tr><td onclick=\"servConn.setState('alias.0.Raum.Hobby.mini-werkbank.ESP.Neustart', true);\">Neustart</td></tr>";
            Tabelle = Tabelle + "</table>";
            return Tabelle;
        }
        
        
        
        1 Antwort Letzte Antwort
        0
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate

        767

        Online

        32.4k

        Benutzer

        81.6k

        Themen

        1.3m

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

        • Du hast noch kein Konto? Registrieren

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