Mittwoch, 19. August 2015

Zeitschalter mit Homematic Aktoren

Hier wird gezeigt wie man die Reaktion von internen Tasten an Homematic Aktoren am Beispiel einer Zeitschaltung beeinflussen kann. Eine normale Zeitschaltung innerhalb von FHEM sollte einfacher mit dem on-for-timer erfolgen!

Zustände

Die Homematic Aktoren (Schalter) schalten so wie es der verknüpfte (peering) Sender vorgibt. Sie haben dazu Registersätze die für jede Verknüpfung (peer) neu angelegt und gespeichert werden. Man kann also mit einem Taster ein und aus schalten. Mit einem anderen Taster eine Zeitschaltung für 10 sec starten. Dabei wird nicht der Taster oder der Schalter auf "Zeitschalter" programmiert, sondern die Verknüpfung Taster mit Schalter wird im Schalter entsprechend gespeichert. Der Schalter macht dabei dann das, was der letzte Tastendruck als Aktion hinterlegt hat. Kleines Beispiel:
 T1 schaltet S1 für 10 sec an  
 T3 schaltet S1 an  
 T4 schaltet S1 aus.  

Diese Tabelle ist im Schalter S1 gespeichert.

Schaltet man mit T3 den S1 an und drückt dann nach beliebiger Zeit kurz T1 geht S1 nach weiteren 10 sec aus.
Schaltet man mit T1 kurz den S1 für 10 sec an aber innerhalb dieser Zeit mit T3 nochmal an, dann bleibt S1 nach Ablauf der 10 sec an.

Tasten sichtbar machen

Jeder Schalter hat interne oder eigene Tasten. Die Steckdose z.B. den Knopf der als Toggle funktioniert. Der Lichtschalter für Markensystem hat einen EIN und einen AUS Knopf.

Die internen Tasten kann man in FHEM sichtbar machen:
 set <device> regSet intKeyVisib visib  
 attr <device> expert 1  

normalerweise sieht man nach kurzer Wartezeit und Aktualiserung der Oberfläche jetzt die internen Register. Eventuell muss man noch die Register abholen:
 set <device> getConfig  

Zeitschalter direkt

Um z.b. eine Steckdose für 10 sec bei Knopfdruck lokal einzuschalten kann man folgendes programmieren:
 set <device> regSet shOnTime 10 self01  

shOnTime ist dabei das zuständige Register für kurzen (sh=short) Tastendruck. Es gibt auch Register für langen Tastendruck lg=long. Eine kurze Beschreibung der Register erhält man durch:
 get <device> regList  

In den Readings werden die Register mit dem jeweiligen verknüpften Taster angezeigt, in unserem Fall also:
 R-self01-shOnTime  

Der Defaultwert für shOnTime ist übrigens 111600 und bedeutet unendlich. D.h. die maximale einstellbare Zeit ist 111599 sec (knapp 31 Stunden). So kann man die Zeit löschen:
 set <device> regSet shOnTime 111600 self01  
oder
 set <device> regSet shOnTime unused self01  

Tastendruck simulieren
Das geht mit
 set <device> press short self01  

Kurz oder lang

Die internen Taster sind oft als Toggle und config Taster ausgelegt. Ein langer Tastendruck (4 sec) versetzt den Schalter in den config/Anlern Modus. Damit scheint es so zu sein, das bei diesen Schaltern kein long press von außen vorgesehen ist, obwohl die Register existieren und man lang press auch simulieren kann.

Praktisches Beispiel: Pool für eine Stunde schalten

Ich habe einen HM-LC-SW4-DR und der channel_01 schaltet die Poolzirkulationspumpe. Dies passiert Zeit gesteuert zweimal am Tag. Manchmal möchte ich im Keller diese Pumpe einfach für eine Stunde aktivieren, der Aktor ist bequem erreichbar an der Wand.
Die internen Tasten vom Hauptdevice (der Aktor hat vier Channel die in FHEM einzeln dargestellt werden) sichtbar machen:
 set LichtKeSW1 regSet intKeyVisib visib  
 attr LichtKeSW1 expert 1  

Jetzt sieht man im Channel 01 - LichtKeSW1_Sw01 den internen peer self01. (Channel 02 ist self02 usw.)
Also jetzt einfach die Zeit eintragen:
 set LichtKeSW1 regSet shOnTime 3600 self01  

Die Toggle Funktion der Taste bleibt erhalten. Ein zweiter Tastendruck schaltet die Pumpe auch sofort wieder aus.

Mittwoch, 5. August 2015

Installation der Openmediavault

Möglichkeiten zur Installation für den H340  

Ich habe noch einen alten Acer H340 den ich im letzten Artikel beschrieben habe. Den will ich jetzt ganz konkret mit openmediavault installieren, dazu hatte ich mehrere Ideen und Möglichkeiten. Was ich konkret probiert habe will ich hier zusammenfassen. Der Artikel soll keine komplette Installationsanleitung sein, sondern die Sammlung dessen was ich konkret getan habe. Zuerst hatte ich zwei Ideen wie ich den H340 installiere, obwohl er so etwas nicht ganz einfach unterstützt.

H340 User mode


  • JP3 auf dem Motherborad geschlossen
  • USB Tastatur
  • VGA am debug connector oder VGA Karte im PCI Stecksteckplatz
  • ISO Image auf USB Stick, wird im Front USB gesteckt
  • SDD oder HDD steckt im SATA Slot 0
  • Bootvorgang per Reset: power on, warten bis i blau blinkt, jetzt sofort Reset Knopf an der Rückseite drücken und nachdem i rot blinkt bootet die Installation vom USB Stick
  • Bootvorgang per Bootmenü: Im BIOS müssen einmal die Setup defaults geladen werden. Beim Bootvorgang F12 drücken und den USB Stick auswählen. Auf den Namen achten, nicht den SMI USB Stick auswählen! Es kann sein, dass man erst im Setup den USB Stick zum Start zulassen muss!

Virtual Box


  • HDD / SDD mit USB Adapter am Host anschließen
  • Aktuell war es keine gute Idee USB 3 Anschlüsse zu verwenden.
  • in der Datenträgerverwaltung die Festplattennummer (X) abfragen
  • Eingabeaufforderung als Administrator starten
  • Mit diesem Befehl die physikalische Platte für Virtual Box verfügbar machen:
     "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" internalcommands createrawvmdk -filename "<Pfad\Dateiname>.vmdk" -rawdisk "\\.\PhysicalDrive<X>"   
  • Virtual Box als Administrator starten
  • debian System mit Wizard erzeugen, IDE Controller löschen, SATA Controller verwenden
  • vorhanden Platte (vmdk von oben) verwenden 
  • ISO Image als CD Laufwerk einbinden
  • Virtuelle Maschine starten und mit F12 Start von CD erzwingen

Allgemein

Ich habe die Sprache deutsch ausgewählt und durch leeres root Kennwort den Benutzer "root" deaktiviert. Der erste Benutzer erhält damit die Möglichkeit mit "sudo" - gefällt mir besser.
Ist nur ein Laufwerk außer dem Installationslaufwerk vorhanden wird diese automatisch und Nachfrage neu und komplett partitioniert!
Sind mehrere Laufwerke vorhanden fragt die Installation nach.
Meine Festplatte wird so angezeigt:

SCSI1 (0,0,0) (sda) - 126.0 GB ATA SanDisk SDSSDP12

Nach der Konfiguration der System Festplatte vergeht einiges an Zeit zur Installation.
Am Ende wird nach dem Neustart gefragt. Der USB Stick kann stecken bleiben.
Die Installation und Konfiguration von openmediavault ganz allgemein ist hier ganz gut beschrieben

Abschluss der Basis Installation

Direkt am H340
Entfernen von Monitor und Tastatur
Entfernen USB Stick

An der Virtual Box
An der Console anmelden und eine Datei löschen:
sudo rm /etc/udev/rules.d/70-persistent-net.rules
sudo poweroff
HDD vom Host auswerfen und in den H340 einbauen.
H340 neu starten, durch einen kurzen Piep wird erfolgreiche Start bestätigt

Anmelden an der openmediavault

Mit http://openmediavault kann man auf die Weboberfläche zugreifen wenn man den vorgeschlagenen Namen verwendet hat und im internen Netzwerk Namensauflösung funktioniert.
Der Benutzer für die Admin Oberfläche ist admin und das Passwort openmediavault.

Konfiguration der openmediavault

Folgendes habe ich nach der Installation durchgeführt

  • Allgemeine  Einstellungen / Sitzungslimit auf 0
  • Datum und Uhrzeit / ntp Server verwenden
  • Netzwerk / Schnittstellen / Bearbeiten / WOL einstellen
  • Benachrichtigungen / Email konfigurieren
  • Energieverwaltung / Einschaltknopf konfigurieren
  • Aktualisierungsverwaltung / Aktualisierung installieren (Nach der Installation von OMV 3 erhielt ich zunächst einen Fehlermeldung und die Aktualisierung lief nicht wie gewohnt. Es gab zwei Pakete mit 0 Byte Größe angezeigt. Ich habe diese Paket nicht mit ausgewählt und nur den Rest installiert. Danach war dieser Fehler für immer verschwunden)
  • Benutzer / Meinen Benutzer in die Gruppe SSH stecken
  • Dienste / SSH aktivieren

Einrichtung und Feinarbeiten

Festplatten konfigurieren

  • Reale Festplatten / bearbeiten / physikalische Platteneinstellungen 
  • S.M.A.R.T / Einstellungen / Laufwerke / Planmäßige Tests
  • RAID Verwaltung/ (nach einer Neuinstallation werden vorhandene Raids automatisch erkannt)
  • Dateisysteme / Erstellen / Einbinden

Freigabe einrichten

  • SMB/CIFS / aktivieren / Einstellungen
  • SMB/CIFS / Freigaben  / Hinzufügen / + /
  • Name eintippen / Datenträger auswählen / Öffentlich + Nur Gäste auswählen / Speichern (Freigegebenen Ordner) / Speichern (Freigabe) 
  • Anwenden
  • Die somit erzeugte Freigabe ist ohne Autorisierung nutzbar!

Im Terminal

Benutzer zum sudoer machen (nur Beispiel, die Datei kann beliebig heißen)

  • nano /etc/sudoers.d/22_<Benutzer>-nopasswd
  • <Benutzer> ALL=(ALL) NOPASSWD: ALL

Nacharbeit für die spezielle Hardware H340

  • Ansteuerung der i LED blau/rot
  • Ansteuerung der einzelnen HDD LED blau/rot
  • LED und Taster über Front USB
Edit August 2022: Einige Quellen im Internet sind weg, die aktuellen Systeme (OMV6) laufen mit systemd - deswegen habe ich diese Beschreibung aktualisiert.

Es gibt diverse Varianten von Treibern für diese LEDs. Einfach nach mediasmartserverd googeln und man wird fündig z.B. hier. Es ist relativ einfach diesen Treiber selbst kompilieren:

per ssh anmelden und Software installieren, das zweite Paket ist ein virtuelles und muss je nach System speziell ausgewählt werden. Danach wird die Quelle von Github herunter geladen, entpackt und compiliert.

sudo apt update
sudo apt install g++
sudo apt install libstdc++-dev
sudo apt install libudev-dev make
sudo apt install unzip
wget https://github.com/merelin/mediasmartserverd/archive/refs/heads/master.zip
unzip mediasmartserverd-master.zip
cd mediasmartserverd-master/
make
cd ..

Probestart (ctrl+c zum Beenden)

sudo ./mediasmartserverd

Funktioniert alles, kann man einen systemd Service einrichten. Die Unit Datei habe ich von hier.

sudo systemctl edit --full --force mediasmartserverd.service
sudo cp mediasmartserverd-master/mediasmartserverd /usr/local/sbin/
sudo systemctl enable mediasmartserverd.service
sudo systemctl start mediasmartserverd

