VPN op je Android via Synology NAS

Door K-Jay op dinsdag 17 oktober 2017 11:15 - Reacties (10)
Categorie: -, Views: 585

Op het moment van schrijven is de Krack-kwetsbaarheid hot news. Een goed moment om eens aan de slag te gaan met een veilige VPN-verbinding op je Android-telefoon.

Let op: gebruik maken van VPN lost het Krack-probleem niet op. Je moet nog steeds je pc/telefoon/router updaten. Wel is het zo dat je gegevensverkeer door VPN versleuteld is, dus een mogelijke aanvaller kan niet zo veel met jouw data :)

Onlangs heb ik een Android-telefoon (Wileyfox Swift 2x) gekocht. Het kostte wat moeite om een always-on VPN-verbinding op te zetten via mijn Synology NAS, maar uiteindelijk is dat gelukt. Deze blogpost is dus ook een geheugensteun voor mezelf.
Als bonus vertel ik aan het einde hoe je via deze VPN-verbinding advertenties uit je internetverkeer kan weren.

1. VPN instellen op Synology NAS
Zorg dat je NAS is bijgewerkt naar de meeste recente versie van DSM. Ga naar Package Center en installeer VPN Server.
Open VPN Server en klik linksonderin op L2TP/IPSec. Vul de velden in:

https://tweakers.net/ext/f/J0i2ed81e57AaKhBAO0DiNor/full.png

- Kies bij Dynamisch IP-adres een IP-adres in de range van je lokale netwerk
- Verzin een wachtwoord(zin) als voorafgedeelde sleutel
Een gedetailleerd stappenplan vind je bij de Synology Knowledge Base.

2. Rechten instellen
Klik in VPN Server op Rechten. Zorg dat bij minstens een gebruiker een vinkje staat bij L2TP/IPSec. Indien gewenst kun je hier een aparte gebruiker voor aanmaken.

3. Poorten openzetten
Als je op Toepassen klikt krijg je de melding dat je drie poorten moet openzetten op je router. Hoe dit moet, hangt af van het merk van je router. In dd-wrt ziet het er zo uit:

https://tweakers.net/ext/f/GqN0k4mwOsbw2DaprBVDwWE0/full.png

4. Always-on VPN instellen op Android
Ga op je Android-telefoon naar de VPN-instellingen en voeg een nieuw profiel toe:
- Verzin een naam voor het profiel
- Type=L2TP/IPSec PSK
- Serveradres = het externe IP-adres van de verbinding waar je NAS staat. Hier moet je een IP-adres invullen, met een ddns-adres kun je de optie Always-on niet opslaan.
- Onder geavanceerde opties vul je bij DNS-server "8.8.8.8" in. Dat is de DNS-server van Google. Je kunt ook voor een ander adres kiezen natuurlijk. Als je maar iets invult, want anders kun je de optie Always-on niet gebruiken.
- Onder Gebruikersnaam/wachtwoord vul je de credentials in van je DSM-gebruiker die rechten heeft op VPN (zie stap 2)
- Vink Always-on VPN aan.
Klik op Opslaan. Als dat uitgegrijsd is, ben je ergens een instelling vergeten.

Als alles goed gegaan is ben je nu altijd verbonden via VPN. Er staat dan een sleutel-symbool in je bovenbalk:

https://tweakers.net/ext/f/jNMFlAXA5UifCsNyZRMrikHW/full.png

5. Optioneel: geen advertenties meer dankzij pi-hole.
Naast mijn Synology NAS heb ik een raspberry pi met mijn netwerk verbonden. Hierop draait pi-hole. Deze software zorgt ervoor dat alle advertenties uit je internetverkeer gefilterd worden. Dankzij VPN kun je ook op je telefoon hiervan profiteren!
1. Installeer pi-hole op een raspberry pi en neem deze op in je netwerk
2. Geef het IP-adres van je pi-hole als handmatige DNS-server op in de instellingen van VPN Server (zie stap 1)
3. Profit! Bijkomend voordeel is dat je een stuk soepeler surft op je telefoon, omdat er geen advertenties meer geladen worden.

Load cell mod voor t3pa

Door K-Jay op vrijdag 23 juni 2017 22:41 - Reacties (0)
Categorie: Geknutsel, Views: 391

Inleiding
Naast mountainbiken, rommelen met de raspberry pi en wroeten in de volkstuin heb ik nůg een hobby: simracen. Begin dit jaar heb ik een Thrustmaster T300 racestuur gekocht en er een review over geschreven.
Na een paar maanden gebruik vind ik de T300 nog steeds een prima apparaat, maar constateer ik dat de bijbehorende pedalen wat tekort schieten. Hoezo, zie ik je denken, pedalen zijn pedalen, toch? Nou, niet helemaal. Ik zal proberen dat kort uit te leggen.

https://ic.tweakimg.net/images/member/original/1CMllc3JBh1cxWr.jpeg

Remkracht
De pedalen die je bij de meeste racestuurtjes krijgt werken met potmeters: hoe verder je het pedaal indrukt, hoe meer gas/remkracht/ontkoppeling er naar je virtuele racewagen gestuurd wordt. Net als een volumeknop zeg maar. Voor gaspedaal en koppeling is dat niet zo'n probleem. Zo gaat het in het echt ook. Bij de rem is dat echter anders: de remkracht in een (race)auto is niet louter afhankelijk van hoe ver je het pedaal intrapt, maar juist van de hoeveelheid druk die je voet op het pedaal uitoefent.

Voordeel hiervan is dat je gebruik kan maken van je 'muscle memory' als het op remmen aankomt: het is voor je brein veel makkelijker om te onthouden hoeveel kracht je moest gebruiken dan om te onthouden hoe ver je het pedaal moest intrappen. Dit resulteert in preciezer remmen en daardoor consequentere (en uiteindelijk snellere) rondetijden.

Load cell
Als je op onderzoek uitgaat, zie je al snel dat alle duurdere pedaalsets (Fanatec, Heusinkveld, etc) gebruik maken van een drukgevoelige sensor in het rempedaal, beter bekend als een "load cell". Dat wilde ik ook wel eens proberen. Ik kon twee dingen doen: een dure pedaalset kopen, of zelf iets maken. Je voelt hem al aankomen...

Aan de slag
Mijn belangrijkste uitgangspunt was dat mijn aanpassingen eenvoudig ongedaan te maken moesten zijn. Sterker nog, ik wil dat mijn pedaalset binnen een paar minuten om te bouwen is van drukgevoelig naar "normaal" zonder dat er iets van te zien is. Altijd handig voor eventuele garantiegevallen, of voor als mijn prototype stuk gaat.

https://tweakers.net/ext/f/kPpA2sw0fxXNrP91osrqjktW/full.jpg
Testopstelling

Uiteraard was ik niet de eerste die z'n pedaalsetje van een load cell probeerde te voorzien. Op internet zijn heel wat ervaringen te vinden die goed bruikbaar zijn als inspiratie. Uiteindelijk heb ik een prototype kunnen bouwen dat grofweg bestaat uit de volgende onderdelen:
  • demper voor tussen pedaal en load cell (gele stukje op de foto)
  • de load-cell zelf (het alu staafje waar de zwarte kabel uit komt)
  • load cell amplifier (schakeling met IC om de juiste signalen uit te sturen)
  • behuizing en bevestiging (oude adsl-splitterbehuizing)
  • kabel en connector
De kabel die je normaalgesproken vanuit de pedaalset in de wheelbase prikt, gaat nu in de load cell mod-behuizing. Vanuit de behuizing gaat dan een kabel met net zo'n connector naar de wheelbase. De unit zelf heb ik bevestigd op de houder waar de conical brake mod, standaard bijgeleverd op de t3pa, op vastgemaakt kan worden.

load cell mod
Prototype

Testfase
Op dit moment heb ik de mod een paar weken in gebruik. Ik ben nu aan het experimenteren met de juiste waarde voor de componenten in de amplifier, maar ook met de materialen voor de demper en de bevestiging. Een leuk proces, zeker ook omdat het racen superlekker gaat zo! Wie weet ga ik het eens seriematig produceren...iemand interesse?

Zwembadtemperatuur via mqtt

Door K-Jay op vrijdag 23 juni 2017 11:09 - Reacties (7)
CategorieŽn: Geknutsel, Home automation, Raspberry pi, Views: 965

Inleiding
Als je mijn voorgaande blogposts gelezen hebt, weet je dat ik regelmatig met pimatic in de weer ben. Zo kan ik verlichting schakelen, temperatuur loggen, een foto maken als iemand aanbelt en nog veel meer.

433MHz vs wifi
Het is mooi weer en daarom heb ik een zwembadje in de achtertuin opgezet. Je kunt natuurlijk met je grote teen voelen hoe koud het water is, maar de tweaker in mij wil de watertemperatuur uiteraard objectief vastgelegd hebben. Probleem: de afstand van mijn meterkast naar het zwembad is ongeveer 25 meter. Te lang voor een kabeltje en eigenlijk ook te lang om 433MHz-communicatie te gebruiken. Maar dankzij mijn nieuwe Unifi accesspoint heb ik wel beschikking over betrouwbare wifi!

Mqtt
Het wordt dus wifi. Een geschikt protocol om dan te gebruiken is mqtt, een protocol waarmee IoT-apparaten op een simpele manier informatie met elkaar uitwisselen. Bij een mqtt-uitwisseling zijn drie partijen betrokken:
- een publicerende partij, in mijn geval een ESP8266 met een temperatuursensor
- een ontvangende partij, die de gepubliceerde gegevens weergeeft, in mijn geval pimatic
- een broker die de communicatie tussen beide bovenstaande partijen verzorgt. Ik gebruik Mosquitto, geinstalleerd op de Raspberry pi waar pimatic ook op staat

Wat heb je nodig
- een werkende pimatic installatie op een Raspberry pi
- een ESP8266 nodemcu (ebay link)
- een DS18b20 temperatuursensor (ebay link)
- een weerstand 4.7K
- voeding voor je ESP (standaard telefoonoplader, micro-usb)
- behuizing, ik gebruik deze

Aan de slag

Stap 1: ESPEasy installeren op de ESP8266
De open-sourcesoftware ESPEasy zorgt dat de ESP8266 diverse sensoren kan uitlezen en de waarden via mqtt kan versturen. ESPEasy kan nog veel meer overigens.
Download ESPEasy en verbind je ESP met een USB-kabel aan je PC. Volg nu het stappenplan op de wiki van ESPEasy:
Upload succesvol? Herstart je ESP en maak verbinding met het wifi-netwerk dat je ESP nu heeft opgezet. Vul in de getoonde pagina de gegevens van jouw wifi-netwerk in. De ESP is nu in je netwerk opgenomen en kan via de browser beheerd worden.
Tip vanuit de reacties: kies bij de Controllers voor OpenHAB MQTT.

Stap 2: Temperatuursensor verbinden en uitlezen
Verbind de DS18B20 als volgt aan je ESP:
- zwart aan GND
- rood aan 3V3
- geel aan GPIO 13 (D7)
en plaats een weerstand van 4.7K tussen geel en rood.
Navigeer nu met een browser naar het ip van je ESP. Voeg een nieuw device toe:

https://tweakers.net/ext/f/Tm3FMEeJcEGlIxnvoqZtPp2J/full.png

Stap 3: Mosquitto installeren
Ga met Putty of een andere SSL-tool naar je Raspberry pi. Voer de volgende commando’s uit:
Key importeren:
wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
sudo apt-key add mosquitto-repo.gpg.key

mosquitto ophalen:
cd /etc/apt/sources.list.d/
sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list

terug naar root:
cd

updaten:
sudo apt-get update

mosquitto installeren:
sudo apt-get install mosquitto

mosquitto starten:
mosquitto -v

Stap 4: pimatic aanpassen
Installeer in pimatic de plugin pimatic-mqtt. Dat kan via de interface, of door de config aan te passen.
Voeg vervolgens de volgende regels toe aan je config, bij de devices:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
   {
      "class": "MqttSensor",
      "id": "espeasy_1",
      "name": "espeasy_1",
      "attributes": [
        {
          "name": "temperature",
          "topic": "/espeasy_1/temp_zwembad/Temperature",
          "type": "number",
          "unit": "įC",
          "acronym": "Temperatuur zwembad",
          "messageMap": {}
        }
      ],
      "xAttributeOptions": []
    }


Herstart pimatic. Je nieuwe device zal nu de temperatuur laten zien.

https://tweakers.net/ext/f/XpLIOtp72JIgMsDNxu7EPSuV/full.png

Nog een extra tip: na een eventuele herstart van je pi moet je Mosquitto ook weer starten. Dit kun je automatiseren door het starten van Mosquitto als een regel aan pimatic toe te voegen waarin je gebruik maakt van de shell-execute plugin:

code:
1
2
3
4
5
6
7
    {
      "id": "start-mosquitto",
      "name": "Start mosquitto",
      "rule": "when pimatic is starting then execute \"sudo mosquitto -d\"",
      "active": true,
      "logging": true
    }


En nu verder!
Met ESPEasy kun je nog veel meer. Ik heb inmiddels ook al twee deursensoren op dezelfde ESP aangesloten. Indien gewenst kan ik dat in een volgend blogbericht uitleggen. Verder wil ik de mqtt-communicatie nog beveiligen met een wachtwoord. Genoeg te doen dus!

https://tweakers.net/ext/f/C7aFklF19mquZ2S4nT3kpwIe/full.jpg
En je ziet er bijna niets van

Op verzoek twee foto's van mijn ESP in de schuur, kastje open en kastje dicht.
https://tweakers.net/ext/f/YiYTP7b3vqurungVou81S6wj/medium.jpg
https://tweakers.net/ext/f/FbYRkU3fLVcuXHCY24q725IY/medium.jpg

Review T300 alcantara

Door K-Jay op vrijdag 10 maart 2017 15:39 - Reageren is niet meer mogelijk
Categorie: -, Views: 2.650

Beetje stil op mijn blog. Maak je geen zorgen, pimatic draait nog hier. Maar ik heb nog meer hobby's die tijd kosten. Een van die hobby's heeft geen blogpost, maar een review opgeleverd: https://tweakers.net/prod...antara-edition-zwart.html

Heteluchtverwarming loggen (pimatic deel 5)

Door K-Jay op maandag 5 december 2016 11:55 - Reacties (4)
CategorieŽn: Geknutsel, Home automation, Raspberry pi, Views: 3.770

Inleiding
Mijn woning wordt verwarmd met een heteluchtverwarmingssysteem van Brink. Omdat ik wel benieuwd ben wat dat apparaat allemaal uitspookt, wil ik dat inzichtelijk hebben in pimatic. Ik wil wel eens zien wanneer en hoe vaak hij aanslaat en hoe lang hij dan aanstaat.

Achtergrond
De installatie werkt als volgt.
Op zolder heb ik een normale CV-ketel (Brink Kombi Kompakt) die warm water maakt voor de verwarming en de douche. Het warme water voor de verwarming stroomt echter niet door radiatoren, maar naar een luchtverwarmer (Brink Elan). Deze zet de warmte van het water om naar warme lucht en stuurt deze naar alle uitstroomroosters in huis.
De warmtevraag wordt geregeld door een Honeywell Chronotherm Touch-thermostaat in de woonkamer.

Meten is weten
De luchtverwarmer slaat aan als de temperatuur van het aangevoerde water boven een bepaalde drempel komt. Die ligt volgens mij rond de 30 graden. Dus als ik die temperatuur kan meten, weet ik wanneer de luchtverwarmer aan is.
Ik heb een DS18B20-sensor gekoppeld aan een ESP8266 met ESPimatic. De sensor zit op de aanvoerleiding ge-tiewrapt en ESPimatic geeft elke minuut de meetwaarde door aan pimatic.

De sensor

Verwerking in pimatic
Ik kan de meetwaarden nu dus zien in pimatic. I love grafiekjes. Het temperatuurverloop is duidelijk zichtbaar.

Grafiek met meetwaarden

Nu wil ik nog in een oogopslag zien of de heteluchtverwarmer aan staat of niet. Dat kan met een variabele, twee regels en een device.

Variabele
In de variabele "vorigecvtemp" leg ik de voorlaatste meetwaarde vast. Let op, je moet deze bij het definieren even een startwaarde van nul geven.

Regels
Met deze regels stel ik vast of de of de aanvoertemperatuur aan het stijgen of aan het dalen is. Stijgend en warmer dan 30 betekent Aan, dalend betekent uit. $temp2 is overigens de doorgegeven meetwaarde.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
      "id": "heteluchtverwarming-aan-of-uit",
      "name": "Heteluchtverwarming aan of uit 1",
      "rule": "when $temp2 > 30 and $vorigecvtemp < $temp2 then $vorigecvtemp = $temp2 and $cvketel = \"Aan\"",
      "active": true,
      "logging": false
},
{
      "id": "heteluchtverwarming-aan-of-uit-2",
      "name": "Heteluchtverwarming  aan of uit2",
      "rule": "when $vorigecvtemp > $temp2 then $vorigecvtemp = $temp2 and $cvketel = \"Uit\"",
      "active": true,
      "logging": false
}



Device
Als laatste een VariablesDevice om de status weer te kunnen geven in de gui van pimatic:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
{
      "id": "heteluchtverwarming",
      "name": "Heteluchtverwarming",
      "class": "VariablesDevice"
      "variables": [
        {
          "name": "cvketel",
          "expression": "$cvketel",
          "type": "string"
        }
      ],
      "xAttributeOptions": []
}



En dan is dit het resultaat:

Status in de GUI

En verder...
Ik heb dus geen fancy slimme thermostaat, maar in mijn Honeywell thermostaat zit wel een zogenaamd "TELE"-contact. Volgens de handleiding "biedt de TELE-functie de mogelijkheid om de temperatuurinstelling op afstand, bijvoorbeeld via de telefoon, te wijzigen.". Ik zie een volgend project aankomen...