Categorie: App

IOS App testers gezocht.

IOS App testers gezocht.

De afgelopen maanden ben ik bezig geweest de Apple (IOS) app geheel nieuw op te bouwen, gebaseerd op SwiftUI. De primaire reden was dat de 2020 versie lastig onderhouden was en afhankelijk van software van derden die niet meer ondersteund wordt of zelfs fouten bevatte. 

Het voordeel van de deze versie is dat deze sneller aangepast kan worden en hopelijk jaren meegaat. Daarnaast was voor de oude versie Dropbox nodig om op afstand gegevens op te vragen. Deze versie werkt met directe toegang via je thuisnetwerk zie de P1 Monitor beschrijving het onderdeel API en netwerk. 

Deze versie is niet compleet maar bevat de meeste basis zaken, na het testen wordt de app compleet gemaakt of er worden versies uitgebracht met nieuwe features. De app is in het Nederlands, Engels of Frans te gebruiken. 

Voor de 2024 versie ben ik op zoek naar testers, als je daaraan mee wil werken geef dan commentaar met je e-mail adres in het bericht waarmee ik je voor TestFlight kan uitnodigen. Dit wijst zichzelf als je de e-mail ontvangt. Het testen kost buiten wat tijd niets. Je moet beschikken over een iPhone / iPad met iOS versie 17.0 of hoger. 

De taal van het device wordt gebruikt. Nederlands, Engels en Frans wordt momenteel ondersteund.

Alle commentaar is welkom of het nu over bugs, de layout of andere zaken gaat. Zet je commentaar op het forum via deze link

Forum afbeelding

Geeft zoveel mogelijk details aan, zoals de software versies die je gebruikt. En de stappen die je genomen hebt. Om bugs te kunnen oplossen moet ik de situatie kunnen nabootsen.

Aanmelden kan eenvoudig door commentaar te geven op dit artikel met je e-mail adres dat je wil gebruiken. Je krijgt dan een email van Apple om met TestFlight de test versie te installeren. Je email adres wordt niet gedeeld of gepubliceerd op de site.

P1-monitor IOS pro en tools app

P1-monitor IOS pro en tools app

Testers gezocht zie https://forum.p1mon.nl/viewtopic.php?f=13&t=788

De app werkt alleen in samenwerking met de P1 monitor softwareversie 1.3.0 of hoger. Upgrade de P1 monitor software voor gebruik van de pro app. Versie 1.4.1 wordt aanbevolen.

P1-monitor pro 2020

Download on the app Store

Deze app maakt geeft via je mobiel of tablet toegang tot de P1 monitor data. Momenteel is de app alleen nog beschikbaar voor IOS.  De app kan lokaal worden gebruik of op afstand via een (gratis) Dropbox account.

Waarom is de app niet gratis?

Apple vraag helaas alleen al voor het uitbrengen van een app 99 euro per jaar. Het doel is de app kosten dekkend te maken. Daarnaast is het een mooie manier om de P1 monitor te sponsoren of een donatie te doen. Mijn dank aan iedereen die app al heeft gekocht en/of heeft gedoneerd.

Roadmap

De roadmap voor de app is onder gebracht bij de P1 monitor roadmap

BUGS

Mocht je fouten ontdekken laat het dan weten via een comment.

  1. Geen bugs bekend in versie 1.0.4

Dropbox

De app gebruikt Dropbox als tussenlaag zodat je de P1 monitor niet hoeft te koppelen met het Internet waardoor het gebruik veel veiliger is dan als je het grote boze internet toegang geeft tot je thuis netwerk. Je kunt daarnaast ook alleen lokaal toegang geven door geen gebruikt te maken van Dropbox. Of andersom alleen Dropbox gebruiken. Of met ander woorden beide opties kunnen tegelijk aan staan of een van de twee opties

De updates via Dropbox voor de dag waarden op het home scherm en historie werkt met een vertraging van een paar minuten. Normaal is een minuut of zes.

Activeren van app toegang in de P1 monitor.

Netwerk toegang: setup menu -> systeem -> activeer de optie “UDP broadcast daemon” aan.

UDP deamon aan

Dropbox toegang: setup menu -> bestanden -> DropBox API configuratie && Dropbox gegevens delen

dropbox delen van data

De app update de informatie onder normale omstandigheden met een vertraging tussen de 1 en 10 seconden.

P1-monitor tools

De P1-monitor tools is een (gratis) app die helpt bij het testen of instellen van de P1-monitor. Deze app bevat een momenteel twee functies:

1: Het vinden van de P1-monitor(s) op het lokale/huis netwerk. Dit maakt het eenvoudiger het IP adres van de P1-monitor/Rpi te vinden zodat je geen monitor hoeft aan te sluiten.

2: Het testen van de internet API. je kunt hiermee een vast zet van gegevens opvragen die slimme meter heeft verstuurd. Hiervoor moet je wel een software versie 1.5.x of hoger gebruiken.

Download on the app Store

Android app

Komt er ook een Android app? Ik heb te weinig tijd om ook een Android app te ondersteunen. Er is genoeg informatie beschikbaar zodat wellicht een derde een Android app kan ontwikkelen. Er is iemand die interesse heeft getoond om de Andriod app te ontwikkelen en technische ondersteuning is toegezegd.

P1-monitor pro 2020

Download on the app Store

P1-monitor tools

Download on the app Store

P1-monitor internet API

P1-monitor internet API

Deze handleiding geeft stap voor stap weer hoe de P1-monitor internet API geactiveerd kan worden.

Deze optie is beschikbaar in P1-monitor versie later dan 20210618 V1.3.1.

Deze API is een extra optie die niet nodig is voor normaal gebruik en staat daarom standaard ook uit.

Er zijn twee redenen om de API te activeren:

A: De toekomstige versies van Android en iOS apps zullen gebruik maken van de API als je buiten bereik bent van je Wifi netwerk. Dat wordt aangeven als de app uitkomt. Momenteel wordt daar nog Dropbox voor gebruikt.

B: Je wilt de P1 monitor data op afstand beschikbaar stellen aan andere gebruikers.

Hieronder staan de voorwaarden en stappen die je door moet lopen voor het activeren. De details van elke stap worden verderop in de tekst in detail toegelicht. Vrijwel alle instellingen kunnen via de P1-monitor gebruikersinterface worden ingesteld. Het lijkt wellicht ingewikkeld maar door de stappen consequent door te lopen is het relatief eenvoudig. Deze opzet gaat uit van een normale thuissituatie waar je de router van de Internet Service Provider (ISP) van bijvoorbeeld KPN of Ziggo gebruikt om te verbinden met het internet.

1: Instellen van een vast IP adres van de Raspberry Pi (Rpi)

2: Het aanmaken van een FQDN domeinnaam.

3: Het forwarden van poort 80 en 443 op je router.

4: Het aanmaken van het HTTPS certificaat.

5: Het aanmaken van API tokens.

6: Het testen van de API.

1: Instellen van een vast IP adres van de Raspberry Pi (Rpi)

Om de Rpi te kunnen bereiken over je thuisnetwerk moet het internetadres van je router via port fowarding naar het IP adres van de RPI worden gerouteerd. Dit kan alleen betrouwbaar als het IP adres van de Rpi vast staat ( een zogenaamd static IP adres) en niet wijzigt. Het vast instellen van de het IP adres van Rpi kan op twee manieren:

De voorkeur methode is static binding via de DHCP server van je router. Deze optie werkt altijd en voorkomt fouten in de configuratie. Zie hier een link van een voorbeeld voor KPN.

Als je de voorkeuroptie niet wil gebruiken dan kan je het IP adres via de P1 monitor instellen op de pagina config-netwerk.php pagina. Voordat je de IP adressen instelt moet je een aantal zaken controleren en weten.