Der Aufruf kann noch modifiziert werden, z.B. um die Helligkeit der LED einzustellen.

Erweiterungen installieren

Für openmediavault stehen zahlreiche Erweiterungen zur Verfügung. Und da in den grundlegenden Erweiterungen nicht allzu viel vorhanden ist gibt es noch die Erweiterung der Erweiterung. Hier vor allem "Autoshutdown"
Die Erweiterungen von omv-extras.org werden wie folgt hinzugefügt
Für OMV 2 diese Datei herunterladen.
Für OMV 3 diese Datei herunterladen.
Erweiterungen / hochladen / lokale Datei auswählen
Erweiterungen ganz unten / omvextrasorg x.xx / installieren

Es dauert irgendwie eine Weile und man muss die Ansicht aktualisieren aber dann sind die zusätzlichen Erweiterungen zu sehen und  unter System gibt es einen zusätzlichen Administrationspunkt für weitere Erweiterungen.

Nützliche Befehle

Ausschalten per Kommandozeile
sudo poweroff

Links und Hinweise

Aktuelle Anleitung Installation OMV
Automatische Installation debian


Dienstag, 4. August 2015

NAS - oder alte Technik recyclen

Windows Homeserver und der Fortschritt

2009 habe ich mir mal einen Acer H340 Homeserver zugelegt. Es war ursprünglich mal ne gute Idee, der Windows Home Server (Basis Windows Server 2003) war eigentlich wirklich für den Heimanwender als zentrale Sicherung gut geeignet. Vieles automatisch und simpel gelöst. Aber wie so immer: neue Windowsversion und man muss ringsherum auch alles neu machen. Microsoft macht manchmal unklare "strategische Versuche" - die dann schnell wieder irgendwie verrecken. Home Server 2011 war nochmal ein liebloser Versuch der Produktpflege auf Basis Server 2008 dann kam das Aus.
Ich hatte noch den Versuch unternommen Windows Homeserver 2011 auf dem H340 zu betreiben, aber das war ziemlich elend.
Die Hardware sieht nach 6 Jahren eigentlich noch schick aus und läuft nach wie vor. Der kleine Würfel fasst 4 SATA Platten, eigentlich zu Schade für den Schrott. Also ein Versuch für neue Verwendung.

Es gab vor ca. 4 Jahren schon viele Projekte, den H340 mit einem Linux NAS System auszurüsten. Ich habe die alten Blogs und How To's hervorgekramt und versucht es nachzuvollziehen. Es gibt im Wesentlichen die Möglichkeiten:

  • fertige NAS Systeme mit Web basierter Administration (FreeNAS, openmediavault) oder 
  • einfach ein Linux System(Ubuntu, debian) nach persönlichen Geschmack und alles selber machen.

Tja: was will ich eigentlich? Einfach nur etwas Storage im Netz? Oder ein Linux System was "alles" kann?

Noch VGA im Haus?

Die erste Hürde ist noch eine Andere. MS hatte mit Windows Home Server die bescheuerte Idee, die Hardware müsse "headless" funktionieren, also keine Grafikkarte, kein Tastatur, keine Maus und kein CD Rom Laufwerk. Über einen Flash speicher konnte eine Art Bootloader gestartet werden, der das System über das Netzwerk von einem Windows PC installiert. Wie installiert man damit jetzt ein Linux System? Da das Ganze unpraktisch von Anfang war, haben die Hersteller der Hardware schon eine VGA Karte und alle nötigen Anschlüsse spendiert, aber an einem "debug connector" intern enden lassen. Dafür hatte ich mir schon vor Jahren ein Adapter Kabel für VGA geholt und mittels Jumper die Tastatur Erkennung aktiviert. Also war ich vorbereitet? Wie man es nimmt, ich hatte mittlerweile einen neuen Monitor und einen neuen Fernseher im Haus und damit waren alle analogen VGA Anschlüsse weggefallen! Also musste erstmal ein VGA HDMI Konverter her, ein bloßer Kabeladapter (HDMI - DVI - VGA) reicht nicht, da die Monitore kein analoges VGA Signal verarbeiten.

Entscheidung für ein System

Ubuntu Server 14.04 LTS als Iso Datei herunterladen, mit Universal-USB-Installer die ISO Datei auf einen bootfähigen USB Stick geschrieben und los geht es. Die Installation läuft ohne irgendwelche Ecken und Kanten. Das wäre also machbar.

Da ich viel mit dem Raspberry Pi und debian mache, wäre es ja schick vielleicht auch hier debian zu nutzen, damit kenne ich mich mittlerweile etwas aus. Denn Linux ist ja nicht gleich Linux, genau wie Windows nicht gleich Windows ist! Mit dem Unterschied, dass die "offene Gemeinde" es mittlerweile geschafft hat die Varianten ins uferlose zu treiben!
Debian netinst.iso lautet die Empfehlung auf der Homepage für effizientes download und es handelt sich um ein "isohybrid" Image. Das bedeutet, man braucht kein Image extra für den USB Stick, auch kein besonderes Tool, sondern schreibt diese Iso Datei einfach als Image auf den USB Stick. Die Empfehlung für Windows ist der win32diskimager.
Auch hier läuft die Installation tadellos und intuitiv. Nach dem Start und der lokalen Anmeldung merke ich aber: ziemlich zäh alles. Die Grafik scheint mir das System etwas zu überfordern. Ja wollte ich das überhaupt?

Von dem Projekt FreeNAS hatte ich schon vor Jahren gelesen und gehört, also einfach mal schauen und probieren. Das sah jetzt plötzlich etwas anders aus, relativ hohe Hardware Anforderung. Egal probieren. FreeNAS bietet auch ein Iso welches genau wie bei Debian mit win32diskimager auf den USB Stick geschrieben wird. FreeNAS basiert übrigens auf FreeBSD.
USB Stick booten (F12 am H340 drücken und Bootdevice auswählen) und siehe da: Bildschirm bleibt dunkel...

