Ankündigung

Einklappen
Keine Ankündigung bisher.

Oppo IP-Control

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

    #16
    Erste Erkenntnis: Das was du oben als UDP sendest ist nicht notwendig. Das ist das, was der Player alle 10 Sekunden broadcasted. Damit kann man also herausfinden welche IP und welcher Port für die Connection vom Client verwendet werden muss. Da du die IP Adresse als auch den Port kennst, kannst du den Discover Teil komplett ignorieren. Das löst aber nicht das Kommunikationsproblem.

    Ansonsten´kann wohl optional noch ein <LF> nach dem <CR> gesendet werden.
    Kannst mal versuchen das \0xd zu ersetzen durch \0xd\0xa. Glaube allerdings nicht, dass es dann funktioniert, da das LF nur optional ist. ein CR sollte genügen.

    Kommentar


      #17
      Zitat von jonofe Beitrag anzeigen
      Kannst mal versuchen das \0xd zu ersetzen durch \0xd\0xa. Glaube allerdings nicht, dass es dann funktioniert, da das LF nur optional ist. ein CR sollte genügen.
      Hat leider nichts gebracht- weiterhin funktioniert das Senden nicht. Ich habe alle Varianten 'POW, POW, #POW\r ... getestet !

      ABER: Interessanterweise empfängt der LBS jetzt Änderungen (vgl.. Anhang unten), die am Oppo per Hand durchgeführt werden- also ist wohl kein socat etc. hierfür nötig.

      Nur leider nützt dies wenig, wenn der Empfang nicht klappt !

      Vielen Dank Janofe
      Andreas

      2017_09_20_19_59_50_Fotos.png

      Kommentar


        #18
        Wo haste das denn geändert? Bei sendCmd() oder beim read()?
        Am besten dann mal an beiden Stellen ändern. Falls du es beim sendCmd() nicht geändert hattest, dann könnte dies die Lösung sein.
        Wenn nicht, dann bin ich auch ratlos.

        Kommentar


          #19
          Zitat von jonofe Beitrag anzeigen
          Wo haste das denn geändert? Bei sendCmd() oder beim read()?
          Am besten dann mal an beiden Stellen ändern. Falls du es beim sendCmd() nicht geändert hattest, dann könnte dies die Lösung sein.
          Wenn nicht, dann bin ich auch ratlos.
          Hab´s bei sendCmd geändert - leider scheint uns das also auch nicht weiterzubringen.
          A1 wird außerdem korrekt auf "OK" gesetzt

          2017_09_20_22_28_08_D_19001199_lbs.php_Notepad_.png

          Es kann also eigentlich nur die Sende-Syntax falsch sein: Gesendet werden muss z.B. der Befehl #POW \r (geht mit+ohne Leerzeichen)

          Kann es sein, dass das "#" Probleme macht ? Ich habe auch schon versucht:

          if (socket_write($this->oppo_connection,"\0x23".$cmd." \0xD")) ; alternativ 0x0D statt 0xD
          mit Eingabe bei E4: "POW", auch "POW "

          if (socket_write($this->oppo_connection, $cmd))
          mit Eingabe bei E4: "#POW \r"
          Leider bringen auch alle diese Änderungsvarianten KEINEN Erfolg

          Was könnte an der Syntax für "socket_write" noch falsch sein ?

          Danke
          Andreas







          Kommentar


            #20
            Ehrliche Antwort: Keine Ahnung.

            Wenn du mir mal den Port freischaltest, dann kann ich da mal genau draufschauen. IP und Port kannst du mir dann per EMail senden.

            Kommentar


              #21
              Ich hab da mal was vorbereitet ...
              Befehle senden als auch Statusausgabe sollte schon recht zuverlässig funktionieren. Ist sicher noch nicht fehlerfrei ... einfach mal testen....

              Viel Spaß damit!

              Kommentar


                #22
                Hallo André,

                was für eine Überraschung- und auch noch ohne socat etc. - Ist heute schon Weihnachten ??????



                Offensichtlich war doch das "#" das Problem- die jetzt von Dir jetzt genutzte Variante "#"+ POW+"\x0d\x0a"
                habe ich natürlich nicht getestet- !

                Die ersten Versuche sind super-Alles funktioniert bisher !

                Ich werde die nächsten Tage intensiv testen !

                Einen schönen Abend
                Andreas

                PS: Habe den Port wieder geschlossen !

                Zuletzt geändert von ak68; 22.09.2017, 07:04.

                Kommentar


                  #23
                  Nein es lag nicht am # Zeichen. Das wird jetzt durch den LBS eingefügt. Es lang am Ende Zeichen. Es muss ein \x0d\x0a sein. Musste per tcpdump die Inhalte der Datenpakete zwischen telnet und LBS vergleichen, bis ich das herausgefunden hatte. Aus meiner Sicht ist die Doku hier vermutlich fehlerhaft. Beim Telnet brauchst du auch kein \r anzugeben. Das Drücken der Return Taste fügt \x0d\x0a ein. Naja, jetzt funktioniert es.

                  Standardmäßig wird jetzt am Anfang mit "SVM 2" zu den normalen Statusmeldungen subscribed, die dann automatisch vom Player kommen, sofern man etwas direkt am Player und per Fernbedienung ändert. Sendet man "SVM 3", dann werden auch sekündlich die elapsed/remaining Zeiten aktualisiert. Am Anfang werden außerdem alle Query Befehle gesendet. Gleiches passiert, wenn man eine 1 auf den E8 sendet.

                  Befehle müssen ohne das # und ohne Endezeichen eingegeben werden, d.h. Format: CMD<space>PARAMETER

                  Was mir Aufgefallen ist, dass ein QPW (Query Power) ein ON bzw. OFF liefert. Kurz danach kommt aber ein UPW (Update Power) mit 0 bzw. 1. Somit ergeben sich am Powerausgang derzeit noch nicht konsistente Werte, z.B. kurzfristig "ON" und kurz danach 1. Solche Kleinigkeiten lassen sich aber einfach anpassen.

                  Kommentar


                    #24
                    Hallo André,

                    ich habe jetzt den LBS intensiv getestet mit folgendem Ergebnis:

                    Zitat von jonofe Beitrag anzeigen
                    Standardmäßig wird jetzt am Anfang mit "SVM 2" zu den normalen Statusmeldungen subscribed, die dann automatisch vom Player kommen, sofern man etwas direkt am Player und per Fernbedienung ändert. Sendet man "SVM 3", dann werden auch sekündlich die elapsed/remaining Zeiten aktualisiert. Am Anfang werden außerdem alle Query Befehle gesendet. Gleiches passiert, wenn man eine 1 auf den E8 sendet.
                    Vielleicht sollte dies direkt nach dem Einschalten auf SVM 3 gesetzt werden, damit auch die Zeiten aktualisiert werden !?

                    Zitat von jonofe Beitrag anzeigen
                    Was mir Aufgefallen ist, dass ein QPW (Query Power) ein ON bzw. OFF liefert. Kurz danach kommt aber ein UPW (Update Power) mit 0 bzw. 1. Somit ergeben sich am Powerausgang derzeit noch nicht konsistente Werte, z.B. kurzfristig "ON" und kurz danach 1. Solche Kleinigkeiten lassen sich aber einfach anpassen.
                    Genau dieses Verhalten kann ich auch feststellen, evtl. sollte nur UPW ausgewertet und QPW ignoriert werden, ansonsten hat man eine Mischung von ON, OFF, 0,1 auf Ausgang 7 !

                    Abgesehen von diesen "Kleinigkeiten" funktioniert der LBS SUPER !!!!! Mir sind auch bisher keine weiteren Probleme aufgefallen.

                    Noch einmal ganz herzlichen Dank !!!
                    Ich bin gespannt, was Du noch für Weihnachten in der Hinterhand hast, wenn Du im September schon mit dem Geschenke-Verteilen beginnst !

                    Andreas
                    Zuletzt geändert von ak68; 22.09.2017, 10:30.

                    Kommentar


                      #25
                      SVM 3 kann man machen. Der OPPO sendet dann aber jede Sekunde auch wenn nichts anliegt, glaube ich. Soll ich das ändern oder als separaten Eingang 'verbosity'.

                      Das mit UPW/QPW hätte das Problem, dass du keinen initialen Status bei LBS Start hättest, da UPW nur bei Änderung kommt. Würde eher die QPW Response separat parsen und das ON in eine 1 und das OFF in eine 0 konvertieren. Ok?

                      Weihnachten lasse ich mich dann beschenken!

                      Kommentar


                        #26
                        Zitat von jonofe Beitrag anzeigen
                        SVM 3 kann man machen. Der OPPO sendet dann aber jede Sekunde auch wenn nichts anliegt, glaube ich. Soll ich das ändern oder als separaten Eingang 'verbosity'.
                        Vielleicht kann man nur bei QPW Response = ON/1 auf SVM "3" umschalten, bei OFF/0 wieder auf "2"

                        Alternativ als eigenen Eingang "verbosity", dann kann man dasselbe ja über eine Logik machen

                        Zitat von jonofe Beitrag anzeigen
                        Das mit UPW/QPW hätte das Problem, dass du keinen initialen Status bei LBS Start hättest, da UPW nur bei Änderung kommt. Würde eher die QPW Response separat parsen und das ON in eine 1 und das OFF in eine 0 konvertieren. Ok?
                        Das wäre aus meiner Sicht perfekt !

                        Kommentar


                          #27
                          Jetzt ist bei der Visu-Erstellung doch noch ein Problem mit dem neuen LBS aufgetaucht:

                          Trotz SVM = 3 wird nur A14 korrekt (jede Sekunde) aktualisiert, NICHT jedoch A15-A19 (auch im Log ersichtlich).
                          Diese Ausgänge können auch nicht durch E8 -> 1 aktualisiert werden.

                          Kommentar


                            #28
                            Zitat von ak68 Beitrag anzeigen
                            Jetzt ist bei der Visu-Erstellung doch noch ein Problem mit dem neuen LBS aufgetaucht:

                            Trotz SVM = 3 wird nur A14 korrekt (jede Sekunde) aktualisiert, NICHT jedoch A15-A19 (auch im Log ersichtlich).
                            Diese Ausgänge können auch nicht durch E8 -> 1 aktualisiert werden.
                            Was heißt im Log ersichtlich? Wenn die anderen Zeiten nicht vom OPPO nicht gesendet werden, dann kann der LBS auch nichts anzeigen.
                            Ich habe keine Ahnung in welchen Situation er welche Zeiten sendet. Kannst mal in die Doku schauen. Es ist immer derselbe Update Befehl und je nach Typ wird eine anderere Zeit gesendet.

                            Kommentar


                              #29
                              Update mit Verbosity Output und ON/OFF=>1/0 Mapping ist jetzt zum Download verfügbar. => v0.2 (ungetestet)

                              Kommentar


                                #30
                                Zitat von ak68 Beitrag anzeigen
                                Jetzt ist bei der Visu-Erstellung doch noch ein Problem mit dem neuen LBS aufgetaucht:

                                Trotz SVM = 3 wird nur A14 korrekt (jede Sekunde) aktualisiert, NICHT jedoch A15-A19 (auch im Log ersichtlich).
                                Diese Ausgänge können auch nicht durch E8 -> 1 aktualisiert werden.
                                Habe mit die API noch mal genauer angeschaut.

                                Die Zeit kommt vom OPPO via UTC Kommando:

                                Screenshot from 2017-09-22 17-43-09.png
                                Der Typ gibt dabei an, welche Zeit in dieser Meldung enthalten ist. Diese Zeit wird dann sekündlich vom OPPO aktualisiert und gesendet. Allerdings immer derselbe Zeittyp.

                                Mit dem STC Befehl kannst du dem OPPO wohl sagen, welcher Zeittyp dich interssiert. Sendest du z.B. "STC E" bekommst du immer die "Total Elapsed Time", nach Senden von "STC R" bekommst du immer die "Total Remaining Time", usw.

                                Screenshot from 2017-09-22 17-42-27.png

                                EDIT: So ganz grundsätzlich ist der OPPO aus Sicht der Integrierbarkeit in eine Smarthome Umgebung das Beste was ich an BlueRay Playern bisher gesehen habe. ak68: Wie ist denn sonst so die Qualität? Bist du zufrieden mit dem OPPO? Bei mir werkelt noch immer ein 80€ Blueray Player von LG. Und die 850€ für einen OPPO schrecken mich doch ziemlich ab.
                                Zuletzt geändert von jonofe; 22.09.2017, 16:58.

                                Kommentar

                                Lädt...
                                X