Categoriearchief: Techniek

Bekabeling in het huis

Een groot voordeel van ons nieuwe huis is dat iedere kamer 3 loze dozen in de muur heeft zitten. Op de zolder was hier al keurig netwerk in gezet, ook in de huiskamer was dit het geval, maar in de overige kamers nog niet. Gezien we ervoor gekozen hebben om ons kantoor van zolder weg te halen en in de 2e slaapkamer op de eerste etage te zetten had ik direct ook een mooie aanleiding om alles even echt netjes te maken.

Dus na een kleine bestelling bij Netwerkwinkel kon ik gisteren eindelijk aan de slag. De eerste stap was het trekken van de kabels vanuit de meterkast naar het nieuwe kantoor, de trekveer ging gelukkig vrij eenvoudig door de leiding en om het mezelf niet te lastig te maken heb ik het aantal kabels per leiding tot twee beperkt. (dit had ik in het weekend alvast ter voorbereiding gedaan).

De volgende stap was het netjes maken van de meterkast. De vorige bewoner had er voor gekozen om de kabels van een UTP plug te voorzien en half los in de meterkast te laten hangen. Nou heb ik het in het verleden eigenlijk ook altijd zo opgelost, maar nu ik dan toch al bezig was ben ik maar een stapje verder gegaan.

In de meterkast heb ik nu een 12 poorts patch-box geplaatst waar alle netwerkkabels vanuit het gehele huis op uitkomen. Dat is er 1 uit de huiskamer, 4 uit het kantoor en twee vanuit de zolder. De kabels zijn vervolgens zo netjes mogelijk weggewerkt.

Voor nu hangt er een HP1810-8g aan, deze zal zodra de glasvezel opgeleverd is vervangen worden door een Mikrotik CRS125-24G, met de extra poorten die ik dan beschikbaar heb kan ik ook de laatste switch uit de huiskamer halen en ook die kabels netjes direct naar de meterkast trekken (ter vervanging van de cai kabel die er nu ligt). Om die reden heb ik ook nog wat speling op de netwerkkabel bij de switch.

Ik ben in ieder geval erg tevreden met het resultaat, het heeft een paar uurtjes gekost, en je ziet er normaal niets van, maar toch was het de tijd zeker waard :).

 

 

 

Let’s encrypt

Sinds gisteren is Let’s Encrypt in public beta en daarmee dus ook voor iedereen beschikbaar. Nou zal dat niet iedereen direct wat zeggen, maar ik denk dat dit een ontwikkeling is die een grote verandering op het internet met zich mee zal brengen. Nou betreft het wel een verandering die voor 90% van de mensen niet zullen merken, maar dat maakt het niet minder belangrijk.

letsencrypt-logo_0

Wat veel mensen niet beseffen is dat verkeer van en naar een website in principe voor alle “hops” tussen jouw pc en de server vrij in te zien is. Voor banken zijn we al wel gewent aan het feit dat er een groen slotje bij de domeinnaam moet staan, maar bij veel andere websites denken we daar niet over na. Het gebruik van encryptie lost dat probleem op, het verkeer tussen de client en de server is met certificaten beveiligd en voor de tussenliggende systemen niet in te zien.

Het probleem is echter dat de certificaten hiervoor geld kosten, alhoewel ze niet heel duur zijn (12 euro per jaar grofweg) wordt het voor veel content niet echt als noodzakelijk gezien om de bezoeken te beveiligen. De complexiteit van het onderhouden van deze certificaten is echter een groter probleem. Niet alleen is het veel handwerk om een certificaat goed op je eigen server te installeren, maar het is ook nog eens iets wat je niet moet vergeten bij te houden (wederom handmatig).

Let’s encrypt brengt hier verandering in, niet alleen zijn de certificaten gratis, maar er wordt een tool meegeleverd die de hele aanvraag en implementatie voor je uitvoerd. Daarbij zorgt de tool ook voor een tijdige vervanging van de certifcaten wanneer de einddatum in de buurt komt (een “le” certificaat is 90 dagen geldig).

Het draaien van de tool geeft een wizard die er grofweg zo uit ziet:

Certificaat Aanvraag

En de rest gaat eigenlijk vanzelf, je kan nog even aangeven of de site zowel via HTTP als HTTPS bereikbaar moet zijn of enkel via HTTPS en dat was het dan.

