ShellyPlus 1 - Ansteuerung über CCU3 und das RELAIS hängt sich auf

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Benutzeravatar
Baxxy
Beiträge: 10644
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 596 Mal
Danksagung erhalten: 2180 Mal

Re: ShellyPlus 1 - Ansteuerung über CCU3 und das RELAIS hängt sich auf

Beitrag von Baxxy » 25.01.2023, 19:51

Also diese ganzen ZZ mach mich kirre. :roll:

Jetzt wo die Katze (INGMAR?) aus dem Sack ist könntest du mal den Screenshot updaten.
Also aktueller Stand ohne Zensur.

Ich vermute es ist: "ZZ 20 01 Licht M****"

Wird ja im ersten DANN sofort auf "WAHR" gesetzt
Das ist eine Änderung und triggert damit (aus dem Sonst wenn heraus) sofort wieder das Programm
Und das geht dann immer so weiter, schöne Schleife.

Abhilfe: Das ganze "Sonst, wenn" in ein eigenes Programm verlegen.

Benutzeravatar
Henke
Beiträge: 1498
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 133 Mal
Danksagung erhalten: 302 Mal

Re: ShellyPlus 1 - Ansteuerung über CCU3 und das RELAIS hängt sich auf

Beitrag von Henke » 25.01.2023, 20:03

Wenn du wirklich den Shelly in den CCU-Jack verlegt hast, gibt es eigentlich direkt die Möglichkeit An/Aus zu schalten. Ohne Exec oder wget.
Das macht auf Dauer die Installation wesentlich übersichtlicher.

Den Fehler vermute ich jedoch liegt im Programm selber. Da ist Baxxy auf dem richten Weg.

MajorMansfeld
Beiträge: 7
Registriert: 16.01.2023, 21:25
System: CCU
Hat sich bedankt: 2 Mal

Re: ShellyPlus 1 - Ansteuerung über CCU3 und das RELAIS hängt sich auf

Beitrag von MajorMansfeld » 25.01.2023, 20:34

Aber lieber BAXXY!

Nu höre doch mal auf über die Bezeichnung meiner Variablen zu mosern! :lol:

Für dich(!!!) benenne ich den Kram sogar um, falls es nicht anders geht. 8) Eigentlich sind es nur Krücken, um ein Abschalten des Lichtes nach 15min zu realisieren bzw. dieses zu verhindern, wenn INGMAR innerhalb "meiner" 15min eintrudelt und dann auch (neu gestartet) seine 15min Licht haben soll.

Ich habe Alchy´s "Programme_loggen" mühevoll zum Laufen bekommen und es hat mir in der Tat angezeigt, das permanent ZZ 20 01 Licht M****" getriggert wird.

Ich bin noch nicht so firm in der Netiquette hier und wollte nicht gleich INGMAR´s Identität preisgeben. INGMAR heißt ILONA und ist schon wieder pissed, weil ich den Kram nicht geregelt bekomme und kurz wieder vorm Rechner sitze.

Ich hänge die einmal in Klarnamen und OHNE geänderte Bezeichnung der Systemvariablen (sei tapfer! es kommen noch mehr "ZZ....") das Auslöseprogramm für die Übeltäter-Systemvariable und das angepasste, bereits im ersten Post gezeigte "Auslöse"-Programm für die Lampe rein.

Hier das Auslöse-Programm für die Systemvariable, mit Anwesenheitserkennung und anderen Auslösern.
Lichtbedarf Auslöser1.jpg
Lichtbedarf Auslöser2.jpg
Und hier in Klarnamen und mit korrekten Tatsendrückern das Lampen-Programm
Licht Auslöser.jpg
Ich schalte den Krempel morgen noch einmal in Ruhe scharf und hänge dir das Systemprotokoll mit rein. Ich würde das gerne morgen nochmals sauber laufen lassen. Durch die wild deaktivierten Programm isses ein wenig schwer zu verstehen - für mich.

Ich traue es mir nicht zu schreiben, aber du musst mir bei Gelegenheit die Endlos-Schleife meines Kunstwerkes erklären, ich checke es nicht ganz. :wink:

Ich möchte mich aber schon einmal explizit für die bisherige Hilfe bedanken!!!!

Ich muss hier aber abbrechen, sonst probiere ich wieder die ganze Nacht und INGMAR rächt sich grausam dafür!

Grüße,

Mario

MajorMansfeld
Beiträge: 7
Registriert: 16.01.2023, 21:25
System: CCU
Hat sich bedankt: 2 Mal

Re: ShellyPlus 1 - Ansteuerung über CCU3 und das RELAIS hängt sich auf

Beitrag von MajorMansfeld » 25.01.2023, 20:37

@ Henke

Jupp, ich überleg es mir. Da die ganze Sch* wieder den selben Fehler hatte, habe ich den CCU-Jack wieder rausgekickt. Aber das lässt sich rückgängig machen.

Ich denke Baxxy ist echt auf dem richtigen Weg.

Grüße,

Mario.

Benutzeravatar
Baxxy
Beiträge: 10644
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 596 Mal
Danksagung erhalten: 2180 Mal

Re: ShellyPlus 1 - Ansteuerung über CCU3 und das RELAIS hängt sich auf

Beitrag von Baxxy » 25.01.2023, 23:48

Das sieht jetzt schon besser aus und lässt sich leichter "lesen" und überblicken.

