#################################################### # $Id$ #################################################### # # History: # # 2015-05-09: Move mail related code to MSGMail, # and file related code to MSGFile, # rewrite to use delegates for compatibility # 2015-05-07: Determine which SSL implementation to use # 2015-05-06: Tidy up code for restructuring # 2015-05-05: Remove dependency on Switch # 2012 : Created by rbente # package main; use strict; use warnings; my %sets = ( "send" => "MSG", "write" => "MSG", ); sub MSG_Initialize($) { my ($hash) = @_; $hash->{SetFn} = "MSG_Set"; $hash->{DefFn} = "MSG_Define"; $hash->{AttrList} = "loglevel:0,1,2,3,4,5,6"; } sub MSG_Set($@) { my ($hash, @a) = @_; return "Unknown argument $a[1], choose one of -> " . join(" ", sort keys %sets) if (!defined($sets{ $a[1] })); my $name = shift @a; return "no set value specified" if (int(@a) < 1); return "Unknown argument ?" if ($a[0] eq "?"); # Check, if we have send or wait as parameter if (($a[0] eq "send") || ($a[0] eq "write")) { # Check if the device is defined that we like to use as frontend return "Please define $a[1] first" if (!defined($defs{ $a[1] })); if (!defined($defs{ $a[1] }{TYPE})) { return "TYPE for $defs{$a[1]} not defined"; } elsif ($defs{ $a[1] }{TYPE} eq "MSGFile") { fhem("set $a[1] write"); } elsif ($defs{ $a[1] }{TYPE} eq "MSGMail") { fhem("set $a[1] send"); } else { return "MSG Filetype $defs{$a[1]}{TYPE} unknown"; } } ###> END if(($a[0] eq "send") || ($a[0] eq "write")) my $v = join(" ", @a); Log GetLogLevel($name, 2), "MSG set $name $v"; # update stats $hash->{CHANGED}[0] = $v; $hash->{STATE} = $v; $hash->{READINGS}{state}{TIME} = TimeNow(); $hash->{READINGS}{state}{VAL} = $v; return undef; } sub MSG_Define($$) { my ($hash, $def) = @_; my @a = split("[ \t][ \t]*", $def); my $errMSG_ = "wrong syntax: define MSG"; return $errMSG_ if (@a != 2); $hash->{STATE} = "ready"; $hash->{TYPE} = "MSG"; return undef; } 1; =pod =begin html

MSG



=end html =cut