Click the image below to see a video of it being used
- python evdev. To install:
wget http://dl.piwall.co.uk/python-evdev_0.4.1-1_armhf.deb
dpkg -i python-evdev_0.4.1-1_armhf.deb- python mpd-2. To install
pip install python-mpd2- Raspberry Pi Zero (Don't forget micro sd card and power supply)
- USB OTG Hub
- RFID 125Khz Reader
- 125Khz Cards
- RFID Card Inkjet Tray to print in your printer (Note this is the model needed for my Canon MX922 Printer)
Please note that Raspberry Pi Zero is insufficient to run both the Home Assistant and Music Cards concurrently. I recommend you use a Raspberry Pi 3 if you intend to run both at the same time.
- Run
python config.pyto select the reader from the inputs - Run
python add_card.pyto scan cards and enter your Google Play Music Playlist Name - Run
python box.pyto start the application and verify that it is reading your cards and csv list properly
- Change directory to music-cards/
cd music-cards/- Copy the musiccards.service file to systemd
sudo cp musiccards.service /etc/systemd/system/musiccards.service- Reload the Daemon
sudo systemctl daemon-reload- Start the musiccards.service
sudo systemctl start musiccards.service- Check if musiccards.service is running
sudo systemctl status musiccards.service- Place the files under homeassistant_files in the config directory of your Homeassistant machine.
- You will need to create custom_components/switch directory in your config directory and place
gmusic.pyin there. - Follow this forum post to install gmusicapi, find your device id, and set up the component.
##Code Sub ProcessCards() EnumerateFilesAndFolders End Sub
Sub EnumerateFilesAndFolders( _ Optional FolderPath As String = "e:\sorted", _ Optional index As Integer = 1, _ Optional MaxDepth As Long = -1, _ Optional CurrentDepth As Long = 0)
processCard = True
'Set the file name to a variable
Set FSO = CreateObject("Scripting.FileSystemObject")
'Check the folder exists
If FSO.FolderExists(FolderPath) Then
Dim oFolder As Object
Set oFolder = FSO.GetFolder(FolderPath)
'Enumerate the subfolders
Dim oSubFolder As Object
For Each oSubFolder In oFolder.SubFolders
'Debug.Print Space$((CurrentDepth + 1)) & oSubFolder.Name
If CurrentDepth < MaxDepth Or MaxDepth = -1 Then
'Recursively call EnumerateFilesAndFolders
EnumerateFilesAndFolders oSubFolder.path, index, MaxDepth, CurrentDepth + 1
End If
Next oSubFolder
'Enumerate the files
Dim oFile As Object
If (oFolder.Files.Count >= 10) Then
For Each oFile In oFolder.Files
If (oFile.Name = "Folder.jpg") Then
AlbumName = Split(oFile.path, "\")(3)
ArtistName = Split(oFile.path, "\")(2)
AlbumImage = oFile.path
If (processCard = vbTrue) Then
Selection.Font.Bold = False
Selection.Font.Name = "SF Pro Regular"
Selection.Font.Size = 9
Selection.InlineShapes.AddPicture fileName:=AlbumImage, LinkToFile:=False, SaveWithDocument:=True
Selection.TypeParagraph
Selection.TypeParagraph
Selection.Font.Size = 14
Selection.TypeText Text:=AlbumName
Selection.Font.Size = 9
Selection.TypeParagraph
If (Len(AlbumName) <= 20) Then Selection.TypeParagraph
Selection.Font.Size = 11
Selection.TypeText Text:=ArtistName
Selection.Move Unit:=wdCell, Count:=1
If index Mod 5 <> 0 Then
Selection.Move Unit:=wdCell, Count:=1
Else
Selection.MoveRight Unit:=wdCharacter ', Count:=3
Selection.InsertRows 1
End If
End If
Debug.Print Space$((CurrentDepth + 1)) & ArtistName & "/" & AlbumName & " (" & oFolder.Files.Count & "|" & index & ")"
index = index + 1
End If
Next oFile
End If
End If
End Sub
