PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : misterhouse für Dummies



hhk
15.06.07, 10:46
Hallo Spezies,

anscheinend bin ich mal wieder zu blind, oder zu blöd, oder beides:
Folgende Ausgangssituation:
ein WIN-XP-PC, eine serielle Gira-EIB-Schnittstelle, eine Datei auf dem PC namens "mhe.exe"

Kann mir jemand für ganz Doofe in Stichworten erklären, wie ich damit auf den Bus zugreifen und über einen Browser die Lampe im Büro mit der GA 0/0/13 schalten kann?

Die Dokumentation erzählt mir immer nur was über Sprachausgabe, Linux, X10 usw. aber nichts was ich gebrauchen kann.

Danke für eure Hilfe

HHK

MPietz
15.06.07, 12:41
Unter http://misterhouse.sourceforge.net/mh.html#list_of_supported_hardware_interfaces
steht

10/2005: Peter Sjodin added Linux support for EIB (European Installation Bus, info here: http://en.wikipedia.org/wiki/European_Installation_Bus (http://en.wikipedia.org/wiki/European_Installation_Bus) ). New modules are lib/EIB_Items.pm and lib/EIB_Device.pm. Example items are in code/examples/eib_items.mht.

also gibt es anscheinend EIB Anschluss nur unter Linux

thoern
15.06.07, 13:42
Hallo,

was auf jeden Fall notwendig ist, ist der "eibd" (EIB-Deamon, https://www.auto.tuwien.ac.at/~mkoegler/index.php/eibd (https://www.auto.tuwien.ac.at/%7Emkoegler/index.php/eibd)).
Dieser steht für Linux als RPM zur Verfügung. Für Debian-Linux gibt es auch fertige Packages im Debian-Format. Für Windows gibt es den meines Wissens nach nicht.
Man kann ihn auch selbst kompilieren, da die Quellen frei zur Verfügung sind. Unter Linux ist dies ebenfalls noch machbar, bei Windows würde ich aber davon abraten (könnte ziemlich zeitaufwändig werden, da Windows nicht alles mitbringt, was hierzu nötig ist).

Grundsätzlich ist die Kommunikation wie folgt:

Misterhouse -> eibd -> Eib-Schnittstelle zum Bus (USB-Schnittstelle, IP-Gateway, etc) und umgekehrt

misterhouse und EIB ist meiner Meinung nach derzeit nur unter Linux sinnvoll.

Gruss,

thoern

hhk
16.06.07, 13:33
...tja, wenn das mit Windows nicht geht, ist mein Plan B:
einen alten 486er rauskramen, darauf Linux installieren, und den dann mit misterhouse als Homeserver laufen lassen.
Hat das Aussicht auf Erfolg?

HHK

thoern
16.06.07, 14:01
Hi,

also ich verwende einen Pentium MMX, 233MHz mit 64MB RAM. Reicht völlig aus.

Du solltest erst nochmals checken, ob die aktuellen Linux-Versionen noch vernünftig auf einem 486er laufen. Ich denke aber schon.

lantoeter
12.09.07, 12:19
Hallo,

komm im moment mit dem misterhouse nicht so weiter.
Doku wie man eib und die items dann in skripten verwendet find ich irgendwie nicht, nur die x10 Geschichten. Wie kann ich die unter items.mht definierten Geräte ansprechen, bzw. reicht es ein test.pl script unter code zu erstellen und dann zieht das gleich oder muß ich das vorher verknüpfen damit das geht?
gibts da ne vernüftige Doku ?
Mit googlen und forumssuche werd ich net schlau.

Bsp. items.mht:

GROUP, Rolladen
GROUP, Beleuchtung
GROUP, Keller
GROUP, EG
GROUP, OG
GROUP, DG
GROUP, Aussen
GROUP, Steckdosen
GROUP, Ventile
GROUP, Heizung
GROUP, Zentral


#=========================== EIB ===================
# ************ Beleuchtung ************************
# ----------------------- Zentral -----------------
EIB1, 0/1/0, Licht_Zentral_AUS, Beleuchtung|Zentral
# ----------------------- Keller ------------------
EIB1, 1/0/0, Licht_Decke_Hausanschlussraum, Beleuchtung|Keller, R
EIB1, 1/0/4, Licht_Decke_Keller_1, Beleuchtung|Keller, R
EIB1, 1/0/8, Licht_Heizraum_KOMPLETT, Beleuchtung|Keller, R
EIB1, 1/0/9, Licht_Wand_Heizraum, Beleuchtung|Keller
EIB1, 1/0/10, Licht_Decke_Heizraum, Beleuchtung|Keller
EIB1, 1/0/12, Licht_Decke_Keller_2, Beleuchtung|Keller, R
EIB1, 1/0/16, Licht_Decke_Bad_KG, Beleuchtung|Keller, R
EIB1, 1/0/20, Licht_Wand_Bad_KG, Beleuchtung|Keller, R
EIB1, 1/0/24, Licht_Flur_KG, Beleuchtung|Keller, R
EIB1, 1/0/28, Licht_Treppe_KG_EG, Beleuchtung|Keller, R
EIB1, 1/0/100, Licht_Keller_KOMPLETT, Beleuchtung|Keller
# ************ Ventile ****************************
# ----------------------- Aussen ------------------
EIB1, 7/0/0, Beregnung_Rasen, Ventile|Aussen, R
# ************ Fussbodenheizung ********************
# ----------------------- EG ----------------------
EIB1, 6/0/0, FBH_Diele_Bad_EG, Heizung|EG
EIB1, 6/0/1, FBH_Buero, Heizung|EG
# ************ Rolladen ***************************
# EIB7, lang_Adresse|kurz_Adresse, ...
# ----------------------- Zentral -----------------
EIB7, 0/1/51|0/1/50, Rolladen_KOMPLETT, Rolladen|Zentral
EIB7, 0/1/61|0/1/60, Rolladen_KOMPLETT_ohne_OG, Rolladen|Zentral
EIB7, 0/1/71|0/1/70, Rolladen_KOMPLETT_ohne_Kinder_Terrassenseite, Rolladen|Zentral
EIB7, 0/1/76|0/1/75, Rolladen_EG_KG_KOMPLETT, Rolladen|Zentral
# ----------------------- Keller ------------------
EIB7, 4/0/1|4/0/0, Rolladen_Hausanschlussraum, Rolladen|Keller
EIB7, 4/0/5|4/0/4, Rolladen_Keller_1, Rolladen|Keller
EIB7, 4/0/9|4/0/8, Rolladen_Keller_2, Rolladen|Keller



mfg LANToeter

PS: eibd läuft mh kann den status der eib geräte abfragen.

Mike
12.09.07, 13:59
Es reicht aus eine *.pl-Datei im Code-Verzeichnis zu erstellen.

Jedes in der mht definierte EIB_Item ist in Perl ansprechbar.

Zum Beispiel kannst du deiner test.pl im Code-Verzeichnis folgendes hinzufügen:

if ($New_Minute) {
set $Licht_Decke_Hausanschlussraum ON;
}

Dann wird jede Minute das Licht angeschalten. Beispiele gibts dazu auf der MH-Webseite http://misterhouse.sf.net unter "Examples".

Empfehlenswert ist auch "Docs" und dann "List of ...". Da gibt es jeweils eine Liste von globalen Variablen und Funktionen.

lantoeter
13.09.07, 23:48
Hallo,

danke wer lesen kann ist klar im Vorteil.
Steht ja alles auf der misterhouse seite.
Hab das wohl irgendwie überlesen :-)

stimmt test.pl datei im Verzeichnis code erstellt mit z.B.
if ($New_Minute) {
set $Licht_Decke_Hausanschlussraum ON;
}
und misterhouse neu gestartet und schon gehts.
Hab auch schon andere scripte erstellt :-)
einfach genial.

