Tag: hardware

die kamera mit der kamera geknipst

so sieht das aus, wenn man eine ueberwachungskamera mit infrarotbeleuchtung fuer die nachtsicht bei nacht mit der (handy)kamera knipst.

bastelstunde im keller

.. aus der “stunde” wurden dann ein paar davon. naja… kabel mussten gelegt und ans patchfeld ran getackert werden.

eigentlich wollte ich mal die truppe vom hackerspace frankfurt besuchen, die heute einen 3D drucker zusammenbauen. irgendwie war ich aber den ganzen tag beschaeftigt…

und noch eine firebox

gerade gekommen:

und wieder was zu basteln… also langweilig wird mir in der naechsten zeit bestimmt nicht. aber “man braucht ja noch projekte”

mein kleiner big brother

eine tuersprechanlage an der haustuer ist ja schonmal was schoenes. gerade, wenn man die haustuer von keinem fenster aus sehen kann. manche unliebsamen kandidaten will man ja nicht mal an der sprechanlage sprechen.. z.b. die, die mit einem ueber die verehrung hoeherer wesen reden wollen etc. daher muss ne kamera an die haustuer. uebliche tuersprechanlagen mit kameras sind mir irgendwie zu teuer, wenn sie was taugen sollen und ausserdem will ich vielleicht irgendwann noch eine oder zwei kameras mehr aufm schirm haben. da ich gerne alles uebers netzwerk mache, soll das hier natuerlich auch nicht fehlen. nach ein bischen suche bin ich auf irgendein china produkt (haha.. das sind sie alle) gestossen und habs auch direkt bestellt. das erlebnis hab ich ja schon beschrieben (1,2)

da isses… von vorne:

und von hinten:

die innenansicht sieht nach einbau einer festplatte so aus:

und nachdem ich eine kamera aus der wuehlkiste angeschlossen und das geraet in betrieb genommen hatte, laechelte mich dieses bild im browser an:

erst war ich erschrocken, als ich auf der verpackung NTSC gelesen hatte, weil ich hier PAL brauche. aber das kann man einfach in den optionen umstellen. und ich musste halt jetzt erstmal lernen, dass so ein ding ueblicherweise nur den h264 codec fuer die videos beherrscht und der webzugriff dank activex geschisse nur mit dem internet explorer funktioniert. bloed bloed, aber da faellt mir bestimmt auch noch was ein. es gibt anscheinend geraete, die extra mit unterstuetzung fuer den firefox beworben werden. naja.. man lernt halt nie aus. dafuer funktioniert wenigstens der zugriff auf die cam(s) mit einer android app vom handy aus. jetzt werde ich erstmal ein bischen rumspielen und weitere erfahrungen sammeln. sicherlich gibts dann wieder irgendwas zu berichten.

neues spielzeug: irtrans ethernet

so… wieder was zum basteln: eine kleine kiste namens “IRTrans ethernet“, mit welcher man ir-codes senden und empfangen kann und das ganze uebers netzwerk gesteuert. der plan hinter der geschichte, um mal ein beispiel zu nennen: wenn ich im wohnzimmer sitze und meine wd live box anschalte, dann soll auch der sorround receiver und der fernseher mit jeweils der richtigen wahl des kanals angeschaltet werden. dazu kommt noch, dass ein fileserverchen im keller per wake on lan eingeschaltet werden soll. schliesslich muss die kisten nicht 24/7 strom fressen und wer will schon jedesmal in den keller laufen um mal im wohnzimmer einen film anschauen zu koennen? das ganze am besten noch ueber eine handy app gesteuert und ich kann die ganze sammlung fernbedienungen endlich in der schublade verschwinden lassen. hier mal ein paar bildchen:

wo drauf ich ja voll abfahre, sind kleine plastikschachteln, die auch noch einen webserver oder aehnliches drauf haben (so wie in diesem falle – siehe screenshot). alles schoen automatisieren im haushalt. das befriedigt den natuerlichen spieltrieb und macht vieles einfacher und bequemer. die moeglichkeiten sind auf jeden fall vorhanden und muessen genutzt werden. leider ist das vergnuegen meistens auch nicht ganz guenstig, aber sicher besser investiert als.. naja.. mir faellt da vieles ein. lassen wir das.
mit etwas phantasie kann man da alle erdenklichen “machanismen” programmieren. wenn man z.b. dieses teil ueber ein serverchen mit der wlan waage koppelt, dann koennte man verhindern, dass man die glotze einschaltet, wenn man zugenommen hat 😉

hack: withings wlan waage

