subscriptions for Mac Growl?

28 views
Skip to first unread message

ctr

unread,
Dec 4, 2011, 2:34:41 PM12/4/11
to growld...@googlegroups.com
Reading about "subscriptions" (receiving events from another system) I think this is only available on Growl for Windows.
So whats "the right" way to notify multiple internal receivers if I don't know if the receiver is up or not?

I'd like to send Growl and Prowl notifications from a Linux box used for home automation to a few Macs and iOS devices.
Prowl is already working fine (through API) and Growl (using Prowl::GNTP for Perl) also works as long as *all* receivers are up, but not when one of them is not running.
If I have several receivers (in multiple networks, going over firewalls!), how do I properly send messages to all of them that are up and running? I assume this would have not been a problem with UDP, but with GNTP I'm running into a IO::Socket::INET timeout that's longer than my "allowed execution time" (10s) on my home automation device...

Zac Bowling

unread,
Dec 4, 2011, 3:34:10 PM12/4/11
to growld...@googlegroups.com
Ooo. Perl. 

I didn't know about about Growl::GNTP. What kind of home automation device do you have? Curious. Wondering why it has strict execution time limits. 

It's been a long time since I've done perl, but just guessing here, you should probably just lower the timeout interval to IO::Socket::INET in the Growl::GNTP code… 

Something like this? 
    my $sock = IO::Socket::INET->new(
        PeerAddr => $self->{PeerHost},
        PeerPort => $self->{PeerPort},
        Proto    => $self->{Proto},
	Timeout => 5,
    );


-- 
Zac Bowling


--
You received this message because you are subscribed to the Google Groups "Growl Discuss" group.
To view this discussion on the web visit https://groups.google.com/d/msg/growldiscuss/-/YvhZK_V4UogJ.
To post to this group, send email to growld...@googlegroups.com.
To unsubscribe from this group, send email to growldiscuss...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/growldiscuss?hl=en.

ctr

unread,
Dec 4, 2011, 5:06:44 PM12/4/11
to growld...@googlegroups.com
This is for a Wiregate device that I have for my KNX installation. It's really great, but it has a 10s execution timeout for its (perl) plugins.
I already messed with the Timeout int the GTNP.pm but thats really only hald half of the story as it would not detect a device coming up or going down. I would have to implement device monitoring/detection to get this anywhere near usable, and that would still be for known and fixed IP addresses only.
I can't beliebe I'm the first person stumbling upon this lack of device detection/multicast capability. I guess it just worked out of the box in UDP times, but afaict the 1.3.x Growl builds do not even support at all (found no listening port)?

Daniel Siemer

unread,
Dec 5, 2011, 7:43:57 AM12/5/11
to Growl Discuss
There is no multicast support (and no, you aren't the first to mention
it), but we do support and broadcast on Bonjour/zeroconf when
Growl.app is available and ready to receive incoming packets. GNTP
Subscription would require you to support receiving and responding to
subscription requests, and still, if a machine went offline before its
TTL was up, you would have timeouts trying to reach it potentially,
and for the time being, Growl.app does not support subscribing or
being subscribed to (full subscription support is being worked on)

A couple options, which don't involve bonjour necessarily, not knowing
much about perl, or the environment you are running this in. Hop the
data on the linux box out to where you can do simultaneous/
asynchronous/non timed attempts. Or send the data to one box with
Growl.app always up on it, and have it forward from there to all the
other boxes (GNTP does support multi hop forwarding).

Reply all
Reply to author
Forward
0 new messages