FHEM Forum

FHEM => Sonstiges => Thema gestartet von: mschulte63 am 11 Mai 2014, 20:55:42

Titel: Steuerung eines Macs mit OS X
Beitrag von: mschulte63 am 11 Mai 2014, 20:55:42
Hallo,

so langsam verzweifle ich an dem Thema, da ich nicht wirklich entsprechnde Infos finde.
Entweder passt es überhaupt nicht oder die notwendigen Infos fehlen einfach.

Es geht im Grunde genommen darum, daß ich einige Automatismen in meinem Home-Office einführen möchte, die auch ablaufen, wenn ich nicht gerade am Rechner sitze. Der Rechner, ein Mac Book Pro mit OSX 10.9, kommt mit ins Spiel, da in Abhängigkeit von Zuständen diverser Services oder Programme auf dem Rechner, externe Schalter betätigt werden sollen. Ich wollte hierzu FS20 Steckdosen-Schalter einsetzen.
Auf einem Windows-PC hatte ich dafür mal eine recht komfortable Lösung mit Eventghost und dem FS20-Sende- und Empfangsmodul hinbekommen.
Da es für den Mac aber Eventghost nicht gibt, bekomme ich keine vernünftige Lösung hin.

Ich hatte schon eine Steuerung über IR oder WLAN in Betracht gezogen. Finde aber keine sinnvollen Infos dazu, wenn überhaupt !!

FHEM läuft auf einer Fritz!Box 7390. Für die Hausautomatisierung nutze ich einen FHZ 1350 und den LAN-Adapter von HM.

Ablauf der ganzen Geschichte würde ich mir folgendermassen vorstellen (hatte ich auf einem PC so konfiguriert)
1. FHEM triggert zur vorgegebener Zeit den Mac
2. Entsprechende interne Informationen des Mac werden ausgewertet
3. Anhand des Ergebnisses der Auswertung auf dem Mac gibt es einen Trigger zurück an FHEM
4. FHEM verarbeitet den Trigger entsprechend der Konfiguration

Wäre schön, wenn es hier einige Tipps geben würde.

Danke schon einmal für die Unterstützung.

Viele Grüße

Michael
Titel: Antw:Steuerung eines Macs mit OS X
Beitrag von: rudolfkoenig am 12 Mai 2014, 10:20:40
Ich fuerchte die Probleme sind nicht detailliert genug geschildert, damit man sinnvoll helfen kann, deswegen reagiert hier auch keiner. Die aufgezaehlten Aufgaben sind auch ohne FHEM auf dem Mac z.Bsp. mir cronjob und Shellskript zu loesen. Wenn es FHEM sein soll:

1. in FHEM ein at definieren, der ein Shellskript aufruft (siehe http://fhem.de/commandref.html#command)
2. shellskript "wertet Informationen aus"
3. trigger zurueck aus dem Shellskript via: perl fhem.pl localhost:fhemport 'set MyDummy status'
4. in FHEM notify anlegen auf MyDummy:status
Titel: Antw:Steuerung eines Macs mit OS X
Beitrag von: mschulte63 am 12 Mai 2014, 11:58:58
Hallo,

ich kann nicht ganz nachvollziehen, was hier nicht verständlich ist.

Das ich mit Cronjob und Shellskripten oder ähnlichen Tools (z.B. Automator) etwas automatisieren kann ist mir schon klar.
Das ist auch nicht das Thema. Das ist bis auf Kleinigkeiten nämlich gelöst.
Hier mal ein grober Ablauf, wie ich mir das vorstelle. Vielleicht wird es dann nachvollziehbar.

1. Auf dem MAC wird geprüft, ob auf einem externen Datenträger ein vom Tagesdatum abhängiges Verzeichnis erstellt wurde.
2. Ist dies der Fall, dann kann der Rest durchlaufen werden, sonst gibt es eine Fehlermeldung
3. die externe Platte wird "ausgeworfen", da kein Zugriff mehr benötigt wird
4. Die Steckdose, an der die Platte hängt wird ausgeschaltet.

Bis auf Punkt 4 ist fast alles gelöst. Es geht jetzt darum, daß der Mac die Steckdose triggern soll.
Aktuell habe ich FS20 Steckdosen und würde gerne davon eine einsetzen.

Die Festplatte ist meine Backup-Platte und wird vorher von FHEM (läuft auf einer FB 7390) eingeschaltet.
Backup startet dann automatisch verzögert mit einem Zeitpuffer
Und dann soll der obige Ablauf hinzukommen.
Ob der Mac nun getriggert werden muß oder ob ich einfach auf dem Mac einige Zeit warte, ist egal.

Letztendlich geht es darum vom Mac aus die Steckdose abzuschalten.
Und mir ist aktuell nicht klar, wie ich eine Kommunikation hinbekomme (entweder Mac - FHEM oder Mac - Steckdose)

Ich hoffe, daß es jetzt deutlicher ist, was ich machen möchte.

Viele Grüße

Michael
Titel: Antw:Steuerung eines Macs mit OS X
Beitrag von: rudolfkoenig am 12 Mai 2014, 12:21:30
Jetzt ist es deutlich verstaendlicher, und die Loesung ist ganz einfach: z.Bsp. auf dem MAC
perl fhem.pl fritz.box:7072 "set Steckdose off"
absetzen
Titel: Antw:Steuerung eines Macs mit OS X
Beitrag von: mschulte63 am 12 Mai 2014, 12:32:16
Versteh ich jetzt nicht.

Nach der Antwort müßte ich in einem Script auf dem MAc die angegebene Zeile einfügen und dann würde die Steckdose ausgeschaltet  ???

Wie soll das denn gehen. Der MAC kennt den FHEM doch gar nicht. Und FHEM kennt den Mac nicht. (höchstens, dass es einen Rechner gibt, der über WLAN im Netz ist)
Am Ende eines Scripts auf dem MAC soll ein  Trigger erzeugt werden, der die Steckdose ausschaltet.

Vielleicht wäre es möglich diese Antwort mal etwas zu erläutern !!
FHEM läuft auf der Fritz!Box und auf dem Mac nicht.
Muß ich fhem.pl auf dem Mac installieren, damit das geht ?

Danke und viele Grüße

Michael
Titel: Antw:Steuerung eines Macs mit OS X
Beitrag von: Zephyr am 12 Mai 2014, 12:45:26
Versteh ich jetzt nicht, dass du das nicht verstehst.

Der Code setzt den Befehl im Telnet-Terminal von FHEM auf der FritzBox ab. Quasi.
perl: Naja, Perl halt ;O)
fhem.pl: FHEM in einem Verzeichnis auf dem Mac zu haben ist schon eine Voraussetzung, möglichst im gleichen Verzeichnis wie Dein Script
fritz.box: Das ist die Adresse Deiner FritzBox, auf der ja FHEM läuft
:7072: Der Port, an dem FHEM auf der FritzBox "lauscht"
"set Steckdose off": Der Befehl, der an FHEM auf der FritzBox abgesetzt wird um die Steckdose zu schalten

Viele Grüße
Zephyr
Titel: Antw:Steuerung eines Macs mit OS X
Beitrag von: rudolfkoenig am 12 Mai 2014, 12:49:55
ZitatMuß ich fhem.pl auf dem Mac installieren, damit das geht ?

Ja, aber nicht starten. Alternativen mit nc oder aehnliches sind auch moeglich, man muss halt irgendwie den String "set Steckdose off" an das FHEM Telnetport senden. Oder mit wget/curl was an das HTTP Port senden:
wget "http://fhemhost:8083/fhem?cmd=set FS20 off&XHR=1"

Da der Syntax zunehmen kryptischer wird, habe ich mit dem fuer Benutzer einfachen angefangen.
Titel: Antw:Steuerung eines Macs mit OS X
Beitrag von: mschulte63 am 12 Mai 2014, 12:55:11
Hallo,

ich habe den ersten Tipp ausprobiert.

Es passiert aber nichts.
In FHEM passiert gar nichts. Steckdose wird nicht geschaltet und auch kein log-Eintrag.

wget probier ich dann noch mal aus.
Titel: Antw:Steuerung eines Macs mit OS X
Beitrag von: betateilchen am 12 Mai 2014, 13:14:19
Achte darauf, ob Du Dich an Deinem fhem mit Benutzer und Passwort anmelden musst - das ist sowohl bei telnet als auch bei wget wichtig.
Titel: Antw:Steuerung eines Macs mit OS X
Beitrag von: Jens_B am 12 Mai 2014, 13:23:23
Naja du schickst das Kommando vom Mac doch per Telnet über den Port 7072 auf deine Fritz box wo fhem läuft. Ganz einfach eigentlich. Das Kommando setzt du einfach ans Ende deines scriptes was auf dem
Mac läuft.


Gesendet von meinem iPhone mit Tapatalk
Titel: Antw:Steuerung eines Macs mit OS X
Beitrag von: mschulte63 am 12 Mai 2014, 13:24:21
OK. War genau der richtige Weg mit dem User-Account
War aber schon selber dahinter gekommen, da ich erst einmal den Zugang per Telnet getestet habe.

Ich möchte aber auf der Fritz!Box den Telnet Zugang auf dem Port nicht ohne Passwort lassen.
Wie bekomme ich denn das Passwort in die perl-Anfrage an fhem ?

Im übrigen habe ich schon verstanden, was hinter den Befehlen perl und wget , wenn ein anderer Rechner angegeben wird, steckt.
Titel: Antw:Steuerung eines Macs mit OS X
Beitrag von: chris1284 am 12 Mai 2014, 13:31:03
du brauchst eigentlich kein perl oder die fhem.pl auf dme mac. ich gebe fhem ganz ohne perl/fhem.pl auf dem pc befehle: einfach eine telnetverbindung zur fritte/dem fhemserver öffnen, befehl absetzen, verbindung schließen.
Titel: Antw:Steuerung eines Macs mit OS X
Beitrag von: Jens_B am 12 Mai 2014, 14:03:57
Zitat von: mschulte63 am 12 Mai 2014, 13:24:21
OK. War genau der richtige Weg mit dem User-Account
War aber schon selber dahinter gekommen, da ich erst einmal den Zugang per Telnet getestet habe.

Ich möchte aber auf der Fritz!Box den Telnet Zugang auf dem Port nicht ohne Passwort lassen.
Wie bekomme ich denn das Passwort in die perl-Anfrage an fhem ?

Im übrigen habe ich schon verstanden, was hinter den Befehlen perl und wget , wenn ein anderer Rechner angegeben wird, steckt.

Die passwortabfrage könntest Du über "expect" abfangen und mit ins script einbauen.
So in etwas vielleicht (ich habe selber nicht probiert)
#!/usr/bin/expect
spawn telnet fhemip
expect "'^]'." sleep .1;
send "\r";
sleep .1;
expect   "login:"
send "$user\r"
expect "Password:"
send "$password\r";
interact

Gruß
Jens
Titel: Antw:Steuerung eines Macs mit OS X
Beitrag von: mschulte63 am 12 Mai 2014, 23:24:52
Vielen Dank für die Tipps.

Das Thema mit dem Passwort ist nicht ganz so wichtig, da ich von extern eh nicht per telent auf den Router gehe und dann ist es auch nicht so tragisch.

Viele Grüße

Michael