Synology Find and kill all tasks running for a service/package on a Synology

I wanted to kill all tasks running on my Synology for a package before uninstalling this one. Here is the how-to:

Click to Read More

The tasks running for a service are all listed in /sys/fs/cgroup/cpuacct/[the service]/tasks

The service can be pgsql, nginx, nmbd, ftpd, sshd, ... or synotifyd, synologd, synobackupd, ... or a package like pkgctl-CloudSync, pkgctl-AudioStation, pkgctl-SurveilanceStation, ...

Ex.:

  • To see all tasks running for Synology's StorageAnalyzer, type something like: cat /sys/fs/cgroup/cpuacct/pkgctl-StorageAnalyzer/tasks
  • To kill all those tasks, type something like: for task in $(cat /sys/fs/cgroup/cpuacct/pkgctl-StorageAnalyzer/tasks); do kill $task; done

Synology License and installation wizard not shown when installing Synology Package

I noticed this morning that my Synology is not showing the License and the Installation Wizard anymore when installing my own Packages (Packages made with my app MODS and hosted on my own SSPK Server).

Click to Read More

I am not yet able to understand why the Installation Wizards and the Licence file of my own packages are not shown anymore, when installing them from my SSPK server via "Package Center" > "Community". But everything works fine when installing them "Manually" via "Package Center" > "Manual Install" (and browsing to pick the spk into the folder of my SSPK server).

The Upgrade Wizards and even the "Confirm settings" screen are also not displayed... While the Uninstallation Wizard works fine in all cases ?!

My DS1815+ is running DSM 6.1.7-15284.

I have compared all the logs created in /var/log/ during the installation and noticed a few differences. First, when installing a package from my SSPK server, there are 'messages' being logged:

2018-11-03T22:26:05+01:00 ... synoscgi_SYNO.Core.Package.Installation_1_install[21663]: resource_api.cpp:163 Acquire service-cfg for [the package I am installing] when 0x0001 (done)

This is logged each time I am installing a package from my SSPK Server but not when install the same package manually.

Next to those messages, the following INFO are also logged in synofeasibilitycheck.log:

2018-11-03T22:25:50+01:00 ... synoscgi_SYNO.Core.Package_1_feasibility_check[21529]: feasibility_check.cpp:87 FeasibilityCheck: [Info] Start feasibility check [package_install] with type [hard].
2018-11-03T22:25:50+01:00 ... synoscgi_SYNO.Core.Package_1_feasibility_check[21529]: feasibility_check.cpp:106 FeasibilityCheck: [Info] [0] of feasibility check [package_install] failed.
2018-11-03T22:25:50+01:00 ... synoscgi_SYNO.Core.Package_1_feasibility_check[21529]: feasibility_check.cpp:79 FeasibilityCheck: [Info] No [package_install] feasibility check config with type [soft].

 

Programming Call a php webpage from a IFTTT applet using Google Assistant

I wanted to be able to wake up PC on my Lan using voice commands. To achieve that, I did implement a solution using Google Assistant, IFTTT and a php web page hosted on my NAS.

Click to Read More

Regarding IFTTT, you must have an account. Then,

  • Create a new applet,
  • Choose the service "Google Assistant"
    • Choose a trigger, ex.: "Say a phrase with a text ingredient"
    • Type a phrase in "What do you want to say?" such as "Wake up my PC $" ($ is the symbol to be used for the "ingredient")
    • Type a phrase in "What do you want the Assistant to say in response?" such as "Ok, I will wake up $"
  • Choose next an action service "Webhooks" (to "make a web request")
    • Type the url of your web page: http://<public Ip of your NAS>/<some path>/action.php?do=wakeup&param={{TextField}} ({{TextField}} will take the value of the ingredient)
    • Chose the "method": GET
    • Chose the "content type": text/plain

Regarding the php web page (action.php), I had to do some fine tuning... So, I started with a page logging all information received from IFTTT:

