Werktechnisch zit ik met bakken data (denk terabyte) te kijken die we bijna nooit nodig hebben - alleen om bij "problemen" dingen uit te zoeken. Daarnaast is het ook nog niet in een vast formaat (geen vaste veldindeling). Teveel en te onhandig dus om een database mee lastig te vallen, maar alles zomaar in een file dumpen maakt het gestructureerd doorzoeken er ook niet handiger op. Enter
JSON lines: een text based format met op elke regel een JSON object. Een beetje een soort CSV zonder vaste kolomindeling. En daar moet je dan wat mee:
<?php
namespace Rsi\Object;
/**
* Manipulate a JSON lines file.
*/
class JsonLinesFile{
public $delimiter = "\n"; //!< Line delimiter.
public $assoc = true; //!< Return data as assoc.array.
protected $_filename = null;
public function __construct($filename){
$this->_filename = $filename;
}
/**
* Append data to the file.
* @param mixed $data
* @return bool True on success.
*/
public function append($data){
return file_put_contents($this->_filename,json_encode($data) . $this->delimiter,LOCK_EX | FILE_APPEND) !== false;
}
/**
* Clear (empty) the file.
* @return bool True on success.
*/
public function clear(){
return file_put_contents($this->_filename,null) !== false;
}
/**
* Walk through all lines in the file.
* @param callable $callback Function to call for each line. The line is in the first parameter, and the index in the file
* (base-0) in the second.
*/
protected function lines($callback){
if(is_file($this->_filename)){
$f = fopen($this->_filename,'r');
$index = 0;
while(!feof($f)) if(strlen($line = fgets($f)) && (call_user_func($callback,$line,$index++) === false)) break;
fclose($f);
}
}
/**
* Number of records in the file.
* @return int
*/
public function count(){
$count = 0;
$this->lines(function() use (&$count){
$count++;
});
return $count;
}
/**
* Decode a line.
* @param string $line Encoded JSON line.
* @return mixed Decoded data.
*/
protected function decode($line){
if((($data = json_decode($line,$this->assoc)) === null) && (json_last_error() != JSON_ERROR_NONE))
throw new \Exception(json_last_error_msg());
return $data;
}
/**
* Walk through all records in the file.
* @param callable $callback Function to call for each record. The data is in the first parameter, and the index in the file
* (base-0) in the second. Return false to break.
*/
public function each($callback){
$this->lines(function($line,$index) use ($callback){
return call_user_func($callback,$this->decode($line),$index);
});
}
/**
* Retrieve a slice of the records in the file.
* @param $offset int Record to start from.
* @param $length int Number of records to return (when available).
* @return array The selected records (key = index, value = data).
*/
public function slice($offset,$length){
$length += $offset;
$result = [];
$this->lines(function($line,$index) use ($offset,$length,&$result){
if($index >= $offset){
if($index < $length) $result[$index] = $this->decode($line);
else return false; //break
}
});
return $result;
}
/**
* Filter the records in the file.
* @param callable $callback If this function returns true, the record is preserved. The data is in the first parameter, and
* the index in the file (base-0) in the second.
* @return bool True on success.
*/
public function filter($callback){
$f = fopen($temp = $this->_filename . '-' . bin2hex(random_bytes(16)),'w');
try{
$this->lines(function($line,$index) use ($callback,$f){
if(call_user_func($callback,$this->decode($line),$index)) fputs($f,$line);
});
fclose($f);
return rename($temp,$this->_filename);
}
catch(\Exception $e){
unlink($temp);
throw $e;
}
}
/**
* Edit the records in the file.
* @param callable $callback Function that returns the modified record. The original data is in the first parameter, and the
* index in the file (base-0) in the second. Return false to remove the record, or true to keep the original record.
* @return bool True on success.
*/
public function edit($callback){
$f = fopen($temp = $this->_filename . '-' . bin2hex(random_bytes(16)),'w');
try{
$this->lines(function($line,$index) use ($callback,$f){
if(($data = call_user_func($callback,$this->decode($line),$index)) !== false)
fputs($f,$data === true ? $line : json_encode($data) . $this->delimiter);
});
fclose($f);
return rename($temp,$this->_filename);
}
catch(\Exception $e){
unlink($temp);
throw $e;
}
}
}
Rob, zaterdag 27 april 2024, 22:18
In het kader van de
home automation had ik de keukenlamp al via een
Shelly1 gekoppeld. Daar kun je leuke, maar ook gewoon handige dingen mee doen. Zo zit de schakelaar van de keukenlamp hier aan de wooonkamerzijde, dus als je door de buitendeur binnen komt (met je vieze schoenen; aan de andere kant van de keuken) moet je eerst in het donker je schoenen uittrekken, voordat je de lamp aan kunt doen. Via de Shelly heb ik dit ondervangen door de keukenlamp ook automatisch aan te doen als de bewegingsmelder in de achtertuin aan gaat (en het donker is).
Dat lost het probleem echter "van buiten naar binnen" op. Als je naar buiten gaat, met de lamp aan, en smerige schoenen aan je voeten, kun je de lamp niet meer uit doen. Hiervoor moet je dan een thuisblijver aanwijzen, of de Shelly even "via de app" schakelen (gedoe als je al handschoenen aan hebt). Enorm first world problem dus. Gelukkig zitten er bij de keukendeur een viertal schakelaars voor de buitenlampen, waarvan er een niet gebruikt werd. Deze laatste heb ik nu aan
nog een Shelly gehangen, en weer teruggekoppeld naar de eerste Shelly. Nu kunnen we de keukenlamp dus vanaf twee plekken bedienen - hoezee! Eigenlijk net zoiets als de gemiddelde
wisselschakeling voor het trappengat, maar dan stukken nodeloos complexer.
Alhoewel: het biedt natuurlijk ook wel weer meer mogelijkheden. Zo kun je nu met "dubbel klik" (snel aan/uit) de "flood light" onder de dakgoot bedienen, en zullen er binnenkort vast nog wel meer "handigheidjes" volgen. Tijd om de handleiding voor het huis weer eens bij te werken ...
Rob, zaterdag 27 april 2024, 17:52
Omdat (o.a.) Marktplaats de onhebbelijkheid heeft om URL's standaard naar lower case ("kleine letters") te drukken kun je daar niet met
base-64 encoding werken (die gebruikt zowel hoofd- als kleine letters - wat daardoor dus onbruikbaar wordt). Maar om nou meteen terug te schakelen naar
hexadecimaal is ook zo wat. PHP biedt zelf geen ondersteuning voor andere encodings, dus dan moet je het zelf maar doen (online is van alles te vinden, maar niet zo geheugen/processor-efficiënt als deze!):
<?php
/**
* Base encode parameters.
* @param string $base Base characters.
* @param int $length Number of characters in base.
* @param int $bits Number of bits possible in character range (rounded up).
* @param int $max Maximum value in base without data loss.
* @param bool $oversize True when the bit size is too large for the base.
*/
protected static function baseParams(&$base,&$length,&$bits,&$max,&$oversize){
if(($length = strlen($base)) < 2) throw new \ValueError('Not enough characters in base');
if(count(array_unique($base = str_split($base))) < $length) throw new \ValueError('Duplicate characters in base');
$bits = 0;
while(($max = (1 << ++$bits)) < $length);
if($oversize = $max > $length) $max >>= 1;
}
/**
* Encode a string with a base set of characters.
* @param string $base Base characters.
* @param string $str String to encode.
* @return string String encoded with characters from base.
*/
public static function baseEncode($base,$str){
$result = null;
if($count = strlen($str)){
self::baseParams($base,$length,$bits,$max,$oversize);
$buffer = $size = $fill = $position = 0; //bit buffer, buffer size, fillers in buffer, position in string
while(($position < $count) || ($size > $fill)){ //still bytes or bits to process
if($size < $bits){ //add next byte (or filler) to buffer
$buffer <<= 8;
$size += 8;
if($position < $count) $buffer += ord($str[$position++]);
else $fill += 8;
}
$index = $buffer >> ($size - ($gone = $bits)); //get bits from buffer
if($oversize && (($index < $max) || ($index >= $length))){ //not in extra chars - take 1 bit less.
$index >>= 1;
$gone--;
}
$result .= $base[$index];
$buffer &= (1 << ($size -= $gone)) - 1;
}
}
return $result;
}
/**
* Decode a string encoded with a base set of characters.
* @param string $base Base characters.
* @param string $str String to decode.
* @return string Decoded (original) string.
*/
public static function baseDecode($base,$str){
$result = null;
if($count = strlen($str)){
self::baseParams($base,$length,$bits,$max,$oversize);
$map = array_flip($base);
$buffer = $size = 0; //bit buffer, buffer size
for($position = 0; $position < $count; $position++){
if (!array_key_exists($char = $str[$position],$map)) throw new \ValueError("Char '$char' is not in base");
$index = $map[$char];
$add = $bits;
if($oversize){ //bit size larger then char range
if($index < $max) $add--; //lower range = 1 bit less
elseif($index >= $length){ //out of range = 1 bit less
$index >>= 1;
$add--;
} //else: in extra range = maximum bits used
}
$buffer = ($buffer << $add) | $index;
$size += $add;
while($size >= 8){ //write bytes from buffer
$result .= chr($buffer >> ($size -= 8));
$buffer &= (1 << $size) - 1;
}
}
}
return $result;
}
De "base" kan dus van alles zijn. Als het maar meer dan 2 (en minder dan 256) unieke karakters zijn - het precieze aantal maakt niet uit (hoeft geen macht van 2 te zijn).
Rob, zaterdag 30 september 2023, 13:22
Techniek in huis is leuk, maar het moet ook wel een beetje makkelijk blijven. Dus in plaats van iedereen alles uit te moeten leggen, en/of steeds naar een "device" te moeten grijpen om iets aan/uit te zetten, heb ik een "afstandsbediening" in elkaar geknutseld.
Elke knop kan via een "event" dynamisch aan een "actie" in huis gekoppeld worden (lamp aan/uit - evt. voor een bepaalde tijd, TV/versterker bedienen, deurbel, doucheventilator, enz - als het maar op de een of andere manier te "programmeren" is).
In elke knop zit een lampje, dat op zijn beurt ook weer ergens aan gekoppeld kan worden. Als de "knop" (het indrukken) zelf aan een lamp is gekoppeld, is het natuurlijk het meest logisch om het lampje ook de status van die lamp te laten zien. Want uiteraard kun je de betreffende lamp ook nog gewoon met de wandschakelaar bedienen (en nog op tig andere manieren*), en ook dat zie je terug op de afstandsbediening.
* Zo hebben we in de keuken een knopje waarmee je de lampen op de kinderkamers een keer kunt laten knipperen. Dat scheelt weer "eten!" gegil door het trappengat.
Rob, zaterdag 25 maart 2023, 12:20
Ik kwam een tijdje terug deze
flowmeter tegen in m'n favoriete webwinkel. Naast de flow (liter/minuut) kan ie ook de temperatuur meten, en daarmee kun je dus uitrekenen hoeveel energie je
zonneboiler aan het koude leidingwater heeft toegevoegd. En
daarmee kun je weer uitrekenen hoeveel kuub gas je uitgespaard hebt.
Goed idee, aan de slag!
Daarna een custom stekkertje knutselen, en alle meetwaarden naar de Arduino voeren die toch al in het CV-hok hangt om het functioneren van de zonneboiler te monitoren, de
hotfill van de wasmachine aan te sturen, en als timer voor de badkamerventilator fungeert.
Tot zover de hardware zijde van het verhaal. Nu de zachte kant:
- Uiteraard de verbruikscijfers. Momenteel is het takkeweer, maar twee weken geleden was het een paar dagen mooi weer, en toen begon de zonneboiler al aardig op temperatuur te komen. Dagelijks werd er toen zo'n 6 kWh aan warm water aan de zonneboiler onttrokken. Als de CV-ketel dit had moeten doen (en dan ga ik er maar even vanuit gaat dat ie dit met redelijk 100% efficiency weet op te wekken - het is tenslotte een "HR"), dan betekent dat een besparing van zo'n 0,6 kuub gas per dag (op een winterdag!).
- Omdat je nu weet wanneer er (lang) warm water wordt getapt = er staat waarschijnlijk iemand te douchen, kan de badkamerventilator automatisch aanspringen (dat moest normaal door na het douchen aan een touwtje te trekken; of via de app - jawel). Uiteraard hoeft dit niet als het buiten mooi weer is, want dan staat het doucheraampje toch al open (lees: even koppelen met de buitentemperatuur).
- Data is natuurlijk leuk, maar grafiekjes zijn nog leuker. Nou heb ik al een vrij drukke grafiek met allerlei data rond "invloeden van buitenaf" (het weer) en alles wat we daar aan moeten doen om het binnen behaaglijk te houden. Daar is nu nog een lijntje bij gekomen:
- Onderaan staat de tijd (de uren van de afgelopen 24 uur). Links de temperatuurschaal, en rechts de windkracht (lichtgroen) en de neerslag schaal.
- De dik gedrukte blauwe lijn is de buitentemperatuur (volgens Buienradar), en de wat lichtblauwe lijn die daar z'n beetje parallel aan loopt de buitentemperatuur volgens het weerstation van de buurman (handig, al die "slimme" apparaten die alle data delen met de rest van de wereld ;-) ).
- De groene pluim is de huidige windsnelheid (onderkant is gemiddeld, en bovenkant is uitschieters). De groene pijlen bovenaan de grafiek geven de windrichting weer.
- De gele "bult" stelt de theoretische positie van de zon voor (de hoek van de zon tov de horizon volgens de graden schaal rond 12 uur 's middags). De geel/oranje lijn geeft aan hoeveel de echte zon instraling was (in W/m²). Het is nu een grijze dag; op een mooie dag loopt dit redelijk parallel aan de "gele bult".
- De blauwe staafjes onderaan geven de hoeveelheid neerslag weer. Ook weer volgens Buienradar (betere meetwaarden) en de buurman (beter beeld van de lokale neerslag).
- De lichtrode vlakken geven de momenten aan waarop de CV aan was, en de rode lijn geeft de werkelijke radiator temperatuur weer (elke blokje vanaf de onderkant van de grafiek komt overeen met 10 °C). Overdag pendelt de CV dus wel wat, maar het echte werk begint pas als 's avonds de thermostaat wordt opgeschroefd (deze info gebruik ik trouwens om een ventilator aan te sturen die de warme lucht geforceerd de kamer in blaast).
- De paarse balken die je tenslotte tussen 13:00 en 14:00 aan de bovenkant van de grafiek ziet hangen zijn de zonneboiler tapwater temperaturen (2x douchen; ook weer 10 °C per blokje). Aan het begin van het douchen was het water dus nog zo'n 40 °C, maar uiteindelijk kakte dat in naar zo'n 25 °C (dan zal het wel bijna "op" zijn). Dit komt overeen met 2,4 kWh aan warmte ~ 0,24 kuub gas.
Als toegift heb ik nu nog deze
LED-ring in de badkamer opgehangen. Normaal geeft deze de tijd aan (rode stip voor de seconden, groene stip voor de minuten, en blauw voor de uren; als de zonneboiler aan is pulseert de seconden stip; als de zonneboiler aan z'n max zit = het hele vat op 90 °C, dan pulseert de blauwe uren stip). Zodra er nu warm water wordt getapt begint op deze cirkel een timer te lopen. Elke LED komt overeen met 1 minuut douchen. De eerste 5 minuten zijn groen, daarna volgen 5 gele stippen, en vervolgens alleen nog maar rood (met om elke 5 minuten nog een paarse LED om het tellen makkelijk te maken). Als je het zo bont weet te maken dat je over de maximale 24 minuten heen gaat gaan de laatste twee LEDs wit knipperen.
Daarnaast toont ie, als de CV niet aan staat (zo'n beetje van mei tot september - als er meer dan genoeg warm water uit de zonneboiler komt, en de verwarming ook niet meer aan hoeft), de temperatuur van het zonneboiler water (het aantal graden boven de 40 °C - elke graad een LED), zodat je een beetje in kunt schatten hoeveel ruimte er nog is om eens lekker lang onder de douche te staan (of dat de volgende misschien toch maar eerst de CV in moet schakelen voordat ie er onder springt).
Lees meerRob, zondag 12 maart 2023, 14:17
Door die lange URL (
https://unilever.demdex.net/event?d_event=click&c_brand=prodent&c_brandcode=bh0880&c_retailer=brandwebsite&c_country=nl&c_medium=partner&c_division=personal-care&c_category=oral-care&c_campaignname=prodent_doktersvandewereld&&d_rd=https%3A%2F%2Fwww.prodent.nl%2Fdoktersvandewereld.html%3Futm_campaign%3DProdent_doktersvandewereld%26utm_source%3DQRcode%26utm_medium%3Dpartner) wordt die QR-code zo heel pietepeuterig (ivm "veel data"), en is ie ivm de kwaliteit van het drukwerk bijna niet te scannen. Die had gewoon
ingekort moeten worden naar iets van
https://unilever.com/go?id=doktervdwereld. Dan had ie er zo uitgezien:
Rob, dinsdag 27 september 2022, 11:27
De kinderen gebruiken steeds meer stroom, we werken steeds meer thuis, de energieprijzen stijgen momenteel de pan uit, er was nog ruimte op het dak, dus:
BTW terugvragen heb ik maar even laten zitten (als je dat al eerder gedaan hebt - die rij eronder - wordt het wel heel ingewikkeld,
en levert het mogelijk zelfs niks op). En
zoveel kosten ze ook niet meer. Met de stroomprijzen van nu zou de terugverdientijd minder dan 3 jaar moeten zijn.
Nog even een korte review over het
ClickFit montagesysteem: Het werkt wel prettig, ziet er netjes uit, en wordt compleet geleverd, maarrr ...
- Omdat het voor zowel horizontale als verticale (portret/landscape) montage is, ligt het vrij hoog boven de pannen (ook in de "laagste" stand - mijn pannen zijn ook niet zo "curvy" = vrij plat (de vorige panelen waren veel "dikker", maar liggen veel platter op het dak). Hopelijk blijft de wind er onder uit.
- In de instructie staat ongeveer "pan omhoog schuiven / haak achter panlat haken / pan terugschuiven". Die haak is vrij degelijk, maar mijn jaren 70 panlat absoluut niet. Daar heb ik dus eerst een extra lat onder moeten monteren (= hele rij pannen eronder weghalen). Als je vervolgens de dakpan terugschuift ligt ie 2cm "los" (= wind+sneeuw waait er zo onder). Daar moet dus steeds een sleuf uit geslepen worden (ter breedte van de haak; werd wel als "misschien stel dat" genoemd, maar is dus behoorlijk gedoe/meerwerk - dan is het voordeel van het "klikken" wel weer weg).
- Als je de haak vastschroeft (de dakpan dus op de panlat klemt), en daarna even aan de haak rammelt, zit ie weer los. Omdat een dakpan alle kanten op rond is, en ook onder een hoek op het dakvlak ligt heb je nooit in 1x het juiste punt te pakken. Soms moet je dit wel 3x herhalen voordat ie echt "vast" zit. Een haak die direct op het dakvlak monteert heeft dus ook z'n voordelen.
- De bouten hebben allemaal dezelfde torx sleutel ... alleen heb je voor de bouten om de panelen vast te zetten een torx sleutel nodig met een gaatje er in (zit een puntje in het torx gat). Als je dus op zaterdag de dwarsbalken hebt vastgezet met je vertrouwde torx sleutel, heb je een probleem als je op zondag de panelen gaat monteren (als de lokale bouwmarkt dicht is).
Instant update:
Zo,
dat gaat snel. Maar dat spul is ook ontzettend veel beter (en goedkoper) geworden de afgelopen jaren. Deze 4 panelen leveren (iets) meer op dan
deze 8 uit 2009, en kosten (inclusief omvormer en montagemateriaal) maar 20% daarvan.
Rob, dinsdag 12 april 2022, 7:27
Dit jaar heb ik 50 boeken / 17.621 pagina's gelezen. Ondanks het vele thuiszitten ivm Corona net iets minder als normaal (zowel in aantal als in pagina's).
De beste (5 sterren):
En de slechtste van dit jaar (1 ster):
En wat betreft
dat andere jaaroverzicht:
- Wederom een positief jaarverbruik qua stroom (meer verbruikt dan opgewekt).
- De kou hield lang aan (stoken t/m april), en begon ook weer vroeg = relatief veel gas.
- Inclusief welkomstkorting en SDE subsidie op de eerste set zonnepanelen kwamen we uit op €7,93/maand (een "positief" bedrag dus; dat is heel lang geleden dat we moesten betalen voor onze energie).
Een welkomstpremie zit er dit jaar niet in (overstappen "was niet mogelijk", of in ieder geval niet lonend), en met die fors gestegen prijzen ben ik benieuwd wat dit jaar gaat brengen ...
Rob, zaterdag 8 januari 2022, 21:37
Gisteren was het weer raak: flits,
boem, computer uit, auto-alarm aan, en een
een modem die naar z'n grootje was. De laatste keer dat dit gebeurde was al een tijdje terug; enerzijds omdat we in het begin regelmatig de stekker er uit trokken als het onweerde, anderzijds (mogelijkerwijs) omdat er tegenwoordig zo'n spanningspiekbeveiliging tussen zit. Maar: de lijn hapert hier de laatste tijd nog wel eens (verbinding valt weg, verbinding wordt opnieuw opgebouwd = 30 seconden geen internet), dus op advies van XS4all deze er tussenuit gehaald, en de modem weer direct aan de telefoonlijn gehangen (samen met een factory reset van de modem gaf het een kleine verbetering, maar het probleem is/was nog niet helemaal weg). En we waren natuurlijk allemaal thuis aan het werk/school, dus dan wil je de stekker er niet meteen uit trekken (in eerste instantie was het onweer ook nog redelijk ver weg).
Resultaat: modem toast, een switch die niet meer via PoE wil werken (met de originele voeding - was even zoeken - deed ie het gelukkig nog wel), en twee Arduino's +
ethernet module's afgeschreven ... Lekker dan. Eerst XS4all maar eens bellen. Die wilden voor die haperende lijn niet meteen een nieuwe modem sturen, maar dat station was nu ruimschoots gepasseerd. Tien minuten in de wacht (dat is extreem lang voor XS4all - mijn ervaring althans), maar vervolgens zonder al teveel poeha een nieuwe modem (morgen binnen).
Nou krijg je bij een XS4all abo ook een data SIM, zodat je online kunt blijven - ook als de vaste lijn er uit ligt (daarvan werd de data limiet ook even flink opgeschroefd - mooi). Die zit hier in een oude mobiel. Deze mobiel op "mobiele hotspot" gezet, zodat ie z'n eigen WiFi netwerk creëert (gevoed door de 4G verbinding). Dit signaal vervolgens via een
ontvanger weer omgezet naar een fysieke kabel, en die weer in de WAN2 ingang van de Unifi Gateway geprikt. En tadaa: alles werkte weer (uitgaand verkeer tenminste; inkomend verkeer loopt voorlopig even dood) - en doorrr. Toch een mooie vooruitgang al dat spul.
Binnenkort hebben we hier (ook)
glasvezel, dus dan komt die op die WAN2 (ik houd XS4all er naast, ivm betere diensten, en prijstechnisch maakt het ook niet heel veel uit of je alle toeters en bellen van Delta/Caiway neemt, of gewoon een apart XS4all abo), dus dan hebben we dit probleem helemaal niet meer (glasvezel is natuurlijk al een stuk ongevoeliger voor onweer dan koper). Maar voorlopig is dit een prima oplossing.
Update: De nieuwe modem is binnen, de lampjes knipperen ... maar geen verbinding. Blijkbaar is er ook iets mis in de wijkcentrale (XS4all kon de lijn van afstand niet doormeten). Morgen gaat er een KPN-monteur aan de slag.
Rob, donderdag 20 mei 2021, 11:06
In ons durp gaan ze (eindelijk) glasvezel aanleggen ... als tenminste 30% of meer van de huishoudens zegt over te stappen (en dan gaan ze ook alleen
die huishoudens daadwerkelijk van
FttH voorzien; wil je later nog meedoen moet je € 650,- aftikken om alsnog een sleuf door je voortuin te krijgen). Nou ben ik op zich tevreden met m'n 50Mbs
VDSL lijntje, maar af en toe zit er hier eentje te balen omdat ie 20 minuten moet wachten tot Fortnite z'n zoveel gigabyte update weer door de lijn getrokken heeft. En ach, een beetje snelheid is natuurlijk altijd leuk - maar dan moet het verder natuurlijk ook wel "in orde" zijn. Vandaar dat ik een aantal (technische) vragen aan
Delta had over hoe & wat. Met name omdat m'n huidige provider (XS4all - binnenkort dus KPN) dan weer zijn diensten niet via deze glasvezelboer aan mag/kan/wil bieden, en dit dan dus ook een overstap naar een andere provider zou betekenen.
Het
doorsturen van de antwoorden naar de juiste afdeling (ivm mijn "eisen" als consument moest het naar de zakelijke afdeling) duurde 7 weken (eerste minpuntje). Toen dat eenmaal uitgezocht was waren de antwoorden er vrij vlot. Voor eenieder die ook nog twijfelt (en van een internetaansluiting iets meer verwacht dan "WiFi") hieronder vragen + antwoorden, en soms nog een toelichting:
Q:
Op zich wil/hoef ik geen gebruik te maken van "zakelijk". Wat ik wel wil (als particulier) is een vast IP-adres (en een eigen server draaien). Als ik daarvoor een "zakelijk" abonnement ("Business pack") af moet nemen prima, als dat dan maar wel mogelijk is als particulier (zonder BTW-nummer)?
A:
Voor vast IP_adres = business pack nodig en dat kun je ook als consument afnemen
Ik wil een vast IP-adres omdat ik een eigen server draai en dan moet je in de DNS (het telefoonboek van het internet) opgeven op welk nummer (IP-adres) ze je kunnen vinden. Als je elke keer dat je je modem herstart (of voor je herstart wordt) een nieuw IP-adres krijgt (dus niet vast) is dat niet handig.
Voor een vast IP-adres moet je echter een zakelijk abo afnemen (daar was ik al achter). Dat is duurder, maar daar krijg je ook allerlei andere diensten bij, zoals een "BTW-factuur". Nou heb ik als gewone consument geen BTW-nummer, dus vandaar mijn vraag of ik als particulier wel een zakelijk abo af kan nemen (dat kun dus - geen probleem dus).
Q:
Daarnaast wil ik dan ook gewoon "interactieve TV" en "Bellen basis à 15ct p/m". Is dat ook allemaal nog mogelijk icm een "Business pack"?
A:
Ja dat kan, het flexpakket kan de klant naar eigen inzicht en voorkeuren inrichten
Ook geen probleem dus.
Q:
Kan ik (met een "Business pack") dan ook een eigen server draaien? Maw: blokkeren jullie bepaalde poorten, of is het gewoon mogelijk om alles van buitenaf door te prikken?
A:
Ja, dat kan
Sommige provider blokkeren bepaalde poorten. Een poort correspondeert meestal met een bepaalde dienst op internet: HTTP-verkeer (= "websites bekijken") gaat standaard over poort 80 (of 443 voor een beveiligde website), en zo zijn er nog wat standaarden. Sommige providers blokkeren "uit veiligheidsoverwegingen" bepaalde poorten (maar het is natuurlijk ook wel lekker als een klant thuis geen servertje kan draaien, want dat scheelt in het door te sluizen verkeer). Vandaar dus deze vraag (en wederom geen probleem).
Q:
Bieden jullie ook IPv6? En heb ik dan met een "Business pack" niet alleen een vast IPv4 adres, maar ook een vast IPv6 adres/prefix (en wat is dan de prefix lengte)?
A:
Nog niet, dit volgt, maar een specifieke datum kunnen we hier niet aan meegeven
IPv6 is de toekomst van het internet. Net als glasvezel. Maar blijkbaar gaan deze twee (nog) niet samen.
Nou draait hier alles al sinds een jaar of 5 (ook) via IPv6, dus dit zou een stapje terug in de tijd zijn. Voor normaal internetgebruik nog geen showstopper (IPv4 doet het nog steeds prima), maar voor hobby en werk is het toch wel eens handig om een native IPv6 verbinding te hebben (dit is wel op allerlei maniere te simuleren, maar dat blijft toch behelpen).
Q:
Hoe wordt deze IPv6 ondersteuning geleverd (dual stack, tunnel, ...)?
A:
Is op dit moment nog niet ingericht, dus kunnen we nu nog niets over zeggen.
Zie hierboven. Sommige providers "ondersteunen al wel IPv6", maar dan via een tunnel, en da's toch net niet echt.
Maar dus niet van toepassing, want toch al geen IPv6 ...
Q:
Moet de "interactieve tv ontvanger" altijd direct op de modem worden aangesloten (ivm een eigen VLAN of iets dergelijks), of mag daar ook nog een complete netwerklaag (met eigen IP range) tussen zitten (niks bijzonders, gewoon een Unify systeem met gateway, maar ik heb eigenlijk geen zin om extra kabels te trekken)?
A:
Hoeft niet direct op het modem, en mag dus ergens op het netwerk worden ingeprikt. Belangrijk is wel dat de switches IGMP Snooping ondersteunen.
Vroeger moest "het TV-kastje" vaak (direct) op een specifieke poort (aansluiting) de modem worden aangesloten ("poort 4"). In de modem was het dan zo geregeld dat de betreffende poort direct gekoppeld werd aan een bepaald VLAN van de provider (het "TV netwerk"). Op de andere poorten werkte TV dan niet, en als de TV niet naast de modem stond moest er een extra kabel worden getrokken (parallel aan de normale internet/ethernet kabels).
Momenteel hangt de modem daadwerkelijk achter de TV, dus zou dit geen probleem zijn (maar niet meer nodig). Die locatie is echter "historisch bepaald" omdat daar nou eenmaal de oude telefoonaansluiting zit (is aansluiting voor ADSL/VDSL). Bij een nieuwe modem zou ik die heel graag in de meterkast willen hebben. Dat scheelt weer ongerelateerde kabelbende (en "kastjes") achter de TV.
Geen probleem dus. Overigens geen idee of "normale", low-budget, "unmanaged" switches IGMP snooping ondersteunen, maar bij dat Unify spul is dat geen probleem (naar wens in/uit te schakelen).
Q:
Welke modem leveren jullie? Of is het mogelijk (toegestaan) om de Unify Security Gateway direct aan het glasvezel punt te koppelen (en zelf met PPPoE aan de slag te gaan)?
A:
Wij leveren een genexis platinum modem. Het is niet mogelijk zelf een modem aan te sluiten.
Zou mooi zijn als dit wel had gekund (had een kastje gescheeld), maar momenteel werkt het ook zo, en dat is geen enkel probleem. Omdat de modem nu enkel als een doorgeefluik fungeert (de USG doet het echte werk) maakt het ook niet zo heel veel uit wat de verder "toeters en bellen" van de modem zijn (wordt toch niet gebruikt).
Q:
Is nummerbehoud ook mogelijk met een 087 nummer (VoIP)?
A:
Nummerbehoud op 087 nummer is niet mogelijk krijg ik terug (waarbij hier nog wel een check op gedaan wordt).
We hebben nu VoIP via een 087 nummer (toen we hier naartoe verhuisden moesten we toch een nieuw nummer; dus dat hoefde dan niet perse eentje met een lokaal netnummer te zijn - waren extra kosten aan verbonden).
Jammer dat dit nummer niet mee is te nemen (ook omdat het grotendeels gelijk is aan mij 06 nummer; dat heb ik toen speciaal zo uitgezocht). Anderzijds is een "vaste lijn" natuurlijk toch al iets van eergisteren, dus misschien ook een mooi moment om 'm er maar gewoon helemaal uit te doen.
Samenvattend
Voor het merendeel geen beren op de weg. Alleen dat niet ondersteunen van IPv6 voelt wel als een stap terug. Vooral omdat het merendeel van de providers al jaren aangeeft "hier mee bezig te zijn", maar het tot op heden nog steeds niet uitgerold heeft (en dus ook niet duidelijk is hoeveel jaar dit nog gaat duren ...). Lijkt er dus op dat Mr. Fortnite voorlopig "pech" heeft (sowieso zet ik vrijdagochtend gewoon altijd de Playstation even voor 'm aan, zijn de meeste updates al gewoon binnen voordat ie uit school komt).
Rob, donderdag 7 januari 2021, 19:02
D'r zitten hier af en toe twee van die puber-zombies in de bank die met een geknikt nekje "fillumpjus" zitten te kijken en te swipen (een minuut of langer hetzelfde filmpje
afkijken trekt de attentie spanne niet). Omdat ik er genoeg van kreeg om elke keer "leg je dat ding weer eens weg" te roepen (daar geldt de
relativiteitstheorie: 5 minuten huiswerk voelt als een uur / een uur "fillumpjus" voelt als 5 minuten).
Omdat we hier een bijzonder mooi
WiFi netwerk hebben is het mogelijk om
via de API de verbruiksgegevens per "device" op te halen. Daarmee doe ik dan het volgende:
- Elke 5 minuten het dataverbruik per user (voor alle apparaten gecombineerd) bepalen voor het afgelopen uur.
- Maximaal verbruik instellen per uur (grofweg max. 10 tot 15 minuten streaming video).
- Indien "over budget" worden alle devices voor de betreffende user voor een uur geblokkeerd (ook weer volledig automatisch via de API).
- Na de tweede keer worden alle devices voor de rest van de dag geblokkeerd.
- (uitgezonderd tijdens schooltijden: ze zijn er toch niet, of ze hebben video-les; en de hele nacht, om updates en dergelijke de kans te geven - telefoons mogen hier niet mee naar de slaapkamer)
Heerlijk! Ik heb er geen omkijken meer na. Weet dat als ze er "te lang" op zitten het zich "vanzelf" regelt. Ben niet meer de kwaaie pier (
computer says no). En heb zowaar weer kinderen die af en toe even (OK, enigszins geforceerd) gezellig kunnen doen (want geblokkeerd, of in ieder geval bijna aan hun tax). En trust me: je kunt zo vaak zeggen "zullen we een spelletje doen / hond uitlaten / enz", zodra de telefoon het ook doet trekt die toch harder aan ze.
Rob, vrijdag 1 januari 2021, 11:32
Het stroomverbruik is het afgelopen jaar flink toegenomen omdat we met z'n vieren thuis zaten te werken (
extra schermen,
extra server,
extra switches). Dit "boekjaar" sinds lange tijd dus weer eens echt stroom
verbruikt (= totaal net iets meer verbruikt dan teruggeleverd). Echter, de afgelopen jaren
stap ik elk jaar over naar een andere energieleverancier. De criteria zijn eenvoudig: "groen", en met een zo laag mogelijke totaalprijs voor het eerste jaar (daarna stap ik toch weer over). Omdat de tarieven mekaar niet zoveel ontwijken, we toch bijna 0,0 gebruiken, en de netwerkkosten voor elke aanbieder zelfs helemaal gelijk zijn, komt het er meestal op neer dat het degene met de hoogste "welkomstpremie" wordt (die pas na een jaar wordt uitgekeerd - meer een "houdoe" premie dus). Daardoor heeft dit "positief verbruik jaar" uiteindelijk (inclusief de nog steeds lopende SDE subsidie voor de
reeds volledig terugverdiende zonnepanelen; maar ook inclusief gasverbruik) toch nog € 177,40 opgeleverd. Nice!
Update 2020-12-13: Omdat de overstap een maand na het verstrijken van het jaarcontract plaatsvond is de "winst" bijna weer volledig verdampt. December is zontechnisch natuurlijk niet zo'n beste maand, en het gas giert door de meter, dus die ene maand moest er nog € 150,10 worden afgetikt. Nog net een "negatief" eindresultaat, maar je kunt er niet meer van uit eten afhalen).Rob, woensdag 18 november 2020, 21:41
Alle investeringen in zonnepanelen (panelen, montage, kabels, enz) hebben zich zojuist tot op de cent terug verdiend
(die
10 jaar werden dus uiteindelijk 8,5 jaar - ook omdat het later toch mogelijk bleek om de BTW terug te vragen).
Vanaf nu is de stroom dus echt gratis in huize Shitware (en loopt de subsidieregeling voor de
eerste set nog 4 jaar door!).
Alhoewel: tot voor kort hielden we per jaar nog wel
een paar honderd kWh over op de eindafrekening. Maar dit jaar zal het redelijk op 0 uitkomen.
Door al dat
thuiswerken is het stroomverbuik voor mijn eigen werkplek (ja, dat
meet ik) in ieder geval verdubbeld (van 10 naar 20kWh/maand).
En ook de rest van de collega's hier thuis zitten natuurljk vaker achter een beeldscherm gekluisterd.
En uiteraard is er nog de nodige 24/7 hardware (het lijkt hier onderhand wel een
datacenter) naar binnen gekruid om alles aan elkaar te knopen (waarom zitten die switches altijd zo snel "vol"?). Even oppassen dus dat we uiteindelijk niet alsnog stroom moeten "inkopen".
De zonneboiler heb ik geen exacte cijfers van, maar met de uren die de kinderen tegenwoordig onder de douche staan (of een paar jaar terug nog het buitenzwembadje met een emmer of 10 bijna kokend water aanwarmen - kost toch niks) kan ik me haast niet voorstellen dat die nog niet "afbetaald" is. Heerlijk!
Rob, donderdag 12941 april 1985, 13:45
Ok, even een paar maanden terug in de tijd: mevrouw had een nieuwe baan, waarbij ze vroeg op moest, en soms ook laat thuis zou zijn. Als er iemand is die niet tegen "vroeg op" kan, dan is het wel mevrouw. Daarom dus voor d'r verjaardag een
LED-lampen-slinger gekocht en in de tuin gehangen, om de boel nog een beetje op te vrolijken op die onmogelijke uren.
<intermezzo>
Leuke dingen hoor, die LED-bolletjes - leuker dan zo'n Action LED-slang. Toch een beetje het verschil kunst & kitch. Maarrr: Het heeft wel even geduurd voordat ie lekker bleef branden. In tegenstelling tot zo'n LED-slang draai je die lampjes er wel lekker makkelijk uit, en dat had een of andere buurman "die 's nachts niet zo goed kon slapen / z'n kat kwijt was" (dat was de smoes die ie tegen de buurtagent ophield - jawel, ze hebben 'm te pakken gekregen ;-) ) ook snel in de gaten. Daarnaast plofte de ene na de andere lamp er uit. Zat je 's avonds lekker naar je vrolijk verlichte achtertuin te kijken, begon er weer eentje te knipperen, om er vervolgens helemaal mee op te houden (overigens alleen de blauwe, groene, en gele) - wordt je dan weer niet zo vrolijk van. Gelukkig deden ze niet moeilijk met garantie (en zat er ook al een extra lampje bij de initiële bestelling), dus uiteindelijk is dit allemaal weer verholpen (alleen heb ik nu wel een oranje lamp op een plek zitten waar eigenlijk een gele hoort te zitten ...).
</intermezzo>
Tijdschakelaar er tussen, en hoppa: 's morgens en 's avonds een klein beetje vrolijkheid in de achtertuin. Alleen:
elke morgen, ook als mevrouw niet hoefde te werken. En ook die verschuivende zon op / zon onder tijden is natuurlijk niet handig.
Gelukkig was
ik daarna jarig, dus kom maar weer door met een extra
Arduino. Niet alleen naar eigen inzicht te schakelen, maar ook af te stemmen op die handige
zonlicht sensor die toch al op het dak lag. Alleen heb je daarvoor wel enige vorm van "digitale communicatie" nodig, en omdat er (nog) geen Ethernet in de garage was had ik 'm via een
WiFi receiver (een soort WiFi repeater die wel ontvangt, maar dan doorstuurt via een bedrade uitgang) aangesloten. Dat werkte op zich redelijk goed, alleen was ie toch af en toe de verbinding "kwijt" (dus dan brandde 's nachte de tuinverlichting nog - midden in de nacht weer de boel resetten, niet ideaal in de eerste wereld).
Dus toch maar de schep erbij en een sleuf + pijp + kabel naar de garage getrokken (toch niet veel te doen
de laatste tijd). En dan maar meteen een pijp van 40mm. Dit is namelijk al de tweede keer dat ik een sleuf naar de garage graaf (de vorige keer was voor een extra groep voor de
zonnepanelen die op de garage liggen), en met al die keien en stenen hier in de grond hoop ik dat het hiermee ook de laatste keer is (de volgende kabel kan er nu gewoon bij "getrokken" worden).
Ach, en als er dan toch Ethernet in de garage ligt kan ook die IP-camera die daar tegen de muur hangt (en de reden dat de buurman met slecht slapende kat tegen de lamp liep) wel via een kabeltje aangesloten worden (was ook WiFi).
En ach, als er dan toch Ethernet in de garage ligt is het misschien wel een idee om die oude PC die nog op zolder staat in de garage te planten, dan hoef ik niet meer naar binnen als ik tijdens het klussen wat op wil zoeken.
Hoe heb ik ooit zonder internet in de garage gekund!?
En uiteindelijk bleek die communicatie storing natuurlijk helemaal niet aan de WiFi receiver te liggen, maar aan een net te krappe voeding voor de Arduino (een oude USB telefoonoplader), waardoor de Ethernet module vast liep ...
En uiteindelijk bleek het daar ook niet aan te liggen, maar aan het netwerk "shield" (op de Arduino) die een beetje te warm werd. Dit was de eerste Arduino die ik in een gesloten, stofdichte behuizing had geplaatst, en daardoor kreeg ie het te warm. Bout met vlakke kop op het chippie geparkeerd, en het uiteinde met twee moeren door de behuizing heen laten steken: warmte kan weg; behuizing is nog steeds stof dicht!
Dusss:
- Er moest iemand een beetje vroeg op (vroeger, toen we nog naar ons werk gingen).
- Daarom kwam er een lampje in de achtertuin.
- Om een paar Watt te besparen in het weekend / rond zonsondergang kwam er een ingewikkelde tijdschakelaar.
- Omdat de Ethernet verbinding af en toe wegviel (als gevolg van een net te krappe voeding) ligt er nu een 40mm PVC pijp onder de tuin door naar de garage.
- En hebben we nu een extra werkplek in de garage. Nu kunnen we dus echt overal thuiswerken.
Rob, zondag 12839 april 1985, 16:04
Hier op zolder staat een klein PC-tje. En met klein bedoel ik dan ook echt klein: een
NUC.
Een gevalletje "meer heb je niet nodig". Onderin net genoeg ruimte voor een 2,5" harde schijf, en voor en achter een paar USB poorten (en een HDMI en DisplayPort aansluiting, maar die heb je alleen nodig tijdens installatie of als "er iets mis is" en ie niet van afstand te benaderen is).
Dat PC-tje was oorspronkelijk bedoeld als een klein webservertje, en om remote op te werken (vanaf meerdere plekken dezelfde desktop - lekker handig; de "cloud", maar dan op zolder zeg maar).
Maar ja, dat is al weer een paar jaartjes terug, sindsdien is er een hoop veranderd (kinderen die werkstukken moeten maken) / bij gekomen (de nodige hardware in en om het huis):
- 4 werkplekken (RDP via RaspberryPi + 1 admin account (jobs))
- Web server (Apache; HTTP, PHP; 17 websites)
- MySQL database (MariaDB; 17 databases, ~500 tabellen, ~2Gb data)
- File server (NAS; ~250Gb foto's, alle geripte CD's - de CD-speler is al lang stuk)
- FTP-server
- WebDAV-server (self hosted kalender)
- Plugwise controller/server (stopcontacten schakelen)
- Unifi Controller (WiFi, netwerk)
- Unifi Network Video Record (NVR)
- Resilio Sync server (syncen vanaf de mobielen - je eigen cloud backup via BitTorrent netwerk)
- Aansturing van al die Arduino projectjes
Nou, die zakte dus langzamerhand door z'n pootjes (8Gb RAM; ook met een M2 SSD upgrade bleef ie van alles swappen).
En aangezien we de komende weken toch
nergens naar toe gingen nog maar even snel een nieuwe server besteld: 4x zoveel RAM (kost toch niks meer), 2Tb harde schijf (dito; stelt ook niks voor qua omvang), en uiteraard een nog grotere SSD.
De oude server draaide nog op Windows 8.1. Prima OS wat mij betreft. Mijn ervaring met Windows 10 zijn een stuk slechter: je zoekt je de pleuris naar alle instellingen, de UI zit onlogisch in elkaar (touch first = geen scroll bars; na 10 minuten kom je er dus achter dat de instelling die je zoekt "buiten beeld" hangt), en dan is er nog die hele telemetrie ellende, updates die gewoon door je strot geduwd worden, enz. Dus dan toch maar eens de stap naar Linux maken. De
RaspberryPi's draaien immers ook op Linux, de servers op het werk zijn Linux, hier spreekt dus een ervaringsdeskundige - what could possibly go wrong!? Nou, van alles dus. Na 4x "from scratch" te zijn begonnen (het blijft Linux, je kunt het heel eenvoudig heel goed verkloten - en dat is dan nog met Ubuntu / ~ Mate, wat als redelijk "beginner proof" wordt gezien) had ik toch eindelijk alles naar m'n zin (het hielp ook niet mee dat het tweede RAM slot last had van "contactproblemen", na een paar keer "rammelen" met de RAM-strip lijken de contactjes nu allemaal gepoetst, en werkt het verder vlekkeloos).
Voor een aantal "Windows only" toepassingen moest een alternatief komen. Zo heb ik dus een eigen
Plugwise driver gebakken, en is mijn
favoriete editor van de afgelopen 10+ jaar ingeruild voor
Visual Studio Code (van Microsoft!?). Daarnaast moest ik heel wat antieke PHP code door om paden te fixen (Linux maakt onderscheid tussen hoofdletters en kleine letters in bestandsnamen), en dito voor database en tabelnamen in SQL-queries. Het inrichten van de nieuwe webserver was sowieso een mooie aangelegenheid om 15 jaar historische bagger eens opnieuw in te richten (en het was even zoeken hoe
mod_md ingesteld moest worden voor de gratis
Let's Encrypt certificaten; daarnaast nog even van
MPM switchen zodat
HTTP/2 ook weer werkte).
Voor de rest is er ook een hoop bij het oude gebleven: de mail lees ik nog met
Thunderbird (Outlook, maar dan beter), documentjes bewerken via
LibreOffice (MS Office, maar dan gratis), en "surfen" via
Firefox (privacy first browser) en
Brave (Chrome, maar dan zonder de lange vingers van ome Google).
Hopelijk is de rest van de familie net zo enthousiast, want die moeten binnenkort ook (nog) "gemigreerd" worden ...
Update 2020-04-05:
- De eerste gebruikerservaring was positief ("bijna hetzelfde, maar een beetje anders").
- Microsoft Teams (ze kunnen niet meer zonder tegenwoordig) werkt ook prima onder Linux (Microsoft!?).
- Huiswerk moest in Arial ("Microsoft Sans") ingeleverd worden, en dat zat er niet op. Maar wat blijkt, ook dat is gratis te krijgen (Microsoft!?). Kunnen we tenminte weer met Comic Sans aan de slag ;-)
- Geluid bleek weer de gebruikelijke Linux (of eigenlijk Gnome/Ubuntu) PitA te zijn. Lokaal zal het allemaal wel werken zoals geadverteerd, maar met remote sessies bleek het toch net weer even anders te gaan. Gnome (Ubuntu Linux desktop omgeving) gebruikt standaard PulseAudio (bovenop ALSA). Die laatste zag de USB audio dongle wel zitten, maar PulseAudio had er geen trek in. Uiteindelijk dat hele PulseAudio er maar tussenuit gehaald. Nadeel is dat je nu niet meer zo mooi met schuifjes kunt pielen. Voordeel is dat het gewoon werkt (en al die players hebben toch nog hun eigen schuifje), en ook van meerdere gebruikers tegelijkertijd geluid af kunt spelen (bij Windows was dat op een gegeven moment voorbij; alleen de laatst ingelogde had de geluidskaart tot z'n beschikking ...).
Update 2020-07-03:
- Als je (WiFi) printer het opeens niet meer doet via CUPS zou het kunnen zijn dat je IGMP snooping hebt ingeschakeld op je (Unifi) netwerk (zo, heb ik je zojuist een half uur bespaard).
- Firefox ondersteunt geen ALSA meer ... (dus iedereen over naar Brave).
- Updates lopen remote niet via de GUI (
sudo apt-get upgrade
werkt wel gewoon). Ubuntu wil toch wel heel erg graag rebooten na een update (het lijkt wel Windows; Linux zelf kan eigenlijk jaren achtereen draaien zonder reboot).
- Ik heb van de oude server een Windows 10 doos gemaakt (met de 8.1 key), en daarop kun je dan met Hyper-V weer heel eenvoudig Virtual Machines draaien. Jeej :-)
Update 2021-01-05: Ik dacht afgelopen zondag nog "even" de update naar Ubuntu 20.04 te doen, maar omdat ik te lang nadacht bij een vraag mbt een applicatie die daarna niet meer beschikbaar was verliep mijn sudo authenticatie en werd de hele update afgebroken. Daarna ging het van kwaad tot erger, en kon ik helemaal niet meer inloggen. Uiteindelijk tot dik in de nacht bezig geweest om dan maar een complete herinstallatie te doen (want de kinderen hadden maandag natuurlijk wel weer gewoon thuis online les ...). De data was er allemaal nog wel, meeste instellingen ook, maar het is natuurlijk die laatste 1% waar je je weer voor gigantisch achter de oren moet krabben om erachter te komen hoe het ook al weer zat (om na lang zoeken dus uiteindelijk op dezelfde forumpagina terecht te komen als in april). Zo dacht ik nu dus lekker eenvoudig de geluidskaart in orde te brengen (vergeet PulseAudio, gewoon meteen ALSA), maar dat viel dus tegen. Na een paar uurtjes zoeken kwam uiteindelijk de "audio" user group ergens in beeld. En dat was het dus: iedereen even aan de "audio" groep toevoegen, opnieuw inloggen, en klaar.
Rob, vrijdag 3 april 2020, 10:47