<project version="4">
<component name="ChangeListManager">
<list default="true" id="352ce63a-b52a-41a2-979b-becda7920939" name="Default" comment=".">
- <change afterPath="$PROJECT_DIR$/tools/pop/pop.py" afterDir="false" />
- <change afterPath="$PROJECT_DIR$/tools/pop/scanner.py" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
- <change beforePath="$PROJECT_DIR$/scripts/lib/scenes.php" beforeDir="false" afterPath="$PROJECT_DIR$/scripts/lib/scenes.php" afterDir="false" />
+ <change beforePath="$PROJECT_DIR$/tools/pop/pop.py" beforeDir="false" afterPath="$PROJECT_DIR$/tools/pop/pop.py" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
<property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1553247665857" />
<property name="dumpAutoload T:/Drive/Works/home/composer.json" value="--no-interaction --ansi --verbose --optimize" />
<property name="editor.config.ad.shown" value="true" />
- <property name="last_opened_file_path" value="$PROJECT_DIR$/scripts/lib" />
+ <property name="last_opened_file_path" value="$PROJECT_DIR$/tools/pop" />
<property name="list.type.of.created.stylesheet" value="Less" />
<property name="nodejs_package_manager_path" value="npm" />
<property name="project.structure.last.edited" value="Problems" />
<property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
</component>
<component name="RecentsManager">
- <key name="CopyFile.RECENT_KEYS">
- <recent name="T:\Drive\Works\home\scripts\lib" />
- <recent name="D:\CloudStation\Works\home\images\backgrounds" />
- <recent name="T:\CloudStation\Drive\Works\home\images\backgrounds" />
- <recent name="T:\CloudStation\Drive\Works\home\scripts" />
- <recent name="T:\CloudStation\Drive\Works\home\style\fonts" />
- </key>
<key name="MoveFile.RECENT_KEYS">
<recent name="D:\CloudStation\Works\home\style\fonts" />
<recent name="T:\CloudStation\Drive\Works\home\tools\jarvis" />
<recent name="T:\CloudStation\Drive\Works\home\style\fonts\webfonts" />
<recent name="T:\CloudStation\Drive\Works\home\style\fonts\webfonts\550" />
</key>
+ <key name="CopyFile.RECENT_KEYS">
+ <recent name="T:\Drive\Works\home\tools\pop" />
+ <recent name="T:\Drive\Works\home\scripts\lib" />
+ <recent name="D:\CloudStation\Works\home\images\backgrounds" />
+ <recent name="T:\CloudStation\Drive\Works\home\images\backgrounds" />
+ <recent name="T:\CloudStation\Drive\Works\home\scripts" />
+ </key>
</component>
<component name="RunDashboard">
<option name="ruleStates">
<workItem from="1567019296675" duration="5845000" />
<workItem from="1567261528772" duration="609000" />
<workItem from="1567408023339" duration="2511000" />
- <workItem from="1567413752073" duration="969000" />
- </task>
- <task id="LOCAL-00170" summary=".">
- <created>1551171910164</created>
- <option name="number" value="00170" />
- <option name="presentableId" value="LOCAL-00170" />
- <option name="project" value="LOCAL" />
- <updated>1551171910164</updated>
+ <workItem from="1567413752073" duration="7508000" />
</task>
<task id="LOCAL-00171" summary=".">
<created>1551172860066</created>
<option name="project" value="LOCAL" />
<updated>1567064583593</updated>
</task>
- <option name="localTasksCounter" value="219" />
+ <task id="LOCAL-00219" summary=".">
+ <created>1567453650664</created>
+ <option name="number" value="00219" />
+ <option name="presentableId" value="LOCAL-00219" />
+ <option name="project" value="LOCAL" />
+ <updated>1567453650665</updated>
+ </task>
+ <option name="localTasksCounter" value="220" />
<servers />
</component>
<component name="TodoView">
#!/usr/bin/python
from bluepy import btle
+from urllib2 import urlopen
+import sys
+
+device = sys.argv[1]
+room = sys.argv[2]
+mac = sys.argv[3]
+
+map = ['', '', 'tap', 'long', 'double']
+
class MyDelegate(btle.DefaultDelegate):
def __init__(self):
btle.DefaultDelegate.__init__(self)
def handleNotification(self, cHandle, data):
- print("A notification was received: %s" %data)
-
-# Initialisation -------
-#p = btle.Peripheral("a0:e6:f8:dc:01:d7", btle.ADDR_TYPE_RANDOM)
-p = btle.Peripheral("a0:e6:f8:db:ff:2f", btle.ADDR_TYPE_PUBLIC)
-p.setDelegate( MyDelegate() )
-
-# Setup to turn notifications on, e.g.
-svc = p.getServiceByUUID("0000fe61-0000-1000-8000-00805f9b34fb")
-ch = svc.getCharacteristics()[0]
-print(ch.valHandle)
+ cmd = map[ord(data[0])]
+ print("Notification was received %s" % cmd)
+ req = "https://" + room + ".home.tortuga.enhydra.fr/scripts/pop.php?button=" + device + "&action=" + cmd
+ try:
+ urlopen(req)
+ except:
+ print('request timeout')
-# Main loop --------
+ print("A notification was handled: %s (%s)" % (cmd, req))
-p.writeCharacteristic(ch.valHandle+1, "\x02\x00")
+print("Connecting to " + mac + " (" + device + ")")
while True:
- if p.waitForNotifications(1.0):
- # handleNotification() was called
+ # Initialisation -------
+ try:
+ p = btle.Peripheral(mac, btle.ADDR_TYPE_PUBLIC)
+ except btle.BTLEDisconnectError:
continue
- print("Waiting...")
- # Perhaps do something else here
\ No newline at end of file
+ p.setDelegate(MyDelegate())
+
+ # Setup to turn notifications on, e.g.
+ svc = p.getServiceByUUID("0000fe61-0000-1000-8000-00805f9b34fb")
+ ch = svc.getCharacteristics()[0]
+
+ # Main loop --------
+
+ # p.writeCharacteristic(ch.valHandle+1, "\x02\x00")
+
+ while True:
+ try:
+ if p.waitForNotifications(1.0):
+ # handleNotification() was called
+ continue
+
+ print("Waiting...")
+ # Perhaps do something else here
+ except:
+ print("Disconnected... Waiting for reconnection...")
+ break