Hallo,
ich bin noch sehr neu hier und hoffe das ist der richtige Bereich für diese Art von Fehlern.
Ich habe mit Residents, Roommates usw. gestern gespielt und denke eigentlich nicht das es an der Konfiguration liegt, aber ich erhalte folgenden Fehler wenn ich ein notify für Roommates erstelle. Der FHEM Server stürzt dann ab und ich muss ihn manuell wieder starten.
2015.02.14 10:15:52 0: Server started with 19 defined entities (version $Id: fhem.pl 7919 2015-02-08 18:35:19Z rudolfkoenig $, os linux, user pi, pid 6970)
2015.02.14 10:15:59 1: PERL WARNING: Use of uninitialized value $time in split at ./FHEM/20_ROOMMATE.pm line 839.
Month '-1' out of range 0..11 at ./FHEM/20_ROOMMATE.pm line 841
Wenn ich folgende Konfiguration in die hem.cfg einfüge kommt es dazu:
# Roommates
define rgr_Residents RESIDENTS
attr rgr_Residents alias Residents
attr rgr_Residents devStateIcon .*home:status_available:absent .*absent:status_away_1:home .*gone:status_standby:home .*none:control_building_empty .*gotosleep:status_night:asleep .*asleep:status_night:awoken .*awoken:status_available:home
attr rgr_Residents group Home State
attr rgr_Residents icon control_building_filled
attr rgr_Residents room Residents
attr rgr_Residents webCmd state
define rr_Rene ROOMMATE rgr_Residents
attr rr_Rene alias Rene
attr rr_Rene devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown
attr rr_Rene group Residents
attr rr_Rene icon people_sensor
attr rr_Rene room Residents
attr rr_Rene rr_locationHome home present
attr rr_Rene rr_realname alias
attr rr_Rene sortby 1
attr rr_Rene webCmd state
define n_rr_Rene.presence notify anwesend.iPhone5:state:.* set rr_Rene location $EVTPART1
Was mache ich falsch, bzw. wieso wird dieser Fehler ausgelöst?
Ich bin wie gesagt erst ganz frisch eingestiegen und habe noch nicht wirklich Ahnung von FHEM und Perl, aber die Routine die den Fehler verursacht habe ich schon ausgemacht, verstehe nur den Fehler noch nicht.
###################################
sub ROOMMATE_Datetime2Timestamp($) {
my ($datetime) = @_;
my ( $date, $time, $y, $m, $d, $hour, $min, $sec, $timestamp );
( $date, $time ) = split( ' ', $datetime );
( $y, $m, $d ) = split( '-', $date );
( $hour, $min, $sec ) = split( ':', $time );
$m -= 01;
$timestamp = timelocal( $sec, $min, $hour, $d, $m, $y );
return $timestamp;
}