Die Boxen nach Stromausfall in den Deep StandBy versetzen

Antworten
Benutzeravatar
DboxOldie
Co-Admin
Co-Admin
Beiträge: 5125
Registriert: Sa 6. Aug 2011, 15:21
Hat sich bedankt: 48 Mal
Danksagung erhalten: 157 Mal

Die Boxen nach Stromausfall in den Deep StandBy versetzen

#1

Beitrag von DboxOldie » Di 5. Sep 2017, 17:34

Vorweg:
Bei den Modellen ufs912/13 ist das möglich und bei den Spark Modellen.
Vielleicht auch bei ufs922 und ufc960 denn die benutzen auch den micom FP.
Ich habe aber diese Modelle nicht und z.Zt. ist die Funktion dafür im fp_control Code deaktiviert.
Bei allen anderen Boxen benutzt der fp_control eine pseudo Funktion : getWakeupReasonPseudo
oder es wird vom FP Treiber kein 'Einschalt Grund' geliefert.
Durchaus möglich das es auch da gehen könnte......

Nun liefert die Abfrage fp_control -w bei der ufs913 dieses :
- Bei Box per Kippschalter / oder Strom ein nach Ausfall :

Code: Alles auswählen

fp_control: SW Version 1.04
Model: ufs913
vBoxType: 10
Selected Model: Kathrein UFS912 frontpanel control utility
init
configs: DISPLAY = 1, DISPLAYCUSTOM = 1, CUSTOM =     %H:%M:%S    
, WAKEUPDECREMENT 300
waiting on wakeupmode from fp ...
Success reading wakeupmode from fp
reason = 0xc4
Wakeup reason = 4 (powerswitch)
- Bei Start aus deep StandBy per Fernbedienung :

Code: Alles auswählen

fp_control: SW Version 1.04
Model: ufs913
vBoxType: 10
Selected Model: Kathrein UFS912 frontpanel control utility
init
configs: DISPLAY = 1, DISPLAYCUSTOM = 1, CUSTOM =     %H:%M:%S    
, WAKEUPDECREMENT 300
waiting on wakeupmode from fp ...
Success reading wakeupmode from fp
reason = 0xc1
Wakeup reason = 1 (poweron)
- Bei Start aus deep StandBy per Frontknopf :

Code: Alles auswählen

fp_control: SW Version 1.04
Model: ufs913
vBoxType: 10
Selected Model: Kathrein UFS912 frontpanel control utility
init
configs: DISPLAY = 1, DISPLAYCUSTOM = 1, CUSTOM =     %H:%M:%S    
, WAKEUPDECREMENT 300
waiting on wakeupmode from fp ...
Success reading wakeupmode from fp
reason = 0xc2
Wakeup reason = 2 (standby)
- Bei Timerstart aus deep StandBy :

Code: Alles auswählen

fp_control: SW Version 1.04
Model: ufs913
vBoxType: 10
Selected Model: Kathrein UFS912 frontpanel control utility
init
configs: DISPLAY = 1, DISPLAYCUSTOM = 1, CUSTOM =     %H:%M:%S    
, WAKEUPDECREMENT 300
waiting on wakeupmode from fp ...
Success reading wakeupmode from fp
reason = 0xc3
Wakeup reason = 3 (timer)
Bei der ufs912 kommt das Gleiche, bis auf 'Model'

Bei den Spark Modellen gibt es nur 1,2 und 3 als 'Wakeup reason', das kürze ich mal etwas ab:

Code: Alles auswählen

reason = 0x1
Wakeup reason = 1 (poweron)

reason = 0x2
Wakeup reason = 2 (standby)

reason = 0x3
Wakeup reason = 3 (timer)
Da bedeutet 1 (poweron) Start per Kippschalter oder nach Stromausfall
Die 2 (standby) kommt bei Start per Fernbedienung oder Frontknopf aus deep StandBy
Die 3 (timer) kommt bei Timerstart.

Nun kann man mit ein paar Zeilen in der rcS das nutzen zum Abfragen:
Als kleine Funktion für ufs912/13 oder spark7162 geeignet, die den Status prüft und die Box per init 0 ausschaltet.

Code: Alles auswählen

do_check_wakeup()
{
	GO_DEEP=0
	fp_control -w > /dev/null 2>&1
	rtv=$?
	if [ "$MODEL" == "ufs913" -o "$MODEL" == "ufs912" ];then
		if [ $rtv == 4 ];then
			GO_DEEP=1
			echo "Go to Deep..." > /dev/vfd
		fi
	elif [ "$MODEL" == "spark7162" ];then 
		if [ $rtv == 1 ];then
			GO_DEEP=1
			echo "GO DEEP" > /dev/vfd
		fi
	fi
	if [ $GO_DEEP == 1 ];then
		echo "Going to deep standby...."
		sleep 1
		init 0
		sleep 5
	fi
}
( Nebenbei : MODEL lese ich in der rcS aus : /proc/stb/info/model aus. )

Theorethisch wäre es ja möglich wenn man die Funktion direkt nach dem Laden des VFD Treibers aufruft, aber...
- Nachteil ist das bei eventuell vorhandenen Timern der nächste nicht in den FP abgespeichert wird.
- Und wenn man bei ufs912/13 einen anderen RC-Code nutzt als 1 :
durch Start nach stromlos steht der ja default auf 1, erst wenn evremote2 lädt, wird der auf den gespeicherten Code geändert.

Daher rufe ich die Funktion erst kurz vor dem Neutrino Start auf:

Code: Alles auswählen

	([ -e /var/etc/.enable_go_deep -a "$MODEL" != "ufs910" ] && (sleep 40;do_check_wakeup)) &
Als Bedingung muss in /var/etc das Token : .enable_go_deep vorhanden sein, und es darf nicht die ufs910 sein.
Dann wird nach 40 Sekunden die Prüfung ausgeführt. ( Start der obigen Funktion )
Die 40 Sekunden sollten für Neutrino ausreichen, das es eine gültige Systemzeit gibt und ein Timer speichern erfolg hat.

Noch eine Bemerkung:
Der Aufruf von fp_control -w speichert auch in : /proc/stb/fp/was_timer_wakeup eine 1 wenn der Startgrund 'timer' war.
Wird aber soweit ich weis nicht weiter genutzt, da das anders erledigt wird.
MfG DboxOldie

KEIN SUPPORT PER PN > Bitte das Forum benutzen und ins Wiki schauen

Bild

Antworten

Zurück zu „Allgemeines/Anleitungen/FAQ“