FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Berndd am 13 Dezember 2015, 22:17:39

Titel: Per ssh Befehle/Signale an FHEM schicken
Beitrag von: Berndd am 13 Dezember 2015, 22:17:39
Hallo,
möchte mit einem Raspberry (Pi2) mit PiNoir Kamera einen Befehl bei FHEM auf einem anderen Raspberry (Pi1) auslösen, z.B. das Schalten einer Steckdose. Besser wäre noch das erzeugen eines Signals, das man Aktoren auslösen lassen kann. 

Es ist mir gelungen, von der Kamera ausgelöst, eine Steckdose schalten, allerdings direkt über das Betriebssystem (wiringpi): ssh pi@192.168.178.59 " /usr/local/bin/send 00001 3 1". Somit ändert sich in FHEM der Status der Steckdose nicht ... FHEM bemerkts nicht.

Wie kann ich das als Befehl für FHEM realisieren? Ich bin bisher bei
ssh pi@<IP FHEM Server Pi1> perl /opt/fhem/fhem.pl 7072  "set Steckdose3 off"

gelandet

und bekomme folgende Fehlermeldung
Usage: set <name> <type-dependent-options>
where <name> is a single device name, a list separated by komma (,) or a regexp. See the devspec section in the commandref.html for details.

Unknown command Steckdose3, try help.
Unknown command off, try help.


Ich bin also schon mal zu FHEM durchgetunnelt

In der Befehlsreferenz sind am Anfang zwei weitere Befehlsbeispiele angegeben, die ich genauso erfolglos übertragen habe, hier mit Fehlermeldungen:

{fhem("set lamp off")}-->
Zitatssh pi@<IP FHEM Server Pi1> {fhem  ("set Steckdose3 off")}
bash: Syntaxfehler beim unerwarteten Wort `('

"fhem.pl 7072 "set lamp off"" -->
Zitatssh pi@<IP FHEM Server Pi1> "perl /opt/fhem/fhem.pl 7072  "set Steckdose3 off""
Usage: set <name> <type-dependent-options>
where <name> is a single device name, a list separated by komma (,) or a regexp. See the devspec section in the commandref.html for details.
Unknown command Steckdose3, try help.
Unknown command off, try help.

Offensichtlich funktioniert der Zugang, aber es wird z.B. "set Steckdose3 off" als drei Befehle angesehen.

Ich denke es fehlt nicht mehr all zu viel ... aber was?
   
Gurten Abend,
Bernd
Titel: Antw:Per ssh Befehle/Signale an FHEM schicken
Beitrag von: viegener am 14 Dezember 2015, 00:52:09
Das Problem ist, dass über die ssh-Verbindung die Anführungsstriche um Deinen Befehl entfernt werden und dann sind es 3 Befehle.
Die anderen Beispiele funktionieren nicht in einer unix shell sondern innerhalb von fhem.

Vorschlag: Du könntest probieren das Kommando nicht nur in Anführunsstriche sondern auch in "Quotes" zu setzen also z.B. so

ssh pi@<IP FHEM Server Pi1> perl /opt/fhem/fhem.pl 7072  "'set Steckdose3 off'"
Titel: Antw:Per ssh Befehle/Signale an FHEM schicken
Beitrag von: Berndd am 14 Dezember 2015, 01:18:25
HURRAAAA ;D ;D!
Es hat geklappt. Ich denke Dir, viegener.

Was zwei solche Strichelchen doch ausmachen,
Bernd
Titel: Antw:Per ssh Befehle/Signale an FHEM schicken
Beitrag von: viegener am 14 Dezember 2015, 01:47:44
Na das ging doch recht einfach ;D
Titel: Per ssh Befehle/Signale an FHEM-Server schicken gelöst :-) (motioneye zu FHEM)
Beitrag von: Berndd am 14 Dezember 2015, 01:55:34
Hallo, falls es eine(n) interessiert, so ist es mir geliúngen, von einem Rechner im gleichen Netzwerk (motion detection camera: Raspberry+motion+motioneye) einen Befehl  auf den FHEM-Server auszugeben:
ssh <FHEM-user> @<FHEMServer IP> perl /opt/fhem/fhem.pl 7072  "'<FHEM command>'"
Anmerkungen:
The FHEM command has to be between apostrophs and quotes
The FHEMServer must be accessible by the root of the motioneye-server via ssh without password input (./ssh/id-rsa handling!)

Gute Nacht ,
Bernd   

P.S. Thanks to viegener and Frank
Titel: Per ssh Befehle/Signale an FHEM-Server schicken gelöst :-) (motioneye zu FHEM)
Beitrag von: Berndd am 14 Dezember 2015, 01:56:48
Hallo, falls es eine(n) interessiert, so ist es mir geliúngen, von einem Rechner im gleichen Netzwerk (motion detection camera: Raspberry+motion+motioneye) einen Befehl  auf den FHEM-Server auszugeben:
ssh <FHEM-user> @<FHEMServer IP> perl /opt/fhem/fhem.pl 7072  "'<FHEM command>'"
Anmerkungen:
The FHEM command has to be between apostrophs and quotes
The FHEMServer must be accessible by the root of the motioneye-server via ssh without password input (./ssh/id-rsa handling!)

Gute Nacht ,
Bernd   

P.S. Thanks to viegener and Frank