</pre>
<?php
// https://gist.github.com/magnetikonline/650e30e485c0f91f2f40
class DumpHTTPRequestToFile
{
public function execute($targetFile)
{
$boby = json_decode(file_get_contents('php://input') , true);

$data = sprintf("<h2><u>IFTTT call at %s on %s</u></h2><h3>Method:</h3>", date('h:i:s') , date('d/m/Y'));
$data .= sprintf("<blockquote>%s (%s): %s </blockquote><h3>HTTP headers:</h3><ul>", $_SERVER['REQUEST_METHOD'], $_SERVER['SERVER_PROTOCOL'], htmlentities($_SERVER['REQUEST_URI']));
foreach ($this->getHeaderList() as $name => $value)
{
$data .= "<li><b>" . $name . '</b>: ' . $value . "</li>";
}

$data .= "</ul><h3>Post:</h3><ul>";
foreach ($_POST as $key => $value) $data .= "<li>" . $key . '=' . $value . '</li>';

$bodyhtml = $this->jsonToTable($boby);
$data .= "</ul><h3>Request body:</h3><blockquote>$bodyhtml</blockquote>";

$action = trim(strtolower($_GET['action']));
$action = preg_replace('/^ *de +/', '', $action);
$action = preg_replace('/^ *d *\' +/', '', $action);

$param = trim(strtolower($_GET['param']));
$param = preg_replace('/^ *de +/', '', $param);
$param = preg_replace('/^ *d *\' +/', '', $param);

$data .= "<h3>Requested Action:</h3><blockquote>$action: $param</blockquote>";

similar_text(strtolower($param) , "zeus", $percent);
$data .= "Zeus: $percent %<br>";

similar_text(strtolower($param) , "chaos", $percent);
$data .= "Chaos: $percent %<br>";

file_put_contents($targetFile, $data . file_get_contents($targetFile) . "\n");

echo (nl2br($data));
}

private function getHeaderList()
{
$headerList = [];
foreach ($_SERVER as $name => $value)
{
if (preg_match('/^HTTP_/', $name))
{
// convert HTTP_HEADER_NAME to Header-Name
$name = strtr(substr($name, 5) , '_', ' ');
$name = ucwords(strtolower($name));
$name = strtr($name, ' ', '-');
// add to list
$headerList[$name] = $value;
}
}
return $headerList;
}

private function jsonToTable($data)
{
$table = "<table class='json-table' width='100%'>";
foreach ($data as $key => $value)
{
$table .= "<tr valign='top'>";
if (!is_numeric($key))
{
$table .= "
<td>
<strong>" . $key . ":</strong>
</td>
<td>
";
}
else
{
$table .= "
<td colspan='2'>
";
}
if (is_object($value) || is_array($value))
{
$table .= jsonToTable($value);
}
else
{
$table .= $value;
}
$table .= "
</td>
</tr>
";
}
$table .= "</table>";
return $table;
}
}

(new DumpHTTPRequestToFile)->execute('./action.html');

?>
<pre>

The log is stored in a html page "log.html".

Notes:

  • I notice that Google was not good at recognizing the name of my PC (IMO because I use French sentences). So I am using a php command "similar_text" to evaluate the "ingredient". But this is really far from effective.
  • I tried to use a "POST" method instead of "Get" and a Content Type "application/json", it works. But when I add a Body like {“token”:”mseries”,”command”: “<<<{{TextField}}>>>”, ”test”: “data”}, I don't see it received by my php page :(
  • If Google Assistant does not call correcly IFTTT, look at you voice command history to be sure it understood you order: https://myactivity.google.com/myactivity?restrict=vaa&utm_source=help
  • If Google Assistant understood correctly your command, but IFTTT didn't call your web page, look at your IFTTT activity: https://ifttt.com/activity

A log for a call using a GET method will look like:

IFTTT call at 11:32:29 on 25/09/2018

Method: GET (HTTP/1.1): /ifttt/action.php?action=wakeup&param=CARROS

HTTP headers:

X-Newrelic-Transaction: PxQGUlECCwFRBVEEVQAAAlQTGlUDChAHHEAJVA1cAgMKA1gEVFNVUVUHFU1EAQACBV1UBlUTag==
X-Newrelic-Id: VwAOU1RRGwAFUFZUAwQE
Content-Type: text/plain
Content-Length: 74
Connection: close
Host: olympe.letroye.be
X-Real-Port: 55748
X-Port: 80
X-Real-Ip: 54.164.110.125
X-Forwarded-By: 192.168.0.200

