[GELÖST] Skriptausführung bei falscher Bedingung (?)

Einrichtung, Nutzung und Hilfe zu RaspberryMatic (OCCU auf Raspberry Pi)

Moderatoren: jmaus, Co-Administratoren

Antworten
joesch
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 (?)

Beitrag von joesch » 07.05.2022, 13:45

Hallo zusammen!

Da ich auch im Thread "Logik von WebUI-Programmen nicht fündig geworden bin ( ;-) ), eine kurze Verständnisfrage zu folgendem kleinen Programm:
Unbenannt.PNG
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
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)

Xel66
Beiträge: 14165
Registriert: 08.05.2013, 23:33
System: Alternative CCU (auf Basis OCCU)
Wohnort: Nordwürttemberg
Hat sich bedankt: 585 Mal
Danksagung erhalten: 1500 Mal

Re: Skriptausführung bei falscher Bedingung (?)

Beitrag von Xel66 » 07.05.2022, 14:07

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
-------------------------------------------------------------------------------------------
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

MichaelN
Beiträge: 9679
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: Skriptausführung bei falscher Bedingung (?)

Beitrag von MichaelN » 07.05.2022, 14:36

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.
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 +++

Benutzeravatar
Roland M.
Beiträge: 9804
Registriert: 08.12.2012, 15:53
System: CCU
Wohnort: Graz, Österreich
Hat sich bedankt: 252 Mal
Danksagung erhalten: 1381 Mal

Re: Skriptausführung bei falscher Bedingung (?)

Beitrag von Roland M. » 07.05.2022, 15:02

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.

Code: Alles auswählen

WENN Alarmanlage scharf
UND
   Türschloss verriegelt
   ODER
   Türschloss entriegelt
DANN ...
ODER unter RM einfacher:

Code: Alles auswählen

WENN Alarmanlage scharf
UND Türschloss NICHT offen
DANN...

Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
  • 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,...

Benutzeravatar
robbi77
Beiträge: 13858
Registriert: 19.01.2011, 19:15
System: CCU
Wohnort: Landau
Hat sich bedankt: 182 Mal
Danksagung erhalten: 739 Mal

Re: Skriptausführung bei falscher Bedingung (?)

Beitrag von robbi77 » 07.05.2022, 16:54

Oder für jede Meldung die man haben will ein extra Programm.


joesch
Beiträge: 789
Registriert: 03.02.2007, 14:57
Hat sich bedankt: 64 Mal
Danksagung erhalten: 2 Mal

Re: Skriptausführung bei falscher Bedingung (?)

Beitrag von joesch » 07.05.2022, 18:09

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
System: RaspberryMatic auf Raspberry Pi 3 Model B Rev 1.2 (rpi3) mit RPI-RF-MOD (4.4.22)

Antworten

Zurück zu „RaspberryMatic“