RTSP Stream via Raspberry

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
Benutzeravatar
Merdan
User
Beiträge: 3
Registriert: Dienstag 4. Dezember 2018, 14:23

Kurzer Stand von mir und das darauffolgende Problem:
ich möchte 4 Kamera-Stream's via rtsp auf meinem raspberry anzeigen lassen, und zwar soll der raspberry mit einem Monitor bei mir im Gang stehen und mir die Kameras der Garage anzeigen. Die Kameras sollen aber nur aufploppen wenn die Garagentür grad offen ist(Messung per Magnetkontakt) und 30 Sekunden danach weiter anzeigen, wenn die Garagentür zu ist soll ein schwarzes Bild wiedergegeben werden, so als wäre der Monitor aus.
Ich habe es bisher soweit geschafft (da Python & raspberries neuland für mich sind) das der Kamera-Stream über den raspberry läuft und ich hänge grad dabei die Relais mit dem Magnetkontakt meiner Garage zu verbinden, welche ich auf NC stellen werde und dann beim öffnen des Kontaktes das Programm laufen soll, dass die Kameras bei mir aufm Monitor angezeigt werden.
Ich habe es versucht über einen Beitrag zu lösen nur komm ich da nicht mehr mit (https://indibit.de/raspberry-pi-gpio-au ... nge-lesen/).
Ich hab den ersten Code der im Beitrag steht hinzugefügt und gestartet, da kam aber nur die Fehlermeldung:
File "gpio_eingang.py", line 3
i = i +1enzähler erhöhen(i)be im Terminal erzeugen
^
IndentationError: unexpected indent

Meine Hauptanleitungen sind von folgenden Seiten:
https://indibit.de/raspberry-pi-gpio-au ... nge-lesen/
https://community.ubnt.com/t5/UniFi-Vid ... -p/1536448
Benutzeravatar
Merdan
User
Beiträge: 3
Registriert: Dienstag 4. Dezember 2018, 14:23

Ich hab jetzt nicht gefunden wie ich diesen Beitrag editieren kann, daher:

Den Code den ich versuche auszuführen sieht so aus
#!/usr/bin/env python
#coding: utf8

import time
import RPi.GPIO as GPIO

# Zählweise der Pins festlegen
GPIO.setmode(GPIO.BOARD)

# Pin 22 (GPIO 25) als Ausgang festlegen
GPIO.setup(22, GPIO.OUT)

# Ausgang 3 mal ein-/ausschalten
i = 3
while i > 0:
# Ausgang einschalten
GPIO.output(22, GPIO.HIGH)
# zwei Sekunden warten
time.sleep(2)
# Ausgang ausschalten
GPIO.output(22, GPIO.LOW)
# zwei Sekunden warten
time.sleep(2)

# Zähler für die Schleife herunter zählen
i = i - 1

# Ausgänge wieder freigeben
GPIO.cleanup()
und ich führe den code mit python gpio_eingang.py aus. Dann kommen aber entweder die Fehlermeldung mit
"File "gpio_eingang.py", line 3
i = i +1enzähler erhöhen(i)be im Terminal erzeugen
^
IndentationError: unexpected indent"

oder

"File "gpio_eingang.py", line 4
import time
^
IndentationError: unexpected indent"

Was ich eben versuche zu erreichen ist, ein Programm, welches die Daten der gpio_eingang.py nimmt und überprüft ob "1" (no) oder "0" (nc) ist und bei "1" soll es ein weiteres programm ausführen, in welcher der Monitor die Kameras anzeigen soll und bei "0" ein schwarzes bild angezeigt wird. Wenn "1" ausgeführt ist und wieder auf "0" fällt soll "1" noch 30s weiterlaufen und dann erst auf "0" switchen.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du musst schon wenigstens die absoluten Python-Grundlagen beherrschen, wenn du darin programmieren willst. Einrueckungen sind fuer Python wichtig. Sie definieren, was zu einem Block gehoert, der wiederum zu einem anderen Statement gehoert. So wie du das geschrieben hast, wie soll Python denn wissen, dass dein rumgezaehle in der while-Schleife passieren soll, aber das cleanup natuerlich nur einmal am Ende? Kann es doch nicht erraten.

Also musst du die Anweisungen, die Teil der while-Schleife sind, einruecken.
Benutzeravatar
Merdan
User
Beiträge: 3
Registriert: Dienstag 4. Dezember 2018, 14:23

Werde mir heut Abend eine 4h Grundlagen Video zu Python anschauen damit ich's besser verstehe :)
Aber der Code ist an den gewissen Stellen eingerückt, das sieht man wohl nicht, weil es als Zitat geschrieben ist.
Was genau müsste ich hier an Infos stellen um eine nützliche Antwort zu erhalten?
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Meine Antwort war nuetzlich ...

Du benutzt quote-Tags. Das ist nicht das richtige Mittel, benutz *code*-tags, dann werden auch die Einrueckungen hier erhalten.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Wobei man vielleicht noch anmerken sollte, das die Einrückung wenn man sich den Beitragstext im Zitat anschaut, korrekt aussieht. Die Fehlermeldungen passen wegen der Zeilennummern auch nicht zum Quelltext
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten