Thank you for helping me!
Posts by Blackbeard
-
-
Da Flex : Yes, I´m using a RPi 3B+.
The reason why I want to know the status is because the RPi is inside a wodden box (Radio). And I could not see the onboard status-LED.
If I trigger an LED from autostart.sh I know that the autostart-script is loaded. But I also want to know if KODI is loaded.
I found this @ Mit Python einen service status abfragen - Das deutsche Python-Forum
Sonntag 6. März 2016, 17:24
@HightronicDesign: Wie Dav1d schrieb hat `systemd` eine DBus-API. Es gibt mit `python-systemd` eine API die darauf aufbaut.Code: Alles auswählen
Python#!/usr/bin/env python # coding: utf8 from __future__ import absolute_import, division, print_function from systemd.manager import Manager def main(): manager = Manager() unit = manager.get_unit('mediacenter.service') is_active = unit.properties.ActiveState == 'active' print(is_active) if __name__ == '__main__': main()
Anstelle des `mediacenter.service` mit dem ich das auf meinem OSMC-Raspi getestet habe, müsstest Du da den Service-Namen eintragen den Du testen möchtest.
Would that be a start?
-
Hey there,
I would like to know, if there is any deamon or service, to check if KODI is already running or still running?
I have build a "childrens-player" without a monitor. And if possible, I would like to use a LED, like a heardbeat to show whether KODI is running or not.Probably exsists a manual. But I don´t know what to look for.
Thanks a lot!
-
Ja. habe ich tatsächlich.
Im Post von 2016 im deutschen Raspberry Forum steht geschrieben dass es sich wohl um einen bug im add-on handelt.
Python
Display More#!/usr/bin/python # -*- coding: utf-8 -*- import sys sys.path.append("/storage/.kodi/addons/virtual.rpi-tools/lib") import RPi.GPIO as GPIO from KY040 import KY040 import os import time # Lautstärke ändern, wenn der ky-040 gedreht wird def rotaryChange(direction): if direction == 1: os.system("kodi-send --action='VolumeUp'") else: os.system("kodi-send --action='VolumeDown'") # Funktion ausführen, wenn der ky-040 gedrückt wird def switchPressed(): os.system("kodi-send --action='Mute'") if __name__ == "__main__": CLOCKPIN = 5 DATAPIN = 6 SWITCHPIN = 13 GPIO.setmode(GPIO.BCM) ky040 = KY040(CLOCKPIN, DATAPIN, SWITCHPIN, rotaryChange, switchPressed) ky040.start() try: while True: time.sleep(0.05) finally: ky040.stop() GPIO.cleanup()
Jetzt geht es tatsächlich !!!
Vielen herzlichen Dank !!!
-
Alles klar. Oder auch nicht!
ich habe jetzt folgendes Script angelegt:
Python
Display More#!/usr/bin/python # -*- coding: utf-8 -*- import RPi.GPIO as GPIO from KY040 import KY040 import os import time # Lautstärke ändern, wenn der ky-040 gedreht wird def rotaryChange(direction): if direction == 1: os.system("kodi-send --action='VolumeUp'") else: os.system("kodi-send --action='VolumeDown'") # Funktion ausführen, wenn der ky-040 gedrückt wird def switchPressed(): os.system("kodi-send --action='Mute'") if __name__ == "__main__": CLOCKPIN = 5 DATAPIN = 6 SWITCHPIN = 13 GPIO.setmode(GPIO.BCM) ky040 = KY040(CLOCKPIN, DATAPIN, SWITCHPIN, rotaryChange, switchPressed) ky040.start() try: while True: time.sleep(0.05) finally: ky040.stop() GPIO.cleanup()
und ist in der autostart.sh eingetragen.
Doch sobald ich das Script ausführe, erhalte ich folgende Meldung:
QuoteTraceback (most recent call last):
File "/storage/volume_control/volume_control.py", line 4, in <module>
import RPi.GPIO as GPIO
ImportError: No module named RPi.GPIO
Allerdings hatte ich schon im Vorfeld das addon "Raspberry Pi Tools" installiert und ich habe eben nochmal kontrolliert, dass es auch aktiv ist.
Noch eine Anmerkung:
Wenn ich
geschrieben habe, konnte das Script nicht ausgeführt werden.
Wenn ich
schreibe, erzeugt das Script obigen Fehler.
Übrigens vielen herzlichen Dank für Eure Hilfe Da Flex und CvH !
Ps.:
Bestimmt hilft folgender Beitrag aus dem Deutschen Raspberry Forum:
Libre + GPIO Steuerung funktioniert nicht - OpenELEC/ LibreELEC - Deutsches Raspberry Pi Forum
Aber wo muss der Code hin?
-
Alles klar. Danke für deine deutlichen Worte Da Flex .
So besser?
Python
Display More#!/usr/local/bin/python3 import RPi.GPIO as GPIO from KY040 import KY040 import os import time # Auslesen der aktuellen Lautstärkeposition def readVolume(): value = os.popen("amixer get PCM|grep -o [0-9]*%|sed 's/%//'").read() return int(value) # Lautstärke ändern, wenn der ky-040 gedreht wird def rotaryChange(direction): volume_step = 5 volume = readVolume() if direction == 1: os.system("kodi-send --action='SetVolume(volume_step,showVolumeBar)'") else: os.system("kodi-send --action='SetVolume(volume_step,showVolumeBar)'") # Funktion ausführen, wenn der ky-040 gedrückt wird def switchPressed(): print "button pressed" if __name__ == "__main__": CLOCKPIN = 5 DATAPIN = 6 SWITCHPIN = 13 GPIO.setmode(GPIO.BCM) ky040 = KY040(CLOCKPIN, DATAPIN, SWITCHPIN, rotaryChange, switchPressed) ky040.start() try: while True: time.sleep(0.05) finally: ky040.stop() GPIO.cleanup()
Wie ist das mit Zeile 9-11 ?
-
Hallo Da Flex,
ich denke, ich habe DvH verstanden.
Zur Erklärung: Meine Idee war, aus obigem Link, folgendes Script auf LE optimiert zu bekommen:
Python
Display MorePython import RPi.GPIO as GPIO from KY040 import KY040 import os, time def readVolume(): value = os.popen("amixer get PCM|grep -o [0-9]*%|sed 's/%//'").read() return int(value) def rotaryChange(direction): volume_step = 5 volume = readVolume() if direction == 1: os.system("sudo amixer set PCM -- "+str(min(100,max(0,volume + volume_step)))+"%") else: os.system("sudo amixer set PCM -- "+str(min(100,max(0,volume - volume_step)))+"%") def switchPressed(): print "button pressed" if __name__ == "__main__": CLOCKPIN = 5 DATAPIN = 6 SWITCHPIN = 13 GPIO.setmode(GPIO.BCM) ky040 = KY040(CLOCKPIN, DATAPIN, SWITCHPIN, rotaryChange, switchPressed) ky040.start() try: while True: time.sleep(0.05) finally: ky040.stop() GPIO.cleanup()
So wie ich das verstehe, wir in Zeilen 8 - 10 beim Start des Scriptes die aktuelle Position der Lautstärke des amixer ausgelesen.
Jetzt zu meinem vorherigen Post: Wie muss dieser Ausdruck formuliert werden, um in LE die aktuelle Lautstärke auszulesen? Oder muss man das überhaupt auslesen? Kann man komplett darauf verzichten?
Vielen Dank für die Hilfe!
-
Vielen Dank für Deine Hilfe!
Ja, dass mit dem englischen Forum ist mir bewußt. Hat doch geklappt
Wenn ich meine Unwissenheit in englisch hätte formulieren wollen, wäre ich total aufgeschmissen gewesen.
Was ist hiermit?
Wird in LE der amixer benutzt?
-
Hallo Forum,
ich bin absolut neu hier und habe auch überhaupt keine Ahnung vom Programmieren.
Aber ich habe immer mal wieder so Ideen, die ich dann gerne verwirklichen möchte.
So habe ich LE in der aktuellsten Version auf meinem RPI3B+ installiert und möchte meinen beiden Söhnen (2 & 4 Jahre) gerne einen MP3-Player mit 9 Tasten und einem Lautstärkeregler zu Weihnachten bauen.
Die Tasten habe ich angeschlossen und über das Addon "GPIO-Monitor" programmiert. 8x Playlist (1-8) start, 1x alles stopp. Läuft und funktioniert.
Nur die Sache mit dem VC macht mir Kopfzerbrechen. Ich habe den Drehencoder KY-040 gekauft und habe ihn wohl soweit verstanden, als dass bei Drehung der Achse steigende und fallende Flanken auf den PINs CLK und DT entstehen. Außerdem sind die Impulse zeitlich versetzt und je nach Drehrichtung erst bei CLK ansteigend und anschließend bei DT ansteigend oder bei entgegengesetzter Drehrichtung erst bei DT ansteigend und anschließend bei CLK. Somit müssen die Impulse beobachtet werden und können die Drehrichtung vermitteln.
Außerdem habe ich im Netz diese Anleitung gefunden, die aber auf Raspbian basiert: KY040 Drehregler als Lautstärkeregler für den Raspberry Pi
Jetzt zu meiner Frage:
Möchte mir jemand helfen, eine Datei zu schreiben, die in LE die Lautstärke regelt? Oder gibt es dass schon? Ich habe einiges gelesen, aber nichts zum nachbauen gefunden.
Ggf. kann ja das Script aus dem oberen Tutorial so angepasst werden, dass der Befehl:
SetVolume(percent)
von hier: "https://kodi.wiki/view/List_of_built-in_functions" benutzt werden kann.Würde mich echt riesig freuen!