Zitat von mfd
Beitrag anzeigen
Ankündigung
Einklappen
Keine Ankündigung bisher.
Rückmelde- Status-Objekt
Einklappen
X
-
Also für mich sieht es im Gruppenmonitor so aus...
Ich programmiere was am Aktor, danach startet er neu und es kommen erstmal ein Dutzend Leseanfragen (Temperatur, Sonne, Anwesenheit, Windalarm usw.)
Und bei den Werten die nicht in "Hardware" etwa der Wetterstation vorliegen fehlt dann eben die Antwort...
Und in der Anleitung heißt es wörtlich:
Aktivierte Automatikobjekte nach
Busspannungswiederkehr lesen
Optionen:
ja
nein
ja: Nach Busspannungswiederkehr können die Werte, die für die Automatik-Steuerung erforderlich
sind, über den KNX ausgelesen werden. Die Werte der Kommunikationsobjekte werden dadurch
aktualisiert.
Hinweis
Die Lese-Flags müssen bei den zu lesenden Kommunikationsobjekten gesetzt sein.
Entweder sind die betreffenden Automatiken dann auf "0" also aus, oder der Wert wie vor dem Busspannungsausfall...??
Edit: Wie kann ich das herausfinden?
Kommentar
-
Zitat von mfd Beitrag anzeigenEntweder sind die betreffenden Automatiken dann auf "0" also aus, oder der Wert wie vor dem Busspannungsausfall...??
Edit: Wie kann ich das herausfinden?
Du könntest vielleicht das Lese-Flag bei den Kommunikationsobjekten setzen und den Wert hinterher mit dem Busmonitor auslesen.
Ansonsten würde ich sagen, dass man das nur über ein Wiregate-Plugin lösen kann. Der von der Visu gesendete Wert wird ja eigentlich im Cache des Wiregate vorgehalten. Offenbar kann dieser aber nicht per Lesetelegramm ausgelesen werden. Vielleicht kann man von den Wiregate-Experten hier noch einen Tipp bekommen, wie das doch geht.
Wenn nicht, wirst du vermutlich ein Perl-Plugin brauchen, das den gesendeten Wert zwischenspeichert und bei Lesetelegrammen als Antwort sendet.Grüße
Michael
Kommentar
-
Das Plugin könnte (ungetestet) so aussehen:
Code:###config my $ga = '0/0/0'; my $dpt = 1; ###end config $plugin_info{$plugname.'_cycle'} = 0; $plugin_subscribe{$ga}{$plugname}=1; if ($msg{'apci'} eq "A_GroupValue_Write" && $msg{'dst'} eq $ga) { plugin_log($plugname,"Saved $msg{'value'}"); $plugin_info{$plugname.'_last_value'} = $msg{'value'}; } if ($msg{'apci'} eq "A_GroupValue_Read" && $msg{'dst'} eq $ga) { plugin_log($plugname,"Response $plugin_info{$plugname.'_last_value'}"); knx_write($ga,$plugin_info{$plugname.'_last_value'},$dpt,0x40) }
Umgezogen? Ja! ... Fertig? Nein!
Baustelle 2.0 !
Kommentar
-
Zitat von MicHau Beitrag anzeigenDu könntest vielleicht das Lese-Flag bei den Kommunikationsobjekten setzen und den Wert hinterher mit dem Busmonitor auslesen.
Ansonsten würde ich sagen, dass man das nur über ein Wiregate-Plugin lösen kann. Der von der Visu gesendete Wert wird ja eigentlich im Cache des Wiregate vorgehalten. Offenbar kann dieser aber nicht per Lesetelegramm ausgelesen werden.
Wäre da dann eine externe Logik erforderlich oder etwas wie ein Schalter/RTR der den Status behält? Welche Geräte können so etwas bzw. wären geeignet?
Kommentar
-
Zitat von mfd Beitrag anzeigenWie kann ich das "stromausfallsicher" lösen? Denn in dem Fall würde ja sowohl das WG als auch der Aktor bei einem Neustart ohne brauchbaren Wert dastehen...
Wäre da dann eine externe Logik erforderlich oder etwas wie ein Schalter/RTR der den Status behält? Welche Geräte können so etwas bzw. wären geeignet?
Unter der Annahme, dass sich der Zustand des Aktors wärend des Stromausfalls nicht ändert, müsste das Plugin von JuMi bereits Deinen Ansprüchen genügen.
Kommentar
-
Für einen solchen Zweck habe ich z.B. folgendes Plugin laufen (war ursprünglich mal für meine Rollladen Logik im Einsatz, daher sind die Bezeichnungen auf "Rollladen" gemünzt). Ist aber im Prinzip genau das, was Du benötigst. Beachte, dass dieses Plugin tatsächlich ein "Antwort-Telegramm" sendet! Falls Du als Antwort ein normales "Schreib-Telegramm" haben willst, müsste knx_write geändert werden.
Code:############################################################################### ## StatusControl_RollladenSperre4 ## v0.1a (2013-01-27), by XueSheng ## ## Beschreibung: ## Statusüberwachung der Rolläden. ## READ/WRITE der Rolladensperre 4 (für Logigzwecke). ############################################################################### ## ## ToDo: ## - ...? ## - Dokumentation/Kommentare ergänzen ## ############################################################################### ## Config start ## # Aufrufzyklus des Plugins $plugin_info{$plugname.'_cycle'} = 0; my @AlleRolllaeden = ( { name => "GA1", GAsperre => "X/X/X" }, { name => "GA2", GAsperre => "X/X/X" }, { name => "GA3", GAsperre => "X/X/X" }, { name => "GA4", GAsperre => "X/X/X" }, ); ## Config end ## foreach my $item (@AlleRolllaeden) { $plugin_subscribe{$item->{GAsperre}}{$plugname} = 1; if (($msg{'apci'} eq "A_GroupValue_Write") and ($msg{'dst'} eq $item->{GAsperre})) { $plugin_info{$plugname.'_'.$item->{name}.'_Sperre4'} = int($msg{'data'}); } elsif (($msg{'apci'} eq "A_GroupValue_Read") and ($msg{'dst'} eq $item->{GAsperre})) { knx_write($item->{GAsperre},$plugin_info{$plugname.'_'.$item->{name}.'_Sperre4'},1,1); } } return;
Kommentar
-
Für jede GA braucht's einen Master, der sich dessen Zustand merkt (so es überhaupt einen Zustand dafür gibt). Die Visu kann dass prinzipbedingt nicht sein.
Aber es kann z.B. das WireGate mit entsprechendem WG-Plugin sein.
=> Genau dafür hatte ich mal das State-Save-Plugin geschrieben.
Z.B. habe ich auf meiner Visu einen Button der "erzwinge Wochenende" macht, d.h. auch unter der Woche die Logiken vom Wochenende ausführt (z.B. wenn man mal frei hat, Feitertag oder so). Und u.a. genau diesen Zustand merkt sich dieses WG-Plugin bei mir.
Wenn nun ein anderer Client die Visu lädt, kommt der Zustand des Buttons von dort. Und eine WG-Logik die den Status braucht, liest den per Read-Telegram auch dort aus.
Kommentar
-
Zitat von Chris M. Beitrag anzeigen=> Genau dafür hatte ich mal das State-Save-Plugin geschrieben.
Heißt das, man muss nur einen passenden Namen für die jeweilige GA, den Anfangszustand und evtl. DPT angeben und schon "merkt" sich das WG die Zustände?
Kommentar
-
Gugst Du ab Zeile 19:
Code:# Syntax: # 'Global_Name' => [ 'KNX GA', 'Initial Value', 'DPT (optional)' ], my %states = ( 'Global_ErzwingeWochenende' => [ '0/3/20', 0 ], 'Global_WeihnachtsbeleuchtungAutomatik' => [ '0/3/21', 0, 1 ], );
DPT ist notwendig, wenn diese GA nicht in der globalen Liste gepflegt ist.
Wenn Du alle Werte wieder auf den Anfangswert setzen willst, setzt Du die Variable $reset_states auf 1, speicherst (=> das Plugin wird gleich ausgeführt), setzt die wieder auf 0 und speicherst wieder.
Kommentar
-
Zitat von mfd Beitrag anzeigenWie kann ich überprüfen, ob das Plugin korrekt funktioniert?
Ne, lass erst mal. Es geht netürlich nicht's über einen realen Test, aber da sollte man vorher schon ziemlich sicher sein, dass der mag.
Geh daher am besten mal im WG auf die Plugin-Seite. Im unteren Teil stehen die ganzen Größen, die die Plugins so angelegt haben. Und da sollte unter genau dem im Plugin vergebenem Namen der entsprechende Wert stehen.
Zitat von mfd Beitrag anzeigenIn der CV werden auch jetzt noch die Zustände falsch angezeigt.
Kommentar
-
Zitat von Chris M. Beitrag anzeigenHörst Du evtl. auf mehrere Adressen?
Bei den angelegten Größen der Plugins taucht das State-Save mit keinem Wert auf. Ich habe den leisen Verdacht, es tut - aus welchem Grund auch immer - einfach... nichts.
Kommentar
-
Wie sieht das entsprechende Widget in der CV aus (Auszug aus dem XML-Code)?
Was sagt die WireGate-Plugin-Seite bzgl. Aufruf-Zeiten und Rückmelde-Wert des StateSave-Plugins?
Was sagt die WireGate-Plugin-Seite im unteren Teil bei den Einträgen, die genau so heißen, wie die Namen im StateSave-Plugin (also bei dem o.g. Beispiel von mir wären das "Global_ErzwingeWochenende" und "Global_WeihnachtsbeleuchtungAutomatik")?
Was sagt die ETS wenn Du auf der GA eines dieser States einen Wert sendest und danach wieder liest? Und dann einen anderen Wert an die gleiche GA sendest und dann wieder von dieser GA liest?
Kommentar
Kommentar