briter54 Posted April 27, 2020 Share Posted April 27, 2020 Hallo, gibt es eine Möglichkeit, beispielsweise über IFTTT, vor einer bevorstehenden Timer-Aufnahme automatisch eine Steckdose zu schalten, so dass der PC dann rechtzeitig hochfährt? Ich bin sowohl bei SmartHome, wie auch bei DVBViewer in den Anfängen, deshalb entschuldigt bitte mein Unwissen... Das mit dem Hochfahren klappt jedenfalls, wenn man im BIOS einstellt, dass der PC nach Stromausfall standardmäßig wieder hochfahren soll. Gruß Boris Quote Link to comment
briter54 Posted April 27, 2020 Author Share Posted April 27, 2020 Im Prinzip müsste der DVBViewer bzw. Media Server dafür entsprechende Einträge in einem Cloud-Kalender vornehmen, dann müsste das über IFTTT zu machen sein. Quote Link to comment
nuts Posted April 27, 2020 Share Posted April 27, 2020 Unterstützung für Smarthome System xy ist wenn dann eine Community Aufgabe. Die entsprechenden Schnittstellen im DVBViewer / Media Server wären vorhanden. Direkt kann eine Windows Software meines Wissens nicht so ohne Weiteres Bios-Timer setzen um den Kaltstart auszulösen. Quote Link to comment
HaraldL Posted April 27, 2020 Share Posted April 27, 2020 vor 29 Minuten schrieb nuts: Direkt kann eine Windows Software meines Wissens nicht so ohne Weiteres Bios-Timer setzen um den Kaltstart auszulösen. Würde auch nichts bringen wenn, wie im ersten Post beschrieben, vor dem PC eine schaltbare Steckdosenleiste ist die aus ist. Die kann sich das BIOS selber nicht einschalten. @Boris Riter die übliche und tatsächlich aktuell funktionierende Methode ist, als Aktion nach Timeraufnahme im DMS den "Ruhemodus" zu wählen (Tray-Symbol - Server konfigurieren - Aufnahmen - Aufnahme-Timer - Abschließende Aktion. Der PC geht dann nach Aufnahme in den Ruhezustand, schaltet sich praktisch komplett ab (sofern nicht eine weitere Aufnahme läuft oder in Kürze startet). Rechtzeitig vor der nächsten Aufnahme schaltet er sich wieder ein ("Windows wird fortgesetzt ..."), ohne externen Kalender o.ä. weil der DMS den nächsten Einschaltzeitpunkt mitgibt. Der PC muß dazu aber permanent am Stromnetz sein, Steckdose davor abschalten verhindert das. In der oben genannten "Abschließenden Aktion" gibt es auch "Herunterfahren", danach kann der PC aber nicht mehr selber neu starten für die nächste Aufgabe, das ist was nuts mit "Kaltstart" meinte. Und "Energie sparen" schaltet nicht alle Komponenten des PCs ab, da läuft also noch einiges weiter. Quote Link to comment
briter54 Posted April 27, 2020 Author Share Posted April 27, 2020 (edited) Vielen Dank für eure Antworten. Über den Ruhezustand will ich das nicht machen, da der PC dann auch ganz schön Strom saugt. Bei mir ca. 40 Watt. Ich habe gerade noch mal überlegt. Das lässt sich doch viel einfacher realisieren als ich dachte. Vorausgesetzt, dass ich die Startzeit für die nächste Aufnahme aus DVBViewer / DMS extrahieren kann. Dann bräuchte ich nur noch über den Windows Taskplaner "on shutdown" zu veranlassen, dass ein Befehl für IFTTT zum Einschalten der Steckdose zum nächsten Aufnahmezeitpunkt an mein SmartHome generiert und gesendet wird. Das müsste funktionieren. Bräuchte aber Hilfe mit der API. Ich habe das letzte mal vor 32 (!) Jahren in C programmiert ? EDIT: Also, ich würde das sowieso nur scripten, über Batch oder AHK. Was ich bräuchte, ist eine Textdatei mit der Aufnahmezeit. Edited April 27, 2020 by Boris Riter Quote Link to comment
nuts Posted April 27, 2020 Share Posted April 27, 2020 40W im Ruhezustand kann eigentlich kaum sein. Das müsste ein Konfigurationsfehler, d.h. der PC befindet sich z.B. gar nicht im Ruhezustand oder ein Hardwaredefekt sein? Wie auch immer, die API um die benötigten Informationen zu bekommen findest du hier: http://en.dvbviewer.tv/wiki/Recording_Service_web_API Quote Link to comment
briter54 Posted April 27, 2020 Author Share Posted April 27, 2020 Vielen Dank für den Link. Ich denke, das werde ich hinbekommen mit der API. Ich schau mir das die nächsten Tage mal genauer an. Quote Link to comment
Griga Posted April 27, 2020 Share Posted April 27, 2020 Ergänzende aktualisierte Informationen zum API gibt es in diesem Änderungsverlauf. Quote Link to comment
YARD2 Posted April 28, 2020 Share Posted April 28, 2020 Wenn du aus dem S5 starten willst, hilft meine HW s.u. Quote Link to comment
briter54 Posted April 28, 2020 Author Share Posted April 28, 2020 @yard2 Vielen Dank für den Tipp. Aber das mit der Steckdose funktioniert auch super. Eine Taste auf dem Handy drücken und der PC fährt hoch... sogar aus G3 (mechanical off) Quote Link to comment
briter54 Posted April 28, 2020 Author Share Posted April 28, 2020 Hallo, ich habe es tatsächlich zum Laufen bekommen, mit meinen bescheidenen Kenntnissen. Also, falls jemand Interesse hat, einfach melden. Gruß Boris Quote Link to comment
briter54 Posted April 29, 2020 Author Share Posted April 29, 2020 (edited) Da mein kleines Script auch Grundlage für andere Ideen in Zusammenhang mit DVBV sein könnte, stelle ich das hier mal zur allgemeinen Verfügung. Bitte nicht zu sehr lästern, ich bin nun mal nur Amateur ? Spoiler #SingleInstance Force SetBatchLines, -1 SendMode, Input ;##################Vorbereitung######################## ;Bios so einstellen, dass es nach Stromausfall wieder automatisch startet ;Autohotkey installieren ;In IFTTT drei Trigger erstellen: ;IF= Event im Google Kalender gefunden mit Betreff "DMS_Aufnahme" ;THEN= Steckdose einschalten über das SmartHome System ;Entsprechend die Steckdose über "DMS_Shutdown" wieder ausschalten lassen ;Noch einen Trigger erstellen "Email to Google Calendar Event" ;DMS Opionen auf Shutdown nach Aufnahme einstellen ;Dieses Script immer beim Shutdown ausführen (Windows Taskplaner) ;#####################Email Setup####################### ;am Besten eine Zweitadresse, da das PW unverschlüsselt gesendet wird (glaube ich) fromaddress = "@gmail.com" toaddress = "trigger@applet.ifttt.com" bccaddress = "" CCaddress = "" Subject = "#cal" body = %bodyt% attachment = "" smtpserver = "smtp.gmail.com" credentials = "@gmail.com", "Passwort" ;############################################################## DownloadToString(url, encoding="utf-8") { static a := "AutoHotkey/" A_AhkVersion if (!DllCall("LoadLibrary", "str", "wininet") || !(h := DllCall("wininet\InternetOpen", "str", a, "uint", 1, "ptr", 0, "ptr", 0, "uint", 0, "ptr"))) return 0 c := s := 0, o := "" if (f := DllCall("wininet\InternetOpenUrl", "ptr", h, "str", url, "ptr", 0, "uint", 0, "uint", 0x80000000, "ptr", 0, "ptr")) { while (DllCall("wininet\InternetQueryDataAvailable", "ptr", f, "uint*", s, "uint", 0, "ptr", 0) && s>0) { VarSetCapacity(b, s, 0) DllCall("wininet\InternetReadFile", "ptr", f, "ptr", &b, "uint", s, "uint*", r) o .= StrGet(&b, r>>(encoding="utf-16"||encoding="cp1200"), encoding) } DllCall("wininet\InternetCloseHandle", "ptr", f) } DllCall("wininet\InternetCloseHandle", "ptr", h) return o } ;############ Timer auslesen ############# DMSAPI:=DownloadToString("http://localhost:8089//api/status2.html") Pos1:=InStr(DMSAPI, "<nexttimer>") Pos2:=Instr(DMSAPI, "/nexttimer>") Pos1:=Pos1+11 Len:=Pos2-Pos1-1 NextTimer:=SubStr(DMSAPI, Pos1 , Len) ;############# Zeitpunkt für Einschalten der Steckdose errechnen ########## NewTime := A_Now EnvAdd, NewTime, +NextTimer, seconds FormatTime,NewTime2,%NewTime%, 'Time:' hh:mm, 'Date:' yy/MM/dd bodyt = % """" . NewTime2 . " DMS_Aufnahme""" ;############## Email an IFTTT Trigger schicken ################ ;Der Trigger erstellt einen Eintrag "DMS_Aufnahme" im Google Kalender FileDelete, email.ps1 FileAppend, $message = new-object System.Net.Mail.MailMessage`n, email.ps1 FileAppend, $message.From = %fromaddress%`n, email.ps1 FileAppend, $message.To.Add(%toaddress%)`n, email.ps1 FileAppend, $message.CC.Add(%CCaddress%)`n, email.ps1 FileAppend, $message.Bcc.Add(%bccaddress%)`n, email.ps1 FileAppend, $message.IsBodyHtml = $False`n, email.ps1 FileAppend, $message.Subject = %Subject%`n, email.ps1 FileAppend, $attach = new-object Net.Mail.Attachment(%attachment%)`n, email.ps1 FileAppend, $message.Attachments.Add($attach)`n, email.ps1 FileAppend, $message.body = %body%`n, email.ps1 FileAppend, $smtp = new-object Net.Mail.SmtpClient(%smtpserver%`, 587)`n, email.ps1 FileAppend, $smtp.EnableSsl = $True`n, email.ps1 FileAppend, $smtp.credentials = New-Object System.Net.NetworkCredential(%credentials%)`n, email.ps1 FileAppend, $smtp.Send($message)`n, email.ps1 run, powershell.exe -ExecutionPolicy Bypass -File email.ps1 Sleep, 1000 FileDelete, email.ps1 ;############# Steckdose in 5 min. ausschalten ################## NewTime := A_Now EnvAdd, NewTime, 300, seconds ;Verzögerung eventuell anpassen FormatTime,NewTime2,%NewTime%, 'Time:' hh:mm, 'Date:' yy/MM/dd bodyt = % """" . NewTime2 . " DMS_Shutdown""" ;############## Email an IFTTT Trigger schicken ################ ;Der Trigger erstellt einen Eintrag "DMS_Shutdown" im Google Kalender ;##################### Neuer Body Text für Email ####################### body = %bodyt% ;####################################################################### FileAppend, $message = new-object System.Net.Mail.MailMessage`n, email.ps1 FileAppend, $message.From = %fromaddress%`n, email.ps1 FileAppend, $message.To.Add(%toaddress%)`n, email.ps1 FileAppend, $message.CC.Add(%CCaddress%)`n, email.ps1 FileAppend, $message.Bcc.Add(%bccaddress%)`n, email.ps1 FileAppend, $message.IsBodyHtml = $False`n, email.ps1 FileAppend, $message.Subject = %Subject%`n, email.ps1 FileAppend, $attach = new-object Net.Mail.Attachment(%attachment%)`n, email.ps1 FileAppend, $message.Attachments.Add($attach)`n, email.ps1 FileAppend, $message.body = %body%`n, email.ps1 FileAppend, $smtp = new-object Net.Mail.SmtpClient(%smtpserver%`, 587)`n, email.ps1 FileAppend, $smtp.EnableSsl = $True`n, email.ps1 FileAppend, $smtp.credentials = New-Object System.Net.NetworkCredential(%credentials%)`n, email.ps1 FileAppend, $smtp.Send($message)`n, email.ps1 run, powershell.exe -ExecutionPolicy Bypass -File email.ps1 Sleep, 1000 FileDelete, email.ps1 Edited April 29, 2020 by Griga Spoiler Tags ergänzt Quote Link to comment
briter54 Posted April 30, 2020 Author Share Posted April 30, 2020 Weiß vielleicht jemand, welchen Wert NextTimer hat, falls keine Aufnahme programmiert wurde? Quote Link to comment
Griga Posted April 30, 2020 Share Posted April 30, 2020 <nexttimer>-1</nexttimer> Quote Link to comment
briter54 Posted April 30, 2020 Author Share Posted April 30, 2020 Vielen Dank, hatte ich erwartet. Werde das dann noch umsetzen in das Script. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.