Het(de) IP adres(sen) dat je wil gebruiken als je Rpi via een kabel is aangesloten (eth0) en/of Wifi (wlan0). Beide kunnen tegelijk worden gebruikt maar moeten uiteraard wel een andere IP adres zijn. Deze IP adressen moeten vrij zijn en bij voorkeur niet door de DHCP server worden gebruikt. Je kunt een vrij adres controleren door ping te gebruiken. Als de host geen antwoord geeft dan is het adres niet in gebruik.  En dan is dit IP adres dus te gebruiken oftewel vrij.

C:\Users\SecBro>ping 192.168.2.226
Pinging 192.168.2.226 with 32 bytes of data:
Reply from 192.168.2.28: Destination host unreachable.

Het IP adres van je router en je DNS server. In de meest gevallen is de thuis situatie is DNS server gelijk aan de router.  

In onderstaande voorbeeld wordt gebruikt gemaakt van de KPN router die werkt met 192.168.2.0/24 als netwerk range. In jouw geval kan het anders zijn. De P1 monitor geeft standaard in het grijs aan wat de adressen van de router/dns server zijn en kunnen gebruikt worden als indicatie.

Vast IP adres dialoog.
Bovenstaande afbeelding geeft het scherm weer als er geen vast IP adres is ingesteld.
Vast IP adres dialoog ingevuld.
Bovenstaande voorbeeld geeft aan hoe voor de bekabelde netwerkaansluiting IP 192.168.2.226 wordt gebruikt.

Waarschuwing: als je een fout maakt met de IP adressen dan kun effectief je zelf buiten sluiten omdat de Rpi niet meer bereikbaar is. Controleer de adressen dus extra voordat je deze opslaat. Een ander nadeel van deze optie is als je ISP een ander IP adres range gaat gebruiken of je wisselt van ISP dat je hoogst waarschijnlijk een nieuw IP adres range gaat gebruiken. Alle apparatuur die via DHCP een adres krijgen zullen werken maar de Rpi is niet meer te bereiken.

Kies de optie opslaan en dan zal het nieuwe IP adres worden ingesteld. Dit duurt normaal maar 10 a 15 seconden.

2: Het aanmaken van een FQDN domeinnaam.

Een FQDN ‘Fully Qualified Domain Name) is een volledig domeinnaam adres, inclusief hostnaam en een top level domein, zoals bijvoorbeeld mijn.p1-monitor.nl is de naam waar de API onder te vinden is op het Internet. Je kunt die zelf regelen als je al een FQDN hebt die gekoppeld is aan je Internet adres dat je van je ISP krijgt. Voorbeelden van dergelijk diensten zijn DuckDns, No-Ip, dynu.com. De P1-monitor heeft ondersteuning voor DuckDns ingebouwd.

Hoe je de FQDN ook regelt de naam moet ingesteld worden zoals hieronder aangeven. Ook als je een andere dienst gebruikt dan DuckDNS. Deze FQDN wordt voor het https TLS certificaat gebruikt.

Publieke domein naam.

Een DuckDns FQDN aanmaken

Ga naar https://www.duckdns.org/ en meld je aan via Google of op een van de andere manieren die worden aangeboden.

Vul in het veld domain de naam van je site. Het verstandig om hier een niet te herleiden naam te gebruiken. Dus niet P1-monitor.duckdns.org maar een abstracte naam zoals bijvoorbeeld kj2021m.duckdns.org. Klik op add domein. Doe deze actie vanuit je eigen netwerk dan wordt je publieke ISP IP adres meteen goed ingesteld.

Hiermee is je FQDN aangemaakt. Om te testen of deze ook correct werkt kun je het FQDN via ping uitproberen. Als alles goed gaat dan krijg je de volgende respons.

C:\Users\SecBro>ping kj2021m.duckdns.org

Pinging pt2109.duckdns.org [<je ISP IP>] with 32 bytes of data:
Reply from <je ISP IP>: bytes=32 time<1ms TTL=64
Reply from <je ISP IP>: bytes=32 time=1ms TTL=64
Reply from <je ISP IP>: bytes=32 time=1ms TTL=64
Reply from <je ISP IP>: bytes=32 time<1ms TTL=64

Ping statistics for <je ISP IP>:
  Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
  Minimum = 0ms, Maximum = 1ms, Average = 0ms

Het kan zijn dat dit niet meteen werkt en dat het even duurt voordat de DNS naam nog niet verwerkt is. Over het algemeen werkt dit binnen 5 minuten, maar het kan ook wel een uur duren. Als dit niet werkt dan moet dit probleem eerste opgelost worden voordat je verder gaat.

DuckDNS dialoog
DuckDns configuratie pagina.

Je ziet hier meerdere FQDN namen, dit is voor testwerk je hoeft maar een regel aan te maken.

Omdat je publieke ISP IP adres kan wijzigen moet DuckDNS op de hoogt gebracht worden. Dit gebeurt automatisch als in het token veld de token waarde uit het DuckDNS veld wordt overgenomen en de optie actief wordt geactiveerd. Eventueel kun je als een nieuwe ISP adres de periodieke automatische update forceren met de optie forceer update. Deze actie werkt alleen als de eerder genoemd ping test succesvol verliep.

DuckDNS dialoog voor auto update

3: Het forwarden van poort 80 en 443 op je router.

Dit is essentieel voor de correct werking en moet worden ingesteld in je router. Hieronder wordt het voorbeeld gegeven voor een KPN Experia V10A router. Voor andere routers moet je de handleiding raadplegen of zoeken op het Internet. Zoek op port forwarden.

Voorbeeld van de KPN router:

Deze routers zijn overigens ondingen. Als het niet lukt om in te loggen dan helpt een power cycle (spanning er af en weer op) meestal wel voor een dag of wat.

A: Login op je de V10A router

B: Kies op het tabblad network -> NAT -> Port mapping.

NAT router instelling

C: Kies de optie Add rule en maak twee regels voor poort 80 en 443 voor het vaste IP adres van je Rpi. In dit voorbeeld 192.168.2.226

Nat router instelling
NAT router instelling

Als alles goed is ingevoerd dan ziet de port mapping er als volgt uit.

NAT router regels

D: Log uit op de router.

4: Het aanmaken van het HTTPS TLS certificaat.

Ga naar de pagina config-API.php en vul in het blok Internet API het email adres in en set de API via het Internet actief adres op aan. Het email adres is nodig om eventuele SSL/TLS certificaten te kunnen herstellen. Als dit ingevuld is kies dan voor opslaan. Na een paar minuten zal het scherm als hieronder uit zien als alles goed gaat.  Heb geduld het kan beste even duren!

Internet API dialoog

Je kunt het testen door in een browser je FQDN in te voeren. Als voorbeeld http://kj2021m.duckdns.org/ Als onderstaande melding komt dat werkt port forwarding en is de API bereikbaar.

NGINX 404 melding
NGINX 404 melding.

Met activeren van het Internet API worden de volgende acties uitgevoerd. De nginx webserver configuratie wordt aangepast. Er wordt een Lets Encrypt TLS certificaat gemaakt dat gekoppeld is aan de FQDN. Het certificaat wordt automatisch vernieuwd voordat het verloopt. Dit gebeurt dagelijks.

Waarschuwing: je kunt het API uitschakelen en daarmee wordt tevens het Lets Encrypt TLS certificaat verwijderd. Mocht je bedenken en de API weer willen activeren dat kan dat maximaal 7 keer per week. Daarna moet je een week wachten voordat Lets Encrypt het aanmaken van certificaat weer toestaat voor die FQDN. Als je het binnen de 7 dagen stuk hebt gemaakt en niet kunt wachten dan moet je een nieuwe FQDN aanmaken en kan het proces weer opnieuw worden uitgevoerd. Let op als je dat te vaak doet dan kan Lets Encrypt je ISP IP adres blokkeren. Waarmee je deze optie niet meer te gebruiken is.

