|
From: <pf...@us...> - 2012-05-05 20:03:58
|
Revision: 787
http://openautomation.svn.sourceforge.net/openautomation/?rev=787&view=rev
Author: pfry
Date: 2012-05-05 20:03:52 +0000 (Sat, 05 May 2012)
Log Message:
-----------
Modified Paths:
--------------
wiregate/plugin/generic/conf.d/Logikprozessor.conf
Modified: wiregate/plugin/generic/conf.d/Logikprozessor.conf
===================================================================
--- wiregate/plugin/generic/conf.d/Logikprozessor.conf 2012-05-05 19:33:18 UTC (rev 786)
+++ wiregate/plugin/generic/conf.d/Logikprozessor.conf 2012-05-05 20:03:52 UTC (rev 787)
@@ -21,21 +21,21 @@
# translate-Routine. Neu ist hier der "delay"-Parameter, ausserdem der Spezialfall, dass translate einfach eine Konstante als
# Rueckgabewert spezifiziert.
stair => { receive=>'1/2/9', transmit=>'1/2/9', delay=>600, translate => 0, },
- # Damit im Fall transmit != receive der Translator nicht auf sein eigenes Schreibtelegramm immer wieder antwortet, wird nur dann gesendet,
+ # Damit im Fall transmit != receive der Logikprozessor nicht auf sein eigenes Schreibtelegramm immer wieder antwortet, wird nur dann gesendet,
# wenn Ergebnis != Input oder Sender des empfangenen Telegramms!=0 (Wiregate).
# 5. Memory-Funktion. Wenn ein Write-Telegramm auf die Transmit-Adresse kommt, speichert der Logikprozessor den Wert ab.
# Das Flag "transmit_on_request" bewirkt, dass nichts gesendet wird, jedoch wird eine Leseanfrage auf der transmit-GA immer
# mit dem letzten Wert (hier also dem gespeicherten) beantwortet. Damit laesst sich eine Speicherfunktion realisieren.
- # Hier speichert Translator also den Input ab und sendet den errechneten (=gespeicherten) Wert NUR AUF ANFRAGE.
- memory => { transmit=>'1/2/9', transmit_on_request=>1 },
+ # Hier speichert Logikprozessor also den Input ab und sendet den errechneten (=gespeicherten) Wert NUR AUF ANFRAGE.
+ memory => { transmit=>'1/2/9', transmit_only_on_request=>1 },
# Eine receive-Adresse oder translate-Logik werden hier gar nicht gebraucht.
# 6. Eine einfache UND-Logik mit zwei Eingaengen. Falls ein Telegramm auf einer der beiden receive-GAs empfangen wird,
# wird die andere Adresse noch ausgelesen, die Logik angewendet und das Ergebnis auf der transmit-GA uebermittelt
und => { receive=>['1/2/12','1/2/13'], transmit=>'1/2/14', translate => sub { my (undef,$input)=@_; $input->[0] && $input->[1]; }, },
- # 7. Ein komplexerer Fall nur zur Demonstration: hier besteht der Status des Translators aus mehreren Werten.
+ # 7. Ein komplexerer Fall nur zur Demonstration: hier besteht der Status des Logikprozessors aus mehreren Werten.
# Es wird immer die Summe aus letztem, vorletztem und aktuellem Wert gesendet, und zwar mit 30s Verzoegerung.
complex => { receive=>'9/5/205',
transmit=>'9/5/206',
@@ -47,7 +47,7 @@
},
# Wenn state ein Hash ist, wird der letzte gesendete Wert in $state->{result} gespeichert.
- # 8. Schlussendlich wieder mal Werbung fuer die GA-Kurznamen. Setzt man im Skript Translator.pl $use_short_names=1
+ # 8. Schlussendlich wieder mal Werbung fuer die GA-Kurznamen. Setzt man im Skript Logikprozessor.pl $use_short_names=1
# und verwendet GA-Namen mit eindeutigem Kuerzel (=erstes Wort des Namens), so funktioniert auch das folgende:
D_SZ_Decke => { receive=>'LR_SZ_Decke_1', transmit=>'LK_SZ_Decke_1',
translate => sub { my ($state,$input)=@_; limit(0,$state+20*$input,100); }, },
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pf...@us...> - 2012-05-10 16:20:55
|
Revision: 806
http://openautomation.svn.sourceforge.net/openautomation/?rev=806&view=rev
Author: pfry
Date: 2012-05-10 16:20:49 +0000 (Thu, 10 May 2012)
Log Message:
-----------
Debug-Beispiel in Konfigfile
Modified Paths:
--------------
wiregate/plugin/generic/conf.d/Logikprozessor.conf
Modified: wiregate/plugin/generic/conf.d/Logikprozessor.conf
===================================================================
--- wiregate/plugin/generic/conf.d/Logikprozessor.conf 2012-05-10 10:15:25 UTC (rev 805)
+++ wiregate/plugin/generic/conf.d/Logikprozessor.conf 2012-05-10 16:20:49 UTC (rev 806)
@@ -57,7 +57,9 @@
# 8. Eine einfache UND-Logik mit zwei Eingaengen. Falls ein Telegramm auf einer der beiden receive-GAs empfangen wird,
# wird die andere Adresse noch ausgelesen, die Logik angewendet und das Ergebnis auf der transmit-GA uebermittelt
- und => { receive=>['1/2/12','1/2/13'], transmit=>'1/2/14', translate => sub { $input->[0] && $input->[1]; }, },
+ und => { receive=>['1/2/12','1/2/13'], transmit=>'1/2/14', translate => sub { $input->[0] && $input->[1]; }, debug=>1 },
+ # Das Flag debug=>1 bewirkt, dass diese (und nur diese!) Logik Meldungen ins Wiregate-Plugin-Log schreibt, die beim
+ # Debugging der Logik hilfreich sein koennten.
# 9. Ein komplexerer Fall nur zur Demonstration: hier besteht der Status des Logikprozessors aus mehreren Werten.
# Es wird immer die Summe aus letztem, vorletztem und aktuellem Wert gesendet, und zwar mit 30s Verzoegerung.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <dpe...@us...> - 2012-11-10 13:46:46
|
Revision: 1118
http://openautomation.svn.sourceforge.net/openautomation/?rev=1118&view=rev
Author: dpesch01
Date: 2012-11-10 13:46:40 +0000 (Sat, 10 Nov 2012)
Log Message:
-----------
Beispiel f?\195?\188r bedingten Prowl-Versand hinzugef?\195?\188gt
Modified Paths:
--------------
wiregate/plugin/generic/conf.d/Logikprozessor.conf
Modified: wiregate/plugin/generic/conf.d/Logikprozessor.conf
===================================================================
--- wiregate/plugin/generic/conf.d/Logikprozessor.conf 2012-11-10 13:16:25 UTC (rev 1117)
+++ wiregate/plugin/generic/conf.d/Logikprozessor.conf 2012-11-10 13:46:40 UTC (rev 1118)
@@ -176,6 +176,25 @@
}
}
+ # Falls nur unter bestimmten Bedingungen eine Prowl-Nachricht gesendet werden soll, kann sendProwl() jetzt auch
+ # aus der Logik-Subfunktion aufgerufen werden:
+ sendProwlOnWarning => {
+ receive => '1/2/3',
+ translate => sub {
+ if ($input)
+ {
+ # wird NUR gesendet, falls auf der 1/2/3 ein Wert ungleich 0 gesendet wird!
+ # bei 0 wird einfach gar nichts gesendet
+ sendProwl((
+ event => 'WARNUNG',
+ description => '1/2/3 wurde aktiviert!',
+ priority => 2
+ ));
+ }
+ }
+ }
+
+
# Der Versand an mehrere Empf\xE4nger ist durch die Definition von "apikey" als Array m\xF6glich:
# apikey => [ "*** key 1 ***", "*** key 2 ***", ... ]
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <sic...@us...> - 2012-10-15 16:38:58
|
Revision: 1063
http://openautomation.svn.sourceforge.net/openautomation/?rev=1063&view=rev
Author: sicariusx
Date: 2012-10-15 16:38:51 +0000 (Mon, 15 Oct 2012)
Log Message:
-----------
Demokonfig. erweitert f?\195?\188r prowl und transmit_changes_only.
Modified Paths:
--------------
wiregate/plugin/generic/conf.d/Logikprozessor.conf
Modified: wiregate/plugin/generic/conf.d/Logikprozessor.conf
===================================================================
--- wiregate/plugin/generic/conf.d/Logikprozessor.conf 2012-10-15 10:10:36 UTC (rev 1062)
+++ wiregate/plugin/generic/conf.d/Logikprozessor.conf 2012-10-15 16:38:51 UTC (rev 1063)
@@ -5,6 +5,18 @@
$eibd_backend_address='0.0.0'; # eigene Adresse zur Vermeidung von Zirkellogiken, ist oft auch '1.1.254'
+# Zentrale Einstellungen, insb. f\xFCr die Prowl Mechanik, s. u..
+%settings=(
+ prowl => {
+ apikey => "*** hier eigenen API-Key eintragen***",
+ application => 'WireGate KNX',
+ priority => 0,
+ event => '[unbenanntes Ereignis]',
+ description => '',
+ url => ''
+ }
+);
+
%logic=(
# 1. Alle Werte, die auf einer GA gesendet werden, werden mit 2 multipliziert auf einer anderen GA weitergegeben
mal2 => { receive=>'9/5/201', transmit=>'9/5/202', translate => sub { 2*$input; }, },
@@ -118,6 +130,69 @@
translate => sub { limit(0,$state+20*$input,100); }, },
# ist doch leserlicher, oder? Hier wird ein relativer Dimmwert (LR=Licht relativ, SZ=Schlafzimmer) durch Skalierung
# und Summierung in einen absoluten Wert umgewandelt
+
+
+
+ # 12. Prowl (http://www.prowlapp.com/) ist eine iPhone/iPad/i*-App zum Empfang von Growl-Kurznachrichten
+ # via Push. Da Prowl auch \xFCber eine Web-API Nachrichten entgegennehmen kann, ist eine Kopplung an eigene
+ # Anwendungen m\xF6glich. F\xFCr einen Minimalbetrieb ist Growl oder ein Mac nicht erforderlich: Es reicht die App auf dem
+ # Zielger\xE4t und die Einrichtung von sog. API-Keys. \xDCber prowl => ... lassen sich dann \xFCber den Logikprozessor
+ # Nachrichten per Push auf die App schicken.
+
+ # Zur Vereinfachung der einzelnen Aufrufe k\xF6nnen in der Konfigurationsdatei des Logikprozessors zentral Standardwerte
+ # hinterlegt werden. Dazu ist neben den %logic Hash noch ein %settings Hash zu legen, der bestimmte Einstellungen
+ # unterst\xFCtzt, siehe oben.
+
+
+ # Der Versand von Prowl-Nachrichten erfolgt nach der Verarbeitung von "translate", falls vorhanden. In der
+ # einfachsten Form erfolgt die Definition direkt mit dem gew\xFCnschten event-String (was die beschriebene Vergabe von
+ # Standardwerten voraussetzt):
+
+ simpleProwl => { receive => '1/2/3', prowl => 'Hello world!' }
+
+ # Wenn nun auf der GA 1/2/3 ein Wert eingeht wird 'Hello world!' auf die App gepusht. prowl => ... kann auch einen Hash
+ # entgegennehmen:
+
+ hashProwl => {
+ receive => '1/2/4',
+ prowl => {
+ application => 'Beschattung'
+ event => 'S\xFCdseite AB'
+ }
+ }
+
+ # F\xFCr komplexere F\xE4lle kann auch eine sub \xFCbergeben werden, die dann einen passenden Hash zur\xFCckgeben muss. In die sub
+ # wird der Aufrufkontext \xFCbergeben, der den "input", das "result" und den "state" umfasst. Daneben stehen aber auch
+ # vereinfachte Skalare zur Verf\xFCgung, $input, $state und $result.
+
+ subProwl => {
+ receive => '1/2/5',
+ prowl => sub {
+ my (%context) = @_;
+ return (event => 'Rolladen S\xFCd ' . ($input ? 'AB' : 'AUF'));
+ # oder eben: return (event => 'Rolladen S\xFCd ' . ($context{input} ? 'AB' : 'AUF'));
+ }
+ }
+
+ # Der Versand an mehrere Empf\xE4nger ist durch die Definition von "apikey" als Array m\xF6glich:
+
+ # apikey => [ "*** key 1 ***", "*** key 2 ***", ... ]
+
+
+
+ # 13. transmit_changes_only beschr\xE4nkt eine Logik darauf, dass nur \xC4nderungen des States auf den Bus geschickt werden.
+ # Dies kann bspw. genutzt werden, wenn zyklisch Temperaturwerte ausgewertet werden, aber nur "neue" Erkenntnisse auf
+ # den Bus kommen sollen.
+
+ logik_regenbrause_in_benutzung => {
+ receive => '4/1/71',
+ transmit => '6/1/0',
+ transmit_changes_only => 1,
+ translate => sub {
+ return ($input gt 25) ? 1 : 0;
+ }
+ }
+
);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <pf...@us...> - 2013-01-06 00:12:48
|
Revision: 1304
http://openautomation.svn.sourceforge.net/openautomation/?rev=1304&view=rev
Author: pfry
Date: 2013-01-06 00:12:14 +0000 (Sun, 06 Jan 2013)
Log Message:
-----------
Im Falle mehrerer transmit-Adressen (ist ein relativ neues Feature) wird nun defaultmaessig ignore_read_requests=>1 gesetzt,
es sei denn, transmit_only_on_request oder recalc_on_request sind auf 1
Modified Paths:
--------------
wiregate/plugin/generic/conf.d/Logikprozessor.conf
Modified: wiregate/plugin/generic/conf.d/Logikprozessor.conf
===================================================================
--- wiregate/plugin/generic/conf.d/Logikprozessor.conf 2013-01-05 00:00:48 UTC (rev 1303)
+++ wiregate/plugin/generic/conf.d/Logikprozessor.conf 2013-01-06 00:12:14 UTC (rev 1304)
@@ -223,7 +223,7 @@
# (erneuten) Uebertragung des letzten Resultats bzw, falls dieses undef ist, zur Ausfuehrung der Logik und
# Uebertragung des Resultats. Mit recalc_on_request=>0 wird die Ausfuehrung der Logik in diesem Fall unterdrueckt,
# mit recalc_on_request=>1 wird sie in jedem Fall erzwungen. Mit ignore_read_requests=>1 werden solche Requests
- # gar nicht beantwortet.
+ # gar nicht beantwortet (das ist per Default der Fall, wenn mehrere transmit-Adressen fuer eine Logik angegeben sind).
# 16. Die Option eibd_cache legt die Cache-Zeit bei knx_read-Aufrufen fest. Default ist 300.
@@ -231,6 +231,9 @@
# Telegramme hierauf l\xF6sen die Logik auch nicht aus, sie werden nur bei Ausf\xFChrung der Logik per knx_read ausgelesen und in
# $input hinterlegt
+ # 18. Neuerdings koennen nun auch mehrere GAs unter transmit=>[...] angegeben werden. Es wird allerdings an alle der gleiche
+ # Wert gesendet!
+
);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|