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