PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Misterhouse und KNX/EIB



hermanns
13.06.07, 23:32
Hallo,
ich hab interesse an der Kopplung von Misterhouse und KNX/EIB.
Welche Stolperfallen sind zu beachten und welche Tricks gibt es hier?
Gibte es noch mehr als EIB1 1G, EIB2 EIB 3 EIB 5; EIB7 oder ist das Misterhouse spezifisch?

vg
Hermann

EIB-TECH
14.06.07, 06:23
Dieses Thema wurde hier im Forum besprochen, versuch doch mal über die Hilfe etwas zu finden ;)

hermanns
15.06.07, 07:17
Dieses Thema wurde hier im Forum besprochen, versuch doch mal über die Hilfe etwas zu finden ;)

das Thema schon, aber Tricks und Stolperfallen nicht.

Ich habe Misterhouse unter Ubuntu laufen und eibd läuft auch. In Kürze werde ich eine Eib Schnittstelle RS 232 koppeln und poste die Ergebnisse hier.

vg
Hermann

thoern
15.06.07, 12:56
Hallo,

die Kopplung zwischen Misterhouse und EIB-Bus erfolgt über "eibd". Als Interface zum Bus verwende ich eine ABB-USB-Schnittstelle. eibd kommuniziert bei mir also über USB mit dem Bus. Bevor du mit misterhouse weitermachst solltest du erst einmal sicherstellen, dass eibd richtig funktioniert und dass du mit den herkömmlichen eibd-Kommandos Aktoren schalten bzw. abfragen kannst.

Gruss,

thoern

commander
16.06.07, 12:38
das Thema schon, aber Tricks und Stolperfallen nicht.

Ich habe Misterhouse unter Ubuntu laufen und eibd läuft auch. In Kürze werde ich eine Eib Schnittstelle RS 232 koppeln und poste die Ergebnisse hier.

vg
Hermann

ich habe mh auch über die serielle schnittstelle BCU1 laufen bei mir die 2te -> ttyS1

setserial /dev/ttyS1 uart none #für die 2te serielle
insmod eib.ko #modul des eibd laden
eibd -i bcu1:/dev/eib1 -S -D -u

zum testen:
wechseln ins quellverzeichnis von bcusdk
nglux:/usr/local/src/bcusdk-0.0.1/eibd/examples # ./busmonitor1 local:/tmp/eib


./groupswrite local:/tmp/eib 1/2/10 1 #macht z.b. bei mir das licht im büro an
für mh benötigt man:
# uart abschalten

/bin/setserial /dev/ttyS1 uart none
echo -en "\n com2 für Kernel deaktiviert \n"
cd /usr/local/src/eib-0.2.6.4.1
insmod eib.ko

und in der mh.private.ini
#EIB WELT beginn
@ European Installation Bus (EIB) config.
@ eib_device is the EIB device name or eibd url. Clear to disable EIB.
@ To use local EIB-Linux driver, set to device name e.g "/dev/eib".
@ To communicate via eibd, set to "ip:hostname"
@ where hostname is host where eibd runs, e.g. "ip:localhost".
#eib_device=/dev/eib1
eib_device=/dev/eib1

@ eib_send_interval defines the minimum number of mh passes between sending events (for the purpose of
@ limiting the rate of EIB accesses by mh).
eib_send_interval = 5

@ eib_read_retry_interval is how long to wait (secs) before making another attempt to read a
@ value.
eib_read_retry_interval = 10

@ eib_dimmer_timer defines how long time (secs) it takes before a dimmer reaches a steady level
@ after a "dim" or a "brighten" event. If no "stop" event has been detected within that
@ period of time, it is assumed that the dimmer has stopped anyway. A read request
@ is then generated.
eib_dimmer_timer = 5

@ eib_max_read_attempts is max number of attempts to read a value before giving up
eib_max_read_attempts = 3

@ eib_dim_stop_on_repeat defines if repeated setting of the same state twice
@ should stop dim/brighten an EIB dimmer. The idea is that a repeated click on "dim" or "brighten"
@ in for example the web interface will stop the dimmer in its current position.
@ The repeated click should occur within the time period "eib_dimmer_timer" after the first
@ click.
@ Undefine to disable this behaviour (in which case a repeated click will have no particular effect).
eib_dim_stop_on_repeat = 1

@ These are the states displayed on the tk and web menus for EIB type 2 items
eib2_menu_states=on,off,+40,-40,5%,30%,60%,100%

@ This defines how much incoming EIB data you want echoed to the print log:
@ 1 -> no data
@ 2 -> Errata on incoming data: group addresses with no corresponding item, type mismatch
@ 3 -> " and echos all incoming and outgoing data
eib_errata=2

#EIB Welt ende



viel glück

thoern
18.06.07, 07:35
Hi commander,

steuerst du auch Rollos / Jalousien über das Misterhouse-Web-Frontend? Falls ja, wie hast du das gelöst?

Bei mir funktioniert es, allerdings musst ich ein paar Skripten hacken. Die Darstellung gefällt mir allerdings noch immer nicht so ganz. Ich kann zwar die Rollos hoch-/runterfahren, sehe aber den aktuellen Status nicht im Button. Vielleicht hast du ja schon eine "saubere" Lösung. Falls nicht, werde ich bei Gelegenheit MH noch entsprechend erweitern, so dass dies vernünftig funktioniert.

Gruss,

thoern

commander
18.06.07, 11:52
Hi Thoern,

ich habe mich mit der Visualisierung noch nicht auseinandergesetzt (Hier hoffe ich netterweise auf deine Scripte/Dateien).

Wäre super, wenn Du mh erweitern würderst um es auch vernünftig über die Visu darzustellen.

Ebenso wäre es lieb, mir Deine Spripte für die Visu per email zukommen zu lassen.

Falls Du Lust hast kannst Du mir Deine email/tel nummer per privater Nachricht zu geben.

Ich habe nur mbrola laufen für sprachausgabe und steuere die rollos automatisch bei sonnenaufgang und untergang über ein perlscript:

# Sonnenuntergang
if (time_now "$Time_Sunset + 0:25") {
speak("Es ist dunkel und die Rolladen gehen runter");
#keller
$k_har_rollo->set('down');
$k_gaestebad_rollo->set('down');
$k_buero_rollo->set('down');
$k_gaestezimmer_rollo->set('down');
# $k_server_rollo->set('down');
#eg
$eg_suedseite_rollo->set('down');
$eg_abstellkammer_rollo->set('down');
$eg_wohnen_rollo->set('down');
$eg_wc_rollo->set('down');
#dg
$dg_jonas_rollo->set('down');
$dg_doro_rollo->set('down');
$dg_eltern_rollo->set('down');
$dg_bad_rollo->set('down');
#
## $eg_veranda_rollo->set_with_timer('down', 22, 'stop');
#
}

#sonnenaufgang
if (time_now "$Time_Sunrise + 0:20") {
speak("Es ist hell und die Rolladen gehen hoch");
#keller
$k_har_rollo->set('up');
$k_gaestebad_rollo->set('up');
$k_buero_rollo->set('up');
# $k_gaestezimmer_rollo->set('up');
# $k_server_rollo->set('up');
#eg
$eg_suedseite_rollo->set('up');
$eg_abstellkammer_rollo->set('up');
$eg_wohnen_rollo->set('up');
$eg_wc_rollo->set('up');
#dg
# $dg_jonas_rollo->set('up');
$dg_doro_rollo->set('up');
# $dg_eltern_rollo->set('up');
$dg_bad_rollo->set('up');



}

a20gate
18.06.07, 14:48
Moin,
ich habe da mal eine Frage zur Konfiguration...

Ich verstehe das Format der eib_items.mht nicht ganz. Wo werden die Geräte und die Gruppenadressen eingetragen?

In der Doku steht:
# EIB type 1. On/off switch items.
Da könnte man die Geräte reinpacken!?

# EIB type 1 groups: all items that listen to a group address.
Da die Gruppenandressen!?

Aber was ist mit Geräten und Addressen die nicht zum Schalten sind sondern z.B. Wetterstation und Aussentemperatur?

Sorry, ich steh irgendwie auf dem Schlauch...

Gruß
Sven

EIB-Freak
18.06.07, 18:06
# EIB type 1. On/off switch items.
Da könnte man die Geräte reinpacken!?

Kenn mich damit zwar nicht aus, aber das heisst bestimmt, dass da die sendende Gruppenadresse rein kommt,



# EIB type 1 groups: all items that listen to a group address.
Da die Gruppenandressen!?

und hier die Hörenden Gruppenadressen.



Aber was ist mit Geräten und Addressen die nicht zum Schalten sind sondern z.B. Wetterstation und Aussentemperatur?

Da muss es dann eigene EIB Typen geben, so wie es ja auch DPT (EIS)-Typen gibt.

thoern
18.06.07, 22:07
tesla:/usr/local/misterhouse-2.103-test/code/thomas# cat thomas.mht

Format = A
#
# See mh/lib/read_table_A.pl for definition of Format=A items
#

# Floorplaning info:
# - If you include x,y data, you can monitor and control these items
# with the web floorplan page: http://localhost:8080/bin/floorplan.pl
# - For items, specify the x,y after the room group name: room_group(x;y)
# - For room groups, specify x,y,width,height relative to its
# parent group: Group, room_group, parent_group(x;y;w;h)
# - By default, floorplan.pl will use $Property as the top level group


# Define Room groups for floorplan


#GROUP, Beleuchtung, Property(0;0;0;0)



#
# Type Address Name Groups Other Info
#



# X10I, B1, test_light1, All_Lights|LivingRoom(5;15)





# X10A, D1, fountain, Appliances|Backyard(30;2)



