Hi,
das mit dem Usercode ist relativ einfach. Beispiel:
waermepumpe.pl
Das Skript legst du im code-Verzeichnis von mistereib ab. Mistereib restarten, Skript wird ausgeführt.
Zum testen beim Programmieren gehst du wie folgt vor:
Die Variable mh_parms von Mistereib exportieren, z.B.
export mh_parms=/path_to_mistereib/mh.private.ini
Dann Misterhouse nur mit dem Skript aufrufen:
/usr/local/misterhouse/bin/mh waermepumpe.pl
Hier noch ein Beispiel einer Heizungsautomatik als Usercode:
heizungsautomatik.pl
Viel Erfolg,
thoern
das mit dem Usercode ist relativ einfach. Beispiel:
waermepumpe.pl
Code:
if (time_cron('5 * * * *')) {
# hier steht der Code der die WP ausliest und im Anschluss
# $MeinEIB5Objekt->set($wert) ausführt.
};
Zum testen beim Programmieren gehst du wie folgt vor:
Die Variable mh_parms von Mistereib exportieren, z.B.
export mh_parms=/path_to_mistereib/mh.private.ini
Dann Misterhouse nur mit dem Skript aufrufen:
/usr/local/misterhouse/bin/mh waermepumpe.pl
Hier noch ein Beispiel einer Heizungsautomatik als Usercode:
heizungsautomatik.pl
Code:
if ($Heizungsautomatik->state eq 'on') {
# Montag - Freitag Raumtemperaturen um 4:00 Uhr anheben:
if (time_cron('0 4 * * 1-5')) { heizung_anheben() };
# Samstag und Sonntag Raumtemperaturen um 6:30 Uhr anheben:
if (time_cron('0 6 * * 6,0')) { heizung_anheben() };
# Sonntag - Donnerstag Raumtemperaturen um 22:30 absenken:
if (time_cron('30 22 * * 0-4')) { heizung_absenken() };
# Freitag und Samstag Raumtemperaturen um 23:30 absenken:
if (time_cron('30 23 * * 5-6')) { heizung_absenken() };
# Montag, Dienstag, Donnerstag um 7:30 Uhr Raumtemperatur
# absenken und um 11:30 Uhr wieder auf normal:
if (time_cron('30 7 * * 1,2,4')) { heizung_absenken() };
if (time_cron('30 11 * * 1,2,4')) { heizung_normal() };
# Mittwoch und Freitag Raumtemperatur um 08:30 auf normal:
if (time_cron('30 8 * * 3,5')) { heizung_normal() };
} elsif ($Heizungsautomatik->state_changed) {
heizung_normal();
}
sub heizung_anheben {
$EG_RCD_Kueche->set(23);
$EG_RCD_Bad->set(24);
$DG_RCD_Bad->set(24);
}
sub heizung_normal {
$EG_RCD_Kueche->set(22);
$EG_RCD_Bad->set(24);
$DG_RCD_Bad->set(22);
}
sub heizung_absenken {
$EG_RCD_Kueche->set(20);
$EG_RCD_Bad->set(22);
$DG_RCD_Bad->set(20);
}
thoern



Kommentar