Das FreeNAS Projekt hat sich mal aufgespalten und es existiert ein Ableger NAS4Free, also probiere ich den noch. NAS4Free liefert neben Iso auch noch mehrere Image Dateien, welche nimmt man jetzt? LiveUSB klingt nach der Probepackung, download und dann wieder mit windiskmager auf den Stick geschrieben --> Bildschirm bleibt dunkel. Das Image war kein .img sondern ein .img.gz - muss man das erst entpacken? Also mit 7zip ausgepackt und das img auf den Stick geschrieben, booten --> Bildschirm bleibt dunkel. Aber irgendwas passiert im Dunkeln, da läuft ein System!? Es piept im H340 und wenn man den Ausschalter drückt fährt das System offenbar herunter! Ist was übers Netzwerk erreichbar? Fehlanzeige!

Ok irgendetwas ist anders, Treiber Problem? Ja in dem Artikel von Jerret war beschrieben, dass die Netzwerkkarte in FreeBSD nicht direkt unterstützt wird. Ok also versuche ich das Ganze erstmal unter VirtualBox, aha so sieht dieses LiveSystem aus! Feste Netzwerkadresse, nach der Umstellung auf DHCP erreiche ich das Live System über den Browser. Na gut, was ist mit meiner Hardware? ist FreeBSD das Problem? Also kurz mal FreeBSD "ohne alles". Hier gibt es ein img.xz. Entpacken, schreiben und starten --> Bildschirm bleibt dunkel.

Gut dann openmediavault, das basiert auf debian, deswegen gibt es auch wieder ein Iso welches man einfach auf den Stick schreiben kann. Installation läuft problemlos, nach kurzer Zeit kann ich die NAS per Browser erreichen und etwas rumspielen. Ist etwas tricky sich in den Menus zurecht zu finden und eine vorhanden Platte als Netzfreigabe einzurichten, aber es gelingt. Ok das sieht ganz gut aus, dass könnte es ja werden. Vor allem, Shutdown, LED aus und Wake On Lan funktioniert einwandfrei! Das funktionierte unter Windows Home Server auch, aber unter Home Server 2011 konnte ich nicht mehr herunterfahren machen sondern nur noch "Energie sparen" also Hibernate auf Platte. Die blaue Power LED blieb dabei am Blinken.

VGA oder VGA?

So und nun? Einfach so lassen? Mich interessiert schon, warum FreeBSD einen schwarzen Bildschirm liefert? Ist die VGA Karte vom debug System keine vollwertige? Was könnte da sein? Nutzt FreeBSD eine andere Ausgabe - etwa serielle Schnittstelle? Es war in den damaligen Artikel immer die Rede davon, man solle eine VGA Karte in den H340 stecken. Er hat einen Low Profile x4 PCI-Express Slot der rechts nicht offen ist. Die preiswerten PCI Express Karten haben aber alle einen x16 (langen) Connector. Die wenigen x1 PCI-Express Karten sind kaum verfügbar und teuer! Eine Neuanschaffung lohnt für diesen Versuch einfach gar nicht.
Es gibt aber einen interessanten Adapter für ca. 11€ bestehend aus einem x1 PCI-Express Stecker mit USB 3 Buchse (kein USB 3 Anschluss nur Kabel Adapter!) USB 3 Kabel, x16 PCI-Express Slot und einem Sata Strom Anschluss. Mit dieser etwas wüsten Konstruktion kann man tatsächlich test weise eine 16x PCI-Express Karte in einem 1x Slot betreiben.

Siehe da, jetzt macht auch FreeBSD alle Ausgaben sichtbar auf dem Schirm und ich kann die FreeNAS Systeme testen. Dank Live System geht das relativ einfach und schnell. Ich mache auch ein Probeinstallation auf eine USB Stick, das Live System kann keine Konfiguration speichern, nach einem Neustart ist alles verloren. Was relativ schnell auffällt, kein WOL auswählbar, auch nicht Hibernate. Das wird wohl das Kriterium sein.

Mir fällt dann bei weiteren Versuchen auf, dass auch bei den debian Systemen plötzlich viel mehr Ausgaben auf dem Bildschirm landen als mit der eingebauten VGA Karte. Scheinbar funktionieren da ein paar vorausgesetzte Videomodi nicht.

Suche Antworten

In den ursprünglichen Artikel stand auch immer, dass man den integrierten Flash speicher nutzen kann. Obwohl man sich damit eventuell den Rückweg zum Home Server verflasht. Macht das Sinn? Kann man einen USB Stick nutzen? Was ist mit der Geschwindigkeit und Zuverlässigkeit?
FreeNAS baut eine RAM Disk um den USB Stick zu schonen. Openmediavault sagt explizit nein zum normalen USB Stick, wenn dann einen mit SLC-Speicherchips, besser gleich eine SSD.

Einfach eine kleine SATA Platte als System und ich habe 3 Slots frei und könnte sogar RAID 5 machen.
Man könnte den PCI-Express Slot ja noch mit SATA + USB 3 erweitern, so eine Karte liegt auch noch in der Kiste.

H340 User versus debug Mode

Die Steuerung erfolgt mit einem auf dem Board befindlichen Jumper Nr. 3.

User Mode (JP 3 offen)

  • Tastaturerkennung im Bios deaktiviert
  • VGA Ausgabe im Bios teilweise deaktiviert
  • VGA und Tastatur funktionieren allerdings im gestarteten Betriebssystem
  • mit PCI-e VGA Karte sieht man alle Ausgaben Bios und POST, Menü vom Grub loader aber debian startet nicht.


Debug Mode (JP 3 geschlossen)

  • Tastaturerkennung im BIOS aktiviert, Bios und Bootmenü erreichbar.
  • VGA onboard Ausgabe im BIOS aktiviert
  • mit PCI-e VGA Karte sieht man alle Ausgaben Bios und POST, Menü vom Grub loader und debian startet. Allerdings erscheint auf keinem VGA Ausgang die Konsole von debian.

Bootvorgang 

Meine Beobachtungen zum Bootvorgang, diese sind nicht zu 100% reproduzierbar!
Wichtig während des Bootvorganges ist die Beobachtung des "i" Symbols.
Auf der Rückseite befindet sich ein kleiner versenkter Reset Taster den man mit einem spitzen Gegenstand (Draht oder Büroklammer) betätigen kann.

Manchmal blinkt beim einschalten kurz die blaue LED über USB Front und i rot.
Wenn sofort nach dem Einschalten das Netzwerk auf der Vorderseite Aktivität anzeigt (und auf der Rückseite auch wenn das Gerät aus ist) wurde der H340 vom Betriebssystem beim Shutdown in einen WOL fähigen Zustand versetzt.

Nach Power on Knopf drücken passiert folgendes:

Ohne bootfähiges System (keine HDD kein USB)
  • USB vorn blinkt kurz blau
  • nach 11 sec i blinkt blau
  • nach ca 17 sec Netzwerk wird aktiviert und blinkt vorn blau
  • nach 1:15 min leuchtet i und die  HDD LED 1 +2  statisch rot, das Netzwerk wird deaktiviert
  • es erfolgt zu keiner Zeit eine Ausgabe eine Start oder BIOS Meldung
  • es wird nicht vom internen Flash gebootet


Steckt  hinten oder vorn ein bootfähiger USB Stick und keine HDD wird nach ca. 16 sec von dem gebootet. Die i LED blinkt weiter blau.
Steckt eine HDD (und wahlweise ein bootfähiger USB Stick) wird nach ca. 20 sec von dieser gebootet und es erfolgt beim einschalten meistens eine kurze BIOS und Startmeldung.

Um den Start vom USB Stick zu erzwingen, muss man unmittelbar nachdem i blau blinkt den Reset Taster kurz drücken. Steckt kein USB Stick wird jetzt vom internen Flash gebootet. Dort befindet sich ein Windows PE System welches den Windows Home Server Recovery Vorgang startet.

Einfach noch ein paar Links und Zahlen

openmediavault vom USB Stick
https://wiki.debian.org/InstallOpenMediaVaultOnDebian

Startzeiten
- bis zum Bootmenü des H340 --> 26 sec
- NAS4Free USB Stick 2.0 für den Start total -->  2 min 37 sec
- openmediavault auf USB 2.0 Festplatte für den Start total --> 1 min 32 sec
- debian SATA HDD ab Bootmenü bis zum login --> 1 min
- openmediavault auf SATA HDD ab Bootmenü bis zum login --> 1 min 8 sec
- openmediavault auf SDD für den Start total --> 40 sec

Zugriffsgeschwindigkeit
Eine Samsung HD103SJ im H340 am internen SATA, ohne aktivierten Schreibcache, freigegeben über SMB/CIFS und als Laufwerk Z: unter Windows 8.1 eingebunden bringt mit CrystalDiskMark folgende Werte:

           Sequential Read :    74.478 MB/s
          Sequential Write :    91.900 MB/s
         Random Read 512KB :    75.524 MB/s
        Random Write 512KB :    88.363 MB/s
    Random Read 4KB (QD=1) :    12.281 MB/s [  2998.3 IOPS]
   Random Write 4KB (QD=1) :     9.646 MB/s [  2354.9 IOPS]
   Random Read 4KB (QD=32) :    12.319 MB/s [  3007.7 IOPS]
  Random Write 4KB (QD=32) :     9.960 MB/s [  2431.6 IOPS]

Sie ist damit in fast allen Disziplinen wesentlich schneller als eine unter Windows 8.1 lokale  ST31000528AS

           Sequential Read :    77.426 MB/s
          Sequential Write :    74.452 MB/s
         Random Read 512KB :    25.344 MB/s
        Random Write 512KB :    43.597 MB/s
    Random Read 4KB (QD=1) :     0.336 MB/s [    81.9 IOPS]
   Random Write 4KB (QD=1) :     0.685 MB/s [   167.2 IOPS]
   Random Read 4KB (QD=32) :     0.879 MB/s [   214.6 IOPS]
  Random Write 4KB (QD=32) :     0.679 MB/s [   165.7 IOPS]

Der Praxistest mit einer Windows 10 Maschine unter VirtualBox belegt das eindrucksvoll.

Samstag, 25. Juli 2015

Himbeere mit Blauzahn

Für Anwesenheitserkennung im Haus gibt es viele Varianten. Mittels Bluetooth ist eine davon, die wollte ich schon immer mal probieren. Jetzt steht vielleicht eine Umstellung durch das neue FRITZ!OS an, deshalb schnell mal getestet. Wie installiert man Bluetooth auf dem Raspberry? Das hat mir grundlegend geholfen. Ich schreibe hier mal wieder genau auf, wie ich es gemacht habe:

Zuerst den Stick bestellt, der hier funktioniert am Raspberry unter debian wheezy problemlos: "CSL USB Nano Stick V4.0 Model BSN23966"
Je nach Modell ist der Raspberry sensibel, wenn man USB Geräte steckt, also besser runterfahren und erst dann anstecken. Obwohl bei einem Versuch der BT Stick nach dem einstecken erkannt wurde, lief trotzdem nach der Installation der Bluetooth Dienst nicht. Nach einem Reboot funktionierte alles.
Der Befehl
 lsusb  
listet mir diese Gerät:
 Bus 001 Device 004: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)  
Sieht also erstmal gut aus.

Jetzt noch Software installieren, update muss einmal am Tag sein, upgrade und autoremove kann man ab und zu mal machen um aktuell zu sein
 sudo apt-get update  
 sudo apt-get upgrade  
 sudo apt-get autoremove  

Die eigentlichen Dinge werden jetzt installiert
 sudo apt-get install bluetooth bluez-utils blueman  

Danach kann man den Status abfragen:
 /etc/init.d/bluetooth status  
Die Quittung sollte so aussehen
 [ ok ] bluetooth is running.  

