Benutzeravatar
onkeldave
Mitglied

Beiträge:167
Registriert:15. Feb 2016
Wohnort:254xx

Funksteckdosen aus Kodi (OSMC) schalten

27. Apr 2016, 11:03

Moin!
Ich habe nun ein wenig mit OSMC rumprobiert und habe es hinbekommen, direkt aus Kodi eine 433MHz Funksteckdose anzusprechen. Darüber lassen sich dann Geräte aus Kodi heraus schalten. Bei mir schaltet sich dadurch z.B. mein HiFi Verstärker ein, sobald bei Kodi eine Wiedergabe startet. Denkbar sind auch andere Szenarien, z.B. das Ambilight vom Strom zu trennen über eine FB Taste, etc.
Ich habe in diesem Thread
viewtopic.php?f=10&t=983
schon einen Weg beschrieben, wie es über einen separaten Webserver möglich ist, hier nun der direkt Weg über ein 433Mhz Modul.
Was wird benötig?

- 433Mhz Sender Modul FS1000A, z. B.:
http://www.amazon.de/dp/B00HULZ3ZO/ref= ... hxb1S57J2M

-Funksteckdosen mit 10 DIP Schaltern, z.B.:
http://www.amazon.de/dp/B001AX8QUM/ref= ... hxb0MEPHYX

- 3 Drähte zum verbinden des Senders mit dem Pi wie hier beschrieben:
https://raspiprojekt.de/machen/basics/s ... imitstart=

- 17,2 cm Drahtstück als Antenne (muss noch am Sender angelötet werden,wichtig für die Reichweite)
FS1000A.jpg
FS1000A.jpg (8.33 KiB) 18559 mal betrachtet


Um das ganze unter OSMC zu nutzen muss einiges über das OSMC Terminal installiert werden.
WICHTIG: Das ganze klappt nur, wenn Kodi NICHT läuft. Bei laufendem Kodi klappt es nicht per SSH Terminal (Putty). Man muss also an den Pi eine USB Tastatur anschließen, Kodi verlassen und dann [ESC] drücken um auf der Konsole zu landen. Dort als User "osmc" anmelden. Und alles per Hand eingeben. Wiring Pi kann sonst nicht installiert werden. Wenn die Installation abgeschlossen ist, kann man auf der Konsole gleich den Sender testen. Mit "exit" beendet man die Konsole, Kodi startet dann automatisch. Blöderweise gilt im Terminal das US Tastaurlayout. Man muss also bisschen suchen für die Sonderzeichen;)

Los geht's:

Code: Alles auswählen

sudo apt-get install build-essential

danach git-core und wiringPi installieren

Code: Alles auswählen

sudo apt-get install git-core
git clone git://git.drogon.net/wiringPi
cd wiringPi
git pull origin
./build

Wenn das durch ist, kann nun RCswitch installiert werden

Code: Alles auswählen

sudo mkdir /opt/rcswitch-pi
cd /opt/rcswitch-pi
sudo wget http://www.onkeldave.de/pi/rcswitch-pi.zip
sudo unzip rcswitch-pi
sudo make

RCswitch gibt es aus verschiedenen Quellen im Netz, meiner Erfahrung nach funktioniert nicht jedes RCSwitch. Die angegebe Quelle unterstützt die o.A. Funksteckdose und Baugleiche (Elro, Mumbi, etc.) und einige Intertechno Steckdosen, aber nicht alle.
Nun kann man über den "send" Befehl die Steckdose über die Konsole schalten. Wenn die Steckdosen Dip-Schalter z.B. so stehen:
Funksteckdose.jpg
Funksteckdose.jpg (13.35 KiB) 18559 mal betrachtet

lautet der Befehl zu einschalten:

Code: Alles auswählen

sudo /opt/rcswitch-pi/send 11111 4 1

zum ausschalten:

Code: Alles auswählen

sudo /opt/rcswitch-pi/send 11111 4 0

Die ersten fünf Stellen stehen für die ersten fünf Dip-Schalter. Die sechste Stelle kann 1-5 sein fü a-e (a-e darf nur ein Schalter on sein), die letzte Stelle 1 für an, 0 für aus.
Bei Reichweitenproblemen oder unzuverlässigem Schalten lohnt es sich, mit verschiedenen Codes zu experimentieren. Auch ist das ganze recht Zeitkritisch, d.h. der Pi muss den Code im richtigen Takt senden. Ich habe es mit einem Pi 1 getestet. Wenn Kodi läuft klappt es leider nicht besonders zuverlässig, weil der Pi 1 nur Singelcore ist und vermutlich zu beschäftigt mit Kodi. Gesendet wird (man hört die Pulse im Lautsprecher), aber die Taktung scheint nicht zu stimmen. Bei beendetem Kodi aus dem Terminal klappt es einwandfrei sowohl aus der Batch als auch direkt mit send. Der Test mit einem Pi2 lief bestens, schalten klappt zuverlässig aus Kodi.

Den "send" Befehl kann man sich nun in eine Batchdatei speichern:

Code: Alles auswählen

sudo nano /home/osmc/.kodi/userdata/an.sh

Inhalt:

Code: Alles auswählen

#!/bin/bash
sudo /opt/rcswitch-pi/send 11111 4 1

Nach dem speichern noch ausführbar machen:

Code: Alles auswählen

chmod +x /home/osmc/.kodi/userdata/an.sh

Nun kann man in die favourites.xml diesen Befehl einfügen und somit aus Kodi aufrufen:

Code: Alles auswählen

<favourite name="Steckdose an" thumb="special://home/userdata/fb-switch.png">
system.exec("/storage/.kodi/userdata/an.sh")</favourite>

Unter thumb natürlich ein Eigenes Bildchen verlinken.
Sollte auch so in der remote.xml funktionieren.

Oder über das Addon "xbmc callbacks" bei bestimmen Systemzuständen ausführen:
http://forum.kodi.tv/showthread.php?tid=151011
Das Addon wird unter Addons/Dienste installiert. Man stellt einfach für die gewünschte Funktion den Pfad zur Batch ein.

Viel Erfolg beim basteln! :)
Zuletzt geändert von onkeldave am 27. Apr 2016, 13:34, insgesamt 8-mal geändert.
Pi3, LibreELEC 8 (Kodi17) + RetroPie 4 Dualboot, Hyperion Ambilight, IR Empfänger, Datenbanksync auf NAS

b2un0
Moderator

Beiträge:1819
Registriert:16. Nov 2015
Wohnort:Hamburg
Beruf:Softwareentwickler

Funksteckdosen aus Kodi (OSMC) schalten

27. Apr 2016, 11:21

Sehr coole Zusammenfassung, danke dafür!

Habs mal angepinnt :)
Kein Support per PM!

onkeldave
Mitglied

Beiträge:167
Registriert:15. Feb 2016
Wohnort:254xx

Funksteckdosen aus Kodi (OSMC) schalten

27. Apr 2016, 12:03

Danke! :) Vielleicht kann es ja jemand gebrauchen...
Leider musste ich eben noch festellen, das mein Experimentier Pi1 mit Kodi UND 433Mhz überfordert zu sein scheint, habs gerade nochmal ergänzt.
Auch ist das ganze recht Zeitkritisch, d.h. der Pi muss den Code im richtigen Takt senden. Ich habe es mit einem Pi 1 getestet. Wenn Kodi läuft klappt es leider nicht besonders zuverlässig, weil der Pi 1 nur Singelcore ist und vermutlich zu beschäftigt mit Kodi. Gesendet wird (man hört die Pulse im Lautsprecher), aber die Taktung scheint nicht zu stimmen. Bei beendetem Kodi aus dem Terminal klappt es einwandfrei sowohl aus der batch als auch direkt mit send.

Hast du vielleicht eine Idee, warum das ganze nur über eine Batch geht und man als system.exec in Kodi nicht direkt den send Befehl eintragen kann?
Steht noch ein Test mit meinem Pi 2 an, der läuft aber z.Zt. mit Openelec, da ich bei OSMC dauernd freezes hatte. Das nächste Projekt wird sein, OSMC auf SSD an USB zum laufen zu bekommen, um dem leidigen SD-Karten Problem ein Ende zu setzen...
Pi3, LibreELEC 8 (Kodi17) + RetroPie 4 Dualboot, Hyperion Ambilight, IR Empfänger, Datenbanksync auf NAS

b2un0
Moderator

Beiträge:1819
Registriert:16. Nov 2015
Wohnort:Hamburg
Beruf:Softwareentwickler

Funksteckdosen aus Kodi (OSMC) schalten

27. Apr 2016, 12:08

onkeldave hat geschrieben:Hast du vielleicht eine Idee, warum das ganze nur über eine Batch geht und man als system.exec in Kodi nicht direkt den send Befehl eintragen kann?


Vermutlich wegen dem sudo.

Muss das wirklich via sudo ausgeführt werden?
Kein Support per PM!

onkeldave
Mitglied

Beiträge:167
Registriert:15. Feb 2016
Wohnort:254xx

Funksteckdosen aus Kodi (OSMC) schalten

27. Apr 2016, 12:41

Ja, scheinbar schon. Ich hab versucht, rcswitch nicht unter opt sondern im User Verzeichnis zu installieren, die Installation klappte dann auch ohne sudo. Aber der send Befehl ließ sich nur mit sudo ausführen. Hab's auch mit einer Einstellung für /opt/rcswitch-pi/send in der sudoers Datei, aber senden ging trotzdem nur mit sudo. Irgendwas davon braucht scheinbar root Rechte...
Pi3, LibreELEC 8 (Kodi17) + RetroPie 4 Dualboot, Hyperion Ambilight, IR Empfänger, Datenbanksync auf NAS

b2un0
Moderator

Beiträge:1819
Registriert:16. Nov 2015
Wohnort:Hamburg
Beruf:Softwareentwickler

Funksteckdosen aus Kodi (OSMC) schalten

27. Apr 2016, 13:27

führ doch dein Bash Script mal mit dem Benutzer aus unter welchem auch Kodi unter openELEC läuft, das sollte dir dann doch diverse Fehler liefern wenn es nicht funktioniert.
Kein Support per PM!

Filmfan
Mitglied

Beiträge:37
Registriert:19. Nov 2015

Funksteckdosen aus Kodi (OSMC) schalten

22. Aug 2017, 10:54

Danke fürs posten, genau danach habe ich auch gesucht :)

Filmfan
Mitglied

Beiträge:37
Registriert:19. Nov 2015

Funksteckdosen aus Kodi (OSMC) schalten

7. Sep 2017, 16:11

Geht das auch mit LibreELEC?

onkeldave
Mitglied

Beiträge:167
Registriert:15. Feb 2016
Wohnort:254xx

Funksteckdosen aus Kodi (OSMC) schalten

7. Sep 2017, 17:12

Nein, Libre basiert auf Arch, nicht auf Raspbian.
Pi3, LibreELEC 8 (Kodi17) + RetroPie 4 Dualboot, Hyperion Ambilight, IR Empfänger, Datenbanksync auf NAS

Filmfan
Mitglied

Beiträge:37
Registriert:19. Nov 2015

Funksteckdosen aus Kodi (OSMC) schalten

7. Sep 2017, 22:07

Schade und danke für die schnelle Antwort :)

Filmfan
Mitglied

Beiträge:37
Registriert:19. Nov 2015

Funksteckdosen aus Kodi (OSMC) schalten

8. Sep 2017, 19:22

Ich bräuchte nochmal Hilfe: Habe mir jetzt OSMC geholt, wenn ich

Code: Alles auswählen

sudo /opt/rcswitch-pi/send 11111 4 1

ausführe funktioniert auch alles. Aber wenn ich dann "Steckdose an" unter den Favoriten auswähle passiert nichts.
Ich hatte einen Fehler bei

Code: Alles auswählen

chmod +x /home/osmc/.kodi/userdata/an.sh

da stand "Operation not permitted", also habe ich stattdessen

Code: Alles auswählen

sudo chmod +x /home/osmc/.kodi/userdata/an.sh

verwendet. Allerdings klappt es bei mir immer noch nicht. Meine favourites.xml sieht so aus (habe mein Bild so benannt wie deins):

Code: Alles auswählen

<favourites>
<favourite name="Steckdose an" thumb="special://home/userdata/fb-switch.png">
system.exec("/storage/.kodi/userdata/an.sh")</favourite>
</favourites>

Ich habe das mit den Favoriten nur zum testen verwendet, ich möchte das ganze auch mit Callbacks nutzen, muss ich dann dort einfach

Code: Alles auswählen

/home/osmc/.kodi/userdata/an.sh

eintragen?

onkeldave
Mitglied

Beiträge:167
Registriert:15. Feb 2016
Wohnort:254xx

Funksteckdosen aus Kodi (OSMC) schalten

9. Sep 2017, 20:58

Nabend, hast du Mal versucht das Script von der Konsole aus zu starten?
Pi3, LibreELEC 8 (Kodi17) + RetroPie 4 Dualboot, Hyperion Ambilight, IR Empfänger, Datenbanksync auf NAS

Filmfan
Mitglied

Beiträge:37
Registriert:19. Nov 2015

Funksteckdosen aus Kodi (OSMC) schalten

11. Sep 2017, 12:52

Oh man, ich bin ein Idiot, habs jetzt geschafft, ich habe den Pfad die ganze Zeit bei Events und nicht bei Tasks eingetragen, jetzt geht es endlich :D Davor habe ich nochmal alles neu aufgesetzt, also funktioniert alles :) Wer Callbacks nutzen möchte sollte seine Skripte übrigens am besten in \\OSMC\osmc ablegen. Ich konnte im Addon nur browsen aber keinen Pfad eintippen.

Filmfan
Mitglied

Beiträge:37
Registriert:19. Nov 2015

Funksteckdosen aus Kodi (OSMC) schalten

13. Sep 2017, 18:55

Wie hast du das ganze eig. in einem Case untergebracht? Bin mir gerade nicht sicher wie ich das am besten mache, könnte auch ein Case entwerfen und 3D-Drucken lassen.

onkeldave
Mitglied

Beiträge:167
Registriert:15. Feb 2016
Wohnort:254xx

Funksteckdosen aus Kodi (OSMC) schalten

13. Sep 2017, 19:39

Super, das es jetzt geklappt hat, bin einfach nicht dazu gekommen, es selbst nochmal zu rekonstruieren, bin etwas raus, weil länger nichts gebastelt...
Man bekommt die kleine Platine in ein Standard Gehäuse mit reingefummelt, für die Antenne muss man einfach ein Loch bohren und sie raus gucken lassen. Ich bin da aber eher pragmatisch und lass das ganze einfach raushängen. Sitz ja eh im Schrank oder hinterm TV. Bischen Isolierband um die Platine, das es keinen Kurzschluss gibt.
Pi3, LibreELEC 8 (Kodi17) + RetroPie 4 Dualboot, Hyperion Ambilight, IR Empfänger, Datenbanksync auf NAS

Zurück zu „Allgemein“