<div dir="ltr"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>Dobrý večer,</div><div><br></div><div>ten ESPDash je super. Ještě jednou díky za tip. Ohledně těch WDT asi tam dám i ten externí, bude potřeba ale časovat někde kolem 1minuty, aby to nezabíralo v případě update firmware.</div><div><br></div><div>Trochu se s trápím s tím, jak zkombinovat svůj kód s OTA update. Funguje mi jen jedno nebo druhé, ale dohromady ne.</div><div><br></div><div>Když to napíšu takto z(viz níže), tak OTA je vidět (např. v Arduino IDE) ale nejde nic nahrát. Testoval jsem jak Arduino IDE, tak platformio.</div><div><br></div><div><img src="cid:ii_kp7efmr80" alt="image.png" width="277" height="43"><br></div><div><br></div><div>Když tam dám jen příklad OTA tak upload normálně funguje, když tam dám jen ESPDash, normálně to funguje. Ale dohromady ne. </div><div><br></div><div>Píše se ten OTA handler opravdu do loop?</div><div><br>#include <Arduino.h><br>#if defined(ESP8266)<br>  /* ESP8266 Dependencies */<br>  #include <ESP8266WiFi.h><br>  #include <ESPAsyncTCP.h><br>  #include <ESPAsyncWebServer.h><br>#elif defined(ESP32)<br>  /* ESP32 Dependencies */<br>  #include <WiFi.h><br>  #include <AsyncTCP.h><br>  #include <ESPAsyncWebServer.h><br>#endif<br>#include <ESPDash.h><br><br><br>#include <WiFiUdp.h><br><b>#include <ArduinoOTA.h></b><br><br>/* Your WiFi Credentials */<br>const char* ssid = "******"; // SSID<br>const char* password = "******"; // Password<br><br>const char* OTAhostname = "ESP-puhy";<br><br>/* Start Webserver */<br>AsyncWebServer server(80);<br><br>/* Attach ESP-DASH to AsyncWebServer */<br>ESPDash dashboard(&server); <br><br>/* <br>  Button Card<br>  Format - (Dashboard Instance, Card Type, Card Name)<br>*/<br>Card button(&dashboard, BUTTON_CARD, "Test Button");<br><br>/* <br>  Slider Card<br>  Format - (Dashboard Instance, Card Type, Card Name, Card Symbol(optional), int min, int max)<br>*/<br>Card slider(&dashboard, SLIDER_CARD, "Test Slider", "", 0, 255);<br><br><br>void setup() {<br>  Serial.begin(115200);<br><br>  /* Connect WiFi */<br>  WiFi.mode(WIFI_STA);<br>  WiFi.begin(ssid, password);<br>  if (WiFi.waitForConnectResult() != WL_CONNECTED) {<br>      Serial.printf("WiFi Failed!\n");<br>      return;<br>  }<br>  Serial.print("IP Address: ");<br>  Serial.println(WiFi.localIP());<br><br>  /* Attach Button Callback */<br>  button.attachCallback([&](bool value){<br>    /* Print our new button value received from dashboard */<br>    Serial.println("Button Triggered: "+String((value)?"true":"false"));<br>    /* Make sure we update our button's value and send update to dashboard */<br>    button.update(value);<br>    dashboard.sendUpdates();<br>  });<br><br>  /* Attach Slider Callback */<br>  slider.attachCallback([&](int value){<br>    /* Print our new slider value received from dashboard */<br>    Serial.println("Slider Triggered: "+String(value));<br>    /* Make sure we update our slider's value and send update to dashboard */<br>    slider.update(value);<br>    dashboard.sendUpdates();<br>  });<br><br>  /* Start AsyncWebServer */<br>  server.begin();<br><br>ArduinoOTA.setHostname(OTAhostname);<br>  ArduinoOTA.onStart([]()<br>  {<br>    Serial.println("Start");<br>  });<br>  ArduinoOTA.onEnd([]()<br>  {<br>    Serial.println("\nEnd");<br>  });<br>  ArduinoOTA.onProgress([](unsigned int progress, unsigned int total)<br>  {<br>    Serial.printf("Progress: %u%%\r", (progress / (total / 100)));<br>  });<br>  ArduinoOTA.onError([](ota_error_t error)<br>  {<br>    Serial.printf("Error[%u]: ", error);<br>    if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");<br>    else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");<br>    else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");<br>    else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");<br>    else if (error == OTA_END_ERROR) Serial.println("End Failed");<br>  });<br>  ArduinoOTA.begin();<br>}<br><br>void loop() {<br>  /* Nothing so far */<br><b> ArduinoOTA.handle();</b><br><br> delay(5000);<br><br>}<br></div><div><br></div><div>Díky,</div><div><br></div><div>HP</div><div><br></div></div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">st 26. 5. 2021 v 13:45 odesílatel Pavel Brychta <<a href="mailto:pavel.brychta@duhasys.eu">pavel.brychta@duhasys.eu</a>> napsal:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div>
    <p>Co se týče WDT, tak fakt nevím - mě zatím vždycky stačil vnitřní
      v ESP32 (má i brownout detector, který už jsem také viděl zabrat).
      Zařízení mi běží 24/7. Expandér můžu doporučit místo toho PCF
      raději MCP23008 (nebo 16, pokud je 8 GPIO málo) - minimálně z toho
      důvodu, že má asynchronní reset, takže po resetu jsou GPIO v
      definovaných stavech.</p>
    <p>P.B.<br>
    </p>
    <div>Dne 26. 05. 21 v 13:30 Jan Půhoný
      napsal(a):<br>
    </div>
    <blockquote type="cite">
      
      <div dir="ltr">Díky za reakce. Jde mi o to mít to co nejvíce low
        level. Opravdu do toho nechci tahat RasPi. Musí to jet i když
        nepůjde wifi a s tou Atmegou to drží roky až se divím. 
        <div><br>
        </div>
        <div>Maximálně do budoucna můžu přidat nějakou vizualizaci na
          něčem jako RasPi, ale to spíš už přímo posílat requesty na www
          a ukládat do MySQL. Potřebuji aby ta logika byla spolehlivá.
          Ano, mám na tom rybičky a čerpadlo topení ( a taky zalévání na
          zahradě a vodoměr a zvonky a fakt hodně blbostí :-)
          <div><br>
          </div>
          <div>Atmega s watchdogem to zatím pár let dala bez ztráty
            kytičky, uptime tam přetékal bez toho aby se to nějak
            resetovalo nebo tak něco.</div>
          <div><br>
          </div>
          <div>Mám to vše jakoby centralizované u hlavního rozvaděče,
            takže nepotřebuji bezdrátové nody po domě, jde mi o to
            nahradit tu AtMegu něčím výkonnějším.</div>
          <div><br>
          </div>
          <div>Budu tam potřebovat hodně I/O, je dobrý nápad k tomu
            ESP32 dávat pár PCF8574 jako I/O expander nebo je něco
            robusnějšího?</div>
          <div><br>
          </div>
          <div>A další věc, je potřeba k ESP32 dávat externí WDT?</div>
          <div><br>
          </div>
          <div>
            <div>
              <div>
                <div dir="ltr">
                  <div dir="ltr">
                    <div>
                      <div dir="ltr">
                        <div>HP</div>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
              <br>
            </div>
          </div>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">st 26. 5. 2021 v 11:47
          odesílatel Pavel Brychta <<a href="mailto:pavel.brychta@duhasys.eu" target="_blank">pavel.brychta@duhasys.eu</a>>
          napsal:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Tak
          zrovna to je exemplární případ, jak to určitě nedělat. Zde <br>
          <a href="https://github.com/Alextros00/ESP32-MQTT-Relay-Control/blob/main/main/app_main.c" rel="noreferrer" target="_blank">https://github.com/Alextros00/ESP32-MQTT-Relay-Control/blob/main/main/app_main.c</a>
          <br>
          není jediná zmínka, nebo náznak řešení nějakého failsafe
          mechanizmu. <br>
          Celé to je na úrovni primitivního Arduino example, který se s
          detaily <br>
          jako je třeba jméno topcu vůbec nezalamuje. MQTT failsafe samo
          o sobě <br>
          nevyřeší ani omylem.<br>
          <br>
          P.B.<br>
          <br>
          Dne 26. 05. 21 v 11:28 T. Meinlschmidt napsal(a):<br>
          > proto pisu mqtt. esp32 tu podporu mqtt ma pomerne
          slusnou. viz treba <br>
          > takovy easy priklad<br>
          ><br>
          > <a href="https://github.com/Alextros00/Home-Automation-NodeRED-ESP-Telegram" rel="noreferrer" target="_blank">https://github.com/Alextros00/Home-Automation-NodeRED-ESP-Telegram</a><br>
          ><br>
          > tm<br>
          ><br>
          > Dne 2021-05-26 10:54, Pavel Brychta napsal:<br>
          >> ... až na to, že když pak lehne to Pi, nebo WiFi, tak
          zůstane třeba<br>
          >> čerpadlo běžet stále, nebo uvaříte rybičky. Přiznám
          se, že takovouto<br>
          >> cestou bych nikdy nešel, protože to znamená mít
          failsafe procesy v ESP<br>
          >> a řídící logiku jinde, což pro účely automatizace
          považuji za hodně<br>
          >> nešťastné řešení. Když už, tak autonomní pocesy na
          zařízení a API pro<br>
          >> parametrizaci do toho rPi...<br>
          >><br>
          >> P.B.<br>
          >><br>
          >> Dne 26. 05. 21 v 10:49 T. Meinlschmidt napsal(a):<br>
          >>> dobre dopoledne.<br>
          >>><br>
          >>> ja se priznam, ze bych vubec nesel touhle cestou,
          ale mel ESP ciste <br>
          >>> na hw veci a sber nejakych dat,<br>
          >>> a celou tu logiku nechal v node-red + mqtt (treba
          na rpi). Casem na <br>
          >>> to muzete navazat mobil, UI si udelate podle sebe
          pomerne jednoduse, <br>
          >>> navic to umi spoustu veci z jinych zdroju.<br>
          >>><br>
          >>> tm<br>
          >>><br>
          >>> Dne 2021-05-26 10:32, Jan Půhoný napsal:<br>
          >>>> Dobré dopoledne,<br>
          >>>><br>
          >>>> Ještě bych potřeboval poradit co použít za
          systém na ESP32.<br>
          >>>> Jedná se mi o to, že do ESP32 přepisuji z
          Atmegy 2560 něco jako<br>
          >>>> řízení topení a různých zdrojů tepla a
          různých hejblátek<br>
          >>>> doma. Do teď to běží na ATMEGA 2560 a mám tam
          jednoduchý<br>
          >>>> "multitasking" pomocí millis. Jedná se v
          podstatě jen o čtení<br>
          >>>> teplotních čidel, webserver a pak různé
          výstupy v podobě SSR<br>
          >>>> relé + vstupy a logika mezi tím. Nic
          složitého. Na druhou stranu<br>
          >>>> za ty roky to celkem naboptnalo co se kódu
          týče a ten webserver na<br>
          >>>> té AT2560 je takový dost líný. Navíc tam
          potřebuji číst http<br>
          >>>> requesty data z komerční meteostanice a na to
          už to moc není.<br>
          >>>><br>
          >>>> Neexistuje nějaký opensource projekt na
          ESP32, kde by byly<br>
          >>>> vyřešeny základní věci jako webserver +
          nějaká grafika a<br>
          >>>> hejblátka abych to nemusel psát úplně od
          začátku. Líbilo by se<br>
          >>>> mi už https a základní struktura a dopsal
          bych si do toho jen tu<br>
          >>>> vlastní logiku a ovládání vstupů a výstupů.<br>
          >>>><br>
          >>>> Je dobrý nápad na to ESP dávat FreeRTOS, nebo
          to už je překonané<br>
          >>>> a používáte něco lepšího? Případně víte o
          nějakém open<br>
          >>>> source projektu pro domácí automatizaci pro
          ESP32?<br>
          >>>><br>
          >>>> Ano, googlil jsem, ale serp je zaplaven videi
          geeků kteří připojí<br>
          >>>> k pár relátkům esp a myslí si co nevymysleli
          a trochu se v tom<br>
          >>>> ztrácím. Já bych potřeboval něco trochu
          robusnějšího.<br>
          >>>><br>
          >>>> Díky za nápady.<br>
          >>>><br>
          >>>> HP<br>
          >>>>
          _______________________________________________<br>
          >>>> HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" rel="noreferrer" target="_blank">www.HW.cz</a><br>
          >>>> <a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
          >>>> <a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
          >>> _______________________________________________<br>
          >>> HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" rel="noreferrer" target="_blank">www.HW.cz</a><br>
          >>> <a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
          >>> <a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
          >> _______________________________________________<br>
          >> HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" rel="noreferrer" target="_blank">www.HW.cz</a><br>
          >> <a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
          >> <a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
          > _______________________________________________<br>
          > HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" rel="noreferrer" target="_blank">www.HW.cz</a><br>
          > <a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
          > <a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
          _______________________________________________<br>
          HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" rel="noreferrer" target="_blank">www.HW.cz</a><br>
          <a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
          <a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
        </blockquote>
      </div>
      <br>
      <fieldset></fieldset>
      <pre>_______________________________________________
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" target="_blank">www.HW.cz</a>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
    </blockquote>
  </div>

_______________________________________________<br>
HW-list mailing list  -  sponsored by <a href="http://www.HW.cz" rel="noreferrer" target="_blank">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" rel="noreferrer" target="_blank">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
</blockquote></div>