LCN Busmeldung Motorposition auswerten

Hallo Leute,

ich nutze nicht das Shutter-Modul, sondern verwende die Hardwarelösung mit dem BS4. Ich kann mit IPS zwar schön positionieren, aber für eine richtige Visu fehlt es noch der Positionsanzeige.

Eine Variable in den Instanzen habe ich nicht gefunden.

Ich kann ein PCK Kommando absetzen, dass die Rolladenposition abfragt, diese erscheinen dann tatsächlich als ein solches im Bismonitor - nur wir komme ich in IPS da ran? Kann man mittels Skript auf ein bestimmtes Kommando lauschen und diese Meldung dann auswerten?

Ich suche praktisch das Gegenstück zu CSCK_Sendtext … :confused:

Hallo Tom,

hier n Beispiel wie ich die Tvar direkt auslese.
Dazu n Log, was die PCHK so meldet.
Zuerst mal die Registervariable erzeugen,
Instanz hinzufügen (häkchen setzen bei „Alle Module zeigen“)
(None)
Register Variable
Weiter >>
Weiter >>
OK
Ziel Skript „…\REG Var auswerten“, Sollte schon bestehen
Übergeordnete Instanz auswählen „Client Socket(192.168.—.---:4114)“, also die IP:Port
OK

Nun schubse ich das modul 20 an mit „Tvar lesen“
und die Reister Variable horcht die PCHK ab.
Erscheinen Daten, startet sie dann „REG Var auswerten“.

Hier nun die Tvar filtern und speichern.
Alternatif kannst du den Datenstrom auch Loggen.
Dafür sollte das Verzeichnis „c:\Daten“ vorhanden sein.

Ich hoffe du findest da deine gewünschten Daten.

Skript „REG Var auswerten“


<?php
// wenn das Skript von einer RegisterVariable-Instanz aus aufgerufen worden ist
if ($IPS_SENDER == "RegisterVariable")
{
  // bereits im Puffer der Instanz vorhandene Daten in $data kopieren
  $data  = RegVar_GetBuffer($IPS_INSTANCE);
  // neu empfangene Daten an $data anhängen
  $data .= $IPS_VALUE;
  // Daten Loggen
  //$open = fopen("c:\Daten\Tanken.txt","ab");       //Öffnen
  //fwrite($open,date("d.m.y;H:i; "));               //schreiben
  //fwrite($open,$data."
");                      //schreiben
  //fclose($open);                                   //schließen

  // Antwort auf CSCK_SendText Tvar filtern
  $modul = substr($data,16,8);
  if ($modul == "M000020.") {
    $wert = substr($data,24,5);  // Tvar wert sondieren
	 setvalue(24948,$wert);       // Tvar wert in Integervariable speichern
  };
}
?>

Skript "Tvar lesen


<?
        $TX_BUF=">M000020.MWV".chr(10);
        CSCK_SendText(35366 /*[Client Socket]*/,$TX_BUF);

?>