mfg LANToeter

hartwigm
21.09.08, 14:39
Hallo,

soweit geht das bei mir auch alles. Ich kann alles schalten.

Was mir nicht gelingt ist das lesen bzw. reagieren auf eine Statusänderung. Misterhouse bekommt scheinbar den geänderten Status nicht mit.
Wenn ich per Script BAD_LED jede Minute schalte geht das ohne Probleme.

Was mache ich hier falsch?
Gibt es einen Debugmodus mit welchem ich sehen kann ob der EIBD den Status weiterleitet<ß

# erste Klingelfunktion fuer OG1

# Das druecken des Klingeltasters soll ein Licht schalten


if (state_changed $Klingel_OG1) {
set LED_BAD ON;
}

EIB-Freak
21.09.08, 15:17
Was mir nicht gelingt ist das lesen bzw. reagieren auf eine Statusänderung. Misterhouse bekommt scheinbar den geänderten Status nicht mit.

soeben über die Forensuche gefunden: http://www.knx-professionals.de/forum/showpost.php?p=76874&postcount=5

hartwigm
21.09.08, 15:33
Danke für die Antwort.

Aber die hilft mir nicht, oder ich verstehe nicht, was Du mir damit sagen willst.

Ich kann doch nicht für jede EIB Adresse einen Listener eirnichten. Das scheint ein generelles Problem zu sein, dass Misterhouse bei mir den EIB Bus unabhängig von der Adresse nicht liest.

EIB-Freak
21.09.08, 16:30
Doch, soweit ich das beurteilen kann müssen für Hörende Adressen diese Listener eingerichtet werden, ähnlich wie beim HS wo es Zentral- und Watch-Adressen gibt.

Misterhouse bekommt m.E. die Gruppenadressen mit, welche in der entsprechenden Datei konfiguriert sind.

Es kann aber auch sein, das wir aneinander vorbeireden :rolleyes:

hartwigm
21.09.08, 17:35
Hallo,

alle Beispiele auch hier in dem Forum machen das alles mit dem State oder state_changed.

Da ist nicht von einem Listener, wäre ja auch etwas blöd.

Ich vermute, dass ich ein Problem mit dem eibd habe, dass diese die Telegramme nicht an mh weiterleitet.