# VOICE entries default to [ON,OFF]

# VOICE, fountain, Fountain

# Here are some examples of adding multiple states to the same item

# SERIAL, XPJ, motion, Motion, on








# Here are some examples of specifying interface and module types
# If your want to use a non-default X10 interface, specify with the 1st 'other info' field
# If your X10 module support preset dim, specify preset in the 2nd 'other info' field

#X10A, O9, living_room_fan, Appliances|Upstairs|LivingRoom(10;10), CM17
#X10I, O7, camera_light2, All_Lights|Upstairs|LivingRoom(5;10), CM11
#X10I, O7, camera_light, All_Lights|Upstairs|LivingRoom(10;5), , LM14
#X10I, O7, camera_light, All_Lights|Upstairs|LivingRoom(10;5), , preset


# Here are X10_Sensor examples for detecting motion and brightness
#
#X10MS, CA, work_room_motion, Sensors|Motion_Sensors, Motion
#X10MS, CB, work_room_brightness, Sensors|Brighness_Sensors, Brightness
#X10MS, CA, work_room_sensors, Sensors, MS13 # This detects both motion and brightness

EIB1, 0/0/1, Keller_WG_Lampe, Beleuchtung|K_Wintergart, R
EIB1, 0/1/0, Werkstatt_Lampe, Beleuchtung|K_Werkstatt, R
EIB1, 0/1/1, LAN, Netzwerk|K_Werkstatt, R
EIB1, 0/1/2, Werkstatt_Lampe, Beleuchtung|K_Werkstatt, R
EIB1, 0/1/3, Werkstatt_Leuchtstoff_W,Beleuchtung|K_Werkstatt, R
EIB1, 0/1/3, Werkstatt_Leuchtstoff_N,Beleuchtung|K_Werkstatt, R
EIB1, 0/2/0, Waschhaus_Lampe, Beleuchtung|K_Waschhaus, R
EIB1, 0/3/0, Keller_Flur_Lampen, Beleuchtung|K_Flur, R
EIB1, 0/4/0, Hobbykeller_Licht_West, Beleuchtung|K_Hobby, R
EIB1, 0/4/1, Hobbykeller_Licht_Ost, Beleuchtung|K_Hobby, R
EIB1, 0/5/0, Duschkeller_Lampe, Beleuchtung|K_Dusche, R
EIB1, 2/0/0, Flur_Hauptlicht, Beleuchtung|EG_Flur, R
EIB7, 2/0/1|2/0/2, Flur_Speis_Rollo, Jalousie|EG_Flur|EG_Speis,
EIB1, 2/0/3, Flur_Treppenstufen, Beleuchtung|EG_Flur, R
EIB1, 2/0/4, Flur_Wandlampe, Beleuchtung|EG_Flur, R
EIB1, 2/0/5, Flur_Garderobe, Beleuchtung|EG_Flur, R
EIB1, 2/1/0, Kueche_Vitrinenlicht, Beleuchtung|EG_Kueche, R
EIB1, 2/1/1, Kueche_Thekenlampen, Beleuchtung|EG_Kueche, R
EIB1, 2/1/2, Kueche_Kachelofen, Beleuchtung|EG_Kueche, R
EIB1, 2/1/3, Kueche_Ecklampen, Beleuchtung|EG_Kueche, R
EIB7, 2/1/10|2/1/11, Kueche_Rollo_Nord_West, Jalousie|EG_Kueche,
EIB7, 2/2/0|2/2/1, WG_Jalousie_Ost, Jalousie|EG_Wintergart
EIB7, 2/2/2|2/2/3, WG_Jalousie_Sued, Jalousie|EG_Wintergart
EIB7, 2/2/4|2/2/5, WG_Jalousie_West, Jalousie|EG_Wintergart
EIB1, 2/3/0, EG_Bad_Deckenlampe, Beleuchtung|EG_Bad, R
EIB1, 2/3/1, EG_Bad_Spiegellicht, Beleuchtung|EG_Bad, R
EIB7, 2/3/2|2/3/3, EG_Bad_Rollo, Jalousie|EG_Bad,
EIB7, 2/4/0|2/4/1, Esszimmer_Rollo, Jalousie|EG_Esszimmer,
EIB7, 2/5/0|2/5/1, Terrassentuer_Rollo, Jalousie|EG_Wohnzimmer,
EIB7, 2/5/2|2/5/3, Wohnzimmer_Rollo_Ost, Jalousie|EG_Wohnzimmer,
EIB1, 2/5/4, Wohnzimmer_Fernsehlicht, Beleuchtung|EG_Wohnzimmer, R
EIB1, 2/5/5, Wohnzimmer_Couchlampen, Beleuchtung|EG_Wohnzimmer, R
EIB1, 2/6/2, Speis_Lampe, Beleuchtung|EG_Speis, R
EIB1, 2/7/0, Aussen_Haustuerlicht, Beleuchtung|Aussen, R
EIB1, 3/0/0, Schlafzimmer_Deckenlampe, Beleuchtung|DG_Schlafen, R
EIB7, 3/0/1|3/0/2, Schlafzimmer_Rollo_Sued,Jalousie|DG_Schlafen,
EIB1, 3/1/0, Julian_Deckenlampe, Beleuchtung|DG_Julian, R
EIB7, 3/1/1|3/1/2, Julian_Rollo_Sued, Jalousie|DG_Julian,
EIB1, 3/2/0, Buero_Deckenlampe, Beleuchtung|DG_Buero, R
EIB1, 3/3/0, DG_Gang_Deckenlampe, Beleuchtung|DG_Gang, R
EIB1, 3/3/1, DG_Gang_Wandlampe, Beleuchtung|DG_Gang, R
EIB7, 3/4/0|3/4/1, DG_Bad_Rollo, Jalousie|DG_Bad,
EIB1, 5/0/0, EG_Bad_FBH, Heizung|EG_Bad , R
EIB1, 5/0/1, Heizung_KueEsszWz, Heizung|EG_Kueche|EG_Wohnzimmer|EG_Esszimmer, R
EIB1, 5/0/2, Wintergarten_FBH, Heizung|EG_Wintergart, R
EIB1, 5/0/4, Flur_FBH, Heizung|EG_Flur, R
EIB1, 5/0/5, Speis_FBH, Heizung|EG_Speis, R
EIB1, 5/0/6, DG_Bad_FBH, Heizung|DG_Bad, R
EIB1, 5/0/7, Schlafzimmer_FBH, Heizung|DG_Schlafen, R
EIB1, 5/0/8, Julian_FBH, Heizung|DG_Julian, R
EIB1, 5/0/9, Buero_FBH, Heizung|DG_Buero, R
EIB1, 5/1/0, Zirkulation, Heizung|K_Werkstatt, R
EIB1, 5/2/0, Kueche_RCT_Komfort, Heizung|EG_Kueche
EIB1, 5/2/1, Kueche_RCT_Nacht, Heizung|EG_Kueche
EIB1, 5/2/2, Kueche_RCT_FrostHitze, Heizung|EG_Kueche
EIB1, 5/2/3, Kueche_RCT_sperren, Heizung|EG_Kueche
EIB1, 5/2/4, EG_Bad_RCT_Komfort, Heizung|EG_Bad
EIB1, 5/2/5, EG_Bad_RCT_Nacht, Heizung|EG_Bad
EIB1, 5/2/6, EG_Bad_RCT_FrostHitze, Heizung|EG_Bad
EIB1, 5/2/7, EG_Bad_RCT_sperren, Heizung|EG_Bad


#X10I, B1, test_light1, Test1
#X10A, D1, fountain, Test2
tesla:/usr/local/misterhouse-2.103-test/code/thomas#

thoern
18.06.07, 22:16
Verwechselt bitte nicht MH-Gruppen und EIB-Gruppenadressen:

EIB1, 0/0/1, Keller_WG_Lampe, Beleuchtung|K_Wintergart, R

Bedeutung:
EIS-Typ, EIB-Gruppenadresse, MH-Geräteezeichnung, MH-Gruppe|MH-Gruppe, R(eadable)

Diese Kellerlampe mit der EIB-Gruppenadresse 0/0/1 ist also sowohl der Misterhousegruppe "Beleuchtung" als auch der Misterhousegruppe "K_Wintergart" zugeordnet.

RaK
19.06.07, 00:11
Hey, ich bin auch gerade dabei misterhouse auszutesten. Kommunikation laeuft soweit. Erste Skripte sind erstellt.

Aktuell scheitere ich daran, über ETS-LAN-eibd zu programmieren. Der IP Diagnose Assistent zeigt, dass der Unicast Test fehlgeschlagen ist. die anderen sind soweit in Ordnung.

Any hints?

a20gate
19.06.07, 09:14
OK danke,
d.h. also ich kann die Geräte gar nicht mit angeben sondern nur eine Gruppenadressen. Somit weiss ich nicht wer gesendet hat und muss daher, wenn ichs wissen will, jeweils eine eigene Gruppenadresse anlegen. Derzeit habe ich z.B. die Temperaturübewachung so gelöst, dass alle RTC's auf eine Gruppenadresse senden und ich anhand des Absenders den Raum zuordnen kann...

Aber was hat es dann mit dem EIB1G auf sich - ist das nur eine andere Beschreibung für eine zentrale Gruppenadresse?

Gruß
Sven

hermanns
20.06.07, 08:08
super dass ihr die Scripte postet. es wäre noch gut über die Modifikationen die ggf. im MH Quellcode gemacht wurden einen post zu haben.

Nun, warum verwende ich Unbuntu?
Es ist so leicht benutzbar wie Windows und hat das Debian update System dahinter. Bei einem Versionswechsel klickt man einfach in der Symbolleiste auf "aktualisierungen" und kann (bei DSL Verbindung) die neueste Version incl. Kernel einspielen.

