Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. Test Adapter enigma2 v1.2.x

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Test Adapter enigma2 v1.2.x

    This topic has been deleted. Only users with topic management privileges can see it.
    • J
      Jan1 @Atifan last edited by

      @Atifan
      Kommt drauf an, was alles aus geschaltet ist. Wenn LAN/WLAN im Standby aus ist und der Receiver kein WOL unterstützt eben nicht.

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

        Ahso, ja WOL ok. Habe eine VU+ Uno 4K SE, muss ich mal schauen ob es mit der geht.

        J 1 Reply Last reply Reply Quote 0
        • J
          Jan1 @Atifan last edited by

          @Atifan
          Mein Dream 900 machts z. B. nicht, was auch immer bisschen bemängelt wird.

          1 Reply Last reply Reply Quote 0
          • K
            Kuddel @Scrounger last edited by Scrounger

            @Scrounger sagte in Material Design Widgets: Top App Bar Widget:

            Wurden die Daten der Aufnahmen per Enigma2 Adapter ausgelesen ?

            Wie kann ich Daten so darstellen?

            Edit: verschoben, da keine Frage zu TopAppBar Widget Einstellung

            Scrounger 1 Reply Last reply Reply Quote 0
            • K
              Kuddel @Scrounger last edited by Scrounger

              @Scrounger ah kleiner Denkfehler von mir.

              Ich meinte die Timer und nicht die Aufnahmen.

              Die timer werden ausgelesen und aktuell leider nur so dargestellt:

              c946546d-9504-471a-8adf-0db62b1865f2-grafik.png

              Edit: verschoben, da keine Frage zu TopAppBar Widget Einstellung

              Scrounger 1 Reply Last reply Reply Quote 0
              • Scrounger
                Scrounger Developer @Kuddel last edited by Scrounger

                @Kuddel
                Bitte poste deine Fragen zum Enigma Adapter / Darstellung mit Wigdets mit Enigma Adapter im entsprechenden Thema, das hat hier nix mit der TopAppBar zu tun!
                https://forum.iobroker.net/topic/25112/test-adapter-enigma2-v1-2-x

                Edit: verschoben, da keine Frage zu TopAppBar Widget Einstellung

                K 1 Reply Last reply Reply Quote 0
                • K
                  Kuddel @Scrounger last edited by Scrounger

                  @Scrounger bereits passiert:

                  https://forum.iobroker.net/topic/25112/test-adapter-enigma2-v1-2-x/299?page=15

                  Edit: verschoben, da keine Frage zu TopAppBar Widget Einstellung

                  1 Reply Last reply Reply Quote 0
                  • Scrounger
                    Scrounger Developer @Kuddel last edited by

                    @Kuddel sagte in Test Adapter enigma2 v1.2.x:

                    @Scrounger ich bin gerade dabei eine Übersicht meiner geplanten Aufnahmen in meiner VIs einzubauen.

                    Dein Skript läuft bei mir aber irgednwie nicht.

                    Das Problem ist immer Zeile 68

                    myDevices.Netzwerk.Devices.VuPlus.TimerList.setState(JSON.stringify(myList), true);
                    

                    Ich nutze hier den linkeddevices adapter!

                    Musst das natürlich entsprechend im skript korrigieren.
                    Du musst den state setzen z.B.

                    setState('datenpunktId', JSON.stringify(myList), true)
                    
                    K 1 Reply Last reply Reply Quote 0
                    • K
                      Kuddel @Scrounger last edited by

                      @Scrounger ja jetzt funktioniert es.

                      Jetzt möchte ich das Ganze mit dem Widget "materialdesign - Table" darstellen-

                      Wie stelle ich im Widget ein, welche Infos in welcher Spalte dargestellt werden?

                      Sortierung JSON:

                      channelImage, title, recordDateFormatted, subtitle, starTimeFormatted, startTime, endTimeFormatted, channel
                      

                      Spätere Sortierung im Widget

                      channellimage, channell, titel recordDateFormatted, starTimeFormatted, endTimeFormatted
                      

                      Und kann man im Skript evtl. noch die Laufzeit / Dauer einbauen?

                      Scrounger 1 Reply Last reply Reply Quote 0
                      • Scrounger
                        Scrounger Developer @Kuddel last edited by Scrounger

                        @Kuddel sagte in Test Adapter enigma2 v1.2.x:

                        @Scrounger ja jetzt funktioniert es.

                        Jetzt möchte ich das Ganze mit dem Widget "materialdesign - Table" darstellen-

                        Wie stelle ich im Widget ein, welche Infos in welcher Spalte dargestellt werden?

                        Macht man über die reihenfolge der properties des json strings:

                                        myList.push(
                                            {
                                                channelImage: `/vis.0/myImages/picons/${listItem.serviceRefName}.png`,  //Saplte 1
                                                title: title,  //Spalte 2
                                                recordDateFormatted: recordDateFormatted,  //Spalte 3
                                                subtitle: subtitle,  //Spalte 4
                                                starTimeFormatted: starTimeFormatted,
                                                startTime: listItem.starTime,
                                                endTimeFormatted: endTimeFormatted,
                                                channel: listItem.channel,
                                            }
                                        )
                        

                        Und kann man im Skript evtl. noch die Laufzeit / Dauer einbauen?

                        Ja kannst über start und endzeit berechnen. Geht z.B. sehr einfach mit der momentjs library

                        K 2 Replies Last reply Reply Quote 0
                        • K
                          Kuddel @Scrounger last edited by

                          @Scrounger das sieht doch schonmal gut aus:

                          57b31b2b-eea8-434b-93ba-d787cb53b2ee-grafik.png

                          1 Reply Last reply Reply Quote 0
                          • K
                            Kuddel @Scrounger last edited by Kuddel

                            @Scrounger ein paar Fehler bekomme ich aber doch noch:

                            javascript.0	2020-03-17 12:11:00.871	error	at tryCatcher (/opt/iobroker/node_modules/standard-as-callback/built/utils.js:11:23)
                            javascript.0	2020-03-17 12:11:00.871	error	at client.get (/opt/iobroker/node_modules/iobroker.js-controller/lib/states/statesInRedis.js:580:17)
                            javascript.0	2020-03-17 12:11:00.871	error	at adapter.getForeignState (/opt/iobroker/node_modules/iobroker.javascript/main.js:1055:17)
                            javascript.0	2020-03-17 12:11:00.871	error	at createProblemObject (/opt/iobroker/node_modules/iobroker.javascript/main.js:1464:17)
                            javascript.0	2020-03-17 12:11:00.871	error	at prepareScript (/opt/iobroker/node_modules/iobroker.javascript/main.js:1412:38)
                            javascript.0	2020-03-17 12:11:00.871	error	at execute (/opt/iobroker/node_modules/iobroker.javascript/main.js:1228:27)
                            javascript.0	2020-03-17 12:11:00.871	error	at Script.runInNewContext (vm.js:139:17)
                            javascript.0	2020-03-17 12:11:00.871	error	at Script.runInContext (vm.js:133:20)
                            javascript.0	2020-03-17 12:11:00.871	error	at script.js.java.abfragen.receiver_aufnahmen:153:1
                            javascript.0	2020-03-17 12:11:00.871	error	at formatList (script.js.java.abfragen.receiver_aufnahmen:79:27)
                            javascript.0	2020-03-17 12:11:00.871	error	(38439) script.js.java.abfragen.receiver_aufnahmen: [createList] stack: TypeError: Cannot read property 'includes' of undefined
                            javascript.0	2020-03-17 12:11:00.871	error	(38439) script.js.java.abfragen.receiver_aufnahmen: [createList] error: Cannot read property 'includes' of undefined
                            

                            Hier mein Skript:

                            
                            
                            // import
                            
                            const moment = require("moment");
                            
                            const momentDurationFormatSetup = require("moment-duration-format");
                            
                            moment.locale("de");
                            
                            
                            
                            let enigma2AdapterTimerListId = 'enigma2.0.enigma2.TIMER_LIST';
                            
                            
                            
                            on({ id: enigma2AdapterTimerListId }, formatList);
                            
                            
                            
                            function formatList() {
                            
                               try {
                            
                                   let list = JSON.parse(getState(enigma2AdapterTimerListId).val);
                            
                                   let myList = [];
                            
                            
                            
                                   if (list && list !== null && list !== undefined && list !== '') {
                            
                            
                            
                                       for (var i = 0; i <= list.length - 1; i++) {
                            
                                           let listItem = list[i]
                            
                            
                            
                            
                            
                                           let startTime = moment(listItem.starTime * 1000);
                            
                                           let endTime = moment(listItem.endTime * 1000);
                            
                                           let recordDateFormatted = `${startTime.format('ddd')} ${startTime.format('DD.MM')}`
                            
                                           let starTimeFormatted = `${startTime.format('LT')}`
                            
                                           let endTimeFormatted = `${endTime.format('LT')}`
                            
                            
                            
                                           if (moment().isSame(startTime, 'day')) {
                            
                                               recordDateFormatted = `Heute ${startTime.format('DD.MM')}`;
                            
                                           } else if (moment().add(1, 'day').isSame(startTime, 'day')) {
                            
                                               recordDateFormatted = `Morgen ${startTime.format('DD.MM')}`;
                            
                                           }
                            
                            
                            
                                           let rawtitle = listItem.title;
                            
                            
                            
                            
                            
                                           let title = rawtitle;
                            
                                           let subtitle = listItem.subtitle;
                            
                            
                            
                                           if (title.includes(' - ')) {
                            
                                               title = rawtitle.substring(0, rawtitle.indexOf(' - ')).trim();
                            
                            
                            
                                               if (subtitle === '') {
                            
                                                   subtitle = rawtitle.substring(rawtitle.indexOf(' - ') + 2, rawtitle.length).trim();
                            
                                               }
                            
                                           }
                            
                            
                            
                            
                            
                                           myList.push(
                            
                                               {
                            
                                                   channelImage: `http://192.168.4.24:8080/picon/${listItem.serviceRefName}.png`,
                                                   channel: listItem.channel,
                                                   title: title,
                                                   recordDateFormatted: recordDateFormatted,
                                                   starTimeFormatted: starTimeFormatted,
                                                   endTimeFormatted: endTimeFormatted,
                                                   subtitle: subtitle,
                                                   startTime: listItem.starTime,
                                                   
                            
                            
                            
                                                   
                            
                                                   
                            
                                               }
                            
                                           )
                            
                                       }
                            
                            
                            
                                       myList.sort(function (a, b) {
                            
                                           // Liste sortieren nach Startzeit
                            
                                           return a.starTime == b.starTime ? 0 : +(a.starTime > b.starTime) || -1;
                            
                                       });
                            
                                   }
                            
                            
                            
                                   setState('javascript.0.sonstige.vu_timer_liste', JSON.stringify(myList), true);
                            
                            
                            
                               } catch (err) {
                            
                                   console.error(`[createList] error: ${err.message}`);
                            
                                   console.error(`[createList] stack: ${err.stack}`);
                            
                               }
                            
                            }
                            
                            
                            
                            formatList();
                            
                            

                            EDIT: Fehlalarm. Das war ein anderes Skript mit dem ich angefangen habe, die Aufnahmen auszuwerten.

                            1 Reply Last reply Reply Quote 0
                            • K
                              Kuddel last edited by

                              Ich habe mich jetzt an ein Skript zum Auflisten der ganzen Aufnahmen gemacht:

                              So sehen die Rohdaten vom Enigma-Adapter aus:

                              [{"filename_stripped":"20200316_2215_-_KABEL_EINS_HD_-_DIE_BRUCE_WILLIS_STORY.ts",
                              "description":"Die Bruce Willis StoryDokumentation, D 2020",
                              "tags":"0",
                              "filesize":4989953340,
                              "eventname":"Die Bruce Willis Story",
                              "servicename":"kabel eins HD",
                              "filesize_readable":"4.65 GB",
                              "serviceref":"1:0:0:0:0:0:0:0:0:0:/media/hdd/movie/20200316_2215_-_KABEL_EINS_HD_-_DIE_BRUCE_WILLIS_STORY.ts",
                              "filename":"/media/hdd/movie/20200316_2215_-_KABEL_EINS_HD_-_DIE_BRUCE_WILLIS_STORY.ts",
                              "length":"71:57",
                              "lastseen":0,
                              "fullname":"1:0:0:0:0:0:0:0:0:0:/media/hdd/movie/20200316_2215_-_KABEL_EINS_HD_-_DIE_BRUCE_WILLIS_STORY.ts",
                              "recordingtime":1584393300,
                              "descriptionExtended":"Er ist der berühmteste Glatzkopf Hollywoods: Bruce Willis. Anlässlich seines 65. Geburtstages zeichnet Kabel Eins das Leben des Stars nach und deckt dabei so manches Geheimnis auf. Denn was viele nicht wissen: Abseits seiner Schauspielkarriere ist Willis ein erfolgreicher Geschäftsmann, Sänger, äußert sich immer wieder zu Politik und Zeitgeschehen - und ist bis heute eigentlich ein waschechter Pfälzer Junge ...",
                              "begintime":"16.3., 22:15",
                              "service":"1:0:19:C359:271E:F001:FFFF0000:0:0:0:",
                              "serviceRefName":"1_0_19_C359_271E_F001_FFFF0000_0_0_0"},
                              

                              So sieht aktuell meine VIS aus:
                              e269c70d-8ee0-4ea5-ae74-b4e757d1dc0a-grafik.png

                              Probleme:
                              *Die Anzeige von Datum und Startzeit wie man es von den Aufnahmen kennt ( Heute 17.03. | 20:15 uhr)
                              *Die Sortierung nach Datum fuktioniert nicht

                              Hier mein Skript

                              const moment = require("moment");
                              const momentDurationFormatSetup = require("moment-duration-format");
                              moment.locale("de");
                              
                              //Setzer des DPs der Liste mit den Filmen
                              let enigma2AdapterMovieListId = 'enigma2.0.enigma2.MOVIE_LIST';
                              
                              //Skript ausführen, wenn Film-Liste geändert wird
                              on({ id: enigma2AdapterMovieListId }, formatList);
                              
                              
                              function formatList() {
                                 try {
                                     let list = JSON.parse(getState(enigma2AdapterMovieListId).val);
                                     let myList = [];
                              
                                     if (list && list !== null && list !== undefined && list !== '') {
                                         for (var i = 0; i <= list.length - 1; i++) {
                                             let listItem = list[i]
                                             let startTime = moment(listItem.begintime);
                                             let startdatum = listItem.begintime
                                             
                                             //Output
                                             myList.push(
                                                 {
                                                     channelImage: `http://192.168.4.24:8080/picon/${listItem.serviceRefName}.png`,
                                                     channel: listItem.servicename,
                                                     title: listItem.eventname,
                                                     startdatum: startdatum,
                                                     dauer: listItem.length,
                                                     groesse: listItem.filesize_readable
                                                     
                                                 }
                                             )
                                         }
                                         myList.sort(function (a, b) {
                                             // Liste sortieren nach Startzeit
                                             return a.startTime == b.startTime ? 0 : +(a.startzeit > b.startzeit) || -1;
                                         });
                                     }
                                     setState('javascript.0.sonstige.vu_aufnahmen_liste', JSON.stringify(myList), true);
                                 } catch (err) {
                                     console.error(`[createList] error: ${err.message}`);
                                     console.error(`[createList] stack: ${err.stack}`);
                                 }
                              }
                              
                              
                              
                              formatList();
                              
                              

                              @Scrounger vllt. schaust du bei Gelegenheit mal drüber 🙂

                              Scrounger 1 Reply Last reply Reply Quote 0
                              • Scrounger
                                Scrounger Developer @Kuddel last edited by

                                @Kuddel sagte in Test Adapter enigma2 v1.2.x:

                                Ich habe mich jetzt an ein Skript zum Auflisten der ganzen Aufnahmen gemacht:

                                Probleme:
                                *Die Anzeige von Datum und Startzeit wie man es von den Aufnahmen kennt ( Heute 17.03. | 20:15 uhr)
                                *Die Sortierung nach Datum fuktioniert nicht

                                Hier mal mein Skript für die Aufnahmen:

                                // import
                                const moment = require("moment");
                                const momentDurationFormatSetup = require("moment-duration-format");
                                moment.locale("de");
                                
                                let enigma2AdapterRecordListId = 'enigma2.0.enigma2.MOVIE_LIST';
                                
                                on({ id: enigma2AdapterRecordListId }, formatList);
                                
                                function formatList() {
                                    try {
                                        let list = JSON.parse(getState(enigma2AdapterRecordListId).val);
                                        let myList = [];
                                
                                        if (list && list !== null && list !== undefined && list !== '') {
                                
                                            for (var i = 0; i <= list.length - 1; i++) {
                                                let listItem = list[i]
                                
                                                let recordTime = moment(listItem.recordingtime * 1000);
                                                let recordDateFormatted = `${recordTime.format('ddd')} ${recordTime.format('DD.MM')}`;
                                                let recordTimeFormatted = `${recordTime.format('LT')}`
                                
                                                if (moment().isSame(recordTime, 'day')) {
                                                    recordDateFormatted = `Heute ${recordTime.format('DD.MM')}`;
                                                } else if (moment().add(-1, 'day').isSame(recordTime, 'day')) {
                                                    recordDateFormatted = `Gestern ${recordTime.format('DD.MM')}`;
                                                }
                                
                                
                                                let rawtitle = listItem.eventname;
                                                let title = rawtitle;
                                                let subtitle = listItem.subtitle;
                                
                                                if (title.includes(' - ')) {
                                                    title = rawtitle.substring(0, rawtitle.indexOf(' - ')).trim();
                                                    subtitle = rawtitle.substring(rawtitle.indexOf(' - ') + 2, rawtitle.length).trim();
                                
                                                    if (subtitle === undefined) {
                                                        subtitle = '';
                                                    }
                                                }
                                
                                                
                                                myList.push(
                                                    {
                                                        channelImage: `/vis.0/myImages/picons/${listItem.serviceRefName}.png`,
                                                        title: title,
                                                        recordDateFormatted: recordDateFormatted,
                                                        lenght: listItem.length + ' min, ' + listItem.filesize_readable,
                                                        recordTime: listItem.recordingtime,
                                                        subtitle: subtitle,
                                                        channel: listItem.servicename,
                                                        size: listItem.filesize_readable,
                                                    }
                                                )
                                            }
                                
                                            myDevices.Netzwerk.Devices.VuPlus.RecordList.setState(JSON.stringify(myList), true);
                                        }
                                    } catch (err) {
                                        console.error(`[formatList] error: ${err.message}`);
                                        console.error(`[formatList] stack: ${err.stack}`);
                                    }
                                }
                                
                                formatList();
                                

                                Anzeige von Datum und Uhrzeit Zeile 24-28, muss über das skript formatiert werden:

                                                if (moment().isSame(recordTime, 'day')) {
                                                    recordDateFormatted = `Heute ${recordTime.format('DD.MM')}`;
                                                } else if (moment().add(-1, 'day').isSame(recordTime, 'day')) {
                                                    recordDateFormatted = `Gestern ${recordTime.format('DD.MM')}`;
                                                }
                                

                                damit die Sortierung funktioniert, brauchst du die raw daten als timestamp ohne irgendeine formatuierung und musst dafür eine eigene property im Objekt verwenden:

                                                myList.push(
                                                    {
                                                        channelImage: `/vis.0/myImages/picons/${listItem.serviceRefName}.png`,
                                                        title: title,
                                                        recordDateFormatted: recordDateFormatted,
                                                        lenght: listItem.length + ' min, ' + listItem.filesize_readable,
                                                        recordTime: listItem.recordingtime,  // timestamp der Aufnahme -> darüber kann sortiert werden
                                                        subtitle: subtitle,
                                                        channel: listItem.servicename,
                                                        size: listItem.filesize_readable,
                                                    }
                                                )
                                

                                Dann musst beim Widget für die Spalte mit deinem formatierten Datum 29.12.2019, 8:50h die Property recordTime als Objektname zum Sortieren eintragen:
                                590985e2-b3f8-4487-8aaa-7b69f1d26743-grafik.png

                                K 1 Reply Last reply Reply Quote 0
                                • K
                                  Kuddel @Scrounger last edited by

                                  @Scrounger vielen Dank für die Hilfe,

                                  Jetzt sieht es so aus und funktioniert:

                                  a2bd25d2-d8f1-4f7c-b9ce-66a786063c7d-grafik.png

                                  Spalte 7 (recordTime) ist ausgeblendet und wird in Spalte 4 (Datum) zum sortieren verwendet

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

                                    Moin!
                                    Falls jemand Interesse hat, hab soeben ein Nodered Subflow für Enigma2 veröffentlicht.

                                    Bild Text https://github.com/Matten-Matten/node-red-enigma2-flow

                                    Gruß
                                    Matten Matten

                                    1 Reply Last reply Reply Quote 2
                                    • J
                                      JanekHinderks @Kuddel last edited by

                                      @Kuddel Kannst du mir eine fertige View zur Verfügung stellen? 🙂

                                      Vielen Dank im Voraus.

                                      Gruß Janek 🙂

                                      K 1 Reply Last reply Reply Quote 0
                                      • K
                                        Kuddel @JanekHinderks last edited by

                                        @JanekHinderks nur die Liste der Aufnahmen ?

                                        J 1 Reply Last reply Reply Quote 0
                                        • J
                                          JanekHinderks @Kuddel last edited by

                                          @Kuddel Ich suche eigentlich eine View, wo man z.b. programme / Lautstärke etc. schalten kann.
                                          Parallel dazu halt etwas für Aufnahmen 🙂

                                          Viell. hast du ja was für mich. Du könntest mir auch erstmal Beispielbilder von deiner View schicken. Das wäre echt cool !

                                          Danke schonmal 🙂

                                          K 1 Reply Last reply Reply Quote 0
                                          • K
                                            Kuddel @JanekHinderks last edited by

                                            @JanekHinderks

                                            Hier ist meine VIS als Export

                                            https://forum.iobroker.net/topic/30497/vorstellung-meine-dritte-vis/2?page=1

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            931
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            adapter enigma2
                                            71
                                            640
                                            122656
                                            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