ID.nl logo
Zo maak je je eigen bewegingssensor
© Gorodenkoff Productions OU
Huis

Zo maak je je eigen bewegingssensor

BTHome is een nieuwe open standaard voor sensors en knoppen die data via bluetooth doorsturen, ontstaan via het opensource-project Home Assistant. Elk apparaat dat het BTHome-protocol implementeert, wordt automatisch door Home Assistant herkend. Dat is handig als je zelf een bluetooth-sensor wilt maken.

In dit artikel leggen we uit hoe BTHome werkt en programmeren we in CircuitPython een sensorbordje dat detecteert wanneer het beweegt en zijn toestand via bluetooth aan Home Assistant doorstuurt.

Lijkt dit je interessant, maar weet je nog maar weinig van Home Assistant, lees dan eerst dit artikel: Maak je huis slim met Home Assistant

Code downloaden In dit artikel worden best lange voorbeelden van stukken code gegeven. Omdat overtikken van code erg foutgevoelig is, kun je die code beter downloaden en daarna bekijken of kopiëren. Zie het bestand code-bthome.txt voor de code-snippets die in dit artikel genoemd worden. De volledige code van dit project vind je op GitHub.

Heel wat goedkope sensors sturen via bluetooth low-energy data rond naar iedereen in de buurt die het maar wil oppikken. Dat heet broadcasting. Zo’n sensor doet een meting, stuurt de data rond, gaat even in slaap, wordt wakker en stuurt dan de volgende meting door.

Een domoticacontroller zoals Home Assistant kan die bluetooth-pakketjes oppikken via de bluetooth-chip in bijvoorbeeld de Raspberry Pi waarop je de software draait. Maar met alleen het datapakketje ben je nog nergens: je hebt nog een decoder nodig die het formaat van de data kent en er de nuttige sensorwaarden uit haalt. Omdat elke fabrikant zijn eigen formaat gebruikt, heb je daardoor allerlei integraties nodig in Home Assistant: voor Xiaomi, ThermoPro, Inkbird, Govee, Qingping enzovoort. 

Eén standaard voor alle sensors

De makers van Home Assistant besloten daarom om een formaat te bedenken dat allerlei soorten sensors ondersteunt: BTHome. Apparaten die bluetooth-data uitsturen volgens dit formaat, worden dan automatisch door Home Assistant herkend aan de hand van de BTHome-integratie.

Het BTHome-formaat waarmee compatibele apparaten hun data uitzenden, is uitgebreid gedocumenteerd. Dit kun je raadplegen als je in je eigen apparaten van BTHome wilt gebruikmaken. Hiervoor kun je de programmeertaal van jouw keuze voor jouw hardware gebruiken, zolang je maar BLE-advertisements kunt uitsturen.

BTHome is een open standaard voor bluetooth-sensors. Klik op de afbeeldingen voor een grotere weergave.

Bluetooth in Home Assistant inschakelen

Voor je met BTHome aan de slag gaat, dien je eerst na te gaan of je bluetooth-adapter door Home Assistant wordt herkend. Heb je een ingebouwde bluetooth-adapter, bijvoorbeeld op je Raspberry Pi, dan wordt die normaal gesproken al herkend op de pagina Instellingen / Apparaten & Diensten / Integraties. Zo niet, bijvoorbeeld als je een externe bluetooth-adapter via usb aansluit, klik dan rechts onderaan op die pagina op Integratie toevoegen en kies Bluetooth. Bevestig met Opslaan dat je de herkende adapter wilt toevoegen.

Als dit werkt, zul je in de integraties doorgaans al allerlei bluetooth-apparaten herkend zien worden. Dat is dankzij de integraties voor Xiaomi, ThermoBeacon, Qingping, ThermoPro, RuuviTag en vele andere die standaard al ingeschakeld zijn. De ondersteuning voor BTHome dien je nog expliciet in te schakelen, maar daarvoor hebben we eerst een werkend BTHome-apparaat nodig.

Zorg dat Home Assistant je bluetooth-adapter herkent.

Energiezuinig bluetooth-bordje

Voor bluetooth alleen hebben we geen ESP32-microcontrollerbordje of een Raspberry Pi Pico nodig, die immers ook een wifi-chip hebben en daardoor meer energie verbruiken. Daarom kiezen we voor een microcontrollerbordje gebaseerd op de nRF52840, een populaire bluetooth-chip van Nordic Semiconductor. Dit soort bordjes zijn energiezuinig en worden door talloze programmeeromgevingen ondersteund.

In dit artikel gebruiken we als sensorbordje een XIAO nRF52840 Sense van Seeed Studio. Het is een uiterst compact bordje (21 bij 17,5 mm) waarin een microfoon, accelerometer en gyroscoop zijn ingebouwd. Met die twee laatste kun je detecteren wanneer het bordje beweegt. Kies je een ander bordje, dan zul je de instructies in dit artikel wellicht hier en daar moeten veranderen, maar de aanpak blijft hetzelfde.

De Seeed XIAO nRF52840 Sense is een uiterst compact microcontrollerbordje met bluetooth en sensors.

CircuitPython op de Seeed XIAO nRF52840 Sense

Eerst dienen we CircuitPython op het bordje te installeren, een op Python gebaseerde programmeertaal voor microcontrollers. Download op de website van CircuitPython het firmwarebestand voor je bordje, in ons geval CircuitPython 8.0.2 voor de Seeed Studio XIAO nRF52840 (Sense). Het bordje bestaat ook in een versie zonder de sensors maar met dezelfde firmware, maar voor dit artikel hebben we de Sense-versie met sensors nodig.

Sluit daarna het bordje via usb aan op je computer en druk twee keer snel na elkaar op het minuscule resetknopje (aangeduid met RST) naast de usb-aansluiting.

Op je computer verschijnt nu een schijf met de naam XIAO-SENSE. Sleep het gedownloade bestand adafruit-circuitpython-Seeed_XIAO_nRF52840_Sense-nl-8.0.2.uf2 naar de schijf. Daarna koppelt je computer de schijf af en koppelt hij een nieuwe schijf met de naam CIRCUITPY aan. Je bordje is nu klaar om te programmeren.

©Seeed Studio

Druk twee keer snel na elkaar op het minuscule resetknopje naast de usb-aansluiting.

Mu-editor

De eenvoudigste manier om je bordje in CircuitPython te programmeren, is met de code-editor Mu, die zowel voor Windows als voor macOS en Linux beschikbaar is. Start Mu op, klik bovenaan links op Mode, kies CircuitPython uit de lijst en klik op OK. Doorgaans wordt nu je aangesloten bordje herkend. Klik bovenaan op Serial om dit te controleren. Dit opent onderaan een tekstveld van de REPL (read–eval–print-loop). Druk je daarin op Enter, dan krijg je de CircuitPython-versie te zien die je bordje draait, samen met de naam van het bordje.

In het grotere tekstveld bovenaan kun je nu je code typen die je op je bordje wilt uitvoeren. Om te testen of de hardware werkt, typ je daarin de volgende code die de ingebouwde led doet knipperen:

De code kun je overnemen vanuit dit bestand.

Klik bovenaan op Save, selecteer code.py en bevestig dat je dit bestand wilt overschrijven. Als je nu in de REPL op Ctrl+D drukt om het bordje te herstarten, draait je CircuitPython-code en knippert de led.

Met de code-editor Mu programmeer je je microcontrollerbordje in CircuitPython.

Te ingewikkeld?

Een bewegingsmelder kopen hoeft ook niet duur te zijn

Sensordata uitlezen

Door de led te laten knipperen, weten we dat je bordje werkt. Maar we willen de sensordata uitlezen. We gebruiken de IMU (Inertial Measurement Unit), die een accelerometer en gyroscoop bevat. Deze wordt ondersteund door een bibliotheek van Adafruit. Download dus de CircuitPython-bibliotheken, met name de bundel voor CircuitPython 8.x. Pak het zip-bestand uit en kopieer de mappen adafruit_bus_device, adafruit_lsm6ds en adafruit_register naar de map lib van de drive genaamd CIRCUITPY. Die map bevat nu dus drie mappen.

Schrijf nu in het bestand code.py het volgende programma:

De code kun je overnemen vanuit dit bestand.

Deze code schakelt de IMU in, wacht 50 ms tot de sensor is ingeschakeld, stelt de I2C-bus in en initialiseert dan de IMU. Daarna lezen we elke seconde de versnelling en hoeksnelheid over de drie assen in en tonen deze. Sla je dit bestand op met Ctrl+S, dan krijg je in de REPL de sensorwaardes te zien. Als je wat zwaait met het bordje, zie je onmiddellijk het effect op de metingen.

We lezen de versnelling van de accelerometer en hoeksnelheid van de gyroscoop in.

Bewegingsdetectie

Dan moeten we nu uit deze data, die continu veranderen, beweging detecteren. We willen een eenvoudig signaal: het bordje beweegt of het bordje beweegt niet. Dat kun je op allerlei geavanceerde manieren doen, met de accelerometer, gyroscoop of een combinatie van de twee. Voor de eenvoud gebruiken we hier gewoon de gyroscoopwaardes. We kwadrateren elk van de drie componenten en tellen ze op, en we beschouwen het resultaat als beweging wanneer dit groter is dan 0,01.

Onze while-lus wordt dan eenvoudig:

De code kun je overnemen vanuit dit bestand.

We verminderen het slaapinterval tot 100 ms om een snellere reactie te krijgen. Elke keer dat je nu het bordje beweegt, krijg je “Moving” te zien in de REPL. Pas indien nodig de drempelwaarde 0.01 aan.

Apparaten die BTHome ondersteunen Grote fabrikanten blijven hun eigen formaat gebruiken, maar er bestaan wel diverse opensource-projecten die ondertussen BTHome ondersteunen. Het bekendste is ATC_MiThermometer, alternatieve firmware voor sommige bluetooth-thermometers van Xiaomi. Als je deze firmware op een apparaat hebt geïnstalleerd, kun je instellen dat deze de temperatuur in BTHome-formaat uitstuurt.

Ook de b-parasite, een grondvochtigheidssensor waarvan het ontwerp van de hardware én de firmware opensource is, kan zijn data in BTHome-formaat uitsturen.

©Raphael Baron

De opensource-grondvochtigheidssensor b-parasite ondersteunt het BTHome-formaat om zijn sensordata via bluetooth uit te sturen.

Bluetooth-advertenties

Ons bordje detecteert nu beweging en toont dat in de REPL, maar nu willen we dit signaal via bluetooth uitsturen. Daarvoor dienen we eerst in de specificatie van het BTHome-formaat te duiken. In bluetooth kunnen we via een advertentie data uitsturen naar iedereen in de buurt. Zo’n advertentie bestaat uit meerdere elementen en elk element op zijn beurt uit een aantal bytes: eerst de lengte van het element (dit lengtebyte uitgezonderd), dan het type element en daarna data waarvan de betekenis van het element afhangt.

Een advertentie die door BTHome wordt begrepen, kan uit drie elementen bestaan. Eén element is verplicht: Service Data (16bit-UUID). Hierin komen de sensordata te staan. Een element Flags is sterk aangeraden. En optioneel is een element Local Name, waarmee het apparaat zijn naam adverteert.

De website van BTHome legt het formaat van de bluetooth-advertenties byte voor byte uit.

Structuur BTHome-advertentie

Laten we dus eens byte voor byte de advertentie samenstellen, met deze drie elementen. Eerst nemen we de flags op en die bytes zijn altijd hetzelfde voor BTHome: [0x02, 0x01, 0x06]. We gebruiken hier de Python-notatie voor een lijst (met rechte haken rond de elementen van de lijst) en de hexadecimale notatie van de bytes, elk voorafgegaan dor 0x. De 2 staat voor de lengte van het element (het aantal bytes erna), de 1 duidt aan dat het element van het type Flags is en 6 betekent LE General Discoverable Mode en BR/EDR Not Supported. Samengevat: dit is een apparaat met alleen bluetooth low-energy dat algemeen te vinden moet zijn.

Daarna komt een element met de eigenlijke sensordata. De lengte weten we nog niet, dus die laten we even open. Het type is 0x16, wat betekent dat het om service data met een 16bit-UUID gaat.

Daarna komen de data zelf. Die beginnen met het UUID en dat zijn altijd de bytes [0xD2, 0xFC]: het UUID van Allterco Robotics (de maker van Shelly-apparaten), dat gebruikers een licentie geeft om dit UUID te gebruiken voor BTHome.

Daarna komt een byte met apparaatinformatie. Als het om versie twee van het BTHome-formaat zonder encryptie gaat, is dit byte altijd 0x40.

Dan komen nog twee bytes: één met het type data (beweging wordt voorgesteld door 0x22) en één met de data zelf: 0 voor geen beweging, 1 voor wel beweging.

En nu kunnen we dus de bytes voor de sensordata aanmaken: [0x06, 0x16, 0xD2, 0xFC, 0x40, 0x22, 0x01]. Het eerste byte is 6, omdat het de lengte is van de bytes erna.

Tot slot voegen we nog een element met de naam van het apparaat toe, bestaande uit de lengte, 0x09 voor het type en dan de bytes van de naam.

Klasse voor BTHome-advertentie

Om dit wat overzichtelijker te maken, definiëren we een klasse in onze CircuitPython-code die deze elementen samenneemt en ze daarna eenvoudig naar de bytes omzet die we in de bluetooth-advertentie kunnen uitsturen. De code ziet er als volgt uit:

De code kun je overnemen vanuit dit bestand.

Je ziet hier dat we de elementen voor de flags en service data definiëren. In de methode __init__ (die een object van de klasse aanmaakt) zetten we de naam die je aan het object doorgeeft om naar een element voor de local name. Op het moment dat we de bewegingstoestand van de sensor willen adverteren, kunnen we dan eenvoudigweg de methode adv_data van het object roepen met als argument 1 voor beweging en 0 voor geen beweging. Die methode plakt al die reeksen bytes op de juiste manier aan elkaar en vervangt het laatste byte van de service data door de bewegingstoestand.

Beweging adverteren

Dan komt nu de laatste stap, de bewegingsdetectie via bluetooth adverteren. Daarvoor importeren we in het begin van de code eerst de adapter van de module _bleio):

from _bleio import adapter

We maken dan op het einde van onze code een object van de klasse BTHomeAdvertisement met de naam van ons apparaat, en de while-lus breiden we uit om de bewegingstoestand telkens te adverteren:

De code kun je overnemen vanuit dit bestand.

Bij beweging vragen we aan het object bthome de advertentiedata voor beweging op en anders de advertentiedata voor geen beweging. We tonen de data in de REPL en adverteren ze via de bluetooth-adapter. Na 100 ms stoppen we met adverteren en doen we weer een meting. Daarna adverteren we weer met de nieuwe data en zo blijft dat aan de gang. Zoals eerder gezegd vind je op GitHub de volledige code.

Integratie in Home Assistant

Dan nu de test: detecteert Home Assistant onze sensor? Ga in het dashboard van Home Assistant naar Instellingen / Apparaten en Diensten / Integraties. Klik rechts onderaan op Integratie toevoegen en kies BTHome. Als je bordje aan het adverteren is, wordt het hier al onmiddellijk herkend. Klik op Opslaan, ken het eventueel aan een ruimte toe en klik dan op Voltooien. Daarna kun je het apparaat bekijken en de bewegingssensor erin toevoegen aan je dashboard of automatisaties.

Onze BTHome-bewegingssensor wordt automatisch herkend in Home Assistant.

Flexibel formaat

We hebben in dit artikel een eenvoudig voorbeeld gemaakt van een sensor die één type data uitstuurt: 1 of 0 voor wel of geen beweging. Maar het BTHome-formaat ondersteunt tientallen datatypes, waaronder temperatuur, luchtvochtigheid, batterijpercentage, stroom en snelheid.

