|
From: <mi...@us...> - 2015-01-02 23:21:59
|
Revision: 2303
http://sourceforge.net/p/openautomation/code/2303
Author: mivola
Date: 2015-01-02 23:21:52 +0000 (Fri, 02 Jan 2015)
Log Message:
-----------
add some "AddOns" for Logikprozessor.pl
Added Paths:
-----------
wiregate/plugin/generic/Logikprozessor.addRssLogViaCurl.pl
wiregate/plugin/generic/Logikprozessor.addRssLogViaHttpRequest.pl
wiregate/plugin/generic/Logikprozessor.sendNma.pl
Added: wiregate/plugin/generic/Logikprozessor.addRssLogViaCurl.pl
===================================================================
--- wiregate/plugin/generic/Logikprozessor.addRssLogViaCurl.pl (rev 0)
+++ wiregate/plugin/generic/Logikprozessor.addRssLogViaCurl.pl 2015-01-02 23:21:52 UTC (rev 2303)
@@ -0,0 +1,35 @@
+#!/usr/bin/perl -w
+##################
+# Logikprozessor AddOn: create RSS Log via HTTP::Request
+##################
+#
+# COMPILE_PLUGIN
+
+
+sub addRssLog {
+ my (%parameters)=@_;
+ my ($title, $content, $tags, $url);
+
+ my $settings=$plugin_cache{"Logikprozessor.pl"}{settings};
+
+ # Parameter ermitteln
+ # dom, 2012-11-05: $settings auch hier auswerten. Damit kann addRssLog() direkt aus der Logik aufgerufen werden!
+ $title = $parameters{title} || $settings->{rssLog}{title} || '';
+ $content = $parameters{content} || $settings->{rssLog}{content} || '';
+ $tags = $parameters{tags} || $settings->{rssLog}{tags} || '';
+ $url = $parameters{url} || $settings->{rssLog}{url} || '';
+
+ # HTTP Request aufsetzen
+ my $requestURL;
+
+ $requestURL = sprintf($url."?t=%s&c=%s&tags=%s",
+ uri_escape(encode("utf8", $title)),
+ uri_escape(encode("utf8", $content)),
+ uri_escape(encode("utf8", $tags)));
+
+ plugin_log($plugname, "RSSLog url: $requestURL") if $parameters{debug};
+ my $curlResult = system("curl -s \"$requestURL\" &");
+ plugin_log($plugname, "RSSLog curlResult: $curlResult") if $parameters{debug};
+
+ return undef;
+}
Added: wiregate/plugin/generic/Logikprozessor.addRssLogViaHttpRequest.pl
===================================================================
--- wiregate/plugin/generic/Logikprozessor.addRssLogViaHttpRequest.pl (rev 0)
+++ wiregate/plugin/generic/Logikprozessor.addRssLogViaHttpRequest.pl 2015-01-02 23:21:52 UTC (rev 2303)
@@ -0,0 +1,47 @@
+#!/usr/bin/perl -w
+##################
+# Logikprozessor AddOn: create RSS Log via HTTP::Request
+##################
+#
+# COMPILE_PLUGIN
+
+sub addRssLogViaHttpRequest {
+ my (%parameters)=@_;
+ my ($title, $content, $tags, $url);
+
+ my $settings=$plugin_cache{"Logikprozessor.pl"}{settings};
+
+ # Parameter ermitteln
+ # dom, 2012-11-05: $settings auch hier auswerten. Damit kann addRssLog() direkt aus der Logik aufgerufen werden!
+ $title = $parameters{title} || $settings->{rssLog}{title} || '';
+ $content = $parameters{content} || $settings->{rssLog}{content} || '';
+ $tags = $parameters{tags} || $settings->{rssLog}{tags} || '';
+ $url = $parameters{url} || $settings->{rssLog}{url} || '';
+
+ use LWP::UserAgent;
+ use URI::Escape;
+ use Encode;
+
+ # HTTP Request aufsetzen
+ my ($userAgent, $request, $response, $requestURL);
+ $userAgent = LWP::UserAgent->new;
+ $userAgent->agent("WireGatePlugin/1.0");
+
+ $requestURL = sprintf($url."?t=%s&c=%s&tags=%s",
+ uri_escape(encode("utf8", $title)),
+ uri_escape(encode("utf8", $content)),
+ uri_escape(encode("utf8", $tags)));
+
+ $request = HTTP::Request->new(GET => $requestURL);
+ #$request->timeout(5);
+
+ $response = $userAgent->request($request);
+
+ if ($response->is_success) {
+ plugin_log($plugname, "RSSLog erfolgreich abgesetzt: $title, $content, $tags, $url") if $parameters{debug};
+ } else {
+ plugin_log($plugname, "RSSLog ($requestURL) nicht abgesetzt: " . $response->content);
+ }
+
+ return undef;
+}
Added: wiregate/plugin/generic/Logikprozessor.sendNma.pl
===================================================================
--- wiregate/plugin/generic/Logikprozessor.sendNma.pl (rev 0)
+++ wiregate/plugin/generic/Logikprozessor.sendNma.pl 2015-01-02 23:21:52 UTC (rev 2303)
@@ -0,0 +1,56 @@
+#!/usr/bin/perl -w
+##################
+# Logikprozessor AddOn: create RSS Log via HTTP::Request
+##################
+#
+# COMPILE_PLUGIN
+
+
+sub sendNma {
+ my (%parameters)=@_;
+ my ($priority, $event, $description, $application, $url, $apikey, $targetUrl);
+
+ my $settings=$plugin_cache{"Logikprozessor.pl"}{settings};
+
+ # Parameter ermitteln
+ # dom, 2012-11-05: $settings auch hier auswerten. Damit kann addRssLog() direkt aus der Logik aufgerufen werden!
+ $priority = $parameters{priority} || $settings->{nma}{priority} || 0;
+ $event = $parameters{event} || $settings->{nma}{event} || '[unbenanntes Ereignis]';
+ $description = $parameters{description} || $settings->{nma}{description} || '';
+ $application = $parameters{application} || $settings->{nma}{application} || 'WireGate KNX';
+ $targetUrl = $parameters{targetUrl} || $settings->{nma}{targetUrl} || '';
+ $url = $parameters{url} || $settings->{nma}{url} || '';
+ $apikey = $parameters{apikey} || $settings->{nma}{apikey} || '';
+
+ use LWP::UserAgent;
+ use URI::Escape;
+ use Encode;
+
+ # HTTP Request aufsetzen
+ my ($userAgent, $request, $response, $requestURL);
+ $userAgent = LWP::UserAgent->new;
+ $userAgent->agent("WireGatePlugin/1.0");
+
+ $requestURL = sprintf($url."?apikey=%s&priority=%s&event=%s&description=%s&application=%s&url=%s",
+ uri_escape($apikey),
+ uri_escape($priority),
+ uri_escape(encode("utf8", $event)),
+ uri_escape(encode("utf8", $description)),
+ uri_escape(encode("utf8", $application)),
+ uri_escape($targetUrl));
+
+ $request = HTTP::Request->new(GET => $requestURL);
+ #$request->timeout(5);
+
+ $response = $userAgent->request($request);
+ if ($response->is_success) {
+ plugin_log($plugname, "NMA-Nachricht erfolgreich abgesetzt: $priority, $event, $description, $application") if $parameters{debug};
+ } elsif ($response->code == 401) {
+ plugin_log($plugname, "NMA-Nachricht nicht abgesetzt: API key gültig?");
+ } else {
+ plugin_log($plugname, "NMA-Nachricht ($requestURL) nicht abgesetzt: " . $response->content);
+ }
+
+ return undef;
+}
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|