Jump to content


Photo

edision osmini openpli 7


  • Please log in to reply
32 replies to this topic

#1 Drago

  • Member
  • 17 posts

0
Neutral

Posted 28 March 2019 - 16:08

Hello everyone as the title suggests I have a problem with the aforementioned decoder, that is I mounted another image and everything worked including the infamous hdmi-cec switching off and switching on the decoder and TV
then I install the openpli 7 and the hdmi-cec is acting up. Switching on always ok, turning it off instead, if I turn off after a short time turning on everything ok if time goes by it just turns off the deco and the TV stays on

help



Re: edision osmini openpli 7 #2 ims

  • PLi® Core member
  • 13,608 posts

+211
Excellent

Posted 28 March 2019 - 16:19

try increase ms for delay in HDMI CEC (or disable it)


Kdo nic nedělá, nic nezkazí!

Re: edision osmini openpli 7 #3 Drago

  • Member
  • 17 posts

0
Neutral

Posted 29 March 2019 - 09:55

changing the ms the problem is not solved
Hi everyone

HDMI-CEC Problems
I compared the hdmi-cec versions of the two images used
my working image and openpli and there are significant differences
I downloaded and decompiled my image and openpli7

I tried to compare the files and there are considerable differences, but I stop here, I can't fix. HELP

here the plugin.py files of the two images

 

my image

 

# Python bytecode 2.7 (62211)
# Embedded file name: /usr/lib/enigma2/python/Plugins/SystemPlugins/HdmiCEC/plugin.py
# Compiled at: 2019-03-27 22:48:09
from boxbranding import getMachineBrand, getMachineName
from os import path
from Screens.Screen import Screen
from Components.ConfigList import ConfigListScreen
from Components.config import config, configfile, getConfigListEntry
from Components.Sources.StaticText import StaticText
from Components.Label import Label
from Tools.Directories import fileExists
if path.exists('/dev/hdmi_cec') or path.exists('/dev/misc/hdmi_cec0'):
    import Components.HdmiCec