Hier sind meine startscripte:

1. in Ubuntu mit rechter Maustaste auf dem Desktop einen Starter anlegen, als Befehl
eibd -u -d ft12:/dev/tty0 # für seriellen Anschluss eingeben. -d = Daemon d.h. im Hintergrund, -u = listel-local d.h. auf seriell 0

2. einen Starter für Misterhouse anlegen, als Befehl
gksudo "/opt/mh/bin/mh -tk 0"
eingeben. das -tk 0 verhindert den start des X11 Tookits das unter Ubuntu normalerweise nicht installiert ist. Auf meinem Suse Server startet ohne den -tk Befehl eine grafische Oberfläche unter X11 die den MH status und Parameter anzeigt.


3. Das Stopp Button hat den Befehl
gksudo "killall mh"

p.s.
gsudo bewirkt dass der MH Prozess mit root rechten läuft und dass ein Passwort für root eingegeben werden muss. Ubuntu läuft standardmäßig nur mit Userrechten.

es gibt beim starten des eibd noch viele weitere Parameter für den Start.

Grüsse
Hermann

a20gate
20.06.07, 16:00
@thoern
Kannst du vielleicht dein Script zur Umrechnung von Datum/Uhrzeit für den eibd hier posten. Ich hab nur eine JAVA-Lösung und nicht so den Plan von Perl ;)

Gruß
Sven

RaK
20.06.07, 17:26
@a20gate: Bin zwar nicht thoern, aber hier kommt meins ;).


#!/usr/bin/perl

use Math::BaseCnv;

# right $len chars
sub rstr{
my $s = shift;
my $len = shift;
# printf("DEBUG %s %i\n",$s,$len);
return substr($s, length($s) - $len, $len);
}

# read local time
($second, $minute, $hour, $dayOfMonth, $month, $yearOffset,
$dayOfWeek, $dayOfYear, $daylightSavings) = localtime(time);

# Mon is KNX 001 and Sun is 111 in Linux is Sun 1 und Sat 7
@weekDays = qw(111 001 010 011 100 101 110);

# calc $hour in bin with exact 5 digits
$bin_hour = rstr("000000".cnv( $hour, 10, 2) ,5);

@args = ("/usr/bin/groupwrite", "ip:127.0.0.1 (http://127.0.0.1/)", "0/6/6",
# change protocoll to your needs
sprintf("%02X", cnv( $weekDays[$dayOfWeek] . $bin_hour, 2,
10)), # calc weekday and hour in hex
sprintf("%02X", $minute),
# same for minute and second
sprintf("%02X", $second));

# execute command
system(@args) == 0 or die "system @args failed: $?";


Einfach in ein textfile kopieren. Es zb eibsendtimeonbus nennen und mit chmod a+x ausführbar machen.

Thats it. Wenn dir die Bibliothek fehlt (most likely), dann einfach über CPAN insatllieren "\google cpan installieren" sollte weiterhelfen.


perl -MCPAN -e shell
> install Math::BaseCnv

enjoy!

a20gate
21.06.07, 10:39
Danke, funktioniert bestens ;)

Gruß
Sven

RaK
21.06.07, 14:51
gerne. Hier (http://eibwiki.agrodur.com/index.php?title=Eibd) habe ich ein kleines Howto zu eibd geschrieben. Dort entsteht auch in naher Zukunft ein Tutorial für misterhouse.

commander
21.06.07, 16:03
das finde ich super!
Hoffe dort wird sich einiges ansammeln für mistherhouse + eibd
grüsse


gerne. Hier (http://eibwiki.agrodur.com/index.php?title=Eibd) habe ich ein kleines Howto zu eibd geschrieben. Dort entsteht auch in naher Zukunft ein Tutorial für misterhouse.

thoern
22.06.07, 00:55
Hallo Zusammen,

und hier mein Skript. Ich aktualisiere hiermit die Buszeit damit meine Jung-Raumcontroller alles schön anzeigen (wird einmal pro Stunde ausgeführt und funzt auch ohne zusätzliche Perl-Module ;)):



#!/usr/bin/perl
#
# eibtime.pl
#
# thoern, 16.12.2006
# Version 1.0
#

$grptime = "4/1/0";
$grpdate = "4/1/1";
$eibURL = "ip:localhost";
$logfile;
$ENV{'PATH'}="/usr/bin";

($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime(time);


$byte1 = sprintf "%lx", $wday * 32 + $hour;
$byte2 = sprintf "%lx", $min;
$byte3 = sprintf "%lx", $sec;

print "Time: $wday $hour:$min:$sec\n";
print "Eibtime: $byte1 $byte2 $byte3\n";

system groupwrite, $eibURL, $grptime, $byte1, $byte2, $byte3;


$byte1 = sprintf "%lx", $mday;
$byte2 = sprintf "%lx", $mon + 1;
$byte3 = sprintf "%lx", $year - 100;

print "Date: $mday ", $mon + 1, " ", $year - 100, "\n";
print "Eibdate: $byte1 $byte2 $byte3\n";
system groupwrite, $eibURL, $grpdate, $byte1, $byte2, $byte3;


Ein passender cron-Job:

tesla:~# crontab -l
33 * * * * /usr/local/eib/bin/eibtime.pl >> /var/tmp/eibtime.log 2>&1

Gruss,

thoern

commander
22.06.07, 10:34
wenn ich das richtig verstanden habe,
erspart man sich mit diesem Script einen EIB-Zeitgeber, oder?

Grüsse

RaK
22.06.07, 13:03
commander: Ja, aber du brauchst einen Linux24/7 Rechner mit eibzugriff ;).

thoern: $wday * 32 + $hour; Sehr clever! Da bin ich nicht drauf gekommen. Klasse!


Ich meine behalten zu haben, dass die Zaehlung der Tage zwischen Linux und Eib Unterschiedlich ist.
# Mon is KNX 001 and Sun is 111 in Linux is Sun 1 und Sat 7



Fehlt da nich noch eine Konvertierung in deinem Script?

thoern
22.06.07, 13:04
@commander,

so ist es. Ist wesentlich billiger und viel flexibler. Der PC auf dem ich das Skript laufen habe, synchronisiert sich über das Internet mit öffentlichen Zeitservern.

Gruss,

thoern

thoern
22.06.07, 13:47
Fehlt da nich noch eine Konvertierung in deinem Script?
Uuups, da fehlt scheinbar die Umsetzung für Sonntag - ist mir noch gar nicht aufgefallen :-(

Da muss wohl noch etwas in der Form

$wday = 7 if !$wday;

rein (unter Linux ist Sonntag 0 und Samstag 6).

Gruss,

thoern

RaK
22.06.07, 17:04
$wday = 7 if !$wday;


Genau, das meinte ich. Wenn du willst, dann kannst du dein Script ja im wiki posten. Es gefaellt mir wesentlich besser als meins ;). Mensch, dass ich da nicht drauf gekommen bin wurmt mich wirklich!



Ich freu mich schon auf den Austausch von Misterhouse Logiken.



Aktuell bin ich gerade dabei ein kleines Script zu schreiben, welches HS Logiken (HSL Files) automatisch in eine Perl Syntax konvertiert. Mit ein wenig Nacharbeit stehen einem dann alle guten oeffentlich verfügbaren HS Logik Module zur Verfügung.



Den Sonnenstand von Matthias hab ich schon umgesetzt. Poste ich gerne. Ich bin gerade dran an einem Code Sniplet, welches meinen Rollladen die absolute (0-100%) Positionierung beibringt um dann den Beschattungsbaustein von Thilo anzugehen.

tabatux
22.06.07, 18:10
Hallo Rack,

wieder einmal Super Arbeit :)
Stellst Du Deine Beispiele ins WIKI?
Nach Deine Super Anleitung, funzt der Bus Zugriff :Prost:
Freu mich schon auf Deine nächsten Projekte.

LG
tabatux

thoern
25.06.07, 00:52
Hallo,

auf mehrfachen Wunsch stelle ich meine Erweiterungen zum Thema Misterhouse zur Verfügung.
Meine letzte Änderung betrifft die Buttons für EIB7-Objekte. Diese können jetzt auch den Status anzeigen. Die Step-Funktion ist für Jalousien gedacht, ist aber noch nicht implementiert (s. http://hoerndlein.dyndns.org (http://hoerndlein.dyndns.org/) und dann auf Jalousien drücken). Eine Beschreibung der Erweiterung ist unter dem Menüpunkt "Hil-Fee" zu finden.
Die Erweiterungen könnt ihr hier downloaden: http://www.hoerndlein.de/misterhouse/

Die Erweiterung hat den Status "experimental". Das Benutzen erfolgt auf eigene Gefahr.

Gruss,

thoern

RaK
26.06.07, 09:11
Danke! Funktioniert einwandfrei!

Jetzt muss ich nur noch rausfinden wie du das gemacht hast ;), dann würde ich mich an einem Fensterbutton versuchen.

Da kommen ja üblicherweise zwei EIB1 Objekte an (FK oben/unten) und man muesste dann am Button auf , zu bzw. gekippt darstellen.

a20gate
04.07.07, 16:25
Moin,
hat schon jemand ein Jalousie-Item entworfen - also Move/Step/Position/Angle?

Gruß
Sven

Sallyvan
13.07.07, 22:02
Nachdem auch mein MH läuft und ich mich an Umgebung von thoern ortientiert habe, ist mir doch noch was aufgefallen. Die Button_action.pl benötigt eine Anpassung für die EIB1-Items, sonst versucht MH je nach dem an welche des EIB1-Buttons man klickt einen DIM auszulösen, was natürlich nicht funktioniert.

