Probleme IPS<->XBee<->Roomba empfang funktioniert nicht

Hallo

Bei mir gibt es da seit 3-4 Tagen ein Problem und ich komme nicht so recht weiter.
:confused:
Habe schon vor ein paar Wochen den Roomba erfolgreich über Xbee in IPS integriert.
Daten senden und auslesen war kein Problem.
Jetzt bin ich damit auf meinen neuen Server umgezogen und hab von Hand die Skripts kopiert und die Variablen neu angelegt.
Clever wie ich war hab ich immer das was ich rüber gezogen habe vom alten Server gelöcht. Dabei hat sich wohl ein Fehler eingestellt den ich nicht finde. :frowning:
An der Hardware hat sich nichts geändert!

Auf dem neuen Server habe ich jetzt das Problem das ich zwar Kommandos zum Roomba senden kann aber keine Sensor Daten lesen.

Ich sende zum lesen:


RegVar_SendText(58359 /*[iRobot\Register Variable]*/ ,chr(128));
RegVar_SendText(58359 /*[iRobot\Register Variable]*/ ,chr(149));
RegVar_SendText(58359 /*[iRobot\Register Variable]*/ ,chr(1));
RegVar_SendText(58359 /*[iRobot\Register Variable]*/ ,chr(100));

und die Daten sollten hier landen:


if ($IPS_SENDER == "Execute")
{
    echo "Dieses Script kann nicht von Hand ausgeführt werden.";
    return;
}
$daten = $IPS_VALUE; // Daten von Registervariable
function Str2Dec($daten)
{
 $Dec = "";
 for($i=0; $i<strlen($daten); $i++)
  {
   $Dec .= sprintf("%03d ", ord($daten[$i]));
  }
 return $Dec;
 }
$Dec = Str2Dec($daten);
$instr=$daten;
$ChargingState = $instr[16];
switch ($ChargingState) {
case 0:
   SetValueString(54468 /*[iRobot\ChargingState]*/, "Not Charging");
   break;
case 1:
   SetValueString(54468 /*[iRobot\ChargingState]*/, "Reconditioning Charging");
   break;
case 2:
   SetValueString(54468 /*[iRobot\ChargingState]*/, "Full Charging");
   break;
case 3:
   SetValueString(54468 /*[iRobot\ChargingState]*/, "Trickle Charging");
   break;
case 4:
   SetValueString(54468 /*[iRobot\ChargingState]*/, "Waiting");
   break;
case 5:
   SetValueString(54468 /*[iRobot\ChargingState]*/, "Charging Fault Condition");
   break;
}

$ChargerAvailable = $instr[40];
switch ($ChargerAvailable){
case 0:
   SetValueString(24149 /*[iRobot\ChargerAvaible]*/, "No Charger");
break;
case 1:
   SetValueString(24149 /*[iRobot\ChargerAvaible]*/, "Internal Charger");
break;
case 2:
   SetValueString(24149 /*[iRobot\ChargerAvaible]*/, "Home Base Charger");
break;
};


$BumpsWheeldrops = (ord($instr[1])<<8);
setvalue(10311 /*[iRobot\BumpsWheeldrops]*/ ,$BumpsWheeldrops);
$BatteryVoltage = (ord($instr[17])<<8) + ord($instr[18]);
setvalue(11643 /*[iRobot\BatteryVoltage]*/,$BatteryVoltage);
$BatteryCurrent = (ord($instr[19])<<8) + ord($instr[20]);
if ($BatteryCurrent > 0x7fff) $BatteryCurrent |= 0xffff0000;
setvalue(53327 /*[iRobot\BatteryCurrent]*/,$BatteryCurrent);
$BatteryCharge = (ord($instr[22])<<8) + ord($instr[23]);
setvalue(25681 /*[iRobot\BatteryCharge]*/ ,$BatteryCharge);
$BatteryCapacity = (ord($instr[24])<<8) + ord($instr[25]);
setvalue(37577 /*[iRobot\BatteryCapacity]*/ ,$BatteryCapacity);
$ChargerAvailale=(ord($instr[1])<<8);

IPS_LogMessage($IPS_SELF, $Dec); // Daten im Meldungsfenster ausgeben
IPS_LogMessage($IPS_SELF, $BatteryCurrent); // Daten im Meldungsfenster ausgeben

Im Debug der Register Variable sehe ich auch die vier zeilen vom Senden aber kein Antwort darauf.
Wahrscheinlich nur ein kleiner Fehler aber ich komme nicht drauf.
Hat jemand eine Idee oder einen wink mit dem Zaunpfahl?
Bin für jede Hilfe dankbar.

Gruß
René

dump.txt (204 Bytes)

Hallo Rene,

dein XBee Splitter ist mit dem XBee Gateway als übergeordnetet Instanz verbunden.

Ansonsten Debug mal direkt am Serialport, da siehst du ein und ausgehende Kommunikation.

Hallo RWN

dein XBee Splitter ist mit dem XBee Gateway als übergeordnetet Instanz verbunden.

Ist das nicht richtig?

Auch an der Serialport sehe ich kein RX nur die 4 TX Zeilen.
Versteh das nicht. Sollte wirklich ein Hardwaredefekt vorliegen?

Gruß
René

dump.txt (240 Bytes)

Doch das ist richtig, hatte das ? vergessen.

Wenn vom Romba nichts zurück kommt, würde ich da mal nachsehen. Kontaktprobleme…usw.

Hallo nochmal.

Das wäre zwar ein schöner Zufall wenn beim Umzug auf den neuen Server ein Hardwaredefekt im Roomba aufgetreten ist aber ich werde ihn dann mal die Tage zerlegen und nachschauen.

Gruß
René

Was Du noch machen könntest, stimmt bei deinem XBee Splitter die Gerät ID.