Zitat von mivola
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
Neues Plugin: Logikprozessor.pl
Einklappen
X
-
Zitat von johnnychicago Beitrag anzeigenIch hab' daran gedacht - aber die Werte könnte ich dann nicht auch direkt in ein receive=> oder ein fetch=> legen, sondern müsste sie innerhalb der Logik aus der Variable fischen.
So war zumindest meine Vorstellung ...
VG
Micha
Kommentar
-
Zitat von Fry Beitrag anzeigenWas meinst du? %plugin_info ist bereits an eine Datenbank geknüpft und damit persistent.
Zitat von Fry Beitrag anzeigenIst im SVN
Kommentar
-
Zitat von mivola Beitrag anzeigenNein. Denn der LP würde die gespeicherten Werte beim Start auslesen und (initial 1x) auf den Bus senden. Mit einer weiteren Logik könnte man dann dafür sorgen dass der Wert fortan zyklisch gesendet wird.
So war zumindest meine Vorstellung ...
Kommentar
-
Zitat von johnnychicago Beitrag anzeigenDas mit dem zyklischen Senden ist halt irgendwo auch nicht immer praktisch, finde ich. Ich hab' hier Werte, z.B. für die Heizungseinstellung, die sind teilweise Wochen, wenn nicht Monate alt. Und alle paar Minuten schiebt der LP sie auf den Bus (und ich nehme an, dass ein Haufen Logiken jedes Mal angekuckt werden, und nur wegen 'execute_on_input_changes_only=>' dann nicht evaluiert werden). Ich find's übersichtlicher, wenn die einfach per read request abgerufen werden können.
Bzgl. Read-Requests: das sollte sich mit dem LP doch auch machen lassen, wenn der Wert erstmal initial auf dem Bus ist, oder? Hier hab ich leider (noch) keine Erfahrung...
VG
Micha
Kommentar
-
Zitat von mivola Beitrag anzeigenIch persönlich habe kein Problem mit dem zyklischen Senden. Der Bus und der LP schaffen das locker und der LP ist perfomant genug... Aber jedem das seine.
Bzgl. Read-Requests: das sollte sich mit dem LP doch auch machen lassen, wenn der Wert erstmal initial auf dem Bus ist, oder? Hier hab ich leider (noch) keine Erfahrung...
Es geht halt nur nicht, wenn eine Logik bei der anderen anfragt.
Kommentar
-
Zitat von johnnychicago Beitrag anzeigenEs geht halt nur nicht, wenn eine Logik bei der anderen anfragt.
Kommentar
-
Moin,
kämpfe hier mit dem gleichen Problem.
Meine Nachtlogik im LP soll eigentlich einen Dimmwert senden, sobald der PM die Flurbeleuchtung einschaltet und die Nacht-GA auf 1 steht. Das funktioniert allerdings nur dann richtig, wenn kurz vorher der PM die Lampe ausgeschaltet hat.
Ich nehme an der LP wird dadurch getriggert, dass die Lampe ausgeht und holt sich (woher auch immer) den Status der Nacht-GA. Nur das er dass dann scheinbar sehr schnell wieder vergisst.
Wie lange bleibt der Wert einer GA eigentlich im eibd Cache? Theoretisch müsste er da ja bis Neustart bleiben. Mein Rolloaktor merkt sich einen Sperrstatus ja auch über mehrere Wochen. Damit, dass Werte nach einem Neustart weg sind, kann ich gut leben.
Da KNX keine zyklisch getriebene SPS, sondern eventgetrieben ist, halte ich das zyklische Senden einer GA, abgesehen von Sicherheitsfunktionen, für Murks.
Gruß, Sebastian
Kommentar
-
Warum soll zyklisches Senden Murks sein? Der Bus kann das locker ab - selbst wenn 100 Geräte jeweils 10 Telegramme zyklisch jede Minute senden würden. Und zyklisches Senden erleichtert sogar das Debuggen - weil durch Betrachten der letzten 15min des eib.log jeder Zustand jedes Aktors bekannt wird.
Was mich nervt, ist dass manche Geräte manche Zustände nicht zyklisch senden können (nicht parametrierbar). Weswegen das dann bei mir entsprechende Logiken übernehmen.
VG; Fry
Kommentar
-
Moin Fry,
natürlich hat es auch Vorteile. Aber eben auch Nachteile.
Wenn ein Gerät, hier namentlich vor allem das WG, alle Zustände einfach behält, ist zyklisches Senden unnötig. Ich sehe auch keinen Grund dafür eine GA 15 min zu puffern, aber nicht 30 Tage. Vom Reboot rede ich explizit nicht.
Es fällt mir besonders beim Nachtmodus auf.
Wenn ich ins Bett gehe, schalte ich das Haus vom Bett aus in den Nachtmodus.
Dann gehen alle Lampen aus, die Rollos runter und der PM im SZ wird gesperrt.
Wenn ich nachts nochmal kurz aufstehe und ins Bett zurückkehre, will ich, dass die Lampen wieder ausgehen. Wenn ich zyklisch sende, gehen die Lampen aus, bevor ich wieder im Bett bin. Wenn ich zyklisch sende und der LP nur auf Änderungen reagiert, geht das Licht nicht aus, wenn ich im Bett erneut auf den Taster drücke.
Abgesehen davon ist da aber auch so noch etwas verquer bei mir. Ich verstehe nicht, wo der LP den Nachtmodus herholt und ihn nur sporadisch kennt, bzw. den Wert schnell vergisst.
Gruß, Sebastian
Kommentar
-
Zitat von mivola Beitrag anzeigen... innerhalb des LP wäre es %plugin_info zu nutzen, siehe: https://knx-user-forum.de/406109-post438.html
Am schönsten wäre es natürlich wenn man das nicht "selbst" in jeder Logik machen müsste, sondern mit einer Anweisung, zB:
Code:persistValueExample => { transmit=>'2/0/3', translate => 1, persist => 1, debug=>1 },
Die Werte aus %plugin_info{Logikprozessor.pl_persistedValues_*} müssten beim Start dann natürlich wieder ausgelesen und auf den Bus geschrieben werden...
Nur so als Gedankenanstoß...
VG
Micha
Code:persistTest => { receive => '1/2/0', transmit => ['4/4/4', '4/4/5'], persist => 1, translate => sub { $input }, debug => 1 },
Kombinationen mit anderen Parametern (cool, delay, ...) hab ich noch nicht getestet.
@Jacques, Fry: was haltet ihr von diesem Ansatz?
VG
MichaAngehängte Dateien
Kommentar
-
Zitat von mivola Beitrag anzeigenMit dem "persist"-Parameter wird angegeben, dass man den aktuellen Wert der Transmit-GAs (in %plugin_info) persistieren möchte. Das geschieht jedesmal mal wenn die Logik ausgeführt bzw der Wert auf den Bus geschrieben wird. Beim (Re)Start des LP (nicht beim Ändern der Config!) werden die gespeicherten Werte ausgelesen und einmalig auf den Bus geschrieben.
Code:persistTest => { receive => ['4/4/4', '4/4/5'], persist => 1, debug => 1 },
VG
Micha
Kommentar
Kommentar