Hauptmenü

notify macht teils Fehler

Begonnen von Thoffi1978, 27 November 2015, 19:51:10

Vorheriges Thema - Nächstes Thema

Thoffi1978

Hallo,
ich habe eine Steckdose die ich schalte wenn Handy_da ist.
Das klappt auch soweit.
handy_da:present  {if((localtime)[2]~~[07..21]) {fhem("set Schalter3 on")}}

Jetzt wollte ich das so machen, das wenn die Handys aus sindn die Lampe wieder erlichscht.
handy_da:absent {if((localtime)[2]~~[07..21]) {fhem("set Schalter3 on-for-timer 600")}}

Beim Ausschalten kommt es jedoch zu folgendem Fehler im Log:
2015.11.27 19:42:22 1: PERL WARNING: Smartmatch is experimental at (eval 29142) line 1.
2015.11.27 19:42:22 3: eval: my $EVENT='absent';my $NAME='handy_da';my $EVTPART0='absent';my $SELF='Handy_da_Licht_Aus';my $TYPE='structure';{if((localtime)[2]~~[07..21]) {fhem("set Schalter3 on-for-timer 600")}}


Hier die List von handy_da
Internals:
   ATTR       room
   DEF        room Coolstream Petra_Handy Torsten_Handy
   NAME       handy_da
   NR         142
   NTFY_ORDER 50-handy_da
   STATE      absent
   TYPE       structure
   Content:
     Coolstream absent
     Petra_Handy absent
     Torsten_Handy absent
   Readings:
     2015-11-27 19:48:35   LastDevice      Torsten_Handy
     2015-11-27 19:48:35   LastDevice_Abs  Torsten_Handy
     2015-11-27 19:48:35   state           absent
Attributes:
   clientstate_behavior relative
   clientstate_priority present absent


Vielen Dank schon mal und ein schönes Wochenende
Hoffi

krikan

Hallo Hoffi!
Das notify macht keinen Fehler.
Du erhältst vielmehr eine Perl Warnung, da Du in Deinem Perl-Code den Smartmatch Operator ~~ verwendest. Der löst eben diese Warnmeldung ab bestimmten Perl-Versionen aus. Details findest Du bei http://perldoc.perl.org. Ändere einfach Deinen Perl-Code entsprechend ab und die Warnung wird vermutlich verschwinden.
Gruß, Christian

Thoffi1978

#2
ok... ??? Perl-Code ändern. Wie?

Alternativ kann man da auch ein DOIF draus basteln oder?
Könnt Ihr mir da ein Tipp zu geben? Mit den unterschiedlichen Klammern, komme ich immer durcheinander.
Wäre das so eine DOIF Möglichkeit?
define di_handy_da DOIF ([handy_da] eq "present")  (set Licht on) DOELSE  (set Licht off)


Dank
Hoffi

Puschel74

Der gezeigte Code ist weder notify noch DOIF sondern eine structure - wenn ich das richtig gesehen habe.
Man sollte sich schon auf eines festlegen um zu einer Lösung zu kommen.

Aber das ein ändern von on auf on-for-timer die Meldung auslöst lässt mich ... etwas wundern.
Für das DOIF wirst du aber vermutlich noch die notwendigen Attribute brauchen - siehe commandref (auch auf deutsch).
Zotac BI323 als Server mit DBLog
CUNO für FHT80B, 3 HM-Lan per vCCU, RasPi mit CUL433 für Somfy-Rollo (F2F), RasPi mit I2C(LM75) (F2F), RasPi für Panstamp+Vegetronix +SONOS(F2F)
Ich beantworte keine Supportanfragen per PM! Bitte im Forum suchen oder einen Beitrag erstellen.