Denkfehler bei Programmierung
Moderator: Co-Administratoren
-
- Beiträge: 288
- Registriert: 28.02.2013, 17:20
- Hat sich bedankt: 7 Mal
Denkfehler bei Programmierung
Wahrscheinlich nur eine Kleinigkeit..., Hallo und guten Abend, ich habe möglicherweise ein ganz profanes Problem zu lösen, aber ich komm' nicht drauf! Das untenstehende Programm läuft hier ganz unproblematisch immer bei Sonnenuntergang. Ich möchte allerdings, wenn bereits vor dem Auslösen des Programms eine Leuchte eingeschaltet wurde, nicht auf den programmierten Wert zurückfallen bzw. erhöhen, wenn der Sonnenuntergang da ist. Habe ich mich verständlich ausgedrückt? Freue mich auf Eure Ratschläge....
Re: Denkfehler bei Programmierung
Hallo,
du musst einfach nur in deinem Programm nochmal Abfragen ob die Leuchten schon "An" ist. Ist sie an bleibt es dabei, ist sie aus geht sie auf 20%. Das ist Grafisch aber eher schlecht zu Programmieren. Du löst das am besten über ein Script:
Hier musst du nur den Namen des Kanals der Lampe einfügen. Diesen Script fügst du da ein wo jetzt deine Lampe eingeschaltet werden soll. Den jetzigen Eintrag löschen und durch das Script ersetzten. Dann sollte das klappen
du musst einfach nur in deinem Programm nochmal Abfragen ob die Leuchten schon "An" ist. Ist sie an bleibt es dabei, ist sie aus geht sie auf 20%. Das ist Grafisch aber eher schlecht zu Programmieren. Du löst das am besten über ein Script:
Code: Alles auswählen
if (dom.GetObject("Name des Aktorkanals").DPByHssDP("LEVEL").State()==0){
dom.GetObject("Name des Aktorkanals").DPByHssDP("LEVEL").State(0.2);
}
Zuletzt geändert von alchy am 14.02.2018, 23:40, insgesamt 1-mal geändert.
Grund: Code in Codetags posten
Grund: Code in Codetags posten
-
- 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: Denkfehler bei Programmierung
Warum soll das über ein WebUi-Programm nicht einfach gehen?
Nichts einfacher als das:
Nichts einfacher als das:
Code: Alles auswählen
...
UND
Lampe Dimmwert 0%
...
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.
Re: Denkfehler bei Programmierung
Grundsätzlich hast Du Recht... aber... hier werden mehrere Lampen als Gruppe im DANN geschaltet.
Damit ist es unmöglich den Schaltzustand einzelner Lampen zu berücksichtigen und anschl. entsprechend des erkannten Status individuell anzusteuern.
Man könnte höchsten bestimmen das ALLE Lampen gleichzeitig einen bestimmten Dimmwert haben müssen um dann die gesamte Gruppe des DANN zu steuern.
Das halte ich aber für unpraktisch weil theoretisch und sicher auch praktisch nicht immer alle Lampen gemeinsam geschaltet werden.
Ein Lösungsweg würde darin bestehen für jede Lampe ein einzelnes Programm zu erstellen und darin dann den Schaltzustand als Bedingung einzufügen. Das erscheint zwar aufwändig, ist aber sicher am komfortabelsten.
Gerade als Anfänger sollte man die Verwendung von Skripten aufs nötigste begrenzen und zuerst die hauseigenen Möglichkeiten der Programme verstehen- und kennenzulernen.
Damit ist es unmöglich den Schaltzustand einzelner Lampen zu berücksichtigen und anschl. entsprechend des erkannten Status individuell anzusteuern.
Man könnte höchsten bestimmen das ALLE Lampen gleichzeitig einen bestimmten Dimmwert haben müssen um dann die gesamte Gruppe des DANN zu steuern.
Das halte ich aber für unpraktisch weil theoretisch und sicher auch praktisch nicht immer alle Lampen gemeinsam geschaltet werden.
Ein Lösungsweg würde darin bestehen für jede Lampe ein einzelnes Programm zu erstellen und darin dann den Schaltzustand als Bedingung einzufügen. Das erscheint zwar aufwändig, ist aber sicher am komfortabelsten.
Code: Alles auswählen
WENN - anwesend - nur prüfen
UND - Lampe 1 - Dimmwert kleiner 20% - nur prüfen
UND - Displaytaster - Tastendruck kurz
ODER - Sonnenuntergang - zum Zeitpunkt auslösen
DANN - Lampe 1 - sofort - Dimmwert 20%
Viele Grüße!
Jörg
Jörg
Re: Denkfehler bei Programmierung
Ja genau Jörg,
das ist das was ich im Grunde gemeint habe, auch wenn ich es so nicht geschrieben habe. Eine einzige Lampe noch mal individuel zu schalten. Also quasi
Wenn....
1.....
2.....
wenn....
3.....
ist eigentlich Grafisch nicht Darstellbar. Und mit meinen Mini Script ist es ja auch das aller nötigste beschränkt... Für jede Lampe ein eigenes Programm anzulegen macht die Sache nur sehr unübersichtlich.
das ist das was ich im Grunde gemeint habe, auch wenn ich es so nicht geschrieben habe. Eine einzige Lampe noch mal individuel zu schalten. Also quasi
Wenn....
1.....
2.....
wenn....
3.....
ist eigentlich Grafisch nicht Darstellbar. Und mit meinen Mini Script ist es ja auch das aller nötigste beschränkt... Für jede Lampe ein eigenes Programm anzulegen macht die Sache nur sehr unübersichtlich.