Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Dumme Frage eines Nicht-HS-geplagten: was sind denn "iKOs"?
Wenn darin Plugin-übergreifende Werte gespeichert werden sollen, denke ich an globale Variablen? Oder steht iKO für "internes Kommunikationsobjekt", was für mich implizieren würde, dass eine Wertänderung alle darauf horchenden Plugins triggern würde?!?
iKO iSv HS gibt es so keine aber Plugin-übergreifend dauerhaft (remanent) speichern kann man in dem eindimensionalen (wichtig!) Hash plugin_info:
$plugin_info{$plugname.'_MeinWert'} = "0815";
Bitte diese Syntax (erst $plugname=Plugin-Name) beachten da eine Garbage-Collection angedacht ist, die alles von nicht mehr vorhandenen Plugins da rauslöscht.
Gibt es denn ausser dem
knx_read($GA_Variable,$Variable,9); und
knx_write($GA_Variable,$Variable,9); auch noch ein
knx_respond($GA_Variable,$Variable,9); oder so was ähnliches?
Ich würde gerne in einem Plugin auf read requests (apci = A_GroupValue_Read) mit response (A_GroupValue_Response) antworten.
Geht das überhaupt? Wird das Plugin überhaupt aufgerufen bei einem A_GroupValue_Read wenn die GA in der subscribe Liste steht? Oder wird nur bei einem Write das Plugin aufgerufen?
Gibt es denn
knx_respond($GA_Variable,$Variable,9); oder so was ähnliches?
Jetzt schon (ab anstehendem PL28)
knx_write($GA_Variable,$Variable,9,1); # sende A_GroupValue_Response statt A_GroupValue_Write
Geht das überhaupt? Wird das Plugin überhaupt aufgerufen bei einem A_GroupValue_Read wenn die GA in der subscribe Liste steht? Oder wird nur bei einem Write das Plugin aufgerufen?
Das geht schon, man muss lediglich $msg{'apci'} entsprechend auswerten; aufgerufen wird das Plugin unabhängig davon.
#zu überwachende GAs
my @ga_list=("14/0/1","14/0/2");
#Wert wurde verändert
if ($msg{'apci'} eq "A_GroupValue_Write"){
$plugin_info{$plugname.'_'.$msg{'dst'}} = $msg{'value'};
return("Saved $msg{'dst'} = $msg{'value'}");
}
#Wert soll auf den Bus gesendet werden
if ($msg{'apci'} eq "A_GroupValue_Read"){
knx_write($msg{'dst'},$plugin_info{$plugname.'_'.$msg{'dst'}},0,1);
return("Sent $msg{'dst'} = $plugin_info{$plugname.'_'.$msg{'dst'}}");
} else {
#Zyklischer aufruf, GAs subscriben und Zykluszeit setzen
foreach (@ga_list){
$plugin_subscribe{$_}{$plugname} = 1;
}
$plugin_info{$plugname.'_cycle'} = 86400;
return("Zyklischer aufruf");
}
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar