Statusanzeige LED16

Programmierung der HomeMatic CCU mittels contronics homeputer CL

Moderator: Co-Administratoren

Antworten
hubi1512
Beiträge: 27
Registriert: 04.11.2016, 17:19

Statusanzeige LED16

Beitrag von hubi1512 » 10.01.2017, 19:56

hallo,
hab mal wieder eine Frage:

Will aufstehende Fenster etc. in der LED 16fach Anzeige anzeigen lassen.
Signalisiert ein Fensterkonakt ein offenes Fenster geht die Anzeige auf rot.
Wir es wieder geschlossen auf grün.
Grün soll dann eine Zeit an bleiben und dann die Anzeige ausgehen.

Funktioniert soweit, nur.... dass die LEDs immer mal wieder auf grün gehen auch wenn
das Fenster in der Zwischenzeit nicht geöffent wurde.

Hier der Code:

Code: Alles auswählen

wenn
  Fensterkontakt_1_Garage geöffnet dann
    LED_1_Garage_1_L :="rot"
endewenn

wenn
  Fensterkontakt_1_Garage geschlossen  dann
  LED_1_Garage_1_L :="grün"
  warte 20 minuten
 wenn
   Fensterkontakt_1_Garage geschlossen  dann
   LED_1_Garage_1_L :="aus"
 endewenn
endewenn

Vermutlich funkt der Fensterkontakt hin und wieder "ich bin zu".
Nur wie kann ich das umgehen wenns denn so ist.

Mfg und ein gesundes neues Jahr!
Hubertus

ubecker
Beiträge: 569
Registriert: 31.01.2014, 22:53
Wohnort: Duisburg

Re: Statusanzeige LED16

Beitrag von ubecker » 10.01.2017, 22:22

worauf triggerst du? auf Aktualisierung oder auf Änderung?
gruß Udo

Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 34 Mal

Re: Statusanzeige LED16

Beitrag von Familienvater » 10.01.2017, 22:46

Hi,

er wird wohl auf Empfang und nicht auf Änderung triggern...

Und als Verbesserungsvorschlag:
Das 2. Überprüfen, ob der Fensterkontakt noch geschlossen ist, ist überflüssig, wenn der Kontakt während der Wartezeit wieder geöffnet werden würde, wird das warte abgebrochen.

Code: Alles auswählen

    
wenn Fensterkontakt_1_Garage geöffnet dann
        LED_1_Garage_1_L :="rot"
sonst
        LED_1_Garage_1_L :="grün"
        warte 20 minuten
        LED_1_Garage_1_L :="aus"
endewenn
Macht das gleiche, und liest sich besser...

Der Familienvater

Benutzeravatar
Herbert_Testmann
Beiträge: 11062
Registriert: 17.01.2009, 11:30
Danksagung erhalten: 7 Mal

Re: Statusanzeige LED16

Beitrag von Herbert_Testmann » 10.01.2017, 22:51

hubi1512 hat geschrieben: Vermutlich funkt der Fensterkontakt hin und wieder "ich bin zu".
Nur wie kann ich das umgehen wenns denn so ist.

Mfg und ein gesundes neues Jahr!
Hubertus
hallo

das makro nicht "bei Empfang" sondern bei Änderung ausführen lassen.
---
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig

hubi1512
Beiträge: 27
Registriert: 04.11.2016, 17:19

Re: Statusanzeige LED16

Beitrag von hubi1512 » 12.01.2017, 15:49

hallo,
vielen Dank.
Laeuft! lasse auf Änderung triggern. Gruene LED bleibt aus.

Verstehe nur nicht warum das nach diesem Muster nich mit einem Bewegungsmelder funktioniert.
Habe Makro wie folgt analog zu den Fensterkontakten eingegeben, auf Änderung getriggert, und
dann geht die rote LED an und bleibt rot. Wieder auf Empfang getriggert und geht - rot-grün-aus.... Jetzt hab
ich allerdings noch nicht aufgepasst, ob sich das grüne Licht auch hin und wieder mal einschaltet.
Dem unten dran hängenden Einschalter fürs Licht scheint das egal zu sein,
Der funktioniert mit Änderung wie mit Empfang.
Ich habs offensichtlich noch nicht verstanden.......


Code: Alles auswählen

wenn
   Bewegungsmelder_1_Terrasse="an"  dann
   LED_1_Bewegungsmelder_1_16_L :="rot"
 sonst
   LED_1_Bewegungsmelder_1_16_L :="grün"
    warte 10 minuten
   LED_1_Bewegungsmelder_1_16_L :="aus"
endewenn

wenn
 Bewegungsmelder_1_Terrasse = "an"  und
 Bewegungsmelder_1_H <60 dann
   FS20ST_4 einschalten für "00:00:60"
