Virtueller HTTP Eingang

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • Gast

    #1

    Virtueller HTTP Eingang

    Hi.
    Eine kurze Frage. Kann man mit dem virtuellen HTTP Eingang nur Werte oder auch Text auslesen? Laut Befehlskennung kann man ja auch Wörter konfigurieren, aber ich bekomms nicht hin. Zahlen abfragen ist hingegen kein Problem.
  • hismastersvoice
    Supermoderator
    • 25.08.2015
    • 7321

    #2
    Dazu gibt es den Virtuellen Text Eingang VTI
    Kein Support per PN!

    Kommentar

    • Gast

      #3
      Aber wie kann ich mit dem VTI eine Webseite auslesen?

      Kommentar

      • hismastersvoice
        Supermoderator
        • 25.08.2015
        • 7321

        #4
        Missverständnis...
        An VTI kannst nur Werte senden.
        Was willst genau machen?
        Kein Support per PN!

        Kommentar

        • Gast

          #5
          Hier will ich true/false auslesen. Bekomme aber immer nur eine 0

          Kommentar


          • hismastersvoice
            hismastersvoice kommentierte
            Kommentar bearbeiten
            Bitte noch Screenshot von deiner Befehlserkennung...
        • Gast

          #6
          Hab auch schon mit \v \. usw versucht

          Kommentar

          • hismastersvoice
            Supermoderator
            • 25.08.2015
            • 7321

            #7
            Habe es gerade versucht, werden nur Werte kein Text übernommen.
            Was für ein Gerät willst abfragen?
            Evtl. über Ping möglich?
            Kein Support per PN!

            Kommentar

            • Toms84
              Extension Master
              • 13.09.2015
              • 161

              #8
              Hi.



              Meine Daten der Grandstream Cam frage ich alle mit = ab.
              Also ohne < > ab.

              Die Url hast eh richtig eingegeben?


              Vielleicht hilfts?
              Lg Tom


              Gesendet von iPhone mit Tapatalk
              Zuletzt geändert von Toms84; 28.09.2015, 19:02.

              Kommentar

              • Gast

                #9
                @mastervoice
                Ping geht nicht, da die STB (VU+Solo2) auch im Standby online ist. Ich will aber wissen ob sie ein- oder ausgeschalten ist.

                @Tom
                Habs versucht, hat auch nicht funktioniert. wie genau schaut deine Befehlskennng genau aus? Hast du vielleicht einen Screenshot?

                Kommentar

                • Toms84
                  Extension Master
                  • 13.09.2015
                  • 161

                  #10
                  Hi.
                  Also ich frage die Bewegungserkennung der Cam ab.
                  Ob diese an oder aus ist also 0 oder 1.
                  Die URL hast eh eingetragen?



                  Kommentar

                  • hismastersvoice
                    Supermoderator
                    • 25.08.2015
                    • 7321

                    #11
                    Tom
                    Genau das ist ja das Thema Werte wie 0 oder 1 sind nicht das Problem. Den Text true oder false auszuwerten hingegen schon.

                    @Michael
                    Ich werde morgen mal versuchen wie sich die VU+ dazu bringt den aktuellen Status zu melden.
                    Willst nur das abfragen oder auch andere Dinge?
                    Kein Support per PN!

                    Kommentar

                    • Gast

                      #12
                      Endlich. Heute gehts wieder. Bin gestern nicht mehr ins Forum gekommen. War es down?

                      @hismastersvoice
                      Vielen Dank im vorraus. Vorerst reicht mir die Standby Abfrage. Will damit die TV Scene triggern.
                      Hab mir auch schon überlegt ob man den Status per Script an die Loxone schicken kann, und per UDP verarbeiten. Nur leider hab ich davon nicht wirklich Ahnung.

                      Kommentar

                      • hismastersvoice
                        Supermoderator
                        • 25.08.2015
                        • 7321

                        #13
                        Hallo Michael,

                        also so sieht die Lösung aus...
                        Es wird bei jedem Zustand der VT-Eingang geschaltet also bei ein-aus und standby ein-aus.

                        1. Einen Virtuellen-Eingang anlegen und Nummer merken VIxx

                        2. Start/Stop-Datei erstellen
                        Im Pfad /etc/init.d die Dateien loxone_ein.sh und loxone_aus.sh erstellen und mit nachfolgendem Inhalt füllen

                        loxone_ein.sh
                        Code:
                        wget -O /dev/null -q http://user:passwort@ip/dev/sps/io/VIxx/Ein
                        loxone_aus.sh
                        Code:
                        wget -O /dev/null -q http://user:passwort@ip/dev/sps/io/VIxx/Aus
                        Bei user, passwort, ip und VIxx die Daten des MiniServer eintragen
                        z.B. http://admin:1234@192.168.1.1/dev/sps/io/VI12/Ein

                        3. Datei-Rechte anpassen
                        chmod 0755 loxone_aus.sh
                        chmod 0755 loxone_ein.sh

                        4. verlinken
                        ln -s /etc/init.d/loxone_ein.sh /etc/rc3.d/S99loxone_ein
                        ln -s /etc/init.d/loxone_aus.sh /etc/rc0.d/K20loxone_aus

                        5. Standby.py im Pfad /usr/lib/enigma2/python/Screens ändern

                        nach
                        Code:
                        print "leave standby"
                        folgendes einfügen
                        Code:
                        import os
                        os.system("/etc/init.d/loxone_ein.sh &")
                        nach
                        Code:
                        print "enter standby"
                        folgendes einfügen
                        Code:
                        import os
                        os.system("/etc/init.d/loxone_aus.sh &")
                        So sollte es dann aussehen.
                        Code:
                        from Screen import Screen
                        from Components.ActionMap import ActionMap
                        from Components.config import config
                        from Components.AVSwitch import AVSwitch
                        from Components.SystemInfo import SystemInfo
                        from GlobalActions import globalActionMap
                        from enigma import eDVBVolumecontrol, eServiceReference
                        from Tools import Notifications
                        
                        
                        inStandby = None
                        
                        class Standby(Screen):
                            def Power(self):
                                print "leave standby"
                                import os
                                os.system("/etc/init.d/loxone_ein.sh &")
                                #set input to encoder
                                self.avswitch.setInput("ENCODER")
                                #restart last played service
                                #unmute adc
                                self.leaveMute()
                                # leave inTryQuitMainloop
                                if config.usage.silent_rec_mode.value:
                                    Notifications.RemovePopup(id = "goStandby")
                                    global inTryQuitMainloop
                                    inTryQuitMainloop = False
                                #kill me
                                self.close(True)
                        
                            def setMute(self):
                                if (eDVBVolumecontrol.getInstance().isMuted()):
                                    self.wasMuted = 1
                                    print "mute already active"
                                else:    
                                    self.wasMuted = 0
                                    eDVBVolumecontrol.getInstance().volumeToggleMute()
                        
                            def leaveMute(self):
                                if self.wasMuted == 0:
                                    eDVBVolumecontrol.getInstance().volumeToggleMute()
                        
                            def __init__(self, session):
                                Screen.__init__(self, session)
                                self.avswitch = AVSwitch()
                        
                                print "enter standby"
                                import os
                                os.system("/etc/init.d/loxone_aus.sh &")
                                self["actions"] = ActionMap( [ "StandbyActions" ],
                                {
                                    "power": self.Power
                                }, -1)
                        
                                globalActionMap.setEnabled(False)
                        
                                #mute adc
                                self.setMute()
                        
                                self.paused_service = None
                                self.prev_running_service = None
                                if self.session.current_dialog:
                                    if self.session.current_dialog.ALLOW_SUSPEND == Screen.SUSPEND_STOPS:
                                        #get currently playing service reference
                                        self.prev_running_service = self.session.nav.getCurrentlyPlayingServiceReference()
                                        #stop actual played dvb-service
                                        if not config.misc.ci_workaround.value:
                                            self.session.nav.stopService()
                                    elif self.session.current_dialog.ALLOW_SUSPEND == Screen.SUSPEND_PAUSES:
                                        self.paused_service = self.session.current_dialog
                                        self.paused_service.pauseService()
                        
                                #set input to vcr scart
                                if SystemInfo["ScartSwitch"]:
                                    self.avswitch.setInput("SCART")
                                else:
                                    self.avswitch.setInput("AUX")
                                self.onFirstExecBegin.append(self.__onFirstExecBegin)
                                self.onClose.append(self.__onClose)
                        
                            def __onClose(self):
                                global inStandby
                                inStandby = None
                                if self.prev_running_service:
                                    if config.usage.startup_service_leavestandby.value and config.servicelist.startup_path.value and config.servicelist.startupservice.value:
                                        from Screens.InfoBar import InfoBar
                                        self.prev_running_service = eServiceReference(config.servicelist.startupservice.value)
                                        if config.servicelist.startupmode.value == "tv":
                                            config.tv.lastservice.value = config.servicelist.startupservice.value
                                            config.tv.lastroot.value = config.servicelist.startup_path.value
                                            config.tv.save()
                                            InfoBar.instance.servicelist.setModeTv()
                                        else:
                                            config.radio.lastservice.value = config.servicelist.startupservice.value
                                            config.radio.lastroot.value = config.servicelist.startup_path.value
                                            config.radio.save()
                                            InfoBar.instance.servicelist.setModeRadio()
                                    self.session.nav.playService(self.prev_running_service)
                                elif self.paused_service:
                                    self.paused_service.unPauseService()
                                self.session.screen["Standby"].boolean = False
                                globalActionMap.setEnabled(True)
                        
                            def __onFirstExecBegin(self):
                                global inStandby
                                inStandby = self
                                self.session.screen["Standby"].boolean = True
                                config.misc.standbyCounter.value += 1
                        
                            def createSummary(self):
                                return StandbySummary
                        
                        class StandbySummary(Screen):
                            skin = """
                            <screen position="0,0" size="132,64">
                                <widget source="global.CurrentTime" render="Label" position="0,0" size="132,64" font="Regular;40" halign="center">
                                    <convert type="ClockToText" />
                                </widget>
                                <widget source="session.RecordState" render="FixedLabel" text=" " position="0,0" size="132,64" zPosition="1" >
                                    <convert type="ConfigEntryTest">config.usage.blinking_display_clock_during_recording,True,CheckSourceBoolean</convert>
                                    <convert type="ConditionalShowHide">Blink</convert>
                                </widget>
                            </screen>"""
                        
                        from enigma import quitMainloop, iRecordableService
                        from Screens.MessageBox import MessageBox
                        from time import time
                        from Components.Task import job_manager
                        from Components.config import ConfigYesNo,NoSave
                        from Tools import Notifications
                        
                        inTryQuitMainloop = False
                        config.misc.DeepStandbyOn = NoSave(ConfigYesNo(default=False))
                        
                        class TryQuitMainloop(MessageBox):
                            def __init__(self, session, retvalue=1, timeout=-1, default_yes = True):
                                self.retval=retvalue
                                recordings = session.nav.getRecordings()
                                jobs = len(job_manager.getPendingJobs())
                                self.connected = False
                                reason = ""
                                next_rec_time = -1
                                if not recordings:
                                    next_rec_time = session.nav.RecordTimer.getNextRecordingTime()    
                                if recordings or (next_rec_time > 0 and (next_rec_time - time()) < 360):
                                    reason = _("Recording(s) are in progress or coming up in few seconds!") + '\n'
                                if jobs:
                                    if jobs == 1:
                                        job = job_manager.getPendingJobs()[0]
                                        reason += "%s: %s (%d%%)\n" % (job.getStatustext(), job.name, int(100*job.progress/float(job.end)))
                                    else:
                                        reason += (_("%d jobs are running in the background!") % jobs) + '\n'
                                self.reason = reason
                                if reason:
                                    if retvalue == 1:
                                        if config.usage.silent_rec_mode.value:
                                            if not inStandby:
                                                print "[SILENT_REC] we want no MessageBox --> go to standby instead"
                                                Notifications.AddNotificationWithID("goStandby", Standby)
                                            else:
                                                print "[SILENT_REC] we are already in standby"
                                            global inTryQuitMainloop
                                            inTryQuitMainloop = True
                                            self.skin = """<screen name="TryQuitMainloop" position="0,0" size="0,0" flags="wfNoBorder"/>"""
                                            Screen.__init__(self, session)
                                            self.close(True)
                                        else:
                                            MessageBox.__init__(self, session, reason+_("Really shutdown now?"), type = MessageBox.TYPE_YESNO, timeout = timeout, default = default_yes)
                                    elif retvalue == 2:
                                        MessageBox.__init__(self, session, reason+_("Really reboot now?"), type = MessageBox.TYPE_YESNO, timeout = timeout, default = default_yes)
                                    elif retvalue == 4:
                                        MessageBox.__init__(self, session, reason+_("Really reboot now?"), type = MessageBox.TYPE_YESNO, timeout = timeout, default = default_yes)
                                    else:
                                        MessageBox.__init__(self, session, reason+_("Really restart now?"), type = MessageBox.TYPE_YESNO, timeout = timeout, default = default_yes)
                                    if config.usage.silent_rec_mode.value and retvalue == 1:
                                        session.nav.record_event.append(self.getRecordEvent)
                                        self.connected = True
                                    else:
                                        self.skinName = "MessageBox"
                                        session.nav.record_event.append(self.getRecordEvent)
                                        self.connected = True
                                        self.onShow.append(self.__onShow)
                                        self.onHide.append(self.__onHide)
                                else:
                                    self.skin = """<screen name="TryQuitMainloop" position="0,0" size="0,0" flags="wfNoBorder"/>"""
                                    Screen.__init__(self, session)
                                    self.close(True)
                        
                            def getRecordEvent(self, recservice, event):
                                if event == iRecordableService.evEnd:
                                    recordings = self.session.nav.getRecordings()
                                    if not recordings: # no more recordings exist
                                        rec_time = self.session.nav.RecordTimer.getNextRecordingTime()
                                        if rec_time > 0 and (rec_time - time()) < 360:
                                            self.initTimeout(360) # wait for next starting timer
                                            self.startTimer()
                                        else:
                                            self.close(True) # immediate shutdown
                                elif event == iRecordableService.evStart:
                                    self.stopTimer()
                        
                            def close(self, value):
                                if self.connected:
                                    self.conntected=False
                                    self.session.nav.record_event.remove(self.getRecordEvent)
                                if value:
                                    if config.usage.silent_rec_mode.value and self.retval == 1 and self.reason != "":
                                        MessageBox.close(self, True)
                                    else:
                                        if self.retval ==1:
                                            config.misc.DeepStandbyOn.value=True
                                        elif self.retval == 3:
                                            jobs = len(job_manager.getPendingJobs())
                                            if jobs:
                                                joblist = job_manager.getPendingJobs()
                                                for job in joblist:
                                                    print "Aborting Job :", job.name
                                                    job.abort()
                                        quitMainloop(self.retval)
                                else:
                                    MessageBox.close(self, True)
                        
                            def __onShow(self):
                                global inTryQuitMainloop
                                inTryQuitMainloop = True
                        
                            def __onHide(self):
                                global inTryQuitMainloop
                                inTryQuitMainloop = False

                        Kein Support per PN!

                        Kommentar

                        • BlScOfDe
                          Dumb Home'r
                          • 26.09.2017
                          • 18

                          #14
                          Falls jemand wie ich über dieses alte Thema stolpert.

                          Ich hatte gerade das selbe Problem mit einem Gerät das nur "true" oder "false" liefert. Auch mit Config 14 wird das noch immer nicht interpretiert.

                          Als Workaround habe ich "\1" (Byte Wert) genommen.
                          In meinem Fall liefert das "t" von "true" 116 und das "f" von "false" 102.
                          Mit einer Wertekorrektur (102 = 0 ; 116 = 1) liefert mir der Eingang nun 0 oder 1.

                          Kommentar

                          Lädt...