Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
IRMP auf STM32 - wakeup timer
#1
Moinsen!

Ich bin grad seit einiger Zeit dabei diesen Empfänger/ Einschalter/ Wakeuptimer unter Easyvdr 3.0/ 3.5 zum Laufen zu kriegen:

https://www.vdr-portal.de/forum/index.ph...keup-timer


Der Empfänger und der Einschalter funktionieren mittlerweile wunderbar, woran ich gerade verzweifle ist den Timer Wakeup automatisch in Easyvdr einzustellen, diesbezüglich scheint es keine Standardkonfiguration zu geben, oder?

Manuell lässt sich die Wakeup Zeit mit stm32IRalarm -d /dev/input/ir-auto-dtc -s "irgendeine Zahl in Sekunden" wunderbar einstellen und der STM32 weckt die Kiste zu genau der Zeit auf, woran ich gerade verzweifle:

Wie und wo genau teile ich in Easyvdr 3.5 beim herunterfahren mit das er die nächste Timerzeit -300 Sekunden in den STM32 schreibt?

Die /etc/vdr/shutdown-hooks/10_shutdown.custom have ich bereits gefüttert mit 

Code:
SHUTDOWNCMD="/usr/bin/stm32IRalarm -d /dev/input/ir-auto_dtc -s ($2 - 300)"

Beim manuellen Testen des Befehls jedoch schreibt er mir die Zeit nicht rein. 

Meine Frage: werden diese Variablen bei Easyvdr vom vdr überhaupt übermittelt:

Code:
$1 : Next timer seconds from 1970 from 1970/01/01, UTC
$2 : Next timer seconds from now
$3 : Next timer title
$4 : Shutdown forced

und wie und wo übergebe ich diese korrekt dem STM32 beim Herunterfahren?

Vielen Dank und schöne Feiertage!

Lieben Gruß,
gitano
Zitieren
#2
Hi,

dito. Problem ist, dass folgende Ausgabe nach dem Befehl auf der Konsole ausgegeben wird:

Zitat:bash: Syntaxfehler beim unerwarteten Wort »(«


Gruß

Obelix
Zitieren
#3
Hi
Zitat:bash: Syntaxfehler beim unerwarteten Wort »(«
Da es ja eine Berechnung werden soll, würde ich die Zeile..
Zitat:SHUTDOWNCMD="/usr/bin/stm32IRalarm -d /dev/input/ir-auto_dtc -s ($2 - 300)"
..mal so versuchen..
Zitat:SHUTDOWNCMD="/usr/bin/stm32IRalarm -d /dev/input/ir-auto_dtc -s $(($2 - 300))"

Ich kenne jedoch das Skript nicht, daher müsste ich selbst erst schauen, wo der Wert von $2 gesetzt wird.

Gruß Aaron


Gesendet von meinem S7Edge mit Tapatalk
Mediacenter
easyVDR3.5(4.x.x 64-Bit) Gigabyte, Ltd. H97-HD3 mit Intel® G3260 @ 3.30GHz 4GB DDRx,Intelgrafik,MATSHITA BD-MLT UJ265 Bluray LW, 2TB Festplatte,LCD+IRTrans-Empfänger,2x SkystarS2 PCI

Zitieren
#4
Hallo Aaron,

die Variante hatte ich im Eifer des Gefechts auch schon probiert. Hat nicht funktioniert. stm32IRalarm ist kein Script.

https://github.com/j1rie/IRMP_STM32/tree...larm/Linux

Die Info mit dem Aufruf ist vom Entwickler jrie selbst:

https://www.vdr-portal.de/forum/index.ph...ost1299535

Zitat:Du brauchst also für z.B. 5 Minuten früher als nächster Aufnahmebeginn folgendes im Script:

  1. [/url]/Pfad/stm32IRalarm -d /dev/hidraw0 -s ($2 - 300)

Siehe auch die [url=https://github.com/j1rie/IRMP_STM32/blob/master/stm32IRalarm/Linux/README]README
.
Wenn du wie empfohlen die udev-Regel drin hast, ist das "-d /dev/hidraw0" nicht nötig.
Das mit der udev-Regel sollte man auch angehen aber da werde ich einen separaten Thread aufmachen. 
Gruß
Zitieren
#5
Uuups, da sehe ich ja ein $. ;)  Ich teste das gerade mal.
Zitieren
#6
Hi Obelix

(02.02.2018, 07:51)obelix schrieb: Uuups, da sehe ich ja ein $. Wink  Ich teste das gerade mal.
Jap Doppelklammer für Berechnung, $ für variable bzw Ergebnis in Klammern ausgeben.

Gruß Aaron

Gesendet von meinem S7Edge mit Tapatalk
Mediacenter
easyVDR3.5(4.x.x 64-Bit) Gigabyte, Ltd. H97-HD3 mit Intel® G3260 @ 3.30GHz 4GB DDRx,Intelgrafik,MATSHITA BD-MLT UJ265 Bluray LW, 2TB Festplatte,LCD+IRTrans-Empfänger,2x SkystarS2 PCI

Zitieren
#7
(02.02.2018, 07:55)gb schrieb: Hi Obelix

(02.02.2018, 07:51)obelix schrieb: Uuups, da sehe ich ja ein $. Wink  Ich teste das gerade mal.
Jap Doppelklammer für Berechnung, $ für variable bzw Ergebnis in Klammern ausgeben.

Gruß Aaron

Gesendet von meinem S7Edge mit Tapatalk

Es gibt nun keinen Syntaxfehler mehr aber er wacht nicht auf.
Zitieren
#8
Hi Obelix
(02.02.2018, 08:06)obelix schrieb: Es gibt nun keinen Syntaxfehler mehr aber er wacht nicht auf.
Ok, dann müsste man schauen wie zB der Wert $2 aussieht.

Ich schaue mal heute Nachmittag..

Gruß Aaron

Gesendet von meinem S7Edge mit Tapatalk
Mediacenter
easyVDR3.5(4.x.x 64-Bit) Gigabyte, Ltd. H97-HD3 mit Intel® G3260 @ 3.30GHz 4GB DDRx,Intelgrafik,MATSHITA BD-MLT UJ265 Bluray LW, 2TB Festplatte,LCD+IRTrans-Empfänger,2x SkystarS2 PCI

Zitieren
#9
Hi Obelix,
mal eine Frage zwischendurch, wie kommst du auf folgende Zeile "-d /dev/input/ir-auto_dtc"

Gruß Aaron
Mediacenter
easyVDR3.5(4.x.x 64-Bit) Gigabyte, Ltd. H97-HD3 mit Intel® G3260 @ 3.30GHz 4GB DDRx,Intelgrafik,MATSHITA BD-MLT UJ265 Bluray LW, 2TB Festplatte,LCD+IRTrans-Empfänger,2x SkystarS2 PCI

Zitieren
#10
Hat sich erledigt, siehe..
(25.02.2013, 19:40)Captain_Beefheart schrieb: hallo

eigentlich wird alles passend angelegt wenn
Du den Empfänger auswählst.

da wird ´ne udev rule gebaut, die ein /dev/input/ir-auto_dtc
erzeugt

eine passende hardware.conf gebaut usw.

bei mir unmd vielen anderen klappts ootb
Kommt also von uns durch die Rule.

Dann werd ich mal den stm32 am zweit System installieren..


Gruß Aaron
Mediacenter
easyVDR3.5(4.x.x 64-Bit) Gigabyte, Ltd. H97-HD3 mit Intel® G3260 @ 3.30GHz 4GB DDRx,Intelgrafik,MATSHITA BD-MLT UJ265 Bluray LW, 2TB Festplatte,LCD+IRTrans-Empfänger,2x SkystarS2 PCI

Zitieren
#11
Ich hätte da eine Vermutung, bräuchte jedoch von dir die 10_shutdown.costum

Gruß Aaron
Mediacenter
easyVDR3.5(4.x.x 64-Bit) Gigabyte, Ltd. H97-HD3 mit Intel® G3260 @ 3.30GHz 4GB DDRx,Intelgrafik,MATSHITA BD-MLT UJ265 Bluray LW, 2TB Festplatte,LCD+IRTrans-Empfänger,2x SkystarS2 PCI

Zitieren
#12
Hi Aaron.
(02.02.2018, 17:09)gb schrieb: Hat sich erledigt, siehe..
(25.02.2013, 19:40)Captain_Beefheart schrieb: hallo

 eigentlich wird alles passend angelegt wenn
 Du den Empfänger auswählst.

  da wird ´ne udev rule gebaut, die ein /dev/input/ir-auto_dtc
   erzeugt

 eine passende hardware.conf gebaut usw.

    bei mir unmd vielen anderen klappts ootb
Kommt also von uns durch die Rule.

Dann werd ich mal den stm32 am zweit System installieren..


Gruß Aaron

Fast. Die udev-rule funktioniert aber mit der udev-rule von 80-irmp.rules, wird ein symb. Link /dev/irmp_stm32 angelegt. Mit dem spart man sich dann die Option -d. 

Zitat von jrie:
Zitat:Siehe auch die README.

Wenn du wie empfohlen die udev-Regel drin hast, ist das "-d /dev/hidraw0" nicht nötig.

Im Endeffekt ist es egal. Ich habe die udev-rule 80-irmp.rules zusätzlich drin und

(02.02.2018, 17:58)gb schrieb: Ich hätte da eine Vermutung, bräuchte jedoch von dir die 10_shutdown.costum

Gruß Aaron

meine 10_shutdown.costum sieht so aus:

Code:
SHUTDOWNCMD="/usr/bin/stm32IRalarm -s $(($2 - 300))"

Gruß
Obelix
Zitieren
#13
Achja, auch mit $2 alleine funktioniert es nicht. Das hatte ich bereits getestet.
Zitieren
#14
Moin, ich sortiere mal ein wenig.

Also $1 und $2 übergeben definitiv in der shutdown_hooks bei gesetzten Timer etwas.
Beispiel:
Habe ein Timer in ca 10h gesetzt und $1 oder $2 geben mir dann folgenden Wert aus "36220"

Jetzt wäre Martin gefragt, wie kann ich zB den internen Timer vom stm32 auslesen?
Der Befehl SHUTDOWNCMD="/usr/bin/stm32IRalarm -d /dev/input/ir-auto_dtc -s $(($2 - 300))" in der hooks arbeitet ja anstandslos, leider wird mein stm32 nie aufwachen, da mein Mainboard vom zweit System im aus Zustand keine Power liefert.

Gruß Aaron
Mediacenter
easyVDR3.5(4.x.x 64-Bit) Gigabyte, Ltd. H97-HD3 mit Intel® G3260 @ 3.30GHz 4GB DDRx,Intelgrafik,MATSHITA BD-MLT UJ265 Bluray LW, 2TB Festplatte,LCD+IRTrans-Empfänger,2x SkystarS2 PCI

Zitieren
#15
Moin Aaron,
(03.02.2018, 09:56)gb schrieb: Moin, ich sortiere mal ein wenig.

Also $1 und $2 übergeben definitiv in der shutdown_hooks bei gesetzten Timer etwas.
Beispiel:
Habe ein Timer in ca 10h gesetzt und $1 oder $2 geben mir dann folgenden Wert aus "36220"

Jetzt wäre Martin gefragt, wie kann ich zB den internen Timer vom stm32 auslesen?
Der Befehl SHUTDOWNCMD="/usr/bin/stm32IRalarm -d /dev/input/ir-auto_dtc -s $(($2 - 300))" in der hooks arbeitet ja anstandslos, leider wird mein stm32 nie aufwachen, da mein Mainboard vom zweit System im aus Zustand keine Power liefert.

Gruß Aaron

leider unterstützt nicht jedes Board +5V Standby am USB. Im VDR Portal hatte ich bereits über Möglichkeiten (Schottky Diode) diskutiert. Es gibt einen einfachen Workaround für das +5V Standby Problem. Ich zitiere meinen Beitrag von dort:

Zitat:Der ST-Link wird doch in der Regel intern über ein Mainboard-USB-Pfostenstecker-Adapter (USB Pinheader Buchse) angeschlossen. Wenn man nun an dem Pfostenstecker den +5V Pin herausnimmt (was ja möglich ist) und diesen über eine selbstrückstellende Sicherung an den +5V Standby vom ATX Netzteil anschließt, wäre man doch gekämmt und gebügelt. Oder sehe ich da was falsch?

Ich hatte zwar aktuell keinen Fall wo ich das gebraucht hätte aber ich habe es an meinem Test VDR mal getestet. Läuft tadellos. 

Gruß
Obelix
Zitieren
#16
(03.02.2018, 10:06)obelix schrieb: Wo kommt denn die Uhrzeit vom nächsten Timer her? 

Das ist leicht erklärt, die Variablen $1 & $2 werden von VDR gefüttert, da /etc/vdr/shutdown-hooks/10_shutdown.costum ein Kindskript von VDR ist, werden die Variablen bis dahin übergeben.

Füge mal folgende Zeilen in der 10_shutdown.costum ein

Code:
echo "----" > /var/lib/vdr/shutdown_hook.log
echo "Wert1:"$1"Wert2:"$2"Wert3:"$3 >> /var/lib/vdr/shutdown_hook.log
Dann setze ein Timer und fahre den VDR runter, danach neu starten und log/var/lib/vdr/shutdown_hook.log anschauen
Mediacenter
easyVDR3.5(4.x.x 64-Bit) Gigabyte, Ltd. H97-HD3 mit Intel® G3260 @ 3.30GHz 4GB DDRx,Intelgrafik,MATSHITA BD-MLT UJ265 Bluray LW, 2TB Festplatte,LCD+IRTrans-Empfänger,2x SkystarS2 PCI

Zitieren
#17
(03.02.2018, 10:14)gb schrieb:
(03.02.2018, 10:06)obelix schrieb: Wo kommt denn die Uhrzeit vom nächsten Timer her? 

Das ist leicht erklärt, die Variablen $1 & $2 werden von VDR gefüttert, da /etc/vdr/shutdown-hooks/10_shutdown.costum ein Kindskript von VDR ist, werden die Variablen bis dahin übergeben.

Füge mal folgende Zeilen in der 10_shutdown.costum ein

Code:
echo "----" > /var/lib/vdr/shutdown_hook.log
echo "Wert1:"$1"Wert2:"$2"Wert3:"$3 >> /var/lib/vdr/shutdown_hook.log
Dann setze ein Timer und fahre den VDR runter, danach neu starten und log/var/lib/vdr/shutdown_hook.log anschauen

Cool, danke für die Erklärung.
Zitieren
#18
(03.02.2018, 09:56)gb schrieb: Jetzt wäre Martin gefragt, wie kann ich zB den internen Timer vom stm32 auslesen?
Also beim ST-Link ist das 
Code:
/usr/bin/stm32IRalarm -a
Zitieren
#19
(03.02.2018, 10:24)obelix schrieb:
Code:
/usr/bin/stm32IRalarm -a
gut, dann sieh hier:

Zitat:root@easyVDR:/home/easyvdr# /usr/bin/stm32IRalarm -d /dev/input/ir-auto_dtc -s 1000
root@easyVDR:/home/easyvdr# /usr/bin/stm32IRalarm -a -d /dev/input/ir-auto_dtc          STM32alarm: 0 days 0 hours 16 minutes 37 seconds
        VDRwakeup: Sat Feb  3 09:43:36 2018

Dann muß man jetzt schauen, was durch den VDR übergeben wird..

Gruß Aaron
Mediacenter
easyVDR3.5(4.x.x 64-Bit) Gigabyte, Ltd. H97-HD3 mit Intel® G3260 @ 3.30GHz 4GB DDRx,Intelgrafik,MATSHITA BD-MLT UJ265 Bluray LW, 2TB Festplatte,LCD+IRTrans-Empfänger,2x SkystarS2 PCI

Zitieren
#20
So, bei mir wird jetzt ein Timer gesetzt:
Zitat:root@easyVDR:/home/easyvdr# /usr/bin/stm32IRalarm -a -d /dev/input/ir-auto_dtc
        STM32alarm: 0 days 9 hours 3 minutes 39 seconds
        VDRwakeup: Sat Feb  3 18:38:00 2018

Inhalt der /etc/vdr/shutdown-hooks/10_shutdown.costum
Code:
#
# Custom VDR Shutdown Hook
# -------------------------
#
# Here you can place any commands, you want to be executed when VDR wants
# to shutdown.
#
# * To abort the shutdown, exit with an errorlevel <> 0.
#
# * If you want a message to be displayed on the OSD when aborting a shutdown,
#   then write to stdout:
#
#   ABORT_MESSAGE=<message to display>
#
# * If you want to defer the shutdown, write to stdout:
#
#   TRY_AGAIN=<minutes to wait before next shutdown request>
#
# * To overwrite the command that will be executed to shutdown the machine
#   after all shutdown hooks have been processed, write to stdout:
#
#   SHUTDOWNCMD=<new shutdown command>
#
# i.e.:
#
# echo "ABORT_MESSAGE=\"I do not want to shutdown now!\"" ; exit 1
#

SHUTDOWNCMD=sudo /usr/bin/stm32IRalarm -d /dev/input/ir-auto_dtc -s $(($2 - 300)) && sleep 1; exit 0

Probiere es mal aus und berichte Wink

Grüße Aaron
Mediacenter
easyVDR3.5(4.x.x 64-Bit) Gigabyte, Ltd. H97-HD3 mit Intel® G3260 @ 3.30GHz 4GB DDRx,Intelgrafik,MATSHITA BD-MLT UJ265 Bluray LW, 2TB Festplatte,LCD+IRTrans-Empfänger,2x SkystarS2 PCI

Zitieren
#21
Hi obelix

PS: Sollte es bei dir tun, kannst du ja gitano & dem Entwickler im vdr-portal mal im Beitrag einen kleinen Wink geben, wie es in easyVDR funktioniert.

Gruß Aaron
Mediacenter
easyVDR3.5(4.x.x 64-Bit) Gigabyte, Ltd. H97-HD3 mit Intel® G3260 @ 3.30GHz 4GB DDRx,Intelgrafik,MATSHITA BD-MLT UJ265 Bluray LW, 2TB Festplatte,LCD+IRTrans-Empfänger,2x SkystarS2 PCI

Zitieren
#22
Hi Aaron,

mache ich. Konnte allerdings die neue Variante noch nicht testen. Ich bin gerade aufm Sprung. Komme erst morgen dazu.

Melde mich.

Gruß
Obelix
Zitieren
#23
Hallo Aaron,

ich weiß nicht warum aber es funktioniert bei mir nicht. Der Wert lässt sich auslesen:

Code:
----
Wert1:1517745600Wert2:2673Wert3:1
Da ich die udev-rule 80-irmp.rules nutze, kann der vdr User auch darauf zugreifen. Rechte Problem ist es nicht. 

Gruß
Obelix
Zitieren
#24
Hallo obelix

(04.02.2018, 14:18)obelix schrieb: ich weiß nicht warum aber es funktioniert bei mir nicht. Der Wert lässt sich auslesen:

Code:
----
Wert1:1517745600Wert2:2673Wert3:1
Da ich die udev-rule 80-irmp.rules nutze, kann der vdr User auch darauf zugreifen. Rechte Problem ist es nicht. 
Ich hab's ja easyvdr konform ausprobiert, keine Pfadangaben umgemodelt oder Rules verändert.

Hast du die costum 1 zu 1 übernommen oder etwas angepasst?

Gruß Aaron


Gesendet von meinem S7Edge mit Tapatalk
Mediacenter
easyVDR3.5(4.x.x 64-Bit) Gigabyte, Ltd. H97-HD3 mit Intel® G3260 @ 3.30GHz 4GB DDRx,Intelgrafik,MATSHITA BD-MLT UJ265 Bluray LW, 2TB Festplatte,LCD+IRTrans-Empfänger,2x SkystarS2 PCI

Zitieren
#25
Ich habe es nun auch so gemacht wie du es gesagt hast. Funktioniert nicht. Wenn ich

Code:
SHUTDOWNCMD=sudo /usr/bin/stm32IRalarm -d /dev/input/ir-auto_dtc -s 100

mache, dann geht er nach 100 Sekunden an.
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste