Misterhouse
Ich starte auf einem frisch installierten Debian.
Installation
Ein paar kleine Anpassungen des Systems:
<pre class="lang:default decode:true ">cd /usr/local/lib ln -s /usr/lib/perl .</pre>
Misterhouse von Sourceforge downloaden und installieren:
cd /usr/share/
mkdir misterhouse
cd misterhouse
wget http://prdownloads.sourceforge.net/misterhouse/misterhouse-2.105.tar.gz tar xvzf misterhouse-2.105.tar.gz mv mh mh-2.105 ln -s mh-2.105 mh mkdir code mkdir code/private cd mh/bin chmod +x configure ./configure cd /usr/share/misterhouse cp mh/bin/mh.ini mh.private.ini export mh_parms=/usr/share/misterhouse/mh.private.ini
Die mh.private.ini anpassen:
code_dir=/usr/share/misterhouse/code/private
eib_device=ip:192.168.0.202
Denkt daran die IP entprechend anzupassen. Sie zeigt auf den Rechner auf dem der EIBD läuft.
Eure Gruppenadressen entsprechend einrichten. Dazu erstellt ihr eine Datei eib_items.mht in eurem code Verzeichnis (in diesem Beispiel /usr/share/misterhouse/code/private) mit folgendem Inhalt:
Format = A
EIB1, 1/1/5, Arbeiten, Lights, R
Dann Misterhouse starten mit
# /usr/share/misterhouse/mh/bin/mh [ret]
Einen Browser starten und die Misterhouse Visu anzeigen. Hier im Beispiel war das http://10.211.55.9:8080.
Fertig! Und das geht in weniger als 5min.
Logik
Erste Schritte
Sorry, es macht z.Z. mehr Spass mit MH zu spielen, als hier die Installation zu dokumentieren. Ich poste mal ein paar erste Logiken.
# Auf Anwesend schalten, wenn Haustuere geoeffnet wird. # Aber nur, wenn Wechsel von An- auf Abwesend laenger her als 20min. # Man vergisst ja schon mal was und kommt noch mal rein. if (state $FK_Haustuere eq OFF and time_idle $Anwesend ("20 m off")) { set $Anwesend ON; print_log "Welcome at home. Home sweet home."; } # Garderobe geht an, wenn Haustuere geoffnet und Dunkel if (state_changed $FK_Haustuere eq OFF) { if (time_greater_than("$Time_Sunset - 01:30") or time_less_than("$Time_Sunrise")) { set $Garderobe ON; } } # Garderobe geht nach 60 sec aus, wenn Haustuere geschlossen wird, Dunkel und Abwesend if (state_changed $FK_Haustuere eq ON and state $Anwesend eq OFF) { if (time_greater_than("$Time_Sunset - 01:30") or time_less_than("$Time_Sunrise")) { set_with_timer $Garderobe OFF, 60; } } # Garderobenlicht einmal blinken lassen, wenn im Haus noch # Fenster offen sind beim Wechsel von Anwesend auf Abwesend. my %FKstates; %FKstates = ( "on" => 0, #"zu", "off" => 1 #"offen" ); sub numberoffopenwindows { my $now = 0; # NumOpenWindows $now = 0; $now += $FKstates{state $FK_Wohnen_oben}; $now += $FKstates{state $FK_Essen_oben}; ... $now += $FKstates{state $FK_Kind1_oben}; $now += $FKstates{state $FK_Kind2_oben}; return $now; } if (state_changed $Anwesend eq OFF){ my $now = numberoffopenwindows(); set $Garderobe OFF if $now>0; set $Garderobe 'on~1~off' if $now>0; }
Komplexere Logiken
Dazu gibt es einen eigenen Artikel.
Erweiterungen ist in Version 2.105 integriert!
misterhouse konnte bisher noch nicht die EIS Typen 3 und 4 (Uhrzeit und Datum). Ich habe die beiden EIS Typen implementiert und auch an die Entwickler von MH geschickt.
Kopiert die Module einfach erstmal in euer User Code Verzeichnis.
Bis die Änderungen Einfluss in die offizielle MH Version gefunden haben braucht ihr folgenden Usercode zB. in einer startup.pl
# noloop=start use EIB3_Item; use EIB4_Item; # noloop=stop
In eurer eib.mht fügt ihr folgendes ein:
EIB3, 0/6/6, Uhrzeit, Verschiedenes,
EIB4, 0/6/7, Datum, Verschiedenes,
Mit folgendem User Code sendet ihr zB stündlich und beim Start von MH Zeit und Datum auf den Bus:
set $Uhrzeit &time_date_stamp(14, $Time) if ($New_Hour || $Startup); set $Datum &time_date_stamp(14, $Time) if ($New_Day || $Startup);
Hier sind alle aktuellen Dateiänderungen gegenüber der in MH 2.105 Version verfügbaren, sowie ergänzende .pm´s:
Hinweis: tausche in der mh.ini unter „Catergory =
Geänderte Rollerblinds.pl als Attachment Version am 29.09.09 von iphone.pl (geänderte Version am 27.07.09 von mike
Enthaltene Änderungen:
- EIB_Device.pm
- überarbeitete Kommunikation (mh.ini eib_device -> eib_connection)
- EIB_Items.pm, Rollerblinds.pm
- Neue EIBX_Items von RaK
- Hörende Gruppenadressen
- DO – DisplayOnly-Objekte
- label=XXX – Angabe des Labels in der *.mht
- icon=XXX – Angabe des Icons in der *.mht
- bin/mh, lib/ajax.pm
- Server-Seite für automatische Webseitenupdates
- web/bin/*
- Client-Seite für Misterhouse mit gd=1 und automatische Webseitenupdates