Post:

Request body:

Requested Action: wakeup: CARROS

Zeus: 20 %
Chaos: 72.727272727273 %

A log for a call using a POST method with application/json content-type will look like:

IFTTT call at 11:41:14 on 25/09/2018

Method: POST (HTTP/1.1): /ifttt/action.php?action=wakeup&param=Kaos

HTTP headers:

X-Newrelic-Id: VwAOU1RRGwAFUFZUAwQE
Content-Type: application/json
Content-Length: 77
Connection: close
Host: olympe.letroye.be
X-Real-Port: 59892
X-Port: 80
X-Real-Ip: 54.211.16.53
X-Forwarded-By: 192.168.0.200

Post:

Request body:

Requested Action: wakeup: kaos

Zeus: 25 %
Chaos: 66.666666666667 %

Synology How to backup Photo from a mobile onto a Synology

I used to rely on DS Cloud to backup my complete Android mobile onto my Synology (both internal and external storage). But after Android 4.4.x, the files must be stored under /storage/<your external sd>/Andoid/data/com.synology.dsclooud/files. It means DS Cloud may not backup the DCIM folder locate on the external SD.

The solution is to get rid of DS cloud and use DS File or DS Photo - or a third party, but this a less preferred option for me...

Click to Read More

DS Photo

It has a feature to backup all photos from a mobile (Android or iOS) into one folder/album of the Photo Station. But it means that Photo Station must be installed.

See documentation here (loo for Upload and Download Photos).

It's really slow because it needs to create the thumbnails, etc... for Photo Station and seems even to stop from time to time. You have to open it to check that it runs effectively.

Pay attention to not check the option that frees space. It will deleted the photos on your mobile after the upload.

NB.: It also backup movies ("You can upload photos or videos from ..."), but does not seem to do it as long as all photos are not yet uploaded. Many old videos were not yet uploaded onto my Synology although photos with the same age were already processed. And after the backup of 1000th of photos, I finally saw a long list of videos being uploaded.

DS File

It has a feature to backup all photos and videos into any subfolder of a shared drive. As far as I am concerned, I do backup into a subfolder of my "home" on the Synology.

See documentation here (look for Backing up Photos and Videos).

Pay attention to not check the option that frees space. It will deleted the photos and movies on your mobile after the backup.

DS File can backup photos and videos from all detected locations containing media: DCIM (external storage), Office Lens, PhotosEditor, WhatsApp Images, WhatsApp Video. But you may not specify yourself a custom folder. It's nevertheless the best option to backup all media in my opinion.

Attention, I noticed that DS File consumed a lot of power during the first backup, so it was suggested to be put in deep sleep mode. But doing that stops the backup background process. Compared to DS Photo, it's quite exactly the same behavior and configuration but one can chose the target folder on the Synology. Also, it is much faster (as it does not have to create anything for the Photo Station) and backup all videos and photos simultaneously.

Moment

There is now a new application, named Synology Moment, which also comes with a Backup feature for photos and videos, similar to Photo Station. I didn't test it yet.

(Synology Moment is combined with Synology Drive, an application replacing Cloud Station Server)

SynologyWordpress Solve a 504 Gateway Time out nginx with WordPress on Synology

Recently, accessing WordPress on my Synology started to result in "504 Gateway Time out nginx" errors.

I found the solution here.

Click to Read More

  1. Open a ssh console using Putty as explained here.
  2. Enter root mode by typing: sudo -i
  3. cd /etc/nginx/
  4. chown -hR http:http conf.d/
  5. cd conf.d
  6. vi www.WordPress.conf
    1. Add: proxy_connect_timeout 600;
    2. Modify: proxy_read_timeout 600;

Tips Acronis cannot access backup file due to credentials of network share

Trying to backup an image of my PC with Acronis True Image 2016 on my Synology, I got an error message like "Acronis cannot access backup file [due] to credentials [when accessing the] network share".

I couldn't find the way to change those credentials... But finally found a trick (?) to be prompted!

Click to Read More

Concretely,

  • after adding a new backup, I clicked "Select Destination" and used the 'Browse...' option to "Set a custom location for the backup".
  • Next, I picked "My NAS connections" where my Synology was already listed (configured more than 2 years ago) and there, browsed to a sub-folder on the "home" share.
  • Unfortunately, clicking on "Back up Now" resulted, after longs minutes, into an error message complaining about the credentials.

