>Ah cool, dachte vlt. das Thema Ford Focus wäre zu speziell, wobei ich denke, dass es natürlich nicht die einzige Karre ist, die so eine ähnlich funktionierende Lenkradfernebedienung hat.
Das Script ist im Prinzip ein Zusammenspiel aus Erik Bartmanns und von der Seite:
http://www.forum-raspberrypi.de/Thread-r...io-tastern
Die Kodi Steuerung habe ich einmal mit dem Package/CMD Befehl "kodi-send" probiert, was allerdings nicht stabil geklappt hat und später mit dem o.g. Script per JSON, was super funktioniert.
Nur habe ich bis jetzt nicht gecheckt, wie man per JSON "Track weiter/Next usw." realisiert, vieleicht kann mir da einer helfen.
Deswegen habe ich das weiterhin per "kodi-send" gemacht.
Es muss also per "sudo apt-get install kodi-eventclients-kodi-send" vor her installiert werden.
Falls also jmd. einfällt, wie die JSON NextTrack Methode aussieht, immer her damit.
Auf http://kodi.wiki/view/JSON-RPC_API/v6 habe ich nichts dazu gefunden. zumindest nicht das es geklappt hätte.
Außerdem würde ich gerne eine "ActiveWindow" abhängige Steuerung relaisieren, abe rich gebe zu, dass ich keine Ahnung habe, wie ich JSON Get Functionen in Python einbaue(so schwer kann das eigentlich nicht sein).
Sollte wie gesagt jmd. Interesse haben an der Fritzing Verkabelung von Remote Pin11/12 <--> MCP3008 <--> Raspberry so müsste ich die erstmal erstellen und würde die dann hier hochladen. Wie gesagt bei mir eine kleine Platine(nix besonderes und quasi das erste richtige mal für mich)
@Thedk
Wie hast du das dann weiter realisiert? Wie bist du in den Raspberry rein?
Das Script ist im Prinzip ein Zusammenspiel aus Erik Bartmanns und von der Seite:
http://www.forum-raspberrypi.de/Thread-r...io-tastern
Die Kodi Steuerung habe ich einmal mit dem Package/CMD Befehl "kodi-send" probiert, was allerdings nicht stabil geklappt hat und später mit dem o.g. Script per JSON, was super funktioniert.
Nur habe ich bis jetzt nicht gecheckt, wie man per JSON "Track weiter/Next usw." realisiert, vieleicht kann mir da einer helfen.
Deswegen habe ich das weiterhin per "kodi-send" gemacht.
Es muss also per "sudo apt-get install kodi-eventclients-kodi-send" vor her installiert werden.
Code:
#!/usr/bin/env python
# coding: utf8
#Python Raspberry Pi GPIO Klasse importieren
import RPi.GPIO as GPIO
import time, os, httplib, json, requests, pdb
from requests.auth import HTTPBasicAuth
# Festlegung der Nutzung der vorgegebenen Nummerierung der GPIOs
GPIO.setmode(GPIO.BCM)
# Namen von True und False zum besseren Verständnis festlegen
HIGH = True # 3,3V Pegel (high)
LOW = False # 0V Pegel (low)
# SCI Funktion
def getAnalogData(adCh, CLKPin, DINPin, DOUTPin, CSPin):
# Pegel definieren
GPIO.output(CSPin, HIGH)
GPIO.output(CSPin, LOW)
GPIO.output(CLKPin, LOW)
cmd = adCh
cmd |= 0b00011000 # Kommando zum Abruf der Analogwerte des Datenkanals adCh
# Bitfolge senden
for i in range(5):
if (cmd & 0x10): # 4. Bit pruefen und mit 0 anfangen
GPIO.output(DINPin, HIGH)
else:
GPIO.output(DINPin, LOW)
# Clocksignal negative Flanke erzeugen
GPIO.output(CLKPin, HIGH)
GPIO.output(CLKPin, LOW)
cmd <<= 1 # Bitfolge eine Position nach links verschieben
# Datenabruf
adchvalue = 0 # Wert auf 0 zuruecksetzen
for i in range(11):
GPIO.output(CLKPin, HIGH)
GPIO.output(CLKPin, LOW)
adchvalue <<= 1 # 1 Postition nach links schieben
if(GPIO.input(DOUTPin)):
adchvalue |= 0x01
time.sleep(0.01)
return adchvalue
# Konfiguration Eingangskanal und GPIOs
CH = 0 # Analog/Digital-Channel
CLK = 18 # Clock
DIN = 24 # Digital in
DOUT = 23 # Digital out
CS = 25 # Chip-Select
# Pin-Programmierung
GPIO.setup(CLK, GPIO.OUT)
GPIO.setup(DIN, GPIO.OUT)
GPIO.setup(DOUT, GPIO.IN)
GPIO.setup(CS, GPIO.OUT)
buttons = [2 , 4 , 14 ,15 , 3 ]
methods = ['Application.SetVolume' , 'Application.SetVolume' , 'Application.SetMute' , 'Input.ExecuteAction' 'Input.ExecuteAction' ]
params = [{ "volume": "decrement" }, { "volume": "increment" }, { "mute": "toggle" } , { "action": "skipnext" } , { "action": "skipprevious"}]
user = 'kodi'
passwd = ''
port = '80'
def button_pressed(index):
url = 'http://localhost:' + port + '/jsonrpc'
postheaders = {'content-type': 'application/json'}
command = {"jsonrpc":"2.0", "id": 1, "method": methods[index], "params": params[index]}
print(methods[index])
resp = requests.post(url, auth=(user,passwd), data=json.dumps(command), headers=postheaders)
while True:
# Volume - Taster
if (200 <= getAnalogData(CH, CLK, DIN, DOUT, CS) <= 210):
button_pressed(0)
# Volume + Taster
if (400 <= getAnalogData(CH, CLK, DIN, DOUT, CS) <= 425):
button_pressed(1)
# Seek + Taster
if (590 <= getAnalogData(CH, CLK, DIN, DOUT, CS) <= 610):
os.system("kodi-send --action='PlayerControl(Next)'")
# Seek - Taster
if (730 <= getAnalogData(CH, CLK, DIN, DOUT, CS) <= 750):
os.system("kodi-send --action='PlayerControl(Previous)'")
# Mode Taster
if (830 <= getAnalogData(CH, CLK, DIN, DOUT, CS) <= 855):
button_pressed(2)
Falls also jmd. einfällt, wie die JSON NextTrack Methode aussieht, immer her damit.
Auf http://kodi.wiki/view/JSON-RPC_API/v6 habe ich nichts dazu gefunden. zumindest nicht das es geklappt hätte.
Außerdem würde ich gerne eine "ActiveWindow" abhängige Steuerung relaisieren, abe rich gebe zu, dass ich keine Ahnung habe, wie ich JSON Get Functionen in Python einbaue(so schwer kann das eigentlich nicht sein).
Sollte wie gesagt jmd. Interesse haben an der Fritzing Verkabelung von Remote Pin11/12 <--> MCP3008 <--> Raspberry so müsste ich die erstmal erstellen und würde die dann hier hochladen. Wie gesagt bei mir eine kleine Platine(nix besonderes und quasi das erste richtige mal für mich)
@Thedk
Wie hast du das dann weiter realisiert? Wie bist du in den Raspberry rein?