Also Zeile 14 muss lauten:
unless (eval qq|$item->isa('X10_Appliance') or $item->isa('Fan_Motor') or $item->isa('EIB1_Item')|) {

Also, Viel Spaß noch ....

thoern
17.07.07, 12:51
Die Button_action.pl benötigt eine Anpassung für die EIB1-Items, sonst versucht MH je nach dem an welche des EIB1-Buttons man klickt einen DIM auszulösen, was natürlich nicht funktioniert.


Das ist richtig, mich hat das aber nicht gestört, da dieser Button ja auch für EIB1 verwendbar ist (man muss halt nur mittig klicken).

@a20gate: Inzwischen können meine Jalousie-Buttons anzeigen, wie weit das Rollo geschlossen ist. Ich benutze hierzu die Positions-Status-Objekte, die mir meine Aktoren zur Verfügung stellen. Für ein paar Rollos habe ich das auch schon konfiguriert: http://hoerndlein.dyndns.org/bin/list_buttons.pl?$Jalousie

Am besten wäre es, eine eigene MH-Klasse Jalousie zu entwickeln, die die Fähigkeiten handlesüblicher Jalousieaktoren berücksichtigt. Diese Klasse sollte sich größtenteils aus bestehenden Klassen wie EIB7_Item, EIB6_Item, etc ableiten lassen.

Gruss,

thoern

thoern
18.07.07, 09:21
Moin,
hat schon jemand ein Jalousie-Item entworfen - also Move/Step/Position/Angle?


Ich habe die Klasse EIB7_Item entsprechend erweitert, so dass eine Step-Funktionalität bereitgestellt wird. In der mh-mailinglist habe ich um einen Code-Review gebeten.

RaK
18.07.07, 09:43
Ich habe die Klasse EIB7_Item entsprechend erweitert, so dass eine Step-Funktionalität bereitgestellt wird. In der mh-mailinglist habe ich um einen Code-Review gebeten.



Akzeptiert dein Aktor einen Wert auf einer GA und fährt den Angle entsprechend an? Kannst du zB sagen 50% Bedeckung und einen Angle von 45°?

Mein Rolladen Aktor hat keine Positionierungsobjekte. Ich hab das über die Laufzeit gemacht und kann aber (leider) nur sekundengenau positionieren. Ich hab keine Möglichkeit gefunden die Zeit in MH genauer zu messen. Für die Bedeckung reicht das, aber den Angle kann man sicherlich nicht genau einstellen.

thoern
18.07.07, 10:52
Akzeptiert dein Aktor einen Wert auf einer GA und fährt den Angle entsprechend an? Kannst du zB sagen 50% Bedeckung und einen Angle von 45°?


Mein Aktor kann sowohl Bedeckung als auch die Lamelle über einen 8bit-Wert positionieren.

a20gate
18.07.07, 15:32
@RaK
Ich habe gerade versucht deine EIS3/4 Klassen einzubinden - leider ohne Erfolg. MH startet dann nicht mehr, sobald ich ein EIB3 oder EIB4 Item in der eib_items.mht eintrage. Ich finde aber auch keine Fehlermeldung!?

Gruß
Sven

commander
19.07.07, 09:40
@ RaK
Thoern benutzt ein Eib-Objekt seines Aktors für die Anzeige der Position der Rollos (z.B. 75%)

Mein Rollo-Aktor von Hager hat leider nur ein 1 bit object für den Zustand. :-(

Wie weit bist Du mit Deinem "Code Sniplet"
Hier muss man bestimmt die Laufzeiten der einzelnen Rollos in einem mh script hinterlegen, oder?

Zitat von Dir:

Den Sonnenstand von Matthias hab ich schon umgesetzt. Poste ich gerne. Ich bin gerade dran an einem Code Sniplet, welches meinen Rollladen die absolute (0-100%) Positionierung beibringt um dann den Beschattungsbaustein von Thilo anzugehen.[/quote]



Grüsse

RaK
19.07.07, 21:08
@RaK
Ich habe gerade versucht deine EIS3/4 Klassen einzubinden - leider ohne Erfolg. MH startet dann nicht mehr, sobald ich ein EIB3 oder EIB4 Item in der eib_items.mht eintrage. Ich finde aber auch keine Fehlermeldung!?

Gruß
Sven

Hast du irgendwo in einem deiner user code files die folgende Zeile?


# noloop=start
use EIB4_Item;
use EIB3_Item;
# noloop=stop


Bei mir steht das in einem startup.pl. Ich denke das fehlt bei dir. Steht aber genau so im Wiki. Ich hoffe das kennst du.


In der eib_items.mht steht

EIB3, 0/6/6, Uhrzeit, Verschiedenes,
EIB4, 0/6/7, Datum, Verschiedenes,

Und mit foglendem Sniplet gibts Zeit/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);

RaK
19.07.07, 21:11
Wie weit bist Du mit Deinem "Code Sniplet"
Hier muss man bestimmt die Laufzeiten der einzelnen Rollos in einem mh script hinterlegen, oder?

Schon mal im Wiki geschaut?
http://eibwiki.agrodur.com/index.php?title=Misterhouse_-_Komplexe_Logiken



Was brauchst du noch?

a20gate
20.07.07, 07:38
Hast du irgendwo in einem deiner user code files die folgende Zeile?


# noloop=start
use EIB4_Item;
use EIB3_Item;
# noloop=stop

Hab ich natürlich nicht :confused:, das wirds wohl sein.

Das Wiki kenne ich schon - allerdings finde ich mich da überhaupt nicht zurecht. Ich staune immer wieder, was da alles steht, wenn jemand den direkten Link postet aber über die Navigation find ichs nicht...

Gruß
Sven

commander
20.07.07, 14:58
Danke.
Wenn ich ein wenig Zeit habe, werde ich es einbinden.

Schon mal im Wiki geschaut?
http://eibwiki.agrodur.com/index.php?title=Misterhouse_-_Komplexe_Logiken



Was brauchst du noch?

RaK
20.07.07, 23:01
Danke.
Wenn ich ein wenig Zeit habe, werde ich es einbinden.



Feedback erwuenscht ;).

commander
21.07.07, 12:17
@RAK
Ich habe mir Dein Wiki angesehen und eine Frage vorweg:

Die 3te Gruppenadresse ist bei mir nicht im Aktor implementiert. Wird die hier von Dir sozusagen "virtuell" nachgebildet und ich muss einfach eine nicht vorhandene GA eintragen?


Zitat:
Die Rollladen werden nicht mehr als EIB7 Objekte in einer MHT Datei definiert. Ich habe ein eigenes PL File für die Rollläden.
# So sah die Definition in den Misterhouse eigenen MHT Files aus.
#EIB7, 1/3/2|1/3/1, Arbeiten_Rollladen, Rollladen|EG_Arbeiten|EG_Rollladen
#EIB7, 1/3/4|1/3/3, Wohnen_Rollladen, Rollladen|EG_Wohnen|EG_Rollladen
#EIB7, 1/3/6|1/3/5, Essen_Rollladen, Rollladen|EG_Wohnen|EG_Rollladen

use Rollerblinds;

# Daraus wird folgendes
$Arbeiten_Rollladen = new EIBRB_Item('1/3/2|1/3/1|10/2/1', 12);
$Wohnen_Rollladen = new EIBRB_Item('1/3/4|1/3/3|10/2/2', 27);
$Essen_Rollladen = new EIBRB_Item('1/3/6|1/3/5|10/2/3', 27);

$v_eg1 = new Voice_Cmd "Rollladen Essen [up,down,stop,0,5,10,15,20,25,30,35,40,45,50,55,60, 65,67,70,75,80,85,90,95,100]";
$v_eg2 = new Voice_Cmd "Rollladen Wohnen [up,down,stop,0,5,10,15,20,25,30,35,40,45,50,55,60, 65,67,70,75,80,85,90,95,100]";
$v_eg3 = new Voice_Cmd "Rollladen Arbeiten [up,down,stop,0,5,10,15,20,25,30,35,40,45,50,55,60, 65,67,70,75,80,85,90,95,100]";

if ($state = said $v_eg1) { set $Essen_Rollladen $state; }
if ($state = said $v_eg2) { set $Wohnen_Rollladen $state; }
if ($state = said $v_eg3) { set $Arbeiten_Rollladen $state; }
Die ersten beiden GAs sind die MOVE bzw. STOP Adressen vom Aktor. Die dritte GA ist eine EIB6 GA für Werte zwischen 0 und 100%. Die letzte Zahl ist eine Zeitspanne die der Rollladen braucht um von der oberen Endlage in die untere Endlage zu fahren.
Damit lassen sich die Rollläden schon steuern mit

RaK
23.07.07, 14:03
@RAK
Die 3te Gruppenadresse ist bei mir nicht im Aktor implementiert. Wird die hier von Dir sozusagen "virtuell" nachgebildet und ich muss einfach eine nicht vorhandene GA eintragen?

Virtuell ist relativ ;). Ja, nimm einfach eine bisher nicht benutzte. Man kann aber diese GA auch im Bus direkt nutzen. Stell dir einen Taster vor, der ein 50 auf die Gruppenadresse sendet (Wert senden) und deine Rollos fahren auf 50%, weil MH diese Gruppenadresse am Bus abhoert und den Rollladen Aktor entsprechend über die MOVE/STEP GAs steuert.

commander
23.07.07, 15:06
@RaK
so hatte ich dies auch im "verdacht".
Danke...
Ich melde mich, wenn ich es bei mir am laufen habe...
kann aber noch dauern, da im Moment viel um die Ohren.
Grüsse


