(Created page with "{{Project |Name=Entrance themes |Skills=Programming, |Status=Finished |Purpose=Fun |Tool=No |Location=SlabPi }}") |
No edit summary |
||
Line 4: | Line 4: | ||
|Status=Finished | |Status=Finished | ||
|Purpose=Fun | |Purpose=Fun | ||
|Location=SlabPi | |Location=SlabPi | ||
|Picture=WWEEntrance.jpg | |||
}} | }} | ||
==What== | |||
We have a script running on [[SlabPi]] that plays entrance theme audio when a member enters the space. | |||
It checks if a member is entering on [[MQTT]] ,it pauses MPC, plays a song from the folder "themes" that was mounted from [[Egg]] with mpg123 and resumes MPC. | |||
It needs paho installed. More info about installing paho here: [[Shutdown Script]] | |||
==The script== | |||
<pre><nowiki> | |||
#!/usr/bin/env python | |||
#Invict & Niz 2019 | |||
import time | |||
import paho.mqtt.client as paho | |||
import json | |||
import os | |||
from mpd import MPDClient | |||
broker="arbiter.vm.nurd.space" | |||
#define callback | |||
def on_message(client, userdata, message): | |||
parsed_json = json.loads(message.payload.decode("utf-8")) | |||
print("received message =",str(message.payload.decode("utf-8"))) | |||
print(parsed_json['name']) | |||
mclient = MPDClient() # create client object | |||
mclient.timeout = 10 # network timeout in seconds$ | |||
mclient.idletimeout = None # timeout for fetching the r$ | |||
mclient.connect("slabpi.dhcp.nurd.space", 6600) # connect to lo$ | |||
print(mclient.mpd_version) # print the MPD version | |||
mclient.pause(1) | |||
os.system('mpg123 /mnt/mp3/themes/' + parsed_json["name"] + '.mp$ | |||
mclient.pause(0) | |||
mclient.disconnect() | |||
client= paho.Client("themesong") | |||
######Bind function to callback | |||
client.on_message=on_message | |||
##### | |||
print("connecting to broker ",broker) | |||
client.connect(broker)#connect | |||
print("subscribing ") | |||
client.subscribe("space/door/front")#subscribe | |||
client.loop_forever() | |||
</nowiki></pre> |
Revision as of 18:35, 24 March 2019
Entrance themes | |
---|---|
Participants | Dennis |
Skills | Programming |
Status | Finished |
Niche | |
Purpose | Fun |
Tool | |
Location | SlabPi |
Cost | |
Tool category |
WWEEntrance.jpg {{#if:{{{Tool}}} | [[Tool Owner::{{{ProjectParticipants}}} | }} {{#if:{{{Tool}}} | [[Tool Cost::{{{Cost}}} | }}
What
We have a script running on SlabPi that plays entrance theme audio when a member enters the space.
It checks if a member is entering on MQTT ,it pauses MPC, plays a song from the folder "themes" that was mounted from Egg with mpg123 and resumes MPC. It needs paho installed. More info about installing paho here: Shutdown Script
The script
#!/usr/bin/env python #Invict & Niz 2019 import time import paho.mqtt.client as paho import json import os from mpd import MPDClient broker="arbiter.vm.nurd.space" #define callback def on_message(client, userdata, message): parsed_json = json.loads(message.payload.decode("utf-8")) print("received message =",str(message.payload.decode("utf-8"))) print(parsed_json['name']) mclient = MPDClient() # create client object mclient.timeout = 10 # network timeout in seconds$ mclient.idletimeout = None # timeout for fetching the r$ mclient.connect("slabpi.dhcp.nurd.space", 6600) # connect to lo$ print(mclient.mpd_version) # print the MPD version mclient.pause(1) os.system('mpg123 /mnt/mp3/themes/' + parsed_json["name"] + '.mp$ mclient.pause(0) mclient.disconnect() client= paho.Client("themesong") ######Bind function to callback client.on_message=on_message ##### print("connecting to broker ",broker) client.connect(broker)#connect print("subscribing ") client.subscribe("space/door/front")#subscribe client.loop_forever()