Amazon Echo mit Raspberry Pi oder NAS und HA-Bridge

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Hallo, ist ein klasse Forum hier.
      Ich habe aufmerksam alle Seiten dieses Threads gelesen und habe ha-bridge auf meiner Synology DS216play installiert.
      und zwar im Verzeichnis: /volume1/ha-bridge. Dort habe ich auch das startscript: "starthabridge.sh" stehen.

      Zuerst: es funktioniert, habe die ha-bridge 4.20 auf Port 8080 am laufen. Auch spricht Alexa alles an. Danke hierfür.

      Nun zu meinem konkreten Problem:
      Der Autostart, d.h. nach einem Neustart der NAS sollte das skript automatisch gestartet werden.
      In diesem Thread wird dies einige male angesprochen, aber nicht konkret gezeigt.

      in Beitrag 328 hat Eisblume etwa so geschrieben: "dann muss man ein Startscript schreiben, in die rc.d legen und die starthabridge.sh starten.

      Genau da häng ich. ich hatte es probiert, die starthabridge.sh direkt nach ../etc/rc.d zu schreiben und ausführbar zu machen. Das geht wohl so nicht.

      Am liebsten wäre es mir, wenn die habridge verzögert startet, da auf der 216 so einiges hochstartet...

      kann mir hier jemand helfen?

      hier noch meine starthabridge.sh (die funktioniert mit su ./starthabridge.sh start)

      Shell-Script

      1. #!/bin/sh
      2. ### BEGIN INIT INFO
      3. # Provides: homebridge
      4. # Required-Start: $network $remote_fs $syslog
      5. # Required-Stop: $remote_fs $syslog
      6. # Default-Start: 2 3 4 5
      7. # Default-Stop: 0 1 6
      8. # Short-Description: Start daemon at boot time
      9. # Description: Enable service provided by daemon.
      10. ### END INIT INFO
      11. dir="/volume1/ha-bridge"
      12. cmd="DEBUG=* nohup java -jar -Dserver.port=8080 -Dconfig.file=/volume1/ha-bridge/data/habridge.config /volume1/ha-bridge/ha-bridge-4.2.0.jar"
      13. user="root"
      14. name="habridge"
      15. pid_file="/var/run/$name.pid"
      16. stdout_log="/var/log/$name.log"
      17. stderr_log="/var/log/$name.err"
      18. get_pid() {
      19. cat "$pid_file"
      20. }
      21. is_running() {
      22. [ -f "$pid_file" ] && ps `get_pid` > /dev/null 2>&1
      23. }
      24. case "$1" in
      25. start)
      26. if is_running; then
      27. echo "Already started"
      28. else
      29. echo "Starting $name"
      30. cd "$dir"
      31. if [ -z "$user" ]; then
      32. sudo $cmd >> "$stdout_log" 2>> "$stderr_log" &
      33. else
      34. sudo -u "$user" $cmd >> "$stdout_log" 2>> "$stderr_log" &
      35. fi
      36. echo $! > "$pid_file"
      37. if ! is_running; then
      38. echo "Unable to start, see $stdout_log and $stderr_log"
      39. exit 1
      40. fi
      41. fi
      42. ;;
      43. stop)
      44. if is_running; then
      45. echo -n "Stopping $name.."
      46. kill `get_pid`
      47. for i in {1..10}
      48. do
      49. if ! is_running; then
      50. break
      51. fi
      52. echo -n "."
      53. sleep 1
      54. done
      55. echo
      56. if is_running; then
      57. echo "Not stopped; may still be shutting down or shutdown may have failed"
      58. exit 1
      59. else
      60. echo "Stopped"
      61. if [ -f "$pid_file" ]; then
      62. rm "$pid_file"
      63. fi
      64. fi
      65. else
      66. echo "Not running"
      67. fi
      68. ;;
      69. restart)
      70. $0 stop
      71. if is_running; then
      72. echo "Unable to stop, will not attempt to start"
      73. exit 1
      74. fi
      75. $0 start
      76. ;;
      77. status)
      78. if is_running; then
      79. echo "Running"
      80. else
      81. echo "Stopped"
      82. exit 1
      83. fi
      84. ;;
      85. *)
      86. echo "Usage: $0 {start|stop|restart|status}"
      87. exit 1
      88. ;;
      89. esac
      90. exit 0
      Alles anzeigen
    • Du musst dir noch ein Startscript für das Verzeichnis /usr/local/etc/rc.d erstellen.
      Lege eine Datei mit deinem Wunschnamen an, z.B. "bridgeauto" und kopiere diese ins o.g. Verzeichnis. Öffne nun diese Datei und füge ihr die Daten im Spoiler hinzu, und fülle die Kopfdaten und die Aktionen mit deinen Daten. Also bei Start muss dann dass Verzeichnis und der Befehl zum ausführen deiner Bridge rein usw.


      Spoiler anzeigen

      #!/bin/sh
      ### BEGIN INIT INFO
      # Provides: Für welches Programm ist das Script?
      # Required-Start:
      # Required-Stop:
      # Default-Start: 2 3 4 5
      # Default-Stop: 0 1 6
      # Short-Description: Kurze Beschreibung
      # Description: Längere Beschreibung
      ### END INIT INFO

      # Actions
      case "$1" in
      start)
      # START
      ;;
      stop)
      # STOP
      ;;
      restart)
      # RESTART
      ;;
      esac

      exit 0




      Nun noch die Rechte zuweisen:
      sudo chmod +x /usr/local/etc/rc.d/bridgeauto

      und das angelegte Script anweisen beim booten zu starten:
      sudo update-rc.d bridgeauto defaults




      Gruss
      wuesty

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von wuesty1977 ()

    • wenn ich mir das so ansehe: Diese Angaben habe ich doch auch in meinem startscript so drin!
      das skript wurde auch ausführbar gemacht und liegt im rc.d.

      also müsste ich doch nur noch "sudo update-rc.d starthabridge.sh defaults" eingeben?
      Bisher zögerte ich, weil es hieß, bei Synology - NAS wäre ein Autostart nicht so einfach möglich. Da aber die Docker-Station bei der DS216play nicht funktioniert, habe ich bisherige Lösungswege (zB von Raspberries etc) nicht analog angewendet.
      Gibt es hier einen Synology-User mit echtem autostart? Polymorph etwa?

      Edit:
      Also ich habe es mit dem Befehl probiert.: sudo update-rc.d starthabridge.sh defaults
      er bringt fehler
      sudo: update: command not found

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von hgdo ()

    • Wie lautet der ideale Befehl um das aktuell laufende Programm aus dem OpenWebIf zu erhalten?
      Ich habe es nur über Umwege geschafft:
      IP-DERBOX/web/subservices, dort dann die serviceReference ermitteln und diese in IP-DERBOX/web/epgbouquet?bRef=serviceReference suchen und darüber den Event-Title finden.

      Gibt es einen Befehl um alle Infos vom aktuellen Programm sofort zu finden?
      Vu+ Duo²
    • Tazz schrieb:

      Gibt es eine Funktion, die aus dem Sendernamen die Service Referenz ermittelt?
      Dann könnte man so etwas ohne weitere benutzen:
      192.168.1.234/web/zap?sRef=toServiceReferenz("RTL")
      anstatt
      192.168.1.234/web/zap?sRef=1:0:1:2F45:A1:270F:FFFF0000:0:0:0
      ?

      Falls nicht, gibt es eine Datei in der Vu+, die diese Information eventuell enthält? In meinen userbouquet's habe ich nur die Service Referenz, keine Sendernamen.
      Das macht man gefühlt mit dreamboxedit oder verstehe ich dich nicht`?
      Dateien
      • da.png

        (360,11 kB, 64 mal heruntergeladen, zuletzt: )

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Klappspaten ()

    • Ich möchte es automatisieren: Aus Name (ProSieben) möchte ich die Service-Reference (1:0:0:.......) erhalten.
      Habe die lamedb5 Datei unter /etc/enigma2/ gefunden und daraus extrahiere ich meinen Sender-Namen und Sender-Service-Reference.
      Entferne dabei die Sonderzeichen und füge die Informationen anschließend in eine mySQL Datenbank.
      Vermutlich geht es auch viel einfacherer.
      Vu+ Duo²

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Tazz ()

    • Achso das hätten wir wahrscheinlich auch über das Plugin von hmmmdada einfacher machen können aber du hast das Rätsel ja anscheinend bereis selbst gelöst! :thumbsup:

      Über das Plugin kann man komplette Bouquets als Devices importieren und die db kann wiederum in der ha-bridge komplett gesichert werden. Ich habe nur noch nicht kapiert wo die *.bk Dateien gesichert werden.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Klappspaten ()

    • Ich hab schon gegugt finde die *.bk aber nicht. :( Die habridge von Hmmmdada liegt im standard e2 plugin verzeichnis.
    • @Tazz
      Die backups liegen unter
      /home/root/data

      Wenn es Dir hilft importiere und exportiere ich Dir die typischen deutschen astra bouquets.
      Dateien
      • da.png

        (86,24 kB, 53 mal heruntergeladen, zuletzt: )
    • Hallo Bastelfreunde,
      wieder mal eine etwas nutzlose Spielerei.
      In Post 252 hatte ich ja mal gezeigt wie man sich den EPG Text der aktuellen Sendung die gerade läuft mittels Pushbullet auf das Handy schicken kann.
      Manchmal ist aber auch ein Screenshot vom aktuellen Fernsehbild nötig, ein paar Zeilen Python und es wird ein Screenshot gemacht und mittels Pushbullet auf das Handy geschickt.
      Die Fotos befinden sich dann auch im Downloadordner(Android).Starte tue ich das ganze mit "Alexa schalte Foto ein". :D
      Dateien
      • Screenshot.png

        (1,38 MB, 46 mal heruntergeladen, zuletzt: )
      Alkohol löst keine Probleme aber das macht ja Milch auch nicht.
    • Ich finde es ja nicht schlecht was du da so machst...aber wirklich toll wäre es wenn du auch mal deine Codes/Anleitung zur verfügung stellen könntest.
      Ich bin leider kein Code Experte da bin ich immer froh wenn es mal ein Tutorial gibt.
    • @Madhaus
      Ja klar kann ich machen hier ist mal ein Entwurf, damit es funktioniert noch den eigenen Pushbullet Key eintragen und die eigene IP anpassen.
      Das ganze dann auf dem Raspberry pi speichern und ausführbar machen.
      In der HA_Brigde unter ON_URL den Pfad eintragen
      /home/pi/screen_test.py
      das war es schon.
      Die Pythonexperten werden wahrscheinlich beim Anblick vom Code den Kopf schütteln aber ich beschäftige mich erst seit ein paar Wochen mit Python. 8o

      Python-Quellcode

      1. #!/usr/bin/python3
      2. import time, sys
      3. from pushbullet import PushBullet
      4. import requests
      5. from requests.auth import HTTPBasicAuth
      6. import os
      7. import datetime
      8. api_key = "blabla" # hier den eigenen Key eintragen
      9. pb = PushBullet(api_key)
      10. def main():
      11. f = open('test.png','wb')
      12. f.write(requests.get('http://192.168.0.25/grab?format=png&r=1080&mode=all').content)
      13. f.close()
      14. #zeit= time.strftime("%d.%m.%Y %H:%M:%S")
      15. devices = pb.getDevices()
      16. pb.pushFile(devices[0]["iden"], "test.png", "Bild", open('test.png', 'rb'))
      17. if __name__ == '__main__':
      18. main()
      Alles anzeigen
      Alkohol löst keine Probleme aber das macht ja Milch auch nicht.
    • Super Danke 8-o
      Werde ich heute Abend mal testen.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Madhaus ()

    • Gibt es einen Telnet/http/etc. Befehl um das CoolSearch für einen Suchbegriff zu öffnen?
      Ich möchte gerne aus dem Netzwerk auf dem TV das CoolSearch ausführen für einen SuchString.
      Kann man gut im Alexa Skill integrieren.

      Gibt es auch eine API fürs EMC?
      Möchte gerne Filme um x Minuten vor oder zurückspulen können.
      Gibt es dafür auch einen Befehl?
      Vu+ Duo²

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Tazz ()

    • Gehe mal in diesen Beitrag
      AmazonEcho Plugin Version 1.0R3 - jetzt auf dem VTI Feed

      Das Plugin Installieren dann mit einer externen HA Bridge verbinden.
      Es unterstützt alles was du suchst und ein Skill ist in Arbeit.
    • Danke aber ich möchte es gerne selber Programmieren und bin schon so gut wie fertig beim Skill.
      Mir fehlt nur die Umsetzung fürs CoolSearch und EMC fürs Vor/Zurück-Spulen.
      Kenne mich nicht damit aus, wie man Plugins/Skins extern triggern kann. Darum frage ich hier, weil dies bestimmt jemand weiß. :)

      Eine Lösung per HaBridge halte ich zudem für wenig benutzerfreundlich. Vor allem beim Umschalten, dass man Sendernamen anders aussprechen muss. Darum direkt mein eigener Ansatz per Skill
      Vu+ Duo²

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Tazz ()

    • hmmmdada weis es bestimmt ^^
      Aber aussprechen tu ich es ganz normal, lediglich die Namen müssen angepasst werden an das was Alexa so versteht oder verstehen will :thumbsup:
    • hab da mal ein problem, ich möchte über das Wort "Wiedergabe" per an auf pause/play schalten und
      per aus auf stop.
      test on/off bei der ha bridgen funktionieren.
      auch wenn ich sage alexa schalte wiedergabe an, schaltet sie auf pause.
      nur wenn ich sage
      alexa schalte wiedergabe aus.
      macht sie gar nichts... der leuchtkreis leuchtet kurz und geht aus
      Bildschirmfoto 2017-03-04 um 19.33.24.png

      muss ich da noch was anderes einstellen oder woran kann das liegen?