Das Problem an sich bleibt natürlich und lässt sich am einfachsten durch abtrennen des 'Sonst, wenn' in ein separates Programm beheben.

Programme werden immer von oben nach unten abgearbeitet und durch alles was nicht "nur prüfen" ist getriggert.
Die "Zusatzbedingung" 'bei Änderung' wird nicht im Vorfeld geprüft sondern erst wenn der triggernde Wert "an der Reihe" ist.
Dazu kommt es aber nicht da das Programm immer im ersten DANN landet und sich dann beendet.

A:Dein Programm rennt (durch "Lichtbedarf Mario" bzw. "Licht Mario" getriggert) los.
B: "Lichtbedarf Mario" hat sich geändert = WAHR;
C: "Lichtbedarf Mario" steht auf 'ist wahr' = WAHR;
D: alle Prüfbedingungen ok = WAHR;

DANN
E: "Licht Mario" --> setze auf 'ist wahr'
"Licht Mario" ist ein Trigger im 'Sonst, wenn' also springe zu... A

A: Jetzt rennt dein Programm (durch "Licht Mario" getriggert) los.
B: "Lichtbedarf Mario" ist nicht der Trigger muss also nicht auf Änderung geprüft werden;
C: "Lichtbedarf Mario" steht auf 'ist wahr' = WAHR;
D: alle Prüfbedingungen ok = WAHR;

DANN
E: "Licht Mario" --> setze auf 'ist wahr'
"Licht Mario" ist ein Trigger im 'Sonst, wenn' also springe zu... A
usw.

Durch den Retrigger-Haken werden auch die Timer immer wieder neu gestartet so das "Lichtbedarf Mario" nicht mehr auf 'ist falsch' gesetzt wird.

Schwer zu erklären, vielleicht kommt @Xel66 noch vorbei... er kann das besser. :)

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

Re: ShellyPlus 1 - Ansteuerung über CCU3 und das RELAIS hängt sich auf

Beitrag von Xel66 » 26.01.2023, 00:46

Baxxy hat geschrieben:
25.01.2023, 23:48
Schwer zu erklären, vielleicht kommt @Xel66 noch vorbei... er kann das besser. :)
Passt schon so. Gut analysiert. Die Krux dabei ist, dass die Prüfung der Bedingung auf "bei Änderung/bei Aktualisierung" (vermutlich) ein Teil der Bedingungsprüfung der Programme selbst ist (und nicht im Vorfeld abgeprüft wird). Zumindest ergeben das Tests. In einfachen Programmen stellt sich das aber so wie dokumentiert dar, nur eben in komplexeren Programmen nicht mehr.

Die Bedingungsprüfung eines Programms läuft stur "von oben nach unten" ab und prüft nur die aktuellen Status zum Zeitpunkt der Prüfung (nachdem irgendein Trigger innerhalb des Programms sich geändert/aktualisiert hat - und das ist die Falle) und nicht, ob sich aktuell eine Änderung ergeben hat (bis zu der Bedingung kommt der Prüflauf aber gar nicht). Diese Prüfung trifft im ersten WENN schon auf eine WAHRe Bedingung und führt das DANN aus. Dieses setzt wieder die Systemvariable und das Programm wird wieder getriggert. Somit stellt das Programm eine sich selbst aufrufende Schleife dar. Klassischer Schuss ins eigene Knie und erklärt sich leider nicht von selbst. Die Ursache liegt eben in der ungewöhnlichen Art und Weise, wie die CCU Programme triggert und deren Bedingungen prüft. Einfache Lösung des Problems nur durch Abtrennen des SONST WENN in ein separates Programm möglich.

Eigentlich hatte ich bis zum Lesen des oben zitierten Satzes mit meinem Nic schon die Maus auf dem "Tab schließen"-Button. Die vielen ähnlichen Bezeichnungen waren mir einfach zu anstrengend zu lesen. Vielleicht ergibt das ja einen Sinn, ist aber für den Außenstehenden mehr als verwirrend. Aber Außenstehende müssen ja im Normalfall damit nicht klarkommen.

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

MajorMansfeld
Beiträge: 7
Registriert: 16.01.2023, 21:25
System: CCU
Hat sich bedankt: 2 Mal

Re: ShellyPlus 1 - Ansteuerung über CCU3 und das RELAIS hängt sich auf

Beitrag von MajorMansfeld » 26.01.2023, 18:23

Guten Abend zusammen!

Baxxy hatte in der Tat den richtigen Riecher.

Ich habe heute früh die vorgeschlagene Trennung des SONST WENN durchgeführt, das ALCHY-Skript mitlaufen lassen und es funktioniert alles!

Danke für die Geduld und die Lösungsführung! :wink:

Mario

Benutzeravatar
Baxxy
Beiträge: 10644
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 596 Mal
Danksagung erhalten: 2180 Mal

Re: ShellyPlus 1 - Ansteuerung über CCU3 und das RELAIS hängt sich auf

Beitrag von Baxxy » 26.01.2023, 23:16

Also wenn ich mir das "xyz LICHTBEDARF MARIO" so anschaue... :shock:

Alles doppelt im ersten Wenn, einziger Unterschied die Zeitmodule und (vernachlässigbar) die Helligkeit. (< 200 vs <= 200)

Komprimiert dann beispielhaft so:
(das 'Sonst, wenn' bleibt wie es ist)
RM_PRG_Template.JPG

Antworten

Zurück zu „CUxD“