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.
    • 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
                                          • Matten Matten
                                            Matten Matten last edited by

                                            Hey all,

                                            Neue Version

                                            Bild Text

                                            NPM version npm i iobroker.enigma2

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


                                            Changelog

                                            1.3.1 (2020-08-20)

                                            • (Matten-Matten) correction in .enigma2.Timer_is_set & .enigma2.isRecording login handling

                                            Gruß
                                            Matten Matten

                                            Neuschwansteini 1 Reply Last reply Reply Quote 2
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            469
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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