Jetzt aktiviert man z.B. am Smartphone Bluetooth und macht es für einen Zeitraum sichtbar. Dann kann man folgendem Befehl die Bluetooth Umgebung scannen.
 hcitool scan  

Die Ausgabe sieht dann etwa so aus
 11:22:33:44:55:66    Nexus  

Auch wenn Bluetooth am Smartphone jetzt wieder nicht mehr auf sichtbar steht, kann man die Erreichbarkeit testen solange Bluetooth aktiv ist.
 sudo l2ping -c 1 11:22:33:44:55:66  

Damit ist die Einrichtung und der Test abgeschlossen. Jetzt kann man Bluetooth zur Anwesenheitserkennung von Geräten nutzen.

Die Reichweite ist nicht hoch, es geht also wirklich Zimmer oder Etagenweise. Ein paar Meter und eine Wand schafft er aber schon. Die Erkennung ist schneller als mit Wlan, dass werde ich mir vor allem für die "Ich bin wieder da" Erkennung zu nutze machen.

Die Zeiten ändern sich

AVM hat es angekündigt und nun umgesetzt: FRITZ!OS 06.24 ist das letzte Betriebssystem wo Telnet noch aktivierbar ist und die WEBCM CGI Schnittstelle vorhanden ist. Seit ein paar Tagen ist für die FB7490 das neue FRITZ!OS 06.30 offiziell verfügbar.

Beide Schnittstellen wurden aus Sicherheitsgründen entfernt. Als einzige Schnittstelle wird jetzt TR-064 unterstützt.

Damit ist es an der Zeit das Konstrukt mit der FHEM Instanz auf der Fritzbox zu überdenken. Das System soll ja "supported" bleiben. Im Vordergrund steht für mich nach wie vor die Anwesenheitserkennung über Wlan.

Umstellung FHEM auf neues FB Interface

Das FRITZBOX Modul wurde von seinem Entwickler in den letzten Wochen kräftig überarbeitet.

Installation des Fritzbox Moduls

Update FHEM neue Version (FRITZBOX.pm mindestens 8978 2015-07-15)

Eingeleitet wird jede Installation mit Aptitude täglich mit einer Aktualisierung
sudo apt-get update
Wenn man noch mit telnet experimentieren will (macht nur Sinn bis Version 06.24 oder mit Freetz) braucht man telnet
sudo apt-get install libnet-telnet-perl

Auf alle Fälle braucht man folgende perl Module, bei mir waren die alle schon installiert (Basis, Sonos und netatmo)
sudo apt-get install libjson-perl libwww-perl libsoap-lite-perl libjson-xs-perl

Jetzt kann das FRITZBOX Device angelegt werden
define FB7490 FRITZBOX
set FB7490 password xxxx
attr FB7490 allowTR064Command 1

Wenn die Fritzbox nicht über die Namensauflösung fritz.box im Netz erreichbar ist, muss das Attribute fritzBoxIP mit der IP Adresse bestückt werden.
Jetzt spricht FHEM mit der FB über telnet oder/und TR064 und das Device sollte mit Werten gefüllt werden. Es dauert eventuell zwei drei Abfragerunden eh alles komplett ist. In den Internals kann man ablesen ob die FB überprüft ist (APICHECKED) und welche Schnittstellen zur Verfügung stehen (LUAQUERY, TELNET, TR064, WBCM)

Über das Attribute INTERVALL kann man das Abfrageintervall auf 60 sec stellen.

Jetzt spricht FHEM mit der FB über telnet oder/und TR064.

Anwesenheit von WLAN Geräten ermitteln.

Aktive Wlan Geräte werden in den Readings gelistet:
mac_xx_xx_xx_xx_xx_xx Name

Werden Geräte im Wlan abgemeldet, erscheinen sie kurzzeitig mit dem Namen "inactive" und werden später nicht mehr gelistet.
Eine Abfrage liefert den Namen des Gerätes zurück oder nichts, eventuell auch "inactive". Das kann man direkt in der Befehlszeile von FHEM testen:
{ReadingsVal("FB7490","mac_11_22_33_44_55_66","")}

Daraus habe ich nun folgende Abfrage gebaut


Zunächst wird eine Routine in 99_myUtils eingefügt. Ist die 99_myUtils.pm noch nicht vorhanden kann man das Template von FHEM verwenden. War die Datei schon vorhanden, darf man nach dem editieren ein reload 99_myUtils nicht vergessen. Wie es genau geht steht im Wiki 
Das ist meine erste wirklich selbstgeschrieben Perl Routine:

######## Netzwerk Gerät über Fritzbox abfragen ############
sub
NetDevDa($$$)
{
       my ($FB, $Reading, $Device) = @_;
       my $Name = ReadingsVal($FB,$Reading,"");

       if( $Name eq $Device) {
           return 1;
       }
       else {
           return 0;
       }
}

Definition mit dem PRESENCE Modul

Die interne Fritzbox Funktion aus dem Modul können wir derzeit so nicht mehr verwenden. Sie funktioniert nur wenn FHEM lokal auf der Fritzbox läuft.
Die Abfrage im PRESENCE Modul kann auch mit eigenen Funktionen erfolgen. Die Funktion habe ich in der 99_myUtils vorbereitet.

define Wlan_Device PRESENCE function {NetDevDa("FB7490","mac_xx_xx_xx_xx_xx_xx","<Name aus dem Reading>")} 10 30

Das PRESENCE Modul würde nach dieser Definition alle 30 Sekunden zwei Events feuern, man kann sich das gut im "Event monitor" anschauen. Einen Event mit <state> und einen Event mit "presence: <state>". Egal ob sich am Status was geändert hat oder nicht. Das wollen wir nicht, deshalb setzt man noch das Attribute event-on-change-reading auf den Wert state. Damit wird nur ein Event mit dem Inhalt <state> gesendet in dem Moment wo sich der Status ändert. Das ist für die angeschlossene Auswertelogik von Bedeutung.
attr Wlan_Device event-on-change-reading state

