Archiv der Kategorie: Anleitungen

Anleitungen bzw. Beschreibungen zum beheben von Problemen oder zum Umsetzen von bestimmten Projekten.

Babybay an (Softside-) Wasserbett befestigen

Ich stand die Tage vor der Aufgabenstellung ein Babybay an ein vorhandenes Softside Wasserbett montieren zu müssen. Der Hersteller sieht grundsätzlich nur eine Montage an einem regulären Bettrahmen durch einhängen eines L-Winkels vor. Bei der Suche nach einer geeigneten Lösung im Internet bin ich dabei über diverse z. T. recht komplexe Lösungen gestolpert die für mich alle samt nicht in Frage kommen. Ich habe mich daher selbst in den Denkteich begeben und bin mit folgender recht einfachen Lösung nun sehr zufrieden.

Benötigtes Material:

  • Montagekleber
  • Dachlatte ca. 1,5 m bis 2 m (maximal jedoch Länge des Wasserbetts)

Montageschritte:montage_babybay_thumb-7948507

1. Eine Seite der Dachlatte mit Montagekleber bestreichen (nicht sparen und bei schnell trocknendem Kleber nicht zu langsam arbeiten!)

2. Die Dachlatte an der Unterkante der Auflagefläche der Wassermatratze befestigen (möglichst bündig mit der Außenkante da die L-Winkel des Babybay nicht sehr lang sind).

3. Entweder die Dachlatte entsprechend der Beschreibung des Klebers für eine gewisse Zeit fest andrücken (dafür sollte man zu zweit sein) oder das ganze durch eine kleine Unterkonstruktion fixieren. Abhängig vom Kleber dauert dieser Vorgang zwischen ein paar Minuten bis zu ein paar Stunden. Hier lohnt sich also das lesen der Beschreibung vor dem Kauf.

babybay_an_wasserbett_02_thumb-12524204. Sobald der Kleber ausgehärtet ist kann die Unterkonstruktion entfernt werden und die eigentliche Montage beginnen. Hierzu schiebt man das Babybay an die zukünftige Position und montiert die L Winke – um diese mit unserer  Konstruktion verbinden zu können muss das kurze Ende des L-Winkels nach oben zeigen und damit hinter die frisch montierte Dachlatte greifen (siehe Abbildung). Damit sollte das Bett fest mit dem Wasserbett verbunden sein.

Die Konstruktion ist zwar mit Sicherheit nicht perfekt (sonst hätte Sie der Hersteller bestimmt aufgeführt) aber bis jetzt hatte ich damit keine Probleme. Die Konstruktion verhindert bei uns bis jetzt auch zuverlässig das weg Rutschen oder Umkippen und ist auf jeden Fall besser als ein frei stehendes BabyBay.

FHEM Absichern

Nach der Installation von FHEM erhält man auf dessen Standardwebseite ([IP]:8083/fhem) eine Meldung der Sicherheitsprüfung die vermutlich so oder so ähnlich aussieht:

SecurityCheck:
WEB,WEBphone,WEBtablet has no basicAuth attribute.
telnetPort has no password/globalpassword attribute.
Restart FHEM for a new check if the problem is fixed,
or set the global attribute motd to none to supress this message.

 

Die hier aufgezeigten Probleme lassen sich recht einfach fixen.

Passwortschutz Einrichten

Um einen Passwortschutz einzurichten öffnen wir zuerst eine SSH Verbindung zu unserem FHEM Server und öffnen zudem in einem Browserfenster die fhem.cfg Konfigurationsdatei:

snaghtml590371c1_thumb-6262909

Die SSH Verbindung benötigen wir nun um unsere Benutzername / Passwortkombination mit base64 maskieren zu können.

Wichtig: base64 ist keine Verschlüsselung. Wenn ihr also wie ich Ausschnitte aus eurer Konfiguration veröffentlicht, dann solltet ihr diese Werte auf jeden Fall raus nehmen (oder dummy Werte verwenden).