class HdmiCECSetupScreen(Screen, ConfigListScreen):
    skin = '\n\t<screen position="c-300,c-250" size="600,500" title="HDMI CEC setup">\n\t\t<widget name="config" position="15,15" size="720,350" scrollbarMode="showOnDemand"/>\n\t\t<widget name="description" position="15,375" size="720,90" font="Regular;19" halign="center" valign="center" />\n\t\t<widget source="current_address" render="Label" position="15,475" size="550,30" zPosition="10" font="Regular;21" halign="left" valign="center" />\n\t\t<widget source="fixed_address" render="Label" position="15,505" size="550,30" zPosition="10" font="Regular;21" halign="left" valign="center" />\n\t\t<ePixmap pixmap="buttons/red.png" position="20,e-45" size="140,40" alphatest="on" />\n\t\t<ePixmap pixmap="buttons/green.png" position="160,e-45" size="140,40" alphatest="on" />\n\t\t<ePixmap pixmap="buttons/yellow.png" position="300,e-45" size="140,40" alphatest="on" />\n\t\t<ePixmap pixmap="buttons/blue.png" position="440,e-45" size="140,40" alphatest="on" />\n\t\t<widget source="key_red" render="Label" position="20,e-45" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" />\n\t\t<widget source="key_green" render="Label" position="160,e-45" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" />\n\t\t<widget source="key_yellow" render="Label" position="300,e-45" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#a08500" transparent="1" />\n\t\t<widget source="key_blue" render="Label" position="440,e-45" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#18188b" transparent="1" />\n\t</screen>'

    def __init__(self, session):
        Screen.__init__(self, session)
        Screen.setTitle(self, _('HDMI CEC Setup'))
        from Components.ActionMap import ActionMap
        self['key_red'] = StaticText(_('Cancel'))
        self['key_green'] = StaticText(_('OK'))
        self['key_yellow'] = StaticText(_('Set fixed'))
        self['key_blue'] = StaticText(_('Clear fixed'))
        self['current_address'] = StaticText()
        self['fixed_address'] = StaticText()
        self['description'] = Label()
        self['actions'] = ActionMap(['SetupActions', 'ColorActions', 'MenuActions'], {'ok': self.keyGo,
           'save': self.keyGo,
           'cancel': self.closeRecursive,
           'green': self.keyGo,
           'red': self.closeRecursive,
           'yellow': self.setFixedAddress,
           'blue': self.clearFixedAddress,
           'menu': self.closeRecursive,
           'up': self.keyUp,
           'down': self.keyDown}, -2)
        self.onChangedEntry = []
        self.list = []
        ConfigListScreen.__init__(self, self.list, session=self.session, on_change=self.changedEntry)
        self.createSetup()

    def createSetup(self):
        self.list = []
        self.list.append(getConfigListEntry(_('Enabled'), config.hdmicec.enabled, _('helptext'), 'refreshlist'))
        if config.hdmicec.enabled.value:
            tab = '          '
            self.list.append(getConfigListEntry(_('Advanced Settings'), config.hdmicec.advanced_settings, _('helptext'), 'refreshlist'))
            if config.hdmicec.advanced_settings.value:
                self.list.append(getConfigListEntry(_('Load Default Settings'), config.hdmicec.default_settings, _('helptext'), 'refreshlist'))
            self.list.append(getConfigListEntry(_('Regard deep standby as standby'), config.hdmicec.handle_deepstandby_events, _('helptext'), 'refreshlist'))
            if config.hdmicec.advanced_settings.value and config.hdmicec.handle_deepstandby_events.value and config.workaround.deeprecord.value:
                self.list.append(getConfigListEntry(tab + _('Wait for timesync at startup'), config.hdmicec.deepstandby_waitfortimesync, _("If the 'deep standby workaround' is enabled, it waits until the system time is syncronised. Depending on the requirement, the devices wake up will continuing after a maximum of 2 minutes.")))
            self.list.append(getConfigListEntry(_('Put TV in standby'), config.hdmicec.control_tv_standby, _('helptext'), 'refreshlist'))
            if config.hdmicec.advanced_settings.value and config.hdmicec.control_tv_standby.value:
                self.list.append(getConfigListEntry(tab + _('Even if TV has another input active?'), config.hdmicec.tv_standby_notinputactive, _('You can skip this function and turn off the TV when you wake the receiver from standby and immediately switch back to standby.')))
            self.list.append(getConfigListEntry(_('Wakeup TV from standby'), config.hdmicec.control_tv_wakeup, _('helptext'), 'refreshlist'))
            if config.hdmicec.advanced_settings.value and config.hdmicec.control_tv_wakeup.value:
                self.list.append(getConfigListEntry(tab + _("Even if a 'zap' recording timer starting?"), config.hdmicec.tv_wakeup_zaptimer, _('helptext')))
                self.list.append(getConfigListEntry(tab + _("Even if a 'zap and record' recording timer starting?"), config.hdmicec.tv_wakeup_zapandrecordtimer, _('helptext')))
                self.list.append(getConfigListEntry(tab + _("Even if a 'wakeup' power timer starting?"), config.hdmicec.tv_wakeup_wakeuppowertimer, _('helptext')))
            self.list.append(getConfigListEntry(_('Switch TV to correct input'), config.hdmicec.report_active_source, _('helptext'), 'refreshlist'))
            if config.hdmicec.advanced_settings.value and config.hdmicec.report_active_source.value:
                self.list.append(getConfigListEntry(tab + _('Switch off the TV to correct input'), config.hdmicec.workaround_activesource, _("Some TV devices can't swich to correct input if a another hdmi port active. This setting set the TV to standby before.\n(If the TV does not turn back on, may require a slower transmission interval or the repetition of wake-up commands.)")))
            self.list.append(getConfigListEntry(_('Handle wakeup from TV'), config.hdmicec.handle_tv_wakeup, _('Choose a setting where your receiver wakes up from standby.')))
            self.list.append(getConfigListEntry(_('Handle standby from TV'), config.hdmicec.handle_tv_standby, _('helptext'), 'refreshlist'))
            if config.hdmicec.advanced_settings.value:
                self.list.append(getConfigListEntry(_('Handle input from TV'), config.hdmicec.handle_tv_input, _('helptext'), 'refreshlist'))
                if config.hdmicec.handle_tv_standby.value != 'disabled' or config.hdmicec.handle_tv_input.value != 'disabled':
                    self.list.append(getConfigListEntry(_('Time delay until standby or deep standby'), config.hdmicec.handle_tv_delaytime, _("'Handle standby from TV' has a higher priority as 'Handle input from TV'")))
            self.list.append(getConfigListEntry(_('Forward volume keys'), config.hdmicec.volume_forwarding, _('Activation takes place immediately. If this feature is not supported, the volume keys has no function!')))
            self.list.append(getConfigListEntry(_('Put your AV Receiver in standby'), config.hdmicec.control_receiver_standby, _('helptext')))
            self.list.append(getConfigListEntry(_('Wakeup your AV Receiver from standby'), config.hdmicec.control_receiver_wakeup, _('helptext')))
            self.list.append(getConfigListEntry(_('Use TV remote control'), config.hdmicec.report_active_menu, _('Activation takes place immediately. If it does feature not work, then try again with a slower send interval.')))
            self.list.append(getConfigListEntry(_('Minimum send interval'), config.hdmicec.minimum_send_interval, _('Try to slow down the send interval if not all commands are executed.')))
            if config.hdmicec.advanced_settings.value:
                self.list.append(getConfigListEntry(_('Repeat the sent standby and wakeup commands'), config.hdmicec.messages_repeat, _('Try to send repeated commands if not all commands are executed.\n') + _('(e.g. TV wakeup, but not switched to correct input)'), 'refreshlist'))
                if int(config.hdmicec.messages_repeat.value):
                    self.list.append(getConfigListEntry(tab + _('Time delay for the repeated transmission'), config.hdmicec.messages_repeat_slowdown, _('The time is multiplied by the current repeat counter.')))
                    self.list.append(getConfigListEntry(tab + _('Repeat the standby commands?'), config.hdmicec.messages_repeat_standby, _('Is not necessary in most cases.'), 'refreshlist'))
                self.list.append(getConfigListEntry(_('Check power and input state from TV'), config.hdmicec.check_tv_state, _('An attempt is made to capture the current TV status. If this is not possible due to incorrect or missing status messages, it may cause the receiver to respond unexpectedly.\nOn the other hand, tries to respond better to different operating conditions.')))
                self.list.append(getConfigListEntry(_('Ignore unexpectedly wakeup and stay in standby'), config.hdmicec.workaround_turnbackon, _("This is a workaround for some devices there wakeup again after switching in standby. The wak up command's from other devices will ignored for few seconds.")))
                if fileExists('/proc/stb/hdmi/preemphasis'):
                    self.list.append(getConfigListEntry(_('Use HDMI-preemphasis'), config.hdmicec.preemphasis, _('With this setting, you can probably improve the signal quality or eliminate problems that can occur with longer HDMI cables.')))
        self['config'].list = self.list
        self['config'].l.setList(self.list)
        self.updateAddress()
        self.showHelpText()

    def changedEntry(self):
        cur = self['config'].getCurrent()
        if cur and (len(cur) > 2 and cur[2] == 'refreshlist' or len(cur) > 3 and cur[3] == 'refreshlist'):
            if config.hdmicec.default_settings.value:
                for x in self['config'].list:
                    if x[0] == _('Enabled'):
                        continue
                    x[1].setValue(x[1].default)
                    x[1].save()

                self.keyUp()
            self.createSetup()
        for x in self.onChangedEntry:
            x()

    def keyLeft(self):
        ConfigListScreen.keyLeft(self)

    def keyRight(self):
        ConfigListScreen.keyRight(self)

    def keyDown(self):
        self['config'].moveDown()
        self.showHelpText()

    def keyUp(self):
        self['config'].moveUp()
        self.showHelpText()

    def keyGo(self):
        for x in self['config'].list:
            x[1].save()

        configfile.save()
        self.close()

    def keyCancel(self):
        for x in self['config'].list:
            x[1].cancel()

        self.close()

    def setFixedAddress(self):
        Components.HdmiCec.hdmi_cec.setFixedPhysicalAddress(Components.HdmiCec.hdmi_cec.getPhysicalAddress())
        self.updateAddress()

    def clearFixedAddress(self):
        Components.HdmiCec.hdmi_cec.setFixedPhysicalAddress('0.0.0.0')
        self.updateAddress()

    def updateAddress(self):
        self['current_address'].setText(_('Current CEC address') + ': ' + Components.HdmiCec.hdmi_cec.getPhysicalAddress())
        if config.hdmicec.fixed_physical_address.value == '0.0.0.0':
            fixedaddresslabel = ''
        else:
            fixedaddresslabel = _('Using fixed address') + ': ' + config.hdmicec.fixed_physical_address.value
        self['fixed_address'].setText(fixedaddresslabel)

    def showHelpText(self):
        cur = self['config'].getCurrent()
        if cur and len(cur) > 2 and cur[2] not in ('refreshlist', _('helptext')):
            self['description'].setText(cur[2])
        else:
            if cur and len(cur) > 3 and cur[3] not in ('refreshlist', _('helptext')):
                self['description'].setText(cur[3])
            else:
                self['description'].setText(' ')


def Plugins(**kwargs):
    return []

 

 

 

 

 

openpli7

 

# Python bytecode 2.7 (62211)
# Embedded file name: /usr/lib/enigma2/python/Plugins/SystemPlugins/HdmiCEC/plugin.py
# Compiled at: 2019-02-18 03:29:39
from Screens.Screen import Screen
from Components.ConfigList import ConfigListScreen
from Components.config import config, getConfigListEntry
from Components.Sources.StaticText import StaticText

class HdmiCECSetupScreen(Screen, ConfigListScreen):
    skin = '\n\t<screen position="c-300,c-250" size="600,500" title="HDMI-CEC setup">\n\t\t<widget name="config" position="25,25" size="550,350" />\n\t\t<widget source="current_address" render="Label" position="25,375" size="550,30" zPosition="10" font="Regular;21" halign="left" valign="center" />\n\t\t<widget source="fixed_address" render="Label" position="25,405" size="550,30" zPosition="10" font="Regular;21" halign="left" valign="center" />\n\t\t<ePixmap pixmap="skin_default/buttons/red.png" position="20,e-45" size="140,40" alphatest="on" />\n\t\t<ePixmap pixmap="skin_default/buttons/green.png" position="160,e-45" size="140,40" alphatest="on" />\n\t\t<ePixmap pixmap="skin_default/buttons/yellow.png" position="300,e-45" size="140,40" alphatest="on" />\n\t\t<ePixmap pixmap="skin_default/buttons/blue.png" position="440,e-45" size="140,40" alphatest="on" />\n\t\t<widget source="key_red" render="Label" position="20,e-45" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" />\n\t\t<widget source="key_green" render="Label" position="160,e-45" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" />\n\t\t<widget source="key_yellow" render="Label" position="300,e-45" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#a08500" transparent="1" />\n\t\t<widget source="key_blue" render="Label" position="440,e-45" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#18188b" transparent="1" />\n\t</screen>'

    def __init__(self, session):
        self.skin = HdmiCECSetupScreen.skin
        Screen.__init__(self, session)
        self.setTitle(_('HDMI-CEC setup'))
        from Components.ActionMap import ActionMap
        from Components.Button import Button
        self['key_red'] = StaticText(_('Cancel'))
        self['key_green'] = StaticText(_('OK'))
        self['key_yellow'] = StaticText(_('Set fixed'))
        self['key_blue'] = StaticText(_('Clear fixed'))
        self['current_address'] = StaticText()
        self['fixed_address'] = StaticText()
        self['actions'] = ActionMap(['SetupActions', 'ColorActions', 'MenuActions'], {'ok': self.keyOk,
           'save': self.keyGo,
           'cancel': self.keyCancel,
           'green': self.keyGo,
           'red': self.keyCancel,
           'yellow': self.setFixedAddress,
           'blue': self.clearFixedAddress,
           'menu': self.closeRecursive}, -2)
        self.list = []
        self.logpath_entry = None
        ConfigListScreen.__init__(self, self.list, session=self.session)
        self.createSetup()
        self.updateAddress()
        return

    def createSetup(self):
        self.list = []
        self.list.append(getConfigListEntry(_('Enabled'), config.hdmicec.enabled))
        if config.hdmicec.enabled.value:
            self.list.append(getConfigListEntry(_('Put TV in standby'), config.hdmicec.control_tv_standby))
            self.list.append(getConfigListEntry(_('Wakeup TV from standby'), config.hdmicec.control_tv_wakeup))
            self.list.append(getConfigListEntry(_('Regard deep standby as standby'), config.hdmicec.handle_deepstandby_events))
            self.list.append(getConfigListEntry(_('Switch TV to correct input'), config.hdmicec.report_active_source))
            self.list.append(getConfigListEntry(_('Use TV remote control'), config.hdmicec.report_active_menu))
            self.list.append(getConfigListEntry(_('Handle standby from TV'), config.hdmicec.handle_tv_standby))
            self.list.append(getConfigListEntry(_('Handle wakeup from TV'), config.hdmicec.handle_tv_wakeup))
            self.list.append(getConfigListEntry(_('Wakeup signal from TV'), config.hdmicec.tv_wakeup_detection))
            self.list.append(getConfigListEntry(_('Forward volume keys'), config.hdmicec.volume_forwarding))
            self.list.append(getConfigListEntry(_('Put receiver in standby'), config.hdmicec.control_receiver_standby))
            self.list.append(getConfigListEntry(_('Wakeup receiver from standby'), config.hdmicec.control_receiver_wakeup))
            self.list.append(getConfigListEntry(_('Minimum send interval'), config.hdmicec.minimum_send_interval))
            self.list.append(getConfigListEntry(_('Repeat leave standby messages'), config.hdmicec.repeat_wakeup_timer))
            self.list.append(getConfigListEntry(_("Send 'sourceactive' before zap timers"), config.hdmicec.sourceactive_zaptimers))
            self.list.append(getConfigListEntry(_('Detect next boxes before standby'), config.hdmicec.next_boxes_detect))
            self.list.append(getConfigListEntry(_('Debug to file'), config.hdmicec.debug))
            self.logpath_entry = getConfigListEntry(_('Select path for logfile'), config.hdmicec.log_path)
            if config.hdmicec.debug.value != '0':
                self.list.append(self.logpath_entry)
        self['config'].list = self.list
        self['config'].l.setList(self.list)

    def keyLeft(self):
        ConfigListScreen.keyLeft(self)
        self.createSetup()

    def keyRight(self):
        ConfigListScreen.keyRight(self)
        self.createSetup()

    def keyGo(self):
        for x in self['config'].list:
            x[1].save()

        self.close()

    def keyCancel(self):
        for x in self['config'].list:
            x[1].cancel()

        self.close()

    def keyOk(self):
        currentry = self['config'].getCurrent()
        if currentry == self.logpath_entry:
            self.set_path()
        else:
            self.keyGo()

    def setFixedAddress(self):
        import Components.HdmiCec
        Components.HdmiCec.hdmi_cec.setFixedPhysicalAddress(Components.HdmiCec.hdmi_cec.getPhysicalAddress())
        self.updateAddress()

    def clearFixedAddress(self):
        import Components.HdmiCec
        Components.HdmiCec.hdmi_cec.setFixedPhysicalAddress('0.0.0.0')
        self.updateAddress()

    def updateAddress(self):
        import Components.HdmiCec
        self['current_address'].setText(_('Current CEC address') + ': ' + Components.HdmiCec.hdmi_cec.getPhysicalAddress())
        if config.hdmicec.fixed_physical_address.value == '0.0.0.0':
            fixedaddresslabel = ''
        else:
            fixedaddresslabel = _('Using fixed address') + ': ' + config.hdmicec.fixed_physical_address.value
        self['fixed_address'].setText(fixedaddresslabel)

    def logPath(self, res):
        if res is not None:
            config.hdmicec.log_path.value = res
        return

    def set_path(self):
        inhibitDirs = ['/autofs', '/bin', '/boot', '/dev', '/etc', '/lib', '/proc', '/sbin', '/sys', '/tmp', '/usr']
        from Screens.LocationBox import LocationBox
        txt = _('Select directory for logfile')
        self.session.openWithCallback(self.logPath, LocationBox, text=txt, currDir=config.hdmicec.log_path.value, bookmarks=config.hdmicec.bookmarks, autoAdd=False, editDir=True, inhibitDirs=inhibitDirs, minFree=1)


def main(session, **kwargs):
    session.open(HdmiCECSetupScreen)


def startSetup(menuid):
    if menuid == 'video' and config.av.videoport.value == 'DVI' and config.usage.setup_level.index >= 1:
        return [(_('HDMI-CEC setup'), main, 'hdmi_cec_setup', 0)]
    return []


def Plugins(**kwargs):
    from os import path
    if path.exists('/dev/hdmi_cec') or path.exists('/dev/misc/hdmi_cec0'):
        import Components.HdmiCec
        from Plugins.Plugin import PluginDescriptor
        return [PluginDescriptor(where=PluginDescriptor.WHERE_MENU, fnc=startSetup)]
    return []



Re: edision osmini openpli 7 #4 Drago

  • Member
  • 17 posts

0
Neutral

Posted 1 April 2019 - 08:24

hdmi-cec log

 

Tx: 22:20:31  <Image View On>             >  04                                                 [0x00]
Tx: 22:20:31  <Active Source>             >  82 40 00                                           [0x0F]
Rx: 22:20:36  <Give OSD Name>             <  46
Tx: 22:20:36  <Set OSD Name>              >  47 osmini                                          [0x00]
Rx: 22:20:37  <Give OSD Name>             <  46
Tx: 22:20:37  <Set OSD Name>              >  47 osmini                                          [0x00]
Rx: 22:20:37  <Give Device Vendor ID>     <  8C
Tx: 22:20:37  <Device Vendor ID>          >  87 00 00 00                                        [0x00]
Rx: 22:20:37  <Give OSD Name>             <  46
Tx: 22:20:37  <Set OSD Name>              >  47 osmini                                          [0x00]
Rx: 22:20:37  <Give OSD Name>             <  46
Tx: 22:20:37  <Set OSD Name>              >  47 osmini                                          [0x00]
Rx: 22:20:40  <Feature Abort>             <  00 87 00
Tx: 00:07:51  <Standby>                   >  36                                                 [0x00]
Rx: 00:07:53  <Standby>                   <  36
Rx: 00:08:53  <Standby>                   <  36
Rx: 00:09:08  <Report Power Status>       <  90 00
Rx: 00:09:11  <Report Power Status>       <  90 00
Rx: 00:09:12  <Routing Change>            <  80 00 00 40 00
Rx: 00:09:12  <Report Physical Address>   <  84 00 00 00
Rx: 00:09:12  <Device Vendor ID>          <  87 00 00 39
Rx: 00:09:13  <Give Physical Address>     <  83
Tx: 00:09:13  <Report Physical Address>   >  84 40 00 03                                        [0x0F]
Rx: 00:09:13  <Standby>                   <  36
Rx: 00:09:14  <Give OSD Name>             <  46
Tx: 00:09:14  <Set OSD Name>              >  47 osmini                                          [0x00]
Tx: 07:58:39  <Image View On>             >  04                                                 [0x00]
Tx: 07:58:39  <Active Source>             >  82 40 00                                           [0x0F]
Rx: 07:58:40  <Give Device Vendor ID>     <  8C
Tx: 07:58:40  <Device Vendor ID>          >  87 00 00 00                                        [0x00]
Rx: 07:58:41  <Give OSD Name>             <  46
Tx: 07:58:41  <Set OSD Name>              >  47 osmini                                          [0x00]
Rx: 07:58:41  <Give OSD Name>             <  46
Tx: 07:58:41  <Set OSD Name>              >  47 osmini                                          [0x00]
Rx: 07:58:42  <Feature Abort>             <  00 87 00
Tx: 09:12:30  <Inactive Source>           >  9D 40 00                                           [0x00]
Rx: 09:12:31  <Feature Abort>             <  00 9D 04
Tx: 09:12:46  <Image View On>             >  04                                                 [0x00]
Tx: 09:12:46  <Active Source>             >  82 40 00                                           [0x0F]
Rx: 09:12:48  <Give OSD Name>             <  46
Tx: 09:12:48  <Set OSD Name>              >  47 osmini                                          [0x00]



Re: edision osmini openpli 7 #5 Drago

  • Member
  • 17 posts

0
Neutral

Posted 3 April 2019 - 15:46

Somebody help me, please?



Re: edision osmini openpli 7 #6 WanWizard

  • PLi® Core member
  • 68,309 posts

+1,719
Excellent

Posted 3 April 2019 - 18:30

Don't decompile, but install the sources, and compare those. In openpli, you have to install enigma2-src, which gives you all .py files.


Currently in use: VU+ Duo 4K (2xFBC S2), VU+ Solo 4K (1xFBC S2), uClan Usytm 4K Pro (S2+T2), Octagon SF8008 (S2+T2), Zgemma H9.2H (S2+T2)

Due to my bad health, I will not be very active at times and may be slow to respond. I will not read the forum or PM on a regular basis.

Many answers to your question can be found in our new and improved wiki.


Re: edision osmini openpli 7 #7 ims

  • PLi® Core member
  • 13,608 posts

+211
Excellent

Posted 3 April 2019 - 19:56

suspicious is returned "<Feature Abort>" from other devices ...


Kdo nic nedělá, nic nezkazí!

Re: edision osmini openpli 7 #8 WanWizard

  • PLi® Core member
  • 68,309 posts

+1,719
Excellent

Posted 3 April 2019 - 20:45

For "Set OSD name", that is not a problem.

 

But it sends "Standby" 3 times, but no response, which I think is where it goes wrong.

 

I see that "my image" is an OE-Alliance based image, so the actual HDMI-CEC command sequence sent could be verified. Those are not in that file btw, that is only the setup and configuration screen.


Currently in use: VU+ Duo 4K (2xFBC S2), VU+ Solo 4K (1xFBC S2), uClan Usytm 4K Pro (S2+T2), Octagon SF8008 (S2+T2), Zgemma H9.2H (S2+T2)

Due to my bad health, I will not be very active at times and may be slow to respond. I will not read the forum or PM on a regular basis.

Many answers to your question can be found in our new and improved wiki.


Re: edision osmini openpli 7 #9 ims

  • PLi® Core member
  • 13,608 posts

+211
Excellent

Posted 4 April 2019 - 09:08

Box send standby and then incomming to box from 2 devices standby again? And this 2 devices sending after some time, that they are "On" ? Very weird ...


Kdo nic nedělá, nic nezkazí!

Re: edision osmini openpli 7 #10 Drago

  • Member
  • 17 posts

0
Neutral

Posted 6 April 2019 - 15:53

Hi everyone
I installed enigma2-src and I can get the plugin in .py format on the openpli image, on the other hand I can't.
I don't have programming skills so I can't fix the plugin, I think you should read the plugin of the other image and integrate what you need in openpli but I can't do it by myself.
P. S .: I am Italian, does anyone speak it?


Re: edision osmini openpli 7 #11 Drago

  • Member
  • 17 posts

0
Neutral

Posted 7 April 2019 - 09:06

Ok

 

plugin.py  OpenPli

 

from Screens.Screen import Screen
from Components.ConfigList import ConfigListScreen
from Components.config import config, getConfigListEntry
from Components.Sources.StaticText import StaticText
 
class HdmiCECSetupScreen(Screen, ConfigListScreen):
skin = """
<screen position="c-300,c-250" size="600,500" title="HDMI-CEC setup">
<widget name="config" position="25,25" size="550,350" />
<widget source="current_address" render="Label" position="25,375" size="550,30" zPosition="10" font="Regular;21" halign="left" valign="center" />
<widget source="fixed_address" render="Label" position="25,405" size="550,30" zPosition="10" font="Regular;21" halign="left" valign="center" />
<ePixmap pixmap="skin_default/buttons/red.png" position="20,e-45" size="140,40" alphatest="on" />
<ePixmap pixmap="skin_default/buttons/green.png" position="160,e-45" size="140,40" alphatest="on" />
<ePixmap pixmap="skin_default/buttons/yellow.png" position="300,e-45" size="140,40" alphatest="on" />
<ePixmap pixmap="skin_default/buttons/blue.png" position="440,e-45" size="140,40" alphatest="on" />
<widget source="key_red" render="Label" position="20,e-45" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" />
<widget source="key_green" render="Label" position="160,e-45" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" />
<widget source="key_yellow" render="Label" position="300,e-45" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#a08500" transparent="1" />
<widget source="key_blue" render="Label" position="440,e-45" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#18188b" transparent="1" />
</screen>"""
 
def __init__(self, session):
self.skin = HdmiCECSetupScreen.skin
Screen.__init__(self, session)
 
self.setTitle(_("HDMI-CEC setup"))
 
from Components.ActionMap import ActionMap
from Components.Button import Button
 
self["key_red"] = StaticText(_("Cancel"))
self["key_green"] = StaticText(_("OK"))
self["key_yellow"] = StaticText(_("Set fixed"))
self["key_blue"] = StaticText(_("Clear fixed"))
self["current_address"] = StaticText()
self["fixed_address"] = StaticText()
 
self["actions"] = ActionMap(["SetupActions", "ColorActions", "MenuActions"],
{
"ok": self.keyOk,
"save": self.keyGo,
"cancel": self.keyCancel,
"green": self.keyGo,
"red": self.keyCancel,
"yellow": self.setFixedAddress,
"blue": self.clearFixedAddress,
"menu": self.closeRecursive,
}, -2)
 
self.list = []
self.logpath_entry = None
ConfigListScreen.__init__(self, self.list, session = self.session)
self.createSetup()
self.updateAddress()
 
def createSetup(self):
self.list = []
self.list.append(getConfigListEntry(_("Enabled"), config.hdmicec.enabled))
if config.hdmicec.enabled.value:
self.list.append(getConfigListEntry(_("Put TV in standby"), config.hdmicec.control_tv_standby))
self.list.append(getConfigListEntry(_("Wakeup TV from standby"), config.hdmicec.control_tv_wakeup))
self.list.append(getConfigListEntry(_("Regard deep standby as standby"), config.hdmicec.handle_deepstandby_events))
self.list.append(getConfigListEntry(_("Switch TV to correct input"), config.hdmicec.report_active_source))
self.list.append(getConfigListEntry(_("Use TV remote control"), config.hdmicec.report_active_menu))
self.list.append(getConfigListEntry(_("Handle standby from TV"), config.hdmicec.handle_tv_standby))
self.list.append(getConfigListEntry(_("Handle wakeup from TV"), config.hdmicec.handle_tv_wakeup))
self.list.append(getConfigListEntry(_("Wakeup signal from TV"), config.hdmicec.tv_wakeup_detection))
self.list.append(getConfigListEntry(_("Forward volume keys"), config.hdmicec.volume_forwarding))
self.list.append(getConfigListEntry(_("Put receiver in standby"), config.hdmicec.control_receiver_standby))
self.list.append(getConfigListEntry(_("Wakeup receiver from standby"), config.hdmicec.control_receiver_wakeup))
self.list.append(getConfigListEntry(_("Minimum send interval"), config.hdmicec.minimum_send_interval))
self.list.append(getConfigListEntry(_("Repeat leave standby messages"), config.hdmicec.repeat_wakeup_timer))
self.list.append(getConfigListEntry(_("Send 'sourceactive' before zap timers"), config.hdmicec.sourceactive_zaptimers))
self.list.append(getConfigListEntry(_("Detect next boxes before standby"), config.hdmicec.next_boxes_detect))
self.list.append(getConfigListEntry(_("Debug to file"), config.hdmicec.debug))
self.logpath_entry = getConfigListEntry(_("Select path for logfile"), config.hdmicec.log_path)
if config.hdmicec.debug.value != "0":
self.list.append(self.logpath_entry)
self["config"].list = self.list
self["config"].l.setList(self.list)
 
def keyLeft(self):
ConfigListScreen.keyLeft(self)
self.createSetup()
 
def keyRight(self):
ConfigListScreen.keyRight(self)
self.createSetup()
 
def keyGo(self):
for x in self["config"].list:
x[1].save()
self.close()
 
def keyCancel(self):
for x in self["config"].list:
x[1].cancel()
self.close()
 
def keyOk(self):
currentry = self["config"].getCurrent()
if currentry == self.logpath_entry:
self.set_path()
else:
self.keyGo()
 
def setFixedAddress(self):
import Components.HdmiCec
Components.HdmiCec.hdmi_cec.setFixedPhysicalAddress(Components.HdmiCec.hdmi_cec.getPhysicalAddress())
self.updateAddress()
 
def clearFixedAddress(self):
import Components.HdmiCec
Components.HdmiCec.hdmi_cec.setFixedPhysicalAddress("0.0.0.0")
self.updateAddress()
 
def updateAddress(self):
import Components.HdmiCec
self["current_address"].setText(_("Current CEC address") + ": " + Components.HdmiCec.hdmi_cec.getPhysicalAddress())
if config.hdmicec.fixed_physical_address.value == "0.0.0.0":
fixedaddresslabel = ""
else:
fixedaddresslabel = _("Using fixed address") + ": " + config.hdmicec.fixed_physical_address.value
self["fixed_address"].setText(fixedaddresslabel)
 
def logPath(self, res):
if res is not None:
config.hdmicec.log_path.value = res
 
def set_path(self):
inhibitDirs = ["/autofs", "/bin", "/boot", "/dev", "/etc", "/lib", "/proc", "/sbin", "/sys", "/tmp", "/usr"]
from Screens.LocationBox import LocationBox
txt = _("Select directory for logfile")
self.session.openWithCallback(self.logPath, LocationBox, text=txt, currDir=config.hdmicec.log_path.value,
bookmarks=config.hdmicec.bookmarks, autoAdd=False, editDir=True,
inhibitDirs=inhibitDirs, minFree=1
)
 
def main(session, **kwargs):
session.open(HdmiCECSetupScreen)
 
def startSetup(menuid):
# only show in the menu when set to intermediate or higher
if menuid == "video" and config.av.videoport.value == "DVI" and config.usage.setup_level.index >= 1:
return [(_("HDMI-CEC setup"), main, "hdmi_cec_setup", 0)]
return []
 
def Plugins(**kwargs):
from os import path
if path.exists("/dev/hdmi_cec") or path.exists("/dev/misc/hdmi_cec0"):
import Components.HdmiCec
from Plugins.Plugin import PluginDescriptor
return [PluginDescriptor(where = PluginDescriptor.WHERE_MENU, fnc = startSetup)]
return []
 
 
 
Plugin.py my image
 
from boxbranding import getMachineBrand, getMachineName
from os import path
 
from Screens.Screen import Screen
from Components.ConfigList import ConfigListScreen
from Components.config import config, configfile, getConfigListEntry
from Components.Sources.StaticText import StaticText
from Components.Label import Label
 
from Tools.Directories import fileExists
 
if path.exists("/dev/hdmi_cec") or path.exists("/dev/misc/hdmi_cec0"):
import Components.HdmiCec
 
class HdmiCECSetupScreen(Screen, ConfigListScreen):
skin = """
<screen position="c-300,c-250" size="600,500" title="HDMI CEC setup">
<widget name="config" position="15,15" size="720,350" scrollbarMode="showOnDemand"/>
<widget name="description" position="15,375" size="720,90" font="Regular;19" halign="center" valign="center" />
<widget source="current_address" render="Label" position="15,475" size="550,30" zPosition="10" font="Regular;21" halign="left" valign="center" />
<widget source="fixed_address" render="Label" position="15,505" size="550,30" zPosition="10" font="Regular;21" halign="left" valign="center" />
<ePixmap pixmap="buttons/red.png" position="20,e-45" size="140,40" alphatest="on" />
<ePixmap pixmap="buttons/green.png" position="160,e-45" size="140,40" alphatest="on" />
<ePixmap pixmap="buttons/yellow.png" position="300,e-45" size="140,40" alphatest="on" />
<ePixmap pixmap="buttons/blue.png" position="440,e-45" size="140,40" alphatest="on" />
<widget source="key_red" render="Label" position="20,e-45" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#9f1313" transparent="1" />
<widget source="key_green" render="Label" position="160,e-45" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#1f771f" transparent="1" />
<widget source="key_yellow" render="Label" position="300,e-45" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#a08500" transparent="1" />
<widget source="key_blue" render="Label" position="440,e-45" zPosition="1" size="140,40" font="Regular;20" halign="center" valign="center" backgroundColor="#18188b" transparent="1" />
</screen>"""
 
def __init__(self, session):
Screen.__init__(self, session)
Screen.setTitle(self, _("HDMI CEC Setup"))
 
from Components.ActionMap import ActionMap
 
self["key_red"] = StaticText(_("Cancel"))
self["key_green"] = StaticText(_("OK"))
self["key_yellow"] = StaticText(_("Set fixed"))
self["key_blue"] = StaticText(_("Clear fixed"))
self["current_address"] = StaticText()
self["fixed_address"] = StaticText()
self["description"] = Label()
 
self["actions"] = ActionMap(["SetupActions", "ColorActions", "MenuActions"],
{
"ok": self.keyGo,
"save": self.keyGo,
#"cancel": self.keyCancel,
"cancel": self.closeRecursive,
"green": self.keyGo,
#"red": self.keyCancel,
"red": self.closeRecursive,
"yellow": self.setFixedAddress,
"blue": self.clearFixedAddress,
"menu": self.closeRecursive,
"up": self.keyUp,
"down": self.keyDown,
}, -2)
 
self.onChangedEntry = [ ]
self.list = []
ConfigListScreen.__init__(self, self.list, session = self.session, on_change = self.changedEntry)
self.createSetup()
 
