Nochmal Makroausführung bei Änderung Variablenänderung

Bugreports und Updatewünsche an die Firma contronics
Keine allgemeinen Fragen!

Moderator: Co-Administratoren

Antworten
carsten
Beiträge: 49
Registriert: 05.11.2006, 08:52

Nochmal Makroausführung bei Änderung Variablenänderung

Beitrag von carsten » 05.12.2006, 08:35

Ich möchte nochmal nachfragen, wann das Feature "Makroausführung bei Variablenänderung" (egal ob Sensor und Aktor, virtuell oder hardwaregebunden) kommt. Siehe dazu meinen letzten Beitrag in

Ich habe gerade wieder ein damit zusammenhängendes Problem: eine Weihnachtsbeleuchtung mit mehreren Funksteckdosen ist an einen Wandschalter angeschlossen (der auch visualalisiert ist). Manuell geht das gut. Jetzt würde ich gerne über die Zeitschalttabelle des Wandtasters ein Zeitschema hinterlegen. Leider werden dann aber die Steckdosen nicht geschaltet.

Hier nochmal der Vorschlag ([url]http://homematic-forum.de/forum/viewtop ... light=[url]):

Verfasst am: 09.11.2006, 21:21 Titel: Makroausführung bei Änderung eines virtuellen Objektes

--------------------------------------------------------------------------------

Es gibt also derzeit also drei Eingabefelder zum Ausführen von Makros:

* Ausführen bei Eingabe
* Ausführen bei Empfang (echte Sensoren und virtuelle Objekte, wobei bei virtuellen Objekten keine Funktion hinterlegt ist)
* Ausführen bei Änderung (echte Aktoren)

Leider ist hier immer noch ein Problem: Wenn ich den Status eines Wandtasterobjekts durch Drücken des Hardwarefunktaster ändere, wird das Makro ausgeführt. Wenn ich jedoch die Variable über ein anderes Makro ändere, wird das Makro nicht ausgeführt.

Wäre es nicht besser für alle Arten von Objekten die Option "Ausführen bei Variablen-Änderung" zu haben, die alle drei obigen Optionen ersetzt, konsistenter ist und die beschriebenen Probleme löst? Resultat:

Verhalten bei:

Sensoren (egal ob virtuell oder nicht):
* Ein Funksensor ändert seine Variable, wenn er etwas empfängt hat also hier diegleiche Funktion wie "Ausführen bei Empfang"
* Zusätzlich: Wird ein Funksensor programmatisch verändert, passiert das gleiche als wenn er Hardwaremäßig verändert wurde.

echte Aktoren: Keine Änderung, da jede Eingabe per Bildschirm ja auch eine Variablenänderung und damit das Ausführen des Makros verursachen würde.

virtuelle Aktoren: Auch hier Gleichbehandlung von Variablenänderung durch Makro und Bildschirmeingabe und damit Lösung des obigen Problems.

Mfg

Carsten
[/list]

contronics-RK
Beiträge: 954
Registriert: 18.07.2006, 15:58

Beitrag von contronics-RK » 05.12.2006, 09:23

Die Funktion "Ausführung bei Änderung" ist in der aktuellen Version für Aktoren und virtuelle Objekt realisiert. Für Sensoren steht "Ausführung bei Empfang" zur Verfügung. "Ausführung bei Änderung" macht hier keinen Sinn, weil Sensoren nicht über Zuweisungen in Makros geändert werden sollten.
Weitere Änderungen in diesem Bereich sind nicht geplant.

Freundliche Grüsse
contronics - Ralph Krapoth

carsten
Beiträge: 49
Registriert: 05.11.2006, 08:52

Beitrag von carsten » 06.12.2006, 09:15

Was ist denn die aktuelle Version? Ich habe hier Rel. 60912 und das ist das schon seit längerer Zeit auf der Webseite stehende Release. Da jedenfalls geht das nicht.

Mfg

Carsten

contronics-RK
Beiträge: 954
Registriert: 18.07.2006, 15:58

Beitrag von contronics-RK » 06.12.2006, 10:07

die in diesem Forum stehende Beta-Version:
http://homematic-forum.de/forum/viewtopic.php?t=348

Auf unserer offziellen Downloadseite wird erst in einigen Tagen upgedatet.

Freundliche Grüsse
contronics - Ralph Krapoth

carsten
Beiträge: 49
Registriert: 05.11.2006, 08:52

Beitrag von carsten » 06.12.2006, 19:57

Vielen, vielen Dank für die Änderung bei virtuellen Aktoren. Das verreinfacht die Sache deutlich.

Jetzt fehlt leider doch noch die analoge Änderung bei Hardwaresensoren. Die Aussage, dass dies bei Sensoren keinen Sinn macht ist leider ebenso kurz gedacht, wie die ursprüngliche Vermutung, dass dies bei virtuellen Objekten keinen Sinn macht (was ja jetzt glücklicherweise geändert wurde).

Begründung:
1) Die Software ist schon jetzt da nicht konsistent, denn Sensoren können ja über die Maus geändert werden (gerade bei Wandtastern auch sinnvoll), und da wird das Makro ausgeführt. Woher die Änderung kommt, sollte aber egal sein, und da gibt halt drei Quellen: Hardwaresensor, Bedienoberfläche, anderes Makro.

