Benachrichtigung bei XXGB verfügbarer HDD Kapazität, wie im Skin integrieren?

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Ich finde es leider nicht, die neuen Skins sind (meiner Meinung) oder einfach nur der Fluid Skin, anders aufgebaut als ich es kenne bzw. die alten. Ich bin auch wenn überhaupt nur das Bearbeiten von Skins mit Skinnern gewohnt.

      Es sollte doch hier zu finden sein, oder?:


      Quellcode

      1. <screen backgroundColor="black" flags="wfNoBorder" name="InfoBar" position="0,0" size="1920,1080" title="InfoBar" transparent="0" Animation="disable_onhide">
      2. <constant-widget name="infobarbg" />
      3. <widget render="FluidInfoBar" source="session.CurrentService" zPosition="0" backgroundColor="button_yellow" />
      4. <!-- Topbar -->
      5. <widget backgroundColor="button_yellow" font="Bold; 22" foregroundColor="white" zPosition="10" halign="right" position="1760,0" render="Label" size="90,50" source="global.CurrentTime" transparent="0" valign="center">
      6. <convert type="ClockToText">Default</convert>
      7. </widget>
      8. <widget backgroundColor="button_yellow" font="Bold;18" foregroundColor="white" noWrap="1" position="67,0" render="Label" size="420,50" source="session.CurrentService" transparent="0" valign="center" zPosition="110">
      9. <convert type="ServiceName">Name</convert>
      10. </widget>
      11. <widget source="session.CurrentService" render="Label" position="0,0" size="67,50" halign="center" valign="center" noWrap="1" backgroundColor="button_yellow" font="Bold;18" foregroundColor="white" transparent="0" zPosition="110">
      12. <convert type="ExtendedServiceInfo">ServiceNumber</convert>
      13. </widget>
      14. <widget alphatest="blend" pixmap="Fluid/images/infobar/rec.png" position="1870,12" render="Pixmap" size="32,32" source="session.RecordState" zPosition="2">
      15. <convert type="ConditionalShowHide">Blink</convert>
      16. </widget>
      17. <widget backgroundColor="un626262" position="700,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="199">
      18. <convert type="FluidBaseTunerInfo">0</convert>
      19. <convert type="ConditionalShowHide" />
      20. </widget>
      21. <widget backgroundColor="un828282" position="700,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="200">
      22. <convert type="TunerInfo">TunerUseMask</convert>
      23. <convert type="ValueBitTest">1</convert>
      24. <convert type="ConditionalShowHide" />
      25. </widget>
      26. <widget backgroundColor="accent" position="700,21" render="FixedLabel" size="28,8" source="session.FrontendInfo" transparent="0" zPosition="201">
      27. <convert type="FrontendInfo">NUMBER</convert>
      28. <convert type="ValueRange">0,0</convert>
      29. <convert type="ConditionalShowHide" />
      30. </widget>
      31. <widget backgroundColor="un626262" position="730,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="199">
      32. <convert type="FluidBaseTunerInfo">1</convert>
      33. <convert type="ConditionalShowHide" />
      34. </widget>
      35. <widget backgroundColor="un828282" position="730,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="200">
      36. <convert type="TunerInfo">TunerUseMask</convert>
      37. <convert type="ValueBitTest">2</convert>
      38. <convert type="ConditionalShowHide" />
      39. </widget>
      40. <widget backgroundColor="accent" position="730,21" render="FixedLabel" size="28,8" source="session.FrontendInfo" transparent="0" zPosition="201">
      41. <convert type="FrontendInfo">NUMBER</convert>
      42. <convert type="ValueRange">1,1</convert>
      43. <convert type="ConditionalShowHide" />
      44. </widget>
      45. <widget backgroundColor="un626262" position="760,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="199">
      46. <convert type="FluidBaseTunerInfo">2</convert>
      47. <convert type="ConditionalShowHide" />
      48. </widget>
      49. <widget backgroundColor="un828282" position="760,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="200">
      50. <convert type="TunerInfo">TunerUseMask</convert>
      51. <convert type="ValueBitTest">4</convert>
      52. <convert type="ConditionalShowHide" />
      53. </widget>
      54. <widget backgroundColor="accent" position="760,21" render="FixedLabel" size="28,8" source="session.FrontendInfo" transparent="0" zPosition="201">
      55. <convert type="FrontendInfo">NUMBER</convert>
      56. <convert type="ValueRange">2,2</convert>
      57. <convert type="ConditionalShowHide" />
      58. </widget>
      59. <widget backgroundColor="un626262" position="790,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="199">
      60. <convert type="FluidBaseTunerInfo">3</convert>
      61. <convert type="ConditionalShowHide" />
      62. </widget>
      63. <widget backgroundColor="un828282" position="790,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="200">
      64. <convert type="TunerInfo">TunerUseMask</convert>
      65. <convert type="ValueBitTest">8</convert>
      66. <convert type="ConditionalShowHide" />
      67. </widget>
      68. <widget backgroundColor="accent" position="790,21" render="FixedLabel" size="28,8" source="session.FrontendInfo" transparent="0" zPosition="201">
      69. <convert type="FrontendInfo">NUMBER</convert>
      70. <convert type="ValueRange">3,3</convert>
      71. <convert type="ConditionalShowHide" />
      72. </widget>
      73. <widget backgroundColor="un626262" position="820,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="199">
      74. <convert type="FluidBaseTunerInfo">4</convert>
      75. <convert type="ConditionalShowHide" />
      76. </widget>
      77. <widget backgroundColor="un828282" position="820,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="200">
      78. <convert type="TunerInfo">TunerUseMask</convert>
      79. <convert type="ValueBitTest">16</convert>
      80. <convert type="ConditionalShowHide" />
      81. </widget>
      82. <widget backgroundColor="accent" position="820,21" render="FixedLabel" size="28,8" source="session.FrontendInfo" transparent="0" zPosition="201">
      83. <convert type="FrontendInfo">NUMBER</convert>
      84. <convert type="ValueRange">4,4</convert>
      85. <convert type="ConditionalShowHide" />
      86. </widget>
      87. <widget backgroundColor="un626262" position="850,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="199">
      88. <convert type="FluidBaseTunerInfo">5</convert>
      89. <convert type="ConditionalShowHide" />
      90. </widget>
      91. <widget backgroundColor="un828282" position="850,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="200">
      92. <convert type="TunerInfo">TunerUseMask</convert>
      93. <convert type="ValueBitTest">32</convert>
      94. <convert type="ConditionalShowHide" />
      95. </widget>
      96. <widget backgroundColor="accent" position="850,21" render="FixedLabel" size="28,8" source="session.FrontendInfo" transparent="0" zPosition="201">
      97. <convert type="FrontendInfo">NUMBER</convert>
      98. <convert type="ValueRange">5,5</convert>
      99. <convert type="ConditionalShowHide" />
      100. </widget>
      101. <widget backgroundColor="un626262" position="880,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="199">
      102. <convert type="FluidBaseTunerInfo">6</convert>
      103. <convert type="ConditionalShowHide" />
      104. </widget>
      105. <widget backgroundColor="un828282" position="880,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="200">
      106. <convert type="TunerInfo">TunerUseMask</convert>
      107. <convert type="ValueBitTest">64</convert>
      108. <convert type="ConditionalShowHide" />
      109. </widget>
      110. <widget backgroundColor="accent" position="880,21" render="FixedLabel" size="28,8" source="session.FrontendInfo" transparent="0" zPosition="201">
      111. <convert type="FrontendInfo">NUMBER</convert>
      112. <convert type="ValueRange">6,6</convert>
      113. <convert type="ConditionalShowHide" />
      114. </widget>
      115. <widget backgroundColor="un626262" position="910,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="199">
      116. <convert type="FluidBaseTunerInfo">7</convert>
      117. <convert type="ConditionalShowHide" />
      118. </widget>
      119. <widget backgroundColor="un828282" position="910,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="200">
      120. <convert type="TunerInfo">TunerUseMask</convert>
      121. <convert type="ValueBitTest">128</convert>
      122. <convert type="ConditionalShowHide" />
      123. </widget>
      124. <widget backgroundColor="accent" position="910,21" render="FixedLabel" size="28,8" source="session.FrontendInfo" transparent="0" zPosition="201">
      125. <convert type="FrontendInfo">NUMBER</convert>
      126. <convert type="ValueRange">7,7</convert>
      127. <convert type="ConditionalShowHide" />
      128. </widget>
      129. <widget backgroundColor="un626262" position="940,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="199">
      130. <convert type="FluidBaseTunerInfo">8</convert>
      131. <convert type="ConditionalShowHide" />
      132. </widget>
      133. <widget backgroundColor="un828282" position="940,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="200">
      134. <convert type="TunerInfo">TunerUseMask</convert>
      135. <convert type="ValueBitTest">256</convert>
      136. <convert type="ConditionalShowHide" />
      137. </widget>
      138. <widget backgroundColor="accent" position="940,21" render="FixedLabel" size="28,8" source="session.FrontendInfo" transparent="0" zPosition="201">
      139. <convert type="FrontendInfo">NUMBER</convert>
      140. <convert type="ValueRange">8,8</convert>
      141. <convert type="ConditionalShowHide" />
      142. </widget>
      143. <widget backgroundColor="un626262" position="970,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="199">
      144. <convert type="FluidBaseTunerInfo">9</convert>
      145. <convert type="ConditionalShowHide" />
      146. </widget>
      147. <widget backgroundColor="un828282" position="970,21" render="FixedLabel" size="28,8" source="session.TunerInfo" text=" " transparent="0" zPosition="200">
      148. <convert type="TunerInfo">TunerUseMask</convert>
      149. <convert type="ValueBitTest">512</convert>
      150. <convert type="ConditionalShowHide" />
      151. </widget>
      152. <widget backgroundColor="accent" position="970,21" render="FixedLabel" size="28,8" source="session.FrontendInfo" transparent="0" zPosition="201">
      153. <convert type="FrontendInfo">NUMBER</convert>
      154. <convert type="ValueRange">9,9</convert>
      155. <convert type="ConditionalShowHide" />
      156. </widget>
      157. <!-- Bottombar -->
      158. <widget backgroundColor="un232227" font="Regular; 18" foregroundColor="foreground" halign="left" position="378,880" render="Label" size="300,35" source="session.Event_Now" transparent="1" valign="top" zPosition="3" noWrap="1">
      159. <convert type="FluidEventTime">StartAndEndTime</convert>
      160. <convert type="FluidClockToText">%H:%M</convert>
      161. </widget>
      162. <widget backgroundColor="un232227" font="Bold; 28" foregroundColor="foreground" halign="left" position="378,930" render="FluidLabel" size="920,50" source="session.extEvent_Now" transparent="1" valign="center" zPosition="4" noWrap="1">
      163. <convert type="FluidExtEventName">Name</convert>
      164. </widget>
      165. <widget backgroundColor="un232227" font="Regular; 22" foregroundColor="foreground" halign="left" position="378,980" render="FluidLabel" size="920,40" source="session.extEvent_Now" transparent="1" valign="center" zPosition="4" noWrap="1">
      166. <convert type="FluidExtEventName">EventExtraData</convert>
      167. <convert type="FluidExtraEventData">SERIESINFO SUBTITLE GENRE YEAR COUNTRY</convert>
      168. </widget>
      169. <constant-widget name="infobarprogress" />
      170. <widget backgroundColor="background" font="Regular; 18" foregroundColor="foreground" halign="right" position="898,880" render="Label" size="400,35" source="session.Event_Now" transparent="1" valign="top" zPosition="1" noWrap="1">
      171. <convert type="EventTime">Remaining</convert>
      172. <convert type="FluidRemainingToText" />
      173. </widget>
      174. <widget backgroundColor="un232227" font="Regular; 17" foregroundColor="unc3c3c3" halign="right" position="1632,880" render="Label" size="220,38" source="session.Event_Next" transparent="1" valign="top" zPosition="3">
      175. <convert type="FluidEventTime">StartAndEndTime</convert>
      176. <convert type="FluidClockToText">%H:%M</convert>
      177. </widget>
      178. <widget backgroundColor="un232227" font="Bold; 22" foregroundColor="unc3c3c3" halign="left" position="1340,930" render="FluidLabel" size="520,50" source="session.extEvent_Next" transparent="1" valign="center" zPosition="4" noWrap="1">
      179. <convert type="FluidExtEventName">Name</convert>
      180. </widget>
      181. <widget backgroundColor="un232227" font="Regular; 20" foregroundColor="unc3c3c3" halign="left" position="1340,980" render="FluidLabel" size="520,40" source="session.extEvent_Next" transparent="1" valign="center" zPosition="4" noWrap="1">
      182. <convert type="FluidExtEventName">EventExtraData</convert>
      183. <convert type="FluidExtraEventData">SERIESINFO SUBTITLE GENRE YEAR COUNTRY</convert>
      184. </widget>
      185. <widget backgroundColor="button_yellow" font="Regular; 18" foregroundColor="white" halign="right" noWrap="1" position="470,0" render="Label" size="110,50" source="session.CurrentService" transparent="0" valign="center" zPosition="10">
      186. <convert type="FluidWeather">currentWeatherTemp</convert>
      187. <convert type="FluidTextAddAfter">°C</convert>
      188. </widget>
      189. <widget backgroundColor="button_yellow" font="Wetter; 26" foregroundColor="white" halign="left" noWrap="1" position="595,0" render="Label" size="70,50" source="session.CurrentService" transparent="0" valign="center" zPosition="9">
      190. <convert type="FluidWeather">currentWeatherCode</convert>
      191. </widget>
      192. <widget alphatest="blend" position="52,895" render="Picon" size="300,130" source="session.CurrentService" transparent="1" zPosition="10">
      193. <convert type="ServiceName">Reference</convert>
      194. </widget>
      195. <widget source="session.extEvent_Now" render="FluidInfobarCover" position="35,450" size="298,393" zPosition="-100" alphatest="on" disableAnimation="1" />
      196. </screen>
      Alles anzeigen
    • In der MuteSpectator Skin wird es, in die MovieList Anzeige, mit folgende Code angezeigt:

      <widget name="freeDiskSpace" position="60,600" size="1160,22" font="Regular;22" halign="center" foregroundColor="grey" backgroundColor="background_left"/>

      Position, Size, Font und Farben müssen an den jeweiligen Skin angepasst werden.

      Ob dies in einer der neueren FHD Skins funktioniert ist mir unbekannt.
      Weniger ist manchmal mehr!

      Mein Setup: aktuelles VTi Image mit MuteSpectator-MOD Skin. OScam-Update. Plugins: OpenWebIF, GraphMultiEPG, EPGRefresh, EPGImport, EPGSearch, TMDb. Interne HDD 1TB. LAN an Fritz!Box 7580. HD+02. EPG.dat, Picons, Image Backup, und BackUpSuite Daten im Flash. Dur-Line UK-124 Unicable LNB für Astra 19.2E (8 Tuner), Dur-Line UK-124 Unicable LNB für Astra 28,2E (4 Tuner), Inverto IDLB-QUDL42-UNI2L-1PP für Hot Bird 13E (4 Tuner), Dual DVB-C/T2 Tuner. FCC=Off.

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von atreyou ()

    • Ja, das funktioniert aber nur in der MovieList bzw. MovieSelection, weil dieser Screen den freien Speicher ermittelt; das Widget hat weder eine Source noch einen Converter, kann daher nur den Wert darstellen, der im Screen für dieses Widget mit diesem Namen bereitgestellt wird. Und das hat alles nicht mehr viel mit "Benachrichtigung" zu tun, wonach der TE ja gefragt hat.
      Diskutiere nie mit einem Idioten. Er zieht dich auf sein Niveau runter und schlägt dich mit seiner Erfahrung.
    • rdamas schrieb:

      ... Und das hat alles nicht mehr viel mit "Benachrichtigung" zu tun, wonach der TE ja gefragt hat.
      Richtig, ich habe eigentlich nach einer Benachrichtigung "Nachricht" gesucht, wenn die Festplatte XY an Kapazität erreicht hat, soll die Nachricht erscheinen und mit XY Sekunden ablaufen.

      Da es aber auch nicht schaden kann, wenn die Kapazität permanent im Skin (Infobar) eingeblendet wird, habe ich aus diesem Grund auch ein neues Thema im Workshop eröffnet, da es meiner Meinung nach 2 komplett verschiedene Varianten sind. Die eigentliche Frage hier, hat ja nicht wirklich etwas mit einem Skin zutun.

      Da ich es mit dem Skin aber auch noch nicht hinbekommen habe, ist die Frage auch noch offen und hoffe dafür auf Hilfe.

      Vielen Dank.
    • Es gibt dafür Anzeigen in
      - Menü/Information/Über
      - VTi Panel/Systeminformationen/Speicherplatzauslastung anzeigen
      - VTi Systeminfopanel

      und natürlich in der Movieliste in jedem Skin.

      Zusätzlich gibt es den AutoShredder der ab einem Minimum an Speicherplatz auf der HD alte Aufnahmen entfernt.
      Carpe diem!

      Skin: CerX FHD | Plugins: TMDb, BacksNcovers, FritzDect, AutoShredder, PluginMover | EPG: GraphMultiEPG | ... [Alle anzeigen]

      Vu+ Wiki
    • Hast Du schon daran gedacht, dass zum Ermitteln des freien Plattenplatzes die Platte laufen muss?

      Wenn Du deine Platte nach X Minuten Deaktivität schlafen legst und dann dein Skin anzeigen soll, wie viel Platz aktuell noch frei ist, müsste die Platte erst wieder hochfahren, damit das df-Kommando ausgeführt werden kann.

      Das führt dann dazu, dass es gegebenenfalls einige Sekunden dauert, bis die Platte oben ist und der Wert zur Verfügung steht (wenn es lange genug dauert, darfst Du dir den Loading-Spinner ansehen). Außerdem läuft die Platte dann immer wieder...

      Das ganze geht so eigentlich nur, wenn Du die Platte nie schlafen legst und sie immer direkt antworten kann, weil sie dauernd läuft.
    • Die Info des belegten und freien Speichers wird z. B. in "Aktuelle Infos zum System" angezeigt, auch wenn die Platte schläft und wird dazu nicht aufgeweckt.
      Mitdenken = Freude schenken

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von mc2 ()

    • Automatisch am TV eine Nachricht einblenden, wenn der freie Festplattenplatz ein Limit unterschreitet.

      LevelOne2k schrieb:

      Kilroy schrieb:

      "Man" könnte ein kleines Programm (Shell Skript, python, wwi.) schreiben und es per cronjob regelmäßig aufrufen, so dass es ggf. eine Bildschirmnachricht einblendet. Ich selbst bin mit dem System noch zu wenig vertraut.
      Genau sowas in die Richtung habe ich mir auch gedacht. Leider habe ich von Skripten noch weniger Ahnung als von allen anderen hier :D -

      Das Shell-Skript ist nun fertig:

      Shell-Script: check_free_space.sh

      1. #!/bin/bash
      2. #
      3. # Diese Datei: check_free_space.sh z.B. mit FileZilla auf die VU+ Box kopieren (/home/root)
      4. # FileZilla Menü: Übertragung -> Übertragungstyp -> Binär
      5. # Dateiattribute (Berechtigungen) auf der Box für die Datei setzen: -rwxr-xr-x (755)
      6. #
      7. # Cronjob einrichten: Blau -> Gelb -> Cronjob-Verwaltung -> Grün
      8. # Auszuführender Befehl: /home/root/check_free_space.sh
      9. # Zusätzliche Befehlsparameter: 10 (dieses ist der minimale freie Speicher in GByte)
      10. # Minute ... eingeben: */10 (Aufruf alle 10 Minuten)
      11. # Stunde --- eingeben: * (jede Stunde)
      12. # Tag ... eingeben: * (jeden Tag)
      13. # Monat ... eingeben: * (jeden Monat)
      14. # Wochentag ... eingeben: * (jeden Wochentag)
      15. # Cronjob speichern: Grün
      16. #
      17. #
      18. # Das Skript erwartet eine Zahl als Parameter (s.o.) für den minimalen freien Speicher
      19. # in GByte auf der Festplatte, z.B. 10 für 10 GByte minimalen freien Speicher.
      20. #
      21. if [ "$#" = "0" ]; then
      22. MINSIZE_GB=10
      23. else
      24. MINSIZE_GB=$1
      25. fi
      26. #
      27. # Pfad der Festplatte
      28. #
      29. HDD_PATH=/media/hdd
      30. #
      31. # aktuelle Größe des Verzeichnisses $HDD_PATH
      32. #
      33. SIZE=$(df | grep "$HDD_PATH"$ | tr -s [:blank:] " " | cut -f 4 -d " ")
      34. SIZE_GB=$(($SIZE/(1024*1024)))
      35. #
      36. # Text der Meldung, die bei Unterschreitung des Limits ($MINSIZE_GB) angezeigt wird
      37. # Leerzeichen durch + ersetzen
      38. #
      39. MESSAGE="Festplatte+fast+voll+-+noch+$SIZE_GB+GByte+frei"
      40. #
      41. # Zeit in Sekunden, bis die Meldung ausgeblendet wird
      42. #
      43. TIMEOUT=10
      44. if [ $SIZE_GB -lt $MINSIZE_GB ]; then
      45. wget -q -O - "http://localhost/web/message?type=3&timeout=$TIMEOUT&text=$MESSAGE" >/dev/null 2>&1
      46. fi
      Alles anzeigen
      Wer das Skript bearbeiten möchte, sollte dies unter Windows mit einem Linux-kompatiblen Editor (z.B. Notepad++) tun.

      Die Anleitung steht im Skript. Hier die Kurzfassung:

      check_free_space.sh.zip herunterladen und entpacken.

      Datei check_free_space.sh auf die VU+ Box kopieren (/home/root) und Dateirechte anpassen (755).

      Dateiattribute.jpg

      Cronjob auf der Box einrichten: Blau -> Gelb -> Cronjob-Verwaltung -> Grün

      Cronjob_hinzufügen.jpg

      Zum Speichern: Grün

      Das Skript kann mal an der Konsole (OpenWebif: Terminal) testen:

      Quellcode

      1. root@vuultimo4k:~# ./check_free_space.sh 42000

      Es sollte jetzt auf dem TV eine Meldung angezeigt werden, sofern derjenige nicht 42 TByte auf der Festplatte frei hat.

      Bitte beachten:
      Das Skript ist einfach gehalten und fängt mögliche Fehler nur bedingt ab. Das lässt sich mit etwas Zeit und Lust aber noch verfeinern. Auch könnte man die Parameterübergabe erweitern.
      Die Benutzung erfolgt auf eigene Gefahr, gerade auch wegen der root-Rechte.
      Vu+ Ultimo 4K - VTi 14.0.3 (2019-04-25-vti-master (549b05f11)) - VDR R.I.P. ;( - 6502 Experte :D

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Kilroy ()

    • Benachrichtigung bei XXGB verfügbarer HDD Kapazität, wie im Skin integrieren?

      Super, vielen Dank! Habe es gerade direkt getestet und es funktioniert einwandfrei.

      Um eine Verfeinerung habe ich natürlich nichts gegen :)


      Gesendet von iPhone mit Tapatalk Pro

      Kurze Frage noch: Bei zusätzlicher Parameter, wenn dort eine 10 steht wird die Meldung erst ausgegeben wenn nur noch 10GB frei sind? Muss dann 250 dort stehen wenn man eine Meldung bei 250GB haben möchte?


      Gesendet von iPhone mit Tapatalk Pro
    • LevelOne2k schrieb:

      Um eine Verfeinerung habe ich natürlich nichts gegen
      Ideen hätte ich ein paar:
      • Meldung ab xx% freier HDD Platz
      • Eingabe weiterer Speichermedien per Parameter (oder Skript)
      • freie Wahl der auszugebenden Nachricht
      • oder was Euch noch so einfällt

      LevelOne2k schrieb:

      Kurze Frage noch: Bei zusätzlicher Parameter, wenn dort eine 10 steht wird die Meldung erst ausgegeben wenn nur noch 10GB frei sind? Muss dann 250 dort stehen wenn man eine Meldung bei 250GB haben möchte?
      Genau, so ist es gedacht. Dort gibst Du den unteren Wert des freien Festplattenplatzes in GByte an, ab welchem die Meldung erscheinen soll. Bei 250 erscheint dann die Meldung wie von Dir vermutet.
      Vu+ Ultimo 4K - VTi 14.0.3 (2019-04-25-vti-master (549b05f11)) - VDR R.I.P. ;( - 6502 Experte :D
    • Benachrichtigung bei XXGB verfügbarer HDD Kapazität, wie im Skin integrieren?

      Danke. Die Ideen sind für. Mir fällt jetzt spontan erst mal nichts ein.

      Evtl. kann man sich eine Push oder Pushover aufs Handy kommen lassen? Dann bekommt man von unterwegs mit wenn der Speicherplatz knapp wird und kann dann für freien Sorgen damit weitere Aufnahmen ordentlich durch laufen.


      Gesendet von iPhone mit Tapatalk Pro

      So kann man zB eine Nachricht über Pushover verschicken:

      curl -s -d token=XXXX -d user=XXXX -d message='"#nachricht#"' -d priority=1 messages.json");


      Gesendet von iPhone mit Tapatalk Pro
    • Ich habe das Skript etwas erweitert. Es zeigt nun auch eine Warnmeldung an, wenn der Flash-Speicher der Box unter ein prozentuales Limit fällt, standardmäßig 20%.

      Shell-Script: check_free_space.sh

      1. #!/bin/bash
      2. #
      3. # Diese Datei: check_free_space.sh z.B. mit FileZilla auf die VU+ Box kopieren (/home/root)
      4. # FileZilla Menü: Übertragung -> Übertragungstyp -> Binär
      5. # Dateiattribute (Berechtigungen) auf der Box für die Datei setzen: -rwxr-xr-x (755)
      6. #
      7. # Cronjob einrichten: Blau -> Gelb -> Cronjob-Verwaltung -> Grün
      8. # Auszuführender Befehl: /home/root/check_free_space.sh
      9. # Zusätzliche Befehlsparameter: 10 20
      10. # (Der erste Wert ist der minimale freie Speicher auf der Festplatte in GByte.
      11. # Der zweite Wert ist der minimale freie Flash-Speicher der Box in Prozent.)
      12. # Minute ... eingeben: */10 (Aufruf alle 10 Minuten)
      13. # Stunde --- eingeben: * (jede Stunde)
      14. # Tag ... eingeben: * (jeden Tag)
      15. # Monat ... eingeben: * (jeden Monat)
      16. # Wochentag ... eingeben: * (jeden Wochentag)
      17. #
      18. #
      19. # Das Skript erwartet zwei Zahlen als Parameter (s.o.) für den minimalen freien Speicher
      20. # in GByte auf der Festplatte, z.B. 10 für 10 GByte minimalen freien Speicher bzw. den
      21. # minimalen freien Flash-Speicher der Box in Prozent, z.B. 20 für 20% minimalen freien Flash-Speicher.
      22. #
      23. if [ "$#" != "2" ]; then
      24. MINSIZE_HDD_GB=10
      25. MINSIZE_FLASH_PERCENT=20
      26. else
      27. MINSIZE_HDD_GB=$1
      28. MINSIZE_FLASH_PERCENT=$2
      29. fi
      30. #
      31. # Pfad der Festplatte
      32. #
      33. HDD_PATH=/media/hdd
      34. #
      35. # wie lange solle die Nachricht eingeblendet werden (in Sekunden)
      36. #
      37. MESSAGE_TIMEOUT=10
      38. MESSAGE=""
      39. #
      40. # aktuelle Größe des Verzeichnisses $HDD_PATH
      41. #
      42. SIZE_HDD=$(df | grep "$HDD_PATH"$ | tr -s [:blank:] " " | cut -f 4 -d " ")
      43. SIZE_HDD_GB=$(($SIZE_HDD/(1024*1024)))
      44. #
      45. # aktuelle Größe des Flash-Speichers
      46. #
      47. SIZE_FLASH=$(df | grep "/"$ | tr -s [:blank:] " " | cut -f 5 -d " " | tr -d "%")
      48. SIZE_FLASH_PERCENT=$((100-$SIZE_FLASH))
      49. if [ $SIZE_HDD_GB -lt $MINSIZE_HDD_GB ] && [ $SIZE_FLASH_PERCENT -lt $MINSIZE_FLASH_PERCENT ]; then
      50. #
      51. # Text der Meldung, die bei Unterschreitung des Limits ($MINSIZE_HDD_GB) angezeigt wird
      52. # Leerzeichen durch + ersetzen
      53. #
      54. MESSAGE="Festplatte+fast+voll+-+noch+$SIZE_HDD_GB+GByte+frei+#+Flash-Speicher+fast+voll+-+noch+$SIZE_FLASH_PERCENT+%+frei"
      55. elif [ $SIZE_HDD_GB -lt $MINSIZE_HDD_GB ]; then
      56. #
      57. # Text der Meldung, die bei Unterschreitung des Limits ($MINSIZE_HDD_GB) angezeigt wird
      58. # Leerzeichen durch + ersetzen
      59. #
      60. MESSAGE="Festplatte+fast+voll+-+noch+$SIZE_HDD_GB+GByte+frei"
      61. elif [ $SIZE_FLASH_PERCENT -lt $MINSIZE_FLASH_PERCENT ]; then
      62. #
      63. # Text der Meldung, die bei Unterschreitung des Limits ($MINSIZE_HDD_GB) angezeigt wird
      64. # Leerzeichen durch + ersetzen
      65. #
      66. MESSAGE="Flash-Speicher+fast+voll+-+noch+$SIZE_FLASH_PERCENT+%+frei"
      67. fi
      68. if [ $MESSAGE ]; then
      69. #
      70. # Warnmeldung einblenden
      71. #
      72. wget -q -O - "http://localhost/web/message?type=3&timeout=$TIMEOUT&text=$MESSAGE" >/dev/null 2>&1
      73. fi
      Alles anzeigen

      check_free_space.sh.zip

      Shell-Script

      1. md5sum check_free_space.sh.zip
      2. 18a3450a1e68f5b17199ae087e68dddd check_free_space.sh.zip


      Bitte beachten:
      Das Skript ist einfach gehalten und fängt mögliche Fehler nur bedingt ab.
      Die Benutzung erfolgt auf eigene Gefahr, gerade auch wegen der root-Rechte.
      Vu+ Ultimo 4K - VTi 14.0.3 (2019-04-25-vti-master (549b05f11)) - VDR R.I.P. ;( - 6502 Experte :D
    • Das script ist in Ordnung bis auf die Variable MESSAGE_TIMEOUT die beim wget nur noch TIMEOUT heißt.

      Script lässt sich über die Console einwandfrei starten und Ausgabe erscheint auch.

      Dennoch habe ich bei VTi 13 nach dem cornjob anlegen über das Menü ein GUI Absturz beim ausführen über das Menü.


      Einfach nicht ausführen, der cronjob wird zur der eingestellten Zeit ohne Probleme gestartet.