BTHome is ook een flexibel formaat: je kunt de data van meerdere sensors tegelijk in één advertentie uitsturen. Stel dat we op onze XIAO nRF52840 Sense na de beweging ook de temperatuur willen uitsturen, dan voegen we aan de service data gewoon 0x02 voor de temperatuur toe en dan twee bytes die de temperatuur in honderdsten van een graad Celsius voorstellen. En we kunnen er ook nog 0x01 voor het batterijpercentage aan toevoegen en dan een byte met een waarde van 0 tot 100. De BTHome-integratie van Home Assistant pikt al die types en bijbehorende data op. Als je dus ooit een eigen bluetooth-sensor wilt maken, probeer dan BTHome eens uit.

13 Een greep uit de types sensors die BTHome ondersteunt.

 

Sensordata versleutelen Het BTHome-formaat dat we in dit artikel hebben gebruikt, stuurt alle sensordata onversleuteld uit. Iedereen in de buurt met een bluetooth-ontvanger kan deze data dus meelezen. Heb je dat liever niet, dan moet je gebruikmaken van de versleuteling in BTHome. De service data bevatten dan na de formaataanduiding 0x41 (BTHome v2 met versleuteling) versleutelde data, een teller en een Message Integrity Check (MIC). Alleen wie de sleutel heeft waarmee de data zijn versleuteld, kan de oorspronkelijke sensordata uit deze geadverteerde data reconstrueren. De BTHome-integratie in Home Assistant vraagt je om de sleutel in te voeren als je een BTHome-apparaat met encryptie wilt toevoegen.

BTHome ondersteunt ook versleuteling om pottenkijkers tegen te houden.

▼ Volgende artikel
Zo gebruik je je smartphone als afstandsbediening voor je tv
© ER | ID.nl
Huis

Zo gebruik je je smartphone als afstandsbediening voor je tv

Je smartphone is altijd binnen handbereik. Je leest er het nieuws op, stuurt berichten en checkt je mail. Dus waarom zou je hem niet óók gebruiken om je televisie mee te bedienen? Dat kan verrassend eenvoudig.

In dit artikel vertellen we je:
  • Welk soort bedienings-apps er zijn voor je televisie
  • Hoe je deze apps voor Android en iOS installeert
  • Of je beter de app van de fabrikant zelf moet gebruiken
  • Welke extra functies afstandsbedienings-apps bieden

Ook interessant: Dit zijn de beste televisies van 2023!

Een smart-tv bedienen via je telefoon gaat meestal via wifi. Belangrijk daarbij is dat zowel je tv als je smartphone met hetzelfde wifinetwerk zijn verbonden. Er bestaan ook apps die werken met infrarood, maar daarvoor moet je toestel wel een ingebouwde IR-blaster hebben – iets wat je bijvoorbeeld bij bepaalde modellen van Xiaomi, Honor of Oppo tegenkomt. In dit artikel richten we ons op bediening via wifi, omdat die methode universeel werkt, ongeacht welk toestel je gebruikt.

Daar is een app voor

In de appstore van je telefoon vind je talloze afstandsbedieningsapps als je zoekt op 'tv remote'. Niet elke app werkt even goed met elke televisie, dus soms is het even uitproberen. Let bij het kiezen goed op het aantal downloads en beoordelingen, de gemiddelde score en of er betaalde functies of advertenties in zitten.

Een belangrijke waarschuwing: een afstandsbedienings-app hoeft geen toegang tot je contacten, camera of locatie. Vraagt een app daar toch om? Dan is het verstandiger om deze direct te verwijderen.

Apps van fabrikanten

De meeste tv-merken bieden een eigen app aan waarmee je hun toestellen kunt bedienen. Die zijn doorgaans betrouwbaarder, werken soepeler en bieden vaak extra mogelijkheden. Afhankelijk van het merk kun je de volgende apps gebruiken:

Samsung: SmartThings (Android / iOS)

- LG: LG ThinQ (Android / iOS)

- Sony: Google Home (Android / iOS)

- Philips: Philips Smart TV (Android / iOS)

- Panasonic: TV Remote 3 (Android / iOS)

- TCL: TCL Home (Android / iOS)

- TCL: MagiConnect T-Cast TCL (Android / iOS)

- Hisense: VIDAA Smart TV (Android)

Niet elke fabrikant kiest dezelfde aanpak. Bij Samsung, LG en TCL zit de bediening in een bredere app waarmee je ook andere slimme apparaten kunt aansturen. Sony werkt uitsluitend via de Google Home-app, net als andere toestellen met Google TV of Android TV, zoals sommige modellen van TCL en Philips. Die moeten dan wel aan je Google Home-netwerk zijn toegevoegd.

De installatie is doorgaans simpel. Download de app uit de store, zorg dat je telefoon op hetzelfde netwerk zit als je tv, en volg de instructies. Soms moet je een QR-code op het tv-scherm scannen of een code invoeren die verschijnt tijdens het koppelen.

Met de app van Philips kun je naast de televisie ook afzonderlijk de Ambilight-verlichting op de tv regelen.

Extra functies

Afhankelijk van de app kan je de volgende extra functies aantreffen:

  • Een toetsenbord, ideaal voor zoekopdrachten
  • De op je tv geïnstalleerde smart tv-apps starten
  • Foto’s, video’s of muziek vanop je smartphone op tv bekijken of beluisteren
  • Het scherm van je smartphone spiegelen op de tv
  • De camera van je smartphone delen met de tv

