Keine Teamübersicht im Outlook Kalender

Im Active Directory gibt es beim Benutzerobjekt das Feld Manager. Wenn das Feld mit dem entsprechendem Vorgesetzten befüllt wird , wird in Outlook im Kalender eine Teamübersicht erstellt.
Ein Kollege hatte neulich das Problem, das wenn ein bestimmter Vorgesetzter hinterlegt wurde, die Teamübersicht nicht erstellt wurde.
Da sie keine Lösung finden konnten, hat das Unternehmen in dem er arbeitet ein Ticket bei Microsoft aufgemacht. Durch mehrere Telefonate bzw E-Mails  wurden unter anderem LDAP Exporte des Benutzer zur Verfügung gestellt.

Letztendlich stellte sich heraus, das der Vorgesetzte bei mehr als 100 Mitarbeitern im Feld Manager hinterlegt wurde.
Im Code von Outlook ist ein Limit von 100 hinterlegt und bei mehr als 100 Teammitglieder wird die Teamübersicht nicht aufgebaut.

flattr this!

Openhab auf dem Rasbperry Pi installieren

Neben Fhem gibt es auch openhab als opensource Hausautomations Software. Über openhab können unter anderem Aktoren von KNX, Z-Wave oder EnOcean angesteuert werden. Zusätzlich gibt es eine Vielzahl von Bindings wie zum Beispiel für den Linux Videorecorder, die AVM Fritzbox oder Samsung Fernseher.

Openhab wurde in Java geschrieben und kann unter Linux, Windows, Mac OS etc installiert werden, Voraussetzung ist eine aktuell installierte Java Version.

In meinem Beispiel installiere ich die Software unter Raspian auf dem Raspberry Pi und als erstes muss die benötige Java Umgebung installiert werde.

sudo su
apt-get update
apt-get install oracle-java7-jdk

Über java -version erhält man nach der Installation die folgende Ausgabe:
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) Client VM (build 24.0-b56, mixed mode)

Openhab installieren

Für die openhab Installation habe ich auf dem Raspberry Pi über adduser openhab einen Benutzer angelegt und unter dem Benutzer die Software heruntergeladen(wget https://github.com/openhab/openhab/releases/download/v1.5.0/distribution-1.5.0-runtime.zip). Alternativ kann die Software auch über die Seite http://www.openhab.org/downloads.html heruntergeladen werden, Sie muss dann nur zum Beispiel per scp übertragen werden.
Nach dem entpacken der Datei über unzip distribution-1.5.0-runtime.zip, erhält man die Ordner und Dateistruktur.

Vor dem ersten Start muss chmod 755 start.sh ausgeführt werden, im Ansch kann über ./start.sh openhab gestartet werden.

./start.sh
Launching the openHAB runtime...
osgi> 21:47:58.174 WARN o.o.c.core.ConfigDispatcher[:172] - Main openHAB configuration file 'configurations/openhab.cfg' does not exist.
21:47:58.287 INFO o.o.c.internal.CoreActivator[:61] - openHAB runtime has been started (v1.5.0).
21:48:42.704 INFO o.o.i.s.i.DiscoveryServiceImpl[:72] - mDNS service has been started
21:49:02.580 INFO o.o.io.rest.RESTApplication[:143] - Started REST API at /rest
21:49:08.645 INFO o.o.u.w.i.s.WebAppServlet[:79] - Started Classic UI at /openhab.app

Wie in der Ausgabe zu erkennen ist, muss noch die configurations/openhab.cfg angelegt werden.
cp configurations/openhab_default.cfg configurations/openhab.cfg

Erste Steckdose einbinden

Um die Funksteckdose schalten zu können nutze ich das elro_wiring.py Script aus dem Artikel http://www.itbasic.de/raspberry-pi-erster-schritt-zur-hausautomation/, die ich unter /home/openhab/bin abgelegt habe.
Damit der obenhap Benutzer in der Lage ist die Funksteckdosen zu schalten, muss in der /etc/rc.local noch der Eintrag sudo -u openhab /usr/local/bin/gpio export 23 out vor exit 0 hinzugefügt werden. Nach dem Eintrag muss der Raspberry Pi neugestartet werden, damit die Änderungen wirksam werden.

Zusätzlich habe ich die Datei configurations/sitemaps/default.sitemap und configurations/items/weihnachten.items mit folgendem Inhalt erstellt.

default.sitemap:
sitemap default label="Main Menu"
{
Frame label="Weihnachten"{
Switch item=Stern
}
}

weihnachten.items:
Switch Stern "Sternbeleuchtung" {exec="OFF:/home/openh
ab/bin/wnachten.py 4 0,ON:/home/openhab/bin/wnachten.py 4 1"}

Bevor man jedoch openhab erneut startet, muss das Addon “org.openhab.binding.exec-1.5.0.jar” in dem Verzeichniss addon abgelegt werden, ansonsten führt openhab das Script nicht aus.
Alle benötigten Addons können hier heruntergeladen http://www.openhab.org/downloads.html werden.

Jetzt openhab über ./start.sh starten und über die URL http://ip Adresse:8080/openhab.app kann auf die Weboberfläche zugegriffen werden.

openhab

flattr this!

Cannot retrieve item

Endlich bin ich dazu gekommen mir openhab anzusehen und hatte gleich zu Beginn ein kleines Problem.

Nachdem ich die ersten Konfigurationsdateien erstellt und openhab gestartet hatte, konnte ich ohne Probleme auf die Weboberfläche zugreifen. Leider erhielt ich dann auf der Kommandozeile die folgende Ausgabe:
21:30:11.412 WARN o.o.u.w.i.r.SwitchRenderer[:70] - Cannot determine item type of 'Stern'
org.openhab.core.items.ItemNotFoundException: Item 'Stern' could not be found in the item registry
at org.openhab.core.internal.items.ItemRegistryImpl.getItem(ItemRegistryImpl.java:80)
21:30:11.427 ERROR o.o.u.i.i.ItemUIRegistryImpl[:411] - Cannot retrieve item 'Stern' for widget org.openhab.model.sitemap.Switch
21:30:11.437 ERROR o.o.u.i.i.ItemUIRegistryImpl[:411] - Cannot retrieve item 'Stern' for widget org.openhab.model.sitemap.Switch
21:30:11.446 ERROR o.o.u.i.i.ItemUIRegistryImpl[:411] - Cannot retrieve item 'Stern' for widget org.openhab.model.sitemap.Switch
21:30:11.454 ERROR o.o.u.i.i.ItemUIRegistryImpl[:411] - Cannot retrieve item 'Stern' for widget org.openhab.model.sitemap.Switch
21:31:58.974 WARN o.o.u.w.i.servlet.CmdServlet[:100] - Received command 'TOGGLE' for item 'Stern', but the item does not exist in the registry
21:32:02.374 WARN o.o.u.w.i.servlet.CmdServlet[:100] - Received command 'TOGGLE' for item 'Stern', but the item does not exist in the registry

Es dauerte ein wenig bis ich den Fehler gefunden hatte und letztendlich half mir nur der Eintrag in einem Forum.

Die Konfigurationsdateien für die Items werden unter dem Pfad configurations/items/ abgelegt und müssen die Endung .items haben. In meinem Fall hatte die Datei die Endung .item.

flattr this!

drbd primary über Clustersoftware setzen

Das drbd und auch die Clustersoftware(Pacemaker und Corosync) wurden eingerichtet. Im nächsten Schritt geht es darum Pacemaker so zu konfigurieren das die Software das primary device des drbd setzt.

Folgendes muss auf der Kommandozeile ausgeführt werden um die benötigte Konfigurationsdatei zu erstellen.

pcs cluster cib drbd_cfg
pcs -f drbd_cfg resource create drbd-data ocf:linbit:drbd drbd_resource=data op monitor interval=60s
pcs -f drbd_cfg resource master drbd-datamaster drbd-data master-max=1 master-node-max=1 clone-max=2 clone-node-max=1 notify=true

Im Anschluss die Datei an das cluster übergeben pcs cluster cib-push drbd_cfg
und über pcs status sollte man folgende Ausgabe erhalten:

Current DC: drbd1 - partition with quorum
Version: 1.1.10-14.el6_5.3-368c726
2 Nodes configured
2 Resources configured

Online: [ drbd1 drbd2 ]

Full list of resources:

Master/Slave Set: drbd-datamaster [drbd-data]
Masters: [ drbd1 ]
Slaves: [ drbd2 ]

Zur Zeit läuft der primary Master auf dem drbd1, über den Befehl pcs resource move drbd-datamaster drbd2 wechselt der primary zum Server drbd2.

Jetzt muss noch noch manuel das entsprechende Device auf dem primary Master gemountet werden.

Automatisch mounten

Das mounten kann auch von der Clustersoftware übernommen werden, hierfür muss folgendes als root auf der Kommandozeile ausgeführt werden.

pcs cluster cib fs_cfg
pcs -f fs_cfg resource create appfs Filesystem device="/dev/drbd1" directory="/app" fstype="ext4"
pcs -f fs_cfg constraint colocation add appfs drbd-datamaster INFINITY with-rsc-role=Master
pcs -f fs_cfg constraint order promote drbd-datamaster then start appfs
pcs -f fs_cfg constraint
pcs -f fs_cfg resource show
pcs cluster cib-push fs_cfg

In der oberen Konfiguration wird das Device /dev/drbd1 nach /app gemountet, zuvor muss mit mkdir /app das /app Verzeichniss angelegt werden.

Ausgabe pcs status:

Cluster name: clusterOne
Last updated: Thu Jul 17 16:53:51 2014
Last change: Thu Jul 17 16:53:43 2014 via crm_resource on drbd1
Stack: cman
Current DC: drbd1 - partition with quorum
Version: 1.1.10-14.el6_5.3-368c726
2 Nodes configured
3 Resources configured

Online: [ drbd1 drbd2 ]

Full list of resources:

Master/Slave Set: drbd-datamaster [drbd-data]
Masters: [ drbd2 ]
Slaves: [ drbd1 ]
appfs (ocf::heartbeat:Filesystem): Started drbd2

flattr this!

Ausgabe des NFC Moduls über die Shell verwenden

Die Inbetriebnahme des NFC Moduls ist wie in dem Artikel zu lesen sehr einfach. Leider lässt sich die Ausgabe mit Hilfe von | nicht umleiten und kann somit auf der Shell nicht weiter verwendet werden.
Ich habe mit den Sourcecode(main.c) der mitgelieferten Polling Software angesehen und ein wenig angepasst, nun wird die UID des Tags in die Datei polling.log geschrieben.

Um so wenig Ausgaben wie möglich zu erhalten habe ich die meisten printf... Ausgaben aus dem Code entfernt, ausgegeben werden nun nur noch Fehlerausgaben und die UID.

Damit die Ausgabe in eine Datei geschrieben wird, habe ich folgendes in der main.c ausgetauscht.
Vorher:
printf("UID: ");
uint8_t i;
for(i = 0; i < bLength; i++)
{
printf("%02X ", bUid[i]);
}
printf("\n\n");

Nachher:
uint8_t i;
FILE *f = fopen("polling.log","a+");
for(i = 0; i < bLength; i++)
{
fprintf(f,"%02X", bUid[i]);
}
fprintf(f,"%s\n", "");
fclose(f);

Zusätzlich habe ich sleep(1) auf sleep(4) gesetzt.

Nach dem kompilieren kann die Software wie vorher über ./card_polling gestartet werde und die UID´s werden in die polling.log geschrieben.

Die UID´s aus der polling.log greife ich über ein kleines Shellscript ab, hierfür mussten zuvor die inotify-tools installiert werden.

apt-get install inotify-tools

Das Script selbst ist wie folgt aufgebaut:
#!/bin/bash
FILE="polling.log"
while true;
do
inotifywait -e modify "${FILE}"
for i in `cat ${FILE}`
do
echo $i
echo "" > ${FILE}
done
done

Wenn das Shellscript gestartet wurde, wird die polling.log überwacht.
Sobald es eine Änderung gibt wird die UID(echo $i) ausgegeben und im Anschluss wird die polling.log geleert.
Anstatt der echo $i Ausgabe könnte die UID auch in eine mysql Datenbank geschrieben werden, diese könnte dann in einem Webfrontend für zum Beispiel eine Zeiterfassung verwendet werden.
Es wäre auch möglich mit zusätzlicher Hardware ein Türschloss zu öffnen oder ein Programm auf dem Raspberry Pi zu starten.

Natürlich wäre das ganze einfacher wenn man den Sourcecode komplett anpassen würde, um zum Beispiel die UID in die mysql Datenbank zu schreiben, für mich reicht jedoch die Verwendung der UID über die Shell.

flattr this!