Analyse Smart Mirror

Vor einigen Tagen konnte ich das erstmal mal einen Fertigen Smart Mirror gegutachten und mir wurde Schlagartig eine Sache klar:

Hardware ist beim Magic Mirror eine Nebensache. Jeder kann sich einen Magic Mirror (Smart Mirror) bauen. Anleitungen gibt es viele. Die Teile sind für jeden erhältlich. Die Kosten sind mit 300-500€ noch akzeptabel.

Die eigentlich Herausforderung besteht in der Software und da besteht zur Zeit noch eine klaffende Lücke auf dem Markt. Eine nette Visualisierung ist schön – die Zukunft wird jedoch in der Interaktion mit dem Smart Mirror liegen. Ob verbal, oder Gestenkontrolle oder zumindest per Touch, irgendwie muss es dem Nutzer möglich sein direkt mit dem Gerät zu interagieren.

 

Raspberry Pi 3 kaufen in Deutschland

Wenn du in Deutschland lebst und über den Kauf des Raspberry Pi 3 nachdenkst, wird dir dieser Preisvergleich sehr weiterhelfen:

Preisvergleich: Raspberry Pi 3 kaufen – in Deutschland

Android random MAC: Game over for WiFi analytics companies?

Android 6.0 may cause problems for WiFi Analytics companies. According to the official Android 6.0 Changes, the MAC address of Android Phones that run Marshmallow (Android 6.0) will be randomized. This will be a problem for applications that relay on capturing MAC addresses from WiFi packets like probe requests to identify smartphones. With this change android is following Apples iOS which introduces mac address randomization in iOS 8. That was 2014, and it caused a lot of trouble of the  WiFi analytics companies. Apples market share on this time in middle Europe was about 25%. In 2-3 Years the majority of used android devices will run android 6. I would say that is time enough to change the business strategy.

Also Apps that used the MAC address as identifier need to say “Good Bye” to the method because in Android 6.0 you can not get mac address programmatically.

Official Statement:

Note: When a device running Android 6.0 (API level 23) initiates a background Wi-Fi or Bluetooth scan, the operation is visible to external devices as originating from a randomized MAC address.

Experiment 1 – Phone is connected to a WiFi network:
1. Use a MacOS or Linux machine and run tcpdump
tcpdump -I -e -i en1 -s 256 type mgt subtype probe-req
Result:
3538260410us tsft 1.0 Mb/s 2452 MHz 11g -48dB signal -91dB noise antenna 0 BSSID:Broadcast DA:Broadcast SA:c0:ee:fb:xx:xx:xx (oui Unknown) Probe Request (I love Chicken) [1.0 2.0 5.5 11.0 Mbit]
Good news: My mac address (c0:ee:fb:xx:xx:xx) is visible and it even shows the name of the WLAN it is Probing for “I love Chicken” (I am connected to a different network).

Experiment 2 – Phone is searching for a WiFi network:

1. Disconnect Smartphone from WiFi network.
2. Run

tcpdump -I -e -i en1 -s 256 type mgt subtype probe-req | grep c0:ee:fb:xx:xx:xx

Result:

61637532us tsft 1.0 Mb/s 2452 MHz 11g -56dB signal -91dB noise antenna 0 BSSID:Broadcast DA:Broadcast SA:c0:ee:fb:xx:xx:xx (oui Unknown) Probe Request () [1.0 2.0 5.5 11.0 Mbit]

Even though the note says that a device running Android 6.0 (API level 23) will send a randomized MAC address, I could capture a probe request that included my phones mac address. That good news for the WiFi analytics business but a bit confusing for us. The expectation was not fulfilled. Maybe one can observe the randomize MAC behaviour only on Google Phones ? What do you think…

oneplusoneene

HowTo: Use adb over network / wifi / wlan / remote

Article moved to: http://robinhenniges.com/en/adb-over-network

ADB over network wifi wlan android

ADB over network android

Problem/Solution Collection Epson PS-100 with Android Review

Actually every owner of the Epson PS-100 has problems with the device. It seems that the software (firmware and app) on the PS-100 is only half-baked. My PS-100 is still running the version 1.01. Yes I know there is a firmware Update to version 1.10 but the app is not able to install it. (See Update form 05.02.2015 on Firmware Update) 

Update: since the latest Update (FW + APP) from 1. March it works without any problems.

Screenshot of the PULSENSE View Website

Screenshot of the PULSENSE View Website

So i will Update this Article every time I found a solution for a problem OR if anyone of you posting something useful in the comments.

Pairing with PS-100
In the US Epson FAQ for PS-100 they write:
* Check if your phone supports BLE/Bluetooth 4.0/Bluetooth Smart.
* Check if Bluetooth is enabled in the settings.
* If your PS-100 was paired with a different phone you need to unpair it by putting it into the charging cradle and tap on the PS-100 until the blue LED flashes.

Android Bluetooth Share

Android Bluetooth Share

Tip 1: I never successfully paired my Nexus 4 with my PS-100 when it was not in the charging cradle. Would be interesting to know what are your experiences. I’m running Android 5.0.1 by the way.

Tip 2: From a “How to fix Bluetooth issues on Android 5.0.1” I got this tip:
* Settings -> Apps –> Swipe to All -> “Bluetooth Share” –> Clear Cache or Even Clear Data –> Restart

Tip 3: Accept the “Trusted Device” Request.

Tip 4: Read PS-100 Amazon Reviews – Till now nothing interesting. But from my experience one can sometimes find useful informations there.

Ok now we are well prepared. So the Epson Support recommended me to reinstall the app.
So Step 1: Reinstall the Epson PULSENSE App (I got Version 1.0.5) and place the PS-100 in the charging cradle.

On the Internet I also found the old Version 1.0.4. I never tried it out. But if some of you, it would be interesting to know if it’s works with the older version. The download link is here it’s powered by Epson Germany or Europe.

Epson PULSENSE 1.0.5 Android

Epson PULSENSE 1.0.5 Android

Step 2: Starting the Epson PULSENSE View Android App and login and jump to the Paring Dialog. By the way you can create your account the Epson website.

Step 3: For me the app always found the device except when it was still paired with another smart phone. Sometimes you have to tap on the device but then it should be in the list.

Step 4: Now the hardest part – pair your device. So here I randomly tap on the PS-100, click on register and go to the Android Bluetooth Settings and try to pair there (even if they don’t recommend that). Normally I get this message:

First: Type the paring code then press Return or Enter. [PAIR]

Than: Request was rejected by PS-100.

Than: Error code: 20-0101-0018. An unexpected error occurred.

Other Error Messages
Error code: 20-0101-1002
My Interpretation: PS-100 seems to be out of reach or in standby.
Shake/Tap it to wake it up.

After a time I also restart my Nexus 4. And after a long time works. Pretty sad way to pair your Epson Bluetooth device.

Fun fact: When i paired the PS-100 the first time when it was new, it worked like a charm.

Firmware Update
Error code: 10-6110-0999
The firmware download failed. If this issue cannot be resolved, please contact the support center.
Seems to work on IPhone, so maybe ask a friend if you can use his IPhone (since 4S, …) to install the firmware update. I will do so this week and report about it here.

Also here the Epson support told me to reinstall the app. But than i have to pair the device again. NO WAY!

Update 05.02.2015:
I tried it with a IPhone 6 and after 2 times pair and unpair the update WORKED ! So far I could not notice any change!

Epson Pulsense Firmware Update with IPhone

Epson Pulsense Firmware Update with IPhone

Notification Features:
Even with Firmware version 1.10 I was not able to get any notifications. No call-, no email- no calendar-notification. Any Ideas ?!

Update 08.02.2015: After restarting my Phone I noticed that the PS-100 was missing in the list of the paired devices on my Bluetooth System Settings. From that moment on I’m getting email and call notifications ! So it’s working !!! 

PS-100 Smart Phone Link - Notifications

PS-100 Smart Phone Link – Notifications

Fitness Tracker Apps:
I successfully tested the Epson PS-100 with Endomondo and Runtastic on my Nexus 4. It was not that easy to connect the Fitness Tracker to the App. I first put the PS-100 in the charging cradle than I tapped on it. I removed it form the cradle and again tapped on it. Than it was blinking like the Knight Rider Car. After I started Endomondo and Runtastic I go to settings and was searching for  Bluetooth Smart devices. (Did you know? Bluetooth 4.0, Bluetooth Low Energy and Bluetooth Smart all means the same). The Epson PS-100 appeared in the list and i could connect to it by clicking on it. It was asking for pair (even it was already paired).

Epson PS-100 with Endomondo Runtastic

Epson PS-100 with Endomondo Runtastic

To be continued…

How to use Sessions on DropWizard

Since 0.7.0 HttpSessions are supported.

dropwizard
So what to do? Two things.
On the Application class:

@Override
public void run(DemoConfiguration config, Environment environment)
throws ClassNotFoundException {

environment.servlets().setSessionHandler(new SessionHandler());
environment.jersey().register(HttpSessionProvider.class);
}

On the Resource class:

@GET
@Path(“/sessiontest”)
@Timed
@UnitOfWork
@ExceptionMetered
public DemoView getMain(@Context UriInfo info,
@Session HttpSession session,
@PathParam(“param1”) String param1){


}

Dropwizard with Sessions

How to debug python script

I recently had problem with a python script to find out where the problem is i had to jump thru it line by line. Of course there are many ways to do this. I did it like this:

python -m pdb gsm_receive_rtl.py

l – l
n – next line

HowTo: Run wireshark on Mac Yosemite

To run wireshark on yosemite install wireshark as you world do normally. And than link the dir:
sudo ln -s /opt/X11 /usr/X11

after that it should work.

How to change screen size resolution on Android Lollipop device

If you want to test your app on devices with different screen sizes you could buy a lots of devices or you simple change the resolution of your device. In my case it’s a Nexus 4.

comparison of two screen sizes of nexus 4

Two screenshot on a Nexus 4 left 576×960 – Right 768×1280

The command for testing on different screen sizes is:

adb shell wm size 576×960

later you want to use

adb shell wm size reset

HowTo: Use SurfTab Xiron on Mac for Development + ADB

After you enabled the developer mode and USB debugging on your SurfTab Xiron you have to add the Vendor-ID to an special file.

The easy solution is:

“echo 0x1e68 >> $HOME/.android/adb_usb.ini”

This will open the adb_usb.ini file in you .android folder and adds the vendor ID of Trekstor 0x1e68.

SurfTab Xiron 7 USB Debugging

Ignore the warning and do NOT type android update adb.

After that you can call adb kill-server and adb start-server.

Have fun using USB Debugging on your TrekStor SurfTab Xiron!