Testen van het TLS certificaat. Je kunt via ssllabs ( https://www.ssllabs.com/ssltest/index.html) de url invoeren. In dit voorbeeld kj2021m.duckdns.org. Na een paar minuten krijg je dan de veiligheid score.

SSL Labs TSL test resultaat
SSL LABS score

5: Het aanmaken van API tokens.

De API is beveiligt met toegangstokens. Een token is een soort wachtwoord voor API toegang. Je kunt een token toevoegen over verwijderen op de API config-API.php pagina. Zoals hieronder weergeven

API authenticatie tokens.
Api tokens aanmaken en verwijderen.

Als de nieuwe versie van de app uitkomt dan moet het token in de app worden ingevoerd.

6: Het testen van de API.

Je kunt de werking van de app ook testen met tools zoals curl. Hieronder een voorbeeld van een test met het token F12A05A9CEBA4D8E3AD6 het resultaat geeft aan hoelang de Rpi actief is.

curl -X GET -H "X-APIkey: F12A05A9CEBA4D8E3AD6" https:// kj2021m.duckdns.org /api/v1/status/19
[[19, "23:12:58", "Tijd verstreken sinds de laatste herstart:", 0]]

Als je meerder gebruikers van de API wil toepassen dat is het beste om voor elke gebruiker een eigen token te maken.  Mocht je de toegang dan willen ontzeggen dan kun je dat specifieke token verwijderen.  Minder dan 100 tokens hebben geen effect op de snelheid van de API.

Hiermee is de API actief en kan worden gebruikt voor de app of andere toepassingen.

P1-monitor download 201811

P1-monitor download 201811

Dit is niet de laatste versie. Voor alle downloads zie de software archief pagina waar alle versies van de P1 monitor te vinden zijn inclusief de laatste versie.

LET OP DIT IS NIET DE LAATSTE VERSIE!

P1 monitor is op de Raspberry PI 3 gebaseerde software om je slimme meter uit te lezen. Voor een meer uitgebreide beschrijving zie hier.

Upgrade of eerst installatie.

De software verkrijgen en installatie.

De P1 monitor software wordt geleverd als Raspberry Pi 3 B SDHC image die hieronder te downloaden is. Om de het image naar een SDHC card te kopiëren is een image tool nodig als je deze niet hebt dan kun je USB Image tool downloaden.  Zie hieronder hoe je dat daarna de rest van de ruimte op de SDHC card kunt gebruiken met raspi-config tool.

Mocht je een eerdere versie van de P1 monitor gebruiken exporteer dan deze data eerst!

  1. download het P1 monitor image file uit de download overzicht hieronder.
  2. pak het zip file uit en lees de bijlagen.
  3. kopieer het p1monYYYYMMDD-NN.NN-X.img file via de USB tool naar de SDHC card van minimaal 8GB  Let op! data op de card wordt overschreven en is niet meer te herstellen. (had ik al gehad over de export van data).
  4. Mocht je een groter SDHC card willen gebruiken dan kan je via de raspi-config tool de gehele SDHC card gebruiken. Dit is zeker aan te bevelen om slijtage van de SDHC card te verminderen.
  5. plaats de SDHC card in de Pi.
  6. start de Pi, netwerk en P1 kabel aangesloten.
  7. Importeer de data, als je al eerdere versie hebt gebruikt.

Veel plezier met de P1 monitor en laat weten hoe het bevalt.

Problemen oplossen.

Image past niet op de SDHC card:

  1. Je kunt proberen de donor SDHC card opnieuw te formatteren met een dergelijk tool als de SD formatter.
  2. Installeer het image op een groter SDHC card. Het ongebruikte deel van de SDHC card kun je vrijgeven via de raspi-config tool met de optie extend
  3. wis de browser cache als je layout problemen hebt.

Standaard wachtwoord besturingsysteem:

  1. Het standaard account en wachtwoord om in te kunnen loggen is p1mon met het wachtwoord  verandermij.
  2. Het advies dit wachtwoord na installatie aan te passen.

Juridisch spul en zo

Creative Commons-Licentie

Dit werk valt onder een Creative Commons Naamsvermelding-NietCommercieel 4.0 Internationaal-licentie.

De rechten van onderliggende softwareproducten zijn qua licentierechten niet gewijzigd Dit geldt voor bijvoorbeeld het besturingssysteem en javascript bibliotheken. De rechten van onderliggende producten gaan voor deze licentie.

DE SOFTWARE IS GELEVERD “ZOALS”, ZONDER GARANTIE VAN ENIGE SOORT, INCLUSIEF MAAR NIET BEPERKT OP DE GARANTIES VAN VERKOOPBAARHEID, GESCHIKTHEID VOOR EEN BEPAALD DOEL. IN GEEN GEVAL ZAL HET AUTEURS OF COPYRIGHT HOLDERS AANSPRAKELIJK ZIJN VOOR ENIGE EISEN, SCHADE OF ANDERE AANSPRAKELIJKHEID IN VERBAND MET DE SOFTWARE OF HET GEBRUIK VAN DE SOFTWARE.

Samengevat: gebruik is voor eigen risico.

Mocht je een eerdere versie van de P1 monitor gebruiken exporteer dan deze data eerst!

DOWNLOAD

SDHC images

P1 monitor wordt alleen ondersteund op de Raspberry Pi 3B of Pi3 B+.

Een Pi 2 kan werken maar geen garanties.  Een Pi Zero is nooit getest. Van de Pi 1 is bekend dat deze fouten geeft en verloop van tijd stopt / crashed.

Wat is er veranderd in versie 0.9.5 (Ron)

De CSS is aangepast wis de cache van je browser!

Bug / feature fixes:

De volgende scripts aangepast naar Pyhton3, dit is nodig om te kunnen garanderen dat de P1 monitor in de toekomst aangepast kan worden:
P1Scheduler (pip3 install python-crontab)
P1Watchdog.py (draait niet langer als root).
P1Semaphore.py
P1Db.py
P1SetWifi.py
semaphore.py vervangen voor semaphore3.py
utilnetwork3.py als Pyhton3 versie van de Pyhton2 versie.
Tests uitgevoerd of de ftp backup werkt naar folders onder de start folder dit werkt naar behoren naar /test en /test/twee. Probleem niet kunnen reproduceren.
P1monitor start script aangepast en draait als p1mon user en niet meer als root.
init.d startup vervangen voor SystemD startup. Herstart, start of stop van service kan via: sudo systemctl restart p1mon.service, sudo systemctl start p1mon.service, sudo systemctl stop p1mon.service.
P1SerReader.py, P1Db.Py, P1Watchdog.py, P1Weather.py, P1UdpDaemon.py aangepast zodat deze nu P1DbCopy gebruiken.
UI van actuele verwarming aangepast, zodat deze sneller laad en de time out indicator niet meer nodig is.
HighChart grafische bibliotheek vernieuwd naar de laatste versie 6.2.0
stats.php tooltip schoonheidsfoutje in afronding van de getallen aangepast.
Upgrade van de Nginx webserver naar versie: nginx/1.10.3
stats.php scherm in de navigator handels verwijderd, deze hebben voor dit scherm geen zin.

Nieuw:

basic json data (dropbox en udp) aangepast naar versie 5 en kamer temperatuur toegevoegd. IOS App P1 monitor aangepast naar versie 1.1 geeft nu ook de kamer temperatuur weer indien deze wordt gebruikt.
Nieuwe P1DbCopy script gemaakt. Dit vermindert de kans op data verlies.

Security patches tot aan 10-11-2018.

Deze versie is noodzakelijk voor de IOS app die we aan het ontwikkelen zijn.

Dit is niet de laatst versie deze staat als eerste artikel op de site. Voor historische versies zie hier.

Vul aub de app enquête in (rechts boven in de pagina) over de IOS (Apple) app.