![]() |
[WiP] SkippingStones, Pebble Protocol Implementation and UI for Qt5/SailfishOS
This is a call for participation as well as a small announcement of "SkippingStones". SkippingStones is my implementation of the Pebble smart watch protocol written primarily in QML. You can get more detailed information about this here: http://ruedigergad.com/2014/02/15/pe...or-sailfishos/
This whole effort is still quite a big work-in-progress. However, so far, I could already do the following things with the current implementation:
I don't have much spare time these days so everything is in a very edged and rough shape. Hence, I also appreciate every tiny bit of help and contribution very much. I hope this is useful for some. PS: Great thanks go to the author of libpebble: https://github.com/Hexxeh/libpebble/...bble/pebble.py |
Re: [WiP] SkippingStones, Pebble Protocol Implementation and UI for Qt5/SailfishOS
Many thanks my friend :)
|
Pebble Smart Watch...
Hello there,
I'm desperately trying to get my Pebble Smart Watch (SDK 2.0) to run with the Jolla phone (latest update). I tried to connect using SkippingStones, but it just won't find the Pebble, even though it's paired. SkippingStones development seems to have stopped about 2 months ago. I can remember the dev asking for support in his blog (http://ruedigergad.com/2014/02/15/pe...or-sailfishos/), but I guess he just didn't get any replies :( The Pebble Android app of course doesn't work (no Bluetooth support it seems, at least the app claims that), Rockwatch (which works great on my N9, btw.) is still not available for Sailfish OS and the original libpebble is missing Python sh module when trying to execute it. Does anybody know about the current stage of Pebble support on Sailfish OS? Is the situation really as bad as I think? Or have I overlooked something? I'm planning to finally make my Jolla my main device even though it has still some bugs and glitches, but not being able to use my Pebble the way it was intended is a big showstopper for me :( |
Re: Pebble Smart Watch...
Quote:
did you try to manually enter the address of your Pebble in the text field and connect then? You should find the Pebble address on your Pebble in the settings in the "About" page. (The format is "xx:xx:xx:xx:xx:xx". Which should be the format as displayed in the Pebble about page.) The discovery in SkippingStones seems to be broken for some unapparent reason. I actually suspect the cause to be somewhere in the backend of the bluetooth stack as SkippingStones uses the plain QML Bluetooth API for discovery but I didn't have the time to track that issue down yet. Furthermore, SkippingStones currently only implements the 1.x Pebble protocol and I don't know if there are any significant changes compared to the SDK 2.x version as you want to use it. However, it might still be worth a try with manually entering the Bluetooth address as described above. If you want to get more debug output you can also try to run SkippingStones from the command line. It should be pretty chatty with respect to what it does. Moreover, the actual protocol implementation is done in QML. So, if anyone wants to hack on it, you can even do it on the device without the need to recompiling things. ;) |
Re: Pebble Smart Watch...
Thank you for the information. I've now entered the address manually, but it stilll won't connect :(
I'll think about a firmware downgrade... If only I could code, I would really like to help. Edit: after a reboot it connects - but Pebble asks me for a software update on the phone now... :) |
Re: Pebble Smart Watch...
If I downgraded to SDK 1.0, would it receive messages on the Pebble?
|
Re: Pebble Smart Watch...
Quote:
Please note that for the music player functionality to work you need to manually apply an additional patch as described in my blog post you linked above. Also note that, right now, the call notification also triggers when dialing a number; i.e., it also goes off for outgoing calls too. Furthermore, there is no "daemon" mode yet; i.e., you will need to keep SkippingStones open "all the time" (or at least as long as you want to use the Pebble with your phone). As you already noticed, the last update on SkippingStones was about two months ago. Unfortunately, my time is very very limited, right now. Thus, it is rather unlikely that there will be any enhancements if no one else joins in. |
Re: Pebble Smart Watch...
Quote:
It sometimes takes some tries to connect. Just in case, if it repeatedly refuses to connect I found that removing the pairing on the phone and the watch and re-pairing from scratch also did the trick. Have you been able to send notifications etc. to the watch via the "testing" buttons in SkippingStones? I.e., just try to push, e.g., "E-Mail" or "SMS" etc. and it should send something to the watch. |
Re: Pebble Smart Watch...
Quote:
|
Re: Pebble Smart Watch...
Quote:
|
Re: Pebble Smart Watch...
Quote:
So, the communication between the Pebble and SkippingStones works. That it is not doing anything when you receive a "real" e-mail is expected as this is not implemented yet. Essentially, what is missing is that SkippingStones needs to get a notification about the new e-mail. As far as I know, the preferred way to get that information should be via dbus. The implementation of this usually is also pretty much straight forward. However, one needs to know the correct dbus interface name, method/signal name etc. that is used for getting this information. Of course, this all assumes that information about e-mails is available via dbus at all. One starting point would be to use "dbus-monitor" in a shell on the Jolla and see what is going on on the system and/or session bus. If anyone else has further insights into this, all information is highly appreciated. |
Re: Pebble Smart Watch...
One thing: even though I have SDK 2.0 version installed, the working things seem to run good so far. I sent myself a test SMS which was received and displayed properly. Outgoing calls are handled as incoming calls, as you already noted. The only annoying thing is the Pebble upgrade warning, which I could live with.
Unfortunately I don't know dbus enough to be of any help :( |
Re: Pebble Smart Watch...
Alright, I googled a little bit and found this:
http://talk.maemo.org/showthread.php?t=92303 Some more minutes later, I finished this very much untested prototype: https://github.com/ruedigergad/Skipp...l.rpm?raw=true Please be aware that I didn't even had the time to test that on my own device yet. If you are brave enough, you can give it a try and see if it adds e-mail notification support. ;) If it is not working, please try to run SkippingStones ("harbour-skippingstones") from the command line and see if anything meaningful is emitted when an e-mail is received. |
Re: Pebble Smart Watch...
Thank you so much for your efforts. It still doesn't do anything when receiving emails, from the commandline there isn't any update, when an email is received.
|
Re: Pebble Smart Watch...
vote for this:
https://together.jolla.com/question/...-destinations/ |
Re: Pebble Smart Watch...
Quote:
Apparently, I had a misconception about how I would use the information with respect to dbus linked above. It seems that others also ran into this problem: https://together.jolla.com/question/...-destinations/ https://www.mail-archive.com/mer-gen.../msg01364.html https://lists.sailfishos.org/piperma...er/001918.html Unfortunately, I didn't find any information about a viable solution yet. Admittedly, I also looked just very briefly due to my lack of time. Unfortunately, it seems that getting the required information (ideally with email body) requires some more work than just simply listening in on dbus. Edit: Some more info: http://stackoverflow.com/questions/2...r-method-calls |
Re: Pebble Smart Watch...
Alright, I couldn't stop myself from looking a little bit more into this.
After all, having an interesting technical problem may turn out to be a little bit addictive. ;) So, for the impatient ones: I uploaded a new version that emits at least some information about new e-mails: https://github.com/ruedigergad/Skipp...l.rpm?raw=true But please be warned that this is a really crude hack and that the functionality is far from complete. One known issue is that the e-mail body is not displayed at all. Another known issue is that if more than one e-mail was received, only a sort of "summary" like "2 new e-mails" or so is sent. For the technically interested: Well, this hack is likely as dirty as it gets. I started off by looking at this post: http://stackoverflow.com/questions/2...r-method-calls However, as the solution proposed there didn't work, I began to change the hack. Essentially, what I did now is that my adapter class for interacting with dbus has a "Notify" method with the correct signature to match the dbus method. The class also has the Q_CLASSINFO to match the involved interface ('Q_CLASSINFO("D-Bus Interface", "org.freedesktop.Notifications"') and the object registered itself at the appropriate path. Additionally, I manually added a match for "interface='org.freedesktop.Notifications',member= 'Notify',type='method_call',eavesdrop='true'". Overall, this way to get the info is very hackish and dirty. Furthermore, things are very likely to break with further SailfishOS updates. Nonetheless, I wanted to share my findings. Outlook, for volunteers(? ;)): One way for getting the body of the e-mail could be to fetch it from QMF. It seems that the message ids as used by QMF are contained in the notification message. So, this could be the entry point in fetching the body of the e-mail. However, this could become complicated if multiple e-mail accounts are configured on the phone. While talking about QMF. Another way for getting notifications about new e-mails could be by directly using QMF. Edit: Wishlist, for the Jolla devs(?): Offer an easier to use way to get the required information "out of the box". Maybe by adding according signals that also contain, e.g., the email sender, subject, and body? Similarly to the together.jolla.com request by Elleo, as linked above. |
Re: Pebble Smart Watch...
If i remember correctly i posted in this thread and On topic? I guess someone removed it for no reason. What's going on...it's that sneaky mod?
|
Re: Pebble Smart Watch...
That is just wonderful, Wonko :) Thank you so much.
I'd never thought, that this would be fixed so fast. Feels good to know, that it's not impossible anymore to use Pebble and Jolla together. Looking forward to the next update/fix :) |
Re: Pebble Smart Watch...
I also really thank you Wonko. I am really missing the application for the pebble.
|
Re: Pebble Smart Watch...
Quote:
I remember that you wrote it the same way. Maybe your post was automatically removed, because it contained a filtered word. At least a possible explanation. |
Re: Pebble Smart Watch...
And whether there are people among us who can do is create the watch-face on a certain order?
want to increase functionality in conjunction with his n9 ...have little experience - https://openrepos.net/content/alexxxlrus/pebbl That's when it was side was the watch-face of watchs that could be static display information received from the phone - it would be great ry! |
Re: Pebble Smart Watch...
Thanks for your work Wonko. I've updated to the latest version and now email notifications work :-) The pebble displays the number rather than the person's name when I get a text message, is this what you get too? Is this a problem with a lack of a contacts API or just a lack of your time? You might call it a hack but we're very pleased to have some pebble functionality after moving from the N9 to the Jolla.
|
Re: Pebble Smart Watch...
It's still a wonderful feeling to have Pebble support on the Jolla.
One question @Wonko: is it possible to let the app automatically reconnect when the connection to Pebble is lost? During the workday I often lose connection in the office and I have to manually reconnect each time. I'm deeply grateful about your wonderful app, I would even buy it :) |
Re: Pebble Smart Watch...
Oh yes, and recombining the contact's name or to work with android application.
|
Re: Pebble Smart Watch...
Quote:
It is actually very nice to see that this is useful and actively used by others as well. :) Unfortunately, so far, no one else joined in in the development so the progress is rather slow, right now. Quote:
I don't know why I didn't implement that earlier. Anyway, I just read that "feature request" while I had some minutes free for coding so I quickly added this feature. As usual, the latest version can be downloaded from: https://github.com/ruedigergad/Skipp...l.rpm?raw=true Besides the auto connect feature, this version also improves the handling of notifications. E.g., you should now also get proper notifications when an XMPP message arrives. For other notifications you'll get whatever was contained in the notification message as summary and body along with the name of the app that sent the respective notification. Edit: Please note that the first auto reconnect happens about two seconds after the connected state changed to disconnected. For subsequent reconnect attempts the "Auto Connect Interval" is used. The motivation for this is to avoid reconnect attempts all the time that possibly drain the battery. |
Re: Pebble Smart Watch...
Thank you - you are my hero ;)
And by the way: as the most important functions seem to work now, I don't think, that there's any reason to complain about the time it takes to develop the app. Your app is the most advanced pebble integration for the Jolla. Thank you, that you took the time to fix the bugs, that is not to be taken for granted :) Might sound funny, but I'm really happy now. Only some weeks ago I couldn't imagine to finally get completely rid of Android and now I'm about to sell my Nexus 5, cause my Jolla fulfills my needs. If you take donations, I'm willing to donate :) |
Re: Pebble Smart Watch...
wait wait wait.....
So the Pebble watch is actually supported by Sailfish OS now??? |
Re: Pebble Smart Watch...
Yes, at least the most important things are working now.
I'm still hoping for someone helping the dev to iron the last bugs, cause he is short of time. The repo for the source code is linked on his blog. |
Re: Pebble Smart Watch...
Okay, also got it finally connected. Giving the Pebbles bluetooth address manually seems to be the key.
Are Mitäkuuluu notifications working? Have to test that. Are Wonko and Elleo (dev for Rockwatch) aware of each others work? Maybe pooling resources? Elleos work is here and I remember there being talk somewhere that some functionality of connecting his app with Pebble was problem for him. Maybe Wonko has solution for that? http://talk.maemo.org/showthread.php...ight=Rockwatch |
Re: Pebble Smart Watch...
Okay, it seems that only call and e-mail notifications are working.
At least I can't get IM notifications, Text notifications or Music player commands to work. And the call notifications light up also when one makes call by himself. Is this how it is currently supposed to be? Still great job and definitely better than nothing. I mainly use my Pebble for biking and and situations when I can't hear or have sounds on my phone. So at least getting notified for calls and e-mails is 50% of what I need. Any future plans to get the IM notifications or Music controls working? |
Re: Pebble Smart Watch...
If I remember that correct there is a patch for getting Music controls working. And text notifications work on my end.
|
Re: Pebble Smart Watch...
Quote:
Besides being "selfish" and "just" getting my own hardware to work ;) another reason for me to code for Jolla is enthusiasm about open source etc. and to try to support the Jolla ecosystem. :) Quote:
Unfortunately, as far as I am aware, Elleo also does not have any free time, right now. Quote:
I just tested the latest version (0.6) again with XMPP/Jabber and the notifications work. With respect to music controls: Getting these to work requires some manual work as this requires to patch one file of the Jolla music player app. The steps are (roughly) as follows (Please note that you need developer mode enabled for this.): Code:
# Open a terminal. However, as you also noticed, there are many limitations, right now. Please read this entire thread to get more detailed information. I think, in one of my first posts in this thread, I explain the limitations in more detail. |
Re: Pebble Smart Watch...
Thanks for the answers
The patch was easy to follow through and got my music controls working. I am usin Mitäkuuluu by Coderus here in TMO http://talk.maemo.org/showthread.php...ght=Mitakuuluu These notifications just won't come through to the watch for me. Same with the text messages, they are not showing. |
Re: Pebble Smart Watch...
I further improved the handling of Mitäkuuluu messages (this is version 0.7):
https://github.com/ruedigergad/Skipp...l.rpm?raw=true Even with 0.6 you should have gotten at least something. Please make sure that you have the latest version installed to use all new features. Edit: Which version of Mitäkuuluu are you using? |
Re: Pebble Smart Watch...
Hmm, weird. Out of the blue, one TXT notification just came through. But the next following 2 didn't come.
Also not a single Mitakuuluu notification come through at least for me. Call notification as well as, e-mail and music controls work every time. Even this level of funtionality has given me my Pebble "back". Can make it with 85% of my wishes fullfilled ;) Thank you for great work EDIT: TRYING THE NEW VERSION NOW |
Re: Pebble Smart Watch...
Not even with the new version I am receiving anything.
I ran SkippingStones from terminal and it is definetly recognizing Mitakuuluu now. It is listening to sent messages also! But when receiving a message, it displays this: [D] DbusAdapter::Notify:59 - Got notification via dbus from "harbour-mitakuuluu-server" Got notification. AppName: harbour-mitakuuluu-server; Summary: Joo soitetaan t?st? kun l?hdet??n!; Body: Jussi Ignoring message from harbour-mitakuuluu-server as we handle these messages somewhere else. I am using the latest Mitakuuluu (02.10) and also latest SkippingStones Hmm, now again one message got thourgh. This time it was from Mitakuuluu! But the sms didn't come at all Code:
[D] DbusAdapter::_smsReceived:106 - Got sms dbus message: QDBusMessage(type=Signal, service=":1.12", path="/ril_0", inte rface="org.ofono.MessageManager", member="IncomingMessage", signature="sa{sv}", contents=("Terveiset, matkalla Hesaan.", [Argument: a{sv} {"LocalSentTime" = [Variant(QString): "2014-04-12T09:00:51+0000"], "SentTime" = [Variant(QString): "20 14-04-12T12:00:51+0300"], "Sender" = [Variant(QString): "+358403004345"]}]) ) |
Re: Pebble Smart Watch...
Quote:
It seems SkippingStones is currently struggling to send "special" unicode characters. I could also reproduce it here with the German umlauts "ä", "ö", "ü". If there was a special character in the message, the message wasn't shown on the Pebble. I will look into this and how this can be fixed. |
Re: Pebble Smart Watch...
The unicode issue should be fixed in version 0.8:
https://github.com/ruedigergad/Skipp...l.rpm?raw=true |
Re: Pebble Smart Watch...
Man, this thread makes me wanna get a Pebble!
|
All times are GMT. The time now is 15:52. |
vBulletin® Version 3.8.8