From 84139df7a7c8c18905baea92f642d934b459d90e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torbj=C3=B6rn=20Axelsson?= Date: Tue, 5 Dec 2017 14:32:25 -0800 Subject: [PATCH] Implemented XMPP ping --- sucks/__init__.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sucks/__init__.py b/sucks/__init__.py index 8e594af..f5e655a 100644 --- a/sucks/__init__.py +++ b/sucks/__init__.py @@ -161,6 +161,8 @@ class VacBot(ClientXMPP): MatchXPath('{jabber:client}iq/{com:ctl}query/{com:ctl}ctl[@td="BatteryInfo"]'), self.handle_battery_report)) + self.schedule('Ping', 30, self.send_ping, repeat=True) + def handle_clean_report(self, iq): self.clean_status = iq.find('{com:ctl}query/{com:ctl}ctl/{com:ctl}clean').get('type') logging.debug("*** clean_status =" + self.clean_status) @@ -198,6 +200,13 @@ class VacBot(ClientXMPP): child.append(ctl) return q + def send_ping(self): + q = self.make_iq_get(ito=self.vacuum['did'] + '@' + self.vacuum['class'] + '.ecorobot.net/atom', + ifrom=self.user + '@' + self.domain + '/' + self.resource) + logging.debug("*** sending ping ***") + q.xml.append(ET.Element('ping', {'xmlns':'urn:xmpp:ping'})) + q.send() + def connect_and_wait_until_ready(self): self.connect(('msg-{}.ecouser.net'.format(self.continent), '5223')) self.process()