Okay, verstanden. So meinst du?
Bedingungen werden doppelt aktiviert
Moderator: Co-Administratoren
-
- Beiträge: 9679
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1626 Mal
Re: Bedingungen werden doppelt aktiviert
Hast du aus Änderung ein Aktualisierung gemacht?
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 +++
-
- Beiträge: 5452
- Registriert: 30.05.2019, 11:37
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Chemnitz
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 741 Mal
-
- Beiträge: 16
- Registriert: 11.06.2019, 11:11
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: Bedingungen werden doppelt aktiviert
Entschuldigung, Fehler.
Ich bin Holländer, also Deutsch ist nicht meine Muttersprache
Ich versuch jetzt mal so:
-
- Beiträge: 16
- Registriert: 11.06.2019, 11:11
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: Bedingungen werden doppelt aktiviert
Resultat ist jetzt, beim schliessen der SWDO:
11:54:54 09.06.2023 R001 status Fancoil: 0 | Temp: 24,8 | Gewenst: 17,0 | Deur: open
11:54:56 09.06.2023 R001 status Fancoil: 3 | Temp: 24,8 | Gewenst: 17,0 | Deur: dicht
Hier passiert also: Der absenktemperatur ist schon von 12 auf 17 hochgegangen (logisch, weil Gruppe), und direkt demnächst wird der neue Status von SWDO als neuer trigger verarbeitet.
-
- Beiträge: 16
- Registriert: 11.06.2019, 11:11
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: Bedingungen werden doppelt aktiviert
Im Skript mache ich eigentlich nur dies, richtung der DRSI. Der wird weiter im skript angesteuert an hand vom variabele "fancoil":
Code: Alles auswählen
if ((status_SWDO == 0) && (actual >= threshold_cooling)) {
if (delta > (minimum_delta + 2*fancoil_delta)) { fancoil = 3; }
elseif (delta > (minimum_delta + fancoil_delta)) { fancoil = 2; }
elseif (delta > (minimum_delta)) { fancoil = 1; }
}
-
- Beiträge: 5452
- Registriert: 30.05.2019, 11:37
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Chemnitz
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 741 Mal
Re: Bedingungen werden doppelt aktiviert
Du setzt die Variable auf einen Wert, ohne vorher zu testen, ob sie nicht schon den Wert hat. Das ist mit Abfangen gemeint.
Allerdings stellt das mehrfache Beschreiben einer (lokalen) Variablen ja auch keinen Beinbruch dar - es sei denn, man benutzt sie für eine SV und wertet diese auch wieder mit Bei Aktualisierung aus.
Allerdings zeigst du uns ja nicht, wie die Variablen definiert sind und was du mit dem zugewiesenen Wert NACH der if-Bedingung überhaupt machst.
Es steht zu befürchten, dass du die Ausgabe letztlich auch wieder ohne Abfangen von Werten ohne Änderung ausführst.
Allerdings stellt das mehrfache Beschreiben einer (lokalen) Variablen ja auch keinen Beinbruch dar - es sei denn, man benutzt sie für eine SV und wertet diese auch wieder mit Bei Aktualisierung aus.
Allerdings zeigst du uns ja nicht, wie die Variablen definiert sind und was du mit dem zugewiesenen Wert NACH der if-Bedingung überhaupt machst.
Es steht zu befürchten, dass du die Ausgabe letztlich auch wieder ohne Abfangen von Werten ohne Änderung ausführst.
Zuletzt geändert von Matsch am 09.06.2023, 13:27, insgesamt 1-mal geändert.
-
- Beiträge: 9679
- Registriert: 27.04.2020, 10:34
- System: CCU
- Hat sich bedankt: 700 Mal
- Danksagung erhalten: 1626 Mal
Re: Bedingungen werden doppelt aktiviert
Das Skript ist doch nicht vollständig?
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 +++
-
- Beiträge: 5452
- Registriert: 30.05.2019, 11:37
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Chemnitz
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 741 Mal
-
- Beiträge: 16
- Registriert: 11.06.2019, 11:11
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
Re: Bedingungen werden doppelt aktiviert
Anbei das ganze skript, die Gruppe und die settings der Gruppe.
Danke für's mitdenken.
Edit 9-6-2023 18:15: Script code teilweise gelöscht, weil Auftrag von Kunde. Bitte schick ein Privat für info.
Danke für's mitdenken.
Edit 9-6-2023 18:15: Script code teilweise gelöscht, weil Auftrag von Kunde. Bitte schick ein Privat für info.
Code: Alles auswählen
...
var sysvar = dom.GetObject(variable).Value();
var fancoil = 0;
var status_SWDO = dom.GetObject(SWDO#":1.STATE").Value();
if ((status_SWDO == 0) && (actual >= threshold_cooling)) {
if (delta > (minimum_delta + 2*fancoil_delta)) { fancoil = 3; }
elseif (delta > (minimum_delta + fancoil_delta)) { fancoil = 2; }
elseif (delta > (minimum_delta)) { fancoil = 1; }
}
if(fancoil != sysvar) {
if (fancoil == 0) {
dom.GetObject(DRSI#":6.STATE").State(0);
dom.GetObject(DRSI#":10.STATE").State(0);
dom.GetObject(DRSI#":14.STATE").State(0);
dom.GetObject(DRSI#":18.STATE").State(0);
}
elseif (fancoil == 1) {
dom.GetObject(DRSI#":6.STATE").State(1);
dom.GetObject(DRSI#":10.STATE").State(1);
dom.GetObject(DRSI#":14.STATE").State(0);
dom.GetObject(DRSI#":18.STATE").State(0);
}
elseif (fancoil == 2) {
dom.GetObject(DRSI#":6.STATE").State(1);
dom.GetObject(DRSI#":10.STATE").State(0);
dom.GetObject(DRSI#":14.STATE").State(1);
dom.GetObject(DRSI#":18.STATE").State(0);
}
elseif (fancoil == 3) {
dom.GetObject(DRSI#":6.STATE").State(1);
dom.GetObject(DRSI#":10.STATE").State(0);
dom.GetObject(DRSI#":14.STATE").State(0);
dom.GetObject(DRSI#":18.STATE").State(1);
}
}
Zuletzt geändert von Ecopunt am 09.06.2023, 18:19, insgesamt 2-mal geändert.