Pond[CTRL] Update 1335

Nieuw: schakelbare stekkers zijn nu schakelbaar op dag/nacht. In de gebruikersinterface kunnen GPS-coördinaten ingevuld worden waarop het schakelen gebaseerd wordt. Dit werkt alleen bij een actieve verbinding met de Pond[CTRL] servers. Wanneer de verbinding niet actief is, dan wordt de stekker uitgeschakeld.

Nieuwe instelling in de gebruikersinterface: ‘Location’
Nieuwe switch-modes: ‘On during daylight’ en ‘Off during daylight’.
Nieuw resultaat van een /get-aanvraag, met daarin nieuwe parameters ‘day’, ‘latitude’ en ‘longitude’.

Pond[CTRL] Update 1327

Bugfix: opslaan van stekkerinstellingen overschreven andere instellingen in het geheugen.

Nieuw: volledig werkende apparaatleeftijdregistratie waarbij weergave / instellingen nog niet werken via de gebruikersinterface.

Pond[CTRL] Update 1303

Bugfix: voederpauze was volgens de webinterface na elke herstart geactiveerd.

Wijziging: updates worden niet langer geïnstalleerd tijdens een voederpauze of actieve onderhoudsmodus.

Wijziging: maximale lengte van de naam van schakelbare stekkers is nu 32 karakters.

Nieuw: gedeeltelijke (nog niet juist werkende) implementatie van de leeftijd van apparaten. Per schakelbare stekker wordt een timer bijgehouden hoe lang deze aan heeft gestaan. Dit kan handig zijn voor bijvoorbeeld het bijhouden van de maximale de levensduur van UVC-lampen.

Bekende bug in deze versie: timestamps van apparaatleeftijd worden onjuist opgeslagen en geladen vanuit het geheugen.

Pond[CTRL] Update 1245

Bugfix: Informatie over onderhoudsmodus werd niet meegenomen in een /get aanvraag, waardoor na het opnieuw openen van de interface er ‘Geen onderhoud’ getoond werd en de modus niet uitgeschakeld kon worden.

Bugfix: bij een update tijdens onderhoudsmodus of voederpauze werd deze uitgeschakeld.

Pond[CTRL] Update 1243

Nieuwe functionaliteit: onderhoudsmodus. Per schakelbare stekker is voor deze modus in te stellen of deze bij onderhoud uitgeschakeld moet worden. Onderhoudsmodus dient, in tegenstelling tot voederpauze, handmatig uitgeschakeld te worden.

Pond[CTRL] en CORS

Vakantie! Eindelijk tijd om PondCTRL aan de nieuwe vijver (ondertussen al 1.5 jaar in bedrijf) te hangen. De vijver is kraakhelder, de vissen doen het goed en de waterwaarden zijn stabiel.

Ik liep gelijk tegen een probleem aan. In oudere browsers kon je CORS (Cross-Origin Resource Sharing) nog omzeilen. Waarom zou ik dat willen? De WiFi-module van Pond[CTRL] welke fungeert als het ‘besturingssysteem’ heeft slechts 1MB flash geheugen. Wil je gebruik maken van OTA-updates, dan hou je minder dan de helft over. De HTTPS-library neemt meer dan de helft van de beschikbare ruimte in beslag waardoor er onvoldoende ruimte overblijft voor het besturingssysteem.

En toen? Een HTTPS-app naar een HTTP-bron. Ik heb een interface geschreven. De app roept op HTTPS de interface aan. De interface, geschreven in PHP, doet dezelfde aanroep via cURL naar de HTTP-bron. Voor de app komt het antwoord van een HTTPS-bron en dus voldoet deze aan de CORS-policy van moderne browsers. De interface ondersteunt zowel GET als POST verzoeken.

En dan nog wat mooie plaatjes 😁.

Kraakhelder water. De bodem is goed zichtbaar (1.20m)
Pond[CTRL] in de nieuwe behuizing. De behuizing is voorzien van een 35mm DIN-rail en de print zit geklikt op zelfgemaakte DIN-rail / PCB klemmen. Stroomvoorziening is operationeel, sensoren zijn nog niet aangesloten.
De online app. Pond[CTRL] is weer actief 👊.

Pond[CTRL]

Het tuintje is klaar en ik heb nu wat meer vrije tijd. Hoog tijd om weer verder te gaan met Pond[CTRL] en alles weer aan te sluiten. De broncode staat vanaf nu helemaal op GitHub.

De eerstvolgende stap is een nieuwe behuizing te kiezen: zelf 3D printen of een standaard behuizing. Zodra Pond[CTRL] weer operationeel is ga ik verder met de firmware waar ik een aantal maanden geleden gebleven ben.

Pond[CTRL] Update

Na een van de laatste updates waarbij de uptime doorgegeven werd aan de API, werd duidelijk dat de firmware 1 of 2 keer per dag herstart werd zonder duidelijke reden. Binnen 10 seconden werkt de module weer na een herstart, maar dit is natuurlijk niet de bedoeling.

Er wordt nu een herstart-reden doorgegeven aan de API en bij een /get-aanvraag, waardoor ik hopelijk de reden kan achterhalen.

Debug toont nu ‘4’, waarbij de reden van herstart volgens onderstaande tabel een ‘software reset’ was. Dit klopt en was na bijwerken naar firmware versie 1222.

Ondanks dat ‘4’ natuurlijk een numerieke waarde is, wordt deze in het JSON-resultaat als string weergegeven. De reden hiervan is dat de ‘debug’-parameter alle mogelijke informatie, opgeslagen als string, kan bevatten.

Tabel met mogelijke redenen, opgave van fabrikant WiFi-module (Espressif).
Huidige firmwareversie: 1222

Pond[CTRL] Update

Kleine update gemaakt, waarbij de resterende voederpauze-tijd nu beschikbaar is. Deze wordt vanaf nu ook in de online app weergegeven.

Er wordt nu ‘Feed’ samen met de resterende tijd weergegeven in plaats van enkel ‘Feeding’. Dit is mogelijk door de nieuwe parameter ‘feedpause_remaining’ in een /get-aanvraag.
Huidige firmwareversie: 1221