Wanneer we dan controleren of het certificaat goed geïmplementeerd is zien we dat ook dat helemaal in orde is:

Certificaat Controle

Het mooie aan de automatische implementatie is ook dat er eigenlijk niets in de weg staat om dit ook bij shared hosting oplossingen te implementeren. Het gehele traject kan volledig geautomatiseerd worden en een gebruiker hoeft er dus helemaal niets aan te doen. Wat misschien wel nog een blokkade kan zijn is dat voor een groot aantal providers een aardig stukje omzet kan wegvallen doordat ze nu geen tussenpartij meer hoeven te zijn tussen de grote certificaat verstrekkers en de “consument”.

Voor het testen van dit soort zaken gebruik ik overigens meestal een VM bij Digital Ocean, het grote voordeel is dat je deze per uur betaald, wat een root voordeel is voor het even snel testen van nieuwe dingen. De bovenstaande link is overigens een referral link, die levert je 10 dollar aan start tegoed op (1 maand voor een server met 1 core en 1 GB ram). Mocht je mij geen extra tegoed gunnen kan je natuurlijk altijd zelf even het adres invullen als je een account wil :). De gebruikte testomgeving heb ik gebouwd op Ubuntu 15.10 met Apache, PHP en MySQL.

 

 

Blendle en paywalls

Toen ik een tijdje terug op Facebook een link plaatste naar een artikel dat ik via Blendle gelezen had was de eerste reactie of ik niet ook een link had die niet achter een belachelijke paywall zat (of iets van die strekking). Dat zette me wel weer even aan het denken.

In de afgelopen jaren zijn een hoop mensen gewend geraakt aan het fenomeen (niet feit) dat alles op internet maar gratis moet zijn. Al het nieuws kan je gratis lezen, alle artikelen zijn gratis en we zijn zelfs zo ver gegaan dat een groot deel van de bevolking weigert voor films en muziek te betalen omdat dat toch “gratis” van het internet gehaald kan worden.

Tot op zekere hoogte is dit natuurlijk niet nieuw, ook muziek werd al gekopieerd vanaf het moment dat we cassettebandjes kennen, maar het internet heeft dat allemaal net even gemakkelijker gemaakt waardoor het grote publiek er mee aan de slag gegaan is.

Voor een deel is die gewenning ook prima, als je het oké vind om nieuws te lezen dat vol staat met schrijffouten (net zoals hier) of niet op waarheid gecontroleerd is en eigenlijk over het algemeen sensatiepers is kan je prima terecht op nu.nl, je krijgt de hele dag overtrokken drama’s en halve waarheden te lezen, maar je bent in ieder geval soort van bij. De publieke omroep doet het overigens steeds vaker maar marginaal beter dan dat, maar dat is een ander verhaal.

Daarnaast is een dergelijke generieke nieuwsstroom eigenlijk ook niet meer wat veel mensen willen, in hooflijnen helemaal prima, maar eigenlijk heeft iedereen eigen interesses en dan is het niet heel handig om door bergen “nieuws” heen te moeten spitten om voor jou relevant nieuws te vinden. Bovendien zit ik lang niet altijd te wachten op de voornamelijk negatieve boventoon van het nieuws tegenwoordig, er gebeuren ook meer dan genoeg positieve ontwikkelingen die minstens net zo indrukwekkend zijn als een omvallende hijskraan.

En dat is waar wat mij betreft Blendle om de hoek komt kijken. Eigenlijk is Blendle niet veel meer dan een verzamelportal van een aantal nieuwsbronnen zoals kranten en tijdschriften. De content komt tegenwoordig niet meer alleen uit Nederland, maar ook uit de VS en de UK. Je maakt een profiel aan met je nieuwsvoorkeuren en vervolgens krijg je altijd een selectie uit die onderwerpen te zien. Tevens kan je door tijdschriften heen bladeren en de artikelen die je interessant vind voor een kleine vergoeding lezen.

Owjee.. Vergoeding.. Voor de mensen die nu al spastische trekjes krijgen, hier een plaatje van een kat:

kat

Nu zijn een hoop mensen ineens gepikeerd. Waarom zou je betalen voor nieuws op het internet? Alle content op het internet is toch gratis? Dat is dan in ieder geval iets waar ik het fundamenteel mee oneens ben, wanneer iemand effort gestoken heeft in een artikel dan mag hij / zij daar ook naar verhouding voor gecompenseerd worden, en als dat kan zonder dat ik helemaal overladen wordt met reclame ben ik direct voorstander.

We hebben het dan ook helemaal niet over schokkende prijzen, artikelen beginnen grofweg bij de 15 cent, voor de grotere (meerdere pagina’s) stukken uit maand of weekbladen als de Quest betaal je grofweg 45 cent, en als je meerdere artikelen interessant vind kan je ook direct de hele editie digitaal kopen.

Tel daar vervolgens bij op dat je je geld terug kan vragen (1 druk op de knop) als het artikel zijn geld niet waard blijkt te zijn, dan is het allemaal nog wel te overzien qua kosten en risico.

Het aanbod laat op dit moment nog wel wat te wensen over, vooral buitenlandse bronnen zijn nog schaars, maar het begin is er in ieder geval.

Waar ik dan wel weer meer moeite mee heb is als alle content van 1 aanbieder achter een eigen paywall zit. Veelal hoef ik maar een enkel artikel te lezen en voel ik er dus niet al te veel voor om een abonnement te moeten nemen of direct een x aantal euro aan tegoed moet kopen. Bovendien ontbreekt het meestal dan ook aan een mogelijkheid om je geld terug te krijgen als het artikel tegen zou vallen.

Boze kat voor emotie:

angry cat

Wat een mogelijke oplossing zou zijn voor een dergelijk probleem is om uit een centrale wallet (PayPal / Blendle / enzovoorts) voor een enkel artikel te kunnen betalen zonder dat ik daar direct overal een account voor hoef aan te maken. Helaas kiezen veel aanbieders hier niet voor, hetzelfde zien we eigenlijk op alle vlakken waar media wordt aangeboden, of dat nou games, films of muziek is, zeker de tradionelere partijen kiezen er vaak voor om een eigen distributie dienst /paywall op te zetten. Dat dit in zo goed als alle gevallen alleen maar extra ongemak oplevert voor de gebruikers wordt voor het gemak maar even genegeerd, je zou immers maar 1 cent minder verdienen per verkocht item..

Dat laatste punt, waarbij aanbieders weigeren samen te werken, maar vaak voor een eigen oplossing / paywall kiezen is wat mij betreft de laatste grote drempel in het mensen aan het verstand brengen dat niet alle content gratis is. Ik denk dat mensen niet zo zeer een probleem hebben met het betalen van een paar cent voor het lezen van een groot artikel, maar dat het probleem vooral zit in de omslachtige wijze waarop dat gebeurt.

Voor de mensen die het wel een probleem vinden om te betalen voor hun nieuws is hier een link naar nu.nl

Overigens denk ik dat betaalde en gratis diensten prima naast elkaar kunnen bestaan en dat dat ook wel het geval zal blijven. Alleen verwacht ik dat je voor de betere en goed onderzochte artikelen in de toekomst vaker een kleine bijdrage zal moeten leveren. Een mooie tussenweg bestaat overigens ook.

De twee opties die je ook steeds vaker ziet zijn sites waar je een premium membershop kan nemen en de sites die bijvoorbeeld via een platform als Patreon.com extra geld ophalen. In het geval van een abonnement (bijvoorbeeld Tested.com) krijg je meestal toegang tot wat extra content, als ze het goed doen is de site niet slechter zonder deze content, maar geeft het toch een leuke extra als je besluit om de makers te steunen door een abonnement te nemen.

Waitbutwhy.com heeft bijvoorbeeld voor de Patreon optie gekozen, mensen die dat willen kunnen via dat platform een maandelijkse bijdrage leveren. Soms krijg je daar extra’s voor, maar vaak ook niet, op die manier is het een volledig vrijblijvende bijdrage aan een website / platform waar je plezier aan beleefd.

Al met al ben ik in ieder geval niet tegen het betalen voor content op het internet, zolang het maar niet ten kosten gaat van het gebruikersgemak en de gehanteerde prijzen een beetje normaal blijven. Zeker bij sites als Tested en Waitbutwhy kan ik het vrijblijvende karakter van de bijdrage wel waarderen, iedereen kan voor zichzelf besluiten of ze een dergelijk maandelijks bedrag kunnen missen, alleen hoop ik dan wel dat voldoende mensen ook bereid zijn om een bijdrage te leveren.

 

Connected

Je kan het tegenwoordig zo gek niet meer bedenken of het is verbonden met de “cloud”, waar dat voor je telefoon nog redelijk vanzelfsprekend is gaat er misschien bij je wasmachine minder snel een lampje branden. Toch is alles wat je tegenwoordig met een app op je telefoon of tablet kan bedienen over het algemeen aangesloten op een “cloud”. Dus als je je lampen kan bedienen met een app op je telefoon, of als je je auto van te voren kan verwarmen is dat over het algemeen iets wat via een internet dienst werkt. (uitzonderingen daargelaten natuurlijk).

Nou is dat natuurlijk allemaal heel erg handig, maar er zijn ook wel een aantal haken en ogen waar we denk ik op dit moment net even te gemakkelijk mee om gaan. Zo doet eigenlijk iedereen de aanname dat de leverancier van dergelijke spullen er voor zorgt dat alles veilig is, alleen is dat wel altijd het geval? Ze zullen ongetwijfeld tot op zekere hoogte hun best doen, mogelijk brengen ze tussentijds ook firmware updates uit voor hun devices.. Maar als je nu al een beetje vreemd begint te kijken bij het woord firmware in combinatie met je wasmachine of lamp is de kans aanzienlijk dat je deze nieuwe versie nooit zal uitrollen. En dan hebben we natuurlijk ook het moment waarop de leverancier geen ondersteuning meer levert op het apparaat..

Wat gebeurt er als dan een of andere knutselaar ontdekt dat je doormiddel van een simpel commando de temperatuur van je wasdroger net iets hoger in kan stellen waardoor je was toch al 10 minuten sneller droog is. Klinkt als een wenselijke situatie, mensen die een product beter maken door met de firmware aan de slag te gaan. Helaas heeft niet iedereen de beste bedoelingen, en zelfs de mensen die dat wel hebben kunnen fouten maken.. Wat als dan iemand de temperatuur niet “iets” verhoogd, maar verdubbeld, met brand als gevolg? In dit geval zou je daar zelf nog wat voor gedaan hebben (een andere firmware inladen), maar wat als een dergelijke setting naar je wasdroger gepushed zou kunnen worden via een verbinding naar de cloud die eigenlijk alleen maar bedoeld was om jou te laten weten hoe laat de wasmachine klaar zou zijn?

Een dergelijk scenario is niet denkbaar als je een niet connected “dom” apparaat hebt, maar als je alles aan het internet gaat hangen en geen goede maatregelen treft voor de veiligheid van dergelijke embedded systemen wordt het een heel ander verhaal. En dan gaat het dus lang niet altijd over de bedoelde functionaliteit, in het geval van de wasdroger kan het zo zijn dat de fabrikant de connectie eigenlijk alleen gebruikt voor het doorgeven van de resterende droogtijd naar een app. Maar als bij het ontwikkelen van de firmware / software onvoldoende is nagedacht over het scheiden van bijvoorbeeld de aansturing van de machine en het verzamelen en verzenden van data zoals resterende looptijd is de kans nogal groot dat een creatieveling wel een manier vind om de beide systemen met elkaar te verbinden.

Nou klinkt dit misschien wat vergezocht, alleen als je dan bedenkt dat er in de VS meer dan een miljoen auto’s teruggeroepen worden omdat de boodcomputer van afstand de besturen is, tot en met het aansturen van het gas en rempedaal aan toe denk ik dat we misschien wel een beetje zijn doorgeslagen. Nou ben ik op zich niet tegen de ontwikkeling om apparaten aan het internet te hangen om ze vanaf afstand te kunnen monitoren / aansturen, maar ik denk wel dat we nog een hoop te leren hebben om dit op een veilige wijze te kunnen doen.

De vraag is ook een beetje hoe dit soort problemen voorkomen kunnen worden. Bedrijven zijn nog wel eens geneigd om shortcuts te nemen als ze denken dat de kosten van een eventuele terugroepactie of een rechtszaak lager zijn dan de kosten om het probleem daadwerkelijk te voorkomen. Ik zelf denk dat bedrijven hier niet meer mee weg gaan komen nu dit soort informatie steeds vaker voor het grote publiek beschikbaar is. Het zal wel nog even duren voordat de echte grote logge bedrijven de omschakelen zullen maken, maar op termijn zal de veiligheid een grotere rol gaan spelen en eindelijk ook de aandacht krijgen die het verdient.

Totdat goed beveiligde connected apparaten mainstream geworden zijn is het denk ik in ieder geval een goede zaak om jezelf steeds weer af te vragen of het wel nodig is om een product daadwerkelijk aan een cloud te hangen, en of het het risico waard is.

Artificial intelligence

Wie het “tech” nieuws een beetje volgt weet dat er de laatste tijd langzaamaan meer aandacht is voor de ontwikkelingen op het gebied van AI, oftewel, kunstmatige intelligentie. De toon van deze berichten is in toenemende mate negatief, vooral de risico’s van een dergelijke ontwikkeling worden volgens velen grof onderschat.

Na een aantal van deze berichten te hebben gelezen had ik eigenlijk doorlopend het idee dat dit een probleem is voor in de (relatief verre) toekomst. Een probleem van het type dat we wel in de gaten moeten houden, maar geen concrete actie behoeft. Toch bleef het trekken en dus ben ik er maar eens meer over gaan lezen, van het een kwam het ander en nu heb ik even de fictie boeken opzij gelegd en heb ik na het boek wat ik nu aan het lezen ben (biografie Elon Musk) maar eens twee boeken over AI op het programma gezet.

Ik werd eigenlijk pas echt getriggerd tijdens het lezen van twee artikelen op waitbutwhy.com (The AI Revolution: The Road to Superintelligence) (The AI Revolution: Our Immortality or Extinction), samen goed voor ongeveer 55.000 woorden, dus eigenlijk al een (klein) boek op zichzelf.

In hoofdlijnen vallen er twee dingen op bij het lezen van deze stukken, allereerst is er de snelheid waarmee dit alles zal gebeuren onvoorstelbaar. Er is wat discussie over hoe lang het gaat duren voordat we daadwerkelijk een AI systeem hebben dat qua niveau vergelijkbaar is met de mens, maar er is geen discussie over het feit dat wanneer het eenmaal zo ver is het AI systeem met ongekende snelheid de mensheid zal inhalen. Daarnaast is de uitkomst van een ontwikkeling zoals die is ook wel redelijk concreet, of de mensheid maakt de spong naar onsterfelijkheid, of het is het einde van ons tijdperk.

Klinkt als een ver van je bed show, alleen de verwachting is dat deze stap ergens tussen 2025 en 2060 gezet gaat worden.. Grote kans dat we dat nog meemaken dus. In het tweede artikel staat in verhaalvorm ook wel een kort voorbeeld omschreven van hoe een dergelijke ontwikkeling in rap tempo, volledig onbedoeld, compleet de mist in kan gaan. Enerzijds denk je dan “dat zal allemaal wel meevallen, zo ver zijn we nog lang niet” maar als je terug denkt aan hoe snel de technologische ontwikkelingen in de afgelopen jaren gegaan zijn is het misschien toch nog niet zo onrealistisch.

Het is in ieder geval een interessant onderwerp, of ik er nou uiteindelijk positief of negatief over gestemd ben weet ik eigenlijk niet, maar het zal linksom of rechtsom in ieder geval een fascinerende ontwikkeling zijn, alleen in het negatiefste scenario hebben we niet heel erg veel tijd om van een superintelligente AI te kunnen leren 🙂

Naast de stukken over AI zijn de meeste stukken op  waitbutwhy.com overigens ook erg leuk om te lezen, ze zijn alleen over het algemeen erg lang, dus ga er even goed voor zitten.

AFAS Profit: Analyses mailen

Op dit moment spendeer ik 90% van mijn werkuren aan onze (Detron) AFAS Profit inrichting. De afgelopen jaren hebben we delen van het bedrijf gesplitst, andere delen samengevoegd, en bovenal de werkwijze zoveel mogelijk geharmoniseerd. Nu die zaken langzaamaan minder van onze tijd kosten hebben we meer tijd om aan de kleinere projectjes te kunnen werken.

Zo was er al een tijdje de wens om analyses uit AFAS Profit te kunnen mailen naar een of meerdere gebruikers. Dat was voor mij een mooie gelegenheid om eens te kijken of ik behalve met AutoIT dit soort “problemen” ook op kan lossen met het native aanwezige Powershell (Windows servers). Gezien ik daar helemaal zo goed als geen ervaring mee heb was het vooral een aardig uitzoekwerk, maar op een kleine stap na is het me uiteindelijk gelukt om zo goed als het hele proces vanuit Powershell te realiseren.

Het alternatief zou overigens zijn om analyses te publiceren op InSite, maar gezien deze analyses voor een hele kleine groep gebruikers bedoeld zijn en ook maar een zeer beperkte houdbaarheid hebben is dit geen goede optie. Daarbij kan het ook zo zijn dat een deel van deze analyses als “snapshots” bewaard worden. Ook dat zou niet nodig moeten zijn, maar soms is het niet anders.

Het systeem bestaat uit een aantal delen:

  • Een analyse in AFAS Profit bepaald wie welke analyse wanneer gemaild moet krijgen. Deze lijst wordt bijgehouden door het functioneel beheer team.
  • Deel 1 in Powershell: Publiceren en interpreteren bovenstaande analyse. Deze analyse wordt opgeslagen als CSV en omvat alleen het overzichttabblad, min of meer een to-do lijst dus.
  • Deel 2 in Powershell: Check of er regels in de eerder genoemde analyse binnen het huidige tijdvak vallen, regels die niet aan die voorwaarden voldoen worden verder genegeerd

Hier had ik wel een kleine uitdaging, op zich is het bepalen of een regel in het tijdvak valt nog niet zo lastig:

ControleTijdvak

Alleen die laatste regel bracht wel een probleem met zich mee, hoe bepaald je nou of de huidige dag de laatste dag van de maand is? Het zoekwerk voor oplossingen bracht ook eigenlijk alleen maar opties met zich mee die veel complexer waren dan dat ik nodig had.

Uiteindelijk heb ik dat als volgt opgelost (de naam van de variabelen verraad het wel een beetje):

ControleLaatsteDag

Ik gebruik hier twee variabelen, één met de huidge maand, en de andere welke de maand van één dag later bevat. Als die niet gelijk zijn is vandaag dus de laatste dag van de maand. Overigens had ik deze vergelijking ook wel in één regel kunnen stoppen, maar dit vond ik voor nu zelf even overzichtelijker.

We gaan weer verder..

  • Deel 3 in Powershell / AFAS Profit: Regels die in het huidige tijdvak worden opgepakt, er wordt een batch file (jammer..) aangeroepen die via de commandline de desbetreffende analyse laat publiceren. Dit publiceren gebeurt overigens met een macro van 4 regels die toegevoegd moet worden aan de analyse. De macro:
Sub PublishAnalysis()
Dim fileName As String
ActiveWorkbook.SaveAs fileName:="C:\Powershell\testanalyse.xlsx", FileFormat:=xlOpenXMLWorkbook
End Sub

De reden dat de macro PublishAnalysis heet heeft te maken met het feit dat ik het publiceren laat doen door AFAS Profit via de commandline, de publicatie wordt getriggerd via een batchfile en uitgevoerd door deze macro.

  • Deel 4 in Powershell: Na het genereren van de analyse (als .xlsx) wordt deze verstuurd naar het mailadres dat op de regel in de eerste analyse is ingevoerd.
  • Deel 5 in Powershell: Logging wordt bijgewerkt, als de log meer dan 2Mb groot is wordt deze opzij gezet, als er al oude logging aanwezig is wordt deze overschreven.

Op dit moment is het mogelijk om analyses te verzenden op een specifieke dag van de week, een specifieke dag van de maand, iedere dag, de laatste dag van de maand of tot slot de eerste dag van de maand. Dit lijkt me nu voldoende, maar gebruikers kennende is er vast nog een optie die ik nu nog niet bedacht heb ;).

De oplossing die ik nu geschreven heb zal qua efficientie nog wel het nodige te wensen over laten, maar het werk naar behoren. Ik heb nog wel een aantal wensen die ik in de komende tijd wil doorvoeren om vooral de kans op fouten bij de invoer te verkleinen. Daarnaast moet ik nog een filter maken die voorkomt dat we files proberen te mailen die groter zijn dan onze Exchange omgeving toelaat.

Mocht iemand interesse hebben in het script zie ik wel een berichtje verschijnen, als iemand nettere of andere oplossingen heeft hoor ik het natuurlijk ook graag . Verder is het voor mij zelf wel een mooie eerste echte ervaring met Powershell. Gezien dit een native systeem is zie ik wel wat voordelen die het waard maken om te gaan kijken of ik (een deel van ) de andere Profit koppelingen om kan zetten naar Powershell scripts. Deze worden nu over het algemeen ondersteund door AutoIT “applicaties” die ik in de afgelopen jaren gemaakt heb.

IoT – ESP8266 gepruts

Een tijdje terug ben ik bezig geweest met het aansturen van mijn KlikAanKlikUit lampen via een Raspberry, rond die tijd kwam ook ineens Andries met een reeks blogposts  over het draadloos aansturen / dimmen van ledverlichting. Dat triggerde mij om me eens te verdiepen in dat soort systemen en de mogelijkheden die daarbij komen kijken.

Als we bedrijven als Intel mogen geloven moet The Internet of Things (IoT) DE toekomst worden op technologisch vlak. Dat zou er op neer komen dat zo’n beetje alles om je heen is aangesloten op het internet, waardoor je altijd alles kan monitoren, je op afstand je lampen aan / uit kan zetten, je de wasmachine kan starten, thermostaat kan instellen enzovoorts. Er zijn meerdere mogelijkheden om dit te realiseren, maar WiFi is hiervoor het meest toegankelijk als je er zelf mee aan de slag wil.

Dit is waar de ESP8266 een rol gaat spelen, via de posts van Andries raakte ik bekend met het bestaan van dit platform (ESP8266)

esp8266 ESP-01

Door de chip te flashen met een NodeMCU firmware kan je de aansturing van het “systeem” in LUA schrijven. Mijn Lua kennis is ongeveer net zo groot als mijn kennis over curling, dus daar ligt nog wel een kleine uitdaging. Maar juist dat uitzoekwerk maakt het wel leuk om hier tijd aan te spenderen.

Als eerste project ben ik maar eens begonnen met het nabouwen van het project van Andries (met wat kleine aanpassingen), een mooie oefening om ook het solderen weer eens onder de knie te krijgen. Ondertussen heb ik gewoon om te proberen ook een printje gemaakt waarmee ik via WiFi en mijn Raspberry (als webserver) mijn lampen aan en uit kan zetten, het programma en de print zijn erg basic, maar het is wel bijzonder bevredigend om zoiets zelf te maken.

Heel kort samengevat wordt er een web request gestuurd naar de Raspberry op het moment dat een van de twee GPIO poorten op de ESP8266 naar High gaat (er dus spanning op komt te staan), dit gebeurt wanneer de drukknop ingedrukt is.

Je kan diverse sensors aan het systeem knopen waarvan je de output relatief eenvoudig naar een webserver kan versturen, deze informatie kan je dan vervolgens weer voor uiteenlopende zaken gebruiken.

Al met al leuk speelgoed, mocht ik ergens nog een keer een toepassing bedenken waarvan ik denk dat deze ook nuttig kan zijn voor anderen zal ik eens een uitgebreid verslag / instructie schrijven.

Joe syntax highlighting aanpassen

Soms loopt je tegen van die problemen aan die je eens in de zoveel tijd tegen komt, maar die net niet vaak genoeg voorkomen om de oplossing te onthouden.. In dit geval is het de kleur van de PHP Syntax Highlighting in Joe via Putty (volg je het nog?)

Standaard is de instelling voor “Constant_sq” blauw, donkerblauw om precies te zijn, en dat leest toch net niet lekker op een zwarte achtergrond:

Joe PHP Syntax

Dus daarom heb ik het liever zo:

Joe PHP Syntax aangepast

Gezien ik dus iedere keer weer op zoek moest naar hoe ik dit definitief aan kon passen (dus niet iedere keer handmatig een andere syntax highlighting selecteren) heb ik besloten er maar een korte blogpost aan te besteden zodat ik de volgende keer niet zo ver hoef te zoeken :).

De configfile staat op ubuntu op deze locatie:

sudo joe /usr/share/joe/syntax/php.jsf

Vrijwel boven in de config staat dit stuk:

# Define colors
=Idle
=Comment green
=Constant cyan
=Constant_sq blue
=Escape bold cyan
=Keyword bold
=Var red
=Methods bold

Je wil hier de dikgedrukte regel aanpassen, in mijn voorbeeld heb ik er dit van gemaakt:

# Define colors
=Idle
=Comment green
=Constant cyan
=Constant_sq yellow
=Escape bold cyan
=Keyword bold
=Var red
=Methods bold

Lampen aansturen deel 2

Technisch was het niet bijzonder complex om het aansturen van de KlikAanKlikUit schakelaars werkend te krijgen, het installeren van Raspbian duurder langer dan het werkend maken van de aansturing.

De grotere uitdaging zat in  het maken van een beetje normaal werkende “webinterface”, en alhoewel het er niet uit ziet heb ik nu wel een werkend systeem om op alles wat een website kan openen thuis de lampen te kunnen schakelen.

screenshot

Er wordt ook direct nog wat data opgehaald uit een losse database die ik al een paar maanden aan het vullen ben met statistieken over ons gas en stroomverbruik. Sinds kort zit daar ook een tabel met weergegevens bij zodat ik ook nog een patroon zichtbaar kan maken met bijvoorbeeld de invloed van het weer op het gasverbruik. Of gevolgen van het wisselen van zomer en wintertijd op stroomverbruik en dergelijken. Overigens zit er een foutje in het bovenstaande screenshot, het stroomverbruik moet nog even door 10 gedeeld worden :).

Ondanks dat het geheel alleen intern op mijn eigen netwerk beschikbaar is heb ik toch wel wat aandacht besteed aan het “beveiligen” van het geheel zonder dat dit hinder oplevert in het gebruik. Effectief doet de pagina niets anders dan een paar variabelen uit de URL pakken (locatie en status) en aan de hand daarvan wordt er middels een php shell_exec een script aangeroepen dat de schakeling uitvoert. Gezien de gebruikte variabelen met wat geluk en probeerwerk dus misbruikt zouden kunnen worden voor kwalijkere zaken wordt de input vergeleken met de beschikbare opties, als het in orde is wordt het script aangeroepen, klopt het niet gebeurt er verder niets. Dit voorkomt ook meteen dat een foutje van mijn kant niet direct te grote gevolgen heeft ;).

Wat ik nu nog wil maken is dat ik via dezelfde webpagina ook de mogelijkheid krijg om schema’s te maken die de lampen op gezette tijden automatisch aan of uit kunnen zetten.

Lampen aansturen met de Raspberry Pi

Een paar dagen geleden kwam ik een (oude) tweakblog post tegen over het aansturen van een “Klik aan Klik uit” systeem via een Raspberry Pi. Gezien ik sowieso al een Raspberry heb draaien voor het uitlezen van de energiemeter (daarover schijf ik een andere keer nog wel een stukje) was het een leuke uitbreiding die ik voor een paar euro wel kon maken.

kaku - overzicht

Gisteren is dus de 433Mhz zender die ik nodig had binnen gekomen, deze heeft iets meer dan 3 euro gekost, dus dat is nog wel te overzien :). Zoals op de foto’s te zien is stelt het ding zelf helemaal niets voor en na het lezen van de ervaringen van wat andere gebruikers had ik het idee dat het bereik van de zender nog wel eens een probleem zou kunnen worden. Gelukkig blijkt dat uiteindelijk wel mee te vallen. Het werkend maken van de zender in Raspbian is met de eerder genoemde tweakblog geen noemenswaardige uitdaging meer.

Ik gebruik in huis al wat oudere schakelaars, ze komen ongeveer overeen met dit model:

klikaanklikuit

Ik denk wel dat ik met het uitzoeken van de adresseringen van mijn schakelaars wel wat buren heb lastig gevallen met lampen die uit en aan gaan.. Maar na wat puzzelwerk is het me in ieder geval gelukt om via de commandline de lampen aan en uit te kunnen zetten. De volgende stap was om dit via een webinterface te doen, maar dat stelt na de andere stappen niets meer voor.

Het enige wat ik nu nog wil kunnen doen is via een webinterface een schema in te kunnen stellen waarop lampen “vanzelf” en en uit kunnen gaan, maar dat is een uitdaging voor volgend jaar :).