[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: Help needed with Sockets, using Mister House...



Jack Edin wrote:
> Hello,
>
> And thank you for making the effort!
>
> You've written in Perl, and I need it in Mister House... Similar..?

Mister House is WRITTEN IN Perl.  You're running a Perl program.  I
know, 'cause I gutted MH to use in my (MUCH simplified, customize) home
automation system.  The code I suggested could be incorporated into MH.
  You would move the "use" statements out of any subs, ahead of where
you're using the socket stuff. In fact, for MH, you should drop the "use
strict;" statement entirely.  And MH might already use Sockets.  You can
search for it.

> In MH there is a "Socket_Item" and it has Parameters O'plenty, separated
> by commas - very much like your "socket" command, maybe more...

Probably, but that doesn't mean you HAVE to use it if you don't have
time to figure it out.

> I suspect much of your code example will work. The definition of your
> variables, etc. I tried putting them in quotes within the Socket_item
> statement. Wasn't certain if I wanted Single (') or double (") quotes.

The only difference between single and double quotes is interpolation of
variables contained within the string.  Single quoted strings will not
have variables replaced with their content, while double-quoted strings
will.

> I found an example (earlier - for the RF portion) which I copied and
> pasted into my code file. Bruce was kind enough to correct it for me.
> The example used a "=" and it should have been an "eq". Who knew?!!
>
> Currently Bruce is too busy to reply. I understand, but now I'm high and
> dry!
>
> Again; thanks for all of your efforts...
>
> Sincerely,
>
> Jack
> ;-)
>
>
> rlsusenet@xxxxxxxxxxxxxxxxxxxxxxxx wrote:
>  > You need to open and print to a socket.  I haven't actually tried
>  > this, but adapting from some code in "Programming Perl", it might
>  > go something like this...
>  >
>  > require 5.002;
>  > use strict;
>  > use Socket;
>  > my $remote = "192.168.1.123";    # can be a domain name
>  > my $port = 2101;
>  > my $iaddr = inet_aton($remote);
>  > my $paddr = sockaddr_in($port, $iaddr);
>  > my $proto = getprotobyname('tcp');    # unless your device takes 'udp'
>  > socket(MYSOCK, PF_INET, SOCK_STREAM, $proto) or die "socket: $!";
>  > connect(SOCK, $paddr);
>  > print SOCK "Mail\n";
>  > close(SOCK);
>
>
>> Jack Edin wrote:
>>
>>> Hello,
>>>
>>> Please excuse the newbie question...
>>>
>>> I want to send the word "Mail", followed by a CR over the Ethernet to
>>> IP address 192.168.1.123 on Port 2101.
>>>
>>> I searched the MH Docs to no avail...
>>>
>>> I looked at various code examples, and tried many things.
>>> I can't get it right!
>>>
>>> The code I use now looks like this:
>>>
>>>  # Window/Door sensor items
>>>
>>>  if ($state = state_now $Mailbox_sensor) {
>>>    $state = "open"   if ($state =~ /^alert/i);
>>>    $state = "closed" if ($state =~ /^normal/i);
>>>    print_log "Mailbox's front door is now $state";
>>>
>>>    if ($state eq "open"){play(`file` => "GOTMAIL.wav")}
>>>  }
>>>
>>> I'm using an X10 DS10A embedded into the door of my new plastic mailbox.
>>>
>>> Here is a picture:
>>>
>>> http://www.logicunlimited.com/images/sModdedDoor-Front&Back+.jpg
>>>
>>> I have an Elk M1 panel. It can listen to port 2101 on the Ethernet...
>>>
>>> I want Mister House to trigger the mighty M1, via Ethernet in this
>>> manor.
>>>
>>> Can anybody help?
>>>
>>> I'm such a newbie I may need you to show me where to insert it into
>>> my code, too.
>>>
>>> Just get one "(" in the wrong place, or forget a "}" and you're not
>>> getting there!
>>>
>>> Been doing alot of head scratchin. Please help!
>>>
>>> Thankx, in advance!
>>>
>>> Jack
>>> :)


alt.home.automation Main Index | alt.home.automation Thread Index | alt.home.automation Home | Archives Home