lange habe ich ueberlegt, ob ich mir die withings wlan waage (withings wifi body scale) kaufen soll. wenn man sich die mal anschaut, ist das ein richtig nerdiges gadget. irgendwie ein bischen appleliges design und auch der preis koennte von aplle sein. die daten der wiegung werden per wlan zu einer webseite uebertragen, die man sich dann wie browser (flash) oder ios app als diagramm anschauen kann. wenn man das will, kann man die daten auch an facebook weiterleiten und auf die eigene pinnwand posten. das ist dann genau der punkt, an dem ich mich frage, ob das denn wirklich so sein muss. ich haette gerne so ein geraet.. aber ich will meine daten nicht zu irgendeinem webserver schicken. und schon garnicht zu facebook (btw. das muss man auch nicht). die firma kann in ihren datenschutzrichtlinien verprechen was sie will… ich will das trotzdem nicht. und zu facebook brauch ich ja nichts weiter zu sagen.

die firma withings hat auf der eigenen webseite ihre “visionen” veroeffentlicht:

ok, kann man sich jetzt drueber streiten, ob das visionen sind oder marketing gelaber. nehmen wir mal an, dass das visionen sind – so habe ich meine eigene vision: da ich voll auf vernetzte geraete stehe, mein spieltrieb ausgepraegt ist, ich gerne verstehe wie die dinge funktionieren und ich diese daten in meiner eigenen “cloud” (“my own little cloud”… haha) haben will, kaufe ich mir das geraet einfach mal. mal schauen, was ich mit wenig aufwand machen kann, damit die waage mit einem webserver meiner wahl spricht. quasi das ding “hacken”, damit das produkt interessant wird… btw. dazu ist ein artikel bei technology review zu empfehlen.

die firmware des geraetes modifizieren faellt mangels kenntnisse ueber hardware erstmal aus. bleibt also nur der kommunikationsweg als loesung. dns umleitungen werden von unserer regierung gerne vorgeschlagen, wenns um zensur von schmuddelkram geht oder leute davon abgehalten werden sollen, an auslaendischen gluecksspielen teilzunehmen. auch der grossteil groesserer provider nutzen das, damit die user immer auf einer gesponsorten suchseite landen anstatt im nirwana, wenn sich der user mal vertippt hat. was also fuer eine demokratische regierung und riesige firmen gut ist, muss doch bei mir zuhause auch gut sein, zumal ich niemanden ausser mir selbst damit “reguliere”.

einmal muss man die waage erstmal per usb einrichten und mit ihrer praeferierten webseite reden lassen, damit man weiss, was die beiden sich zu sagen haben. die software zum einrichten gibts sogar fuer linux (und sogar x64!) und muss logischerweise einmal ausgefuehrt werden, damit die waage weiss, mit welchem wlan (und key) sie funken soll. ein freundliches tcpdump an dem switchport, auf den der port der firewall “ge-mirrored” ist und anschliessendes anschauen mit wireshark bringt licht in die kommunikation. als erstes waere da ein bischen dhcp, damit das ueberhaupt klappt mit dem netz und dann die dns abfrage fuer den datensammelserver:

ein dig zur kontrolle bestaetigt das:

um nun diese dns abfragen auf den eigenen dns-server umzuleiten kann ich einfach eine option in den dns-forwarder einstellungen auf meinem pfsense router einstellen:

auf dem dns-server selbst muss dazu eine zone angelegt werden, die einfach jede anfrage zu dieser domain mit der ip des webservers beantwortet, auf dem man die eigenen scripte dazu ablegt.

die konfigurationsdatei des bind (named.conf) muss man um eine zone erweitern:

// withings
zone "withings.net" {
     type master;
     file "/etc/bind/db.withings.net";
};

und in der eigentlichen zone ist ein wildcard eintrag mit der ip des erwaehnten webserver (und ns.meinheimnetz.net der lokale dns server):

$TTL 3600
$ORIGIN withings.net.
@ IN SOA ns.meinheimnetz.net. hostmaster.ns.meinheimnetz.net. (
      2011041601 ; serial
      7200       ; refresh (2 hours)
      1800       ; retry (30 minutes)
      1209600    ; expire (2 weeks)
      3600       ; minimum (1 hour)
      )
      NS   ns.meinheimnetz.net.
*     IN   A	10.1.1.3

weiter gehts mit dem tcp stream aus tcpdump. die waage schickt sechs anfragen mittels POST request, der selbstverstaendlich url kodiert ist, was ich hier zur besseren lesbarkeit schon decodiert habe… und der server antwortet (natuerlich auch) sechs mal in JSON notation. (die hier geposteten werte sind natuerlich abgeaendert)

