Beiträge von hyxamp

    Webrequests oder ähnliches gehen mit Kurzbefehlen innerhalb einer Automation, nur das Steuern der Endgeräte klappt nicht. Dem Apple TV (ebenfalls Steuerzentrale) habe ich natürliches als erstes ein Update verpasst.


    Inzwischen ist mir das auch egal. Ich will nicht mit jedem neuen Update hoffen müssen, dass alles noch so funktioniert wie es vorher war. Daher habe ich alle Automationen kurzerhand in ein Python Skript ausgelagert, welches sich nun auf dem Raspberry befindet. Läuft stabiler, ich bin flexibler bei den Automationen und auch unabhängiger in Bezug auf Updates. Natürlich ist es am Anfang ein wenig mehr Arbeit, wenn aber erstmal alles läuft, sind Ergänzungen/Erweiterungen in 2 Minuten umgesetzt. So viele Automationen habe ich eigentlich gar nicht, ich fand es nur nervig, dass die wenigen dann nichtmal sauber funktionieren. Vielleicht wäre eine andere App zum erstellen von Automationen eine Alternative gewesen, aber was solls.

    Hallo,


    kannst Du bitte mal ein Beispiel nennen? Ich hatte das gleiche Problem (mit iOS 13.3) mit der Anleitung " Homekit Lampen rot blinken lassen". Genau das Verhalten was Du beschreibst. Testen funktioniert, aber mit echten Auslöser geht nicht.


    Hallo abitkt7a,

    ich hatte zu meinem Problem bereits ein Thema mit Beispiel eröffnet. Relevant ist eigentlich bloß der letzte Beitrag, in dem ersichtlich wird, was bei mir nicht funktioniert. Inzwischen haben bei mir alle Apple-Endgeräte ein Update erhalten, leider funktioniert es immer noch nicht.


    Automationen funktionieren teilweise nicht

    Ich konnte jetzt auf anhieb auch keins finden. Außerdem fände ich es mehr als umständlich, mit einem Schalter in Home (IR Empfänger) dann einen anderen Schalter zu schalten.


    Wenn es dir aber nichts ausmacht, würde mir jetzt auch blos der Umweg mit einem ESP8266 einfallen. Den könntest du als IR Empfänger verwenden und einen Webserver eröffnen. Homebridge kann dann mit diesem Webserver kommunizieren (zB über http-WebHooks) und für jeden empfangen IR-Befehl einen Schalter erzeugen. Über eine Automation in Home wird dann das Gerät deiner Wahl gesteuert. Kostenpunkt liegt bei 5€ und der Programmieraufwand ist sehr überschaubar.


    Nachtrag: Einen IR-Empfänger würde natürlich auch benötigt werden, um den IR-Code deiner Harmony auszulesen

    Die wirklich rudimentärste und vermutlich unpraktischste Idee wäre (unter der Annahme, dass es bereits ein IR-Plugin für Homebridge gibt), für jeden Knopf den du auf deiner Harmony drückst, einen Schalter in Home anzulegen. Diesen verknüpfst du dann über eine Automation mit dem Gerät, welches du dann wirklich schalten willst.

    Guten Morgen Carsten,

    ich weis, der DNS-Server von Pi-Hole ist bewusst nicht im Router eingetragen, da die Unterdrückung von Werbung bei einigen Mitbewohnern nicht erwünscht ist :) Klingt komisch, aber auch ein stückweit nachvollziehbar. Ich muss auch gelegentlich Pi-Hole kurzzeitig deaktivieren, wenn ich auf der Suche nach irgendwelchen Produkten bin. Daher habe ich den DNS-Server von Pi-Hole manuell in den gewünschten Endgeräten eingetragen und fertig. Beim Handy und Tablet funktioniert es auch super, dort gilt der Server nur für ein spezifisches Netzwerk. Beim Macbook sieht es aber leider anders aus.

    Hallo,

    gibt es eine Möglichkeit, einen DNS Server auf dem MacBook nur für bestimmte (Wlan-) Netzwerke anzulegen? Konnte bei google leider auf anhieb nix finden.


    Hintergrund:

    Ich verwende zuhause Pi-Hole.. Der Mac ist aber auch gelegentlich mit anderen Netzwerken verbunden, sodass ich DNS ausschalten muss. Auf dem Iphone gibts da keine Probleme, dort scheinen die Eingaben eines manuellen DNS-Server spezifisch für ein Netzwerk zu gelten. Beim Mac wiederum sieht es so aus, als wenn die Eingabe für alle Netzwerke gilt. Gibt es dafür einen Trick?

    Zunächst müsstest du erstmal sicherstellen, dass zwischen IR-Fernbedienung und deinem Raspberry eine Sichtverbindung besteht. Bei mir wäre es auf diese Art gar nicht möglich, da sich mein Raspberry im Büro befindet und ich demnach vom Wohnzimmer nichts über IR schalten könnte. Jedenfalls nicht direkt.


    Tatsächlich habe ich aber auch vor wenigen Wochen einen IR Sender/Empfänger gebaut, der ein ähnliches Prinzip verfolgt: via IR-Fernbedienung irgendwelche Lampen schalten. Allerdings habe ich es mit einem ESP8266 (da der Raspberry wie gesagt im Büro hängt) und einem IR-Empfänger gelöst. Sollte ja ähnlich wie bei dir sein.


    In einer permanenten Schleife wird der IR-Empfänger abgefragt. Sobald dieser ein Signal Empfängt, wird geschaut um was es sich handelt. In deinem Fall wäre es: "welcher Knopf wurde gerade gedrückt". Meine Fernbedienung musste ich vorher auslesen, damit ich die IR-Codes der entsprechenden Tasten kenne und anschließend irgendwelche Aktionen ausführen kann. Alle meine Endgeräte (Lampen, Steckdosen ect.) sind via Webserver erreichbar, dh ich kann direkt beim jeweiligen IR-Code vom ESP8266 ein Webrequest an das gewünschte Endgerät senden und zusätzlich noch den Status der Schalterstellung in Homebridge aktualisieren.


    Bei dir ist das ja wie gesagt ganz ähnlich. Allerdings bin ich nicht wirklich fit, was das Programmieren unter Linux betrifft (ich nehme an du wirst dann auch ein kleines Skript schreiben müssen, welches den IR-Empfänger abfragt) und dann stellt sich die Frage, wie du deine Endgeräte ansteuerst. Welche Schnittstelle bieten sie und welche Plugins verwendest du.

    Hallöchen,

    nun möchte ich mich auch mal wieder melden. Vielen Dank für das Plugin, ich habe es installiert und getestet: es klappt einwandfrei! Finde ich cool, dass die Idee mit "logicalDevice" tatsächlich so umgesetzt wurde. War ja letztendlich blos ein Schuss ins blaue.


    Vielen Dank, ich bin begeistert wie schnell die Kommandos jetzt am Apple TV ankommen!

    Ahh cool!

    Habe jetzt mal "VBB open data" gegoogelt und es scheint da tatsächlich etwas ähnliches zu geben. Ebenfalls mit API Key, den man zunächst anfordern muss. Werde ich gleich mal machen und schauen, welche Daten ich damit abrufen kann.


    Letztendlich reichen mir eigentlich blos die Verspätungen. Wenn diese groß genug sind, kann man ja auch direkt von einer Störung ausgehen.


    So wie du die Abfrage und Auswertung beschrieben hast, hätte ich das auch gelöst. Bin gespannt was sich da alles mit anstellen lässt. Vielen Dank!

    Hallo,

    ich muss das Thema nochmal ausbuddeln, wobei meine Frage eher speziell an sschuste gerichtet ist.


    Zitat

    Ich bin Bahnfahrer und nehme morgens die S-Bahn. Wie oft bin ich zum Bahnhof gekommen und die Fahrt fällt aus, weil Signalstörung, Notarzteinsatz, polizeiliche Ermittlungen, Weichenstörung, Personenschaden, Gegenstände auf der Strecke und ach. Da meine S-Bahn nur alle 30 Minuten fährt, hätte ich das gern schon gewusst, bevor ich das Haus verlasse.


    Ich befinde mich in einer ähnlichen Situation und nutze hauptsächlich die S-Bahn, um auf Arbeit zu kommen. Diese fährt zwar etwas regelmäßiger als bei dir, was aber nicht bedeutet, dass bei einer Störung auch nur eine Bahn ausfällt. Glücklicherweise bieten sich bei mir diverse Alternativen: Ubahn und Bus.


    Daher würde ich gerne etwas basteln, bei dem alle meine bevorzugten Linien abgefragt werden. Falls Störungen vorliegen, wäre es schön zu wissen, wie lange die Störung bereits existiert (um abwägen zu können, ob sie inzwischen behoben ist) und um welche Art Störung es sich handelt. Gleiches gilt auch für geplante Sperrungen und Baustellen. Auf den Webseiten der BVG und S-Bahn werden diese Informationen bereits so Angeboten, wie ich sie brauche. Möglicherweise lese ich diese einfach blos aus und filter das nötigste.


    Wie beziehst du deine Daten (Verspätungen / Zugausfälle) über Hafas?

    Ohje, das heist ja nicht nur curve, das sind ja wirklich kryptokurven :)

    Da hat bubffm nicht zu viel versprochen, bei dem Thema bin ich allerdings auch raus.


    Ich steuere meinen ATV derzeit ausschließlich über pyatv (via shell). Es dauert zwar 6 Sekunden, bis ein Befehl ankommt.. aber letztendlich:


    Fernseher an + Apple TV an (command: "menu"):

    Der Fernseher braucht zum "Hochfahren" so lange (ist bereits älter als 10 Jahre), dass mich die 6 Sekunden, ehe der Befehl am ATV angekommen ist, nicht stören. Der Apple TV braucht dann zwar auch nochmal seine Zeit, letztendlich ist dann aber Fernseher und Apple TV nahezu zeitgleich einsatzbereit. In der Realität stehe ich meistens auch noch in der Küche, gebe den Sprachbefehl "Apple TV und Fernseher einschalten" und eh ich dann auf der Couch sitze sind die 6 Sekunden schon lange vorbei..


    Fernseher aus + Apple TV aus (command: "home_hold" + "select"):

    Der Fernseher geht aus, wie lange dann noch der ATV braucht, interessiert mich nicht.


    Apple TV play / pause (command: "play" / "pause":

    Nutze ich eigentlich nicht wirklich. Würde dafür normalerweise die Fernbedienung nehmen, statt App oder Sprache. Hab "pause" lediglich in die Automation meiner Türklingel eingebunden. Allerdings muss ich gestehen: Wenn ich mal eine Serie auf dem Apple TV schaue, dann abends.. Da klingelt in der Regel aber niemand mehr. Ich hätte "pause" ja auch gerne via Shortcuts eingebunden, wenn ich einen eingehenden Anruf auf dem Iphone erhalte.. Habe aber bisher noch keine Möglichkeit zur Umsetzung gefunden.


    Netflix starten (command: "top_menu" + "top_menu" + "select"):

    Läuft auch bei mir innerhalb einer Automation: Lichter alle aus, Ambilight an, TV an, Apple TV an.. und da ist wieder der Knackpunkt "TV" mit dabei, welcher die 6 Sekunden irrelevant erscheinen lassen.


    Mit Overclocking auf dem Pi konnte ich die Dauer zum Senden des Befehls auf 5 Sekunden drücken. Die eine Sekunde ist es mir aber nicht wert. Ich bin also mit meinem bisherigen Setup ganz zufrieden, muss aber auch gestehen, dass ich keine Ahnung habe wie ich CLI nutzen kann. In der Shell ist es mir klar, allerdings nicht wenn ich mit einem CMD - Schalter auf eine bash zugreife bzw. die Kommandos direkt im Schalter eintrage. Daher habe ich es beispielsweise so gelöst (Netflix starten):


    Code
    python3 /usr/local/lib/python3.7/dist-packages/pyatv --manual --address 192.168.2.xxx --port 49152 --protocol mrp --id xx:xx:xxxx:xx:xx top_menu  & 
    sleep 1
    python3 /usr/local/lib/python3.7/dist-packages/pyatv --manual --address 192.168.2.xxx1 --port 49152 --protocol mrp --id xx:xx:xxxx:xx:xx top_menu  &
    sleep 1 
    python3 /usr/local/lib/python3.7/dist-packages/pyatv --manual --address 192.168.2.xxx --port 49152 --protocol mrp --id xx:xx:xxxx:xx:xx select 


    Die Programmierer unter euch bekommen dabei bestimmt graue Haare, aber ich wusste mir nicht anders zu helfen. Habe wie gesagt von Linux, Java, Python, Bash... nicht wirklich Ahnung und probiere so lange rum, bis es funktioniert.. oder kaputt ist. Damit wird meines Erachtens pyatv 3x hintereinander ausgeführt, jeweils zeitversetzt um eine Sekunde. Ich erhalte also das commando: "top_menu" nach 6 Sekunden am Apple TV, eine Sekunde später erneut "top_menu" und schließlich nach insgesamt 8 Sekunden "select". Klappt.


    Um ehrlich zu sein wüsste ich jetzt auch gar nicht, ob für mich ein neues Plugin überhaupt wichtig wäre. In deinem ersten Plugin hast du keine Schalter vorgesehen. Tatsächlich bräuchte man mit pyatv aber auch nicht wirklich eine API, da mit shortcuts auch Skipte über SSH ausgeführt werden können (ob CLI auch geht, weis ich nicht). Die +/- 6 Sekunden für den Sendebefehl mögen ein Argument sein, stören mich aber letztendlich gar nicht. Der Zustand des Apple TV könnte bei externer Schaltung über die Fernbedienung relevant sein, sofern man beispielsweise Automationen damit auslösen möchte. Dafür fehlt es mir dann aber wieder an Kreativität. Daher sind mir die Schalterstellungen von an/aus und play/pause eigentlich auch egal. Natürlich überschneiden sich die Eingaben via Fernbedienung mit der Darstellung in der App. Solange ich allerdings via Sprachbefehl einen virtuell "angeschaltenen" Apple TV erneut anschalten kann, damit er dann auch "mechanisch" an geht, bin ich glücklich. Allerdings ist das nur meine Sichtweise und ursprünglich hattest du das Plugin ja auch nur für dich entwickelt. Ich hoffe nur das die nötige Entwicklungsarbeit für ein neues Plugin letztendlich nicht den resultierenden Nutzen deutlich übersteigt. Da es aber auch eine Art Hobby zu sein scheint, bei dem dich möglicherweise der Ehrgeiz packt, kann ich das völlig nachvollziehen.


    Viele Grüße

    Ahh... Ja node könnte ein Problem sein. Ich wollte ja bereits vor 2 Wochen den ATV in Homebridge implementieren (was auch mehr oder weniger der Grund ist, warum ich mich mit deinem Plugin so ausgiebig beschäftigt habe).


    Ich hatte mich damals auf das homebridge-apple-tv Plugin konzentriert, einen entsprechenden Beitrag gibt es bereits im Forum. Das Plugin basiert meines Erachtens ebenfalls auf node-appletv, welches ich nie zum Laufen gebracht habe. Ein sehr langes Issue auf Github existiert bereits:


    https://github.com/lprhodes/homebridge-apple-tv/issues/43


    Hatte alles durchgearbeitet, aber nix hat funktioniert. Im vorletzten Beitrag wird auf einen Downgrade zur Node Version 8 verwiesen... Das war es mir dann allerdings nicht wert. Wer weis was danach dann wieder nicht funktioniert. Von mir ist übrigens der letzte Beitrag des Issues: 17 Tage, ohne Antwort.

    Ist bei mir das gleiche, ob mit oder ohne root:



    ...dann dauert es furchtbar lange, bis das ganze Terminal voll mit Fehlermeldungen ist.


    lukas.roegner

    Welcher Befehl wird denn beim Ausschalten des ATV über den von dir implementieren Schalter gesendet? Ich hatte es immer mit "suspend" probiert aber auch die Erfahrung gemacht, dass sich der Apple TV danach nicht mehr starten lässt. Da hat bloß noch ein hard-reset geholfen. Inzwischen schalte ich den Apple TV über die Kombination: "home_hold" + "select" aus.

    Hat sich erledigt..

    Habe noch eine ganze Weile rumprobiert: setsid()  oder <command> &  hat beides nicht zum Erfolg geführt. Jedenfalls nicht wenn ich irgendwelche shell commands mit einem Schalter auslösen will. Der wartet immer auf Rückmeldung.


    Dann hab ich ein anderes Plugin gefunden: homebridge-cmdswitch2

    Dort kann ein Timeout eingestellt werden. Im debug sieht es dann so aus:


    Zitat

    Jan 04 22:33:46 raspberrypi homebridge[20902]: [2020-1-4 22:33:46] [CMD Switch] Turning on Test took too long [1s], assuming success.

    Jan 04 22:33:50 raspberrypi homebridge[20902]: [2020-1-4 22:33:50] [CMD Switch] Test is turned on.


    Naja.. solange angenommen wird, dass alles in Ordnung ist ;)

    Hier lässt sich auch die Schalterstellung durch einen Status abfragen. Könnte also auch noch Interessant werden.