Ankündigung

Einklappen
Keine Ankündigung bisher.

Squeezebox Status erkennen

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

    Squeezebox Status erkennen

    Hi Leute..

    hab mich in letzter Zeit wieder a bisserl mit da Squeezebox (Radio) und
    dem Eibpc gespielt.. Play, Pause usw. alles kein Problem.. jetzt würd
    ich nur gern den Zustand des Players auf der Visu sehen...
    das geht soweit eigentlich ganz gut mit sendtcp und readtcp...
    leider kommt es aber nach gewisser Zeit zu problemen.. zb. heute lies
    sich die Squeezebox weder über die Visu ein/ausschalten noch gings über einen
    Schalter den ich damit Verknüpft hatte...

    Der Status der SB wurde mir mit On angezeigt obwohl sie Off war...

    als ich dann den Code neu auf die Squeezebox gespielt hab (unverändert)
    gings wieder... ich denk mal morgen gehts dann irgendwann mal wieder nicht mehr.

    könnte das an den häufigen Verbindungen liegen.. die er ja aufbaut
    um den aktuellen Status abzufragen ??

    ich poste mal meinen Code vielleicht fällt euch ja was dazu ein...
    Der lässt sich sicher verbessern:

    [highlight=epc]
    if TCPConnected==AUS then connecttcp(ServerPort, ServerIP) endif
    if stime(15) and TCPConnected then sendtcp(ServerPort, ServerIP, Player1ID + $ power ?$) endif
    if event(readtcp(ServerPort,ServerIP,SBr_power)) then SB_power=split(SBr_power,34u16,35u16) endif
    SB_Power=convert(SB_power,0b01)
    if SB_Power==EIN then pdisplay(2,$Ein$,SWITCH,ACTIVE,GREEN,2)else pdisplay(2,$Aus$,SWITCH,INACTIVE,GREY,2) endif
    [/highlight]

    Gruß Martin
    Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

    #2
    so.. ich wärm das Thema nochmal auf..

    hat da zufällig jemand eine funktionierende (zuverlässige)
    Möglichkeit gefunden den Status der SB abzufragen ??

    Gruß Martin
    Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

    Kommentar


      #3
      Hallo Martin,

      ich habe ein ähnliches Problem aber mit einem anderen Gerät, was im Netzwerk hängt. Nach einem Neustart des eibPC funktioniert die Kommunikation noch einwandfrei, aber nach einiger Zeit werden dann die Webbuttons nicht mehr angenommen bzw. man muss sie öfter betätigen, bis sich auf der Gegenseite etwas tut. Die Gegenseite sendet von sich aus ebenfalls Daten an den eibPC, die auch alle erkannt werden. Starte ich den eibPC neu funktioniert alles einige Zeit wieder in beide Richtungen. Ich muss allerdings dazusagen, dass ich eine ziemlich hohe Last am eibPC habe und vermute, dass das Problem bei mir daher kommt. Aber leider weiss ich noch immer nicht, wie ich die Last verringern kann. Es sieht für mich so aus, als wäre der Webserver überlastet und der eibPC erkennt den Tastendruck nicht.

      [Performance]
      // Performance Einstellungen
      28
      199
      30

      Gruß Markus

      Kommentar


        #4
        Zitat von Marha Beitrag anzeigen
        Hallo Martin,
        ich habe ein ähnliches Problem aber mit einem anderen Gerät, was im Netzwerk hängt. Nach einem Neustart des eibPC funktioniert die Kommunikation noch einwandfrei, aber nach einiger Zeit werden dann die Webbuttons nicht mehr angenommen bzw. man muss sie öfter betätigen, bis sich auf der Gegenseite etwas tut. Die Gegenseite sendet von sich aus ebenfalls Daten an den eibPC, die auch alle erkannt werden
        Hm, gibt es sowas wie einen Wireshark-Mitschnitt? Wie ist das mit den Verbindungen: Sind die ständig in Gerbauch, oder fliegen die regelmäßig raus? Nicht, dass eine Art Müllberg von nicht mehr genutzten und scheintoten Verbindungen gibt, die das System ausbremsen. Immerhin sollte man da ggf. mit closetcp den Socket aufräumen.
        Meint Ihr mit Neustart, das Programm neu einspielen oder einen echten Neustart?
        offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
        Enertex Produkte kaufen

        Kommentar


          #5
          Meine Verbindung ist eine UDP-Verbindung. Weiss nicht, ob da auch etwas offen bleibt.
          Ich meine einen richtigen Neustart. Spannung des einPC unterbrechen.

          Gruß Markus

          Kommentar


            #6
            Was mich halt stutzig macht ist die Tatsache, das die Webbuttons nicht zuverlässig erkannt werden bzw. man sie mehrmals betätigen muss, bis etwas passiert. Wenn ich aber über das EibStudio die Zeit vom eibPC abfrage, kommt die Antwort immer sofort.
            Es macht auch einen Unterschied, ob ich mit den Webbuttons ein UDP-Telegramm senden will oder ob ich auf den EIB-Bus sende. Auf den EIB-Bus zu senden, funktioniert auch zuverlässig.

            Gruß Markus

            Kommentar


              #7
              ich hab aktuell eh ein anders Problem..

              ich hab noch die Wunderground Weather abfrage drin..
              jetzt bekomm ich bei jedem
              [highlight=epc]
              if Var == EIN then connecttcp(ServerPort, ServerIP) endif
              if after(Var == EIN, TimeLag) and TCPConnected then sendtcp(ServerPort, ServerIP,PlayerID + $ power ?$); Var = AUS endif
              if event(readtcp(ServerPort, ServerIP, SB1_power)).....
              [/highlight]

              unter die Variable SB1_power die Antwort der Wetterabfrage..

              ich dachte das readtcp liest nur die Antwort wenn sie vom "ServerPort" bzw. "ServerIP" kommt ??

              Gruß Martin
              Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

              Kommentar


                #8
                Zitat von Marha Beitrag anzeigen
                Es macht auch einen Unterschied, ob ich mit den Webbuttons ein UDP-Telegramm
                Upd lässt keinen Socket offen. Ggf. hilft da ein Update des Webservers, da ist was in der Pipe.
                EDIT: Siehe Patch-Update.
                offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                Enertex Produkte kaufen

                Kommentar


                  #9
                  ganz ehrlich.. ech check des nicht..

                  folgender Code:

                  [highlight=epc]
                  SB_Status_test=0b01
                  SB1_power = $$
                  SBServerIP=0u32

                  if pbutton(34,Konfig2ID)==1 then {
                  SB_Status_test=1b01;
                  pdisplay(34,SB1_power,INFO,ACTIVE,GREEN,Konfig2ID) ;
                  }endif

                  if SB_Status_test == EIN then connecttcp(9090u16, 192.168.178.22) endif
                  if after(SB_Status_test, 1000u64)== EIN then sendtcp(9090u16, 192.168.178.22,$00:xx:20:xx:42:xx power ?$); SB_Status_test = AUS endif

                  if event(readtcp(9090u16, SBServerIP, SB1_power)) and SBServerIP == 192.168.178.22 then SB1_power=SB1_power endif
                  [/highlight]

                  hab mal IP und Port usw. "hart" reingecoded... (testweise)

                  also .. der genannte Code gibt als Antwort:
                  SB1_Power = % Wert: ng> </date> <period>4</period> <high> <fahrenheit>72</fahrenheit> <celsius>22</celsius> </high> <low> <fahrenheit>57</fahrenheit> <celsius>14</celsius> </low> <conditions>Teils Wolkig</conditions> <icon>partlycloudy</icon> <icon_url>http://icons-ak.wxug.com/i/c/k/partlycloudy.gif</icon_url> <skyicon>sunny</skyicon> <pop>0</pop> <qpf_allday> <in>0.00</in> <mm>0.0</mm> </qpf_allday> <qpf_day> <in>0.00</in> <mm>0.0</mm> </qpf_day> <qpf_night> <in>0.00</in> <mm>0.0</mm> </qpf_night> <snow_allday> <in>0</in> <cm>0</cm> </snow_allday> <snow_day> <in>0</in> <cm>0</cm> </snow_day> <snow_night> <in>0</in> <cm>0</cm> </snow_night> <maxwind> <mph>7</mph> <kph>11</kph> <dir>Ost-Nordost</dir> <degrees>65</degrees> </maxwind> <avewind> <mph>6</mph> <kph>10</kph> <dir>Ost</dir> <degrees>81</degrees> </avewind> <avehumidity>76</avehumidity> <maxhumidity>88</maxhumidity> <minhumidity>59</minhumidity> </forecastday> </forecastdays> </simpleforecast> </forecast>

                  und als IP = 644253834 (das ist die von Wunderground) ..

                  WIESO ??

                  vielleicht kann mir da mal einer einen Tipp geben..

                  Danke..

                  Gruß Martin
                  Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

                  Kommentar


                    #10
                    Zitat von Brick Beitrag anzeigen
                    ganz ehrlich.. ech check des nicht..
                    [highlight=epc]
                    if event(readtcp(9090u16, SBServerIP, SB1_power)) and SBServerIP == 192.168.178.22 then SB1_power=SB1_power endif
                    [/highlight]
                    Die Funktion readtcp modifiziert die Argumente, daher wird SB1_power mit dem Telegrammwerten überschrieben, und zwar immer, wenn ein Telegramm eintrifft. Die ServerIP-abfrage bringt da so nix.
                    Das Beispiel hier zeigt hoffentlich, was ich damit meine:
                    [highlight=epc]
                    Data=$$
                    Port=0u16
                    if event(readtcp(Port, SBServerIP, Data)) and SBServerIP == 192.168.178.22 then SB1_power=Data endif
                    [/highlight]
                    EDIT: Da seh ich gerade: 9090 sollte da auch nicht stehen, sonst wird die Zahl verändert, wenn ein Telegramm eintrifft!
                    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
                    Enertex Produkte kaufen

                    Kommentar


                      #11
                      ok,

                      ich glaub mein Fehler war, das ich beim ReadTCP den gleichen Port u. IP
                      genommen hab, wie beim SendTCP..

                      jetzt mit eigenen Variablen dafür gehts..

                      Danke für die Hilfe..

                      Gruß Martin...
                      Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

                      Kommentar


                        #12
                        @Brick

                        Kônntest du vielleicht deinen letzten Code posten, mit dem es jetzt Zuverlässig funktioniert!

                        Danke
                        MfG MrKnx

                        Kommentar


                          #13
                          Logo

                          [highlight=epc]
                          SB_Status=0b01
                          SB_power = $$
                          SBData=$$
                          SBServerIP=0u32
                          SBServerPort=0u16

                          if cycle(00,15) then SB_Status= 1b01 endif

                          if SB_Status == EIN then connecttcp(9090u16, 192.168.178.22) endif
                          if after(SB_Status, 1000u64)== EIN then sendtcp(9090u16, 192.168.178.22,$00:04:20:27:42:70 power ?$); SB_Status = AUS endif

                          if event(readtcp(SBServerPort, SBServerIP, SBData)) and SBServerIP == 192.168.178.22 then SB_power=split(SBData,34u16,35u16)endif
                          SB_Power=convert(SB_power,0b01)
                          [/highlight]

                          über SB_Power erkenn ich dann ob An, oder Aus..

                          Gruß Martin
                          Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

                          Kommentar


                            #14
                            Hast du den Code wieder entfernt?
                            MfG MrKnx

                            Kommentar


                              #15
                              eigentlich ned.. der war doch online ??

                              komisch..

                              ich post den später noch mal !!
                              Die Selbsthilfegruppe "UTF-8-Probleme" trifft sich diesmal abweichend im groüen Saal.

                              Kommentar

                              Lädt...
                              X