Digitaler Fotorahmen

Mittlerweile gibt es auf dem Markt diverse Displays, die sich gut für Projekte mit dem Raspberry Pi eignen.

In diesem Artikel geht es um die Erstellung eines digitalen Bilderrahmens, die Bilder werden hierfür aus einem Dropbox Ordner heruntergeladen.

Leider gibt es für den Raspberry Pi keinen Dropbox Client, jedoch gibt es ein Script welches für den Download bzw. Upload von Dateien genutzt werden kann.
Zunächst muss das Script heruntergeladen und ausführbar gemacht werden.
curl "https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh" -o dropbox_uploader.sh
chmod 755 dropbox_uploader.sh

Nach dem ausführen des Scripts erhält man eine gute Anleitung, damit das Script zum synchronisieren genutzt werden kann.

Zum herunterladen der neuen Bilder und darstellen auf dem Display verwende ich die folgenden Zeilen:
#!/bin/bash

for i in `/home/pi/dropbox/dropbox_uploader.sh list | grep -i jpg | tr -s ' ' | cut -d ' ' -f 4`
do
/home/pi/dropbox/dropbox_uploader.sh -s download $i /home/pi/Pictures
done
pqiv -f /home/pi/Pictures/ -s -i -t -d 30

Die Darstellung der Bilder erfolgt über das Programm pqiv.

Flattr this!

[Exchange2013] Ad Gruppe bei Postfachstellvertretung

In den Exchange Versionen vor 2013 war es möglich, eine Ad Gruppe für den Vollzugriff auf ein Postfach zu berechtigen. Ab der Version 2013 kann eine Ad Gruppe weiterhin hinterlegt werden, jedoch ist dies nur über die Powershell möglich.

Add-mailboxPermission -Identity "Postfach" -User AD-Guppe -AccessRights FullAccess

Add-ADPermission -Identity "Postfach" -User AD-Gruppe -ExtendedRighs "Send As"

Flattr this!

[dashing] Fehler beim auslesen einer Excel Datei

Beim auslesen von xlsx Dateien mit Hilfe von roo kam es zu keinen Problem, wenn die rb Datei direkt über die Kommandozeile ausgeführt wurde. Wurde die Datei jedoch innerhalb des Jobs Ordners abgelegt und über dashing ausgeführt, kam es zu folgendem Fehler:

.gem/ruby/gems/backports-3.6.6/lib/backports/std_lib.rb:9:in `require': cannot load such file -- roo (LoadError)
from /home/dashing/.gem/ruby/gems/backports-3.6.6/lib/backports/std_lib.rb:9:in `require_with_backports'
from /home/dashing/sweet_dashboard_project/jobs/todo.rb:1:in `'
from /home/dashing/.gem/ruby/gems/backports-3.6.6/lib/backports/std_lib.rb:9:in `require'
from /home/dashing/.gem/ruby/gems/backports-3.6.6/lib/backports/std_lib.rb:9:in `require_with_backports'
from /home/dashing/.gem/ruby/gems/dashing-1.3.4/lib/dashing/app.rb:157:in `block in require_glob'
from /home/dashing/.gem/ruby/gems/dashing-1.3.4/lib/dashing/app.rb:156:in `each'
from /home/dashing/.gem/ruby/gems/dashing-1.3.4/lib/dashing/app.rb:156:in `require_glob'
from /home/dashing/.gem/ruby/gems/dashing-1.3.4/lib/dashing/app.rb:167:in `'
from /home/dashing/.gem/ruby/gems/dashing-1.3.4/lib/dashing.rb:3:in `require'
from /home/dashing/.gem/ruby/gems/dashing-1.3.4/lib/dashing.rb:3:in `'

Das Problem trat nicht mehr auf, nachdem im Gemfile gem 'roo', '~> 2.3.2' hinterlegt wurde.

Flattr this!

[dashing] Rss Widget

Ein Dashboard könnte auch in einem Empfangsbereich einer Firma genutzt werden. Neben aktuellen Informationen wie eventuell Zahlen der Firma können andere Informationesquellen wie Wetter oder Nachrichten eingebunden werden.
In diesem Fall habe ich ein kleines rss Widget erstellt, welches den Heise rss Feeds inklusive dem Artikelbild ausgibt.

rss.coffee
class Dashing.Rss extends Dashing.Widget

# constructor: ->
# super
onData: (data) ->
node = $(@node)
node.addClass("blinking")
setTimeout ( =>
node.removeClass("blinking")
), 5000

rss.html
<h1 class="title" data-bind="title"></h1>

<div  data-bind="titel" class="titel"></div>
<div class="bild">
<img  data-bind-src="bild" align="left">
</div>
<div class="beschreibung">
<span   data-bind="beschreibung | raw"></span>
</div>
<div style="clear:both"></div>
<p class="more-info" data-bind="moreinfo"></p>
<p class="updated-at" data-bind="updatedAtMessage"></p>

rss.scss
.widget-rss {
background-color: $background-color;
}
.more-info {
color: $moreinfo-color;
}
.updated-at {
color: rgba(255, 255, 255, 0.7);
}
li {
font-size: 15px;
margin-top: 8px;
text-indent: 10px;
font-weight: normal;
}
.title {
color: $title-color;
}
.beschreibung {
font-size:25px;
width:450px;
float:left;
text-align:left;
}
.bild {
float:left;
width:270px;
}
&.blinking {
animation: blink 1s linear infinite;
animation-iteration-count: 1;
}
}


job

require 'nokogiri'
require 'open-uri'
require 'xpath'
require 'split'
require 'sub'

SCHEDULER.every '10m', :first_in => 0 do |job|

@doc = Nokogiri::HTML(open("http://www.heise.de/newsticker/heise-atom.xml"))

beschreibung = @doc.xpath('//entry//summary')
titel = @doc.xpath('//entry//title')
bild = @doc.xpath('//entry//img')
bild = @doc.xpath('//entry//img')
zaehler = 1
while zaehler < titel.length
#puts titel[zaehler]
bil = bild[zaehler].to_s.sub("<img src=\"", "").split('"')[0]
tit = titel[zaehler].to_s.sub("<title type=\"text\">", "").to_s.sub("</title>", "")
besch =  beschreibung[zaehler].to_s.sub("<summary type=\"html\">", "").to_s.sub("</summary>", "")
send_event("heise",{ titel: tit , beschreibung: besch, bild: bil })
sleep 30
zaehler += 1
end
end

Flattr this!

[openhab] mail bei Bewegung

Neben dem Licht einschalten bei Bewegungserkennung kann mit entsprechender Regel auch eine E-Mail versendet werden.

Zunächst muss das Modul org.openhab.action.mail-*.jar in dem addons Verzeichnis abgelegt und openhab neu gestartet werden.
Zusätzlich müssen in der openhab.cfg der smtp Server und die entsprechenden Zugangsdaten hinterlegt werden.

Damit die Benachrichtigung deaktiviert werden können, wurde folgender Schalter in einer items Datei angelegt.
Switch BewegungInfoAbwesenheit "Bewegung Info Abwesenheit" (maschine) {OFF,ON}

Die Regel aus dem Artikel zur Bewegungserkennung wurde um folgende Zeilen erweitert:

if(BewegungInfoAbwesenheit.state == ON && Presence.state == OFF){
sendMail("E-Mail Adresse", "Betreff", "Nachricht")
}

Flattr this!