ok dann schreib ichs lieber um, sonst kommts irgendwann zu merkwürdiegen Ereignissen und ich erinnere mich nicht mehr dran.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Neues Plugin: Logikprozessor.pl
Einklappen
X
-
Zitat von Fry Beitrag anzeigenDie Möglichkeit gibt es, aber nur im Logikprozessor selbst.
Danke
Micha
Kommentar
-
Zitat von mivola Beitrag anzeigenDanke für die Info. Dann wäre es wahrscheinlich eleganter ich schreibe eine eigene sub wie "is_holiday_in_sachsen" und frage dieser in der translate-Sektion ab, oder?
Danke
Micha
Ich an deiner Stelle würde den Logikprozessor selbst patchen.
VG, Fry
Kommentar
-
Zitat von Fry Beitrag anzeigenKommt drauf an.
Ich an deiner Stelle würde den Logikprozessor selbst patchen.
VG, Fry
Micha
Kommentar
-
Zitat von kingolli Beitrag anzeigenDanke für deine Antwort, aber das zurücksetzen des Wertes (was ja das löschen des Alarms ist) sollte sofort erfolgen. Theoretisch müsste ich ja dann nur eine eigene Logik einbauen, wenn alle Fenster zu sind den Alarm-Wert wieder zurück zu setzen. Ich probiere es heute Abend mal aus und geb Bescheid...
Grüße
David
hast du das mittlerweile mal ausprobiert und umgesetzt? Ich habe eine ähnliche Aufgabe vor mir und bin unsicher wie es am besten geht...
VG
Micha
Kommentar
-
Zitat von mivola Beitrag anzeigenich bin die Tage über NMA (eine Android-Alternative zu Prowl) gestolpert und dachte, das wäre doch sicher eine schicke Erweiterung für den Logikprozessor.
Code:sub sendNma { my (%parameters)=@_; my ($priority, $event, $description, $application, $url, $apikey, $targetUrl); # 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; }
Code:%settings=( nma => { apikey => "enterYourApiKey", application => 'SmartHome Logikprozessor', targetUrl => 'urlToYourVisu', url => 'http://www.notifymyandroid.com/publicapi/notify' } );
Code:sendNma(event=>'Garagentor auf seit 15min!', description=>'bitte Garagentor schließen');
So, Fragen und Anregungen sind gern gesehen ;-)
VG
Micha
Kommentar
-
Und weil ich nun grade mal dabei war, habe ich auch noch eine Routine geschrieben um Einträge in das RSSLog (siehe hier, hier und hier) zu erzeugen, evtl. kann es ja jemand gebrauchen:
Code:sub addRssLog { my (%parameters)=@_; my ($title, $content, $tags, $url); # 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("%s?t=%s&c=%s&tags=%s", uri_escape($url), 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, "Prowl-Nachricht nicht abgesetzt: " . $response->content); } return undef; }
Code:%settings=( rssLog => { url => 'http://localhost/visu-svn/plugins/rsslog/rsslog.php' } );
Code:addRssLog(content=>'Raffstore runter', tags=>'raffstores', debug=>0);
Micha
Kommentar
-
Hallo!
Ich habe ein komisches Verhalten, bei dem ich etwas Hilfe brauche. Ich nutze den Logikprozessor u.a. um die Jalousie beim Herunter-Befehl erstmal auf 80% zu fahren, nochmaliges drücken, fährt dann komplett herunter.
Funktionieren tut das Ganze, allerdings bekomme ich seit dem aktivieren unheimlich viel Traffic auf den Bus, den ich mir nicht erklären kann (siehe Anhang).
Hier die Logik und die Beschreibung der GA:
1/1/11 Jalousie_Arbeiten_AufAb
1/1/13 Jalousie_Arbeiten_Position
Code:Jalousie_Arbeiten_80zu => { receive=>['1/1/11'], fetch=>['1/1/13'], transmit=>'1/1/13', transmit_changes_only => 1, translate => sub { return unless int($input->[0]) == 1 && int($input->[1]) < 75 ; 80}, debug=>1},
Auszug aus dem eib.log:
Code:2014-03-27 08:20:39.506,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:20:40.744,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:20:42.232,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:20:43.479,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:20:44.820,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:20:46.063,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:20:47.523,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:20:48.760,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:20:50.103,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:20:51.348,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:20:52.733,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:20:54.393,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:20:55.653,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:20:56.898,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:20:58.242,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:20:59.689,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:21:01.057,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:21:02.360,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:21:03.702,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:21:04.945,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:21:06.293,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:21:07.533,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:21:08.773,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:21:10.025,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:21:11.262,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:21:12.506,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:21:13.743,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:21:15.295,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:21:16.743,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:21:17.999,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0 2014-03-27 08:21:19.340,A_GroupValue_Read,1.1.241,1/1/13,00,0.0,,5.001,0,low,7,T_DATA_XXX_REQ,0
Danke und Grüße
DavidAngehängte Dateien
Kommentar
-
Zitat von mivola Beitrag anzeigenWas sagt denn das wiregate_plugin.log? Wie oft wird deine Logik aufgerufen?
Ist das gepostete eib.log gefiltert nach der '1/1/13' ? Ändert sich der Wert für '1/1/11' wenn du auf '1/1/13' etwas sendest?
VG
Micha
Hier der Auszug aus dem Plugin Log:
Code:2014-03-27 07:18:03.465,logikprozessor.pl,1/1/11:0 -> $logic->{Jalousie_Arbeiten_80zu}{receive}(Logik) -> nichts zu senden; ,1.2s,
1. warum sind das alles Lese Telegramme, die Logik hat doch nur einen "Fetch" Eintrag
2. der Traffic startet beim öffnen der Jalousie heute morgen, also eigentlich dann, wenn die Logik garnichts tun soll.
Danke und Grüße
David
Kommentar
-
Wie viele Einträge von "Jalousie_Arbeiten_80zu" siehst du im Log?
Die Fetch-Angabe führt zweifelos zu read-Telegrammen - wenn der Logikprozesser den Wert nicht aus dem Cache lesen kann. Such hier im Thread mal nach "cache" - Fry hatte dazu mal was geschrieben.
VG
Micha
Kommentar
-
Zitat von mivola Beitrag anzeigenWie viele Einträge von "Jalousie_Arbeiten_80zu" siehst du im Log?
Die Fetch-Angabe führt zweifelos zu read-Telegrammen - wenn der Logikprozesser den Wert nicht aus dem Cache lesen kann. Such hier im Thread mal nach "cache" - Fry hatte dazu mal was geschrieben.
VG
Micha
Ich hab jetzt mal die Einträge um "eibd_cache=>300" ergänzt, mal sehen, ob es was bringt.
Danke schonmal vorab und Grüße
David
Kommentar
-
Zitat von kingolli Beitrag anzeigenIch hab jetzt mal die Einträge um "eibd_cache=>300" ergänzt, mal sehen, ob es was bringt.
Hat noch jemand eine Idee?
Danke und Grüße
DavidAngehängte Dateien
Kommentar
-
Zitat von kingolli Beitrag anzeigenHat noch jemand eine Idee?
VG
Micha
Kommentar
-
Zitat von mivola Beitrag anzeigenNicht wirklich. Kannst du wirklich ausschließen dass es nicht an anderen Plugins bzw Regeln im Logikprozessor (oder deren Zusammenspiel) liegt? Kannst du mal alle Plugins deaktivieren und nur eine dieser Regeln zum Logikprozessor aktivieren?
VG
Micha
Ich habe jetzt mal die Cache Zeit auf 86400 (=24 Stunden) erhöht, weil ja die Position der Jalousie normalerweise nur gemeldet wird, wenn sie auch in Bewegung war und das sollte mindestens einmal am Tag sein. Mal sehen, ob es was bringt.
Ich werde berichten.
Grüße
David
Kommentar
Kommentar