def createSetup(self):
self.list = []
self.list.append(getConfigListEntry(_("Enabled"), config.hdmicec.enabled, _('helptext'), 'refreshlist'))
if config.hdmicec.enabled.value:
tab = ' ' * 10
self.list.append(getConfigListEntry(_("Advanced Settings"), config.hdmicec.advanced_settings, _('helptext'), 'refreshlist'))
if config.hdmicec.advanced_settings.value:
self.list.append(getConfigListEntry(_("Load Default Settings"), config.hdmicec.default_settings, _('helptext'), 'refreshlist'))
self.list.append(getConfigListEntry(_("Regard deep standby as standby"), config.hdmicec.handle_deepstandby_events, _('helptext'),'refreshlist'))
if config.hdmicec.advanced_settings.value and config.hdmicec.handle_deepstandby_events.value and config.workaround.deeprecord.value:
self.list.append(getConfigListEntry(tab + _("Wait for timesync at startup"), config.hdmicec.deepstandby_waitfortimesync, _("If the 'deep standby workaround' is enabled, it waits until the system time is syncronised. Depending on the requirement, the devices wake up will continuing after a maximum of 2 minutes."), ))
self.list.append(getConfigListEntry(_("Put TV in standby"), config.hdmicec.control_tv_standby, _('helptext'),'refreshlist'))
if config.hdmicec.advanced_settings.value and config.hdmicec.control_tv_standby.value:
self.list.append(getConfigListEntry(tab + _("Even if TV has another input active?"), config.hdmicec.tv_standby_notinputactive, _('You can skip this function and turn off the TV when you wake the receiver from standby and immediately switch back to standby.'), ))
self.list.append(getConfigListEntry(_("Wakeup TV from standby"), config.hdmicec.control_tv_wakeup, _('helptext') ,'refreshlist'))
if config.hdmicec.advanced_settings.value and config.hdmicec.control_tv_wakeup.value:
self.list.append(getConfigListEntry(tab + _("Even if a 'zap' recording timer starting?"), config.hdmicec.tv_wakeup_zaptimer, _('helptext'), ))
self.list.append(getConfigListEntry(tab + _("Even if a 'zap and record' recording timer starting?"), config.hdmicec.tv_wakeup_zapandrecordtimer, _('helptext'), ))
self.list.append(getConfigListEntry(tab + _("Even if a 'wakeup' power timer starting?"), config.hdmicec.tv_wakeup_wakeuppowertimer, _('helptext'), ))
self.list.append(getConfigListEntry(_("Switch TV to correct input"), config.hdmicec.report_active_source, _('helptext'),'refreshlist'))
if config.hdmicec.advanced_settings.value and config.hdmicec.report_active_source.value:
self.list.append(getConfigListEntry(tab + _("Switch off the TV to correct input"), config.hdmicec.workaround_activesource, _("Some TV devices can't swich to correct input if a another hdmi port active. This setting set the TV to standby before.\n(If the TV does not turn back on, may require a slower transmission interval or the repetition of wake-up commands.)"),))
self.list.append(getConfigListEntry(_("Handle wakeup from TV"), config.hdmicec.handle_tv_wakeup, _('Choose a setting where your receiver wakes up from standby.'),))
self.list.append(getConfigListEntry(_("Handle standby from TV"), config.hdmicec.handle_tv_standby, _('helptext'),'refreshlist'))
if config.hdmicec.advanced_settings.value: 
self.list.append(getConfigListEntry(_("Handle input from TV"), config.hdmicec.handle_tv_input, _('helptext'),'refreshlist'))
if config.hdmicec.handle_tv_standby.value != 'disabled' or config.hdmicec.handle_tv_input.value != 'disabled':
self.list.append(getConfigListEntry(_("Time delay until standby or deep standby"), config.hdmicec.handle_tv_delaytime, _("'Handle standby from TV' has a higher priority as 'Handle input from TV'"),))
self.list.append(getConfigListEntry(_("Forward volume keys"), config.hdmicec.volume_forwarding, _('Activation takes place immediately. If this feature is not supported, the volume keys has no function!'),))
self.list.append(getConfigListEntry(_("Put your AV Receiver in standby"), config.hdmicec.control_receiver_standby, _('helptext'),))
self.list.append(getConfigListEntry(_("Wakeup your AV Receiver from standby"), config.hdmicec.control_receiver_wakeup, _('helptext'),))
self.list.append(getConfigListEntry(_("Use TV remote control"), config.hdmicec.report_active_menu, _('Activation takes place immediately. If it does feature not work, then try again with a slower send interval.'),))
self.list.append(getConfigListEntry(_("Minimum send interval"), config.hdmicec.minimum_send_interval, _('Try to slow down the send interval if not all commands are executed.'), ))
if config.hdmicec.advanced_settings.value: 
self.list.append(getConfigListEntry(_("Repeat the sent standby and wakeup commands"), config.hdmicec.messages_repeat, _('Try to send repeated commands if not all commands are executed.\n') + _('(e.g. TV wakeup, but not switched to correct input)'),'refreshlist'))
if int(config.hdmicec.messages_repeat.value):
self.list.append(getConfigListEntry(tab + _("Time delay for the repeated transmission"), config.hdmicec.messages_repeat_slowdown, _('The time is multiplied by the current repeat counter.'), ))
self.list.append(getConfigListEntry(tab + _("Repeat the standby commands?"), config.hdmicec.messages_repeat_standby, _('Is not necessary in most cases.'),'refreshlist'))
self.list.append(getConfigListEntry(_("Check power and input state from TV"), config.hdmicec.check_tv_state, _('An attempt is made to capture the current TV status. If this is not possible due to incorrect or missing status messages, it may cause the receiver to respond unexpectedly.\nOn the other hand, tries to respond better to different operating conditions.'), ))
self.list.append(getConfigListEntry(_("Ignore unexpectedly wakeup and stay in standby"), config.hdmicec.workaround_turnbackon, _("This is a workaround for some devices there wakeup again after switching in standby. The wak up command's from other devices will ignored for few seconds."),))
if fileExists("/proc/stb/hdmi/preemphasis"):
self.list.append(getConfigListEntry(_("Use HDMI-preemphasis"), config.hdmicec.preemphasis, _('With this setting, you can probably improve the signal quality or eliminate problems that can occur with longer HDMI cables.'),))
 
self["config"].list = self.list
self["config"].l.setList(self.list)
 
self.updateAddress()
self.showHelpText()
 
# for summary:
def changedEntry(self):
cur = self["config"].getCurrent()
if cur and (len(cur) > 2 and cur[2] == 'refreshlist' or len(cur) > 3 and cur[3] == 'refreshlist'):
if config.hdmicec.default_settings.value:
for x in self["config"].list:
if x[0] == _("Enabled"):
continue
x[1].setValue(x[1].default)
x[1].save()
self.keyUp()
self.createSetup()
for x in self.onChangedEntry:
x()
 
def keyLeft(self):
ConfigListScreen.keyLeft(self)
 
def keyRight(self):
ConfigListScreen.keyRight(self)
 
def keyDown(self):
self["config"].moveDown()
self.showHelpText()
 
def keyUp(self):
self["config"].moveUp()
self.showHelpText()
 
def keyGo(self):
for x in self["config"].list:
x[1].save()
configfile.save()
self.close()
 
def keyCancel(self):
for x in self["config"].list:
x[1].cancel()
self.close()
 
def setFixedAddress(self):
Components.HdmiCec.hdmi_cec.setFixedPhysicalAddress(Components.HdmiCec.hdmi_cec.getPhysicalAddress())
self.updateAddress()
 
def clearFixedAddress(self):
Components.HdmiCec.hdmi_cec.setFixedPhysicalAddress("0.0.0.0")
self.updateAddress()
 
def updateAddress(self):
self["current_address"].setText(_("Current CEC address") + ": " + Components.HdmiCec.hdmi_cec.getPhysicalAddress())
if config.hdmicec.fixed_physical_address.value == "0.0.0.0":
fixedaddresslabel = ""
else:
fixedaddresslabel = _("Using fixed address") + ": " + config.hdmicec.fixed_physical_address.value
self["fixed_address"].setText(fixedaddresslabel)
 
def showHelpText(self):
cur = self["config"].getCurrent()
if cur and len(cur) > 2 and not cur[2] in ('refreshlist', _('helptext')):
self["description"].setText(cur[2])
elif cur and len(cur) > 3 and not cur[3] in ('refreshlist', _('helptext')):
self["description"].setText(cur[3])
else:
self["description"].setText(" ")
 
def Plugins(**kwargs):
return []

Edited by Drago, 7 April 2019 - 09:08.


Re: edision osmini openpli 7 #12 WanWizard

  • PLi® Core member
  • 68,309 posts

+1,719
Excellent

Posted 7 April 2019 - 11:04

You keep on posting this, which is pointless. I have already told you this is the GUI part of the setup, it has nothing to do with sending or receiving CEC commands.


Currently in use: VU+ Duo 4K (2xFBC S2), VU+ Solo 4K (1xFBC S2), uClan Usytm 4K Pro (S2+T2), Octagon SF8008 (S2+T2), Zgemma H9.2H (S2+T2)

Due to my bad health, I will not be very active at times and may be slow to respond. I will not read the forum or PM on a regular basis.

Many answers to your question can be found in our new and improved wiki.


Re: edision osmini openpli 7 #13 Drago

  • Member
  • 17 posts

0
Neutral

Posted 7 April 2019 - 14:43

sorry I had not read your previous post, I am not an image expert if you tell me where to look, thank you



Re: edision osmini openpli 7 #14 ims

  • PLi® Core member
  • 13,608 posts

+211
Excellent

Posted 7 April 2019 - 14:56

Push here screenshots with working setting and then, what you have set in PLi.


Kdo nic nedělá, nic nezkazí!

Re: edision osmini openpli 7 #15 Drago

  • Member
  • 17 posts

0
Neutral

Posted 7 April 2019 - 16:17

Whats-App-Image-2019-04-07-at-17-11-50.j


Edited by Drago, 7 April 2019 - 16:22.


Re: edision osmini openpli 7 #16 ims

  • PLi® Core member
  • 13,608 posts

+211
Excellent

Posted 7 April 2019 - 17:05

try change 'Wakeup signal from TV' from "wakeup" to "Stream request"

 

Btw - you can make screenshot via OpenWebif.


Kdo nic nedělá, nic nezkazí!

Re: edision osmini openpli 7 #17 Drago

  • Member
  • 17 posts

0
Neutral

Posted 8 April 2019 - 08:06

if I copy the image from openwebif with the right mouse button and try to paste it in the forum, it tells me that I am not authorized to attach jpg images
 
You are not allowed to use that image extension on this community.
 
 
1-0-1-2-1770-110-820000-0-0-0-2019040809

Edited by Drago, 8 April 2019 - 08:07.


Re: edision osmini openpli 7 #18 ims

  • PLi® Core member
  • 13,608 posts

+211
Excellent

Posted 8 April 2019 - 08:31

Right mouse on screenshot in Owif, then in context menu "Save picture as". In forum in thread use button "More Reply options" (bottom right) and then there bottom left you can find picture with "Browse" and then "Attach This File". That's all


Kdo nic nedělá, nic nezkazí!

Re: edision osmini openpli 7 #19 Pr2

  • PLi® Contributor
  • 6,046 posts

+256
Excellent

Posted 8 April 2019 - 09:33

And first tick High Resolution.


NO SUPPORT by PM, it is a forum make your question public so everybody can benefit from the question/answer.
If you think that my answer helps you, you can press the up arrow in bottom right of the answer.

Wanna help with OpenPLi Translation? Please read our Wiki Information for translators

Sat: Hotbird 13.0E, Astra 19.2E, Eutelsat5A 5.0W
VU+ Solo 4K: 2*DVB-S2 + 2*DVB-C/T/T2 (used in DVB-C) & Duo 4K: 2*DVB-S2X + DVB-C (FBC)

AB-Com: PULSe 4K 1*DVB-S2X (+ DVB-C/T/T2)
Edision OS Mio 4K: 1*DVB-S2X + 1*DVB-C/T/T2
 


Re: edision osmini openpli 7 #20 WanWizard

  • PLi® Core member
  • 68,309 posts

+1,719
Excellent

Posted 8 April 2019 - 11:51

Pasting images is not supported by the forum (although the editor seems to support it, which is confusing). Attach them instead.


Currently in use: VU+ Duo 4K (2xFBC S2), VU+ Solo 4K (1xFBC S2), uClan Usytm 4K Pro (S2+T2), Octagon SF8008 (S2+T2), Zgemma H9.2H (S2+T2)

Due to my bad health, I will not be very active at times and may be slow to respond. I will not read the forum or PM on a regular basis.

Many answers to your question can be found in our new and improved wiki.



0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users