Transparenzbericht 2019

Meine Einnahmen über das Amazon-Affiliate Programm* haben sich auf diesem Blog im Jahr 2019 halbiert (vgl. Transparenzbericht 2018). Das kommt davon, wenn man sich mehr oder weniger gar nicht um neue Blog-Posts kümmert ;-)

Ausgaben

  • 32,28 Euro – Webspace und Domains (bei 1blu)
  • sehr wenig investierte Arbeitszeit

Einnahmen

In der Summe ergibt sich ein Gewinn vor Steuern in Höhe von:

  • 76,67 Euro

--
Beitrag interessant? Ich freue mich über einen Kauf bei Amazon*.

eBay ist gestorben – zumindest für die Kombi aus Privatverkauf und geringpreisigen Kleinteilen

Eigentlich ist für mich die Rechtslage relativ klar: wenn man als Privatverkäufer (auf verlangen des Käufers) einen Artikel unversichert versendet, geht nach Abgabe der Sendung beim Dienstleister das Verlustrisiko auf den Käufer über.

Leider hat man bei unversichertem Versand, etwa per Brief, natürlich weder einen Einlieferungsbeleg, noch eine Sendungsnummer. Selbst wenn man die Internetmarke über eBay kauft und einen Rechnung über die Marke von der Post vorweisen kann, interessiert das eBay nicht. Kein Sendungsnummer = nicht abgegeben.

Wenn der Artikel laut Käufer dann nicht angekommen ist, erstattet eBay nicht nur den über PayPal bezahlen Verkaufspreis und Versandkosten vollständig zurück, sondern behält auch die eBay-Gebühren ein. Man bleibt also auf Versandkosten und eBay-Gebühr sitzen.

In der Folge sollte man es also tunlichst unterlassen, dem Verkäufer eine Auswahl zwischen unversichertem Briefverstand und versichertem Paketversand zu ermöglichen. Der damit immer notwendige teurere Paketversand (oder Versand per Einschreiben) macht es also eigentlich unmöglich, geringpreisige Kleinteile über eBay zu verkaufen, wenn man nicht immer Gefahr laufen möchte, auf allen Kosten und dem Verlust des Artikels sitzen zu bleiben.

--
Beitrag interessant? Ich freue mich über einen Kauf bei Amazon*.

GUI Ikea Tradfri@GNU/Linux

Dank dem Constrained Application Protocol (CoAP) zur Maschine-zu-Maschine-Kommunikation können etwa die Tradfri-Leuchten am Ikea Gateway auch unter GNU/Linux gesteuert werden.

Unter Fedora müssen wir dafür nur libcoap installieren:

sudo dnf install libtool autoconf automake make gcc gcc-c++ kernel-devel
git clone --recursive https://github.com/obgm/libcoap.git
cd libcoap
git checkout dtls
git submodule update --init --recursive
./autogen.sh
./configure --disable-documentation --disable-shared
make
sudo make install

Jetzt noch die IP-Adresse des Ikea Gateways (im Folgenden: GATEIP) und den auf dessen Rückseite stehenden Sicherheitsschlüssel (im Folgenden: SCHLÜSSEL) zusammensuchen.

Dann ins Verzeichnis „/usr/local/bin“ wechseln und einen neuen Benutzer (im Folgenden: BENUTZERNAME) am Gateway anmelden:

./coap-client -m post -u "Client_identity" -k "SCHLÜSSEL" -e '{"9090":"BENUTZERNAME"}' "coaps://GATEIP:5684/15011/9063"

Der Gateway liefert jetzt das Passwort (im Folgenden: PASSWORT) für den BENUTZERNAME in folgender Form zurück (die Gültigkeit des Passworts wird mit jedem gesendeten Befehl wieder auf 6 Wochen gesetzt):

{
  "9091": "PASSWORT",
  "9029": "FIRMWARE_VERSION_GATEWAY"
}

Ab jetzt können mit BENUTZERNAME und PASSWORT CoAP-Befehle zur Lampensteuerung an den Gateway geschickt werden. So gibt etwa der folgende Befehl alle am Gateway angemeldeten Geräte (Lampen, Dimmer etc.) zurück:

./coap-client -m get -u "BENUTZERNAME" -k "PASSWORT" "coaps://GATEIP:5684/15001"

Die Antwort sieht dann wie folgt aus:

v:1 t:CON c:GET i:aa8a {} [ ]
decrypt_verify(): found 24 bytes cleartext
decrypt_verify(): found 54 bytes cleartext
[65553,65555,65543,65552,65538,65554,65551]

In den eckigen Klammern sind die IDs (im Folgenden DEVICEID) angemeldeten Geräte. Über den folgenden Befehl können die Details zu einem Gerät abgefragt werden:

./coap-client -m get -u "BENUTZERNAME" -k "PASSWORT" "coaps://GATEIP:5684/15001/DEVICEID"

Die Antwort gibt den Typ des Geräts (im Folgenden TYP) (etwa TRADFRI bulb E27 W opal 1000lm) und den über die App zugewiesenen Namen (im Folgenden NAME) zurück, so dass die Zuordnung der IDs möglich ist. Die Antwort sieht etwa so aus:

v:1 t:CON c:GET i:cf08 {} [ ]
decrypt_verify(): found 24 bytes cleartext
decrypt_verify(): found 238 bytes cleartext
{"9001":"NAME","9002":1567074262,"9020":1572159049,"9054":0,"9003":DEVICEID,"5750":2,"9019":1,"3":{"0":"IKEA of Sweden","1":"TYP","2":"","3":"1.2.214","6":1},"3311":[{"5850":1,"5851":177,"9003":0}]}

Diese Lampe könnte jetzt mit dem folgenden Befehl auf 100% Helligkeit (Wert im Befehl zwischen 0 und 254) gestellt werden:

./coap-client -m put -u "BENUTZERNAME" -k "PASSWORT" -e '{ "3311": [{ "5851": 254 }] }' "coaps://GATEIP:5684/15001/DEVICEID"

Damit nicht immer die kryptische Syntax über die bash bedient werden muss, kann ein kleines GUI-Script (smarthome.sh) helfen (wobei zusätzlich zu GATEIP, PASSWORT und BENUTZERNAME noch DEVICEID1/2/3/4 durch die korrekten Device-IDs und RAUM1/2/3/4 durch beliebige Raumnamen ersetzt werden müssen):

#!/bin/sh
# Zugangsdaten des Gateways
IP="coaps://GATEIP:5684/15001/"
KEY="PASSWORT"
USER="BENUTZERNAME"

# Auswahl der zu steuernden Lampe
DEVICE=`zenity --title "Lampenauswahl" --text="Bitte Lampe wählen:" --width 400 --height 400 --list --column Auswahl --column Lampen-ID --column Standort FALSE DEVICEID1 RAUM1 FALSE DEVICEID2 RAUM2 FALSE DEVICEID3 RAUM3 TRUE DEVICEID4 RAUM4 --radiolist`

# Überprüfen, ob eine Lampe ausgewählt und bestätigt oder die Auswahl abgebrochen wurde
if [ "$DEVICE" != "" ]
then

	# Auswahl der zu setzenden Helligkeit
	HELLIGKEIT=`zenity --scale --title="Helligkeitseinstellung" --text="Helligkeit der Lampe." --value=100`

	# Überprüfen, ob eine Helligkeit ausgewählt und bestätigt oder die Auswahl abgebrochen wurde
	if [ "$HELLIGKEIT" != "" ]
	then
		HELLIGKEIT=$(($HELLIGKEIT * 254 / 100))

		/usr/local/bin/coap-client -m put -u $USER -k $KEY -e '{ "3311": [{ "5851": '$HELLIGKEIT' }] }'  $IP$DEVICE
	fi

fi

Nicht vergessen, das Script ausführbar zu machen:

chmod +x smarthome.sh

Jetzt lässt es sich starten:

./smarthome.sh

Weiterführende hilfreiche Links:

--
Beitrag interessant? Ich freue mich über einen Kauf bei Amazon*.