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.
Da hast du mich wohl falsch verstanden. Ich meinte ja nur, dass ich sowas bisher nicht im LP gemacht habe. Aber prinzipiell sollte es auch im LP (genauer: in einer "sub") machbar sein.
Da hab ich dich tatsächlich falsch verstanden, sorry. Dank johnnychicago's Hilfe hab ich es nun hinbekommen:
Code:
execute_script => { receive=>'3/39/25', translate => sub { if ($input=="1") {system "/root/script.sh";} }, debug=>1, },
Sprich: Kommt eine '1' an die 3/39/25, wird das Script ausgeführt.
Das Script wird übrigens als root aufgerufen, also Vorsicht :-)
"Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren." - Benjamin Franklin
Ich empfehle, im system-Call noch ein "&" anzuhängen, damit der Logikprozessor und damit der Wiregate-Daemon nicht auf Beendigung des Scripts warten müssen. Also so:
Frage:
wie kann man folgendes mit dem Logikpozessor abbilden wo am anfang noch nicht feststeht das überhaupt etwas gesendet wird?
Folgende Logik will ich abbilden.
TEMPAUSSEN < 11.0 && TEMPINNEN < 21.0 sende HEIZUNG=1
TEMPAUSSEN > 12.0 && TEMPINNEN >= 21.0 sende HEIZUNG=0
wenn keine der beiden Fälle vorliegt soll nichts gesendet werden.
Wahrscheinlich ist das ganz einfach nur habe ich keinen plan wie das gehen könnte.
SO geht das leider nicht. Du kannst den gewünschten Effekt aber genau so auch ohne Verschachtelung erzielen, indem du fünf Logiken definierst (eine pro Uhrzeit und eine ohne Timer-Angabe). Vielleicht geht es auch mit vier, habe ich jetzt nicht durchdacht.
VG, Fry
Gibt es denn irgendeine Möglichkeit, die zeitliche Ausführung einer Aktion parametrisierbar zu machen, also auf gut deutsch: 'Den Wecker zu stellen?'
Die Idee dahinter: Es gibt eine definierbare Uhrzeit 'Auftstehen' und einige Logiken mit Timern, die dann z.B. zum Zeitpunkt Aufstehen -2h usw. ausgeführt werden.
Die Weckzeit hat einen default (z.B. 7:00h) und kann bei Bedarf über die CometVisu abends verändert werden (morgen muss ich früher los).
Hat jemand dazu eine Idee, oder sogar schon was umgesetzt?
Beste Grüße, Dirk
________________________________________ Haus ist fertig - KNX wird's nie werden ;-)
@Dirk: ja gibt es, sieh mal hier im Thread weiter oben unter "followup".
@wuestenfuchs: damit das Ganze funktioniert, solltest du noch "eibd_cache=>5000" (oder so) sowie "execute_on_input_changes_only=>1" als Optionen an alle Logiken setzen. (Neueste Version des Logikprozessors, wie in diesem Thread gepostet, wird vorausgesetzt, die letzte Option gibt es noch nicht so lange). Zusätzlich dafür sorgen, dass Telegramme auf den beiden receive-Adressen in regelmäßigen Abständen kommen (Einmal alle 15min oder so reicht). Dann wird der Wert immer vom Cache gelesen, und falls das irgendwie mal nicht klappen sollte (zB nach Neustart des eibd), dann wird die Logik nicht ausgeführt.
Hintergrund: du hast zwei receive-Adressen. Kommt ein Telegramm auf der einen, dann wird ein knx_read auf die andere ausgeführt. Kommt dann keine Antwort, so ist der gelesene Wert undefiniert (undef) und landet in @input. Nun ist aber leider int(undef)==0 - und so kannst du leicht sehen, was schiefgehen wird.
Es ist ist nicht sehr elegant, weil die Uhrzeit auf zwei GA (Stunde und Minute) abgelegt wird, weil ich zu faul war, mich mit DPT 10.001 auseinanderzusetzen. Im Prinzip sollte es möglich sein, die durch "mein" Plugin bedienten GA auch aus dem Logikprozessor zu lesen und gestützt darauf dann zu einem bestimmten Zeitpunkt etwas auszulösen. Allerdings wäre es eleganter, wenn man direkt auf DPT 10.0001 schreiben könnte.
@wuestenfuchs: noch was: dass deine transmit-Adresse gleich einer der beiden receive-Adressen ist, leuchtet nicht ein. Pass auf, dass du dir keine Endlosschleife erzeugst... (vielleicht besser eine Adresse als receive, die andere als "fetch" definieren).
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