De meeste apps hebben ook navigatieknoppen die vergelijkbaar zijn met die van je afstandsbediening.

Zijn deze apps echt handig?

Niet alle fabrikanten lijken overtuigd van de toegevoegde waarde van een afstandsbedienings-app, en dat zegt misschien al genoeg. Voor snelle acties, zoals direct een app openen of iets streamen naar je tv, is het best handig. Maar voor simpele functies zoals zappen, het volume regelen of van bron wisselen, blijft de traditionele afstandsbediening vaak praktischer.

Toch kunnen smartphone-apps het verschil maken bij het zoeken naar content. Een toetsenbord op je telefoon typt nu eenmaal fijner dan via de afstandsbediening op een tv-scherm. Sommige apps bieden bovendien extraatjes zoals schermdeling of het gebruik van je camera op het grote scherm.

Of zo'n app voor jou echt iets toevoegt, ontdek je vooral door het zelf uit te proberen. Maar voor de zekerheid kun je die fysieke afstandsbediening toch maar beter binnen bereik houden.

▼ Volgende artikel
8 smartphones getest: veel kwaliteit tussen 300 en 500 euro
© Maria Vitkovska - stock.adobe.com
Huis

8 smartphones getest: veel kwaliteit tussen 300 en 500 euro

Wat voor smartphone koop je voor 300 tot 500 euro? Oftewel: hoe goed is een toestel in deze prijsklasse en welke compromissen moet je voor lief nemen? Of is de mid-range-smartphone vandaag de dag zo compleet dat doorsparen voor een duurder model niet meer nodig is? ID.nl vergelijkt acht smartphones van evenveel merken.

In dit artikel testten we acht mid-range-smartphones van € 300 tot € 500 euro. Welke komt het beste uit de test?:

  • Samsung
  • OnePlus
  • HMD
  • Motorola
  • Google
  • Xiaomi
  • Fairphone
  • Nothing

Ook interessant: Smartphone en oordoppen van hetzelfde merk: een goed idee?

In deze vergelijkende test vind je – in willekeurige volgorde – toestellen van Samsung, OnePlus, HMD, Motorola, Google, Xiaomi, Fairphone en Nothing. Alle telefoons zijn uitvoerig in de praktijk gebruikt. Eén ding kunnen we al verklappen: je kunt voor 300 tot 500 euro tegenwoordig kiezen uit erg complete smartphones waar je jaren mee vooruit kunt.

Hoe we testen

Voor deze uitgebreide test hebben we acht mid-range-smartphones getest. Dat noemen wij telefoons die tussen de 300 en 500 euro kosten. We gaan uit van straatprijzen, dus de verkoopprijzen die een of meerdere bekende webwinkels recent hanteerden. Een straatprijs kan lager zijn dan de adviesprijs van de fabrikant en geeft een eerlijk beeld van wat je in een bepaalde prijsklasse kunt kopen.

Bij het testen van een smartphone letten we onder andere op de bouw- en schermkwaliteit, aanvullende technische functies als draadloos opladen en de mate van stof- en waterdichtheid. In het gebruik kijken we ook naar de technische prestaties, de accuduur, oplaadsnelheid en mogelijkheden en kwaliteit van de camera’s. Duurzaamheid speelt ook een rol, want sommige geteste telefoons zijn (enigszins) te repareren.

Tot slot nemen we de geïnstalleerde software en het beloofde updatebeleid onder de loep. Dat wil zeggen: hoelang garandeert de fabrikant software- en beveiligingsupdates.

©StudioPN - stock.adobe.com

De kwaliteit van de camera’s is een belangrijke eigenschap.

HMD Skyline

De HMD Skyline is een toestel van het Fins-Chinese HMD, dat voorheen betaalde om telefoons onder de Nokia-naam te mogen verkopen. De Skyline heeft qua uiterlijk veel weg van een oude Nokia Lumia-smartphone. Het toestel oogt lomp en is dat ook, waardoor hij niet prettig vasthoudt. Het gewicht is met 209 gram ook aan de hoge kant voor een telefoon met een 6,55inch-scherm en een relatief kleine 4600mAh-accu.

Maar: het ontwerp heeft ook een plus. Als je een beetje handig bent, kun je via de officiële reparatiehandleiding zelf de Skyline uit elkaar halen om het scherm, de accu, usb-c-poort, luidspreker of achterkant te vervangen. Die vervangende onderdelen verkoopt HMD via reparatiebedrijf iFixit voor 15 tot 99 euro – afhankelijk van het onderdeel. Zo kun je in theorie langer met de telefoon doen.

Jammer genoeg weet de Skyline ons als smartphone niet echt te overtuigen. Het toestel krijgt slechts twee Android-upgrades en drie jaar beveiligingsupdates – waar sommige concurrenten zes of zeven jaar beloven. Daarnaast is de Qualcomm-processor wat langzaam, houdt de accu het net aan een lange dag vol en heeft de hoofdcamera moeite met bewegende situaties. Dat de HMD Skyline de eerste Android-smartphone is met ondersteuning voor draadloos magnetisch opladen via Qi2, voelt daarom als een vreemde prioriteit.

Pluspunten

  • Geschikt voor Qi2

  • Zelf te repareren

Minpunten

  • Lomp ontwerp

  • Te kort updatebeleid

  • Sommige specificaties vallen tegen

Nothing Phone (2a) Plus

De Nothing Phone (2a) Plus is het nieuwste toestel van het Engelse Nothing, dat onder leiding staat van de vroegere directeur van OnePlus. Verwarrend is dat de Phone (2a) Plus een variant is op de Phone (2a), met iets betere specificaties en een ietwat hogere prijs. Dat kan kiezen lastiger maken.

Het belangrijkste is dat de Phone (2a) Plus een erg prettige telefoon is. De transparante achterkant oogt fraai en de drie ledlampjes die in de behuizing verwerkt zijn, kunnen oplichten bij een inkomend telefoongesprek, bepaalde notificaties of bijvoorbeeld een aflopende timer. Een leuke toevoeging.

De smartphone heeft verder een uitstekend 6,7inch-oledscherm, gaat anderhalve dag mee op een acculading en kan snelladen met 50 watt. De gebruikte MediaTek-processor is erg snel en Nothing stopt er een royale 12 GB werkgeheugen bij. Op de 256 GB opslagcapaciteit kun je veel apps, games en foto’s kwijt. Het toestel heeft ook prima camera’s, al zijn die niet bovengemiddeld.

Mogelijk mis je ondersteuning voor e-sim. Wij missen vooral een degelijk updatebeleid. Nothing belooft drie Android-upgrades en vier jaar beveiligingsupdates voor de Phone (2a) Plus. Dat is niet slecht, maar veel geteste telefoons plakken hier een jaar of meer aan vast.

Pluspunten

  • Fraai ontwerp met ledlampjes

  • Erg lange accuduur

  • Prettige specificaties

Minpunten

  • Weinig verschil met gewone Phone (2a)

  • Updatebeleid kan beter

Samsung Galaxy A55

Samsung hoort bij de grootste smartphoneverkopers van Nederland en boekte in 2024 veel succes met de Galaxy A55. Die krijgt in het voorjaar ongetwijfeld een opvolger, wat goed is om in je achterhoofd te houden bij het eventueel kiezen voor de A55. Wat niet wil zeggen dat het nu een slechte koop is. De telefoon heeft een premium ogende en aanvoelende behuizing van aluminium en glas, en is waterdicht en stofbestendig.

Ook het oledscherm laat een goede indruk achter. De Galaxy A55 is snel – maar niet de snelste in deze test – en gaat probleemloos een lange dag mee voordat je de accu moet opladen. Dat opladen duurt wel relatief lang, want de grens ligt op 25 watt. Houd er ook rekening mee dat de instapversie van de Galaxy A55 ‘slechts’ 128 GB opslagcapaciteit heeft. Het iets duurdere 256GB-model kan een betere koop zijn.

De camera’s van de smartphone zijn ruim voldoende en dat geldt ook voor het vijfjarige updatebeleid. Wel vinden we het jammer dat Samsung al jaren zoveel commerciële apps in zijn OneUI-softwareschil stopt. Het bedrijf dringt veel extra’s aan je op, in de hoop je in een ecosysteem te krijgen (en houden). Gelukkig is de A55 ook zonder die extra’s een interessante keuze.

Pluspunten

  • Complete smartphone

  • Premium uitstraling

  • Scherpe prijs

Minpunten

  • Opladen duurt best lang

  • Drukke software

Apple iPhone SE (2022)

We hebben getwijfeld of we de iPhone SE (2022) in deze test zouden meenemen, maar uiteindelijk besloten van niet. Aanvankelijk twijfelden we vanwege de leeftijd, want de iPhone SE is al bijna drie jaar te koop en dat zie je terug in de specificaties. Dat we hem niet testen, komt ook doordat Apple hem eind december zelf uit de verkoop haalde, omdat de iPhone SE geen usb-c-poort heeft die tegenwoordig verplicht is in de EU.

Dat neemt niet weg dat je de iPhone SE (2022) in sommige winkels nog zult vinden en Apple maakt er nog updates voor, want het toestel is in de rest van de wereld nog wel te koop. Er gaan wel geruchten dat er een nieuwe SE-generatie komt. Je zou de iPhone SE dus kunnen overwegen.

De iPhone SE is nog verrassend snel en krijgt nog jaren iOS-updates, want Apple staat bekend om lange ondersteuning. Daar staat tegenover dat het HD-lcd-scherm van 4,7 inch met 60Hz-verversing niet kan tippen aan grotere 120Hz-oledschermen. De enkele 12megapixel-camera achterop is beperkt en 64 GB opslag is voor sommigen te weinig.

Ook oogt het ontwerp met dikke schermranden en een fysieke knop gedateerd, en gebruikt hij zoals gezegd nog lightning in plaats van usb-c. Als je toch een compacte en lichte telefoon wilt, kan de SE een goede keus zijn.

De Apple iPhone SE wordt vanwege het ontbreken van usb-c officieel niet meer in Europa verkocht.

OnePlus Nord 4

De OnePlus Nord 4 is de meest luxe smartphone in deze test. De behuizing is namelijk van één stuk metaal gemaakt, wat knap is omdat zo’n behuizing normaliter niet goed werkt met 5G-internet. 5G werkt echter uitstekend op de Nord 4, die premium aanvoelt en stof- en waterbestendig is. Het toestel is niet volledig waterdicht.

Het grote 6,74inch-oledscherm met 120Hz-verversingssnelheid is een genot om naar te kijken en het toestel is ook lekker snel. In de basisconfiguratie zit 12 GB werkgeheugen en 256 GB opslag. Voor niet eens zo heel veel meer euro koop je een 16GB/512GB-variant. De smartphone gaat zeker anderhalve dag mee op een acculading, te danken aan de grote 5500mAh-accu. Snelladen kan met 100 watt, maar de benodigde snellader dien je zelf te kopen. Goedkoper is opladen met een standaard usb-c-lader, wat langer duurt, maar nog steeds lekker snel kan.

De OnePlus Nord 4 draait op een drukke OxygenOS-softwareschil die sprekend lijkt op ColorOS van zustermerk Oppo. Het updatebeleid is met vier jaar Android-upgrades en zes jaar beveiligingsupdates ruim voldoende. OnePlus weet zo een prettig totaalpakket af te leveren, al is de Nord 4 vanwege zijn grote formaat niet voor iedereen comfortabel om vast te houden.

Pluspunten

  • Fantastische accuduur

  • Veel werkgeheugen en opslagcapaciteit mogelijk

  • Zes jaar updates

Minpunten

  • Drukke softwareschil

  • Speciale snellader prijzig

Xiaomi 14T

Xiaomi biedt verschillende mid-range-smartphones aan, waarvan de Xiaomi 14T qua prijs nét mee kan in deze vergelijkende test. Het toestel is een goedkopere versie van de 14T Pro, die betere specificaties heeft. De 14T lijkt op sommige punten een dure smartphone, met een fraaie en mat afgewerkte behuizing die waterdicht en stofbestendig is. Ook het 6,67inch-oledscherm met 144Hz-verversingssnelheid ziet er indrukwekkend uit.

We zijn ook blij met de drie camera’s achterop. Naast een goede hoofdcamera maak je foto’s met een capabele groothoekcamera en telelens, die het beeld twee keer dichtbij haalt zonder kwaliteitsverlies. We vinden de twee keer zoom wel wat beperkt.

Er zijn echter belangrijkere redenen waarom de Xiaomi 14T ons niet omver weet te blazen. De accu gaat bij intensiever gebruik tot bedtijd mee, maar daar houdt het op. Op sommige avonden pakken we daarom voor de zekerheid een oplader. De luidsprekers zijn van matige kwaliteit en de trilmotor in het toestel is eenvoudig, wat een goedkoop gevoel geeft. Dat gevoel wordt versterkt door Xiaomi’s keuze om advertenties en aanbevolen apps in de software te stoppen, wat wij niet bij de prijs vinden passen. Het updatebeleid is met vier Android-upgrades en vijf jaar beveiligingsupdates wel prima.

Pluspunten

  • Erg goed scherm

  • Cameramogelijkheden

  • Fraai ontwerp

Minpunten

  • Duidelijke bezuinigingen

  • Reclame in software

Motorola Edge 50 Neo

De Motorola Edge 50 Neo is onze favoriete geteste smartphone in dit overzicht. Dat komt door zijn prijs-kwaliteitsverhouding in combinatie met het updatebeleid van vijf jaar. Motorola belooft vijf jaar Android-upgrades en beveiligingsupdates, wat wij in deze prijsklasse een nette combinatie vinden. Tel er complete specificaties bij op en je hebt voor net geen vierhonderd euro een telefoon waar je jarenlang veel plezier van kunt hebben.

De Edge 50 Neo is met zijn 6,4inch-scherm en gewicht van 171 gram lekker handzaam en licht, en houdt dankzij de kunstleren achterkant erg comfortabel en stevig vast. Het oledscherm met 120Hz-verversingssnelheid laat een goede indruk achter en onder de motorkap worden we blij verrast met liefst 12 GB werkgeheugen en 512 GB opslagruimte. Ook e-sim, wifi 6E en draadloos opladen met maximaal 15 watt zijn van de partij. De 4310mAh-accu gaat probleemloos een lange dag mee en kan snelladen met 65 watt, mits je een usb-pd-oplader gebruikt.

Met de drie camera’s achterop (primair, groothoek en telelens) schiet je in veruit de meeste omstandigheden prima foto’s. We zijn wat minder enthousiast over de gebruikte MediaTek-processor, die niet de snelste is maar voldoende moet zijn voor vijf jaar gebruik. Opmerkelijk is dat Motorola de Edge 50 Neo langer updates geeft dan zijn veel duurdere smartphones.

Pluspunten

  • Compact, lichtgewicht ontwerp

  • Erg compleet

  • 512 GB opslagcapaciteit

Minpunten

  • Niet de snelste processor

Google Pixel 8a

Google biedt een mid-range-smartphone aan in de vorm van de Pixel 8a. Die is met zijn 6,1inch-scherm prima met één hand te bedienen, kan tegen water en stof en ondersteunt draadloos opladen. De telefoon heeft een stevig ontwerp van metaal en kunststof en lijkt veel op de wat duurdere Pixel 8 en 9, die echter gemaakt zijn van metaal en glas. Het 120Hz-oledscherm van de Pixel 8a ziet er fraai uit.

Onderhuids draait een snelle Google Tensor G3-processor met 8 GB werkgeheugen, geleend van de Pixel 8. De instapversie van de Pixel 8a heeft 128 GB opslagcapaciteit, wat vandaag de dag niet meer zoveel is. Google biedt ook een 256GB-versie aan. Beide modellen ondersteunen e-sim. De smartphone gaat een lange dag mee op een acculading, maar elke nacht opladen is vereist.

De camera’s zijn identiek aan die van de Pixel 7a, maar het gebrek aan vernieuwing stoort nauwelijks. Met de Pixel 8a maak je namelijk uitstekende foto’s, waarbij het toestel in het donker veel concurrenten achter zich laat. Een aparte zoomcamera ontbreekt in tegenstelling tot sommige alternatieve telefoons.

Een troef van Google is zijn zevenjarige updatebeleid, zowel Android-upgrades als beveiligingsupdates. Je kunt de Pixel 8a dus jarenlang compleet en veilig gebruiken en krijgt updates als eerste, namelijk direct van Google.

Pluspunten

  • Compleet in functies

  • Erg goede camera’s

  • Zeven jaar software-updates

Minpunten

  • Weinig prijsverschil met betere Pixel 8

  • Opladen duurt lang

Fairphone 5

De Fairphone 5 is de vreemde eend in de bijt. Niet omdat het de enige in Nederland ontworpen smartphone is, maar vooral omdat het Amsterdamse Fairphone een heel andere filosofie volgt dan concurrerende merken. Vrijwel elk telefoonmerk wil jou uiteindelijk met regelmaat een nieuw toestel verkopen, met een zo hoog mogelijke winstmarge. Er is daarom weinig tot geen aandacht voor de manier waarop grondstoffen gewonnen zijn, het salaris van fabrieksarbeiders of het repareren van een telefoon.

Fairphone daarentegen wil juist dat jij weet hoe de Fairphone 5 gemaakt is en dat jij er zo lang mogelijk mee kunt doen. Daarom meldt de fabrikant waar gebruikte grondstoffen vandaan komen, krijgen Chinese fabrieksarbeiders een fatsoenlijk salaris en is de smartphone voor een groot deel uit elkaar te halen. De 4200mAh-batterij klik je zo los, om er eventueel een nieuwe in te doen. Het scherm, de usb-c-poort, accu en camera’s kun je eenvoudig met een schroevendraaier loshalen en vervangen.

En Fairphone belooft acht tot tien jaar software-updates, wat langer is dan alle concurrenten. Een prijzenswaardige aanpak met de consequentie dat de Fairphone 5 met 6 GB werkgeheugen en 128 GB opslagcapaciteit technisch minder goed is dan de concurrentie. Ook is de accuduur korter en zijn de camera’s en het scherm minder indrukwekkend. Duurzaamheid heeft immers een prijs.

Pluspunten

  • Zo duurzaam mogelijk

  • Zelf te repareren

  • Acht tot tien jaar software-updates

Minpunten

  • Mindere specificaties

  • Kortere accuduur

Goed om te weten

In deze test vind je acht smartphones van evenveel merken, maar het is goed om te beseffen dat er veel meer mid-range-telefoons te koop zijn. Merken als Samsung, Xiaomi en Motorola verkopen heel wat toestellen in de geteste prijsklasse. En er zijn meer merken actief.

Wellicht dat een alternatief toestel meer bij je wensen aansluit dan de hier besproken modellen, bijvoorbeeld omdat je een toestel zoekt met meer camerafuncties of een kleiner/groter scherm. Het kan bij het uitzoeken van een mid-range-smartphone ook lonen om straatprijzen van high-end-smartphones van het afgelopen jaar te vergelijken. Bij een goede aanbieding kan een premium toestel van een jaar oud regelmatig richting je budget kruipen, en koop je doorgaans een smartphone met wat betere specificaties en soms ook een langer updatebeleid.

Aan de andere kant kan het natuurlijk ook zijn dat de besproken telefoons té compleet zijn voor wat je zoekt, bijvoorbeeld omdat je een toestel zoekt voor een ouder familielid of juist je kind. Je kunt dan ook kijken naar toestellen van zo’n 250 euro. Die zijn op alle vlakken iets minder dan een mid-range-smartphone, maar kunnen zeker volstaan voor een minder veeleisende gebruiker.

Een wat ouder topmodel-smartphone kan een beter scherm hebben, interessant als je regelmatig video’s kijkt.

Conclusie

Na het testen van acht smartphones die tussen de 300 en 500 euro kosten, zijn we over het algemeen positief verrast. Veel toestellen hebben een degelijk ontwerp, complete specificaties en krijgen vijf jaar of langer updates.

De Motorola Edge 50 Neo springt er voor ons uit omdat hij voor 400 euro een mooi totaalpakket biedt, inclusief zes jaar updates. Het keurmerk Best Getest is daarom op zijn plaats. Onze Redactietip is de OnePlus Nord 4, die veel functies in een luxe behuizing stopt en zes jaar updates ontvangt.

Ook de Google Pixel 8a maakt indruk met zijn gebruikservaring en zeven jaar softwareondersteuning. Qua specificaties is dit toestel een treetje lager dan sommige concurrenten.

Vind je duurzaamheid belangrijk en zoek je een telefoon die je zelf kunt repareren, dan is de Fairphone 5 de beste keuze. De HMD Skyline haalt inspiratie uit de Fairphone, maar weet op meerdere vlakken niet te overtuigen. Veel andere toestellen scoren ‘gewoon goed’.

Wie een mid-range-iPhone in gedachten heeft, kan beter wachten tot Apple een nieuwe generatie uitbrengt. We zijn benieuwd hoe een eventuele nieuwe iPhone SE zich gaat verhouden tot de sterke en gevarieerde Android-concurrentie.

Watch on YouTube