spacephone's Introduction
GOOS=linux GOARCH=arm GOARM=6 go build simple.go battery.go espeak.go mpd.go mqtt.go powerbar.go vibrate.go Uses a modified version of github.com/thoj/go-ircevent because tls init fails on the Nokia N900 (no /etc/ssl/certs), so I had to strip out (all) tls.
spacephone's People
Forkers
choteespacephone's Issues
Publish IRC channel contents on MQTT topic
Since we have a IRC bot, lets publish the IRC contents to a MQTT topic so that other processes can pick up on it without having to run a bot on IRC. Since messages on the IRC are publicly available anyways, this should not be an issue. Private message to the bot should not be pushed to this MQTT topic.
Switch from espeak to festival?
Add IPv6 support to Fremantle spacephone
mpd integration
Also send mpd stuff to mqtt/ledslie
powerbar integration?
Add MQTT listeners, ensure that MQTT is freed eventually
fix tls on n900 with go
Package a set of roots (maybe just cat /etc/ssl/certs/* > roots.pem) and load them in tls.Config's)
SIP phone call (call other spacephone to get attention?)
#!/usr/bin/python
import dbus
import sys
# Get the target phone number (or SIP address) from the command line
TARGET = sys.argv[1];
# Configure the telepathy path to the SofiaSIP account that we wish to use.
# Use "mc-tool list" (from the libmissioncontrol-utils package) to see your accounts.
SIP_ACCOUNT = 'sofiasip/sip/_31234567_40sipgate_2eco_2euk0'
# This gets us a connnection to the session bus
bus = dbus.SessionBus()
# This sets up a path to the SIP account within telepathy.
PATH = '/org/freedesktop/Telepathy/Account/'
PATH += SIP_ACCOUNT
# This sets up a proxy object as a "handle" to the AccountManager of our target account
account = bus.get_object('org.freedesktop.Telepathy.AccountManager', PATH)
# This launches the actual SIP call with a method call to EnsureChannel on that object
account.EnsureChannel( \
dbus.Dictionary({
dbus.String(u'org.freedesktop.Telepathy.Channel.TargetHandleType'): dbus.UInt32(1),
dbus.String(u'org.freedesktop.Telepathy.Channel.ChannelType'): dbus.String(u'org.freedesktop.Telepathy.Channel.Type.StreamedMedia'),
dbus.String(u'org.freedesktop.Telepathy.Channel.TargetID'): dbus.String(TARGET),
}, signature='sv'),
dbus.UInt64(0),
dbus.String(''),
dbus_interface='com.nokia.Account.Interface.ChannelRequests')
sys.exit(0)
Ensure reconnecting works
Add vibrate command
MQTT: reconnect on disconnect
Currently this is not implemented properly.
Report phone-ringing on IRC
When the space-phone rings (and esp. when it's not picked up) it might be good to have the space-phone report on that on IRC. Publishing the caller-ID onto IRC is likely not a good idea.
Add periodic tasks (and warn when battery is getting low)
For battery command, also note if it is currently being charged or not
autostart on boot (and also auto turn on wifi?)
Reconnection to MQTT server fails
When the MQTT server is rebooted, the MQTT client does not reconnect to the server once that becomes available again. The consequence being that mqtt publishing services are still not working long after the server has come back.
https://godoc.org/github.com/yosssi/gmq/mqtt/client#ConnectOptions has setting PINGRESPTimeout . This can be set to time.Duration that it is allowed for the ping to make it back. If that fails
https://godoc.org/github.com/yosssi/gmq/mqtt/client#pkg-variables documents the errors ErrPINGRESPTimeout or ErrInvalidPINGRESP . as the errror to be raised if the server is no longer available.
I don't know if PINGRESPTimeout also triggers that PINGREQs are send by the client or what sets the frequency that that happens. I suspect you have the send your own PINGREQs ( https://godoc.org/github.com/yosssi/gmq/mqtt/packet#PINGREQ ) to trigger the timeout to happen.
Add terry command
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.