okt 012017
 
De laatste tijd ben ik bezig geweest met het vervangen van mijn KaKu schakelaars. Zo zat er KaKu in mijn hanglampen en werden ook de staande lampen via KaKu bediend. Omdat KaKu via 433mhz werkt en dus geen feedback kan geven heb ik besloten om ze te gaan vervangen. Via het Youtube kanaal van Bruh kwam in in aanraking met Sonoff.

De Sonoff is een WIFI bestuurbare schakelaar gemaakt door het bedrijf itead.
Deze is schakelaar is natuurlijk te gebruiken via de eigen app, maar handiger zou zijn om deze te kunnen aansturen middels Home Assistant icm MQTT. Om dit te bereiken moeten we nieuwe firmware flashen. Dit klinkt moeilijker dan het is. :)

Wat heb je nodig:
Sonoff
USB -> FTDI adapter
Mini USB kabel
Header wires male->female

De Sonoff (€4,46) en FTDI adapter (€1,69) heb ik via AliExpress gekocht, als je niet op China wil wachten klik dan hier.

Links:
Tasmota: https://github.com/arendst/Sonoff-Tasmota/releases
Arduino IDE: https://www.arduino.cc/do…arduino-1.8.3-windows.zip
Board Manager URL: http://arduino.esp8266.co…age_esp8266com_index.json

Stap 1: Downloaden en instellen van de software
Download de Arduino IDE software via de bovenstaande link, dit is de click-to-run versie.
Extract de ZIP file en open de map waarin Arduino.exe staat, maak hierin een nieuwe map aan met de naam “portable”. Open dan de Arduino.exe.

Vervolgens ga je naar File -> Preferences en vul het veld “Additional Boards Manager URLs” in met de volgende URL: http://arduino.esp8266.co…age_esp8266com_index.json

Ga dan naar Tools -> Board -> Boards Manager. In het venster kun je zoeken naar esp8266 en druk op Install.

Ga vervolgens naar Sketch -> Include Library -> Manage Libraries. In het venster kun je zoeken naar pubsub druk weer op Install en zoek dan naar json en installeer ArduinoJson.

Ga dan terug naar de portable map die zojuist is aangemaakt, dan naar sketchbook -> libraries -> pubsubclient en open het bestand PubSubClient.h met Notepad. Op regel 26 zie je MQTT_MAX_PACKET_SIZE 128 staan, verander dit in 512 en sla het bestand op.

Nu moeten we de firmware van Tasmota gaan downloaden, zie de link bovenaan de pagina.
Kies de laatste release en download de Source code (zip). Extract de zip file in een nieuwe map in de Arduino map. Ga nu terug naar de Ardiuno IDE software en kies voor File -> Open en navigeer naar je uitgepakte Tasmota map, daarin staat de map sonoff en open het bestand sonoff.ino.

Aan de bovenkant van de applicatie openen verschillende tabbladen, selecteer het tabblad user_config.h hierin staan alle instellingen. De volgende instellingen heb ik aangepast.

  • Project naam naar sonoff1 (en de volgende sonoff2 etc.)
  • WIFI SSID en wachtwoord
  • MQTT server informatie

Uitgeschakeld door een // ervoor te zetten

  • USE_DOMOTICS
  • USE_I2C
  • USE_IR_REMOTE
  • USE_WS2812
  • USE_WS2812_DMA

Pas de instellingen onder Tools aan, zie de instellingen:
https://tweakers.net/ext/f/SJMcTDWp5WxBLQqUBe9S8SRE/full.png

Als dat ingesteld is kunnen we kijken of de code compileert door op het vinkje links boven te drukken. Als dat het geval is kunnen we gaan flashen.

Stap 2: Hardware voorbereiden
Haal je Sonoff uit zijn behuizing door de onderkant los te maken. Zorg ervoor dat je Sonoff niet is aangesloten op 230v!
Let ook op met het aansluiten van je FTDI adapter dat hij is ingesteld op 3.3v middels de jumper.
Op je Sonoff zie je op het midden van de printplaat 5 gaatjes zitten hierin steek je de male kant van je header wire en de female kant gaat op de FTDI.

Sluit de header wires als volgt aan:
https://tweakers.net/ext/f/kBASJW50nI32bLkjHoRvgvai/full.jpg
https://tweakers.net/ext/f/tXHppCFWChiiqnLSIkKNyq4M/full.jpg

Als je alle header wires aangesloten hebt kunnen we gaan flashen, sluit de USB kabel aan op de FTDI, houd het knopje op de Sonoff ingedrukt en zorg voor een klein beetje druk op de header wires die in de Sonoff zitten (zodat ze goed contact maken) en sluit nu de USB kabel aan op je computer. Wanneer hij is herkend kun je het knopje los laten (5sec ongeveer). Check voor de zekerheid of we de juiste poort gaan flashen via Tools -> Port.
Als dat het geval is druk je bovenaan in de software op het pijltje naast het vinkje. Houd ten alle tijden tijdens flashen druk op de header wires van je Sonoff.
Wanneer alles goed gaat zie je 100% staan onderin de console en geeft het LED-je op de Sonoff een “flikker”. Nu kan je de header wires loskoppelen.

Om het flashen makkelijker te maken heb ik een aan/uit knop aangesloten op de + kabel (zwart in mijn geval).
https://tweakers.net/ext/f/hqTIjvXwnjRGdO39JYTvM7iP/full.jpg

De Sonoff is nu geflashed met de Tasmota software en kan aangesloten worden, zodra dit is gedaan zal de Sonoff zich melden op je WIFI netwerk en kan je het IP adres van de Sonoff achterhalen om de webinterface te openen.

Stap 3: Toevoegen aan Home Assistant
Open de configuration.yaml en zorg ervoor dat je MQTT is ingesteld, voorbeeld:

code:

1
2
3
4
5
6
7
mqtt:
  broker: 192.168.1.118
  port: 1883
  client_id: home-assistant-1
  keepalive: 60
  username: !secret mqtt_user
  password: !secret mqtt_password

Voeg daarna onderstaand toe:

code:

1
2
3
4
5
6
7
8
9
switch:
  platform: mqtt
  name: "Strip Cord"
  command_topic: "cmnd/sonoff/power"
  state_topic: "stat/sonoff/POWER"
  qos: 1
  payload_on: "ON"
  payload_off: "OFF"
  retain: true

Nu kun je je configuration.yaml opslaan en Home Assistant herstart. Nu zit je Sonoff schakelaar in Home Assitant!
https://tweakers.net/ext/f/MhDSxdfJWAuPmqSfI2v6VR6V/full.png
https://tweakers.net/ext/f/I0BgckBKlDVoXTkxlMevp8uH/full.jpg

 Posted by at 16:30
okt 012017
 

So I ordered one of these Sonoff Wifi Switches off of Amazon. The idea is pretty neat. For around $10 you get a WIFI connected switch that you can control with your phone.

The problem:

I wanted to control my garage door with the Sonoff Wifi Switch but found out that the device passes power through it instead of just closing a contact.  Despite many requests on the manufacturers website forum they have not made the change yet.

The solution:

You can convert the Sonoff Wifi Switch into a dry contact with a Soldering Iron, someSolder and a Cheap Dremel.

Danger:  Make sure the unit is not plugged in before continuing.

Step 1:  Run your finger nail around the base of the unit to separate the cover.  I keep my nails really trimmed so I used a small flat head screwdriver.  It’s fairly obvious where the seam is but if you can’t find it, leave a comment and I’ll add some pictures of the process.

Step 2:  Removed the circuit board.

Step 3:  Removed the pathways with the Dremel from BOTH sides of the circuit board as shown in the picture below.  Hold it up to that light as shown to make sure you did not miss any of the connection.  If you’re gap is too small the voltage will make the jump.

Step 4:  Solder across the gap as shown so that the connection will actually close when the relay switches.  You should be able to see what I’m talking about in the picture below.  You can see the solder pointed to by the red arrow.  If you can’t get the solder to stretch that far, you can use a single strand of copper from a stranded wire to give your solder something to hang on to.

Step 5:  Test your product with a voltage meter to make sure it all went as planned.

 Posted by at 16:17
jul 202016
 

Introduction

I came across a few warnings when I wanted to list the modules of an
apache 2.4.7. server on an Ubuntu 14.04 server.

Error

This shocked me, but analyzing the server further showed me that
everything was up and running.

What’s going on?

There is nothing going on, except that if you request output from
the /usr/sbin/apache2 binary directly, the /etc/apache2/envvars file isn’t sourced.

Running the same command with apache2ctl gives correct output:

mrt 032016
 

When you use rrdtool, it can happen that you first create your databases, then collect a whole bunch of data and decide later you want more accuracy/longer periods.
Especially when using zenoss (the monitoring solution I mostly work with at Kangaroot), which uses very conservative RRD settings by default (i.e. 5-minute intervals for only the first 50 hours). Zenoss provides a way for you to change the way RRD’s are created, but not to apply those settings to already existing RRD files, which I found out *after* I started monitoring everything 😉

rrdresize can help: it (just) adds or removes locations for rows.
In my case it was not good enough because zenoss uses a variety of resolutions (step sizes), and so if you add rows to all of them rrdtool – when graphing – will often pick a higher resolution RRA that just had rows added (and hence contain unknown values), even though you have the values, albeit at a lower resolution.

So you need a way to update all rows in the RRA’s.
I found a perl tool that does just that. (I think, I didn’t study all details). So, you install that in your /home/zenoss for instance and then you run the following script, which creates new rrd files with the new settings and uses the perl script to copy all data into it.

#!/bin/sh
# invoke me like this:
# find /usr/local/zenoss/zenoss/perf/ -name '*.rrd' -exec ./newrrd.sh {} \; >> newrrd-logfile

file=$1
backupdir=/home/zenoss/rrds-backup
newdir=/home/zenoss/rrds-new
[ -d "$backupdir" ] || mkdir -p "$backupdir" || exit 2
[ -d "$newdir"    ] || mkdir -p "$newdir" || exit 2
[ -f "$file"      ] || exit 3

echo "Processing $file .."
base="`basename "$file"`"
[ ! -f "$backupdir/$base" ] || mv "$backupdir/$base" "$backupdir/$base".old || exit 4
cp "$file" "$backupdir/$base"
cd "$newdir" && rrdtool create "$base" \
--step '300' \
--start '1230768000' \
'DS:ds0:GAUGE:900:U:U' \
'RRA:AVERAGE:0.5:1:122640' \
'RRA:AVERAGE:0.5:6:55536' \
'RRA:MAX:0.5:6:55536'
/home/zenoss/rrdremove.pl "$backupdir/$base" "$base" | grep -v 2009 # hide some output
cp "$base" "$file" || exit 5
echo "Done"

Oh and btw, rrdwizard is a cool webapp when you’re feeling too lazy/have forgotten how to write rrdtool commands

dec 162015
 

With the release of Ubuntu 14.04 and the proliferation of PHP 5.5, there is going to be a migration away from Alternative Performance Cache (APC) and toward PHP’s new built-in OPcache.

This is a logical move that seems destined for any interpreted language. As websites have become more and more complicated with many processes running, opcode caching has become a necessity – fortunately, it’s simple to implement.

The php.net site has a nice page of all the runtime options available, but we will cover the basics here to get you started quickly.

All you need to do to get OPcache set up is to make changes in the php.ini file on your server.

Open php.ini In Your Favorite Text Editor
To get started open your php.ini file.

Apache web-servers

/etc/php5/apache2/php.ini

Enable the OPcache
To enable the OPcache, change to the following lines — easy enough!
;opcache.enable=0
Change to:

opcache.enable=1
Note: you have to uncomment this line as well as change the “0″ to “1″.

Modify the Amount of RAM the OPcache Will Use
With OPcache, there is a trade-off between speed and the amount of RAM used. The more RAM you are willing to dedicate to storing opcode, the more opcode that can be stored. There is a diminishing return at some point, because some code will execute rarely, or your code base might not be that big. It is worth playing with this setting to see where you get the best performance-versus-RAM trade-off. This setting is in megabytes.

;opcache.memory_consumption=64
Change to:

opcache.memory_consumption=128
Boost the Number of Scripts that Can Be Cached
OPcache has a strange setting that requires you to not only adjust the amount of RAM, but also define the number of scripts that can be cached. You have the option of tuning this parameter for your own application too, especially if you find that your hit rate is not close to 100 percent.

;opcache.max_accelerated_files=2000
Change to:

opcache.max_accelerated_files=4000
Change the Revalidate Frequency
To make sure that the OPcache notices when you change your PHP code, you can set the revalidate frequency. Basically, this will tell the cache how often to check the timestamp on the files. This is measured in seconds.

;opcache_revalidate_freq = 2
Change to:

opcache_revalidate_freq = 240
Verify that the PHP OPcache Mod is Enabled
Believe it or not, that converts most of the settings you will need to get started. PHP5 has its own module system (since 5.4), so make sure that OPcache is enabled.

sudo php5enmod opcache
Restart PHP and Your Server
You should now be all set to start using PHP 5.5’s OPcache. You just need to restart your server to get it going.

Apache Web-Servers

sudo service apache2 restart
Nginx Web-Servers

sudo service nginx restart
Conclus

okt 072015
 

PHP has different functions which can be used to test the value of a variable. Three useful functions for this are isset(), empty() and is_null(). All these function return a boolean value. If these functions are not used in correct way they can cause unexpected results.

isset() and empty() are often viewed as functions that are opposite, however this is not always true. In this post I will explain the differences between these functions.

Continue reading »

jan 272015
 

Exchange server has a recipient filter that prevents mail submissions to accounts that are not in the GAL (Global Address List).

First, let’s locate this configuration and then we’ll talk about how it works followed by thoughts about relay domains.

How to enable this feature

To enable this filter in Exchange 2003 you would visit the Message Delivery Properties screen, and select the checkbox next to Filter recipients who are not in the Directory. You would also need to enable it on each SMTP connection.

Continue reading »

jan 202015
 

Als IPv6 nu al was doorgebroken, hadden we ze niet meer nodig, VPN verbindingen en inbel verbindingen. Helaas zijn deze verbindingen nu nog nodig om met een netwerk op afstand te verbinden. In de loop van de jaren heb ik heel wat VPN verbindingen in mijn lijst staan. Dit is erg vervelend als ik achter een nieuwe computer zit. Hier zou ik alle instellingen weer opnieuw moeten doen. Gelukkig is hier een snelle oplossing voor. Met een extra tool is het zelfs mogelijk de wachtwoorden uit te lezen en te kopiëren.

Continue reading »

nov 042014
 

Bestanden van internet en andere mogelijk onveilige locaties kunnen virussen, wormen of andere soorten malware bevatten waardoor de computer kan worden beschadigd. Voor de bescherming van de computer worden bestanden van deze mogelijk onveilige locaties geopend in de beveiligde weergave. In de beveiligde weergave kunt u de risico’s verminderen terwijl u een bestand leest en de inhoud weergeeft.

Echter is dit soms ook erg vervelend. Om het bestand te bewerken moet een extra handeling worden uitgevoerd. Volgens de onderstaande stappen kan worden aangegeven welke bestanden wel in de beveiligde modus moeten worden geopend en welke niet. Continue reading »