Und-Verknüpfung mit "Bei Änderung auslösen"
Moderator: Co-Administratoren
Und-Verknüpfung mit "Bei Änderung auslösen"
Hallo zusammen,
ich habe eine kurze Frage zu meinem Programm, welches Bewegungsbenachrichtungen verschickt und leider ein bisschen unzuverlässig funktioniert:
Beinhaltet "Bei Änderung auslösen" auch gleichzeitig "Nur prüfen", wenn eine andere Bedingung zuschlägt? Sprich Variable MovementRecognizedCam wird auf BewegungErkannt ausgelöst und die zweite Variable MovementRecognizedBW steht bereits aus BewegungErkannt. Oder ist es besser stattdessen notwendig Folgendes zu basteln?
WENN
--- Variable1 = true mit "Bei Änderung auslösen"
--- UND
--- Variable2 = true mit "Nur prüfen"
- ODER
--- Variable2 = true mit "Bei Änderung auslösen"
--- UND
--- Variable1 = true mit "Nur prüfen"
Besten Dank und viele Grüße!
ich habe eine kurze Frage zu meinem Programm, welches Bewegungsbenachrichtungen verschickt und leider ein bisschen unzuverlässig funktioniert:
Beinhaltet "Bei Änderung auslösen" auch gleichzeitig "Nur prüfen", wenn eine andere Bedingung zuschlägt? Sprich Variable MovementRecognizedCam wird auf BewegungErkannt ausgelöst und die zweite Variable MovementRecognizedBW steht bereits aus BewegungErkannt. Oder ist es besser stattdessen notwendig Folgendes zu basteln?
WENN
--- Variable1 = true mit "Bei Änderung auslösen"
--- UND
--- Variable2 = true mit "Nur prüfen"
- ODER
--- Variable2 = true mit "Bei Änderung auslösen"
--- UND
--- Variable1 = true mit "Nur prüfen"
Besten Dank und viele Grüße!
-
- Beiträge: 290
- Registriert: 06.02.2019, 00:48
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 21 Mal
Re: Und-Verknüpfung mit "Bei Änderung auslösen"
Du kannst auch ODER verwenden.
Bei der UND-Verknüpfung muss ja beides immer wahr sein.
Wenn du es "komplizierter" machen möchtest, dann ginge auch:
Wert1 = true (Änderung)
ODER
Wert2 = true (Änderung)
UND
Wert1 = false (Prüfung)
ODER
Wert2 = false (Prüfung)
Diese Option würde allerdings bedeuten, dass das Programm nur dann auslöst, wenn ein Wert als true geändert wurde und der zweite aber noch auf false steht.
Die Frage stellt sich nur: Wann möchtest du, dass das Programm auslöst? Wenn beide Werte auf true stehen oder wenn sich nur ein Wert auf true ändert?
In deinem Fall bedeutet das, dass Wert1 oder Wert2 schon auf true stehen müsste und sich dann der andere Wert auf true ändern müsste, um das Programm auszuführen (und ja, der zweite Wert wird dabei auch überprüft, da du ja die UND-Verknüpfung verwendest).
Wenn du stattdessen die ODER-Verknüpfung anwendest, wird bei jeder Änderung von Wert1 und Wert2 auf true das Programm ausgelöst - egal wie der andere Wert dann steht!
MfG René
Bei der UND-Verknüpfung muss ja beides immer wahr sein.
Wenn du es "komplizierter" machen möchtest, dann ginge auch:
Wert1 = true (Änderung)
ODER
Wert2 = true (Änderung)
UND
Wert1 = false (Prüfung)
ODER
Wert2 = false (Prüfung)
Diese Option würde allerdings bedeuten, dass das Programm nur dann auslöst, wenn ein Wert als true geändert wurde und der zweite aber noch auf false steht.
Die Frage stellt sich nur: Wann möchtest du, dass das Programm auslöst? Wenn beide Werte auf true stehen oder wenn sich nur ein Wert auf true ändert?
In deinem Fall bedeutet das, dass Wert1 oder Wert2 schon auf true stehen müsste und sich dann der andere Wert auf true ändern müsste, um das Programm auszuführen (und ja, der zweite Wert wird dabei auch überprüft, da du ja die UND-Verknüpfung verwendest).
Wenn du stattdessen die ODER-Verknüpfung anwendest, wird bei jeder Änderung von Wert1 und Wert2 auf true das Programm ausgelöst - egal wie der andere Wert dann steht!
MfG René
Tinkerboard S mit HM-MOD-RPI-PCB (vorher Raspberry Pi3+) RaspberryMatic
HomeMatic Gateway
HomeMatic CCU2 Gateway
80 angelernte wireless Geräte
287 Kanäle
137 Programme
--------------------------------------------
264 Kanäle in 78 Geräten
65 CUxD-Kanäle in 5 CUxD-Geräten
--------------------------------------------
HomeMatic Gateway
HomeMatic CCU2 Gateway
80 angelernte wireless Geräte
287 Kanäle
137 Programme
--------------------------------------------
264 Kanäle in 78 Geräten
65 CUxD-Kanäle in 5 CUxD-Geräten
--------------------------------------------
Re: Und-Verknüpfung mit "Bei Änderung auslösen"
Hallo René,
schon einmal vielen Dank für Deine Antwort. Komplizierter ist immer doof.
Entscheidend für mich war diese Aussage:
Und ja, ich möchte, dass das Programm auslöst, wenn beide Variablen auf "true" stehen.
Viele Grüße,
fäbs
schon einmal vielen Dank für Deine Antwort. Komplizierter ist immer doof.
Entscheidend für mich war diese Aussage:
Ich schließe daraus, dass mein Gedankengang richtig war und die Option "Bei Änderung auslösen" auch überprüft, wenn eine andere Bedingung zutrifft.und ja, der zweite Wert wird dabei auch überprüft, da du ja die UND-Verknüpfung verwendest
Und ja, ich möchte, dass das Programm auslöst, wenn beide Variablen auf "true" stehen.
Viele Grüße,
fäbs
-
- Beiträge: 290
- Registriert: 06.02.2019, 00:48
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 4 Mal
- Danksagung erhalten: 21 Mal
Re: Und-Verknüpfung mit "Bei Änderung auslösen"
Dann kannst du dein Programm ja so lassen.
Wenn du meinst, es funktioniert nicht richtig oder zu unzuverlässig, dann kannst du ja die zweite Option testen:
UND-ODER-UND
Oder noch besser wäre es, wenn du das komplette Programm darstellt, dann könnte man eventuelle Fehler auch gleich sehen (du hast nur einen Ausschnitt des gesamten Programms eingefügt)
MfG René
Wenn du meinst, es funktioniert nicht richtig oder zu unzuverlässig, dann kannst du ja die zweite Option testen:
UND-ODER-UND
Oder noch besser wäre es, wenn du das komplette Programm darstellt, dann könnte man eventuelle Fehler auch gleich sehen (du hast nur einen Ausschnitt des gesamten Programms eingefügt)
MfG René
Tinkerboard S mit HM-MOD-RPI-PCB (vorher Raspberry Pi3+) RaspberryMatic
HomeMatic Gateway
HomeMatic CCU2 Gateway
80 angelernte wireless Geräte
287 Kanäle
137 Programme
--------------------------------------------
264 Kanäle in 78 Geräten
65 CUxD-Kanäle in 5 CUxD-Geräten
--------------------------------------------
HomeMatic Gateway
HomeMatic CCU2 Gateway
80 angelernte wireless Geräte
287 Kanäle
137 Programme
--------------------------------------------
264 Kanäle in 78 Geräten
65 CUxD-Kanäle in 5 CUxD-Geräten
--------------------------------------------
- robbi77
- Beiträge: 13847
- Registriert: 19.01.2011, 19:15
- System: CCU
- Wohnort: Landau
- Hat sich bedankt: 181 Mal
- Danksagung erhalten: 738 Mal
Re: Und-Verknüpfung mit "Bei Änderung auslösen"
Das wurde doch extra schon mal alles aufgeschrieben wie Programme funktionieren ...
Link in meiner Signatur: Programmlogik
Link in meiner Signatur: Programmlogik
Bei Risiken und Nebenwirkungen fragen Sie den Elektriker Ihres geringsten Mißtrauens!
http://www.eq-3.de/service/downloads.html
Tips und Tricks für Anfänger: viewtopic.php?t=22801
Programmlogik: viewtopic.php?f=31&t=4251
Webui-Handbuch: https://www.eq-3.de/downloads/download/ ... h_eQ-3.pdf
Script und Linksammlung: viewtopic.php?f=26&t=27907
Troll des Forums ...
http://www.eq-3.de/service/downloads.html
Tips und Tricks für Anfänger: viewtopic.php?t=22801
Programmlogik: viewtopic.php?f=31&t=4251
Webui-Handbuch: https://www.eq-3.de/downloads/download/ ... h_eQ-3.pdf
Script und Linksammlung: viewtopic.php?f=26&t=27907
Troll des Forums ...
- Roland M.
- Beiträge: 9784
- Registriert: 08.12.2012, 15:53
- System: CCU
- Wohnort: Graz, Österreich
- Hat sich bedankt: 252 Mal
- Danksagung erhalten: 1373 Mal
Re: Und-Verknüpfung mit "Bei Änderung auslösen"
Hallo und willkommen im Forum!
Das wichtigste in meinen Augen ist die Unterscheidung zwischen Programmauslöser und Bedingung(en)!
Auch wenn erst im 27. SONSTWENN ein Auslöser ("Auslösen auf Änderung" bzw. "Auslösen auf Aktualisierung") das Programm startet, so wird das Programm immer von oben nach unten abgearbeitet, der Aktionsteil der ersten wahren Bedingung ausgeführt und das Programm anschließend beendet.
In deinem Fall sind vermutlich beide Systemvariablen "gleichberechtigt", also wäre vermutlich ein "WENN SV1=wahr ODER SV2=wahr DANN..." gerechtfertigt, jeweils mit "Auslösen auf Änderung".
Bitte in solchen Fällen immer den genauen Anwendungsfall angeben, dann kann man auch leichter helfen!
Und immer wieder gerne der Verweis auf die Tipps für Anfänger: viewtopic.php?f=1&t=22801
Roland
Das wichtigste in meinen Augen ist die Unterscheidung zwischen Programmauslöser und Bedingung(en)!
Auch wenn erst im 27. SONSTWENN ein Auslöser ("Auslösen auf Änderung" bzw. "Auslösen auf Aktualisierung") das Programm startet, so wird das Programm immer von oben nach unten abgearbeitet, der Aktionsteil der ersten wahren Bedingung ausgeführt und das Programm anschließend beendet.
In deinem Fall sind vermutlich beide Systemvariablen "gleichberechtigt", also wäre vermutlich ein "WENN SV1=wahr ODER SV2=wahr DANN..." gerechtfertigt, jeweils mit "Auslösen auf Änderung".
Bitte in solchen Fällen immer den genauen Anwendungsfall angeben, dann kann man auch leichter helfen!
Und immer wieder gerne der Verweis auf die Tipps für Anfänger: viewtopic.php?f=1&t=22801
Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...
- Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
- Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
- Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
- Fehlermeldungen genau abschreiben, besser noch...
- Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!
-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...
Re: Und-Verknüpfung mit "Bei Änderung auslösen"
Hallo!
so ganz sehe ich meine Frage dann (und auch nicht mit den Anfängerthreads aus Antwort und Signatur) beantwortet.
Ich habe zwei Variablen, die unabhängig von einander auf wahr, bzw BewegungErkannt gesetzt werden können. Das Programm soll genau dann auslösen (und zwar genau einmal zu dem Zeitpunkt) wenn beide Variablen zeitgleich den Wert true besitzen. Die nächste Auslösung ist frühestens, wenn mindestens eine der beide Variablen wieder auf false Stand.
So habe ich jetzt zwei "Auslöser" die unabhängig voneinander sind.
Viele Grüße!
so ganz sehe ich meine Frage dann (und auch nicht mit den Anfängerthreads aus Antwort und Signatur) beantwortet.
Ich habe zwei Variablen, die unabhängig von einander auf wahr, bzw BewegungErkannt gesetzt werden können. Das Programm soll genau dann auslösen (und zwar genau einmal zu dem Zeitpunkt) wenn beide Variablen zeitgleich den Wert true besitzen. Die nächste Auslösung ist frühestens, wenn mindestens eine der beide Variablen wieder auf false Stand.
So habe ich jetzt zwei "Auslöser" die unabhängig voneinander sind.
Viele Grüße!
- robbi77
- Beiträge: 13847
- Registriert: 19.01.2011, 19:15
- System: CCU
- Wohnort: Landau
- Hat sich bedankt: 181 Mal
- Danksagung erhalten: 738 Mal
Re: Und-Verknüpfung mit "Bei Änderung auslösen"
Dann muss da halt ein UND dazwischen ...Das Programm soll genau dann auslösen (und zwar genau einmal zu dem Zeitpunkt) wenn beide Variablen zeitgleich den Wert true besitzen.
Bei Risiken und Nebenwirkungen fragen Sie den Elektriker Ihres geringsten Mißtrauens!
http://www.eq-3.de/service/downloads.html
Tips und Tricks für Anfänger: viewtopic.php?t=22801
Programmlogik: viewtopic.php?f=31&t=4251
Webui-Handbuch: https://www.eq-3.de/downloads/download/ ... h_eQ-3.pdf
Script und Linksammlung: viewtopic.php?f=26&t=27907
Troll des Forums ...
http://www.eq-3.de/service/downloads.html
Tips und Tricks für Anfänger: viewtopic.php?t=22801
Programmlogik: viewtopic.php?f=31&t=4251
Webui-Handbuch: https://www.eq-3.de/downloads/download/ ... h_eQ-3.pdf
Script und Linksammlung: viewtopic.php?f=26&t=27907
Troll des Forums ...
-
- Beiträge: 10658
- Registriert: 21.09.2012, 08:09
- System: CCU
- Wohnort: Stuttgart
- Hat sich bedankt: 320 Mal
- Danksagung erhalten: 501 Mal
Re: Und-Verknüpfung mit "Bei Änderung auslösen"
Es ist so, wie vermutet:
Bedingung A bei Änderung auslösen
UND
Bedingung B bei Änderung auslösen
heißt, dass bei Erfüllung von A gleichzeitig B geprüft und bei Erfüllung von B gleichzeitig A geprüft wird. Falsch ist dagegen die Annahme, dass bei einer UND-Verknüpfung nur eine Auslösung erfolgt, wenn sich gleichzeitig beide Bedingungen ändern.
Im Falle von
Bedingung A bei Änderung auslösen
ODER
Bedingung B bei Änderung auslösen
wird die jeweils andere Bedingung übrigens nicht geprüft. Da genügt dann die bloße Erfüllung von Bedingung A oder B.
Bedingung A bei Änderung auslösen
UND
Bedingung B bei Änderung auslösen
heißt, dass bei Erfüllung von A gleichzeitig B geprüft und bei Erfüllung von B gleichzeitig A geprüft wird. Falsch ist dagegen die Annahme, dass bei einer UND-Verknüpfung nur eine Auslösung erfolgt, wenn sich gleichzeitig beide Bedingungen ändern.
Im Falle von
Bedingung A bei Änderung auslösen
ODER
Bedingung B bei Änderung auslösen
wird die jeweils andere Bedingung übrigens nicht geprüft. Da genügt dann die bloße Erfüllung von Bedingung A oder B.
CCU3 mit stets aktueller FW und den Addons "CUxD" und "Programmedrucken", ioBroker auf Synology DiskStation DS718+ im Docker-Container;
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
einige Projekte: zentrales Push-Nachrichten-Programm zPNP, DoorPi-Videotürsprechanlage, An- und Abwesenheitsdetektion per Haustürschloss, zentrales Programm zur Steuerung von Beschattungsgeräten zBSP.
-
- Beiträge: 4155
- Registriert: 09.09.2012, 10:41
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 78 Mal
- Danksagung erhalten: 301 Mal
Re: Und-Verknüpfung mit "Bei Änderung auslösen"
Auch wenn das nun spitzfindig ist:
Wenn B das Programm auslöst, wird beim Ablauf das A sehr wohl geprüft und (falls wahr, ohne weitere Prüfung des B) das DANN ausgeführt.
Zuletzt geändert von manfredh am 16.10.2019, 14:23, insgesamt 1-mal geändert.
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.