Jun 10

Schreibe hier mal nach und nach ein paar hilfreiche Erfahrungen auf, wenn man – wie ich – den Schritt von IOS nach Android wagt, und von der ganzen Cloud-Struktur nicht so viel hält.

Ein wenig eigene Infrastruktur je nach Geschmack (Mailserver, CAL-/CARDDAV-Server, Proxy mit adblocker nach gusto, eigener DNS) sollte es jedoch schon sein, wenn man die wichtigsten Daten von der Cloud fernhalten möchte. Das war unter ios so, und gilt unter Android mehr denn je. Also los gehts mit den Basics:

  • Mails: Da eignet sich K9-Mail ganz gut – ist etwas anders als Mail.App zu bedienen, kann aber nach meinen Vertestungen am meisten
  • Kalendersync: CalDAV-Sync integriert den eigenen CalDAV zu 100% in die Android-Welt, und das ganz ohne gmail-Kalender. Reminder und Co. funktionieren sauber!
  • Telefonbuch: CardDAV-Syncfree synct wunderfein die Kontakte mit dem heimischen CardDAV-Server (zum einsatz kommt hier übrigens davical)
  • Notizen: Werden bei ios/osx als “spezielle Mail” in einem Subfolder mit Namen “Notes” abgelegt. Da gibts was günstiges für den Droiden: iNotes – nicht von der Beschreibung im Store verwirren lassen, der spielt echt mit jedem imap (hier ist der gute alte cyrus im Einsatz)
  • Twitter: Tja. Da bin ich noch nicht so ganz weiter. Tweetbot gilt nach wie vor als ungeschlagen. Aber Tweetveo kommt zumindest schon mal etwas dran. [Update 10.06.14] Plume isses ! Tweetmarker-Support. Suchen nach Antworten – also all das was Tweetbot auch kann – zumindest auf den ersten Blick. Danke an @bridgerdier [Update 05.12.2014] Fenix ist der Twitterclient der Wahl
  • Newsreader: Original tt-rss Client für tinytiny – geht doch 🙂

Nun bringt das alles herzlich wenig, wenn man die Äpps auf dem Device, sowie das OS nicht einigermassen abschotten kann. Und an dem Punkt kommt Cyanogenmod – das mich überhaupt bewegt hat, von IOS nach Android zu wechseln – ins Spiel. Nicht ganz trivial zu installieren (Grobe Vorgehensweise: Bootloader unlocken, CWM/TWM aufspielen, Image installieren) aber in der Version 11 (Analog KitKat) sehr empfehlenswert. So lässt sich jede Äpp beliebig kastrieren (Bis hin zu: “Darf die App vibrieren?” und so). Ein Feature das google seit 4.4.2 wieder ausgebaut hatte. Hier isses drin. Und das ganze CM11 ist echt stabil.

Wer dann den Droiden noch weiter abschotten möchte, dem sei (CM11 bzw. root vorrausgesetzt) noch Droidwall ans Herz gelegt. Ganz platt gesagt ist Droidwall ein Frontend für iptables mit dem man pro Äpp sagen kann, ob diese überhaupt ins Netz darf. Heisst: Wenn ich bspw. ne Taschenlampe installiere, dann braucht die mal definitiv keinen Netzzugriff… Logging gibts gratis obendrauf.

Ansonsten macht AdFree von BigTinCan noch den solidesten Eindruck. Warum das Teil von einer sehr dubiosen Website kommt, nicht im Playstore verfügbar ist und überhaupt, weiss wohl niemand. Habe dieses Ding ausgewählt, weil es ganz simpel die /etc/hosts um einschlägige Werber ergänzt, und echt nicht mehr anstellt. Alles andere wollte direkt Nutzungsdaten und Co. nach Hause funken. Dieses schicke kleine APK macht genau das was es soll (Werbung fernhalten – und das auch noch relativ elegant).

[Update 11.06.14] Mit IOS8 soll es ein Update geben, bei dem das iPhone die Mac-Adresse des WLAN-Interfaces randomisiert während es keinerlei Connect zu einem WLAN hat. Löbliches Feature. Geht mit dem Droiden natürlich auch. Guckst du Pry-Fi im Playstore. Das das Teil root-Rechte benötigt, liegt auf der Hand.

Am meisten weggetan hat das Messaging. Kenne ich doch recht viele ios-iMessage Menschen. Da gibt es leider nur Pest oder Cholera als Ersatz. Facebook möchte ich nun nicht gerade in Form von WhatsApp beglücken, also hab ich mich neben SMS für Google-Hangouts entschieden. Ob bei Kurznachrichten jetzt Apple oder google mitliest ist da relativ. (Nur FB sollte es halt nicht sein). Das ganze Thema Messaging ist extremst unbefriedigend, sowohl unter ios als auch unter Android. Diesen ganzen Placeboteile wie Threema und wie sie nicht alle heissen kann man auch nicht trauen (ist halt kein opensource). Daher gibts hier halt einen Kompromiss.

Wenn jemand noch weitere Tips hat, immer gern her damit.

Gesucht wird bspw. noch:

  • PodFetcher
  • FeedReader (Gut, Feeds lese ich hauptsächlich auf dem iPad – aber wer weiss: Vielleicht kommt da ja auch irgendwann mal ein Droide hin)
Tagged with:
Dez 10


Seit geraumer Zeit sind Rauchmelder in Neubauten ja Pflicht. Macht ja auch durchaus Sinn. Gerade wenn man an solche USV-Aktionen denkt 🙂 Also muss ein Rauchmelder her. Der Otto-Normal-Nerd möchte aber mindestens irgendwas haben, was sich auch in die Standardhaustechnik integrieren lässt – am besten noch ein Set von mehreren Rauchmeldern. Da gibts es zig Varianten:

  1. Die Billigrauchmelder (um die 5-10 Euro)
  2. Die Billgrauchmelder die per 433MhZ miteinander sprechen (ab 60 Euro im Set mit 4 Stück)
  3. Die teueren Systemrauchmelder die nichts anderes als (2) machen, nur das G*ra oder sonstwas draufsteht.
  4. Die sündhaft teueren Rauchmelder mit eingebauten GSM-Modul (ab ca. 150 Euro aufwärts…)

Gelinde gesagt: Alles doof – da es entweder meinen Ansprüchen nicht genügt, oder massivst zu teuer ist.

Nun denn erstmal Dinge sichten – also ab zum Baumarkt und mal einen Rauchmelder der Kategorie “1” gekauft. Schimpft sich RM120 und hat schlappe 8,- gekostet. Laut ist das Ding ja, wenn man Zigarettenrauch reinbläst, oder mal den Testknopf drückt – bringt nur nix, wenn niemand zu hause ist 🙁 Nach dem öffnen des Geräts, schaut einen ein wenig SMD-Technik (Oha) an, darunter ein IC mit der Aufschrift “CS2105go“. Wie sollte es anders sein, dazu gibts leider kein Datenblatt. Aber Moment, vielleicht ist der CS2105GO-M12 ja Pinkompatibel mit dem MC145010 – Bingo, ist er ! Der MC145010 (manchmal auch MC145012) wird in fast allen Rauchmeldern der Kategorie 1 und 2 (teilweise auch 3) verkauft.

Der aufmerksame Leser merkt was: Bei 2 ist doch eine Vernetzung möglich ! Korrekt, so ist es. Mit anderen Worten: In den Rauchmeldern der Kat.1 ist derselbe IC verbaut, wie in 2, nur das in 1 halt das 433MhZ Modul fehlt. Brauch ich (zumindest jetzt zum Testen) eh erstmal nicht –  doch dazu später. Der MC145010 verfügt über einen sog. I/O Pin, der bei 2er Rauchmeldern dann das 433MhZ-Modul per TTL-High triggert, sobald es qualmt. Beim 1er liegt PIN7 (I/O) tot herum. Perfekt. Also fix den Ground (-) und PIN7 per Kabel rausgeführt und an den Arduino geklemmt:

 

Links (Schwarz) die Masse – Also GND direkt mit dem GND des Arduino’s verbinden,

Recht (Rot), etwas fuckeliger, den PIN7 (I/O) des CS2105GO-M12 auf einen Analogen Input-PIN des Mikrocontrollers legen.

Auf dem Arduino selbst habe ich derzeit die gute Wohnzimmerinfo-Anzeige am laufen, da ist also schon ein “Ethernet-Shield” drauf. Da dort noch diverse Analoge Ports frei sind, und der Rauchmelder auch direkt deben dem Display wohnen soll, also optimal. Vom Code her gestaltet sich das ganze relativ simpel (siehe unten). Das allerfeinste ist jedoch, dass man nichtmal gegen irgendwelche Vorschriften verstösst, wenn man sich anstelle von Variante 1 für einen Rauchmelder der Variante “2” entscheidet. Denn alle Rauchmelder bleiben so wie sie sind (sprich: Die piepen trotzdem). Nur einen, in dem 433MhZ-“Netz”, muss man dann an den Arduino anklemmen. Der verbaute Standalone-RM120 piept übrigens auch noch – denn genau dafür ist PIN7 gedacht: I/O !


#include
#include

#define SmokePIN 0

int Smoke=0;
boolean mailsent=false;
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,168,0, 100 };

void setup () {
Ethernet.begin(mac,ip);
}

void loop() {
// Read Smokedetector
Smoke=analogRead(SmokePIN);

// GGf. RESET der Variable mailsent

if (Smoke > 900) {
if (mailsent==false) {
firemail();
mailsent=true;
}
}
}

void firemail() {
// IP des Mailservers
byte mserver[] = {192,168,0,101};
Client Mail(mserver,25);
if (Mail.connect()) {
Mail.println(“HELO arduino.domain.tld”); /* say hello (statement after helo is needed but irrelevant)*/
Mail.println(“MAIL From: et_brennt@domain.tld”); /* identify sender, this should be the same as the smtp server you are using */
Mail.println(“RCPT To: et_brennt@domain.tld”); /* identify recipient */
Mail.println(“DATA”);
Mail.println(“To: et_brennt@domain.tld”); /* identify recipient */
Mail.println(“Subject: Burning down the House”); /* insert subject */
Mail.println(“WARNING – Smoke detected !”); /* insert body */
Mail.println(“.”); /* end email */
Mail.println(“QUIT”); /* terminate connection */
Mail.println();
Mail.stop();
}
}

Tagged with:
preload preload preload