Virtuell ist relativ ;). Ja, nimm einfach eine bisher nicht benutzte. Man kann aber diese GA auch im Bus direkt nutzen. Stell dir einen Taster vor, der ein 50 auf die Gruppenadresse sendet (Wert senden) und deine Rollos fahren auf 50%, weil MH diese Gruppenadresse am Bus abhoert und den Rollladen Aktor entsprechend über die MOVE/STEP GAs steuert.

commander
26.07.07, 09:33
@Hallo thoern,
Ich habe fragen zur Verzeichnis-struktur:
was hast Du im misterhouse-2.103 zweig (die komplette struktur vom mh?)
Ich denke die hast Du doch schon komplett in der rot markierten liegen, oder?


/usr/local/--+
+--mhprod--+
+--misterhouse -> misterhouse-2.103
+--misterhouse-2.103--+
+--bin
+--code
+--data
+--docs
+--lib
+--sounds
+--web

+--misterhouse-local--+
+--mh.private.ini <--- my private mh.ini parms
+--bin
+--code <--- my code
+--data <--- my data
+--web--+
+--bin
+--graphics
+--ia5


Hallo,

auf mehrfachen Wunsch stelle ich meine Erweiterungen zum Thema Misterhouse zur Verfügung.
Meine letzte Änderung betrifft die Buttons für EIB7-Objekte. Diese können jetzt auch den Status anzeigen. Die Step-Funktion ist für Jalousien gedacht, ist aber noch nicht implementiert (s. http://hoerndlein.dyndns.org (http://hoerndlein.dyndns.org/) und dann auf Jalousien drücken). Eine Beschreibung der Erweiterung ist unter dem Menüpunkt "Hil-Fee" zu finden.
Die Erweiterungen könnt ihr hier downloaden: http://www.hoerndlein.de/misterhouse/

Die Erweiterung hat den Status "experimental". Das Benutzen erfolgt auf eigene Gefahr.

Gruss,

thoern

thoern
28.07.07, 23:14
Hallo,

das hab ich wohl falsch dargestellt - sorry!
Unter misterhouse-2.103 befindet sich die komplette mh-Installation. bin, code, data, docs usw. sind Unterverzeichnisse von misterhouse-2.103

Gruss,

thoern

commander
29.07.07, 19:59
@thoern,

ich versuche Dein misterhouse-local zu verwenden, doch leider habe ich probs...
Ich habe die gleiche Verzeichnissstruktur verwendet wie von Dir empfohlen, doch leider sehe ich keine Buttons unter my-mh im browser. :-(
Wenn ich dann auf eine "nicht" darstellbare Grafik in linken Frame senkrecht klicke gibt mh mir folgende Meldung an der Konsole:

http error in http eval of button.pl: Bareword "gdMediumBoldFont" not allowed while "strict subs" in use at (eval 7920) line 129, line 194. Bareword "gdMediumBoldFont" not allowed while "strict subs" in use at (eval 7920) line 133, line 194. Bareword "gdMediumBoldFont" not allowed while "strict subs" in use at (eval 7920) line 174, line 194. Bareword "gdTinyFont" not allowed while "strict subs" in use at (eval 7920) line 175, line 194.

Hast Du eine Idee woran es liegt?

Danke vorab

thoern
31.07.07, 11:17
Hallo,

wie verhält sich misterhouse ohne die misterhouse-local Erweiterung? Hast du da die gleichen Probleme, wenn button.pl aufgerufen wird?

Gruss,

thoern

commander
06.08.07, 17:30
wenn ich in einer "cleanen" mh distri folgenden aufruf starte per browser:
http://nglux:8080/bin/button.pl

dann gibt es die Fehlermeldung:
http error in http eval of button.pl: Bareword "gdMediumBoldFont" not allowed while "strict subs" in use at (eval 11137090) line 120, line 178. Bareword "gdMediumBoldFont" not allowed while "strict subs" in use at (eval 11137090) line 124, line 178. Bareword "gdMediumBoldFont" not allowed while "strict subs" in use at (eval 11137090) line 158, line 178. Bareword "gdTinyFont" not allowed while "strict subs" in use at (eval 11137090) line 159, line 178.

Hallo,

wie verhält sich misterhouse ohne die misterhouse-local Erweiterung? Hast du da die gleichen Probleme, wenn button.pl aufgerufen wird?

Gruss,

thoern

NetFritz
08.08.07, 12:59
Hallo
Ich habe eibd und Misterhouse unter ubuntu installiert.
eibd läuft.
Mit Misterhouse komme ich nicht weiter.
misterhouse-2.103 habe ich unter usr/local/mhprod/misterhouse-2.103 installiert.
Die misterhouse-local Dateien von thoern unter
usr/local/mhprod/misterhouse-local.
Ich exportiere die Variable :
mh_parms=/usr/local/mhprod/misterhouse-local/mh.private.ini; export mh_parms
Dann starte ich ./mh in der Konsole.
Wenn ich dann im Browser http;//localhost:8080 die mh-Seite aufrufe kommt immer die Seite von misterhouse-2.103.
Ich glaube die mh.private.ini überschreibt nicht die mh.ini.
Was ist denn im Verzeichnis misterhouse.
Wo liegt den der Fehler.

Gruß NetFritz

thoern
08.08.07, 20:37
@Netfritz

wenn die mh.private.ini verwendet wird, sollte mh auf Port 80 lauschen.

Du exportierst die Variable schon in derselben Shell, in der mh gestartet wird, oder?



@commander: entweder stimmt was mit deiner Perlinstallation nicht, oder dir fehlen die GD-libraries. Du solltest erst einmal versuchen, mh ohne meine Erweiterung ans laufen zu bekommen.

Gruss,

thoern

NetFritz
08.08.07, 21:59
Hallo

@thoern
Du exportierst die Variable schon in derselben Shell, in der mh gestartet wird, oder?
Nein das habe ich nicht gemacht ( LINUX-Anfänger ).
Wenn ich jetzt die Variable im gleichen Shell exportiere wo ich dann ./mh aufrufe bekomme ich folgende Fehlermeldung und mh startet nicht.
- creating http on tcp 0.0.0.0 80 buffered
Couldn't start a tcp server on http 80: IO::Socket::INET: Address already in use
To get mh to run, blank out or change the http_port in mh.ini

Was muß ich da denn ändern,doch wohl in der mh.private.ini.

Gruß NetFritz

RaK
09.08.07, 07:26
- creating http on tcp 0.0.0.0 80 buffered
Couldn't start a tcp server on http 80: IO::Socket::INET: Address already in use
To get mh to run, blank out or change the http_port in mh.ini

Steht doch da ;). Der Port 80 wird bereits benutzt. Das kann ein laufender misterhouse sein oder (wahrscheinlicher) ein laufender apache.


Was läuft den auf Port 80? Starte mal einen Browser und oeffne http://ip.deines.misterhouse.rechners:80 (http://deineip:80)

Was kommt da? Misterhouse? Dann läuft er schon. Apache, dann solltest du den Port für misterhouse in der mh.privat.ini ändern.

Dazu die Zeile
http_port = 80 suchen und auf 8080 (z.B.) ändern.

Viel Erfolg

thoern
09.08.07, 07:56
Auf Shellebene kannst du wie folgt prüfen, was auf Port 80 horcht:

lsof -i tcp:80

Gruss,

thoern

NetFritz
09.08.07, 12:19
Hallo

Port 80 wird von Apache benutzt.
In "mh.privat.ini" http_port auf 8080 geändert.

Jetzt läuft mh.
Unter http://localhost:8080 kann ich
jetzt die Webseite wie bei http://hoerndlein.dyndns.org
sehen.
Vielen Dank für die Hilfe.
Gruß NetFritz

commander
09.08.07, 19:33
@thoern
meine mh version läuft einwandfrei auch mit den "standard" buttons von der default installation.
gd sind installiert, ich vermute im moment auch das es evtl. an der perlinstallation liegt...

commander
09.08.07, 20:34
@thoern
ich verwende Suse 10.0 mit den gd-libarys und starte eine "cleane" Version von mh (2.103)

Wenn ich die http://nglux:8080/bin/button.pl
aufrufe kommt dieser zuletzt genannte Fehler
Auch unter SuSe 8.2 gibt es bei dem Aufruf diese gleiche Fehlermeldung.

http error in http eval of button.pl: Bareword "gdMediumBoldFont" not allowed while "strict subs" in use at (eval 11137090) line 120, line 178. Bareword "gdMediumBoldFont" not allowed while "strict subs" in use at (eval 11137090) line 124, line 178. Bareword "gdMediumBoldFont" not allowed while "strict subs" in use at (eval 11137090) line 158, line 178. Bareword "gdTinyFont" not allowed while "strict subs" in use at (eval 11137090) line 159, line 178.

Vielleicht kommt diese Meldung immer bei einer cleanen mh 2.103?

Leider bin ich mehr der "Anwender" und nicht fitt im Programmieren...
Hast Du eine Idee?

thoern
10.08.07, 11:04
Hallo,

wo genau tauchen die Fehlermeldungen auf?
Im Logfile, auf der Konsole, oder als http-Response im Browser.

Was heisst cleane Installation? Passiert das auch schon, wenn du noch kein eigenes *.mht File angelegt hast?

Gruss,
thoern

commander
10.08.07, 11:12
@thoern
Die Fehlermeldungen erscheinen im Browser als Textmeldung beim aufruf des Links (es wird nur die Fehlermeldung angezeigt, keine Grafiken oder anderes von mh

desweitern wird die Fehlermeldung auch in der Konsole angezeigt, wenn ich mh per "hand" starte.

mit "cleaner" mh distri meine ich einfach das tar verzeichnis auspacken und ./mh im bin verzeichnis starte



Hallo,

wo genau tauchen die Fehlermeldungen auf?
Im Logfile, auf der Konsole beim Starten oder als http-Response im Browser.

Was heisst cleane Installation? Passiert das auch schon, wenn du noch kein eigenes *.mht File angelegt hast?

Gruss,
thoern

thoern
10.08.07, 11:20
tipp mal auf der Console ein

which perl

und

perl -v

Poste den Output

commander
10.08.07, 11:23
This is perl, v5.8.7 built for i586-linux-thread-multi
(with 1 registered patch, see perl -V for more detail)

commander
10.08.07, 11:24
perl -V
ergibt mehr infos:

nglux:~ # perl -V
Summary of my perl5 (revision 5 version 8 subversion 7) configuration:
Platform:
osname=linux, osvers=2.6.12, archname=i586-linux-thread-multi
uname='linux xw8200 2.6.12 #1 smp wed dec 14 13:10:38 utc 2005 i686 i686 i386 gnulinux '
config_args='-ds -e -Dprefix=/usr -Dvendorprefix=/usr -Dinstallusrbinperl -Dusethreads -Di_db imize=-O2 -march=i586 -mtune=i686 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g -Wall -pipe'
hint=recommended, useposix=true, d_sigaction=define
usethreads=define use5005threads=undef useithreads=define usemultiplicity=define
useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
use64bitint=undef use64bitall=undef uselongdouble=undef
usemymalloc=n, bincompat5005=undef
Compiler:
cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliaS=64',
optimize='-O2 -march=i586 -mtune=i686 -fmessage-length=0 -Wall -D_FORTIFY_SOURCE=2 -g -Wall -p
cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing -pip
ccversion='', gccversion='4.0.2 20050901 (prerelease) (SUSE Linux)', gccosandvers=''
intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=4, prototype=define
Linker and Libraries:
ld='cc', ldflags =''
libpth=/lib /usr/lib /usr/local/lib
libs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
libc=/lib/libc-2.3.5.so, so=so, useshrplib=true, libperl=libperl.so
gnulibc_version='2.3.5'
Dynamic Linking:
dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/usr/lib/perl5/5.8
cccdlflags='-fPIC', lddlflags='-shared'


Characteristics of this binary (from libperl):
Compile-time options: DEBUGGING MULTIPLICITY USE_ITHREADS
USE_LARGE_FILES PERL_IMPLICIT_CONTEXT
Locally applied patches:
SPRINTF0 - fixes for sprintf formatting issues - CVE-2005-3962
Built under linux
Compiled at Dec 17 2005 03:22:02
@INC:
/usr/lib/perl5/5.8.7/i586-linux-thread-multi
/usr/lib/perl5/5.8.7
/usr/lib/perl5/site_perl/5.8.7/i586-linux-thread-multi
/usr/lib/perl5/site_perl/5.8.7
/usr/lib/perl5/site_perl
/usr/lib/perl5/vendor_perl/5.8.7/i586-linux-thread-multi
/usr/lib/perl5/vendor_perl/5.8.7
/usr/lib/perl5/vendor_perl



tipp mal auf der Console ein

which perl

und

perl -v

Poste den Output

NetFritz
12.08.07, 10:45
Hallo
commander
Warum installierst Du mh nicht unter Debian oder Ubuntu.
Ich habe mh unter XUbuntu installiert auf einen 700MHz Rechner.
XUbuntu läuft gut auf älteren Rechnern.
Gruß NetFritz

commander
12.08.07, 11:31
werde ich vielleicht mal irgendwann machen.
Jedoch arbeite ich bereits seit Jahren mit SuSE und hier läuft auch einiges an Diensten wie z.B. VDR.


Hallo
commander
Warum installierst Du mh nicht unter Debian oder Ubuntu.
Ich habe mh unter XUbuntu installiert auf einen 700MHz Rechner.
XUbuntu läuft gut auf älteren Rechnern.
Gruß NetFritz

Sallyvan
14.08.07, 11:03
@commander

Ich hatte am Anfang das gleiche Problem, mir half eine Nachinstallation von libgd-gd2-perl


Gruß

NetFritz
22.08.07, 22:40
Hallo
Ich habe rrdtool für die rrd-Datenbank installiert.
in der Console bekomme ich folgende Fehlermeldung.
"08/22/07 09:49:53 PM Reading /usr/local/mhprod/misterhouse-local/mh.private.ini and mh.ini
html_allias alias /rrd dir does not exist, dir=./../data/rrd"
In "misterhouse-local/data/rrd" habe ich 4 Dateien mit ib_temp1.rrd
ib_temp2.rrd
ib_temp3.rrd
ib_temp4.rrd.
Wie muss ich mh konfigurieren das mh in die rrd-Datenbank schreibt.
Gruß NetFritz

lantoeter
29.08.07, 15:38
Hallo zusammen,

ich würd auch gerne mitmachen :-)

Leider hab ich ein Problem mit der Verbindung zwischen eibd und misterhouse :-(

eibd läuft soweit :-)
mit /usr/local/bin/groupswrite local:/tmp/eib 1/5/4 0 > /dev/null wird mein Haupteingangslicht ausgeschaltet :-)
remote ETS3 mit IP geht auch :-)

