Ankündigung

Einklappen
Keine Ankündigung bisher.

EDOMI - LBS - Diskussion

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

    Hallo zusammen,

    niemand eine Idee wie ich den "Array-Index“ „umbauen“ kann, von:

    $airplay['LSS1']

    kombinieren zu:

    $airplay['LSS‘] LSS als Konstante (LSS = LautSprecherStatus)

    $E[1]['value‘] am Eingang 1 ist eine 1 (für Lautsprecher 1 der eingebunden werden soll)

    um am ende wieder eine LSS1 zu haben ?
    Danke und LG, Dariusz
    GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

    Kommentar


      Hallo Michael,

      im zweiten Ansatz die AirPlay-Lautsprecher zu steuern (+Rückmeldung) möchte ich weg vom starren Konzept á la LBS für 10 Lautsprecher, sondern zum flexibleren LBS pro Lautsprecher über gehen ...

      Hier soll dem LBS am Eingang 1 $E[1]['value'] der Wert 1 zugewiesen werden. Der LBS soll die JSON auslesen und für Lautsprecher 1 (Eingang 1 deshalb 1) nach LSS1 suchen … LSS + 1 vom Eingang 1.
      Weitere Lautsprechern hätten dann am Eingang 1 die 2, 3, 4, … n, somit wäre die Zuweisung weiterer Lautsprecher flexibel (aus meiner Sicht).

      Wie kann man das lösen - ich bin zu unkreativ ...

      Die JSON könnte so aussehen ...

      LS = Lautsprecher
      S = Status
      1 = Lautsprechernummer
      N = LS-Name
      V = LS-Lautstärke

      PHP-Code:
      {
        
      "LSS1" 1,
        
      "LSN1" "Computer",
        
      "LSV1" 20,
        
      "LSS2" 0,
        
      "LSN2" "ATV",
        
      "LSV2" 40,
        
      "LSS3" 0,
        
      "LSN3" "Loewe",
        
      "LSV3" 0,
        
      "LSS4" 0,
        
      "LSN4" "SZ",
        
      "LSV4" 0,
        
      "LSS5" 0,
        
      "LSN5" "KZ",
        
      "LSV5" 0,
        
      "LSS6" 0,
        
      "LSN6" "BZ",
        
      "LSV6" 0,
        
      "LSS7" 0,
        
      "LSN7" "WC",
        
      "LSV7" 0,
        
      "LSS8" 0,
        
      "LSN8" "VZ",
        
      "LSV8" 0,
        
      "LSS9" 0,
        
      "LSN9" "KÜ",
        
      "LSV9" 0,
        
      "LSS10" 0,
        
      "LSN10" "LG",
        
      "LSV10" 0

      Danke und LG, Dariusz
      GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

      Kommentar


        Wie wäre es mit einem n-dimensionalen Array? Also quasi so (ohne jetzt alles begriffen zu haben, was Du meinst):

        $SuperArray[ID][TYP]

        z.B.
        ​$SuperArray[1]['LSS']=1
        ​$SuperArray[1]['LSN']='Computer'
        ​...
        $SuperArray[2]['LSS']=0
        ​$SuperArray[2]['LSN']='ATV'
        ​...

        EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

        Kommentar


          ohne jetzt alles begriffen zu haben, was Du meinst
          Ich versuche es nocheinmal ...
          AirPlay-Lautsprecher, die Dinger die man sich irgendwo zuhause hinstellt, an die Steckdose hängt, die über WLAN eine Verbindung zu iTunes aufbauen und z.B. Musik abspielen

          Ich möchte einen LBS pro Lautsprecher bauen, damit es flexibel bleibt = für jeden Lautsprecher ein kleiner LBS.
          Dieser kleine LBS bekommt den Inhalt einer JSON-Datei übermittelt siehe #167 unten, in der Informationen über alle an iTunes angeschlossenen Lautsprecher drinnen stehen.
          Jetzt soll der kleine LBS für den ersten Lautsprecher mit der Nummer 1 am LBS-Eingang-Nummer-1 den Wert = 1 erhalten, damit der kleine LBS weiß, dass er aus der JSON-Datei, die für den Lautsprecher 1 notwendigen Infos verwendet - hier LSS + LSN + LSV mit der 1, die anderen mit 2, 3, … n sind diesem kleinen LBS mit der Nummer 1 egal ...

          Ich weiß leider nicht wie ich die Infos aus der Datei hole unter der Berücksichtigung des Wertes am LBS-Eingang-1.

          Falls ich noch immer kauderwelsch geschrieben habe, dann sage mir bitte was noch unverständlich ist - ich werde mich bemühen

          DANKE !
          Danke und LG, Dariusz
          GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

          Kommentar


            Um das mal etwas einzudampfen:

            Du möchtest einen LBS erstellen, welchem konfigurativ mitgeteilt wird, auf welche ID er reagieren soll. Daraufhin sucht er sich aus den JSON-Daten den Teil heraus, der für ihn relevant ist. Dafür braucht der LBS zwei Eingänge:
            • E1: ID des Lautsprechers
            • E2: JSON-Daten

            Soweit korrekt?
            Kind regards,
            Yves

            Kommentar


              Ohne das jetzt ausprobiert zu haben:

              $airplay ['LSS' + $E[1] ['value']]

              Würde ich meinen sollte funktionieren...

              Kommentar


                Zitat von starwarsfan Beitrag anzeigen
                um das mal etwas einzudampfen:

                Du möchtest einen lbs erstellen, welchem konfigurativ mitgeteilt wird, auf welche id er reagieren soll. Daraufhin sucht er sich aus den json-daten den teil heraus, der für ihn relevant ist. Dafür braucht der lbs zwei eingänge:
                • e1: Id des lautsprechers
                • e2: Json-daten

                soweit korrekt?
                yes
                Danke und LG, Dariusz
                GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                Kommentar


                  Zitat von glueckm Beitrag anzeigen
                  Ohne das jetzt ausprobiert zu haben:

                  $airplay ['LSS' + $E[1] ['value']]

                  Würde ich meinen sollte funktionieren...
                  Werde ich mal probieren ...
                  Danke und LG, Dariusz
                  GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                  Kommentar


                    Zitat von coliflower Beitrag anzeigen
                    Werde ich mal probieren ...
                    $airplay ['LSS' . $E[1] ['value']]

                    passt - glaube ich - besser...

                    gruesse :: Michael

                    Kommentar


                      Hallo zusammen,

                      danke ! Anscheinend habe ich versucht mir durch den Rücken ins Auge zu schießen ….

                      Ich habe es so gelöst - danke für den „roten Faden“ !!

                      PHP-Code:
                          if (array_key_exists('LSS'.$E[1]['value'],$airplay)) {
                              
                      setLogicLinkAusgang($id,1,$airplay['LSS'.$E[1]['value']]);
                              if (
                      $debug == 1) {
                                  
                      LB_LBSID_DEBUG($id,'iTunes | A01 | LSS'.$E[1]['value'].' exists in json:    '.array_key_exists(('LSS'.$E[1]['value']),$airplay));
                                  
                      LB_LBSID_DEBUG($id,'iTunes | A01 | LSS-Wert ist:                            '.$airplay['LSS'.$E[1]['value']]);
                              }
                          } 

                      Bildschirmfoto 2016-03-07 um 17.31.46.png

                      2016-03-07 17:28:37 383761 EXEC 22555 LBS19000006(134): iTunes | A01 | LSS1 exists in json: 1
                      2016-03-07 17:28:37 383929 EXEC 22555 LBS19000006(134): iTunes | A01 | LSS-Wert ist: 1
                      2016-03-07 17:28:37 386918 EXEC 22555 LBS19000006(134): iTunes | A02 | LSN1 exists in json: 1
                      2016-03-07 17:28:37 386980 EXEC 22555 LBS19000006(134): iTunes | A02 | LSN-Wert ist: Computer
                      2016-03-07 17:28:37 387217 EXEC 22555 LBS19000006(134): iTunes | A03 | LSV1 exists in json: 1
                      2016-03-07 17:28:37 387258 EXEC 22555 LBS19000006(134): iTunes | A03 | LSV-Wert / Lautstärke ist: 20

                      Danke und LG, Dariusz
                      GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                      Kommentar


                        Hallo zusammen,

                        kann mir jemand sagen warum und wie ich es lösen kann wenn ich eine Datei abfragen möchte ob diese existiert - irgend wie bekomme ich immer die FALSE ...

                        PHP-Code:
                        if (file_exists('http://'.$E[3]['value'].$E[4]['value'].'%7E'.$E[5]['value'].'/'.$E[11]['value'].'.json') == true) {
                            
                        setLogicLinkAusgang($id,1,1);
                            
                        writeToTraceLog(0,true,'iTunes E/A File Wert ist 1 ... '.$player__);
                            } else {
                            
                        setLogicLinkAusgang($id,1,0);
                            
                        writeToTraceLog(0,true,'iTunes E/A File Wert ist 0 ... '.$player__);

                        Danke und LG, Dariusz
                        GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                        Kommentar


                          Zitat von coliflower Beitrag anzeigen
                          kann mir jemand sagen warum und wie ich es lösen kann wenn ich eine Datei abfragen möchte ob diese existiert - irgend wie bekomme ich immer die FALSE ...
                          Ja, weil file_exists() das Dateisystem ueberprueft, keine URLs.
                          Die korrekte Realisierung haengt davon ab, was Du genau erreichen willst (also zB ob der Server reagiert, einen Fehler zruueckgibt, die URL vorhanden ist, das Ergebnis leer, uswusf)...

                          Kommentar


                            Ich möchte abfragen ob die player.json am Webserver liegt und wenn ja, dann 1, wenn nicht, dann 0
                            Und danke für die Erklärung !!
                            Danke und LG, Dariusz
                            GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                            Kommentar


                              Zitat von coliflower Beitrag anzeigen
                              Ich möchte abfragen ob die player.json am Webserver liegt und wenn ja, dann 1, wenn nicht, dann 0
                              PHP-Code:
                              if ($json=file_get_contents('http://foo/bar.json')) {
                                echo 
                              "ja";
                              } else {
                                echo 
                              "nein";

                              Du musst Dich allerdings drauf einstellen, dass ein eventueller 404er Fehler zu einem EIntrag im Edomi Error-Log fuehren wird...

                              Kommentar


                                Danke !

                                file_get_contents () habe ich es schon im Einsatz um die JSON auszulesen und zu parsen … Und ja der 404er kommt, wenn die JSON nicht abrufbar ist …
                                Das passiert wenn iTunes ausgeschaltet ist :-(

                                file_get_contents(http://10.0.100.150/%7Edariusz/player.json): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
                                Hättest du eine Idee wie man so etwas abfangen kann ?
                                Danke und LG, Dariusz
                                GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                                Kommentar

                                Lädt...
                                X