1.
die waage sagt erstmal sowas wie “hier bin ich, los gehts”

POST /cgi-bin/once HTTP/1.1
[...]
Content-Type: application/x-www-form-urlencoded

action=get

2.
der server schickt darauf hin einen statuscode und irgendeine id zurueck

HTTP/1.1 200 OK
[...]
Content-Type: text/plain

{"status":0,"body":{"once":"3a6d21ef-2baed5f8"}}

3.
die waage will sich authentifizieren mit macadresse und irgendeinem hashwert, der fuer meine seite aber nicht von interesse ist. weiterhin gibts noch den batteriestand und irgendwelche sachen, die sowas wie firmwareversion, dauer von irgendwas und ein rebootflag sein koennten. ist aber in meinem fall bis auf den batteriezustand auch uninteressant.

HTTP/1.1
[...]
Content-Type: application/x-www-form-urlencoded

action=new&auth=00:24:d3:70:70:fa&hash=db4555e74eff4aa1c43dad9889
30c00¤tfw=70&batterylvl=100&duration=30&zreboot=0

4.
der webserver antwortet mit einem array der daten der ihm bekannten user der waage

HTTP/1.1 200 OK
[...]
Content-Type: text/plain

{"status":0,"body":{"sessionid":"d2cb-f8a47ce3-caf8eb4d","sp":
{"users":[{"id":5555751,"benutzer":"nick","wt":100.7,"ht":1.88,
"agt":25.1,"sx":1,"fm":3,"cr":1302150411,"att":0}]},"ind":{"lg":
"en_EN","imt":1,"stp":1,"f":0,"g":89522},"syp":{"utc":130301412},
"ctp":{"goff":7200,"dst":1317872200,"ngoff":3600}}}

was die werte alle zu bedeuten haben muss man erraten und/oder durch aenderungen auf der originalen webseite rausfinden. auf jeden fall dabei sind: benutzername, nickname, gewicht, groesse, das alter, geschlecht, creation date usw.

5.
darauf schickt die waage irgendwas “maintenance maessiges” zurueck.

POST /cgi-bin/maint HTTP/1.1
[...]
Content-Type: application/x-www-form-urlencoded

Expect: 100-continue

HTTP/1.1 100 Continue

action=store&sessionid=d2cb-f8a47ce3-caf8eb4d&source=1&type=3
&data=[...]

.. was ich hier mal gekuerzt habe, da es codiert und sehr lang ist. anscheinend ist es auch nicht fuer die funktion von bedeutung.

6.
der webserver beantwortet das nur mit einem ok:

HTTP/1.1 200 OK
[...]
Content-Type: text/plain

{"status":0}

7.
jetzt schickt die waage die interessanten daten wie naemlich das gewicht (value:100800)

POST /cgi-bin/measure HTTP/1.1
[...]
Content-Type: application/x-www-form-urlencoded

action=store&sessionid=d2cb-f8a47ce3-caf8eb4d&macaddress=
00:24:d3:70:70:fa&userid=5555751&meastime=130301533&
devtype=1&attribstatus=0&measures={"measures":[{"value":
100800,"type":1,"unit":-3}]}

das ist also der punkt den man abfangen muss fuer seine eigene statistik

8.
der webserver quittiert das

HTTP/1.1 200 OK
[...]
Content-Type: text/plain

{"status":0}

9.
die waage schickt wieder irgendwas (debug informationen, die ich entfernt habe)

POST /cgi-bin/measure HTTP/1.1
[...]
Content-Type: application/x-www-form-urlencoded

action=store&sessionid=d2cb-f8a47ce3-caf8eb4d&source=1&type=
2&data=[WDEBUG] dac: [...]

10.
wieder ein freundliches OK zurueck

HTTP/1.1 200 OK
[...]
Content-Type: text/plain

{"status":0}

11.
die waage will sich ausloggen bzw. session loeschen

POST /cgi-bin/maint HTTP/1.1
[...]
Content-Type: application/x-www-form-urlencoded

action=delete&sessionid=d2cb-f8a47ce3-caf8eb4d

12.
antwort: alles klar!

HTTP/1.1 200 OK
[...]
Content-Type: text/plain

{"status":0}

die ganze kommunikation gilt es nun auf dem webserver “nachzubauen”. der kram muss im verzeichnis “cgi-bin” abgelegt werden. das ist halt mal “vorgegeben” durch die waage. in den allermeisten faellen muss man dazu den directory alias fuer das cgi-bin verzeichnis aus der apache config rausnehmen.
damit ich mit einer in php geschriebenen datei auskomme, benutze ich mod_rewrite vom apache mit den passenden regeln in der .htaccess datei im gleichen verzeichnis:

RewriteEngine On
RewriteRule once$ withings.php?s=once
RewriteRule session$ withings.php?s=session
RewriteRule maint$ withings.php?s=maint
RewriteRule measure$ withings.php?s=measure

die passende datei “withings.php” habe ich hier zum download bereit gestellt. man muss natuerlich die werte der benutzer an seine eigenen beurfnisse anpassen. ich hab nicht ausprobiert, was die waage macht, wenn das nicht passt. der php code ist “mal schnell” gemacht. bestimmt geht das noch schoener, tut aber im moment genau das, was er soll. erstmal schreibt das ding die werte einfach in eine textdatei. die datenbankanbindung und das erstellen einer graphischen auswertung hebe ich mir fuer spaeter auf 😉

das wars erstmal… ein nettes spielzeug, dass ich einfach fuer die eigenen beduerfnisse angepasst habe. so macht die waage spass… ich weiss wo meine daten sind und wer sie sehen kann. auch wenn ich das projektchen fertig mache, wird es bestimmt nicht so huebsch aussehen wie das original und eine iphone app werde ich auch nicht haben. wozu auch?

“my own little data center” auf 2 hoeheneinheiten

diese server:

– dns- / mailserver (debian)
– webserver (debian)
– mailgateway (proxmox)
– isa server (w2k3 / isa 2006)
– firewall extern (pfsense)
– domaincontroler, dhcp, dns (w2k3)
– exchange frontend server (w2k3 / ex2k3)
– exchange server (w2k3 / ex2k3)
– blackberry enterprise server (w2k3 / besx5)
– terminalserver (w2k3)
– firewall intern (monowall)
– desktop (ubuntu)

…stecken hier drin:

ja, bei den slotblechen musste ich etwas improvisieren, da ich die originalen blechwinkel nicht mehr gefunden habe.

wenn man die einzeln auf dedizierter hardware betreiben wuerde, dann waere man bestimmt premium kunde bei den stadtwerken. muss ja nicht sein… und da diese server keine besonderen ansprueche an die performance haben, hab ich die alle auf ein vmware traegersystem mit debian squeeze 64bit und vmware server 2.0.2 gepackt.

das ist die verwendete hardware:
mainboard: ASUS P8H61-I Rev.3.0
prozessor: Core i3-2100
ram: 8GB DDR3 1333
2te nic: EN-9260TX-E
hdd: 2 stueck WD3000HLFS 300 GB (10k) im raid1

wer jetzt denkt: “das ist doch viel zu schwach fuer so viele vms”… neenee.. das “reicht” fuer die angedachten zwecke vollkommen (gruss an volker). die vms laufen fluessig und stabil.

da es ein paar abweichungen zu dem howto fuer debian lenny gibt, hab ich fuer debian squeeze ein neues geschrieben.

der kleine super gau im keller…

eigentlich darf man ja sowas garnicht erzaehlen. ich machs aber trotzdem, weil es fast schon wieder lustig ist.

vorhin war ich im keller und hab mein neues spielzeug eingebaut. auf meinem kleinen wandscharnk lag ein uralter, winziger 10mbit hub mit blechgehaeuse. beim rumzubbeln an den kabeln ist dieser runtergefallen. dummerweise lag genau darunter eine *huestel*… ich nenns mal provisorisch angeschlossene festplatte. der alte (und schware) hub knallte genau mit der ecke auf die platte, welche natuerlich im betrieb war. sofort hat diese aeusserst merkwuerdige knattergeraeusche von sich gegeben und den dienst quittiert. auf der festplatte waren einige vmware’s, von denen ich nur teilweise ein backup hatte. von den wichtigsten (naemlich die, auf der server mit diesem blog laeuft) hatte ich ein backup. alle weiteren wie exchange, bes, dc sind erstmal verloren. dumm gelaufen bis sehr aergerlich wuerde ich sagen… aber das war ja sowieso “nur” die spielwiese.

aber hey… ich bin scheatzungsweise der erste, der eine festplatte mit einem 10 mbit hub kaputt gemacht hat.

um die platte ists es echt schade. das war eine raptor mit 10k umdrehungen und 300gb. ich hatte sie an verschiedene rechner angeschlossen in der hoffnung, dass noch was zu retten ist. fehlanzeige. einer bootete garnicht mehr, der naechste spuckt nur fehlermeldungen (siehe foto), der dritte sagt: das ist keine festplatte.

der (btw. managebare) switch ist zwar mittlerweile eingebaut und in betrieb, aber “erforschen” konnte ich ihn noch nicht. wenigstens macht er schonmal optisch was her 😉

neues spielzeug – endlich gigabit

heute steige ich auch in die liga der gigabit netzwerker auf…. endlich.

auf empfehlung von christian wurde es ein “HP ProCurve 1810G-24″. nun erstmal im keller verschwinden, montieren und mal schauen, was das ding alles kann…

neues spielzeug: windows home server

so… ich hab mir wiedermal ein neues spielzeug geleistet. ein acer aspire easystore H341 mit windows home server als betriebssystem. geliefert wurde das geraetchen mit 2 x 2 TB und hat noch 2 festplattenschaechte frei. damit die nicht so lange leer sind, hab ich natuerlich gleich noch 2 x 2 TB platten gekauft ;-). die einrichtung geht anscheinend nur mit der clientsoftware, was ich garnicht so toll fand, da ich keinen desktoprechner mit windows rumstehen hatte. aber zum glueck hatte ich auf meinem ubuntu noch eine vmware mit einem alten XP.

nach dem ersten einschalten und verbinden mit dem client war das geraet erstmal mit sich selbst beschaeftigt. da die clientsoftware nicht sonderlich viele details preisgibt, hab ich mich zum gucken per rdp mit der kiste verbunden (einen graka anschluss gibts ja nicht). das teil war erstmal ne zeit lang mit sich selbst beschaeftigt und hat ein update nach dem anderen installiert. und immer nach dem reboot gings fleissig weiter. gefuehlt waren das 700 patches, die von microsoft runtergeleiert wurden.

da mir in der zeit langweilig war und ich gleich mal austesten muss, ob das alles so geht, wie man es sich wuenscht, habe ich einfach die beiden zusaetzlichen platten im laufenden betrieb reingesteckt. und siehe da… sie wurden gleich erkannt! einmal mit der rechten maustaste draufklicken, hinzufuegen auswaehlen und das wars. die kapazitaet sollte mir erstmal eine zeit lang reichen…

nun galt es, die kiste mit daten zu fuellen. ueberall hat sich ein wenig angesammelt.. auf externen platten, auf dem laptop, auf dem desktop-pc, auf einem billig-nas, auf dem alten fileserverchen, auf dvd…usw. logischewrweise habe ich auch ein paar medien, die ich unter linux mit ext3 o.ä. formatiert habe. dieses filesystem verhaelt sich etwas anders als unter windows. z.b. hat linux keinen schmerz damit, wenn die datei BEANS~1.txt in gekuerzter DOS-konvention vorhanden ist und auch noch die mit dem “richtigen” namen. ein nettes rsync murrt da auch nicht rum und wills auf den whs kopieren. der hat dann aber gleich dateninkosistenzen angezeigt und mit seiner roten “i” lampe geblinkt, weil er die datei nicht schreiben konnte. komisches zeugs….

die niedliche schwarze kiste hat halt auch nur einen niedlichen intel atom prozesser. je nachdem, was man so alles an features aktiviert hat, kann dem schonmal die puste ausgehen. der indexierungsdienst hat nach drei tagen betrieb noch nicht alle dateien durchwuehlt. also erstmal abgeschaltet. dann ist mir eine firefly.exe aufgefallen, die den armen kleinen prozessor penetriert hat. nach ein bischen googlen wusste ich, dass das was mit dem itunes server zu tun hat. also erstmal abgeschaltet. mitgeliefert und installiert wurde auch “mcaffee total protection”… das fliegt als naechstes runter.
ansonsten moechte der whs gerne meinen dsl router per upnp umkonfigurieren und 3 ports fuer den remotezugriff von aussen freischalten. das darf er natuerlich nicht.. wo kaemen wir denn da hin?

das geraet an sich ist angenehm leise… wenns denn die platten auch sind. die beiden samsungs, die ich mir dazu gekauft habe kann man bei zugriffen deutlich hoeren. praktisch ist, dass man noch externe platten zum speicher hinzufuegen kann (esata und usb), was aber erst in ferner zukunft noetig sein duerfte. ein echtes raid gibts fuer den preis nicht, dafuer aber eine “datenduplizierung”, die man auf freigabeebene an- und ausschalten kann und im hintergrund werkelt. fuer meine beduerfnisse genau richtig, da ich nicht alles spiegeln wollte.

mal sehen, wie sich der server im alltagsbetrieb gibt…