misterhouse auch :
webseite ist erreichabr und Einstellungen in der my.private.ini sind auch gemacht und ziehen :-)

wenn ich aber jetzt in der my.private.ini folgendes eintrage:
eib_device=/tmp/eib

kommt folgende Fehlermeldung :
EIB: Can't open /tmp/eib at ../lib/EIB_Device.pm line 51.

Übrigens meine EIB Anbindung erfolgt über einen JUNG USB EIB Anschluß und ich verwende Gentoo mit VDR :-)

Weiss jemand was ich als eib_device eintragen muß damits geht ?

Danke

mfg LANToeter

lantoeter
29.08.07, 23:37
Hallo zusammen,

ich würd auch gerne mitmachen :-)

Leider hab ich ein Problem mit der Verbindung zwischen eibd und misterhouse :-(

eibd läuft soweit :-)
mit /usr/local/bin/groupswrite local:/tmp/eib 1/5/4 0 > /dev/null wird mein Haupteingangslicht ausgeschaltet :-)
remote ETS3 mit IP geht auch :-)

misterhouse auch :
webseite ist erreichabr und Einstellungen in der my.private.ini sind auch gemacht und ziehen :-)

wenn ich aber jetzt in der my.private.ini folgendes eintrage:
eib_device=/tmp/eib

kommt folgende Fehlermeldung :
EIB: Can't open /tmp/eib at ../lib/EIB_Device.pm line 51.

Übrigens meine EIB Anbindung erfolgt über einen JUNG USB EIB Anschluß und ich verwende Gentoo mit VDR :-)

Weiss jemand was ich als eib_device eintragen muß damits geht ?

Danke

mfg LANToeter

RaK
30.08.07, 07:30
eibd läuft soweit :-)
mit /usr/local/bin/groupswrite local:/tmp/eib 1/5/4 0 > /dev/null wird mein Haupteingangslicht ausgeschaltet :-)
remote ETS3 mit IP geht auch :-)

Das sieht doch gut aus!


eib_device=/tmp/eib

Bei mir steht

@ European Installation Bus (EIB) config.
@ eib_device is the EIB device name or eibd url. Clear to disable EIB.
@ To use local EIB-Linux driver, set to device name e.g "/dev/eib".
@ To communicate via eibd, set to "ip:hostname"
@ where hostname is host where eibd runs, e.g. "ip:localhost".
eib_device=ip:127.0.0.1


Jemand aus der VDR Community! Klasse. Meiner läuft seit ca 4Jahren.

LG

RaK
30.08.07, 07:33
Wie muss ich mh konfigurieren das mh in die rrd-Datenbank schreibt.
Gruß NetFritz

Bei mir steht in der mh.privat.ini der volle Pfad.

Von alleine schreibt mh meines Wissens nicht in die RRDs.

Ich hab dazu Usercode. Das geht zB so:



for my $window ('r_essen', 'r_wohnen', 'r_arbeiten', 'r_eltern', 'r_lena', 'r_franka') {
system("rrdtool graph $gifdir/$window.gif \\
DEF:p=$rrddir/$window.rrd:position:AVERAGE \\
DEF:f=$rrddir/$window.rrd:fenster:LAST \\
DEF:a=$rrddir/$window.rrd:automode:LAST \\
CDEF:pa=a,p,0,IF \\
CDEF:pm=a,0,p,IF \\
CDEF:pwo=f,.5,+,FLOOR,2,-,p,0,IF \\
CDEF:pwg=f,.5,+,FLOOR,1,-,p,0,IF \\
AREA:pwo#7777ee:Offen \\
AREA:pwg#bbbbee:Gekippt \\
LINE2:pm#770000:manuell \\
LINE1:pa#990000:auto \\
--title $window \\
-u 100 -l 0 -r \\
-h 200 \\
");
}


Ich mach es über einen Systemcall. Das geht sicher auch über RRDx.pm.

LG

commander
30.08.07, 08:48
@RaK
bei mir läuft vdr auch schon seit ca. 4-5 Jahren ;-)
Vielleicht schreibt jemand ja mal ein Eib-plugin...
Über die commands.conf gehts ja auch aber mit plugin wäre es halt schöner.

commander
30.08.07, 08:57
@lantoeter:

Bei mir läuft der eibd mit einer seriellen Schnittstelle an com2. Hierzu lade ich das eibd modul einmal beim start des rechners mit:

# uart abschalten
/bin/setserial /dev/ttyS1 uart none
echo -en "\n com2 für Kernel deaktiviert \n"
cd /usr/local/src/eib-0.2.6.4.1
insmod eib.ko
#eibd -i bcu1:/dev/eib1 -S -D -u

