Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [Problem] Dream btw. Enigma2 Adapter

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Problem] Dream btw. Enigma2 Adapter

    This topic has been deleted. Only users with topic management privileges can see it.
    • Matten Matten
      Matten Matten last edited by

      @Ralla66:

      Button Script ist Ja,

      Frage, wie wird der http Befehl gesendet ?

      Button klick bei Button Config scheint klar zu sein.

      Was wird hier gesendet ?

      Ralla `

      Das Script hast du erstellt?

      https://github.com/Matten-Matten/ioBrok … in/COMMAND

      Dieses JAVA script muss im SCRIPT ADAPTER (Script Engine) angelegt, konfiguriert gespeichert und gestartet werden.

      https://uploads.tapatalk-cdn.com/201809 ... 3c11e8.jpg

      1 Reply Last reply Reply Quote 0
      • Ralla66
        Ralla66 Most Active last edited by

        Danke rennt jetzt mit Button.

        Alle Button teste ich morgen.

        Sehr cool gemacht.

        Wünschenswert wäre bei Instanzen / Adapter die Box zu definieren.

        7020, VU Duo oder Zero oder so.

        Hier wegen den verschiedenen Fernbedienungscodes / PWs.

        Die Erstellung des Scriptes sollte auch Automatisch gehen.

        Cooles Projekt, gut gemacht, nicht Böse sein, sind nur Vorschläge.

        :mrgreen:

        Ralla
        5230_zeile.jpg

        1 Reply Last reply Reply Quote 0
        • Ralla66
          Ralla66 Most Active last edited by

          @ Matten Matten,

          die Datei Command liegt bei mir auf der Vu unter usr / lib / enigma2 /pyhthon / keyids.py

          Stop wäre danach 128 , 164 Play Pause , 207 Play.

          ! KEYIDS = {
          ! "KEY_RESERVED": 0,
          ! "KEY_ESC": 1,
          ! "KEY_1": 2,
          ! "KEY_2": 3,
          ! "KEY_3": 4,
          ! "KEY_4": 5,
          ! "KEY_5": 6,
          ! "KEY_6": 7,
          ! "KEY_7": 8,
          ! "KEY_8": 9,
          ! "KEY_9": 10,
          ! "KEY_0": 11,
          ! "KEY_MINUS": 12,
          ! "KEY_EQUAL": 13,
          ! "KEY_BACKSPACE": 14,
          ! "KEY_TAB": 15,
          ! "KEY_Q": 16,
          ! "KEY_W": 17,
          ! "KEY_E": 18,
          ! "KEY_R": 19,
          ! "KEY_T": 20,
          ! "KEY_Y": 21,
          ! "KEY_U": 22,
          ! "KEY_I": 23,
          ! "KEY_O": 24,
          ! "KEY_P": 25,
          ! "KEY_LEFTBRACE": 26,
          ! "KEY_RIGHTBRACE": 27,
          ! "KEY_ENTER": 28,
          ! "KEY_LEFTCTRL": 29,
          ! "KEY_A": 30,
          ! "KEY_S": 31,
          ! "KEY_D": 32,
          ! "KEY_F": 33,
          ! "KEY_G": 34,
          ! "KEY_H": 35,
          ! "KEY_J": 36,
          ! "KEY_K": 37,
          ! "KEY_L": 38,
          ! "KEY_SEMICOLON": 39,
          ! "KEY_APOSTROPHE": 40,
          ! "KEY_GRAVE": 41,
          ! "KEY_LEFTSHIFT": 42,
          ! "KEY_BACKSLASH": 43,
          ! "KEY_Z": 44,
          ! "KEY_X": 45,
          ! "KEY_C": 46,
          ! "KEY_V": 47,
          ! "KEY_B": 48,
          ! "KEY_N": 49,
          ! "KEY_M": 50,
          ! "KEY_COMMA": 51,
          ! "KEY_DOT": 52,
          ! "KEY_SLASH": 53,
          ! "KEY_RIGHTSHIFT": 54,
          ! "KEY_KPASTERISK": 55,
          ! "KEY_LEFTALT": 56,
          ! "KEY_SPACE": 57,
          ! "KEY_CAPSLOCK": 58,
          ! "KEY_F1": 59,
          ! "KEY_F2": 60,
          ! "KEY_F3": 61,
          ! "KEY_F4": 62,
          ! "KEY_F5": 63,
          ! "KEY_F6": 64,
          ! "KEY_F7": 65,
          ! "KEY_F8": 66,
          ! "KEY_F9": 67,
          ! "KEY_F10": 68,
          ! "KEY_NUMLOCK": 69,
          ! "KEY_SCROLLLOCK": 70,
          ! "KEY_KP7": 71,
          ! "KEY_KP8": 72,
          ! "KEY_KP9": 73,
          ! "KEY_KPMINUS": 74,
          ! "KEY_KP4": 75,
          ! "KEY_KP5": 76,
          ! "KEY_KP6": 77,
          ! "KEY_KPPLUS": 78,
          ! "KEY_KP1": 79,
          ! "KEY_KP2": 80,
          ! "KEY_KP3": 81,
          ! "KEY_KP0": 82,
          ! "KEY_KPDOT": 83,
          ! "KEY_103RD": 84,
          ! "KEY_F13": 85,
          ! "KEY_102ND": 86,
          ! "KEY_F11": 87,
          ! "KEY_F12": 88,
          ! "KEY_F14": 89,
          ! "KEY_F15": 90,
          ! "KEY_F16": 91,
          ! "KEY_F17": 92,
          ! "KEY_F18": 93,
          ! "KEY_F19": 94,
          ! "KEY_F20": 95,
          ! "KEY_KPENTER": 96,
          ! "KEY_RIGHTCTRL": 97,
          ! "KEY_KPSLASH": 98,
          ! "KEY_SYSRQ": 99,
          ! "KEY_RIGHTALT": 100,
          ! "KEY_LINEFEED": 101,
          ! "KEY_HOME": 102,
          ! "KEY_UP": 103,
          ! "KEY_PAGEUP": 104,
          ! "KEY_LEFT": 105,
          ! "KEY_RIGHT": 106,
          ! "KEY_END": 107,
          ! "KEY_DOWN": 108,
          ! "KEY_PAGEDOWN": 109,
          ! "KEY_INSERT": 110,
          ! "KEY_DELETE": 111,
          ! "KEY_MACRO": 112,
          ! "KEY_MUTE": 113,
          ! "KEY_VOLUMEDOWN": 114,
          ! "KEY_VOLUMEUP": 115,
          ! "KEY_POWER": 116,
          ! "KEY_KPEQUAL": 117,
          ! "KEY_KPPLUSMINUS": 118,
          ! "KEY_PAUSE": 119,
          ! "KEY_F21": 120,
          ! "KEY_F22": 121,
          ! "KEY_F23": 122,
          ! "KEY_F24": 123,
          ! "KEY_KPCOMMA": 124,
          ! "KEY_LEFTMETA": 125,
          ! "KEY_RIGHTMETA": 126,
          ! "KEY_COMPOSE": 127,
          ! "KEY_STOP": 128,
          ! "KEY_AGAIN": 129,
          ! "KEY_PROPS": 130,
          ! "KEY_UNDO": 131,
          ! "KEY_FRONT": 132,
          ! "KEY_COPY": 133,
          ! "KEY_OPEN": 134,
          ! "KEY_PASTE": 135,
          ! "KEY_FIND": 136,
          ! "KEY_CUT": 137,
          ! "KEY_HELP": 138,
          ! "KEY_MENU": 139,
          ! "KEY_CALC": 140,
          ! "KEY_SETUP": 141,
          ! "KEY_SLEEP": 142,
          ! "KEY_WAKEUP": 143,
          ! "KEY_FILE": 144,
          ! "KEY_SENDFILE": 145,
          ! "KEY_DELETEFILE": 146,
          ! "KEY_XFER": 147,
          ! "KEY_PROG1": 148,
          ! "KEY_PROG2": 149,
          ! "KEY_WWW": 150,
          ! "KEY_MSDOS": 151,
          ! "KEY_COFFEE": 152,
          ! "KEY_DIRECTION": 153,
          ! "KEY_CYCLEWINDOWS": 154,
          ! "KEY_MAIL": 155,
          ! "KEY_BOOKMARKS": 156,
          ! "KEY_COMPUTER": 157,
          ! "KEY_BACK": 158,
          ! "KEY_FORWARD": 159,
          ! "KEY_CLOSECD": 160,
          ! "KEY_EJECTCD": 161,
          ! "KEY_EJECTCLOSECD": 162,
          ! "KEY_NEXTSONG": 163,
          ! "KEY_PLAYPAUSE": 164,
          ! "KEY_PREVIOUSSONG": 165,
          ! "KEY_STOPCD": 166,
          ! "KEY_RECORD": 167,
          ! "KEY_REWIND": 168,
          ! "KEY_PHONE": 169,
          ! "KEY_ISO": 170,
          ! "KEY_CONFIG": 171,
          ! "KEY_HOMEPAGE": 172,
          ! "KEY_REFRESH": 173,
          ! "KEY_EXIT": 174,
          ! "KEY_MOVE": 175,
          ! "KEY_EDIT": 176,
          ! "KEY_SCROLLUP": 177,
          ! "KEY_SCROLLDOWN": 178,
          ! "KEY_KPLEFTPAREN": 179,
          ! "KEY_KPRIGHTPAREN": 180,
          ! "KEY_INTL1": 181,
          ! "KEY_INTL2": 182,
          ! "KEY_INTL3": 183,
          ! "KEY_INTL4": 184,
          ! "KEY_INTL5": 185,
          ! "KEY_INTL6": 186,
          ! "KEY_INTL7": 187,
          ! "KEY_INTL8": 188,
          ! "KEY_INTL9": 189,
          ! "KEY_LANG1": 190,
          ! "KEY_LANG2": 191,
          ! "KEY_LANG3": 192,
          ! "KEY_LANG4": 193,
          ! "KEY_LANG5": 194,
          ! "KEY_LANG6": 195,
          ! "KEY_LANG7": 196,
          ! "KEY_LANG8": 197,
          ! "KEY_LANG9": 198,
          ! "KEY_PLAYCD": 200,
          ! "KEY_PAUSECD": 201,
          ! "KEY_PROG3": 202,
          ! "KEY_PROG4": 203,
          ! "KEY_SUSPEND": 205,
          ! "KEY_CLOSE": 206,
          ! "KEY_PLAY": 207,
          ! "KEY_FASTFORWARD": 208,
          ! "KEY_BASSBOOST": 209,
          ! "KEY_PRINT": 210,
          ! "KEY_HP": 211,
          ! "KEY_CAMERA": 212,
          ! "KEY_SOUND": 213,
          ! "KEY_QUESTION": 214,
          ! "KEY_EMAIL": 215,
          ! "KEY_CHAT": 216,
          ! "KEY_SEARCH": 217,
          ! "KEY_CONNECT": 218,
          ! "KEY_FINANCE": 219,
          ! "KEY_SPORT": 220,
          ! "KEY_SHOP": 221,
          ! "KEY_ALTERASE": 222,
          ! "KEY_CANCEL": 223,
          ! "KEY_BRIGHTNESSDOWN": 224,
          ! "KEY_BRIGHTNESSUP": 225,
          ! "KEY_MEDIA": 226,
          ! "KEY_UNKNOWN": 240,
          ! "KEY_OK": 352,
          ! "KEY_SELECT": 353,
          ! "KEY_GOTO": 354,
          ! "KEY_CLEAR": 355,
          ! "KEY_POWER2": 356,
          ! "KEY_OPTION": 357,
          ! "KEY_INFO": 358,
          ! "KEY_TIME": 359,
          ! "KEY_VENDOR": 360,
          ! "KEY_ARCHIVE": 361,
          ! "KEY_PROGRAM": 362,
          ! "KEY_CHANNEL": 363,
          ! "KEY_FAVORITES": 364,
          ! "KEY_EPG": 365,
          ! "KEY_PVR": 366,
          ! "KEY_MHP": 367,
          ! "KEY_LANGUAGE": 368,
          ! "KEY_TITLE": 369,
          ! "KEY_SUBTITLE": 370,
          ! "KEY_ANGLE": 371,
          ! "KEY_ZOOM": 372,
          ! "KEY_MODE": 373,
          ! "KEY_KEYBOARD": 374,
          ! "KEY_SCREEN": 375,
          ! "KEY_PC": 376,
          ! "KEY_TV": 377,
          ! "KEY_TV2": 378,
          ! "KEY_VCR": 379,
          ! "KEY_VCR2": 380,
          ! "KEY_SAT": 381,
          ! "KEY_SAT2": 382,
          ! "KEY_CD": 383,
          ! "KEY_TAPE": 384,
          ! "KEY_RADIO": 385,
          ! "KEY_TUNER": 386,
          ! "KEY_PLAYER": 387,
          ! "KEY_TEXT": 388,
          ! "KEY_DVD": 389,
          ! "KEY_AUX": 390,
          ! "KEY_MP3": 391,
          ! "KEY_AUDIO": 392,
          ! "KEY_VIDEO": 393,
          ! "KEY_DIRECTORY": 394,
          ! "KEY_LIST": 395,
          ! "KEY_MEMO": 396,
          ! "KEY_CALENDAR": 397,
          ! "KEY_RED": 398,
          ! "KEY_GREEN": 399,
          ! "KEY_YELLOW": 400,
          ! "KEY_BLUE": 401,
          ! "KEY_CHANNELUP": 402,
          ! "KEY_CHANNELDOWN": 403,
          ! "KEY_FIRST": 404,
          ! "KEY_LAST": 405,
          ! "KEY_AB": 406,
          ! "KEY_NEXT": 407,
          ! "KEY_RESTART": 408,
          ! "KEY_SLOW": 409,
          ! "KEY_SHUFFLE": 410,
          ! "KEY_BREAK": 411,
          ! "KEY_PREVIOUS": 412,
          ! "KEY_DIGITS": 413,
          ! "KEY_TEEN": 414,
          ! "KEY_TWEN": 415,
          ! "KEY_DEL_EOL": 448,
          ! "KEY_DEL_EOS": 449,
          ! "KEY_INS_LINE": 450,
          ! "KEY_DEL_LINE": 451,
          ! "KEY_ASCII": 510,
          ! "KEY_MAX": 511,
          ! "BTN_0": 256,
          ! "BTN_1": 257,
          ! }

          Auf der Dream 7020 ist die .py zumindest bei den 3 Commands gleich.

          Mal eine Anfängerfrage. Warum unterscheidest du die Webif Versionen ab Zeile 46 ?

          Wird das Command nicht in der Box festgelegt ? ( keyids.py )

          Also eher Enigma2 Box und Image abhängig.

          So noch mal nach geschaut, VU ist VTI Image , Dream Newnigma.

          Beide keyids.py sind vom 17.06.15.

          Exit, Menü, RA und TV sind gleich also 174,139,385 und 377.

          Wäre mal Interessant zu wissen was in hg6806 und deiner .py steht.

          Denke bei hg6806 geht das wenn er umstellt bei Instanzen / Webinterface auf Open Webinterface.

          Nachtrag, gerade getestet,

          Stop Button geht auf der VU.

          Hilft ja nur die .py zu vergleichen.

          Wäre dann überlegenswert Instanzen / Webinterface ändern in Image vor 17.06.15 oder so.

          Leider sind die Unterschiede der .py nicht bekannt.

          Ralla

          1 Reply Last reply Reply Quote 0
          • Matten Matten
            Matten Matten last edited by

            bisher gab es nur probleme mit den commands bei dreambox receivern mit deren webif. deshalb unterscheide ich zwischen dem dreamwebif und open webif.

            1 Reply Last reply Reply Quote 0
            • Matten Matten
              Matten Matten last edited by

              enigma2 Adapter ist raus.

              Version 0.4.3 (2018-10-21)

              (Matten-Matten) Nicht bestätigte Werte und zustände (rot angezeigt) angepasst

              (Matten-Matten) Message um ein Objekt erweitert "ANSWER_IS"

              (Matten-Matten) Button BUTTON SCRIPT auf V3.4 angepasst (https://github.com/Matten-Matten/ioBrok … in/COMMAND)

              Viel Spaß beim testen, schönen Sonntag

              Gruß

              Matten Matten

              1 Reply Last reply Reply Quote 0
              • Matten Matten
                Matten Matten last edited by

                Moin, ich war mal wieder fleißig

                enigma2 Adapter ist raus, es wird kein extra Script für die Button mehr benötigt.

                https://github.com/Matten-Matten/ioBroker.enigma2.git

                Gruß

                Matten Matten

                1 Reply Last reply Reply Quote 0
                • M
                  mikiline last edited by

                  Top Arbeit, Danke!

                  Hab Dir noch ne verbesserung 🙂

                  Mit dem SystemInfo Adapter die Programme einlesen und für jedes Bouquet die Sender einlesen. So habe ich es bereits. Eventuell kannst Du das integrieren (z.B. einmal am Tag auch die Senderliste aktualisieren oder in den Einstellungen vom Adapter die Zei einstellen lassen)

                  Dann kann man auch umschalten 😉

                  Denke Du weisst was damit anzufangen…....

                  Hier ein Screenshot
                  2678_dream.png

                  Hier der Code für Regex und Dreambox

                  Bouquets: http://192.168.77.62/web/getservices

                  DreamBox.MyBouquetsChannelSky: http://192.168.77.62/web/getservices?sR … SKY%20(TV)

                  DreamBox.MyBouquetsChannelUM: http://192.168.77.62/web/getservices?sR ... ia__tv_.tv"

                  Regex wäre jedesmal

                  (<\w+[^<]*?)\s+([\w-]+)="([^"]+)">

                  1 Reply Last reply Reply Quote 0
                  • Matten Matten
                    Matten Matten last edited by

                    @mikiline:

                    Top Arbeit, Danke!

                    Hab Dir noch ne verbesserung 🙂

                    Mit dem SystemInfo Adapter die Programme einlesen und für jedes Bouquet die Sender einlesen. So habe ich es bereits. Eventuell kannst Du das integrieren (z.B. einmal am Tag auch die Senderliste aktualisieren oder in den Einstellungen vom Adapter die Zei einstellen lassen)

                    Dann kann man auch umschalten 😉 `

                    Ich bin froh das der Adapter jetzt ohne extra script läuft :roll: …

                    Ich muss schauen ob ich dafür zeit finde.

                    @mikiline:

                    Denke Du weisst was damit anzufangen….... `

                    nicht viel sry :oops: .

                    :!: :?: Ich muss ert einmal schauen ob ich jemanden finde, der den Adapter auf NPM portiert….

                    Gruß

                    Matten Matten

                    1 Reply Last reply Reply Quote 0
                    • M
                      mikiline last edited by

                      Im Grunde per Request die Programme der konfigurierten Box auslesen und als Button ablegen um umzuschalten….

                      1 Reply Last reply Reply Quote 0
                      • hg6806
                        hg6806 Most Active last edited by

                        Leider habe ich gerade das Problem, dass oft Button-Drücke 2-fach angesehen werden. D.h. Prg Umschaltung springt mal 2 Programme statt 1 noch vorne/hinten, Bos schaltet bei Standby aus und gleich wieder an.

                        Welche Widget habt ihr genommen und wie sind die Einstellungen?

                        Ich habe das hqwidget, Taster angeklickt, Wert Min 0, max 1

                        1 Reply Last reply Reply Quote 0
                        • S
                          Stefan-G last edited by

                          Hi zusammen,

                          Code für das Bouquet/Sender-Auslesen und wechseln hatte ich mal weiter oben gepostet. Hoffe, dass man das halbwegs einfach in den Adapter einbauen könnte.

                          Viele Grüße

                          Stefan

                          @Stefan-G:

                          Hallo zusammen,

                          habe mal eine Funktion zur Anzeige aller Bouquets und Kanäle und zum Umschalten implementiert:

                          ! var parseString = require('xml2js').parseString;
                          ! var request = require('request');
                          ! var urlVUplus = 'http://192.168.1.101:82';
                          ! var instanz = 'javascript.0'; instanz = instanz + '.';
                          ! var pfad = 'XMLParsing'; pfad = pfad + '.'; // Pfad innerhalb der Instanz
                          ! var debug = true;
                          ! // VU+ Power-Status
                          ! createState(pfad + 'VUplus.BouquetNames', 'init', {type: "string", name: "Names of Enigma bouquets", write:true, read:true});
                          ! createState(pfad + 'VUplus.BouquetNumbers', 'init', {type: "string", name: "References of Enigma bouquets", write:true, read:true});
                          ! createState(pfad + 'VUplus.NumberOfBouquets', 0, {type: "number", name: "How many bouquets are defined in Enigma", write:false, read:true});
                          ! createState(pfad + 'VUplus.BouquetNumberCurrent', 0, {type: "number", name: "Number of selected Enigma bouquet", write:true, read:true});
                          ! createState(pfad + 'VUplus.BouquetCurrentlySelected.BouquetName', 'init',{type: "string", name: "Name of currently selected Enigma bouquet", write:true, read:true});
                          ! createState(pfad + 'VUplus.BouquetCurrentlySelected.BouquetReference', 'init',{type: "string", name: "Reference of currently selected Enigma bouquet", write:true, read:true});
                          ! createState(pfad + 'VUplus.BouquetCurrentlySelected.ChannelNames', 'init',{type: "string", name: "Channel names of currently selected Enigma bouquet", write:true, read:true});
                          ! createState(pfad + 'VUplus.BouquetCurrentlySelected.ChannelReferences', 'init',{type: "string", name: "Channel references of currently selected Enigma bouquet", write:true, read:true});
                          ! createState(pfad + 'VUplus.ChannelReferenceCurrent', 'init', {type: "string", name: "Reference of selected channel", write:true, read:true});
                          ! //example HHTP requests to obtain bouquet and channel list:
                          ! //http://192.168.1.101:82/web/getservices
                          ! //Favourites (TV):
                          ! //http://192.168.1.101:82/web/getservices … %20bouquet
                          ! //German Free SD
                          ! //http://192.168.1.101:82/web/getservices ... %20bouquet
                          ! //German Free HD
                          ! //http://192.168.1.101:82/web/getservices ... %20bouquet
                          ! //German HD+
                          ! //http://192.168.1.101:82/web/getservices ... %20bouquet
                          ! //------------------------------------------------------------------------------
                          ! // This function collects all channel names (TV stations) and the respective
                          ! // channel references and writes them into the respective states created before
                          ! // (in calling function GetVUplusChannels()
                          ! //------------------------------------------------------------------------------
                          ! function GetVUplusBouquetChannels(strBouquetReference, iBouquetNumber) {
                          ! var strAllChannelNames = '';
                          ! var strAllChannelReferences = '';
                          ! request(urlVUplus + '/web/getservices?sRef=' + strBouquetReference, function (error, response, body) {
                          ! if (!error && response.statusCode == 200) {
                          ! //if(debug){log("Body: " + body);}
                          ! parseString(body, {
                          ! explicitArray: false,
                          ! mergeAttrs: true
                          ! },
                          ! function (err, result) {
                          ! if (err) {
                          ! log("Fehler: " + err);
                          ! } else {
                          ! for (var j = 0; j < result.e2servicelist.e2service.length; j++) {
                          ! var strSender = result.e2servicelist.e2service[j].e2servicename;
                          ! var strService = result.e2servicelist.e2service[j].e2servicereference;
                          ! if(debug){ log("Sender Nr. " + j + ": " + strSender + ", Service: " + strService);}
                          ! strAllChannelNames = strAllChannelNames + strSender + ';';
                          ! strAllChannelReferences = strAllChannelReferences + strService + ';';
                          ! }
                          ! strAllChannelNames = strAllChannelNames.slice(0,strAllChannelNames.length-1); // cut away last ";"
                          ! strAllChannelReferences = strAllChannelReferences.slice(0,strAllChannelReferences.length-1); // cut away last ";"
                          ! if(debug){ log('All channels for Bouquet ' + iBouquetNumber +': ' + strAllChannelNames);}
                          ! if(debug){ log('All channel references for Bouquet ' + iBouquetNumber + ': ' + strAllChannelReferences);}
                          ! setState(instanz + pfad + 'VUplus.Bouquet' + iBouquetNumber + '.ChannelNames', strAllChannelNames);
                          ! setState(instanz + pfad + 'VUplus.Bouquet' + iBouquetNumber + '.ChannelReferences', strAllChannelReferences);
                          ! }
                          ! });
                          ! } else {
                          ! if(debug){log(error);}
                          ! }
                          ! });
                          ! }
                          ! //–----------------------------------------------------------------------------
                          ! // This function creates states for all bouquets with all info about the bouquet
                          ! // e.g. channels (TV station) names and respective service references
                          ! //------------------------------------------------------------------------------
                          ! function CreateBouquetStates(NrOfBouquets) {
                          ! for (var i = 0; i < NrOfBouquets; i++) {
                          ! createState(pfad + 'VUplus.Bouquet' + i + '.BouquetName', 'init',{type: "string", name: "Name of Enigma bouquets number "+ i, write:true, read:true});
                          ! createState(pfad + 'VUplus.Bouquet' + i + '.BouquetReference', 'init',{type: "string", name: "Reference of Enigma bouquets number "+ i, write:true, read:true});
                          ! createState(pfad + 'VUplus.Bouquet' + i + '.ChannelNames', 'init',{type: "string", name: "Channel names of Enigma bouquets number "+ i, write:true, read:true});
                          ! createState(pfad + 'VUplus.Bouquet' + i + '.ChannelReferences', 'init',{type: "string", name: "Channel references of Enigma bouquets number "+ i, write:true, read:true});
                          ! }
                          ! // TODO: here code could be added which deletes states if more bouquet states have already been created befor than bouquets exit presently, e.g. this can happen if an bouquet has been deleted on the ENIGMA system
                          ! }
                          ! //------------------------------------------------------------------------------
                          ! // This function all available bouquets (TV station lists) for an ENIGMA system
                          ! // and creates states for all bouquets filled with channel (TV station) and
                          ! // respective service references for bouquets and channels
                          ! //------------------------------------------------------------------------------
                          ! function GetVUplusChannels() {
                          ! request(urlVUplus + '/web/getservices', function (error, response, body) {
                          ! if (!error && response.statusCode == 200) {
                          ! //if(debug){log("Body: " + body);}
                          ! parseString(body, {
                          ! explicitArray: false,
                          ! mergeAttrs: true
                          ! },
                          ! function (err, result) {
                          ! if (err) {
                          ! log("Fehler: " + err);
                          ! } else {
                          ! if(debug){ log("Anzahl Bouquets: " + result.e2servicelist.e2service.length);}
                          ! var strBouquetName = '';
                          ! var strBouquetReference = '';
                          ! var strAllBouquetNames = '';
                          ! var strAllBouquetNumbers = '';
                          ! // create as many states as bouquets exist
                          ! setState(instanz + pfad + 'VUplus.NumberOfBouquets', result.e2servicelist.e2service.length);
                          ! CreateBouquetStates(result.e2servicelist.e2service.length);
                          ! for (i = 0; i < result.e2servicelist.e2service.length; i++) {
                          ! strBouquetName = result.e2servicelist.e2service__.e2servicename;
                          ! strBouquetReference = result.e2servicelist.e2service__.e2servicereference.replace(/ /g, "%20").replace(/"/g, "%22");
                          ! strAllBouquetNames = strAllBouquetNames + strBouquetName + ';';
                          ! strAllBouquetNumbers = strAllBouquetNumbers + i + ';';
                          ! if(debug){ log("Bouquet Nr. " + i + ": " + strBouquetName + ", Bouquet References: " + strBouquetReference);}
                          ! setState(instanz + pfad + 'VUplus.Bouquet' + i + '.BouquetName', strBouquetName);
                          ! setState(instanz + pfad + 'VUplus.Bouquet' + i + '.BouquetReference', strBouquetReference);
                          ! GetVUplusBouquetChannels(strBouquetReference, i);
                          ! }
                          ! strAllBouquetNames = strAllBouquetNames.slice(0,strAllBouquetNames.length-1); // cut away last ";"
                          ! strAllBouquetNumbers = strAllBouquetNumbers.slice(0,strAllBouquetNumbers.length-1); // cut away last ";"
                          ! if(debug){ log("All Bouquets: " + strAllBouquetNames);}
                          ! if(debug){ log("All Bouquet numbers: " + strAllBouquetNumbers);}
                          ! setState(instanz + pfad + 'VUplus.BouquetNames', strAllBouquetNames);
                          ! setState(instanz + pfad + 'VUplus.BouquetNumbers', strAllBouquetNumbers);
                          ! }
                          ! });
                          ! } else {
                          ! if(debug){log(error);}
                          ! }
                          ! });
                          ! }
                          ! on(instanz + pfad + 'VUplus.BouquetNumberCurrent', function(obj) {
                          ! var ChannelNamesOfNewCurrentBouquet = getState(instanz + pfad + 'VUplus.Bouquet' + obj.newState.val + '.ChannelNames').val;
                          ! var ChannelReferencesOfNewCurrentBouquet = getState(instanz + pfad + 'VUplus.Bouquet' + obj.newState.val + '.ChannelReferences').val;
                          ! var FirstChannelReferenceOFNewBouquet = ChannelReferencesOfNewCurrentBouquet.slice(0, ChannelReferencesOfNewCurrentBouquet.indexOf(';'));
                          ! if(debug){ log('Current bouquet number changed to: ' + obj.newState.val );}
                          ! if(debug){ log('First channel in urrent bouquet: ' + ChannelNamesOfNewCurrentBouquet.slice(0, ChannelNamesOfNewCurrentBouquet.indexOf(';')) );}
                          ! if(debug){ log('First channel reference in urrent bouquet: ' + FirstChannelReferenceOFNewBouquet);}
                          ! // serch if the currently selected TC channel exists in the new selected bouquet
                          ! if(ChannelReferencesOfNewCurrentBouquet.indexOf(getState(instanz + pfad + 'VUplus.ChannelReferenceCurrent').val) == -1) {
                          ! if(debug){ log('Currently selected TC channel not found in previous bouquet, switching channel.');}
                          ! setState(instanz + pfad + 'VUplus.ChannelReferenceCurrent', FirstChannelReferenceOFNewBouquet);
                          ! }
                          ! // set new values for selected bouquet
                          ! setState(instanz + pfad + 'VUplus.BouquetCurrentlySelected.BouquetName', getState(instanz + pfad + 'VUplus.Bouquet' + obj.newState.val + '.BouquetName').val);
                          ! setState(instanz + pfad + 'VUplus.BouquetCurrentlySelected.BouquetReference', getState(instanz + pfad + 'VUplus.Bouquet' + obj.newState.val + '.BouquetReference').val);
                          ! setState(instanz + pfad + 'VUplus.BouquetCurrentlySelected.ChannelNames', ChannelNamesOfNewCurrentBouquet);
                          ! setState(instanz + pfad + 'VUplus.BouquetCurrentlySelected.ChannelReferences', ChannelReferencesOfNewCurrentBouquet);
                          ! });
                          ! on(instanz + pfad + 'VUplus.ChannelReferenceCurrent', function(obj) {
                          ! if(debug){ log('Chosen current channel reference: ' + obj.newState.val );}
                          ! request(urlVUplus + '/api/zap?sRef=' + obj.newState.val, function (error, response, body) {
                          ! if (!error && response.statusCode == 200) {
                          ! //log("Body: " + body);
                          ! parseString(body, {
                          ! explicitArray: false,
                          ! mergeAttrs: true
                          ! },
                          ! function (err, result) {
                          ! if (err) {
                          ! log("Fehler: " + err);
                          ! } else {
                          ! if(debug){ log(result);}
                          ! }
                          ! });
                          ! } else {
                          ! log(error);
                          ! }
                          ! });
                          ! });
                          ! // create and fill all states for bouquets and station names
                          ! GetVUplusChannels();____ ____Code mag natürlich noch optimierbar sein. Ich fände es cool, wenn es diese Funktion gleich im Adapter gäbe, oder gibt es einen Grund, das dort nicht zu implementieren? Kann dann so aussehen (roter Kasten):

                          VUplus.jpg

                          Die Widgets dafür sind dann wie folgt:__

                          ! [{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.XMLParsing.VUplus.BouquetNumberCurrent","values":"{javascript.0.XMLParsing.VUplus.BouquetNumbers}","texts":"{javascript.0.XMLParsing.VUplus.BouquetNames}","height":"170","open":false,"gestures-offsetX":0,"gestures-offsetY":0,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"g_visibility":false,"g_fixed":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide"},"style":{"left":"370px","top":"213px","width":"214px","height":"29px"},"widgetSet":"jqui"},{"tpl":"tplValueString","data":{"oid":"","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_prepend":"Bouquet:","html_append":"","test_html":"","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide"},"style":{"left":"376px","top":"184px","color":"#ffffff","width":"186px","height":"20px","text-shadow":"rgba(0, 0, 0, 0.9) 3px 3px 4px","font-family":"Tahoma, Geneva, sans-serif"},"widgetSet":"basic"},{"tpl":"tplJquiSelectList","data":{"oid":"javascript.0.XMLParsing.VUplus.ChannelReferenceCurrent","values":"{javascript.0.XMLParsing.VUplus.BouquetCurrentlySelected.ChannelReferences}","texts":"{javascript.0.XMLParsing.VUplus.BouquetCurrentlySelected.ChannelNames}","height":"170","open":false,"gestures-offsetX":0,"gestures-offsetY":0,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"g_visibility":false,"g_fixed":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide"},"style":{"left":"605px","top":"212px","width":"217px","height":"29px"},"widgetSet":"jqui"},{"tpl":"tplValueString","data":{"oid":"","g_fixed":false,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"html_prepend":"Sender:","html_append":"","test_html":"","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","values":"{javascript.0.XMLParsing.VUplus.Bouquet3.ChannelReferences}","texts":"{javascript.0.XMLParsing.VUplus.Bouquet3.ChannelNames}"},"style":{"left":"607px","top":"181px","color":"#ffffff","width":"186px","height":"20px","text-shadow":"rgba(0, 0, 0, 0.9) 3px 3px 4px","font-family":"Tahoma, Geneva, sans-serif"},"widgetSet":"basic"}] __Vielleicht mag das ja jemand einbauen (meine Git-/Adapter- Kenntnisse sind leider nicht gut genug).

                          Ne Timer-Liste wäre auch cool. Vielleicht schafft das ja auch jemand schneller als ich… ;)____ `

                          1 Reply Last reply Reply Quote 0
                          • Matten Matten
                            Matten Matten last edited by

                            @Stefan-G:

                            Ne Timer-Liste wäre auch cool. Vielleicht schafft das ja auch jemand schneller als ich… 😉 `

                            an der Timer Liste bin ich dran,

                            so wie das automatische erkennen der HDD.

                            Wie soll denn so Die Timerliste aussehen?

                            dachte so:
                            3476_timerliste.jpg
                            oder wollt ihr mehr Infos vom jeweiligen Timer?

                            Gruß

                            Matten Matten

                            1 Reply Last reply Reply Quote 0
                            • ?
                              A Former User last edited by

                              Datum und Uhrzeit wäre doch noch schön.

                              1 Reply Last reply Reply Quote 0
                              • S
                                Stefan-G last edited by

                                Wiederholungsart für Timer (einmalig, wöchentlich, …) fänd ich auch cool, dann kann man sehen, ob's für ne Serie eine "Serientimer" ist oder nur einmalig aufgenommen wird. Dafür wäre dann auch die "Timer löschen" Funktion gut. Sonst sieht das doch schon super aus.

                                1 Reply Last reply Reply Quote 0
                                • Matten Matten
                                  Matten Matten last edited by

                                  So Freunde der Sonne

                                  enigma2 Adapter V 1.1.0

                                  ist raus. Viel Spaß damit.

                                  1.1.0 (2018-10-26)

                                  (Matten-Matten) add Timer, max 8 Timer

                                  (Matten-Matten) add manually updating Timer states

                                  (Matten-Matten) optimizations

                                  (Matten-Matten) auto Check HDD (max.2 HDD)

                                  (Matten-Matten) add manually updating Enigma2 states

                                  (Matten-Matten) read the device information only at the adapter start

                                  (Matten-Matten) fixed hard disk (HDD) update Time every 30 sec.

                                  https://github.com/Matten-Matten/ioBroker.enigma2

                                  Gruß

                                  Matten Matten

                                  1 Reply Last reply Reply Quote 0
                                  • M
                                    mikiline last edited by

                                    läuft 😉 sehr gut

                                    1 Reply Last reply Reply Quote 0
                                    • N
                                      NightWatcher last edited by

                                      Hat den Adapter jemand unter Windows am laufen? Bei mir bringt er das System innerhalb kürzester Zeit zum Absturz (CPU geht auf 100%)

                                      Ich habe dann mal kurz in den Quellcode schauen wollen… leider ist der noch sehr dürftig geschrieben.

                                      @Matten-Matten: Wird der noch irgendwann optimiert? Ich meine, ich könnte das ja theoretisch machen, aber ich musste Ihn nach 5min sofort wieder deaktivieren, wegen o.g. Problem.

                                      1 Reply Last reply Reply Quote 0
                                      • Matten Matten
                                        Matten Matten last edited by

                                        @NightWatcher:

                                        Hat den Adapter jemand unter Windows am laufen? Bei mir bringt er das System innerhalb kürzester Zeit zum Absturz (CPU geht auf 100%)

                                        Ich habe dann mal kurz in den Quellcode schauen wollen… leider ist der noch sehr dürftig geschrieben.

                                        @Matten-Matten: Wird der noch irgendwann optimiert? Ich meine, ich könnte das ja theoretisch machen, aber ich musste Ihn nach 5min sofort wieder deaktivieren, wegen o.g. Problem. `

                                        ich teste den Adpter die ganze Zeit an meinem Rechner auch Win 10 ohne Probleme ?

                                        das ist ja sehr eigenartig.

                                        hast du ein anderen PC schon getestet?

                                        Und ja meine Programierung ist geschuldet durch fehlende Kenntnisse schlecht. :oops: :oops: :oops:

                                        die RAM Nutzung war bisher bei max 70% vom Adapter

                                        Gruß

                                        Matten Matten

                                        1 Reply Last reply Reply Quote 0
                                        • N
                                          NightWatcher last edited by

                                          70% ist schon extrem viel. Das kann schon erklären, wieso er bei mir in die komplette Auslastung geht, da dort noch ein SQL Server und diverse andere Größere Sachen laufen.

                                          Ich würde vorschlagen, dass ich mal anfange, alles ein wenig in Schleifen zu bauen. Ich forke mir mal dein Repo und bin es dann bei mir an. Ich pushe dann später an dein gitrepo. Dann hast du auch keine Beschränkung (z.B. auf die Timerliste) und ich kann den Fehler eher finden.

                                          1 Reply Last reply Reply Quote 0
                                          • Matten Matten
                                            Matten Matten last edited by

                                            sorry 70 mb meine ich

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            948
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            82
                                            739
                                            182799
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo