[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