Roomba - XBee - IPS - Hilfethread

Moin Zusammen,
ich bräuchte mal hilfe. Und zwar ist meine Roomba vor kurzem mal liegen geblieben und hat seit dem keine Daten mehr gesendet. Ich konnte Ihn auch nicht per IPS starten.
Heute kam mir die Idee, das ja eventuell die Bautrate wieder auf den Originalzustand zurück ist, da die Batterie total platt war. Also die CLEANTASTE für 10 Sek gedrückt, Melodie abgewartet und und nochmals gedrückt. Und siehe da… ich kann ich wieder per IPS starten, aber ich kann keine Daten empfangen. Die Registervarible bleibt leer.
Hat jemand eine Idee woran das liegen kann das der kleine nix sendet, ich ihn aber per Skript starten kann?

Gruß,
Peter

Du musst ein „START“ ( 128 ) schicken.
Wenn angekommen piepst er kurz.

Hmm… kannst mir das mal kurz als PHP-Skript schicken?

Meinst Du das so:


$ID=48819 /*[XBee Gateway]*/  ;

XBee_SendBuffer($ID,13, chr(128)); //Start Command

Das wird doch aber bei jedem abfragen gesendet!

Gruß,
Peter

Bin noch @work aber 128 wird eigentlich nur einmal gesendet zum aktivieren der Kommunikation.
Danach sende ich immer nur „QUERY_LIST“ (149) um die Sensoren abzufragen.

Kannst Du das mal als Skript posten was ich senden muss damit er kurz piepst!?
Danke…

So wie du oben beschrieben hast. Bei mir sieht das Script so aus

/***************************************************************************//**
* 	Daten senden
*******************************************************************************/
function xbee_send($command)
	{
	$debug = true;

	$XBeeGateway  = get_ObjectIDByPath("XBee Gateway");

	$string = "";
	$s = "";
	for ( $x = 0 ; $x< sizeof($command) ; $x++)
	   {
	   $c = chr($command[$x]);
	   $string =  $string . $c   ;
	   if ( $debug )
	      $s = $s . " " .$command[$x];
	   }

	$len = strlen($string);

	if ($debug) IPSLogger_Dbg(__FILE__, 'XBeeSend  ' .$s  );

	$ok = XBee_SendBuffer($XBeeGateway,2,$string);

	}

Aufruf ueber

			// Start
	      case 128 :
							$sendbuffer[0] = 128;
							xbee_send($sendbuffer);
							break;

128 wird einmalig gesendet dann nur noch 149 mit Parameter
Sieht im Log so aus

22.02.2014 09:36:00.077 |     0 | CUSTOM  | RoombaFuncpool       | Debug: XBeeSend   128
22.02.2014 09:36:18.791 |     0 | CUSTOM  | RoombaFuncpool       | Debug: XBeeSend   149 1 100
22.02.2014 09:36:48.796 |     0 | CUSTOM  | RoombaFuncpool       | Debug: XBeeSend   149 1 100
22.02.2014 09:37:18.080 |     0 | CUSTOM  | RoombaFuncpool       | Debug: XBeeSend   149 1 100
22.02.2014 09:37:48.065 |     0 | CUSTOM  | RoombaFuncpool       | Debug: XBeeSend   149 1 100
22.02.2014 09:38:18.851 |     0 | CUSTOM  | RoombaFuncpool       | Debug: XBeeSend   149 1 100
22.02.2014 09:38:19.892 |     0 | CUSTOM  | RoombaFuncpool       | Debug: XBeeSend   149 1 100
22.02.2014 09:38:20.916 |     0 | CUSTOM  | RoombaFuncpool       | Debug: XBeeSend   149 1 100
22.02.2014 09:38:21.952 |     0 | CUSTOM  | RoombaFuncpool       | Debug: XBeeSend   149 1 100
22.02.2014 09:38:23.080 |     0 | CUSTOM  | RoombaFuncpool       | Debug: XBeeSend   149 1 100
22.02.2014 09:38:24.110 |     0 | CUSTOM  | RoombaFuncpool       | Debug: XBeeSend   149 1 100
22.02.2014 09:38:25.115 |     0 | CUSTOM  | RoombaFuncpool       | Debug: XBeeSend   149 1 100
22.02.2014 09:38:26.192 |     0 | CUSTOM  | RoombaFuncpool       | Debug: XBeeSend   149 1 100
22.02.2014 09:38:27.881 |     0 | CUSTOM  | RoombaFuncpool       | Debug: XBeeSend   149 1 100
22.02.2014 09:38:28.892 |     0 | CUSTOM  | RoombaFuncpool       | Debug: XBeeSend   149 1 100
22.02.2014 09:38:29.917 |     0 | CUSTOM  | RoombaFuncpool       | Debug: XBeeSend   149 1 100
22.02.2014 09:38:30.987 |     0 | CUSTOM  | RoombaFuncpool       | Debug: XBeeSend   149 1 100