Jetzt könnte man noch die Anwesenheit protokollieren:
define FileLog_MobileGeraete FileLog ./log/MobileGeraete-%Y.log Wlan_Device:.*|Wlan_Device2:.* 

Diese Abfrage der Fritzbox funktioniert im Gegensatz zur simplen LAN-PING Methode des PRESENCE Modules auch für Geräte, die die Wlan Schnittstelle bei Inaktivität abschalten (z.B. iPhone).

Etwas mehr Komfort

Die obige Abfrage erfüllt ihren Zweck auf die Schnelle, ist aber etwas unkomfortabel. Eigentlich werden MAC Adressen in der Form 11:22:33:44:55:66 verwendet und eigentlich will man ja nur wissen ob eine bestimmte MAC Adresse im Netzwerk vorhanden ist. Ob eine oder mehrere Fritzboxen oder Fritz Repeater im Netz vorhanden sind, sowie der konkrete Name des Gerätes sollte dabei egal sein.
In Anlehnung an diesen Beitrag im Forum habe ich den Code noch etwas ergänzt. Im Wiki gibt es jede Menge Varianten und Informationen dazu.

######## Netzwerk Gerät über Fritzbox abfragen ############
sub
NetDevDa($)
{
    my $n = 0;
    my ($Reading) = @_;
    $Reading =~ tr/:/_/;
    my @fbs = devspec2array("TYPE=FRITZBOX");
       foreach( @fbs ) {
          my $Name = ReadingsVal($_,"mac_" . $Reading,"");
          if( ($Name ne "") && ($Name ne "inactive") ) {
              $n++;
          }
       }
    if( $n == 0) {
        return 0;
    } else {
        return 1;
    }
}
Damit wird die Definition im PRESENCE Modul einfacher und wesentlich flexibler:
define Wlan_Device PRESENCE function {NetDevDa("xx:xx:xx:xx:xx:xx")} 10 30

Fritzbox auf neues System aktualisieren

Damit ich relativ sicher bin, das die Anwesenheitserkennung reibungslos funktioniert hatte ich Telnet auf der FB deaktiviert und die FHEM Instanz beendet. Nach ein paar Wochen Test ist es an der Zeit die Umstellung durch Update der Fritzbox zu beenden.

Ich habe eine Sicherung der Fritzbox Einstellungen gemacht, die Wiederherstellungsprogramme von AVM für die Version 6.24 und 6.30 heruntergeladen und dann einfach Update gedrückt.
Funktioniert!
Man bekommt über die FRITZ!NAS Funktion immer noch den alten fhem Pfad, der wird nicht gelöscht. Wer also vergessen hat, dass nach dem Update FHEM nicht mehr läuft und auf ein anderes System umziehen will, kann jetzt immer noch alles retten.
Was bleibt ist die Ausschrift auf der Startseite "Vom Hersteller nicht unterstützte Änderungen". Wer also sein System noch ganz sauber machen will, kann jetzt das Recovery Programm starten und anschließend die Sicherung der Einstellung zurückspielen. Dazu unbedingt die Hinweise  von AVM beachten.
Dabei wird der Speicher der Fritzbox komplett gelöscht. Also vorher alle Daten über FRITZ!NAS sichern!

Sonntag, 19. Juli 2015

Es ist Sommer

Ich habe eine Bose Mini Soundlink und die will natürlich mit Musik gefüttert werden. Vor allem wenn man irgendwo im Indischen Ozean am Pool liegt ...
Vielleicht ist der Artikel nicht ganz so technisch wie die Anderen, er hat auch nicht Anspruch auf Vollständigkeit und Werbung für irgendetwas will ich schon gar nicht machen, aber wie gesagt: es ist Sommer...
Also ich habe alles mit: Soundbox, Smartphone, Ultrabook. Internet ist vor Ort, alles ist einfach vernetzt. Ich habe etwas von meiner Lieblingsmusik dabei, aber wollen die anderen die auch hören? Und vor Ort gibt es doch ganz andere Musik. Also vielleicht Internetradio streamen?
Naja, die Begeisterung ist schnell an der Grenze. Internetradios haben überall auf der Welt das Problem, dass der Stream immer mal abbricht. Das hat mit Wlan oder der Bandbreite wenig zu tun. Ist das eventuell Methode. Und dann die Werbung! Als erstes kommt jeden Tag die gleiche Werbung, wenn man den Stream startet und neuerdings auch dann, wenn man mal Pause drückt - das nervt! Und die meisten Stationen haben eh bloß eine Playlist, die eine Stunde reicht, danach geht es wieder von vorne los. Da hat dann auch die Musik des Sega oder Seggae relativ schnell den exotischen Bonus verloren.

Ein Kumpel hatte mir vor einiger Zeit gesagt: Ich kaufe keine CDs mehr, ich habe jetzt ein Spotify Abo - für 10 € im Monat kann man immer hören was man will. Genau, das wollte ich doch auch mal probieren! Und jetzt ist die Zeit!

In unserem schöne Ferienhaus gab es noch folgende technische Herausforderung: Der Internetanschluss lag im Wohnzimmer, 5 meter und 3 Wände weiter war die Küche, da war dann Wlan an einer gaaanz ausgesuchten Stelle. An der Stelle wo man die Box gut hören konnte jedenfalls nicht. Also bildete das Smartphone mittels Bluetooth die Brücke zwischen Wlan und Box. Das Smartphone hat offenbar keine so weitreichende Blauzahn Antenne - immer wenn einer durch die Küche lief, blubberte es in der Box.
Der Pool lag noch weiter weg als die Küche, wenn ich den Router aus dem Fenster etwas zweckentfremdet auf ein ansonsten unnützes Stilmöbel aus dem Vorraum stellte, gab es eine Stelle im Garten an der ich das Smartphone als Brücke zur Box in hörbarer Nähe zum Pool platzieren konnte.
Schau an: Das Notebook hat bessere Antennen, kein Wunder, ist ja auch größer.