Wir maskieren nun also zuerst unsere Benutzername / Passwortkombination. In meinem Beispiel verwende ich den Benutzernamen “Dummy” und das Passwort “Geheim123” und gebe folgende Befehlsfolge in der SSH Konsole ein:

echo -n Dummy:Geheim123|base64

Der Rückgabewert ist der base64 Wert zu Dummy:Geheim123.

RHVtbXk6R2VoZWltMTIz

image_thumb1-2957693

Diesen Rückgabewert benötigen wir nun in unserem Browserfenster. Hier fügen wir die nachfolgenden Linien ein (ggf. habt ihr bereits alles ausser den Teil mit basicAuth):

define WEB FHEMWEB 8083 global
attr WEB basicAuth RHVtbXk6R2VoZWltMTIz
define WEBphone FHEMWEB 8084 global
attr WEBphone basicAuth RHVtbXk6R2VoZWltMTIz
attr WEBphone stylesheetPrefix smallscreen
define WEBtablet FHEMWEB 8085 global
attr WEBtablet basicAuth RHVtbXk6R2VoZWltMTIz
attr WEBtablet stylesheetPrefix touchpad

und speichern diese Konfiguration mit Save fhem.cfg. Um die Konfiguration wirksam werden zu lassen müssen wir in der Kommandozeile (ganz oben auf der Seite) den FHEM Server noch mit folgendem Befehl neu starten:

shutdown restart

Der Server sollte nun neu starten und danach einen Benutzername und ein Passwort für die Anmeldung am Webfrontend verlangen. Nach der Erfolgreichen Anmeldung sollte sich die Fehlermeldung verändert haben – das einzige verbleibende Problem sollte jetzt nur noch telnet sein.

Telnet

Ich bin kein großer Freund von Telnet und habe bei FHEM auch noch keinen Grund gefunden, warum ich es diesem Server erlauben sollte in meinem Netzwerk einen Telnet Server anzubieten. Daher schlage ich vor diesen Service zu deaktivieren. Dies erreicht man durch einfaches auskommentieren (oder löschen) der entsprechenden Zeile aus der fhem.cfg:

image_thumb2-6307360

Update

Auch FHEM benötigt in regelmäßigen Abständen Updates. Bevor man diese durchführt empfehle ich in der fhem.cfg noch ein globales Attribut einzufügen welches FHEM anweist vor jedem Update ein Backup durchzuführen:

attr global backup_before_update 1

Das Update selbst führt man danach über die Befehlszeile mit folgenden Kommandos durch:

Anzeigen ob Updates vorhanden sind:

update check

Die Ausgabe wird danach so oder so ähnlich aussehen und die derzeit anstehenden Änderungen (auf Datei Ebene) ausgeben.

image_thumb3-7754826

Das eigentliche Update startet man danach mit dem Befehl:

update

Die Ausgabe sieht hier in etwas so aus:

image_thumb4-5861778

Draytek Router mit Domaincheap DynDNS verbinden

Die meisten kostenfreien DynDNS (DDNS) Anbieter haben in der Vergangenheit ihr Angebot um kostenpflichtige Angebote erweitert und sind daher recht aktiv dabei die bestehende Kundenbasis so lange zu ärgern, bis diese auf eines der Angebote eingehen oder weglaufen. Ich habe mich zuerst für Option A entschieden und habe für den Service den ich haben wollte auch bezahlt. Leider hörten die ganzen Werbemails etc. nicht wirklich auf – also habe ich mich nun für Option B entschieden und mich auf die Suche nach einem günstigen Anbieter gemacht, der mir einen DDNS Dienst für eine eigene Domain anbietet. Nach etwas suchen bin ich durch einen Tipp eines Freundes auf den Hostingprovider Domaincheap.com aufmerksam geworden. Hier kann man nicht nur kostengünstig Domains hosten sondern auch bereits im Basispaket einen DDNS Dienst mit seiner Domain aktivieren! Das einzige verbleibende Problem war danach die Aktualisierung des A-Records mit Hilfe meines Internet Routers. Um hier einen Anbieter einzubinden der nicht zu den großen gehört muss man folgende Einstellungen wählen:

image

Service Provider: Customized

Provider Host: dynamicdns.park-your-domain.com

Service API: /update?host=@&domain=[Eigene Domain]&password=[Passwort]&ip=###IP###

HomeMatic Funk-Thermostat mit FHEM steuern

In den vorangegangenen zwei Artikeln haben wir zum einen die Basis Infrastruktur für die Heimsteuerung mit FHEM und zum anderen die Steuerung einer Funksteckdose betrachtet. In diesem Artikel werden wir nun auch die Heizkörper in diese Steuerung aufnehmen und damit die Basis für ein gutes Hausklima legen, die auch noch den Geldbeutel schont. Mit etwas Erfahrung kann man diese Steuerung auch erweitern um z. B. die Anwesenheit von Personen in den Wohnräumen festzustellen und entsprechend die Heizleistung anpassen.

Anlernen der Thermostate an FHEM

In meinem Beispiel werde ich einen HomeMatic 105155 Funk-Stellantrieb (HM-CC-RT-DN) verwenden. Diesen sollte man nun auspacken und die Batterien einsetzen. Bitte das Gerät noch nicht montieren – es sei denn Sie stehen darauf durch die Wohnung zu sprinten… Nun setzen wir erst FHEM in den Anlernmodus indem wir folgenden Befehl in die Kommandozeile eingeben:

set HMLAN01 hmPairForSec 60

Wir haben nun 60 Sekunden Zeit die Boost-Taste unseres Funk-Stellantriebs für ca. 3 – 5 Sekunden zu drücken. Auf dem Display sollte nun ein Count Down angezeigt werden, der von 30 abwärts zählt. Erfahrungsgemäß läuft dieser nur wenige Sekunden bis er sich mit unserem HMLan bzw. FHEM verbunden hat. Dies können Sie mit einem Klick auf CUL_HM prüfen. Hier sollte nun ein Thermostat auftauchen. Den Namen dieses Gerätes (startet mit CUL_HM) können Sie schon mal in die zwischenablage kopieren.

image_thumb14-8028791

Hat dies funktioniert, so ist jetzt ein guter Zeitpunkt links oben auf Save config zu klicken (das sollte man sich angewöhnen – es nicht zu machen führt z. T. zu längerem Fehlersuchen…).

[adrotate group=“2″]

Umbenennen der Channels

Unser Gerät hat derzeit noch einen recht kryptischen Namen mit dem man nur eingeschränkt etwas anfangen kann. Ich habe mir daher angewöhnt die relevanten Namen direkt umzubenennen. Durch einen Klick auf den Namen des Gerätes (in meinem Beispiel oben CUL_HM_HM_CC_RT_DN_2E866E) kommt man in die Detailansicht der man auch die derzeit vorhandenen Channels entnehmen kann. Durch Eingabe folgender zwei Befehle in die Kommandozeile werden die Einträge mit vernünftigen Namen versehen (beide Befehle müssen nacheinander eingegeben werden und müssen jeweils mit Enter bestätigt werden):

rename CUL_HM_HM_CC_RT_DN_2E866E LR_Heizung
rename CUL_HM_HM_CC_RT_DN_2E866E_Clima LR_Heizung_Clima

Nach Ausführung der Befehle sollte die Übersicht so aussehen (Save config nicht vergessen ;-)):

image_thumb15-5095582

Zuordnen zu einem (neuen) Raum

Möchte man den Heizkörper einem bestimmten Raum zuordnen (dieser wird auch im Menü auf der Linken Seite angezeigt), so sind folgende Schritte notwendig: Edit filesfhem.cfg in der Datei sucht man den Bereich indem in unserem Beispiel die LR_Heizung_Clima aufgelistet ist und fügt als Attribut einen Raum hinzu:

attr LR_Heizung_Clima room LivingRoom

image_thumb16-6249900

Der Raum wird automatisch erstellt, wenn er noch nicht vorhanden ist. Man muss diesen also nicht zuerst anlegen.

Zeitgesteuerte Temperatursteuerung

Durch einen Klick auf den Raum hat man nun über eine DropBox bereits die Möglichkeit die Temperatur in dem Raum zu steuern. Gleichzeitig kann man natürlich das Gerät weiterhin von Hand steuern bzw. parametrisieren. Da wir eine FHEM Installation besitzen und das Thermostat auch schon verbunden haben, wählen wir natürlich den komfortablen und auch flexibleren Weg. Hierzu müssen wir zuerst eine neue Konfigurationsdatei anlegen. Klicken Sie dafür bitte auf Edit files und wählen Sie 99_Utils.pm aus. Löschen Sie alles aus der Datei bis auf:

package main;

use strict;
use warnings;
use POSIX;

sub
myUtils_Initialize($$)
{
  my ($hash) = @_;
}

Ändern Sie nun den Namen der Datei in 99_myUtils.pm und klicken Sie auf Save as.

image_thumb17-8890772

Damit haben wir das Grundgerüst geschaffen. Nun müssen wir die Heizung noch so einstellen, dass Sie zu den gewünschten Zeiten an geht und den Raum auf die vorgesehene Temperatur bring. Dies erfolgt mit einer Zeile wie dieser (nur exemplarisch):

{ fhem ("set TEST_Heizung_Clima tempListMon prep 06:30 0.0 08:00 22.5 24:00 0.0")};

Hier würde nun für Montags von 00:00 bis 06:30 eine Temperatur von 0 (also off) angestrebt und von 06:30 bis 08:00 eine Temperatur von 22.5 C und danach wieder 0 (also off). Die angegebenen Temperaturen hinter einer Uhrzeit geben also an bis wann diese Temperatur eingestellt sein soll  nicht ab wann! Es ist zudem wichtig, dass jede Zeile mit 24:00 endet!

In meinem Beispiel habe ich mich für folgende Konfiguration entschieden:

# LR_Heizung Temperatur setzen
sub
SetTempList_LR_Heizung()
{
{ fhem ("set LR_Heizung_Clima tempListMon prep 17:00 0.0 18:00 21.0 19:00 22.0 23:00 22.5 24:00 0.0")};
{ fhem ("set LR_Heizung_Clima tempListTue prep 17:00 0.0 18:00 21.0 19:00 22.0 23:00 22.5 24:00 0.0")};
{ fhem ("set LR_Heizung_Clima tempListWed prep 17:00 0.0 18:00 21.0 19:00 22.0 23:00 22.5 24:00 0.0")};
{ fhem ("set LR_Heizung_Clima tempListThu prep 17:00 0.0 18:00 21.0 19:00 22.0 23:00 22.5 24:00 0.0")};
{ fhem ("set LR_Heizung_Clima tempListFri prep 17:00 0.0 18:00 21.0 19:00 22.0 23:00 22.5 24:00 0.0")};
{ fhem ("set LR_Heizung_Clima tempListSat prep 10:00 0.0 12:00 22.0 23:00 22.0 24:00 0.0")};
{ fhem ("set LR_Heizung_Clima tempListSun exec 10:00 0.0 12:00 22.0 23:00 22.0 24:00 0.0")};
}
1;

Die eins am Ende muss man bei weiteren vorhandenen Profilen entsprechend hoch zählen. Man aktiviert dieses Profil durch Eingabe des nachfolgenden Befehls in der Kommandozeile (der Name ist aus dem Funktionsnamen oben abgeleitet!):

{SetTempList_LR_Heizung()}

Die Konfiguration wird bei Thermostaten nicht umgehend übertragen – es kann zwei drei Minuten dauern bis diese auf dem Gerät ankommt und wirkt.

Ich habe mir aktuell vier Profile für meine zwei Test-Thermostate gebaut. Jeweils ein Profil ist für den Normalbetrieb und das zweite für den Sommer- bzw. Urlaubsbetrieb:

# LR_Heizung Temperatur setzen
sub
SetTempList_LR_Heizung()
{
{ fhem ("set LR_Heizung_Clima tempListMon prep 17:00 0.0 18:00 21.0 19:00 22.0 23:00 22.5 24:00 0.0")};
{ fhem ("set LR_Heizung_Clima tempListTue prep 17:00 0.0 18:00 21.0 19:00 22.0 23:00 22.5 24:00 0.0")};
{ fhem ("set LR_Heizung_Clima tempListWed prep 17:00 0.0 18:00 21.0 19:00 22.0 23:00 22.5 24:00 0.0")};
{ fhem ("set LR_Heizung_Clima tempListThu prep 17:00 0.0 18:00 21.0 19:00 22.0 23:00 22.5 24:00 0.0")};
{ fhem ("set LR_Heizung_Clima tempListFri prep 17:00 0.0 18:00 21.0 19:00 22.0 23:00 22.5 24:00 0.0")};
{ fhem ("set LR_Heizung_Clima tempListSat prep 10:00 0.0 12:00 22.0 23:00 22.0 24:00 0.0")};
{ fhem ("set LR_Heizung_Clima tempListSun exec 10:00 0.0 12:00 22.0 23:00 22.0 24:00 0.0")};
}
1;

# BR_Heizung Temperatur setzen
sub
SetTempList_BR_Heizung()
{
{ fhem ("set BR_Heizung_Clima tempListMon prep 06:30 0.0 08:00 22.5 24:00 0.0")};
{ fhem ("set BR_Heizung_Clima tempListTue prep 06:30 0.0 08:00 22.5 24:00 0.0")};
{ fhem ("set BR_Heizung_Clima tempListWed prep 06:30 0.0 08:00 22.5 24:00 0.0")};
{ fhem ("set BR_Heizung_Clima tempListThu prep 06:30 0.0 08:00 22.5 24:00 0.0")};
{ fhem ("set BR_Heizung_Clima tempListFri prep 06:30 0.0 08:00 22.5 24:00 0.0")};
{ fhem ("set BR_Heizung_Clima tempListSat prep 24:00 0.0")};
{ fhem ("set BR_Heizung_Clima tempListSun exec 24:00 0.0")};
}
2;

# LR_Heizung aus schalten
sub
SetTempList_LR_Heizung_off()
{
{ fhem ("set LR_Heizung_Clima tempListMon prep 24:00 0.0")};
{ fhem ("set LR_Heizung_Clima tempListTue prep 24:00 0.0")};
{ fhem ("set LR_Heizung_Clima tempListWed prep 24:00 0.0")};
{ fhem ("set LR_Heizung_Clima tempListThu prep 24:00 0.0")};
{ fhem ("set LR_Heizung_Clima tempListFri prep 24:00 0.0")};
{ fhem ("set LR_Heizung_Clima tempListSat prep 24:00 0.0")};
{ fhem ("set LR_Heizung_Clima tempListSun exec 24:00 0.0")};
}
3;

# BR_Heizung aus schalten
sub
SetTempList_BR_Heizung_off()
{
{ fhem ("set BR_Heizung_Clima tempListMon prep 24:00 0.0")};
{ fhem ("set BR_Heizung_Clima tempListTue prep 24:00 0.0")};
{ fhem ("set BR_Heizung_Clima tempListWed prep 24:00 0.0")};
{ fhem ("set BR_Heizung_Clima tempListThu prep 24:00 0.0")};
{ fhem ("set BR_Heizung_Clima tempListFri prep 24:00 0.0")};
{ fhem ("set BR_Heizung_Clima tempListSat prep 24:00 0.0")};
{ fhem ("set BR_Heizung_Clima tempListSun exec 24:00 0.0")};
}
4;

HomeMatic Funk-Steckdose einbinden, den Stromverbrauch messen und an bestimmten Zeiten schalten (Zeitschaltuhr)

Nachdem wir im letzten HowTo den HMLan Adapter an unser Fhem angebunden haben, geht es nun darum die erste schaltbare Funk-Steckdose in Betrieb zu nehmen und automatisch zu schalten. Hierzu sind einige wenige Schritte notwendig und ein paar kleine Fallstricke zu umgehen. Ich werde einen HomeMatic Funk-Schaltaktor mit Leistungsmessung einbinden und für meine Weihnachtsbeleuchtung eine Zeitschaltung aktivieren.

Zuerst müssen wir unser FHEM bzw. HMLan Adapter in den Anlernmodus versetzen. Dies erreichen wir am einfachsten indem wir in der Befehlszeile in FHEM (Textbox ganz oben am Bildschirm) folgende Zeichenfolge eingeben:

set HMLAN01 PairForSec 60

Diese gibt uns für 60 Sekunden die Möglichkeit Geräte einzubinden (zu paaren). Hierzu müssen wir innerhalb dieser Zeit an unserer Funk-Steckdose noch für 3 – 5 Sekunden den großen grauen Button drücken. Nun sollte nach einem Klick auf den Menüpunkt CUL_HM folgendes Bild zu sehen sein:

image_thumb11-8676254

Ist dies der Fall, dann bitte ein Mal im Menü auf der linken Seite auf Save config klicken. Wenn wir nun auf den Punkt unter powerMeter klicken müsste in etwa folgendes zu sehen sein:

image_thumb12-9620737

Ich habe dem channel_01 bereits einen schönen Namen gegeben. Dies richten wir nun ebenfalls für den channel_02 ein (dieser ist für die Verbrauchsmessung zuständig). Geben Sie hierzu bitte folgendes in die Befehlszeile (ganz oben auf der Seite) ein und bestätigen Sie die Eingabe nach jeder Zeile indem Sie die Taste Enter betätigen:

rename CUL_HM_HM_ES_PMSw1_Pl_2C8749_Sw LR_Aussenbeleuchtung
rename CUL_HM_HM_ES_PMSw1_Pl_2C8749_Pwr LR_Aussenbeleuchtung_Verbrauch
define D_Aussenbeleuchtung_Verbrauch dummy
define D_Aussenbeleuchtung_Verbrauch_SET notify LR_Aussenbeleuchtung_Verbrauch {my $var= ReadingsVal("LR_Aussenbeleuchtung_Verbrauch","power",0);; fhem("set D_Aussenbeleuchtung_Verbrauch $var");;}

Wenn Sie nun auf den Menüpunkt Unsorted klicken sollte dieser so aussehen und Ihnen damit das ein und aus schalten der Steckdose sowie das ablesen der Verbrauchswerte ermöglichen. Ist dies der Fall, dann bitte erneut auf Save config klicken.

image_thumb13-6574340

Um eine Zeitschaltung zu aktivieren gehen wir nun auf den Menüpunkt Edit files und klicken dort auf fhem.cfg. Basierend auf den oben vergebenen Namen geben wir am Ende der Datei folgendes ein und bestätigen dies anschließend mit einem Klick auf Save fhem.cfg

# Zeitschaltuhr Aussenbeleuchtung
define LR_Aussenbeleuchtung_an at *{sunset(-900,"16:00","21:30")} set LR_Aussenbeleuchtung on
define LR_Aussenbeleuchtung_aus at *23:59:59 set LR_Aussenbeleuchtung off

Mit diesen Zeilen wird die Aussenbeleuchtung nun zum Sonnenuntergang eingeschaltet und um 23:59 Uhr wieder aus geschaltet.

[adrotate group=“2″]