in der mh.private.ini:
# eib1 weil com2
eib_device=/dev/eib1

wie es bei usb aussieht weiss ich nicht.
thoern hat dort stehen (weiss nicht welches Interface er benutzt)

eib_device=ip:localhost


grüsse

lantoeter
30.08.07, 09:03
Hallo Commander und RAk,

jep hab auch seit ca 7 Jahren VDR und seit einem Jahr haben noch vier weitere Kollegen von mir VDR :D.

Hab derzeit auch nur commands.conf, ein plugin wäre geil allein schon wegen einem übersichtlichen Menü unterteilt in Rolläden Licht :-)

eib_device=ip:127.0.0.1 bzw. localhost funktioniert leider auch nicht.

Jetzt kommt folgende Fehlermeldung:

Connect to eibd via ip:localhost failed
Can't communicate with EIB at ../lib/EIB_Device.pm line 47.

schade

Habt ihr beide serielle schnittstellen ?

So sieht mein startskript von eibd aus:

start() {
ebegin "Starting eibd"
usbport=$(findknxusb | /bin/sed -e '1 d' -e 's/device //' | /bin/cut -d':' -f1-2)
/usr/local/bin/eibd --Tunnelling --Discovery --Routing --Server --listen-local usb:$usbport --daemon --pid-file /var/run/eibd.pid
eend $? "Failed to start eibd"
}

stop() {
ebegin "Stopping eibd"
start-stop-daemon --stop \
--pidfile /var/run/eibd.pid \
--exec /usr/local/bin/eibd
local ret=$?
eend ${ret} "Failed to stop eibd"
rm -f /var/run/eibd.pid
return ${ret}
}


Noch irgendwelche Ideen.
Danke im voraus

mfg LANToeter

PS: was sind RRDs ?

Mike
30.08.07, 09:31
@NetFritz
Im mh gibt es das Script "weather_rrd_update.pl". Das kann man über Setup -> "Common code activation" aktivieren. Dann wird automatisch eine rrd-Datenbank gepflegt und es werden die Grafiken erzeugt die man dann unter "HVAC/Weather"->"Weather Station" abrufen kann. Dazu kann man noch einiges konfigurieren. Das findet man aber bei der Script-Aktivierung in der Hilfe.

Damit nun aber Daten in die rrd kommen, muss man die Daten in das globale Weather-Array einfügen. Bei mir sieht das so aus:

# Mike's temperature logger

if ($New_Minute) {
my $wohnzimmer = $WohnzimmerTemp->{state};
my $aussennord = $Aussentemp_Nord->{state};

$Weather{TempOutdoor} = $aussennord;
$Weather{TempIndoor} = $wohnzimmer;
$Weather{HumidSpare1} = $OG_Kind_Helligkeit->{state}/5.0;

$Weather{Summary_Short} = sprintf ("Aussen %.1f°C, Innen %.1f°C",
$aussennord, $wohnzimmer);
} und steht in einem Script Namens "TempSetter.pl" (der Name ist egal) im code-Verzeichnis. Das $Weather{Summary_Short} enthält übrigens den Text der immer am unteren Rand in der Status-Zeile ausgegeben wird.
Für die Grafiken kann man die Namen der Temperatursensoren über den Konfigurationsparameter weather_graph_sensor_names in der mh.private.ini anpassen.

Nachteil: Man ist an den Rahmen gebunden, den Misterhouse vorgibt. Wenn man das nicht will, kann man natürlich auch alles selber scripten ...

Grüße
Mike

NetFritz
30.08.07, 19:17
Hallo
Ich werde die Tips zu rrdtool nochmal durcharbeiten,wird aber wohl ein paar Tage dauern.
Gruß NetFritz

EIB-Freak
31.08.07, 16:17
Ich kämpfe grad massiv mit dem eibd. wenn der mal liefe, würde ich mich an ein knx-plugin für den vdr wagen, bräuchte aber unterstützung.

commander
31.08.07, 19:09
Ich kämpfe grad massiv mit dem eibd. wenn der mal liefe, würde ich mich an ein knx-plugin für den vdr wagen, bräuchte aber unterstützung.

ich habe den eibd im Januar 2006 installiert unter SuSe mit einer seriellen Schnittstelle.

Hier mein protokoll von damals. Vielleicht hilft es Dir:


Installation unter Suse 10.0

Die Installation das BCU 1 Treiber ist einfach:
Treiber (0.2.6.4.1) entpacken, Packet kernel-source nachinstallieren, dann make im Treiber Verzeichnis.
Zur Verwendung ein insmod eib.ko.
Die serielle Schnittstelle muss man mit setserial /dev/ttySx uart none für den Treiber freigeben.
Udev sollte die EIB Devices /dev/eib0 (= ttyS0) bis /dev/eib3 (=ttyS1) anlegen.

Dann kann man darüber Packete im EMI1 Format mit der BCU1 austauschen.

Wenn man eibd installiert, kann man mit
eibd -u /dev/eibX
die BCU daran steueren.

Die einzelnen Client Programmen vom Eibd (bzw dessen Client Library) kann man dann
aufrufen, zB:
groupswrite local:/tmp/eib 1/1/1 0
groupsocketlisten local:/tmp/eib

Ich kann bei EIBD bzw den BCU1 Treiber noch weiterhelfen (Eventuell auf das SF.net Mail Archiv von der
BCU SDK Liste nachschauen, da da vielleicht ein paar Fragen schon beantwortet wurden).
Download pthsem: wget http://www.auto.tuwien.ac.at/%7Emkoegler/pth/pthsem-2.0.5.tar.gz
Unpack it: tar xvzf pthsem-2.0.5.tar.gz
Build it: ( cd pthsem-2.0.5 ; ./configure ; make install)man kopiert/linkt

/usr/local/lib/libpthsem.so*
nach
/usr/lib
Download bcusdk: wget http://www.auto.tuwien.ac.at/%7Emkoegler/eib/bcusdk-0.0.1.tar.gz
Unpack it: tar xvzf bcusdk-0.0.1.tar.gz
Build it: ( cd bcusdk-0.0.1 ; ./configure --enable-onlyeibd --enable-ft12 --enable-pei16 --enable-eibnetip --enable-eibnetipserver ; make install )/


Anwendung:

setserial /dev/ttyS1 uart none #für die 2te serielle
insmod eib.ko #modul des eibd laden
eibd -u /dev/eib1 #eibd für die 2te serielle starten

eibd -i bcu1:/dev/eib1 -S -D -u
wenn ich jetzt :
nglux:/usr/local/src/bcusdk-0.0.1/eibd/examples # ./busmonitor1 local:/tmp/eib

./groupswrite local:/tmp/eib 1/2/10 1 macht licht im büro an

EIB-Freak
31.08.07, 21:44
Danke für das HowTo - ich werde mich morgen mal damit beschäftigen. Ich habe im hinterkopf, dass schon ein Make fehlschlägt.

lantoeter
03.09.07, 10:54
Hallo,

wie schön kann doch folgender Satz sein:

03/09/2007 10:49:07 EIB device "ip:localhost" initialized

:-)
Mit der Hilfe von Martin Kögler
:D DANKE für die Unterstützung:

So gehts auch mit USB:

Zitat:
"misterhouse hat keinen Support für das local: Protocol. Die Angabe eines
Pfads wird als BCU 1 Treiber interpretiert, was nie funktionieren wird.
Damit es funktioniert, muss der eibd für Zugriff vom Netzwerk erlauben.
Dazu müßte der -i Parameter angegeben sein. Haben sie das gemacht?
Dann sollte
/usr/local/bin/groupswrite ip:localhost 1/5/4 0
funktionieren."

hab in mein Startskript jetzt -i mit drin und schon gehts mit

eib_device=ip:localhost
:respekt:

bis später

LANToeter

Mike
04.09.07, 10:38
und zwar hier: http://misterhouse.wikispaces.com/EIBHowTo

Hat das noch keiner gesehen?

Mike

lantoeter
04.09.07, 14:10
Hallo,

doch zu früh gefreut ?

folgender Fehler kommt bei einem Windows Zugriff auf eibd unter gentoo mit Misterhouse:

04/09/2007 13:55:37 EIB device "ip:192.168.50.26" initialized
- creating generic device eib on ip:192.168.50.26
Your vendor has not defined Fcntl macro O_NONBLOCK, used at script/mh line 5392.
mh had an error on startup, will not restart

Ausserdem läßt sich zwar misterhouse unter gentoo starten und alle 2 Minuten meldet sich eine FBH unter misterhouse
04/09/2007 13:59:19 EIB write from 1.1.41 to 6/0/4 : "[0]" . Item not found.

aber es kommt trotzdem eine Fehlermeldung beim starten von misterhouse
ist das ok so oder stimmt da auch noch was nicht ?

- creating xpl_send_49153 on udp 49153 send
04/09/2007 13:56:34 EIB device "ip:127.0.0.1" initialized
- creating generic device eib on ip:127.0.0.1
04/09/2007 13:56:34 Can't open generic device eib: ip:127.0.0.1: No such file or directory
- process id 19031 written to /opt/misterhouse/data/mh.pid

So starte ich den eibd unter gentoo:

#!/sbin/runscript
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

start() {
ebegin "Starting eibd"
usbport=$(findknxusb | /bin/sed -e '1 d' -e 's/device //' | /bin/cut -d':' -f1-2)
/usr/local/bin/eibd --Tunnelling --Discovery --Routing -i --Server --listen-local usb:$usbport --daemon --pid-file /var/run/eibd.pid
eend $? "Failed to start eibd"
}

stop() {
ebegin "Stopping eibd"
start-stop-daemon --stop \
--pidfile /var/run/eibd.pid \
--exec /usr/local/bin/eibd
local ret=$?
eend ${ret} "Failed to stop eibd"
rm -f /var/run/eibd.pid
return ${ret}
}

Danke für eure Hilfe.

Mit freundlichen Grüßen

LANToeter

Mike
04.09.07, 14:24
Die Meldung

04/09/2007 13:59:19 EIB write from 1.1.41 to 6/0/4 : "[0]" . Item not found.
besagt nur, dass eine EIB-Adresse empfangen wurde die MH nicht kennt. Das EIB-Item wurde also nicht gefunden. Es fehlt die Definition der Adresse 6/0/4 in deiner *.mht-Datei.

Die Meldung

04/09/2007 13:56:34 Can't open generic device eib: ip:127.0.0.1: No such file or directory kannst du ignorieren.

Mike

lantoeter
26.09.07, 10:56
Hallo,

misterhouse läuft und läuft und läuft ...
:cool:

ausserdem macht es riesig spass Sachen zu programmieren :D

Nun noch eine frage an die misterhouse experten.

Wie kann ich einen Befehl in der Form:
schalte das Licht $Licht_buero aus
an misterhouse von einer anderen Applikation aus schicken ?
probiert hab ich schon mhsend und telnet.
Aber ich find nirgens eine Beschreibung welche Befehle ich da genau verwenden muß.

mfg LANToeter

commander
26.09.07, 11:28
dies funktioniert wie vermutet z.b. mit mhsend
hierzu muss im code verzeichnis eine datei vorhanden sein:
hier mein bsp:
# Category = Test

#@ commandos per vdr ueber mhsend weitergeben
#@ ./mhsend -host 192.168.1.242 -run "vdr test"
#@ Try changing editing this file then 'Reload Code' to test

my $state;
$my_test1 = new Voice_Cmd 'mh [tuer_hof,tuer_klaus,3]';

if ($state = said $my_test1) {

if ($state == "tuer_hof") {
print_log "Haustuer Burghofstrasse per Telefon geöffnet";
$haustuer_oeffner->set_with_timer(ON, 10, OFF);


}
elsif ($state == "tuer_klaus") {

print_log "licht flur";
#$flur_licht_schalten->set_with_timer(ON, 2, OFF);
my $state = ('on' eq state $flur_licht) ? 'off' : 'on';
set $flur_licht $state;

# display "You ran test 2 on $Date_Now";
}
elsif ($state == 3) {
set $kueche_kaffee_sd ON;

print_log "der Kaffeeautomat wurde eingeschaltet";
}
}


aufgerufen wird dies mit dem script mhsend:
z.B.
/opt/mh/bin/./mhsend -host 192.168.1.242 -run "mh tuer_hof"

ich verwende dies um einfache befehler von vdr "ans Haus" zu übergeben
hier die bsp zeilen aus der commands.conf meines vdr´s:
Aufnahmen scannen : touch /data/video/video0/.update
haustuer auf: /opt/mh/bin/./mhsend -host 192.168.1.242 -run "mh tuer_hof"
tuer oben: /opt/mh/bin/./mhsend -host 192.168.1.242 -run "mh tuer_klaus"
kaffee: /opt/mh/bin/./mhsend -host 192.168.1.242 -run "mh 3"

lantoeter
26.09.07, 15:21
Hallo,

versteh ich das jetzt richtig das ich eine Datei z.b. vdr.pl in der form schreiben muß:

if ($state == "licht_buero_1") {
$licht_buero_1->set('ON');
}

if ($state == "licht_hwr_1") {
$licht_hwr_1->set('ON');
}


usw.

d.h. für jede EIB Komponente ein Eintrag für an und wieder einen für aus ?

Gibts da net ne andere Methode?

Eine Methode mit der ich ihm alles mitgeben kann z.B.
mhsend licht_buero_1 ON bzw.
mhsend rolladen_kueche UP

mfg LANToeter

lantoeter
27.09.07, 13:25
Hallo,

hab folgendes gefunden :
http://www.nabble.com/mhsend-syntax-tf1411564.html#a3802454

D.h. der command:
/opt/misterhouse/mh/bin/mhsend -run set \$Licht_Flur_KG OFF

schaltet das Licht aus bzw.
/opt/misterhouse/mh/bin/mhsend -run set \$Licht_Flur_KG ON
ein :-)

viel spass
LANToeter

lantoeter
29.10.07, 14:45
Hallo zusammen,

bin immer noch am rumspielen mit misterhouse :-)

wollte jetzt folgendes machen :
# Licht Bad Wand geht nach 60 sec aus, wenn es angeschaltet wird
if (state_changed $Licht_Wand_Bad_EG eq ON) {
set_with_timer $Licht_Wand_Bad_EG OFF, 60;
}

aber immer wenn ich den Schalter für Licht Bad Wand EG
betätige geht das licht sofort wieder aus und dann in abständen von 60 sekunde an und wieder aus ?
was mach ich falsch ?

mfg LANToeter

commander
29.10.07, 14:51
versuch mal:

if (state_now $Licht_Wand_Bad_EG eq ON) {
$Licht_Wand_Bad_EG->set_with_timer(ON, 60, OFF);
}

RaK
29.10.07, 15:04
set_with_timer $Licht_Wand_Bad_EG OFF, 60;


Die Syntax muesste lauten

set_with_timer $Garderobe '', 60, OFF;
set_with_timer Objekt state_now, offset, state_after_offset

state_now kann man auch leer lassen (Leerstring).

Kleiner Nachtrag. Wenn du das Licht binnen 10sec ausschaltes und nach weiteren 10sec wieder ein, dann geht es nach weniger als 60sec wieder aus (Der Timer vom ersten mal schlägt zu).

Wenn man das verhindern möchte, dann macht mann folgendes:


my $HWRTimer = new Timer();
$HWR->tie_event( 'THS_HWR($state)' );

sub THS_HWR {
my ($state) = @_;
if ($state eq OFF) {
$HWRTimer->unset();
} elsif ($state eq ON) {
$HWRTimer->set( 15*60, 'set $HWR OFF' );
}
}

LG

hartwigm
21.09.08, 18:56
Hallo,
ich habe die Scripte hier nachvollzogen und ich kann das auch nachstellen, solange ich keine Stateänderungen abfrage.

Ich habe eine Haustüre mit ReedKontakt.
Auf dem ETS Monitor kann ich nachvollziehen dass diese eine Wertänderung von 0 auf 1 senden wenn die Türe geöffnet wird.

In der eib_item
ETS1,1/1/1,Haustuere
ETS1,1/1/7,Lampe_1

mein Script

if (state_changed $Haustuere) {
set Lampe_1 on;
}

erkennt eine Stateänderung nicht

Habt Ihr hier ein Idee?

groupswrite ip:127.0.0.1 1/1/7 1 schalte das Licht korrekt.

Gruß Hartwig

commander
21.09.08, 19:20
verwende am besten: state_now

zB.:
play(file => 'jonas/verandaauf.wav') if (state_now $terrassen_tuersensor eq 'on');

oder klassisch:

if (state_now $drucker_sd eq 'on') {
speak ("Drucker an");
}

hartwigm
21.09.08, 20:02
Lieder hat dies nichts gebracht.

Ich habe dies nun wie folgt geändert:



if (state_now $Klingel_OG1 eq 'on') {
set $LED_BAD ON;
print("Klingel OG1");
system("/etc/asterisk/ast2vdr","Es klingelt an der Wohnungstuere");
}
else
{
# print("keiner will zu mir");
# system("/etc/asterisk/ast2vdr","Hallo World");
}




eib_items.mht

#------------------------EIB DATEN BAD--------------
EIB1, 0/2/30, BEW_BAD,Bewegung|BAD
EIB1, 1/2/1, LICHT_BAD,Beleuchtung|BAD
EIB1, 1/2/2, LED_BAD,Beleuchtung|BAD
EIB1, 3/2/1, Luefter_BAD,Lueftung|BAD
EIB1, 1/2/30, Flur_Lampe
EIB1, 1/2/31, Flur_Lampe2
#--------------------------Klingel------------
EIB1, 0/2/33, Klingel_OG1,Alarm
EIB1, 0/2/40, Wohnungstuere_OG1

Sallyvan
21.09.08, 20:39
Auf jeden Fall erstmal den ELSE-Zweig weg lassen, da läuft er ja 100te Mal pro Sekunden durch.

if (state_changed $Klingel_OG1 eq ON) {
print_log '--> Es klingelt.' ;
set $LED_BAD ON;
}

Ansonsten den Zweig auf ein Minimum reduzieren und im Print_log-file/bzw. erscheint auch auf der Konsole erstmal schauen ob er durch diesen Zweig durchläuft. Sicherheitshalber MH nach jeder Änderungen neu starten.

hartwigm
25.09.08, 20:44
Hallo,

Misterhouse zeigt mir nach wie vor keine State an.

Schalten geht aber der Bus kann scheinbar nicht gelesen werden.

Ich habe nun mal vbusmontor1 ip:127.0.0.0.1 aufgerufen, damit sollte ich ja den busverkehr sehen.

Was ich sehe ist aber nur das Telegramm das ich selbst über groupswrite absetze. Die Bustelegramme ausgelöst durch Eib Schalter etc. zeigt vbusmonitor nicht an. Das Problem ist somit nicht mh sondern der eibd.

Habt ihr hier einen Tipp? Komme da leider ncht weiter

jonofe
25.09.08, 22:23
siehe meine Antwort HIER (http://www.knx-professionals.de/forum/showpost.php?p=79387&postcount=17)