Wenn bei mir der Akku mal raus war , dann per Button Baudrate setzen und per Webfront einmal „Start“
senden. Dann piepst er einmal und gut ist. Gerade gestern hab ich meinen Roomba mehrmals komplett zerlegt.
Hatte einen „Circledance“ und musste an die Bumper.

Wie gesagt, ich hatte vorher keinerlei Probleme. Nur jetzt will der kleine nicht mehr Antworten!!
Das mit dem Startbefehl funktioniert jedenfalls nicht.

Welcher Roomba ist es den ? Einmaliges piepsen ist negativ ?
Wie holst du Daten ? Mit 149 1 100 ?

Hallihallo,

ich hänge mich hier mal ran. Ich habe das gleiche Problem nach Akkuwechsel.
Reinigungscommando führt er aus, aber Statusinfos kommen nicht mehr.

<?
$ID=37679 /[XBee Gateway]/ ;
XBee_SendBuffer($ID,13, chr(128)); //Start Command
XBee_SendBuffer($ID,13, chr(149)); //Opcode 149
XBee_SendBuffer($ID,13, chr(1)); //Number of packets
XBee_SendBuffer($ID,13, chr(100)); //Packet ID 100
?>

Das fragt er bei mir ab.

Shadowdan

Wenn ich das sende und das Gateway debugge kommt da nur das.

Nimm mal den Seriellen Port im HEX-Modus.

Serial Port im HEX

Vielleicht doch was mit der Baudrate falsch?

Bei mir es ein bisschen anders aus weil ich alles in einem Telegramm schicke (149 01 100 ).

7E 00 08 01 00 00 02 00 95 01 64 02 

95 Hex = 149 Dez
01 Hex =   1 Dez
64 Hex = 100 Dez

Du schickst fuer jedes Byte ein eigenes Telegramm und noch die 128 vorneweg.

Wenn du checken willst ob die Baudrate stimmt dann den seriellen Port wieder in Textmodus schalten und beim
Ein/Ausschalten des Roombas sollten folgende Meldungen kommen.

Ah ok, danke.

Da passiert nichts, also erstmal baudraten korrekt einstellen.

So… meiner sendet wieder brav. Ich habe den Akku entfernt, 5 min gewartet, Akku wieder rein. Danach die Bautrate eingestellt und er piepste danach kurz und schickte seine Daten wieder.
Vor dem Batterie entfernen hat das Einstellen der Bautrate keinen Erfolg gehabt.

Danke für die Hilfe und den Anderen hier viel Erfolg….

Gruß,
Peter

Moin,
ich wende mich nun auchmal mit meinem Problem an euch. Habe die Einrichtung nach den Tutorials von pinki99 und RWN abgeschlossen, leider bekomme ich keine richtige Rückmeldung in IPS. Dem Roomba Befehle geben kann ich, z.B. kann ich in in den Clean Modus setzen.
Es wurde schon auf falsche Baudrate getippt, ich habe diese aber in der Systemsteuerung für den Comport, in XTCU für Coordinator und End Device und am Roomba auf 19200 gesetzt. Ich bekomme nun nach etwas basteln auch etwas zurück, allerdings wohl nicht das was ich brauche, es wird nichts in die jeweiligen Variablen geschrieben, der Debug zeigt aber etwas an wenn ich das Auslesen Script sende und auch XBee.RX wird aktualisiert sowie das Script „test“ ausgeführt (getriggert von Registervariable). Ich habe mal ein paar Screenshots angehängt die zeigen,was ich nach dem Ausführen des Auslösen-Scripts so sehe.
Ich nutze die XBee Pro Serie 10/63mW und einen SainSmart XBee USB Adapter. Der Coordinator hat die Adresse 1 und das End Device die Adresse D (->13). Habe ich noch irgendetwas vergessen?

Gruß

Moin,
habe nun beim Debug mal den Hexmode rausgenommen, es scheint ja definitiv irgendwas zurück zu kommen, aber IPS scheint damit nichts machen zu können, kann damit jemand mehr anfangen?

Gruß

Leider habe ich keine Zeit aber eigentlich sehen die Daten die kommen gut aus. aber das .roomba info Skipt wird doch nicht aufgerufen, oder?

Moin,
das der Registervariable zugeordnete Script „test“ wird ausgeführt, also scheint da was anzukommen. Die Variable XBee.RX wird auch aktualisiert, dieser Variable ist als Aktion das Script .Roomba Info zugeordnet, dieses wird jedoch nicht ausgeführt. Wenn ich ein Ereignis hinzufüge „bei Variablenaktualisierung von XBee.RX“ wird das Script ausgeführt, die ganzen Statusvariablen bleiben aber trotzdem leer bzw. auf 0.

Gruß