Hast Du oder sonst ein Forumteilnehmer ein Ahnung wie ich dies prüfen kann?

jonofe
21.09.08, 20:04
evtl. filtert deine Schnittstelle Telegramme aus.
Versuch mal:


bcuaddrtab <URL> -w 0für <URL> musst du dann deine Schnittstelle eintragen, also eine aus folgender Liste, je nach dem welche Schnittstelle du verwendest:


ft12:/dev/ttySx
bcu1:/dev/eib
bcu1s:/dev/ttySx
usb:[bus[:device[:config[:interface]]]]

Danach müsste die Schnittstelle weider alle Telegramme mitbekommen. Oft ist ein Neuprogrammieren der Schnittstelle die Ursache für dieses Problem. Danach musst du eigentlich den o.g. Befehl nur einmal ausführen und alles sollte wieder gut sein.

Grüße

André

hartwigm
21.09.08, 21:16
liefert

size 0 writen

aber leider liefert der State oder State_now kein Ergebnis.

hartwigm
25.09.08, 21:46
das ist ein eibd Problem.

vbusmonitor1 zeigt nur die Telegramme an, die mit groupswrite geschickt werden. Alle "externen" Bustelegramme werden nicht angezeigt!

Noch einen TIPP?

jonofe
25.09.08, 23:02
Dann sollte es aber genau daran liegen, dass die BCU Address Table einen Wert <>0 hat und damit die BCU Telegramme filtert.

Poste doch mal die komplette Kommandozeile wie du den eibd startest und auch wie du bcuaddrtab gestartet hast.

Grüße
André

hartwigm
25.09.08, 23:25
Hallo André,

ich starten den eibd mit einem Script

eibd -D -T -S -d -i --pid-file=/var/run/eibd.pid usb:$usbport

Die Variabel usbport fülle ich mit der Adresse auf findknxusb

bcuaddrtab usb:2:3:1:0 liefert Size: 0

bcuaddrtab starte ich nicht explizit. Muss ich das?

Gruß Hartwig

jonofe
25.09.08, 23:34
zunächst mal den eibd stoppen!

dann...


bcuaddrtab -w 0 usb:2:3

Das musst du nur einmal machen, danach sollte es eigentlich funktionieren. Nimm auf jeden Fall mal nur die ersten 2 Ziffern des USB Ports (:2:3)

Danach mal den eibd neu starten.

Und dann kannst du mal statt vbusmonitor folgendes versuchen:


groupsocketlisten ip:localhost


Danach fällt mir auch nix mehr ein ;-)

hartwigm
05.10.08, 19:54
Hallo nochmals,

ich habe in der Zwischenzeit nochmals alles neu installiert.

Ergebnis: Immer das Selbe der EIBD geht nicht. Einmal habe ich es geschafft mit dem Busmonitor1 zu sehen was auf dem Bus lief.

Ich habe den busmonitor verlassen und bekomme nun beim neuen Aufruf

mah-fs1:/etc/init.d # busmonitor1 ip:127.0.0.1
Open Busmonitor failed: Device or resource busy

Wenn ich den eibd starte sehe ich noch die Meldung

Oct 5 18:39:01 mah-fs1 kernel: netlink: 12 bytes leftover after parsing attributes.

Kann jemand von Euch damit was anfangen?

Mein Interface wird mit dem findknxusb gefunden:

mah-fs1:~ # findknxusb
Possible addresses for KNX USB devices:
device 2:3:1:0 (ABB STOTZ-KONTAKT GmbH:KNX-USB Interface (MDRC))

ABB USB/S 1.1

Für jeden Tipp bin ich dankbar.

Gruß Hartwig :mad:

EIB-Freak
05.10.08, 20:56
device busy sagt aus, das das device belegt ist, also eine Applikation auf das Device zugriff hat. D.h. der Busmonitor läuft noch irgendwo. tip mal ein "ps -aux" und schau ob der Prozess noch irgendwo läuft.

jonofe
05.10.08, 22:10
Wenn Du den eibd mit der Option -T startest wird busmonitor1 nicht funktionieren. Du musst dann vbusmonitor1 nehmen.

Was passiert denn, wenn du wie zuvor vorgeschlagen


groupsocketlisten ip:localhost

verwendest?

Läuft denn eibd? Was bringt


ps -auxwals Ergebnis?

Grüße

André

hartwigm
08.10.08, 20:29
Hallo André,

mah-fs1:/etc # groupsocketlisten ip:localhost

hier passiert nichts, der Prompt kommt erst nach strg-c wieder zurück


mah-fs1:/etc # ps -auxw |grep bus
Warning: bad ps syntax, perhaps a bogus '-'? See http://procps.sf.net/faq.html
100 1615 0.0 0.0 14868 836 ? Ss Sep27 0:01 /bin/dbus-daemon --system
root 25807 0.0 0.0 4284 740 pts/1 R+ 19:26 0:00 grep bus
mah-fs1:/etc #

Es läuft keine Busmonitor!

Bin hier etwas ratlos!