Probably because Acronis is using the Windows Credential Manager, I couldn't find how to change the credentials within Acronis.

But changing again the destination and typing manually the path "\\<MyNAs>\\home\Acronis\<PC Name>" instead for Browsing for that folder, I was prompted for a login/password.

Acronis Credentials Network

Et voilà...

Tips Cannot login into Somfy website with my email address

Come on Somfy's guys... I failed to login into your Somfy Tahoma Website because of a stupid "Case" coding !

Click to Read More

I did create an account on Somfy Connect Website as I always do on all websites; with the first letters in uppercase for my first-name and surname.

But on Somfy Tahoma Website, I couldn't login with that account. I lost long minutes to figure out that on this second website, I had to type my email in lower case!!!

Beginners !

Tips Start with DJI Spark - my own notes.

These are a few notes for myself. I did indeed struggle to start with my DJI Spark

Click to Read More

Power on/off

The power button is:

  1. on the top-right for the RC (the Remote Control).
  2. on the battery for the aircraft (the DJI Spark)

Before switching on the RC or the aircraft, charge them by plugging the batteries on the battery loader + connecting the remote with the white USB cable on the same loader.

Both the RC and the aircraft can be switch on by:

  1. pressing the power button once and immediately after
  2. pressing+holding it until the 4 leds are on (White leds on the RC, green leds on the aircraft).

Once the RC or the aircraft switched on, the amount of leds being on represents the power level (1, 2, 3 or 4). The aircraft will play a short music. Its two front led should keep red while the two back leds will blink quickly.

The switch off the RC or the aircraft, do the same operation as to switch it on.

If the aircraft is switch off but not the RC, this one will start to beep after some time. Press any button to stop the beeps.

Leds

Front Leds (same side as the camera) are used to show the orientation.

  • Solid red (= not flashing) once the aircraft is turned on, to indicate the nose of the aircraft.

Back Leds (same side as the battery) are used to show status (See User Manual for details):

  • Slow green flashing = Positioning mode with GPS
  • Two green flashes = Positioning mode with Vision System (no GPS signal)
  • Slow yellow flashing = Neither GPS signal nor Vision System (Ex: not enough light or uniform surface)

Update the firmware.

I found it much more easy (stable) to update the aircraft via a PC (using the DJI Assistant 2 software) than via a mobile (using the DJI GO 4 app).

  1. Install DJI Assistant 2, to be found here, on your PC and run it.
  2. Plug a battery into your DJI Spark.
  3. Connect the DJI Spark to the PC using the usb cable. The usb connector is behind a small trap, at the back of the device, above the battery.
  4. Turn on the DJI Spark. DJI Assistant 2 will soon detect it.
  5. Do a Firmware update.
  6. Redo this for each battery. Indeed, they are Intelligent Flight Batteries that need also a firmware
  7. Connect next the Remote Control to the PC.

Notice: the remote control cannot be updated via DJI Assistant 2. It may only be updated from GJI GO 4, installed on a mobile device.

Official Videos to update firmware:

  1. with DJI Assitant: https://youtu.be/PRlV8fsVV0U
  2. with DJI GO 4: https://youtu.be/HZE-fP28htI

Some users report that they had to install an older version of the DJI Go 4 on their mobile, available here:
https://www.apkmirror.com/apk/dj ... droid-apk-download/

Solve trouble to link RC and Spark.

Linking the RC and the aircraft using the DJI Go 4 app can be difficult... if it's the case, you can do it manually (without the app)

Reset first the DJI Spark with the steps 1 to 5:

  1. Power up your aircraft .
  2. Press next its power button for 9 seconds (until you hear 1, next 2, and finally 3 beeps)
  3. Restart your aircraft (power off and on again)
  4. Press next its power button for 6 seconds (until you hear 1 and next 2 beeps)
  5. Restart your aircraft one more time.
  6. Now power up your remote (just now) and keep it next to the DJI Spark (< 20cm). If the led on the left is red, it means the RC needs to be linked with the aircraft.
  7. Press the power button of the aircraft for 3 seconds (until it does 1 beep). The front light should blink red.
  8. Press 3 keys on your remote to start the connection: the Pause button, the Fn button and the Custom button (which is bottom right, under the 'camera' shooter button). press them until the RC starts to beep continuously.
  9. Wait until the leds start to blink slowly red.

