Blöde Frage

Programmierung der HomeMatic CCU mittels contronics homeputer CL

Moderator: Co-Administratoren

Antworten
WAdler 68
Beiträge: 1431
Registriert: 09.11.2008, 16:29
Hat sich bedankt: 2 Mal

Blöde Frage

Beitrag von WAdler 68 » 26.07.2015, 16:23

Ich steh gerade völlig auf dem Schlauch...
Wofür sind die neuen Funktionen?
Neue Funktion OBJEKTNAME
Neue Funktion OBJEKTBEZ

in der Hilfe steht bei beiden:
OBJEKTNAME(Objekt)



Diese Funktion gibt den Namen des amgegebenen Objekts als Text zurück und dient dazu diesen anzeigen zu können oder als Mail verschicken zu können.




Beispiel:
Sendezeile:="Das ist eine mail von Objekt " + OBJEKTNAME(selbst)
SENDEMAIL("Status", Sendezeile, 2)
OBJEKTNAME(Objekt)



Diese Funktion gibt den Namen des amgegebenen Objekts als Text zurück und dient dazu diesen anzeigen zu können oder als Mail verschicken zu können.




Beispiel:
Sendezeile:="Das ist eine mail von Objekt " + OBJEKTNAME(selbst)
SENDEMAIL("Status", Sendezeile, 2)

Doch was kommt in "selbst" rein? Wenn ich da zB. eh Fenster SZ eingeben muß. Was macht das die Funktion?

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

Re: Blöde Frage

Beitrag von Familienvater » 26.07.2015, 17:04

Hi,

"Selbst" ist eine Funktion, die das eigene Objekt zurückliefert:

Wenn Dein Objekt Fenster_SZ heißt, und Du willst den Status davon abfragen, kannst Du anstelle von

wenn Fenster_SZ geschlossen dann

auch

wenn selbst geschlossen dann

schreiben.

Das ist im ersten Moment evtl. schwer zu verstehen, aber wenn Du 10 Fenster-Sensoren hast, die alle das gleiche machen sollen, dann schreibst Du das Makro einmal mit "selbst" als Aktorname, und kannst das Makro dann in alle anderen Objekte kopieren, ohne noch den Aktornamen suchen/ersetzen zu müssen.

Wenn dabei jetzt eine Meldung verschickt werden sollte, welches Fenster z.B. zu lange aufsteht, hilft einem "selbst" nicht, weil es nur den Status des eigenen Objektes liefert. Nutzt man die beiden neuen Funktionen in Verbindung mit "selbst", so kommt man an den Objektnamen bzw. an die Objektbeschreibung ran.

Das was als nächstes fehlt, ist ein Variablentyp "Objekt", so das man ein Objekt an ein Makro übergeben könnte, und mit diesem "variablen" Objekt im Makro dann schalten/Abfragen etc. könnte, dann kommt man langsam in die Richtung von sinnvoll nutzbaren Funktionen...

Der Familienvater

WAdler 68
Beiträge: 1431
Registriert: 09.11.2008, 16:29
Hat sich bedankt: 2 Mal

Re: Blöde Frage

Beitrag von WAdler 68 » 27.07.2015, 13:46

Kann ich die Funktion auch für eine Battleer Funktion nutzen (wenn BATTERIELEER(selbst) dann) oder sogar Zuweisungen durchführen (wie selbst := ... ) ?

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

Re: Blöde Frage

Beitrag von Familienvater » 27.07.2015, 15:39

Hi,
WAdler 68 hat geschrieben:Kann ich die Funktion auch für eine Battleer Funktion nutzen (wenn BATTERIELEER(selbst) dann)
Wenn ich dich richtig verstehe, willst Du SELBST im Spezial-Objekt für Batteriemeldungen nutzen, das macht an der Stelle in meinen Augen keinen Sinn, es kann nur ein Spezial-Objekt für Batterie-Leer geben, und in dem Spezial-Objekt hast Du nur die Zeichenkette mit dem Namen des leeren Batterie-Moduls. An die Objekt-Beschreibung kommst Du in dem Fall nicht heran...
WAdler 68 hat geschrieben: oder sogar Zuweisungen durchführen (wie selbst := ... ) ?
Ich habe es nicht probiert, würde aber schwer davon ausgehen, das SELBST eine schreibgeschützte Eigenschaft ist... (Ich weiß nicht, ob Dich mit anderen Programmiersprachen auskennst, aber in VBA-Klassen könnte man SELBST mit "me" vergleichen, in C++ wäre es "this")

Der Familienvater

WAdler 68
Beiträge: 1431
Registriert: 09.11.2008, 16:29
Hat sich bedankt: 2 Mal

Re: Blöde Frage

Beitrag von WAdler 68 » 27.07.2015, 16:38

Familienvater hat geschrieben:Hi,
WAdler 68 hat geschrieben:Kann ich die Funktion auch für eine Battleer Funktion nutzen (wenn BATTERIELEER(selbst) dann)
Wenn ich dich richtig verstehe, willst Du SELBST im Spezial-Objekt für Batteriemeldungen nutzen, das macht an der Stelle in meinen Augen keinen Sinn, es kann nur ein Spezial-Objekt für Batterie-Leer geben, und in dem Spezial-Objekt hast Du nur die Zeichenkette mit dem Namen des leeren Batterie-Moduls. An die Objekt-Beschreibung kommst Du in dem Fall nicht heran...
WAdler 68 hat geschrieben: oder sogar Zuweisungen durchführen (wie selbst := ... ) ?
Ich habe es nicht probiert, würde aber schwer davon ausgehen, das SELBST eine schreibgeschützte Eigenschaft ist... (Ich weiß nicht, ob Dich mit anderen Programmiersprachen auskennst, aber in VBA-Klassen könnte man SELBST mit "me" vergleichen, in C++ wäre es "this")

Der Familienvater
Ich konnte mir schon vorstellen, das eine Zuweisung mit := nicht funktioniert. Doch ich wollte die Battleermeldungen so in einem mini Script zu einer HTML Liste zusammenbauen lassen.

Antworten

Zurück zu „homeputer CL“