-
-
Notifications
You must be signed in to change notification settings - Fork 225
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature Request: Vorschläge Code Anpassungen Ticker #515
Comments
danke für die Vorschläge, habe sie nahezu 1:1 übernommen in |
improved wifi initial connection - especially if station wifi is not available #509 removed new operators from web.h (reduce dynamic allocation) improved sun calculation #515, #505 fixed wifi auto reconnect #509 added disable night communication flag to MQTT #505 changed MQTT publish of `available` and `available_text` to sunset #468
😃 👍 In |
ja das hab ich auch schon festgestellt, kommt mit der nächsten Version |
beautified serial.html added ticker for wifi loop #515 reverted sunrise / sunset ticker to most recent version
nehme hier mal das Todesschleife Problem beim Scheduler auf (gehört ja eigentlich nicht in #509) |
... die |
man könnte sich vor ausführen der Liste auch das Ende merken und nur bis dahin ausführen, alles was dazu gekommen ist wird dann nicht ausgeführt |
die Idee ist für den |
für Code Reviews eignet sich ab und an auch die OpenaI Ki unter chat.openai.com - dort den Code einfügen und eine Frage wie "can you improve the code" stellen. Es werden hier und da echt gute Empfehlungen ausgespuckt :) |
@lumapu könnte man da nicht eine ganz einfache pseudomäßige Event Queue verwenden? D.h. im Scheduler:
Entsprechend zur Verfügung gestellt, könnte z.B. auch die ahoywifi loop komplett darüber gesteuert werden (ohne einen Ticker) |
Ich habe Ich bin hier offen für eine Diskussion und lerne gerne dazu, gerne können wir auch zu Das hier finde ich interessant und spiegelt meine Befürchtungen wider: https://stackoverflow.com/questions/9612588/stl-within-embedded-system-with-very-limited-memory |
OK, ich glaube zwar nicht, dass es bei den wenigen Tickern zu Problemen mit dynamischem Speicher kommt, aber glauben heißt nicht wissen! Andererseits weiß man bei fixem Speicher im Vorfeld, ob es geht. Letztlich hat |
Vorschlag für eine Array Version mit leicht angepasster sP Struktur, was Every und At zusammenfasst.
|
sehr gute Idee, schaue ich mir noch genauer an. Einfacher ist immer besser |
ist es schneller / resourcenschonender, wenn man das
durch ein
ersetzt? Die Ich veröffentliche später noch eine |
|
zwei kleine "bugs":
|
Ich finde die erste Version des vereinfachten Scheduler übersichtlicher, als die zweite Version, bei der 'umsortiert' wird. Der Fehler mit der Zeitzone ist mir beim Debuggen auch aufgefallen, er hat immer um |
gib dir völlig Recht. Der
Australien wird es dir danken 😄 |
hab's erfolgreich mit 1min ausprobiert, man sieht schön, wie sich in der Web Anzeige die Info 'stopped polling at' nach 1min zu 'will start polling at' mit den passenden Zeitangaben ändert:
Dazu noch das |
@lumapu komme nochmal auf deine |
Das klingt sehr gut. Ja die Senderoutine kommt noch aus der 'Steinzeit' (April 2022). Hier muss noch einiges geschraubt werden, deine Ideen lesen sich sehr gut!
Ja es soll nur ein Inverter pro Schleifendurchgang gepollt werden. Dadurch versuchen wir Kollisionen durch gleichzeitige Abfrage zu verhindern und hatten bisher sehr gute Ergebnisse. Macht natürlich Sinn bei der Abfrage eines einzelnen Inverters in Processpayload nicht alle abzuklappern. Einen Guten Rutsch! |
@lumapu 🎊 🚀 release 0.5.66 yes you did it!!! Herzlichen Glückwunsch! Die Zeit war reif dafür, so viele Verbesserungen! Nur eine kurze Frage (will dafür dieses issue nicht neu aufmachen, nur kurzes ja/nein als Antwort): Lehn dich zurück, du hast es dir verdient, |
danke, ja ich denke es war mehr als notwendig und schafft bei mir auch innere Ruhe. Die Idee ist sicherlich gut, wir müssen nur überlegen, ob das auch bei einem reboot funktioniert, der zu einer beliebigen Zeit kommen kann. |
tut es, hab's ausprobiert. Nach einem reboot wird sowieso immer mit |
Ich habe jetzt angefangen, die Funktion in payload.h auszulagern. Wenn wir die Funktion direkt aufrufen wollen, müssen wir zuerst die schon 'halb' empfangene Payload zurücksetzen und das Kommando sofort schicken. Ich schaue mir das morgen nochmal genauer an. |
@lumapu hatte irgendwo im Zusammenhang mit 'Nachtabschaltung' etwas von
und in
Wenn es dir gefällt, könnte im Setup 'ESP sleep begin' und 'end' als HH:MM Eingabe stehen. Bei gleicher Zeit gibt's kein sleep, |
kann ich gerne ausprobieren. |
die 30s sind nur zur Anschauung und für's testen. Am besten dabei seriell mitschneiden, da sieht man gut die 3 x 10s ESP Pause und dass danach das ganze wie ein reboot neu startet. Daraus kann man eine 'Nachtabschaltung' machen, die im Prinzip so funktioniert als hätte man den ESP eine vorgegebene Zeit vom Strom abgeklemmt. |
Der Ticker
tickCalcSunrise
ist inapp::setup()
unnötig. Die Sonnenzeiten können sowieso erst berechnet werden, wenntickNtpUpdate
erfolgreich war. Daher kann man das erstetickCalcSunrise
dahin verlegen. Und die Prüfungif ((mTimestamp > 0) && (!mConfig->sun.disNightCom || (mTimestamp >= (mSunrise - mConfig->sun.offsetSec) && mTimestamp <= (mSunset + mConfig->sun.offsetSec))))
inapp:tickSend
kann man durch eine Variablebool mIVCommunicationOn;
ersetzen, die als Default auftrue
gesetzt ist und ggfs. nachtickCalcSunrise
angepasst wird.Insgesamt sähe das so aus:
P.S.: es reicht, in
tickCalcSunrise
den Trigger auf 1 Sekunde nach Mitternacht einzustellen, da er ja im Scheduler durch(p->d.timestamp) <= mTimestamp
ausgelöst wird.The text was updated successfully, but these errors were encountered: