[GELÖST] Wie detektierte Bewegung von Motuion Eye an fhem leiten

Begonnen von Invers, 08 Juli 2018, 17:23:42

Vorheriges Thema - Nächstes Thema

Invers

Leider habe ich keine passendere Rubrik im Forum gefunden. Sorry.

Ich möchte mit motioneye os eine Raspi-Cam nutzen, die bei Bewegung ein Signal an FHEM schickt.
Motioneye unterstützt bei Bewegung folgendes:
1.   Send An Email – Das möchte ich nicht.
2.   Call A Web Hook   - Get, POST Query, POST form, POST query
3.   Run A Command
Ist jemand so nett, mir eine Befehlszeile oder ein Kommando zu nennen, um FHEM die Bewegung mitzuteilen? Ich würde damit ein Dummy schalten wollen.
Ich hatte versucht, folgende Zeile, die jedoch nicht funktioniert, mit Option 3 (Run A Command) zu nutzen:

echo "set Lampe_Korridor on" | telnet fhem 7072

Besten Dank im Voraus.

Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Otto123

#1
Hi,

du hast remote ja mindestens zwei Sicherheitshürden. allow und csrftoken.

Falls es das gleiche Subnetz ist sollte es so wie hier gehen:
https://wiki.fhem.de/wiki/CsrfToken-HowTo

Beispiel
curl --data "fwcsrf=$(curl -s -D - 'http://Deinhost:8083/fhem?XHR=1' | awk '/X-FHEM-csrfToken/{print $2}')" http://Deinhost:8083/fhem?cmd=set%20Lampe_Korridor%20on

Pack das ganze am Besten in eine Script Datei und dann für Run A command:
bash /Pfad/Script.sh

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Invers

Besten Dank.
Ich versuch mich da mal durchzupfriemeln.
Ich habe gerade mit festem Token probiert, das geht nicht.
http://192.168.178.44:8083/fhem?cmd=set%20Lampe_Korridor%20on-for-timer%203&fwcsrf=asdfjklö
Mal sehen, ob ich andere Varianten hinbekomme.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Otto123

Du solltest nicht als erstes um die Verwaltung des Tokens kümmern sondern erstmal darum, dass Du den Befehl unter motioneye überhaupt so absetzen kannst :)
Lass doch den Token so wie er ist :)
Ich habe gerade noch einen "Komfortvariante" ins Wiki gebaut.

Die Zeile von unten von deinem motioneye aus, aus der Konsole abgesetzt hat nicht funktioniert?

Es kann durchaus sein, dass dort was an Systemkommandos fehlt ...
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

helmut

Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

Otto123

Rudis Lösung im Link ist lokal und nicht remote :) oder verstehe ich da was nicht?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

helmut

Das ist richtig, aber den lokalen Befehl kannst Du doch leicht in ssh einpacken.
Gruss Helmut.
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

Otto123

naja, "leicht" ist im Auge des Benutzers relativ :)

Und ob ich wegen einer Meldung den kompletten Zugriff über ssh einrichten würde.

Aber wie es so ist mit Rom - das ist von allen Seiten erreichbar :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

helmut

Zitat von: Otto123 am 08 Juli 2018, 19:14:13
naja, "leicht" ist im Auge des Benutzers relativ :)

Hallo Otto,

das ist natuerlich richtig, aber curl, awk usw. sind auch nicht gerade leichte Kost.

Zitat von: Otto123 am 08 Juli 2018, 19:14:13
Und ob ich wegen einer Meldung den kompletten Zugriff über ssh einrichten würde.
Erstens kannst Du den einschraenken und zweitens kommunizieren doch die meisten hier ueber ssh mit
ihrem Rechner auf dem fhem laeuft - oder irre ich da?

Zitat von: Otto123 am 08 Juli 2018, 19:14:13
Aber wie es so ist mit Rom - das ist von allen Seiten erreichbar :)
Da hast Du nun wieder recht ;-)

Gruss Helmut
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

Invers

#9
Die Lösung mit festem Token musste ich wieder verwerfen, weil Alexa damit keinen Zugriff mehr hat. Die ZHeiole im Browser hatte funktioniert, aus dem Programm heraus jedoch nicht:
http://192.168.178.44:8083/fhem?cmd=set%20Lampe_Korridor%20on-for-timer%203&fwcsrf=asdfjklö

Ihr antwortet ja schneller, als ich denken kann. :-)

Ich probiere alles durch und melde mich. Danke.

Edit:
Diese Zeile:

curl --data "fwcsrf=$(curl -s -D - 'http://192.168.178.44:8083/fhem?XHR=1' | awk '/X-FHEM-csrfToken/{print $2}')" http://192.168.178.44:8083/fhem?cmd=set%20Lampe_Korridor%20on

funktioniert von meinem Radio-Pi aus, aber vom Motion Eye Pi leider nicht.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Otto123

kannst Du das etwas genau sagen
Zitatfunktioniert von meinem Radio-Pi aus, aber vom Motion Eye Pi leider nicht.
Gibt es Fehlermeldungen? Fehlt da curl oder awk?

Ich habe hier noch die neue Variante, wo Du nur am Anfang einmal den Host:Port und den Befehl, so wie er normal ist, eingibst:
h='192.168.178.44:8083'; c='set Lampe_Korridor on'; curl --data "fwcsrf=$(curl -s -D - http://$h/fhem?XHR=1 | awk '/X-FHEM-csrfToken/{print $2}')" http://$h/fhem?cmd=$(echo $c|sed 's/ /%20/g')

Wenn das auf dem motioneye schwierig ist zum nachinstallieren geht natürlich Helmuts Ansatz. Richte ssh vom motioneye aus ein und mach es darüber.


Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Invers

#11
Das funktioniert vom anderen Pi aus. Aber aus dem Programm heraus leider nicht. Ich kann auch nicht sagen, was da genau installiert ist, weil das irgendwie ja ein eigenes Betriebssystem zu sein scheint. Heisst ja auch motion eye os.
Ich fürchte fast, ich werde hier nicht weiterkommen. Vielleicht muss ich beim dortigen Programmierer nachfragen.
Schade, weil es eigentlich sehr gut funktioniert. Wenn es sich aber nicht auswerten lässt, ist es für meine Zwecke nicht zu gebrauchen.
Danke an alle. Waren coole Tipps. Aber das Teil ist echt bockig.

So, geht leider alles nicht, weil:

-------------------------------
Can I install <some package>?

No, you cannot. motionEyeOS is not a general purpose Linux distribution, but rather a camera firmware. Moreover, its system partition is read-only and should not be modified.

Your best option is to use motionEye on top of a general purpose Linux distro, on which you'll probably be able to install your favorite packages.

If you really want your package to be part of motionEyeOS and you have the required skills, you could build motionEyeOS from source, after adding your package to the BuildRoot configuration.
-------------------------------



Ich werde also wechseln und dann die Zeile

h='192.168.178.44:8083'; c='set Lampe_Korridor on'; curl --data "fwcsrf=$(curl -s -D - http://$h/fhem?XHR=1 | awk '/X-FHEM-csrfToken/{print $2}')" http://$h/fhem?cmd=$(echo $c|sed 's/ /%20/g')

nutzen.

Vielen Dank nochmals an alle, die geholfen haben, besonders an Otto.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Otto123

Aber Helmuts Ansatz würde wohl gehen:
https://github.com/ccrisan/motioneyeos/wiki/SSH-Client-On-motionEyeOS

Eventuell ginge auch der Web Hook - aber wie?

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Invers

Jetzt bekomme ich alle Befehle, die hier vorgeschlagen wurden, vom Cam-Pi abgearbeitet. Aber aus dem Motioneye geht nichts.
@Otto:
Ich fürchte, dass ich dem letzten Tipp mangels fehlender Englischkenntnisse nicht folgen kann, aber ich werde versuchen, mich durchzukämpfen.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Otto123

#14
Moin,

naja das mit dem ssh einrichten ist ansich nicht so schwierig. Ich kann Dir die Schritte übersetzen. Die Konfiguration von MotioneyeOs ist dabei etwas speziell, aber das sollte gehen.

Der Pfad /data/etc ist nämlich beschreibbar, ansonsten ist motioneyeOs read only
Die Befehle nimmst Du bis auf 4. aus dem Link so wie sie sind :)
Du loggst Dich lokal oder per ssh auf dem MotionEyeOs ein.

1. Erzeuge einen ssh Key Pärchen für das OS, beantworte alle Fragen einfach mit einem enter. Besonders die  passphrase muss leer bleiben.
2. Sag dem ssh Client wo seine private Key ist. Es wird einfach ein Konfigfile erzeugt.
3. Sag dem ssh Client wo er die known_hosts speichern soll.
Jetzt wird es spannend
4. Du musst den Public Key von MotionEyeOs zu Dir bekommen, also eigentlich
cat /data/etc/ssh_id_rsa.pub | ssh pi@deinfhemhost 'cat >>.ssh/authorized_keys'
Dabei fragt er Dich nach dem Passwort und ob er deinen Host in die Liste known_hosts speichern soll.
5. Abschließend testen ob die Verbindung ohne Abfrage Passwort funktioniert.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

helmut

Hallo Otto,

toll, dass Du diesen Artikel auf GitHub gefunden hast. Und mein "leicht in ssh einpacken" nehme ich, wie es so schoen heisst, mit dem
Ausdruck des groessten Bedauern zurueck ;-)

Aber Dein Code wird so nicht funktionieren. Wenn das motioneyeOs kein scp bietet, geht es prinzipiell auch so, aber mein Benutzer pi hat
von Haus aus kein .ssh Verzeichnis. Das musst Du also unter Umstaenden erst anlegen und ausserdem fehlt das "ssh"
cat /data/etc/ssh_id_rsa.pub | ssh pi@deinfhemhost 'cat >>.ssh/authorized_keys'
Gruss Helmut
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

Otto123

#16
Hallo Helmut,

danke fürs aufpassen. Hab meinen Post editiert :)
Der GitHub Artikel hat genau an der Stelle eine "Lücke" - und da wird es dann für den Anfänger wieder gaaanz schwierig.
Wenn man dann aus dem Kopf einfach was hinschreibt vergisst man Dinge.
Und mit dieser Zeile wollte ich nicht gleich "erschlagen" :)
Edit: der Code war fehlerhaft, hier ersetzt durch die korrigierte und unter Linux getestete Version:
cat /data/etc/ssh_id_rsa.pub | ssh pi@deinfhemhost "akey='.ssh/authorized_keys'; okey='keee.tmp'; cat | tr -d '\r' >\$okey; umask 077; test -d .ssh || mkdir .ssh; test -f \$akey || cat \$okey >\$akey; grep -q \"\$(cat \$okey)\" \$akey  || cat \$okey >>\$akey;rm \$okey"

Naja und wie es so schön heisst mit den vielen Wegen, man kann es sicher noch ganz anders machen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Invers

Hi Otto, vielen Dank für deine Mühe.
Ich hatte gfestern bis 2 Uhr nachts noch rum laboriert mit Übersetzer usw.
Bin auch ziemlich weit gekommen, bis an die Stelle, wo die Datei mit dem Key hätte eingebunden werden müssen. Dann ist allerdings irgendwann meine Cam verschwunden und konnte von MotionEyeOS auch nicht mehr gefunden werden. Da habe ich dann abgebrochen und bin ins Bett gegangen.
Habe nun neu aufgesetzt und werde deine Schritte befolgen. Ich werde dann berichten.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Invers

#18
Bin schneller gescheitert, als ich dachte. Was kann hier passiert sein?


[root@PiCam ~]# ssh-keygen -f /data/etc/ssh_id_rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /data/etc/ssh_id_rsa.
Your public key has been saved in /data/etc/ssh_id_rsa.pub.
The key fingerprint is:
SHA256:XYJi+g3lP5IyhPnGMzAIgFMDCxRDgQmIZ5u+OixeDzM root@PiCam
The key's randomart image is:
+---[RSA 2048]----+
|&X=              |
|X.+.     .       |
|o+ o  o o . .    |
| .o. = + . o     |
| .. * o S .      |
|  .  B o o       |
|.  E  X + o      |
|o.o =. = . .     |
|++   .           |
+----[SHA256]-----+
[root@PiCam ~]# echo "IdentityFile /data/etc/ssh_id_rsa" >> /data/etc/ssh_config
[root@PiCam ~]#  echo "UserKnownHostsFile /data/etc/ssh_known_hosts" >> /data/etc/ssh_config
[root@PiCam ~]# cat /data/etc/ssh_id_rsa.pub | ssh pi@deinfhemhost 'cat >>.ssh/authorized_keys'
ssh: Could not resolve hostname deinfhemhost: Name or service not known
[root@PiCam ~]# cat /data/etc/ssh_id_rsa.pub | ssh pi@192.168.178.44 'cat >>.ssh/authorized_keys'
Could not create directory '/root/.ssh'.
[b]The authenticity of host '192.168.178.44 (192.168.178.44)' can't be established.[/b]
ECDSA key fingerprint is SHA256:F3w40gkprQ3ngeQhtiIkrrcLVJkzsOECD8ZNXQIIfds.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.178.44' (ECDSA) to the list of known hosts.
pi@192.168.178.44's password:
bash: .ssh/authorized_keys: Datei oder Verzeichnis nicht gefunden
[root@PiCam ~]#




EDIT:
Hatte vorher die lange Zeile probiert, ging auch nicht (Syntaxfehler)


[root@PiCam ~]# cat /data/etc/ssh_id_rsa.pub | ssh pi@192.168.178.44 "akey='.ssh/authorized_keys'; okey='keee.tmp'; cat >$okey; umask 077; test -d .ssh || mkdir .ssh; test -f $akey || cat $okey >$akey; grep -q ""$(cat $okey)"" $akey  || cat $okey >>$akey;rm $okey"
Could not create directory '/root/.ssh'.
pi@192.168.178.44's password:
bash: -c: Zeile 0: Syntaxfehler beim unerwarteten Wort `;'
bash: -c: Zeile 0: `akey='.ssh/authorized_keys'; okey='keee.tmp'; cat >; umask 077; test -d .ssh || mkdir .ssh; test -f  || cat  >; grep -q ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGw9ds0icvLWbpD3zTFPLK2zeTdIXp/8qTTj5DPQhZNXWhJhce9UxVlk0oOvoFvaiSREqP0uUGbECdxSu61ywAhNSGR7cwBbeaPMP2Kd1MnUjZ4oPHoVqndYNq6XwErh+c0C3RbG40rk13ufreAZlywoGn116+I7GKDFYtX0S4Ct141+Ooh7wBBARfho5FQwuZwHpHIC2iM4BxglT+KiNx53juLOqgH67VqA28ONXP1Wv7db3TAPkDYfrnoUyVCQxzg0I/YABJ284MDcpb6p2rLpACJI/w7Qp2Pztt3Wm/clbRfzTCnf/usHQ8H1ifJ1dMeMXEE/FMS8txxJ/mnRiV root@PiCam   || cat  >>;rm '
[root@PiCam ~]#
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

helmut

Zitat von: Invers am 09 Juli 2018, 17:00:50
bash: .ssh/authorized_keys: Datei oder Verzeichnis nicht gefunden
Zitat von: helmut am 09 Juli 2018, 10:52:46... aber mein Benutzer pi hat von Haus aus kein .ssh Verzeichnis. Das musst Du also unter Umstaenden erst anlegen

Das sieht doch schon sehr gut aus. Lege das Verzeichnis an
[root@PiCam ~]# ssh pi@192.168.178.44 'umask 077; mkdir .ssh'

und wiederhole
[root@PiCam ~]# cat /data/etc/ssh_id_rsa.pub | ssh pi@192.168.178.44 'cat >>.ssh/authorized_keys'

Gruss Helmut
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

Invers

Ah ja. Danke. Nach meinem sehr bescheidenen Verständnis sollte es jetzt geklappt haben. Bitte bestätige mal, falls ich richtig liege.

[root@PiCam ~]#  ssh pi@192.168.178.44 ls -l
Could not create directory '/root/.ssh'.
insgesamt 512012
-rwxrwxrwx 1 pi   pi        4096 Dez 23  2017 configDB.db
drwxr-xr-x 7 pi   pi        4096 Jan 26 00:01 gcalcli
-rw-r--r-- 1 root root 524288000 Apr 13 15:25 Test
[root@PiCam ~]#
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

helmut

Dateien mit einem Punkt am Anfang werden nur mit Flag -a angezeigt, also "ls -la", oder in diesem Fall besser "ls -l .ssh".

Gruss Helmut
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

Invers

Die Zeile zum Test
ssh pi@192.168.178.44 ls -l
wurde vom Programmierer von MotionEyeOS so angegeben. Ich habe nur die Ausgabe gepostet.

Leider war bisher wohl alle Mühe von euch umsonst, da das Programm MotionEye nichts von den Befehlen bei Bewegung weiterleitet. Es passiert nichts. Ich sehe aber, dass die Bewegung registriert wird, da dann der Rahmen um das Bild rot wird.
Leider kann ich mich mit dem Programmierer nicht verständigen, da ich englisch nicht beherrsche. Sonst könnte ich fragen, warum das nicht geht. >Ich werde versuchen, ob die automatische Übersetzung ausreicht.

Falls keiner mehr Ideen hat, danke ich allen sehr für die ausführliche Hilfe. Hab wieder ne Menge gelernt und auch fast alles verstanden.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

helmut

#23
Zitat von: Invers am 09 Juli 2018, 18:59:51
Leider war bisher wohl alle Mühe von euch umsonst, da das Programm MotionEye nichts von den Befehlen bei Bewegung weiterleitet.

Bist Du da sicher? Was hast Du denn bei "3.   Run A Command" angegeben?
Zunaechst wuerde ich es von der Kommandozeile des MotionEye versuchen, in etwa so:
ssh pi@192.168.178.44 'perl /opt/fhem/fhem.pl 7072 "set Lampe_Korridor on"'

Gruss Helmut

Edit: Das mit dem "ls -l" war schon O.K, damit sollte ja nur die Funktion des Einloggens mit dem ssh-Key geprueft werden.
Intelligenz ist die Fähigkeit, Arbeit zu vermeiden, aber dafür zu sorgen, daß die Arbeit gemacht wird.
(Linus Torvalds)

Invers

Natürlich bin ich nicht sicher, dazu bin ich auf diesem Gebiet viel zu doof. :-)

Du bist der King! Funktioniert!!!
ssh pi@192.168.178.44 'perl /opt/fhem/fhem.pl 7072 "set Lampe_Korridor on"'

Ich hatte alle hiesigen Vorschläge ausprobiert, die ja auch zum grossen Teil funktionierten, wenn sie von einem Pi abgesetzt wurden. Aber halt leider nicht, wenn das Motion-Proggi das gemacht hat.
Dein Code funktioniert 100prozentig.

Damit kann ich das Problem als gelöst kennzeichnen, jedoch nicht, ohne nochmals an allen klugen und fleissigen Helfer meinen Dank auszusprechen.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

sash.sc

#25
Zitat von: Invers am 09 Juli 2018, 20:44:05

Du bist der King! Funktioniert!!!
ssh pi@192.168.178.44 'perl /opt/fhem/fhem.pl 7072 "set Lampe_Korridor on"'


Heisst also, dass ich das nur unter "run a command" in der UI von MotionEyeOS eintragen brauche ?!?!?!?!?!?!?

Oder muss ich in FHEm noch was vorher eintragen/freischalten etc. ???

Gruß
Sascha
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Invers

Richtig. Tage ein:
ssh pi@192.168.178.44 'perl /opt/fhem/fhem.pl 7072 "set DU_CamBewegung on"'
und es läufct.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Otto123

Zitat von: Invers am 09 Juli 2018, 17:00:50
EDIT:
Hatte vorher die lange Zeile probiert, ging auch nicht (Syntaxfehler)


[root@PiCam ~]# cat /data/etc/ssh_id_rsa.pub | ssh pi@192.168.178.44 "akey='.ssh/authorized_keys'; okey='keee.tmp'; cat >$okey; umask 077; test -d .ssh || mkdir .ssh; test -f $akey || cat $okey >$akey; grep -q ""$(cat $okey)"" $akey  || cat $okey >>$akey;rm $okey"
Could not create directory '/root/.ssh'.
pi@192.168.178.44's password:
bash: -c: Zeile 0: Syntaxfehler beim unerwarteten Wort `;'
bash: -c: Zeile 0: `akey='.ssh/authorized_keys'; okey='keee.tmp'; cat >; umask 077; test -d .ssh || mkdir .ssh; test -f  || cat  >; grep -q ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGw9ds0icvLWbpD3zTFPLK2zeTdIXp/8qTTj5DPQhZNXWhJhce9UxVlk0oOvoFvaiSREqP0uUGbECdxSu61ywAhNSGR7cwBbeaPMP2Kd1MnUjZ4oPHoVqndYNq6XwErh+c0C3RbG40rk13ufreAZlywoGn116+I7GKDFYtX0S4Ct141+Ooh7wBBARfho5FQwuZwHpHIC2iM4BxglT+KiNx53juLOqgH67VqA28ONXP1Wv7db3TAPkDYfrnoUyVCQxzg0I/YABJ284MDcpb6p2rLpACJI/w7Qp2Pztt3Wm/clbRfzTCnf/usHQ8H1ifJ1dMeMXEE/FMS8txxJ/mnRiV root@PiCam   || cat  >>;rm '
[root@PiCam ~]#

Sorry für den Fehler in meinem Code in Beitrag #16. Ich habe den dort korrigiert!
Ich hatte die Codezeile genommen, die unter Windows läuft. In der Linux Shell müssen die $ und " mit dem \ geschützt werden.
Generell sollte man ssh-copy-id nehmen, das ist aber eventuell nicht immer vorhanden. Wie das in motioneye ist habe ich noch nicht geprüft.

Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Invers

Naja, ist ja nun egal, da es ja bei mir läuft. Du musst dich da auch gar nicht rechtfertigen. Ich bin ja froh, dass jemand hilft. Fehler sind normal. Nur wer gar nichts macht, der macht auch nichts verkehrt.

Danke dir nochmals.
Pi3B+ mit SSD/ Bullseye | FB7590 AX | 12 x Dect200 | CUL433+868 | SDuino | HM-LAN | 3 x Heizung FHT + FKontakte | KeyMatic + 4 FB | HM Wandtaster 2-fach m. LED | 6 x Türkont. TFK-TI | HM-Bew.-Melder innen | 3 x Smoked. HM-SEC-SD-2

Otto123

Moin,

ich wollte die Sache nur abrunden, ist ja am Ende so was wie eine Anleitung geworden. Ich mag es nicht wenn da halbe Sachen "rumstehen" :)

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

sash.sc

Zitat von: Invers am 26 Juli 2018, 12:28:03
Richtig. Tage ein:
ssh pi@192.168.178.44 'perl /opt/fhem/fhem.pl 7072 "set DU_CamBewegung on"'
und es läufct.
Nur zum Verständnis.

Der User pi vor dem @ im Kommando ist der User auf dem pi wo fhem läuft?!

Gruß und danke
Sascha

Gesendet von meinem E6653 mit Tapatalk

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Otto123

Hallo Sascha,

ja.

Der erste Teil ssh pi@192.168.178.44 ist ganz "normal" ssh User@Host
Also mache eine ssh Verbindung zu dem Host und melde Dich dort als User an.
... und führe dann dort das Kommando 'perl /opt/fhem/fhem.pl 7072 "set DU_CamBewegung on"' aus.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

sash.sc

Danke.

Werde es nach dem Urlaub mal testen.

Gruß Sascha

Gesendet von meinem E6653 mit Tapatalk

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

sash.sc

#33
Hallo zusammen.

Nach langer,langer Zeit hbe ich das nun mal testen müßen.
Klappt leider nicht.
Ich habe zu Testzwecken einen Dummy angelegt, der auf on oder off gehen sollte.

Unter "run a command" habe ich folgendes eingetragen.

ssh pi@192.168.2.104 'perl /opt/fhem/fhem.pl 7072 "set cam_garten on"'

Der User pi und die IP das passt ja. Selbst im Event Monitor sehe ich nix dazu.

Gruß und Danke
Sash

P.S.: Habe den Schlüßel auf dem Pi mit motioneye os erzeugt und dann zum pi mit fhem kopiert siehe Post#15.
dann konnte ich lokal auf dem cam-pi über die console den ssh befehl zum setzten des Befehls in fhem absetzen.
Musste aber das password vom FHEM pi eingeben. Erst dann wurde der Dummy in FHEM auf on bzw off gesetzt.


Wie übergibt man das Password mit ssh ?????
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

MadMax-FHEM

Kommt eine Fehlermeldung?

Evtl. den Pfad angeben, z.B. /usr/bin/perl /opt/fhem/fhem.pl 7072 "setreading ..."

Telnet ist eingerichtet?
(ist ja bei neueren Installationen nicht mehr automatisch)

event-on-change-reading gesetzt beim dummy?

Passwortloser Zugriff geht?

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)

sash.sc

Wenn ich den Befehl

ssh pi@192.168.2.104 'perl /opt/fhem/fhem.pl 7072 "set cam_garten on"'

Auf dem pi mit der cam in der konsole eingebe, werde ich nach dem Password vom user pi vom pi mit FHEM gefragt. Erst nachdem ich das Password vom FHEM-pi eingeben habe, wird der Befehl ausgeführt un der Dummy wird gesetzt.

Ich muß als das Password mit dem ssh Befehl irgendwie mitgeben.

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Otto123

Nicht mit passwort sondern besser mit public key
Siehe dazu vielleicht meinen ziemlich alten allgemeinen Artikel
https://heinz-otto.blogspot.com/2017/01/per-ssh-remote-befehle-direkt-ausfuhren.html

Motion Eye ist ja auch bloß ein Linux Sytem?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

sash.sc

#37
Hallo Otto.

Habe die Einrichtung nochmal von deine Seite gemacht.

Einrichtung
Alle Aktionen finden im Terminal des "Lokalen Hosts" statt.

# Die Frage nach der passphrase wird zweimal mit enter quittiert, also die passphrase bleibt leer
ssh-keygen -t rsa
# passwort des remote users wird abgefragt
ssh-copy-id -i ~/.ssh/id_rsa pi@<remote-system>


Dann nach dem kopieren kam folgende Meldung

[root@meye-549541f9 ~]# ssh-copy-id -i ~/.ssh/id_rsa pi@192.168.2.104
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa                                   .pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter                                    out any that are already installed
expr: warning: '^ERROR: ': using '^' as the first character
of a basic regular expression is not portable; it is ignored
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompt                                   ed now it is to install the new keys
pi@192.168.2.104's password:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'pi@192.168.2.104'"
and check to make sure that only the key(s) you wanted were added.


Musste dann nochmal das Password vom FHEM Pi eingeben.
Danach konnte ich mich mit dem User auf dem Remote pi(FHEM) einloggen.

Seid dem werden die Befehle vom Cam Pi ohne Problem ausgeführt.

Danke !




Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Otto123

Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

sash.sc

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Otto123

hab's gesehen - unsere Antworten haben sich überschnitten  ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

sash.sc

Jetzt kann ich auch die ganze Erkennung als Event in die InfluxDB schreiben lassen und mit Grafana visualisieren !
Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb