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

      Ja wenn ich auf den Butten des Datenpunktes klicke geht es. OK ich frage mal im NodeRed Bereich.

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

        Habs hinbekommen. Die Buttons müssen über ein false angesteuert werden.
        0b50d679-816f-4d90-b450-93f39443ae97-image.png

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

          Hm ich kann jetzt zwar den Receiver steuer wenn er bereits an ist.
          Ich kann ihn in Standby fahren und aus dem Standby aufwecken.
          Ich kann ihn aber nicht aus dem DeepStandby aufwecken.
          Geht das nicht?

          J 1 Reply Last reply Reply Quote 0
          • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.2k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

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