Hallo zusammen!
Da ich auch im Thread "Logik von WebUI-Programmen nicht fündig geworden bin ( ), eine kurze Verständnisfrage zu folgendem kleinen Programm:
Das Programm soll in folgenden Fällen eine Push-Nachricht versenden:
- Tür aufgeschlossen
- Tür verschlossen
- Alarmanlage scharf
Das funktioniert auch problemlos. Jedoch wird zusätzlich auch eine Nachricht versendet (also das Skript ausgeführt), wenn der Wert des sysVar Alarmanlage von scharf auf unscharf wechselt (Sysvar vom Typ Logikwert, wahr = scharf, falsch = unscharf). Bin ich hier einem Bug aufgesessen oder habe ich einfach etwas nur falsch verstanden? Iach habe das Programm auch bereits neu angelegt und eine anderes benannte Systemvariable verwendet. Leider bestand das Problem wieter ...
Vielen Dank schon mal für eure Hilfe!
VG, Jörg
[GELÖST] Skriptausführung bei falscher Bedingung (?)
Moderatoren: jmaus, Co-Administratoren
-
- Beiträge: 789
- Registriert: 03.02.2007, 14:57
- Hat sich bedankt: 64 Mal
- Danksagung erhalten: 2 Mal
[GELÖST] Skriptausführung bei falscher Bedingung (?)
Zuletzt geändert von joesch am 07.05.2022, 18:11, insgesamt 2-mal geändert.
System: RaspberryMatic auf Raspberry Pi 3 Model B Rev 1.2 (rpi3) mit RPI-RF-MOD (4.4.22)
-
- Beiträge: 14148
- Registriert: 08.05.2013, 23:33
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Nordwürttemberg
- Hat sich bedankt: 583 Mal
- Danksagung erhalten: 1497 Mal
Re: Skriptausführung bei falscher Bedingung (?)
Ist normal, da der Zustand der Systemvariable wechselt, wird eine Bedingungsprüfung durchgeführt, die auf mindestens eine weitere WAHRe Bedingung trifft. Dieses "bei Änderung" funktioniert nur als alleiniger Trigger in einem Programm. Bei "komplexeren" Aufbauten mit mehreren Triggern wird es tricky. Nicht unbedingt das was man erwartet. Aber enthält ein Programm mehrere Trigger oder den gleichen Trigger in verschiedenen SONST WENN mit mehreren Status, verhält es sich manchmal so wie "bei Aktualisierung". Schaltest Du die beiden anderen beiden Bedingungen mal testweise auf "nur prüfen", wird es vermutlich wie beabsichtigt funktionieren.
Gruß Xel66
Gruß Xel66
-------------------------------------------------------------------------------------------
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
524 Kanäle in 146 Geräten und 267 CUxD-Kanäle in 34 CUxD-Geräten:
343 Programme, 334 Systemvariablen und 183 Direktverknüpfungen,
RaspberryMatic Version: 3.65.11.20221005 + Testsystem: CCU2 2.61.7
-------------------------------------------------------------------------------------------
Einsteigerthread, Programmlogik-Thread, WebUI-Handbuch
-
- Beiträge: 9649
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 697 Mal
- Danksagung erhalten: 1617 Mal
Re: Skriptausführung bei falscher Bedingung (?)
Das muss hier noch nichtmal der "Aktualisierung" Bug sein. Halte ich sogar für unwahrscheinlich.
Auf unscharf wechseln ist eine Änderung, die triggert auf jeden Fall das Programm. Auch wenn die Bedingung dann nicht erfüllt ist. Eine der anderen beiden wird mit ziemlicher Sicherheit immer erfüllt sein.(auch bei "nur prüfen") Daher kommt die Meldung. In 2 Programme aufteilen.
Auf unscharf wechseln ist eine Änderung, die triggert auf jeden Fall das Programm. Auch wenn die Bedingung dann nicht erfüllt ist. Eine der anderen beiden wird mit ziemlicher Sicherheit immer erfüllt sein.(auch bei "nur prüfen") Daher kommt die Meldung. In 2 Programme aufteilen.
LG, Michael.
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.
Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++
- Roland M.
- Beiträge: 9777
- Registriert: 08.12.2012, 15:53
- System: CCU
- Wohnort: Graz, Österreich
- Hat sich bedankt: 252 Mal
- Danksagung erhalten: 1369 Mal
Re: Skriptausführung bei falscher Bedingung (?)
Hallo Jörg,
abgesehen davon, dass das Türschloss vermutlich auch "offen" sein kann, ist "verriegelt ODER nicht verriegelt" immer wahr. Dadurch ist es egal, ob die Alarmanlage scharf oder unscharf ist.
Du wirst vermutlich die Alarmanlage und das Türschloss UND-verknüpfen wollen.
ODER unter RM einfacher:
Roland
abgesehen davon, dass das Türschloss vermutlich auch "offen" sein kann, ist "verriegelt ODER nicht verriegelt" immer wahr. Dadurch ist es egal, ob die Alarmanlage scharf oder unscharf ist.
Du wirst vermutlich die Alarmanlage und das Türschloss UND-verknüpfen wollen.
Code: Alles auswählen
WENN Alarmanlage scharf
UND
Türschloss verriegelt
ODER
Türschloss entriegelt
DANN ...
Code: Alles auswählen
WENN Alarmanlage scharf
UND Türschloss NICHT offen
DANN...
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,...
- Baxxy
- Beiträge: 10763
- Registriert: 18.12.2018, 15:45
- System: Alternative CCU (auf Basis OCCU)
- Hat sich bedankt: 602 Mal
- Danksagung erhalten: 2201 Mal
Re: Skriptausführung bei falscher Bedingung (?)
Oder im Script die Bedingungen einlesen und je nach Status die Nachricht anpassen...
Grüße... Baxxy
- Raspberry Pi 4 als Homematic-Zentrale - Tipps und Informationen
- Analysescript für genutzte Funk-Adressen, Funkmodul-Hardware und Zentralen Hardware
- NANO CUL 868MHz - Stick zum AskSin Analyzer XS umflashen (Anleitung für ArduinoIDE unter Windows)
- Firmware Updates für IP-Aktoren / Sensoren... Info's, Tipps und Sonstiges
- CCU funkt nicht - CarrierSense (CS) Probleme erkennen und lösen
-
- Beiträge: 789
- Registriert: 03.02.2007, 14:57
- Hat sich bedankt: 64 Mal
- Danksagung erhalten: 2 Mal
Re: Skriptausführung bei falscher Bedingung (?)
Vielen Dank für eure zahlreichen Rückmeldungen Ich glaube, mein entscheidender Fehler bestand darin zu übersehen, dass von den übrigen Bedingungen in jedem Fall eine wahr war Ich habe mich entschlossen, die Prüfung in das Nachrichtenskript einzubauen. Dort werte och ohnehin für die Benachrichtigung Systemavariablen aus, so dass das dort gut passt.
Vielen Dank und VG, Jörg
Vielen Dank und VG, Jörg
System: RaspberryMatic auf Raspberry Pi 3 Model B Rev 1.2 (rpi3) mit RPI-RF-MOD (4.4.22)