<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p>DD,</p>
<p>ano, handler se dává do loop(), ale doporučuju odstranit ten
nešťastný delay() i když to zrovna nemusí být zdroj problému.
Potíž je v tom, že nepíšete jak se projevuje to, že to nefunguje -
pokud upoad proběhne, ale podezřele rychle a firmware se ve
skutečnosti nenahraje, tak je to tím, že jste nevymazal paměť
flash (pio run -t erase) a to ESP má uloženou jinou partition
tabulku. Vždycky, když nahrávám do nového modulu, tak udělám výmaz
flash a teprve pak nahraju první firmware. Já prakticky výhradně
používám Wrover 16MB moduly s trošku upravenou vnitřní konfigurací
a všechny tyto úpravy dělám v přípravku mimo zařízení před
osazením (reklamní linka <a class="moz-txt-link-freetext" href="https://s.click.aliexpress.com/e/_9j8PIP">https://s.click.aliexpress.com/e/_9j8PIP</a>
).</p>
<p>P.B.<br>
</p>
<div class="moz-cite-prefix">Dne 27. 05. 21 v 23:22 Jan Půhoný
napsal(a):<br>
</div>
<blockquote type="cite"
cite="mid:CAEwSxSGL7g0TWwP-GcXomO9Wb8kJop+wwqGksEJ+oiuJcmj12w@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<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:part1.012649B4.D82D06FA@duhasys.eu"
alt="image.png" class="" 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"
moz-do-not-send="true">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" moz-do-not-send="true">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"
moz-do-not-send="true">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"
moz-do-not-send="true">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" moz-do-not-send="true">www.HW.cz</a><br>
>>>> <a href="mailto:Hw-list@list.hw.cz"
target="_blank" moz-do-not-send="true">Hw-list@list.hw.cz</a><br>
>>>> <a
href="http://list.hw.cz/mailman/listinfo/hw-list"
rel="noreferrer" target="_blank"
moz-do-not-send="true">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" moz-do-not-send="true">www.HW.cz</a><br>
>>> <a href="mailto:Hw-list@list.hw.cz"
target="_blank" moz-do-not-send="true">Hw-list@list.hw.cz</a><br>
>>> <a
href="http://list.hw.cz/mailman/listinfo/hw-list"
rel="noreferrer" target="_blank"
moz-do-not-send="true">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" moz-do-not-send="true">www.HW.cz</a><br>
>> <a href="mailto:Hw-list@list.hw.cz"
target="_blank" moz-do-not-send="true">Hw-list@list.hw.cz</a><br>
>> <a
href="http://list.hw.cz/mailman/listinfo/hw-list"
rel="noreferrer" target="_blank"
moz-do-not-send="true">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" moz-do-not-send="true">www.HW.cz</a><br>
> <a href="mailto:Hw-list@list.hw.cz"
target="_blank" moz-do-not-send="true">Hw-list@list.hw.cz</a><br>
> <a
href="http://list.hw.cz/mailman/listinfo/hw-list"
rel="noreferrer" target="_blank"
moz-do-not-send="true">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" moz-do-not-send="true">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank"
moz-do-not-send="true">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list"
rel="noreferrer" target="_blank"
moz-do-not-send="true">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" moz-do-not-send="true">www.HW.cz</a>
<a href="mailto:Hw-list@list.hw.cz" target="_blank" moz-do-not-send="true">Hw-list@list.hw.cz</a>
<a href="http://list.hw.cz/mailman/listinfo/hw-list" target="_blank" moz-do-not-send="true">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"
moz-do-not-send="true">www.HW.cz</a><br>
<a href="mailto:Hw-list@list.hw.cz" target="_blank"
moz-do-not-send="true">Hw-list@list.hw.cz</a><br>
<a href="http://list.hw.cz/mailman/listinfo/hw-list"
rel="noreferrer" target="_blank" moz-do-not-send="true">http://list.hw.cz/mailman/listinfo/hw-list</a><br>
</blockquote>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<pre class="moz-quote-pre" wrap="">_______________________________________________
HW-list mailing list - sponsored by <a class="moz-txt-link-abbreviated" href="http://www.HW.cz">www.HW.cz</a>
<a class="moz-txt-link-abbreviated" href="mailto:Hw-list@list.hw.cz">Hw-list@list.hw.cz</a>
<a class="moz-txt-link-freetext" href="http://list.hw.cz/mailman/listinfo/hw-list">http://list.hw.cz/mailman/listinfo/hw-list</a>
</pre>
</blockquote>
</body>
</html>