Übrigens: Dass die Internetbandbreite auch im Indischen Ozean für Streaming nicht das primäre Problem darstellt, habe ich anhand vom Streamingdienst Deezer mitbekommen. Da gab es nämlich die Musik des dortigen großen internationalen Musikfestivals "Sakifo" zum Probe hören, das funktionierte astrein! Also die Internetradios wollen das so! Nach dem Abbruch kommt immerhin die "täglich grüßt das Murmeltier" Werbung.

Weil das Notebook die besser Antenne hat, bin ich also in den Windows App Store und habe gesucht. Siehe da: eine Musik App ist schon vorinstalliert --> xbox music. Wie alle Namen von Microsoft - verwirrend. Nein man braucht keine xbox, der Dienst heißt einfach so. Einfach: Probeabo für 30 Tage, einen MS Account habe ich sowieso schon, also einfach los geht's!
Was wollt ihr hören? Suche, Auswahl, Musik läuft.
Radio - was verbirgt sich hinter dieser Funktion? Welche Sender gibt es da? Hmmm...
Coole Sache: Man nimmt einfach einen Titel den man jetzt gerne hören möchte, startet die Radiofunktion und er spielt diesen Titel und danach immer weiter, irgendwie nach einem hinterlegten Schema, aus dieser Musik oder Interpreten Richtung, ohne Ende. Wenn einem die Richtung nicht gefällt, dann ein neuer Versuch. Das ist eigentlich die Revolution der Radiomusik: keine Werbung, ich muss nicht lange suchen, meine Stimmung entscheidet die Musik und nicht der Sender. Ich finde das wirklich genial.

Nach dem Urlaub sind natürlich die 30 Tage irgendwann um, ich will Nägel mit Köpfen machen. Welchen Dienst von den vielen nimmt man denn nun? Appel kündigt gerade seinen Streaming Dienst an, noch einer...
Welches ist mein Kriterium? Ach ja, zu Hause steht ja Sonos. Da sollte der Dienst natürlich auch gehen! Xbox Music und Sonos? Fehlanzeige, offenbar können die sich nicht leiden, kein xbox music auf der Sonos, gar nicht! Also? Spotify, Probeabo 60 Tage. Und? Sonos? Geht, aber auch Radiofunktion? Ne, das was da in Sonos mit Spotify geht, ist sehr dürftig. OK, nächstes Kriterium, was habe ich schon, wo bin ich schon? Android! Google Music ist schon da. App, Account alles vorhanden. Also Probeabo, in Sonos aktivieren - und? Radio? Geht! Aus meiner Sicht geht auf dem Handy und in der Sonos ziemlich das Gleiche, super!
Und nun? Ich bin ja fair, teste alles noch etwas zu Ende. Xbox music ist storniert, das war ganz easy. Es gab 'ne faire vorab Info, dass es in ein paar Tagen kostenpflichtig wird. Bei Google gab es die Info, dass es jetzt kostet, zu spät für Storno. Bei Spotify gefällt mir die App unter Windows, aber unter Android finde ich sie doof und ganz mickrig unter Sonos.
Es wird wohl bei Google Music bleiben, gute App unter Android, gute Integration in Sonos.
Und welche Musik ist vorhanden? Ich habe bisher bei allen alles gefunden und jede Menge neu kennengelernt. Das ist wirklich 'ne geile Sache!

Pimp my HMLAN

Ich habe eine kritische Stelle in meiner Homematic Umgebung: mein Keller unter der Terrasse. Hier ist zunächst ein 4 fach Hutschienen Aktor verbaut, weiteres soll aber folgen. Mit meiner CCU1 hatte ich seinerzeit das Problem: Wenn die Jalousien runter gingen schaltete die Adventsdekobeleuchtung im Garten nicht mehr aus. Bis ich den Zusammenhang mitbekam verging eine Weile. Schuld waren die grenzwertigen Send- und Empfangsbedingungen zwischen CCU1 und Aktor:
-> 10 meter Luftlinie und je nach Anordnung zwei Decken und zwei Wände. Die Jalousie unten war dann zuviel!
Bei der Umstellung auf HMLAN und FHEM konnte ich das zunächst durch die Platzierung des HMLAN umgehen. Allerdings wollte ich das noch zuverlässiger machen. Der HMLAN hat prinzipiell ein ähnliches Problem mit seiner eingesperrten Mini Draht Antennne. Bei der CCU1 bin ich seinerzeit nach diesem Artikel vorgegangen.
Auch im FHEMWIKI findet  man diesen Artikel und einfacherer Varianten für den HMLAN.
Ich hatte aus einem Bausatz HM-SEN-MDIR-SM noch die kleine Gummitülle die die neue Antenne nach außen etwas in Form bringt. Am Gehäuse des HMLAN muss man minmal ein paar Kerben feilen um die Antenne und den Gegenpol nach außen zu bringen.


Die Abdeckung/Lichtleitung für die LEDs habe ich weggelassen, da mich das helle Blinkern eh gestört hat. Im Boden des HMLAN habe ich seitlich drei kleine Löcher in Nähe der LED gebohrt, da dringt genug Licht nach außen wenn der HMLAN an der Wand nicht in Augenhöhe hängt.

Die RSSI Werte zum kritischen Aktor im Keller vor
    LichtKeSW1      HMLAN1          LichtKeSW1      -102.0  -98.4 -107.0< -82.0    24
    LichtKeSW1      LichtKeSW1      HMLAN1           -93.0  -95.0 -103.0< -84.0    19
und nach dem Umbau
    LichtKeSW1      HMLAN1          LichtKeSW1       -79.0  -81.0  -84.0< -76.0     6 
    LichtKeSW1      LichtKeSW1      HMLAN1           -76.0  -77.7  -81.0< -74.0     6 
zeigen deutlich die Verbesserung. Vor allem ist "-80" eine Art kritische Schwelle und die habe ich jetzt doch meist unterschritten. 
Die RSSI Werte kann man sich gut mit dem HMinfo Modul ausgeben lassen.