Enigma2 — ReadMe
ÜBERSICHT — FREISCHALTUNG — SCREENSHOTS
1. Funktionsumfang
Dieses Modul stellt viele praktische Funktionen zur Verfügung, damit ein Receiver mit Enigma2 System gesteuert und Informationen ausgelesen werden können. Für jeden Receiver muss eine eigene Modul-Instanz angelegt werden. Da manche Images nicht alle Informationen/Funkionen bieten (z.B. OpenATV), wird vorher geprüft, ob die Funktion mit dem Image möglich ist.
Nachrichten an Receiver senden:
- Info (Nachricht mit Info-Symbol)
- Message (Nachricht mit Message-Symbol)
- Attention (Nachricht mit Attention-Symbol)
- Ja/Nein Frage (Am TV kann mit Ja/Nein geantwortet werden und die Antwort wird in eine Variable geschrieben und von der Funktion zurückgegeben)
Alle Nachrichten haben einen einstellbaren Timeout und werden automatisch nach den gewählten X Sekunden wieder ausgeblendet. Wird als Timeout eine "0" angegeben, dann ist dieser inaktiv und die Nachricht muss aktiv am Receiver weg gedrückt werden.
Ein Zeilenumbruch in der Nachricht kann mit dem Zeichen § erzeugt werden. Dieses Zeichen wird vom Modul erkannt und automatisch in einen Zeilenumbruch umgewandelt.
Tasten an den Receiver senden:
-
-
- Funktion zum Senden verschiedener Taste an den Receiver
-
Verfügbare Tasten: Power, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, VolumeUp, VolumeDown, MUTE, Previous, Next, BouquetUp, BouquetDown, ArrowUp, ArrowDown, ArrowLeft, ArrowRight, Menu, OK, Info, Audio, Video, RED, GREEN, YELLOW, BLUE, TV, Radio, Text, Help, Exit, Rewind, Play, Stop, Forward, Record
Informationen über das Receiver-System auslesen (einstellbarer Intervall):
- Enigma-Version
- Image-Version
- WebIf-Version
- Festplatte > Modell - (wenn HDD verbaut)
- Festplatte > Kapazität (in MB) - (wenn HDD verbaut)
- Festplatte > Freie Kapazität (in MB) - (wenn HDD verbaut)
- Netzwerk-Infos > IP, Mac, GW, Netzmaske, DHCP - (nur in Variablen, wenn "Erw. Informationen" aktiv)
- Bildinformationen (Breite x Höhe in Pixel) - (nur in Variablen, wenn "Erw. Informationen" aktiv)
Informationen über die aktuelle/nächste Sendung auf dem aktuellen Kanal/Sender (einstellbarer Intervall):
- Aktueller Sendername, Sendernummer/Programmplatz, Senderprovider, Sendungsname, Sendungsbeschreibung kurz, Sendungsbeschreibung lang, Sendungsstart/-ende, Sendungsdauer, Sendungsrestdauer, vergangene Sendungsdauer, Sendungsfortschritt in Prozent, EventID, sRef, pRef
- Nächster Sendername, Sendernummer/Programmplatz, Sendungsname, Sendungsbeschreibung kurz, Sendungsbeschreibung lang, Sendungsstart/-ende, Sendungsdauer, EventID, sRef, pRef
Informationen über die aktuelle/nächste Sendung auf bestimmten Kanälen/Sendern/Bouquets:
- Aktueller Sendername, Sendernummer/Programmplatz, Sendungsname, Sendungsbeschreibung kurz, Sendungsbeschreibung lang, Sendungsstart/-ende, Sendungsdauer, Sendungsrestdauer, vergangene Sendungsdauer, Sendungsfortschritt in Prozent, EventID, sRef, pRef
- Nächster Sendername, Sendernummer/Programmplatz, Sendungsname, Sendungsbeschreibung kurz, Sendungsbeschreibung lang, Sendungsstart/-ende, Sendungsdauer, EventID, sRef, pRef
Auslesen der Kanal-/Senderliste
- Liest alle Kanäle/Sender aus dem Receiver aus und gibt die gesammelten Informationen als Array zurück (Name des Senders, Programmplatz/-nummer, SRef).
Auslesen der Bouquetliste
- Liest alle Bouquets/Ordner aus dem Receiver aus und gibt die gesammelten Informationen als Array zurück (Name des Bouquets/Ordner, sRef).
Auslesen der Einstellungen
- Liest alle Einstellungen vom Receiver und den installierten Erweiterungen aus
Timerliste auslesen (einstellbarer Intervall)
- Liest die Timerliste aus dem Receiver aus, gibt diese als Array zurück und speichert die Daten in eine Variable (HTMLBox)
Timer bearbeiten
- Hinzufügen eines Aufnahme-Timer
- Entfernen eines Timer
Aufnahmenliste auslesen (einstellbarer Intervall)
- Liest die Aufnahmenliste aus dem Receiver aus, gibt diese als Array zurück und speichert die Daten in eine Variable (HTMLBox)
Aufnahme-Status
- Liest den aktuellen Status vom Receiver aus, ob aktuell eine Aufnahme durchgeführt wird oder nicht (wird auch in Variable geschrieben, wenn in der Geräte-Instanz "Aufnahmenliste auslesen" aktiviert ist).
EPG Suche
- Durchsucht das EPG anhand des/der angegebenen Suchbegriff/e, gibt das Ergebnis als Array zurück und stellt es in einer Variable als HTMLBox dar. Damit kann man sich eine Sendungen-Suchmaske in seine Visualisierung einbauen.
Eingestellte Lautstärke vom Receiver auslesen und setzen
- Liest die aktuelle Receiver-Lautstärke aus (Volume 0–100 und Mute aktiv/inaktiv)
- Steuert die Lautstärke des Receiver (bestimmter Wert, leiser, lauter, Toggle Mute)
> !Achtung! Lautstärke kann nur geändert werden, wenn AC3-Ton im Receiver nicht als Default gewählt wurde!
Power-Zustand des Receiver auslesen und steuern
- Liest den Power-Status des Receiver aus (eingeschaltet, ausgeschaltet, Standby)
- Steuert den Power-Status des Receiver (Toggle Standby, Deep Standby, Reboot, Restart GUI)
Senderliste auslesen
- Liest alle Sender der Senderliste mit ServiceReferenznummer (die Extended-Funktion liefert zusätzlich noch die Kanalnummer) aus und gibt alles in einem Array zurück
Sender umschalten
- Schaltet auf dem Receiver auf den angegeben Sender um
Signalstärke auslesen
- Liest die Signalstärke aus (SNR db, SNR, BER, ACG), schreibt sie ggf. in die Variablen und gibt alles in einem Array zurück. nur in Variablen, wenn "Erw. Informationen" aktiv
Tonspuren auslesen
- Liest die verfügbaren Tonspuren der Sendung aus, gibt die Infos als Array zurück und speichert die Infos in Variablen. nur in Variablen, wenn "Erw. Informationen" aktiv
AC3 Downmix Einstellungen auslesen
- Liest die Einstellungen zu AC3-Downmix aus, gibt die Infos als Array zurück und speichert die Infos in Variablen. nur in Variablen, wenn "Erw. Informationen" aktiv // Bei OpenATV Images nicht verfügbar
Sleeptimer auslesen
- Liest die Einstellungen des Sleeptimer aus, gibt die Infos als Array zurück und speichert die Infos in Variablen. nur in Variablen, wenn "Erw. Informationen" aktiv // Bei OpenATV Images nicht verfügbar
Sleeptimer
- Liest die Einstellungen des Sleeptimer (Aktiviert,Minuten,Aktion,Bestaetigt,Text) aus, gibt die Infos als Array zurück und speichert die Infos in Variablen (auch beim Setzen/Aktivieren des Sleeptimer — zur Kontrolle). nur in Variablen, wenn "Erw. Informationen" aktiv
- Setzen/Aktivieren des Sleeptimer mit den gewählten Einstellungen (Minuten [0–999], Aktion [Standby/Shutdown], Aktiviert [true/false]). Bei OpenATV Images nicht verfügbar
2. Systemanforderungen
- IP-Symcon ab Version 4.x
3. Installation
Über die Kern-Instanz "Module Control" folgende URL hinzufügen:
https://GITLAB-BENUTZERNAME:GITLAB-PASSWORT@gitlab.com/BY-IPS-Module/Enigma2BY.git
Die neue Instanz findet ihr dort, wo ihr sie angelegt habt.
4. Befehlsreferenz
Enigma2BY_SendMsg(integer $InstanzID, string $Text, integer $Type, integer $TimeoutSekunden);
Schickt eine Nachricht an den Receiver und dieser zeigt diese dann auf TV/Beamer an. Liefert ein Array mit Informationen zurück, ob die Nachricht erfolgreich gesendet wurde oder nicht. Diese Funktion läuft durch eine Semaphore mit max. 20 Sekunden, falls 2 Fragen gleichzeitig an den Receiver gesendet werden. Das muss bei der Wahl der Timeout-Länge beachtet werden!
$Type:
1 = Schickt eine Nachricht mit einem "Info-Symbol" an den Receiver.
2 = Schickt eine Nachricht ohne Symbol an den Receiver.
3 = Schickt eine Nachricht mit einem "Achtung-Symbol" an den Receiver.
0 = Schickt eine Nachricht/Frage mit Ja/Nein als Antwortmöglichkeit an den Receiver.
Die Antwort steht dann in der Integer-Variable "Frage-Antwort" und in der Rückmeldung der Funktion.
Antwort-Bedeutungen: 0 = Nein // 1 = Ja // 2 = Keine Antwort innerhalb Timeout-Zeit
Enigma2BY_SendKey(integer $InstanzID, string $Key, string $LongShort);
Löst einen virtuellen Tastendruck, der gewählten Taste, am Receiver aus. Eine Liste der verfügbaren Tasten ist in der Modul-Instanz zu finden (DropDown-Auswahl). Bei $LongShort muss entweder "long" oder "short" angegeben werden (langer/kurzer Tastendruck). Liefert true/false zurück, ob die Taste gesendet wurde oder nicht.
Enigma2BY_GetEPGInfos(integer $InstanzID);
Liest EPG-Infos vom Receiver aus (siehe Funktionsumfang), speichert diese in Variablen und gibt die Daten als Array zurück.
Enigma2BY_GetEPGInfos_Bouquet(integer $InstanzID, string $NowNext, string $Bouquetname);
Liest die EPG-Infos eines oder mehrerer Bouquets/Ordner aus (siehe Funktionsumfang) und gibt die Daten als Array zurück.
Bei $NowNext kann entweder "now" für die aktuell laufenden Sendungen, "next" für die nächsten Sendungen oder "nownext" für die aktuellen und nächsten Sendungen angegeben werden.
Wenn mehrere Bouquets abgefragt werden sollen, muss $Bouquetname eine mit "," getrennte Liste sein.
Enigma2BY_GetEPGInfos_Channel(integer $InstanzID, string $NowNext, string $Senderauswahl);
Liest die EPG-Infos (Sender-Infos, Sendungsname und ‑beschreibungen und ‑zeiten, sowie die EventIDs) von allen angegebenen Sendern aus und gibt die Daten als Array zurück.
Bei $Sender kann ein Sender oder mehrere Sender (mit "," getrennt), mittels Sendername, Sendernummer oder sRef (Service Reference) angegeben werden (auch eine "gemischte" Sender-Angabe ist möglich).
Bei $NowNext kann entweder "now" für die aktuell laufenden Sendungen oder "next" für die nächsten Sendungen angegeben werden.
Enigma2BY_GetSettings(integer $InstanzID);
Liest die Einstellungen vom Receiver aus (siehe Funktionsumfang) und gibt die Daten als Array zurück.
Enigma2BY_GetRecordingInfo(integer $InstanzID);
Liest den Aufnahme-Status eines Receiver aus und gibt TRUE (Aufnahme aktiv) oder FALSE (keine Aufnahme Aktiv) zurück. Im Fehlerfall wird NULL zurückgegeben. Wenn in der Instanz "Aufnahmenliste auslesen" aktiviert ist, wird der Wert auch in einer Variable dargestellt.
Enigma2BY_GetSystemInfos(integer $InstanzID);
Liest Systeminfos vom Receiver aus (siehe Funktionsumfang), speichert diese in Variablen und gibt die Daten als Array zurück.
Enigma2BY_GetTimerliste(integer $InstanzID);
Liest alle Daten aus dem Receiver aus, aktualisiert die Variable und gibt die Daten als Array zurück.
Enigma2BY_GetPowerState(integer $InstanzID);
Liefert den Power-Zustand des Receiver zurück (0 = ausgeschaltet // 1 = eingeschaltet // 2 = Standby)
Enigma2BY_SetPowerState(integer $InstanzID, integer $PowerState);
Steuert den Power-Zustand des Receiver (0 = Toggle Standby // 1 = Deep Standby // 2 = Reboot // 3 = Restart GUI // 4 = Wakeup from Standby // 5 = Standby). Liefert true/false zurück, ob der Power-State an den Receiver gesendet werden konnte oder nicht.
Enigma2BY_GetVolume(integer $InstanzID);
Liefert ein Array mit Volume-Informationen zurück (Volume 0–100, Mute true/false).
Enigma2BY_SetVolume(integer $InstanzID, integer $Volume);
Enigma2BY_SetVolume(integer $InstanzID, string "+");
Enigma2BY_SetVolume(integer $InstanzID, string "-");
Enigma2BY_SetVolume(integer $InstanzID, string "MUTE");
Setzt die Lautstärke des Receiver auf den angegebenen Wert (0–100). Die anderen Parameter steuern lauter/leiser/Mute Toggle. Liefert jeweils ein Array mit Volume-Informationen zurück (Volume 0–100, Mute true/false).
!Achtung! Lautstärke kann nur geändert werden, wenn AC3-Ton im Receiver nicht als Default gewählt wurde!
Enigma2BY_GetTimerliste(integer $InstanzID);
Liefert ein Array mit allen Timern + Details zurück und schreibt die Daten in eine Variable (als HTML-Tabelle).
Enigma2BY_AddTimerByEventID(integer $InstanzID, string $sRef, integer $EventID, string $AufnahmePfad);
Erstellt einen Aufnahme-Timer für die angegebene Sendung. sRef und EventID einer Sendung können über die EPGSuche-Funktion ermittelt werden. Der Aufnahmepfad (optional) bei einer eingebauten Festplatte ist "/hdd/movie/". Liefert true/false zurück, je nachdem, ob der Timer erstellt wurde oder nicht.
Enigma2BY_DelTimer(integer $InstanzID, string $sRef, integer $Sendungsbeginn, integer $Sendungsende);
Entfernt einen Timer aus der Timerliste. Die erforderlichen Daten können mit der "GetTimerliste"-Funktion ermittelt werden. Sendungsbeginn und ‑Ende müssen als Unix-Timestamp angegeben werden. Liefert true/false zurück, je nachdem, ob der Timer entfernt werden konnte oder nicht.
Enigma2BY_GetAufnahmenliste(integer $InstanzID);
Liefert ein Array mit allen Aufnahmen + Details zu allen aufgenommenen Sendungen zurück und schreibt die Daten in eine Variable (als HTML-Tabelle).
Enigma2BY_GetBouquetliste(integer $InstanzID);
Liefert ein Array mit allen Bouquets zurück (sRef + Name).
Enigma2BY_GetSenderliste(integer $InstanzID);
Liefert ein Array mit allen Sendernamen + ServiceReferenznummer zurück.
Enigma2BY_GetSenderlisteExtended(integer $InstanzID);
Liefert ein Array mit allen Sendernamen + Sendernummern + Service Referenznummer (sRef) zurück.
Enigma2BY_ZapTo(integer $InstanzID, string $SendernameSendernummer);
Schaltet den Receiver auf den gewählten Sender. Es kann entweder der Name des Senders, die Sendernummer oder direkt die sRef (Service Reference) angegeben werden. Alle notwendigen Informationen können z.B. über die Funktion "Enigma2BY_GetSenderlisteExtended" ermittelt werden.
Enigma2BY_GetSignalInfos(integer $InstanzID);
Liest die aktuellen Signalstärken aus dem Receiver aus (SNR db, SNR, BER, ACG), speichert die Daten ggf. in Variablen und gibt die Informationen in einem Array zurück.
Enigma2BY_GetTonspuren(integer $InstanzID);
Liest die verfügbaren Tonspuren der Sendung aus, speichert die Daten ggf. in Variablen und gibt die Informationen in einem Array zurück.
Enigma2BY_SetTonspur(integer $InstanzID, integer $TonspurID);
Setzt die gewählte Tonspur für die aktuelle Sendung und gibt true/false zurück, wenn die Tonspur gesetzt oder nicht gesetzt werden konnte. Die verfügbaren Tonspuren mit ID kann man über "Enigma2BY_GetTonspuren" auslesen.
Enigma2BY_EPGSuche(integer $InstanzID, string $Suchbegriff);
Durchsucht das EPG, anhand des/der gewählten Suchbegriff/e, gibt das Ergebnis als Array zurück und stellt die Rückgabe in einer Variable (als HTMLBox) dar.
Enigma2BY_GetAC3DownmixInfo(integer $InstanzID);
Liest die aktuelle Einstellung für "AC3 Downmix" aus, speichert das Ergebnis ggf. in eine Variable und gibt die Informationen in einem Array zurück.
Enigma2BY_GetSleeptimer(integer $InstanzID);
Liest die aktuelle Einstellungen des Sleeptimer aus, speichert das Ergebnis ggf. in Variablen und gibt die Informationen in einem Array zurück.
Enigma2BY_SetSleeptimer(integer $InstanzID, integer $Minuten, string $Aktion, bool $Aktiv);
Setzt die Einstellungen für den Sleeptimer bzw. aktiviert/deaktiviert ihn. Die übernommenen Einstellungen werden dann im Array zurück geliefert (zur Kontrolle) und ggf. in Variablen geschrieben.
$Minuten (0–999)
$Aktion (standby/shutdown)
$Aktiv (true/false)