Jump to content

Timer neu erstellen und Timer ID


x112

Recommended Posts

Ich versuche mich gerade bei meinem ersten Script mit der API und frage mich was der Unterschied zwischen den diversen Timer ID's ist. Welche nimmt man beim Timer löschen?

 

Beispiel aus Timerlist API:

<Timer Type="1" ID="{258A264B-AEB0-44F2-B789-B8CF4FB88B19}" Enabled="-1" ShutDown="3" Charset="255" Date="09.11.2020" Start="18:20:00" Dur="55" End="19:15:00" PreEPG="15" PostEPG="15" IntID="8781" Priority="50" Action="0" EPGEventID="1365873760">
<Descr>SpongeBob Schwammkopf - (Staffel 9, Folge 25) Hausdurchsuchung / Salsa Sch</Descr>
<Options AdjustPAT="-1"/>
<Format>2</Format>
<Folder>Auto</Folder>
<NameScheme>%year-%date_%time_%name</NameScheme>
<Series>SpongeBob Schwammkopf</Series>
<Source>Search:SpongeBob Schwammkopf</Source>
<Channel ID="3431744810709462090|nick/MTV+ HD" EPGID="720900360762928202"/>
<Executeable>-1</Executeable>
<Recording>0</Recording>
<ID>8781</ID>
<GUID>{258A264B-AEB0-44F2-B789-B8CF4FB88B19}</GUID>
</Timer>
 
Aktuell verwendet mein Script zum Timer refreshen die numerische ID und das scheint zu funktionieren.
 

# alle aktiven Timer für $target löschen und neu erzeugen

$target="SpongeBob"

# holt alle Timer in XML Struktur mit Windows Codepage
[XML]$timers = (New-Object System.Net.WebClient).DownloadString("http://videoserver-2:8089/api/timerlist.html?utf8=2&EnabledOnly=1")
foreach ($timer in $timers.Timers.Timer) {
    if ($timer.Descr.Contains($target) -and $timer.Recording -eq 0) {
    $id=$timer.ID[1]
    $ret=Invoke-WebRequest "http://videoserver-2:8089/api/timerdelete.html?id=$id"
    }
}
# Timer neu erzeugen
$ret=Invoke-WebRequest "http://videoserver-2:8089/api/tasks.html?task=AutoTimer"

Link to comment
1 hour ago, x112 said:

ID="{258A264B-AEB0-44F2-B789-B8CF4FB88B19}"

 

Wozu diese GUID gut sein soll, hat sich mir bisher nicht erschlossen. Der DMS verwendet sie intern überhaupt nicht. Sie ist nur noch aus (vermuteten) Kompatibilitätsgründen mit dabei. Beim Hinzufügen eines neuen Timers wird dieser 128-Bit-Wert durch einen Zufallsgenerator erzeugt und ist im Universum mit hoher Wahrscheinlichkeit einmalig.

 

1 hour ago, x112 said:

IntID="8781"

 

Diese ist verwaltungstechnisch im DMS maßgeblich und über einen sehr langen Zeitraum eindeutig (der Wert erhöht sich mit jedem neuen Timer um 1 bis 21.474.836.481, bevor er wieder bei 0 anfängt). Den aktuell als nächsten zu verwendenden Wert findet man in der svctimers.xml als NextID. Falls jemand die svctimers.xml löscht oder sie sonstwie verloren geht, fängt NextID zwar wieder bei 0 an, aber der DMS stellt auf jeden Fall durch Vergleich mit allen anderen existierenden Timern sicher, dass keine zwei Timer die gleiche IntID (Integer ID) erhalten.

 

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...