Fhem über UMTS updaten

Wegen den längeren Latenzzeiten von UMTS im Vergleich zu DSL scheitert ein Fhem Update über UMTS/3G typischerweise mit der Fehlermeldung:
Can't get controlfile from http://fhem.de/fhemupdate4/svn/controls_fhem.txt

Ein Erhöhung des Timeouts in den HttpUtils brachte bei mir leider keine Abhilfe. Alternativ dazu kann das Fhem per SVN upgedatet werden. Dazu falls nötig zuerst Subversion installieren, Fhem per shutdown herunterfahren und den aktuellen trunk auschecken:

Ein Update kann nun in Zukunft ganz einfach per SVN durchgeführt werden:

dblog auf Fhem einrichten

Mit der Zeit sammeln sich selbst in kleinen und mittleren Fhem Installationen viele Messwerte in den verschiedenen Logdateien. Dies ist nicht unübersichtlich sondern erschwert auch die nachträgliche Auswertung. Daher bietet es sich an, diese Messwerte gleich in einer Datenbank zu speichern. Dazu gibt es das Modul dblog dessen Einrichtung hier kurz skizziert werden soll.

Update fhem und falls erwünscht das charting frontend:
update
update thirdparty http://svn.code.sf.net/p/fhem/code/trunk/fhem/www/frontend frontend

Installiere sqlite und Perl plugins:

Alternativ könnten auch MySQL oder PostgreSQL verwendet werden, dazu müssten dann natürlich die entsprechenden Perl Module installiert werden.

und fügen Sie folgende Tabellen hinzu:

CREATE TABLE history (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(512), READING varchar(32), VALUE varchar(32), UNIT varchar(32));

CREATE TABLE current (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(512), READING varchar(32), VALUE varchar(32), UNIT varchar(32));

CREATE TABLE frontend (ID INTEGER PRIMARY KEY, TIMESTAMP TIMESTAMP DEFAULT CURRENT_TIMESTAMP, TYPE TEXT, NAME TEXT, VALUE TEXT);

mit .tables können Sie überprüfen ob die drei Tabellen (current, history, frontend) korrekt angelegt wurden, mit .exit können sie die Datenbankshell wieder schließen.

Stellen Sie sicher dass Fhem Schreibzugriff auf die Datenbank hat:

Editieren Sie die db.conf:

und fügen Sie folgendes hinzu:

%dbconfig= (
connection => "SQLite:dbname=/opt/fhem/fhem.db",
user => "",
password => ""
);

CUL auf Radxa Rock

Zuerst das passende cdc-acm kernel modul herunterladen z.B. hier für Kernel 3.0.36. Oder selber kompilieren.

Wenn es funktioniert kann man das Modul dauerhaft installieren:

und cdc-acm eintragen

nach einem Neustart sollte:

auftauchen
/dev/ttyACM0

Den entsprechenden Nutzern sollten Zugriffsrechte eingeräumt werden:

Danach können Sie den CUL z.B. in Fhem verwenden:
define CUL_0 CUL /dev/ttyACM0@38400 9999
attr CUL_0 group System
attr CUL_0 rfmode HomeMatic
attr CUL_0 room hidden

in den Pairing Modus versetzen:
set CUL_0 hmPairForSec 600

Falls autocreate aktiv ist können die anderen Homematic Geräte nun ebenfalls in den Pairing Modus versetzt werden und sollten dann automatisch von fhem angelegt werden.

Fhem auf Radxa Rock installieren

Der Fhem Server ist nun zum Beispiel erreichbar unter:
http://radxa:8083/fhem

Gleich mal ein:

und schon ist man auf dem neuesten Stand und kann die Geschwindigkeit des Rock voll auskosten.

Jetzt noch ein altes Backup importieren:

Klingelerkennung mit FHEM und 1-wire

Die Vorteile einer solchen Schaltung sind z.B.:

  • man kann sich per PushOver informieren lassen wenn es klingelt, auch wenn man auf dem Balkon sitzt und sonst die Klingel nicht hören würde
  • man weiß ob der Paketzusteller wirklich versucht hat das Paket zuzustellen!?
  • mann kann zu bestimmten Zeiten die Klingel einfach vollkommen deaktivieren, z.B. in der Nacht, wenn das Oktoberfest tobt 🙂

Hier ein Schaltplan zur Klingelsignalerkennung an einer 8V Wechselstromklingel mit 1-Wire:

Klingelerkennung Schaltplan

In Fhem eingebunden schaut das ganze dann so aus:

Per PushOver kann man sich dann bequem über Klingelevents informieren lassen:

Control LG Tv with FHEM

If you want to integrate your LG TV in the FHEM home automation solution, my 82_LGTV2011.pm and 82_LGTV2012.pm modules can help. Here a short tutorial on how to get it working:

First you have to find out which API your LG TV uses. In principle there are three different APIs (1.0/2.0/3.0) corresponding to the 2011, 2012 and 2013 series. The former should use the LGTV_2011 module whereas the latter should use the LGTV_2012 module. If you are not sure which series you have, you can also try the two LG Remote apps and see which one works (2011 / 2012).

Make sure these perl modules are installed:

LWP::UserAgent
HTTP::Request::Common
XML::SIMPLE

If you are on a linux box:

If you are on another machine with full perl:

Before you install XML::Simple, you must have an XML parser module like XML::Parser or XML::SAX installed. The easiest way then is to install with the CPAN shell:

If you are on an embedded system like the Fritzbox, you probably don’t have CPAN, so you have to download the modules by hand and put them in your perl installation.

Now you can define the TV in fhem for 2011 series :

and for 2012 series and up:

To power on, you can use a cec-client and define a poweroncmd:

And finally an example by Franz Tenbrock how to build a soft remote with the remotecontrol module:

remotecontrol

Furthermore the fhem discussion board members Kuzl & Franz developed an electronic program guide for fhem which can be integrated as follows:

Add the following definitions to your fhem.cfg

Download the channel icons from here and put them into /opt/fhem/www/images/default and do a shutdown restart.

Switching to channels in the EPG currently only works for the lgtv2011 module.
In 99_myUtils.pm add the function:

Make sure channelMap is adjusted to your sender positions.

Now you should be able to see the current and upcoming programs and switch to them by simply clicking on them.

EPG

Fhem notifications with Pushover

Here a short HowTo for sending Fhem notifications to iOS or Android devices via Pushover.

First install the Pushover App from the Appstore and register inside the app.

Download and unpack the perl modules LWP::Protocol::https and Mozilla::CA.

Transfer them to /var/InternerSpeicher/fhem/lib/perl5/site_perl/5.12.2 via NAS etc.
The final folder structure should look like this:

In your fhem.cfg add:

Now you can push messages to your iDevices like this:

Fhem over SSL

Generate the needed certificates on osx/linux
[sourcecode] openssl req -new -x509 -nodes -out server-cert.pem -days 3650 -keyout server-key.pem[/sourcecode]
Copy to fhem/certs using the NAS webinterface

To open the port from outside, connect to the fritzbox via telnet or ssh and
[sourcecode]
nvi /var/flash/ar7.cfg
[/sourcecode]
press i to enter insert mode, change line 235 as follows:
[sourcecode]
internet_forwardrules = "tcp 0.0.0.0:443 0.0.0.0:443 0",
"tcp 0.0.0.0:8083 0.0.0.0:8083 0";
[/sourcecode]
Save by pressing ESC :wq
and [sourcecode]reboot[/sourcecode] to reboot the fritzbox.

Now your fhem instance should be available from outside at:
https://xxx.myfritz.net:8083/fhem