2) Konkretes Beispiel: Ziemlich Analog zur Rolladenzentrale habe ich einen Wandtaster , der mehrere Sachen gleichzeitig über sein Makro schaltet (quasi "Weihnachtsbeleuchtungszentrale", der aber nicht nur virtuell sondern auch hardwaremäßig vorhanden sind). Ich möchte jetzt gerne ein vollständig konsistentes Verhalten bzgl. der ausgelösten Aktionen und der Darstellung des Wandtaster im Raumbild:

a) Wenn ich den Wandtasterbediene, soll der seine Visualisierung ändern und sein Makro ausführen, um die Funksteckdosen zu schalten (geht schon).

b) Wenn ich mit der Maus klicke, soll das gleiche passieren (geht schon).

c) Wenn ich durch ein anderes Makro den Taster verändere, soll auch das gleiche passieren (GEHT NICHT, denn es wird nur die Visualisierung geändert, aber nicht das Makro ausgeführt, was verwirrend und inkonsistent ist). Jetzt müsste ich das Makro des Tasters in alle anderen Makros kopieren, damit genau das passiert und noch seinen Zustand setzen, was sehr unschön und aufwändig ist

Warum also nicht das viel einfachere Verhalten: "Ausführung bei Änderung" bei allen Arten von Objekten? Das erschlägt alle Probleme und viel einfacher und verständlicher.

Bemerkung: Übrigens würde es wäre es auch gut, auch für Hardwaretaster (obwohl Hardwaresensor) eine Zeittabelle vorzusehen, nicht nur für virtuelle Taster. Dann könnte man nämlich das automatisch Schalten eines Tasters viel einfacher realisieren und müsste nicht kompliziert den Taster als virtuelles Objekt nochmal spiegeln und den Abgleich zwischen den beiden aufwändig programmieren. Beim Beispiel Weihnachtsbeleuchtungszentrale könnte man dann direkt die Zeittabelle hinterlegen.

Fazit: Wie man sieht braucht man viel weniger Sonderregeln und Ausnahmen, um mehr zu erreichen. Mein Vorschlag ist alle Objekte bzgl. Änderung und Zeitabellen gleich zu behandeln. Das sollte doch auch bei Contronics Programmieraufwand sparen. Wie wärs?

Mfg

Carsten

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Beitrag von buempi » 07.12.2006, 07:47

Aber dafür gibt's doch eine ganz einfach Lösung: Im Makro, mit dem Du den Taster umschaltest einfach noch eine Zeile:

Taster umschalten
starte(Taster)

Viele Grüsse
Bümpi

Lars
Beiträge: 160
Registriert: 17.07.2006, 10:56

Beitrag von Lars » 08.12.2006, 08:58

@carsten
Da kann man verschiedener Meinung sein, ich meine es ist eher zu kurz gedacht Hardware-Sensoren überhaupt per Makro Werte zuzuweisen. Ich halte es eher für einen Schwachpunkt des Programms, dass so etwas überhaupt möglich ist. Um Fehler zu vermeiden wäre es besser der Compiler würde solche eigentlich sinnlosen Funktionen gar nicht zulassen.
Wenn man das macht stimmt ja die Visualisierung nicht und man hat letztlich keinen Überblick mehr welche Werte und Zustände denn tatsächlich richtig sind.
Ein Kollege hatte so etwas mal zum Test eingebaut und vergessen, wir haben lange gesucht um herauszufínden warum ein Sensor dauernd falsche Werte anzeigte. Ich würde mir als Änderung für künftige Versionen wünschen, dass so etwas gar nicht mehr möglich ist.
Zum Testen gibt es die Möglichkeit Sensorwerte am Bildschirm zu ändern (was aber im Echtbetrieb deaktiviert sein sollte).
Die Anwendung in unserem Betrieb umfasst 5 LAN-FHZs, ca. 150 Funkmodule, über 400 Objekte mit insgesamt über 6000 Zeilen Quellcode.
Bei derart komplexen Anwendungen ist es wichtig solche möglichen Fehlerquellen systembedingt auszuschliessen.
Und wie buempi richtig anmerkt, man kann Sensoren-Makros je auch anders ganz einfach aufrufen.

Gruss
Lars

contronics-RK
Beiträge: 954
Registriert: 18.07.2006, 15:58

Beitrag von contronics-RK » 12.12.2006, 08:07

Hardware-Sensoren sollte eigentlich grundsätzlich in Makros kein Wert zugewiesen werden. Das dies überhaupt möglich ist wurde schon oft kritisiert. Wir raten dringend das nicht zu tun. Es kann sein, dass das in künftigen Versionen nicht mehr möglich ist, weil wir damit Schwierigkeiten bei der Zulassung für bestimmte Einsatzbereiche haben könnten.

Zwischen "Ausführung bei Empfang" und "Ausführung bei Änderung" besteht ein grosser Unterschied: "Ausführung bei Empfang" bewirkt auch dann eine Ausführung wenn sich der Wert nicht geändert hat, beispielsweise dieselbe Taste einer Fernbedienung betätigt wird um eine Beleuchtung umzuschalten. Das ist für Sensoren so gewollt und erforderlich.

Bei der Implementierung die Option "Ausführung bei Änderung" für alle Objekte (ausser Sensoren) haben wir nicht "kurz gedacht" sondern mussten es uns wirklich überlegen. Diese Option ist nicht unproblematisch und hat schon einiges an Supportaufwand wegen scheinbarer Fehler verursacht - Supportaufwand aber verursacht Kosten, die zur Verteuerung der Software bzw. kostenpflichtigen Updates führen. So einfach wie dargestellt machen wir es uns wirklich nicht.

Mit freundlichem Gruss
contronics - Ralph Krapoth

NoRisk
Beiträge: 66
Registriert: 19.03.2015, 17:11

Re: Nochmal Makroausführung bei Änderung Variablenänderung

Beitrag von NoRisk » 16.03.2022, 09:13

Guten Morgen!

Habe leider trotz intensiver Recherchen im Forum keine Lösung finden können und hoffe daher auf Unterstützung durch die zahlreichen Experten.
Auch in einem virtuellen Objekt finde ich die Option "Ausführen bei Änderung".
Mit dieser Option ist es mir möglich beim Ändern einer in Homeputer erzeugten Variablen eine Funktion auszulösen.
Wenn ich dasselbe jedoch bei Änderung einer "abgeholten" Systemvariablen versuche, erfolgt keine Reaktion.
Was mache ich falsch, bzw. auf welche Weise ist es möglich, in Homeputer eine Funktion auszulösen sobald sich eine Systemvariable auf der CCU ändert?
Ich kann mir nur schwer vorstellen, dass man dafür eine periodische Makroausführung wählen muss, da diese Möglichkeit das System wesentlich stärker belastet.

Freue mich auf Eure Rückmeldung und wünsche einen angenehmen Tag
Vielen Dank
Gert

Antworten

Zurück zu „homeputer Studio / Standard: Bugs & Updatewünsche“