HM Sinnvolle Objektstruktur

Hallo zusammen,

ich bin nun auch Besitzer einer CCU2 und möchte diese (sinnvoll) in IPS einbinden. Wenn ich einen HM Schaltaktor Instanz habe, sind dort ja die Statusvariablen schreibgeschützt. Um jetzt den Schaltaktor mit einer Variable schalten zu können und trotzdem den aktuellen Status nachzuführen, habe ich jetzt eine Dummy Instanz mit einer Variablen Schaltzustand angelegt. Dazu habe ich ein passendes Aktionsskript welches den Aktor schaltet und gleichzeitg die Variable nachführt.


<?
if ($_IPS['SENDER'] == "WebFront") {
	$switch = 29319 /*[Hardware\Schaltaktoren\HomeMatic\Klimaanlage Technikraum\SWITCH]*/;
   HM_WriteValueBoolean($switch, "STATE", $_IPS['VALUE']);
   IPSLog_Info("Schalte Hauptsicherung der Klimanlage Technikraum: " . ($_IPS['VALUE'] ? "An" : "Aus"));
} else if ($_IPS['SENDER'] == "Variable") {
	$stateVar = 51143 /*[Hardware\Klimaanlage\Klimaanlage Technikraum Hauptsicherung\Schaltzustand]*/;
	SetValueBoolean($stateVar, $_IPS['VALUE']);
	IPSLog_Debug("Hauptsicherung der Klimanlage Technikraum ist: " . ($_IPS['VALUE'] ? "An" : "Aus"));
}
?>

Jetzt habe ich zu jedem Schaltaktor einmal die HM Instanz unter Hardware->Schaltaktoren->HomeMatic und eine zweite Dummy Instanz unter Hardware->„Einsatzzweck 1 (z.B. Klimaanlage)“->„Einsatzzweck 2 (z.B. Hauptsicherung)“

Macht das so Sinn, wie ich das gelöst habe? Oder wie kann man das eleganter lösen?

Gruß Basti

Nein :wink:

Was willst du den ‚lösen‘ ?
Der Sinn und Zweck erschließt sich nicht wirklich.
Michael

Ok wenn das keinen Sinn macht, wie macht man es dann richtig? :slight_smile:

Was willst du denn überhaupt machen/erreichen ?
Gib den HM-Instanzen und Variablen doch einfach Namen.
Und den Links für das Webfront auch.

Alternativ, kennst du das hier?

Da wird die Raumstruktur der CCU genutzt.
Michael

Den Schaltaktor übers Webfront schalten können, außerdem soll die Variable nachgeführt werden, falls sie am Aktor direkt geschaltet wird. Also eigentlich so wie ich es habe, es sieht dann im Webfront so aus:

Gruß Basti

Dafür gibt es Links.
Einfach STATE verlinkten und fertig.
Wenn der Status bei Bedienung am Aktor nicht nachgeführt wird, hast du zu 99% den Port 5544 nicht in der Firewall freigegeben. (TCP ankommen/eingehend)
Michael

Aber wenn ich STATE verlinke, kann ich STATE ja trotzdem nicht schalten, da es ne Statusvariable ist und Statusvariablen soll man ja nicht schaltbar machen, laut Doku.

Also so wie ich es jetzt habe, läuft alles super. Es geht mir nur darum ob es irgendwie schöner gelöst werden kann, ohne das ich die Dummyinstanz brauche, oder ob es so wie ich es gemacht habe ok ist.

Gruß Basti

Hast Du denn mal versucht die Status Variable zu verlinken?
:wink:

Loerdy

Du bringst da was durcheinander.
Statusvariablen sind nicht direkt beschreibbar (SetValue). Da sie den Status der Hardware abbilden.
Aber natürlich sind sie schaltbar über das WebFront, solange du unter der Instanz Reiter Statusvariablen den Haken bei Standardaktion nicht entfernst.

Und du kannst auch jederzeit ein eigenes Aktions-Script, auch bei Statusvariablen, nutzen. Nur natürlich ohne SetValue sondern z.B. mit HM_WriteValueXyz
Michael

Hallo Michael,

da hab ich tatsächlich was ganz schön falsch verstanden :eek:

Vielen Dank, jetzt hab ich es verstanden!

Gruß Bast