HS485 und 2.1

Hallo zusammen,
seit 2.1 funktioniert die Rückmeldung meiner hs485-komponenten nicht mehr.
Ansteuerung wie immer, aber keine Daten zurück.
Ich denke es hängt mit der registervariable zusammen-
hat sich hier bei 2.1 etwas grundlegendes geändert?
Bis dato funktionierten die Skriptvorlagen von rwn doch ganz gut…
ich kann via suche einfach nicht weiterkommen.
danke
stefan

Hallo Stefan,

die Daten musst Du über die Registervariable einlesen. Auswerten mit

$datenstrom = $IPS_VALUE;

ja schon,
aber vorher die registervariable ein skript auslösen lassen:

$buf = RegVar_GetBuffer(13823 /[Serial Port 485\Register Variable]/);
$buf .= $IPS_VALUE;
SetValue(25556 /[Variablen\HS485_Daten]/, $IPS_VALUE);
RegVar_SetBuffer(13823 /[Serial Port 485\Register Variable]/, $buf);

danach sollte dein skript weiter laufen:

$datenstrom = GetValueString(25556 /[Variablen\HS485_Daten]/);
…usw.

tuts aber leider nicht, oder hab ich einen denkfehler?
danke
stefan

Du musst das Datenempfangscript der Registervariable zuweisen.

Du brauchst sonst keine Variable mehr.

Wenn das alles nichtgeht, leg dir einen Cutter an. Linkes und rechtes Trennzeichen FD in Hex.

und das so ändern.

$datenstrom = "\xFD".$IPS_VALUE;

dann geht es auf jeden Fall. Ist aber auch proff off :smiley:

aha,
also auf dein datenempfangscript in der reg.variable verweisen
und im script die variable hs485_daten
einfach durch $ips_value für $datenstrom ersetzen.

werd ich später mal probieren, jetzt wirds langsam spät…
danke
stefan

und im script die variable hs485_daten
einfach durch $ips_value für $datenstrom ersetzen.

Nein, einfach wie im letzten Post von mir dieses ersetzen.

das war schon so gemeint, danke.
Soweit gehts langsam vorwärts, LuxSensor geht gut,
aber immer diese Meldung:

"uninitialized string offset: 17 "
in dieser Zeile (innerhalb der String2Value Function):
$val += ord($str[$p+$i]);

Je nach angesprochenem Modul dieselbe Meldung,
Zahl dort zwischen 13 und 17.
Bekannt?
Danke
Stefan

Ja, das weiss ich. Das kommt wenn der String nicht so lang ist.

Ist wie gesagt alles proff of concept.
Du kannst das auskommentieren.

//$Datenframe5     = String2Value($daten,15,1);
//$Datenframe6     = String2Value($daten,16,1);
//$Datenframe7     = String2Value($daten,17,1);

13,14 kommt dann wenn der Luxsensor nicht abgefragt wird.