endewenn

Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 34 Mal

Re: Statusanzeige LED16

Beitrag von Familienvater » 13.01.2017, 00:03

Hi,

das musst Du ggf. mal versuchen, in der History nachzuvollziehen, wann und wie oft was von dem Bewegungsmelder kommt.
Wenn Du auf Empfang triggerst, müsste eigentlich IMMER entweder rot oder grün an sein (ich gehe von einem HM-Bewegungsmelder aus), der sendet öfter, so das die Wartezeit immer abgebrochen wird.

Der Familienvater

hubi1512
Beiträge: 27
Registriert: 04.11.2016, 17:19

Re: Statusanzeige LED16

Beitrag von hubi1512 » 16.01.2017, 18:57

hallo,
ich steh schon wieder auf dem Schlauch.....

nachdem das o.g. ja gut funktioniert, mit einem Fenster im Raum, gibt es dummerweise auch noch Räume mit
mehreren Fenstern.

Habe die ODER Verknüpfung von 2 TFKen auf eine LED in der Anzeige nicht hinbekommen.

Habe ein virtuelles Objekt vom Typ Makro (auch mit anderen Typen versucht) wie folgt angelegt.
Mit triggern auf "Ausführung bei Änderung" ging gar nix.
Mit Ausführungsintervall von 5 sec. (mit der Verzögerung kann man leben) gehts zwar (rot und grün) aber
dunkel wirds natürlich nicht ... und ist ja irgendwie auch nicht der Sinn und Zweck dass da alle paar Sekunden
rumgefunkt wird.....

Code: Alles auswählen

wenn
    Fensterkontakt_4_EG_Kueche_nord geöffnet
  oder
    Fensterkontakt_5_EG_Kueche_west geöffnet
 dann
    LED_1_EG_Kueche_3_L :="rot"
    LED_2_EG_Kueche_3_L :="rot"
sonst
   LED_1_EG_Kueche_3_L :="grün"
   LED_2_EG_Kueche_3_L :="grün"
  warte 20 minuten
   LED_1_EG_Kueche_3_L :="aus"
   LED_2_EG_Kueche_3_L :="aus"
endewenn
Nun hab ichs doch noch irgend wie zum Laufen gebracht. Nur ich weiss nicht warum das so geht.
Mir fehlt wohl das Verständnis für die Logik dahinter.

Ich habe also obiges Macro jeweils exakt so wies oben steht in jeden TFK (Nr. 4 und Nr. 5 )
gepackt. Die ODER Verknüpfung funktioniert, LED geht auch wieder aus.

Kann das jemand logisch erklären?

Mfg Hubertus.

Benutzeravatar
Herbert_Testmann
Beiträge: 11062
Registriert: 17.01.2009, 11:30
Danksagung erhalten: 7 Mal

Re: Statusanzeige LED16

Beitrag von Herbert_Testmann » 16.01.2017, 19:59

Hallo

wenn Du ein Objekt "Makro" hast, dann passiert nichts "bei Änderung" , weil die Änderung sich auf das Objekt bezieht, in dem das Makro steht. Also Hardware. In Diesem fall ändert sich an dem Objekt "Makro" ja nichts.

Der Ansatz das Makro in die TFK rein zu schreiben ist richtig.

Allerdings hast Du ffür jeden TFK offenbar eine LED. Dann muss in dem jeweiligen makro auch nur die eine LED bearbeitet werden.
Und am Anfang kein oder.

Jeder TFK bedient seine LED.

Ein Oder wird nur gebraucht, wenn Du für beide Fenster nur eine LED nimmst "LED Kueche"
---
Dieses Schreiben wurde maschinell erstellt und ist ohne Unterschrift gültig

Familienvater
Beiträge: 7151
Registriert: 31.12.2006, 15:18
System: Alternative CCU (auf Basis OCCU)
Wohnort: Rhein-Main
Danksagung erhalten: 34 Mal

Re: Statusanzeige LED16

Beitrag von Familienvater » 16.01.2017, 21:03

Hi Hubi,

ich kenne Deinen Werdegang nicht, weshalb ich Dir nicht sagen kann, warum Du oder HPCL da anderer Ansicht ist, was das Triggern eines Makros angeht, grundsätzlich finde ich HPCL wesentlich logischer aufgebaut als die WebUI.

Wenn Du schon mal WebUI versucht hast, dann vergiss ganz Schnell, was Du da "gelernt" hast.
Das Nutzen eines Objekts in einer Wenn-Abfrage in HPCL hat keinerlei Auswirkungen auf die Triggerung des Makros.
Ein Objekt-Makro (was zu einem "echten" Hardware-Sender/Empfänger) gehört, wird normalerweise auch nur durch diesen ausgelöst (getriggert), außer man macht "wilde" Dinge, und läßt z.B. ein Steckdosenaktor-Objekt noch ZUSÄTZLICH in einem Intervall ausführen (was vollkommener Nonsens ist).
Das Steckdosenaktor-Objekt kann nur auf "Änderung" getriggert werden, weil es normalerweise eben kein Sender ist, sondern ein Empfänger. Um aber z.B. eine Mail zu verschicken, wenn der Aktor ein- oder ausgeschaltet wurde, reicht das normalerweise.

Ein Sender (Fernbedienung, TFK, Thermometer) kann auf "Änderung" oder/und "Empfang" getriggert werden, da kommt es dann genauer drauf an, was man erreichen möchte. In 80% der Fälle sollte auch hier auf Änderung zum Ziel führen, es gibt aber durchaus Fälle, wo jeder Empfang etwas auslösen soll, auch wenn sich nichts geändert hat.

Wenn man jetzt z.B. eine LED für ein ganzes Stockwerk nutzen will, und die LED soll ROT anzeigen, wenn nicht alles geschlossen ist, und man hat 20 TFKs in der Ebene, dann kann man natürlich in jeden einzelnen TFK den gleichen Code reinkopieren, der z.B. jeden TFK einzeln prüft und bei nicht geschlossen eine Variable (oder auch ein Objekt) hochzählt, und wenn das am Ende größer als 0 ist, dann wird rot geschaltet, sonst grün. Weil wir aber alle Bastler sind, und übermorgen noch ein TFK an die Katzenklappe muss, müsste man ja dann 20 Objekt-Makros anpassen, und dort noch die Katzenklappe zufügen. Weil das doof ist, macht man dann ein neues Makro (ohne direkten "Hardwarebezug"), schreibt dort alle Bedingungen/Prüfungen/Aktionen rein, und startet einfach das Makro aus jedem der 20 TFKs, kommt der 21. dazu, muss nur 1x das Makro angepasst werden, und der Aufruf auch in den 21. TFK. Es bleibt "übersichtlich", und mit relativ wenig Aufwand pflegbar, die CCU "platzt" auch nicht, weil es nicht im Intervall ausgeführt werden muss.

Schwieriger (unübersichtlicher) wird es, wenn z.B. eine Außenleuchte in Abhängigkeit von 3 Bewegungsmeldern, 2 Fernbedienungen, der Uhrzeit und der Helligkeit gesteuert werden soll, und z.B. eine FB das Licht für 30 min schalten soll, der Bewegungsmelder aber nur für 5 min, aber wenn es hell wird, soll es ausgehen, egal wie lange es noch an wäre, und außerdem soll ein Textfeld inder Visu alle 5 Sekunden aktualisiert werden, wie lange das Licht schon an ist, und wie lange es noch brennen wird, dann habe ich auch keine klare Empfehlung mehr. Es geht aber, auch wenn es aufwändiger wird, weil man selbst eine "doppelte" Buchführung mit den Zeiten machen muss. Und für die laufende Aktualisierung z.B. der Einschaltdauer da braucht es dann auch mal ein 5 Sekunden-Intervall als Trigger, sonst normalerweise nicht.

Der Familienvater

hubi1512
Beiträge: 27
Registriert: 04.11.2016, 17:19

Re: Statusanzeige LED16

Beitrag von hubi1512 » 17.01.2017, 13:49

hallo,
vielen Dank für die Erklärungen.
Ich denke ich bin damit ein gutes Stück weiter gekommen.
Hatte nicht bedacht, dass ich ein Makro in einem Virtuellen Objekt ja irgendwie starten muss.
Hab das jetzt am Laufen und funktioniert.

@ Herbert_Testmann, sorry ich hätte dazu erklären sollen, dass ich 2 sich identisch verhaltende LED 16 Anzeigen ansteuern will,
was auch soweit funktioniert.

@ Familienvater, ich betreibe die Sache seit ca. Mitte November und habe inzwischen ca. 45 HW-Komponenten am rennen.
Habe von Anfang an mit HPCL gewerkelt, weil ich noch viele FS20 Komponenten einsetzte.
Da ist zwar noch mehr geplant, aber ich hoffe, ich werde nie auf Dein skizziertes Szenario stossen.....

Mich hatte halt nur gewundert, dass wenn ich den o.g. Makro-Text in beide TFKe exakt gleich reinsetzte, sich daraus die
gewünschte ODER Verknüpfung ergibt. It's all magic.

Mfg
Hubertus

Antworten

Zurück zu „homeputer CL“