FHZ vollständig (empfangen&senden) durch CUL/CUN(O) ersetzen

Hallo Tommi,

es ist der Client Socket des CUNO:
#50708: CUNO: module ist not beeing used“

Wodurch kommt es zu solch einer Fehlermeldung?

Joachim

PS: Ich lasse alle 5 Minuten den Programmcode auf fehlerhafte Instanzen, Skripte und Links prüfen - nach weiteren 5 Minuten, also bei der nächsten Überprüfung, ist der „Spuk“ meistens vorbei…

Das kann ich nicht beantworten, ist nicht mein Code. Evtl kann Paresy helfen.
Tommi

Hallo paresy,

kannst Du mir sagen, in welchen Fällen die Fehlermeldung ("#50708: CUNO: module ist not beeing used") ausgegeben wird?
Was sie bedeutet?

Joachim

Hallo Profis,

ich hab mal eine Frage zur neuesten Version von Tommi zur FS20 Variablen.

Hab alles genauso gemacht, wie es auf der Seite beschrieben wurde. Nun ist mir aufgefallen, daß es zwar alles funktioniert, ich aber im Script den Status der Variablen nicht abgefragt bekomme. Einschalten und ausschalten geht mit FS20_SwitchMode(41783, true).
Aber die Variable bekomme ich nicht mit GetValue abgefragt.

Kann jemand helfen?

Danke und Gruß
Dirk

Für die Abfrage des gespeicherten Status muss die ID der zugeordneten Statusvariable der FS20-Geräte-Instance genutzt werden, während das Schalten über die ID der Instance erfolgt. Das ist aber unabhängig von CUL oder dem Script, sondern eine Funktionalität des Standardmoduls.

if (getvalue(36760)) {
print „Schalter an“;
}else{
print „Schalter aus“;
}

Tommi

Hallo Tommi,

ja, das weiß ich. Ich dachte nur, irgendetwas an Deinen FS20 Modulen wäre anders umgesetzt.

Irgendwas stimmt bei mir nicht, weiß aber noch nicht was. Alle neu eingebundenen FS20 kann ich nicht abfragen.

Das ich die 1000 Variablen der „Profrssionell-Version“ voll hab, glaub ich nich. Bin aber noch auf der Suche…

Trotzdem schönen Dank für die superschnelle Antwort !

Gruß
Dirk

Ist keine Glaubenssache … :wink:

Nachschauen in der Konsole, Button „Über“ :eek: :smiley:

Gruß
Bruno

Danke für den Tip! Hatte ich noch gar nicht gesehen, daß man das da prüfen kann. Hab auch „erst“ 454 Variablen genutzt.

Irgendwo ist da noch anders der Wurm drin. In ´ner ruhigen Minute muss ich mir mal die zugehörigen Scripte ansehen. Nicht das ich da irgendwas an schalte, und in nem anderen wieder sofort aus.

Im Moment ist das wetter aber zu schön um vor´m Rechner zu sitzen.
Man(n) hat ja auch noch andere Hobbies…

Danke und Gruß
Dirk

Das FS20-Geräte Modul ist nicht von mir, sondern ein IPS Standard-Modul. Das wird nur von mir gefüttert.

Tommi

Hallo gibt es für Cul auch sowas wie SwitchDuration ?

Grundsätzlich ja, ist im Augenblick aber in meinem FS20Send Script nicht drin. Sollte aber leicht Nachzurüsten sein. Dafür muss man zusätzlich die Timervariable auswerten und in den String einbauen.

Tommi

Hat sich erledigt

Hallo Leute,

ich habe ab und zu - wohl irgendwo aus der Nachbarschaft - „Fremdempfang“…
Kann ich es irgendwie unterbinden, dass dieses Gerät so sporadisch wieder neu angelegt wird?

Joachim

Man könnte den entsprechenden Abschnitt in get_ips_vars weglassen/deaktivieren/überspringen. Dann wird vom CUL aber gar kein Sensor mehr automatisch angelegt. Das kann man machen, wenn man sicher ist, dass IPS alle gültige Sensoren schon kennt.
ca. Zeile 890

if ($id==0) {
		//Sensor with address $addr not found in IPS, create new sensor
	   $id=ips_createCategory();
	   ips_setName($id,$sens.' '.$addr);
          .....

Tommi

Hallo Tommi,

vielen Dank für Deine Antwort! Da fällt mir spontan etwas ein: Ich kann doch eine Variable anlegen, die über das Webfront „schaltbar“ ist und bestimmt, ob neue Sensoren bzw. Aktoren automatisch hinzugefügt werden sollen. Dann kann man diese Funktion einschalten wenn Bedarf ist, ohne im Code etwas ändern zu müssen…

Ich bastele mal…:wink:

Joachim

Nachtrag:
Ich habe die Zeile jetzt so erweitert:

if (($id==0) and (GetValueBoolean(51646  /*[Server\Hardware\CUNO\Neue Sensoren und Aktoren automatisch hinzufügen]*/) == True)) {
		//Sensor with address $addr not found in IPS, create new sensor
	   $id=ips_createCategory();
	   ips_setName($id,$sens.' '.$addr);

Wenn man das so macht könnte es Probleme geben, weil dann im „else“ Zweig weiter nach id=0 gesucht wird. Besser gleich Null zurückgeben, wenn die Variable noch nicht da ist und nicht angelegt werden soll


	if ($id==0) {
         if ( not GetValueBoolean(51646)) {return null;}
          ....

ggfls kann man noch die Logmessage auf varids=null in jedem Abschnitt unterdrücken, wenn die Bedingung so ist.

Tommi

Hallo Tommi,

ich habe da mal eine ganz ganz große Bitte: Da Du Deinen eigenen Code am Besten kennst, kannst Du nicht oben eine Variable definieren, die standardmäßig auf „True“ ist und die in den von Dir angesprochenen Programmteilen mit abgefragt wird?
Jeder den den Code verwendet, kann dann selbst entscheiden, ob er diese Variable bzw. Möglichkeit nutzt. Ansonsten hat man immer das Problem, dass wenn Du weitere Änderungen und Verbesserungen machst, ich (und ggf. auch andere) es manuell nachpflegen muss…
Das wäre toll…:wink:

Joachim

ich habe in einer neuen Version jetzt eine Variable für Autocreate am Anfang eingebaut, mit dem man das selbsttändige Erstellen von IPS-Objekten abschalten kann


//autocreate IPS Objects, set to false if you dont want this
$autocreate=true;

Außerdem habe ich eine rudimentäre Implementierung für die ESA1000/2000 Sensoren eingebaut. Allerdings habe ich diese Sensoren nicht selber und kann es nicht testen. Leider hat kleindi sein Beispielscript schon wieder gelöscht, so das ich auch nichts vergleichen kann. Also bitte Bescheid sagen, wenn was nicht funktioniert, dann kann ich es noch für alle ändern
Download wie immer unter
http://www.tdressler.net/ipsymcon/download/CUL_RegVar.phps

Tommi

DANKE!:wink:

Joachim

Hallo Leute,

ich bekomme aus dem Skript „CUNO_Event“ zeitweise im IPS-Logger eine Fehlermeldung, vielleicht weiß einer warum…

Hier „meine“ Variante:

<?php
/**
* CUN/CUL StatusEvent Script, Add to EventHandler Instance
* V0.5 26.12.2010
* @package CUN
*/

//Regvar-Instance
$reg=39231 /*[CUNO\CUNO]*/   ;
//get message variable
$lmid=getVid('AuxMessage',$reg);

//Datum abfragen
$datumid=getVid('Datum',$reg);
RegVar_SendText($reg,"c01
");
IPS_Sleep(200);
$datum=(substr(getValue($lmid),0,8));
$datumform=(substr($datum,6,2)).'.'.(substr($datum, 3,2)).'.20'.(substr($datum, 0,2));
setValue($datumid,$datumform);
setValue($lmid,"");

//Uhrzeit abfragen
$uhrzeitid=getVid('Uhrzeit',$reg);
RegVar_SendText($reg,"c02
");
IPS_Sleep(200);
$uhrzeit=(substr(getValue($lmid),0,8));
setValue($uhrzeitid,$uhrzeit);
setValue($lmid,"");

//Status change
if ($IPS_SENDER == "StatusEvent")
{
IPS_LogMessage("CUL","Status:$IPS_STATUSTEXT ($IPS_STATUS)");
if ($IPS_STATUS==102) { //aktiv
	//Status variablen
	$versid=getVid('Version',$reg);
	$datumid=getVid('Datum',$reg);
	$uhrzeitid=getVid('Uhrzeit',$reg);
	$mid=getVid('Modus',$reg);
   //Modus abfragen
	RegVar_SendText($reg,"X
");
   IPS_Sleep(200);
	$modus=substr(getValue($lmid),0,2);
	setValue($mid,$modus);
	if ($modus<>"61") {
	//CUL/CUN Modus setzen
		RegVar_SendText($reg,"X61
");
		IPS_Sleep(500);
		//Modus abfragen
		RegVar_SendText($reg,"X
");
		IPS_Sleep(200);
		$modus=substr(getValue($lmid),0,2);
		setValue($mid,$modus);
	}
	//Version abfragen
	RegVar_SendText($reg,"V
");
   IPS_Sleep(200);
	$version=getValue($lmid);
	setValue($versid,$version);
	setValue($lmid,"");
}

}
/**
* Get ID by name if exists, else create
* @Param String Name
* @param integer Parent-ID
* @return integer ID
*/
function getVid($name,$par) {
	$vid = @IPS_GetVariableIDByName($name, $par);
	if ($vid === false) {
		$vid=IPS_CreateVariable(3);
		ips_setname($vid,$name);
		ips_setParent($vid,$par);
		setValue($vid,'');
	}
	return $vid;
}
?>

Die Fehlermeldungen weisen auf die ersten beiden „RegVar_SendText“ hin (in den Teilen für die Datums- und Uhrzeitabfrage), mit dem Fehlertext
„Warning: Socket Error # 10054 Connection reset by peer“

Irgendjemand eine Idee?

Joachim