If you don't want to link the RC with the aircraft but only your mobile, skip the step 5 to 9 and instead, connect you mobile on the aircraft's wifi.

If not working, do it again but skip step 3 to 9. If DJI GO 4 is prompting you to switch the WLAN settings because you fly in another country, click CANCEL! This is said to be caused by the flight simulator which is 'flying' the drone in China. It should be fixed if the drone has enough GPS signal and a new home position.

Video: https://youtu.be/GOi9WiS-PF8

Asked for a China Mainland Number

I didn't test this yet, but keep it here, just in case... So far, I just click 'Cancel' when I am asked to switch the WLAN settings. If I accept by mistake, I am not able to connect to the aricraft WIFI anymore and has to do a complete reset as explained above.

  1. Uninstall DJI App
  2. Install a File Browser app on your phone (I used FX)
  3. Delete all folder and files you can see with the word DJI in it
  4. (Main Storage > DJI Folder), (Main Storage > dji.go.v4 Folder) and there may also be a DJI text file in Main Storage also.
  5. Reinstall the app
  6. Log into app and turn off BOTH China settings
  7. Restart App
  8. Turn on RC and AC and connect as normal

Fly with just the Remote Control

Yes, it's doable! Connect the RC with the aircraft. Once done, move the left sticks bottom-right (pointing at 4h30) and the right stick bottom-left (pointing at 7h30). The motors will start to turn slowly but the aircraft won't take off.

Next, push the left stick up to take off. Keep it down for a few seconds to land.

The button Pause can be used to immediately 'stop' and hover. The button RTH (Return To Home) should also work, but who knows where 'Home' is defined! (NB.: the home Point should have been recorded automatically when the aircraft was turned on.. But the GPS was possibly missing a signal. So, always check the status LED before flying: they should slowly flash green. Also note that the Home Point is redefined every 15m if the aircraft is following a subject (ActiveTrack) with Dynamic Home Point enabled).

Without a mobile connected, you won't see any warnings, etc... The flight will be limited to ~30m (To be verified... )

https://www.djivideos.com/watch/84606e93-55cc-47d8-aec0-942e6ad354a9?autoplay=false&poster

NB: I am using this cable to connect the RC and my mobile: Lindy USB 2.0 Cable Type Micro B – USB cable – Micro USB B OTG. The red end must be connected to the RC and the black one on the mobile. it is the OTG end. Always plug the cable first into the mobile and only next the OTG end in the remote.

Use Gesture Mode

Once the aircraft turned on and the front Leds is solid red, tap twice the power button of the battery to enter the gesture mode. Keep the aircraft in front of your face, camera pointing at you.

The aircraft should beep twice and the front Leds should become solid green, meaning that it has succeeded in face detection. Otherwise retry to tap twice the power button of the battery and keep the camera well aligned in front of your face.

After face detection, the leds turn solid red and the aircraft will take off and hover. You can start doing gesture at ~0.7m of the aircraft. Check that the front Leds are solid green. Solid red means that the gesture mode has quit. Blinking yellow means that it's not working fine. (Blinking red means that the aircraft will take a selfie or video).

Batteries

  1. Discharge the battery to 40%-65% if it will NOT be used for 10 days or more. This can greatly extend the battery life.
  2. Intelligent batteries will automatically discharge themselves after 10 days of non-use.
  3. DO NOT store the battery for an extended period after fully discharging it. Doing so may over-discharge the battery and cause irreparable battery cell damage.
  4. The battery will enter hibernation mode if depleted and stored for a long period. Recharge the battery to bring it out of hibernation.
  5. Remove batteries from the aircraft when stored for an extended period.
  6. Never over-discharge, as this may lead to battery cell damage.
  7. Battery life may be reduced if not used for a long time.
  8. Fully charge and discharge the battery at least once every 3 months to maintain battery health.
  9. Discharge a battery by turning on the aircraft and waiting until the battery is empty.

