HC_GetTransmitDevices

Hallo!

Seit meinem Update auf 3.30 funktioniert mein Heizungswerte einstellen Skript nicht mehr!!

Kann mir bei dem Problem jemand helfen?

<?
setvalue($IPS_VARIABLE,$IPS_VALUE);       // Wert durch Webfront verändern

$Objekt = IPS_GetObject($IPS_VARIABLE);   
 $parent = $Objekt["ParentID"];           // Parrent ID ermitteln
 	$Objekt1 = IPS_GetChildrenIDs($parent);  // Kinder von Parrent ID ermitteln
 	
$Stellrad=0;                       // Wert auf 0 setzen für spätere abfrage
 	
foreach ($Objekt1 as $value) {
	$objektname=IPS_GetName($value);
 if ($objektname=="Nachtabsenkung aktiv") { $Nachtabsenkung=$value;}  //ID der Nachtabsenkung ermitteln
 if ($objektname=="Tagestemp") { $Tagestemp=$value;}  // ID der Tagestemp ermitteln
 if ($objektname=="Nachttemp") { $Nachttemp=$value;}   // ID der Nachttemp ermitteln
 if ($objektname=="Betriebsart") { $Betriebsart=$value;}   // ID der Betriebsart ermitteln
 if ($objektname=="Handbetrieb") { $Handbetrieb=$value;}   // ID der Handbetrieb ermitteln
 if ($objektname=="Stellrad") { $Stellrad=($value);}   // ID der Stellrad ermitteln
}

if ($Stellrad==0)                                  // Stellrad wert abfragen bzw auf 0 setzen
				{$Abweichung=0;
				}
	else
 				{$Abweichung =getvalue($Stellrad);
				 }

$Status_Nacht=getvalue($Nachtabsenkung);         // Status von TAG Nacht Betrieb ermitteln

$Aktoren= HC_GetTransmitDevices($parent);      // ID des Schaltaktors ermitteln
$Aktor=$Aktoren[0];
$Schaltaktor=$Aktor["DeviceID"];

if (($IPS_VARIABLE==$Tagestemp) and !$Status_Nacht) // Bei Tagesprogramm Temperatur an Heating Controll senden
		{$Sollwert=$Abweichung+$IPS_VALUE;
		HC_TargetValue($parent, $Sollwert);
				}

if (($IPS_VARIABLE==$Nachttemp) and $Status_Nacht) // Bei Nachtprogramm Temperatur an Heating Controll senden
		{$Sollwert=$Abweichung+$IPS_VALUE;
		HC_TargetValue($parent, $Sollwert);
		}
		

if ($IPS_VARIABLE == $Betriebsart) {                                       //Auswahl Autmatikbetrieb usw
	switch ($IPS_VALUE) {
	case 0: setvalue($Handbetrieb,false);MXC_SwitchMode($Schaltaktor,false); break;
	case 1: setvalue($Handbetrieb,true); IPS_Sleep(500); MXC_SwitchMode($Schaltaktor,true); break;
	case 2: setvalue($Handbetrieb,true); MXC_SwitchMode($Schaltaktor,false); break;
	}
	}

?>

LG
Manza

Abend!

Ich sehe z.B. einige veraltete Systemvariablen…
>> Systemvariablen — IP-Symcon :: Automatisierungssoftware

[b]ALT:
$IPS_VALUE

NEU:
$_IPS[‚VALUE‘][/b]

Und geht dieser Befehl, wenn du den einzeln in einem Test-Skript ausprobierst?
> HC_GetTransmitDevices (wird mit Strg + Leertaste nicht aufgelistet)
…alles andere sieht gut bzw. mir bekannt aus…

Welche Fehler kommen denn bei deinem Skript?

Grüße,
Chris

Es ist das ‚Übliche‘.
GetTransmitDevice ist eine Funktion zum lesen der Konfiguration des HC.
Also zu ersetzen durch :
IPS_GetProperty — IP-Symcon :: Automatisierungssoftware
Michael

Magst du es mal mit der 3.4 Beta gegentesten?

paresy

Hallo!

Geht mit der Beta auch nicht.
Bei Temperaturverstellung am Heizregler kommt jetzt ne neue Fehlermeldung…

variant IPS_GetProperty ( integer $InstanzID, string $Eigenschaft )

Muss ich für die Eigenschaft was eintragen?

Ich will ja nur die ID ermitteln, die Eigenschaft brauch ich ja nicht; oder denke ich wieder falsch?

LG
Manfred

Die Auflistung hier sagt: IPS_SetProperty — IP-Symcon :: Automatisierungssoftware

TransmitDevices ist die Eigenschaft welche du eintragen musst.
Michael