Calibration

The process can be tricky and looks like being freezed. But watch thist : https://youtu.be/df3ulddOqzU

Tutorials

  1. Beginners guide: http://www.wanderworx.com/dji-spark-beginners-guide
  2. RTH: https://store.dji.com/guides/how-to-use-the-djis-return-to-home
    1. You need to record first your Home Point with at least 10 satellite GPS connections.
    2. If the drone is between 3m to 20m from its home point then it will just land.
    3. If the drone is more than 20m away, then it’ll ascend to the set RTH height before heading back home.
  3. Official Tutorials, Spec and User Manual: https://www.dji.com/spark/info
  4. DJI GO 4 Manual: https://store.dji.com/guides/dji-go-4-manual
  5. A lot of materials: http://www.spark-help.com/Spark

Replace Propellers

You should notice that there is a difference between the propellers: 2 have white circles on top and two don’t.

The propellers with the white circles must be installed on the motors that have similar white marks on top.

Find lost DJI Spark

If you lose your spark, e.g. after a crash, there are  various ways to find it:

Via your "Flight List":

  • Run "DJI GO 4" App
  • Under "Enter Device", there are 4 entries: Equipment, Editor, SkyPixel and Me... Click on "Me".
  • Click next on "Flight Record"
  • You see your Flight Total time, Travel Distance, Flight Times, Top Distance, Top Altitude, Top Speed... And at the bottom, you can open your "Flight list". Do that.
  • Select your very last flight. You will enter a map
  • If your GPS works, you should see you as a large blue dot, the path followed by your drone and its position as a red triangle
  • Move toward the red triangle.

Via Find "My Drone":

  • Run "DJI GO 4" App
  • In the upper-right corner, open the menu
  • Select Find My Drone
  • You will see a map with where you are (blue triangle) and where is your drone (red triangle)
  • Click on the drone (red triangle) and you get a menu to make it beeps or lights if connected. You also see its coordinates
  • Click on the coordinates. This is going to copy them into the clipboard.
  • Open Google Maps and paste the coordinates. NB.: the separator must be a dot. Ex.:  50.894952, 4.341613
  • If your GPS works, you should see you as a blue dot
  • Move toward the target.

Via the map in Fly Mode:

  • If the drone is still connected, and you see a mini map on your screen, as a picture in the first person view, open it.
  • You should be indicated as a large blue dot  and your drone as a red triangle.
  • Move toward the red triangle.

Do Sphere photos

  1. Use DJI Media Maker on PC to create the Panoramique 360
    1. Drag and drop the folder, with the parts, from the sd card (<drive>:\DCIM\PANORAMA\100_xxx) onto DJI Media Maker and select Mode: Panorama 360°
    2. Select the Output Folder. I pick a the "public" shared folder on my Synology as one has next to transfer the image on a mobile/tablet.
  2. + Tiny Planet Maker on Android:  https://www.youtube.com/watch?v=_pMZFLYbqoU
    1. Transfer the panoramique image produced on your PC with DJI Media Maker and enjoy ;)

Or download the tiny planet directly from the DJI while connected and in "Fly mode"

  1. In the bottom-right corner of the DJI Go 4 app, whil ein Fly mode, there is a "play" icon. Press on ti.
  2. There, once can see the Library with videos, photos and panoramics including photospheres.
  3. Click on a photosphere to download the picture and create the globe.
    1. Look at the blue progress bar at the bottom of the screen for the progress. It can be very slow, first downloading all images and assembling them next (stitching Pano images)
    2. Do not go back to the library (arrow in the upper-left corner of the screen) during the download as progress would be lost. You may do it during the assembling part however.
    3. Once the download is done, the screen can become black with a spinning icon never stopping. Go back to the library and reopen the photosphere
    4. You can touch the photosphere to zoom-in but will not be able to zoom out manually
  4. Next you will be able to store it in the your local album of your phone (for edition) using the icon "download" in the bottom-right corner

Once photosphere downloaded from the DJI spark with the DJI GO 4 app, they can be opened with Theta+. This one is really great as it can create Ballon mirrors, tiny planets, animations, ...

  1. Theta+ 1.6.1 for Android use to work also with photosphere created wtom a PC using DJI Media Maker : https://www.youtube.com/watch?v=0oAPxgZ1kP8&t=194s 
    1. This version has 3 butons on Theta+'s home screen : Edit image, Animation and Timelapse. If not, you don't have the right version
    2. Mirror APK: https://apkpure.com/theta/com.thetaplus
    3. But since my first attempts, it does not see any photos in my library anymore... It's a pity because it was doing very nice animations.

Mode Fly Modes

Use DJI Go 4 Mod from here.

You will have access to all Mavick Pro's fly modes, described here.

Take photos

When used Auto-Exposure, it can be useful to lock it. For that, touch the screen on the area to be used. A target with an opened lock appears and the exposure is adapted. Touch the lock and it will be closed. A message "Auto Exposure locked." appears. Touch again somewhere to unlock the Exposure and recalculate for the selected area.

Legal information

European information : http://dronerules.eu/en

All legal Belgian information: https://mobilit.belgium.be/fr/transport_aerien/drones (No version [EN]).

A Belgian Brochure: https://mobilit.belgium.be/sites/default/files/resources/files/asil_2017_01_pilotage_de_drones.pdf (Version [EN]).

List of restricted area:

  • https://www.dji.com/flysafe/geo-map
  • in Belgium: https://droneguide.be

Tips TuneBlade: problem initializing audio capture.

I just had this error message when trying to connect TuneBlade on my Airplay Yamaha: "There was a problem initializing audio capture. Exception from HRESULT 0x88890008"

I fixed it in 5 seconds by reconfiguring my playback device.

Click to Read More

  1. In the Systray, right the Speaker icon and select "Playback devices" in the menu. This is opening a "Sound" window
  2. In the tab "Playback" of this window, select the speaker currently used by the PC and click the button "Configure" at the bottom left.
  3. Do reconfigure your playback device.

In my case, my playback device was reset to "Stereo" although it should have been 7.1 Surround. This usually happens after an upgrade of its Realtek Audio Drivers.

Tips Use a VPN between an Android mobile and a Synology NAS via Proximus network

I spent hours trying to figure out why I couldn't connect my Galaxy S7 onto my Synology using a PPTP VPN on the Proximus 3G/4G Network (Belgium) while it was working fine if connected via WiFi.

Finally, I gave up and configured a L2TP/IPSec VPN. This one worked immediately like a charm, both on WiFi and 3G/4G. I am quite sure this is due to Proximus configuring my profile to use CGN (Carrier Grade NAT).

Click to Read More

I was initially inspired by this post ("Using Synology DiskStation as a VPN server using built-in Android VPN client"). So;

  • I did first configure my Synology VPN Server to use PPTP as explained here (Official Knowledge base Synology)
  • Next, I did open my Synology Firewall (port 1723 for PPTP) via the Control Panel > Security > Firewall > Edit Rules > Edit an entry to Allow > Select Built-in applications > VPN Server (PPTP)

Open Firewall Synology for VPN

  • Then, I did configure my Modem to route the TCP port 1723 to my NAS via Access Control > Port Mapping

Configure Proximus Modem Route

Configure Proximus Modem Route

  • Finally, I configured a PPTP VPN on my Galaxy S7 via Settings > Connections > More connection settings > VPN > ADD VPN

It worked immediately while connecting my Galaxy S7 via WiFi. But if failed while connected via 3G/4G. To investigate, I did enable the firewall of my dd-wrt router (placed between my modem and my NAS) and configured it to send all its firewall messages to the syslog server of my Synology (the "Log Center"). I those logs, I found packets corresponding most probably to the VPN requests from my Galaxy S7 (They were only arriving when I was trying to establish a connection). Those were not coming from my Galaxy S7's IP. Instead, they were coming from another Proximus IP, with a protocol 47 (Generic Route Encapsulation)?! Could this be due to Proximus configuring my profile to use CGN (Carrier Grade NAT)? Unfortunately, I couldn't check and reconfigure this myself as the option is not available anymore via the MyProximus administration interface...

So, I decided to give up with this PPTP VPN and use a more secure but less performant VPN: L2TP/IPSEC with a PSK (IPsec pre-shared key). And miracle, after opening and routing the UDP ports 500, 1701 and 4500, it worked !