Ankündigung

Einklappen
Keine Ankündigung bisher.

iTunes | Steuerung via Script über WebServer | Edomi

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

    Zitat von gaert Beitrag anzeigen
    Der rote Rahmen bedeutet, dass der LBS "läuft".
    Damit ich etwas daraus lerne - warum gibt es jetzt den roten blinkenden Rahmen um den LBS nicht mehr wie am Bild in Post #77 ?

    Ich traue mich gar nicht mehr zu fragen, aber socket_close($socket); .. nicht Socken ;-) … muss der vor- oder nach den usleep(); ?

    Und last but not least zum aktuellem Status des LBS … worüber soll ich noch in www lesen um den LBS abzusichern ?

    DANKE
    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 traue mich gar nicht mehr zu fragen, aber socket_close($socket); .. nicht Socken ;-) … muss der vor- oder nach den usleep(); ?

      DANKE
      Blödsinn, nach der Schleife … richtig ?

      PHP-Code:
      if ($E=getLogicEingangDataAll($id)) {

          if (
      $socket socket_create(AF_INETSOCK_DGRAMSOL_UDP)) {
          if (
      socket_bind($socket'0.0.0.0'$E[2]['value'])) {

              while(
      getSysInfo(1)>=1) {
                  
      $data socket_read($socket1024);
                  
      $data preg_replace("/[^A-Za-z0-9&=]/",'',$data);

                  
      parse_str($data$output); //    $output = array();

                  
      if (array_key_exists('Play'$output))    {setLogicLinkAusgang($id,1,$output['Play']);}
                  if (
      array_key_exists('Pause',$output))    {setLogicLinkAusgang($id,2,$output['Pause']);}
                  if (
      array_key_exists('Stop'$output))    {setLogicLinkAusgang($id,3,$output['Stop']);}
                  if (
      array_key_exists('FF',   $output))    {setLogicLinkAusgang($id,4,$output['FF']);}
                  if (
      array_key_exists('FR',   $output))    {setLogicLinkAusgang($id,5,$output['FR']);}
                  if (
      array_key_exists('LS1',  $output))    {setLogicLinkAusgang($id,6,$output['LS1']);}
                  if (
      array_key_exists('LS2',  $output))    {setLogicLinkAusgang($id,7,$output['LS2']);}
                  if (
      array_key_exists('LSV1'$output))    {setLogicLinkAusgang($id,8,$output['LSV1']);}
                  if (
      array_key_exists('LSV2'$output))    {setLogicLinkAusgang($id,9,$output['LSV2']);}
                  
      usleep(1000*10); //z.B. 10ms warten - wichtig, um die CPU-Last zu begrenzen!

                  
      }

      socket_close($socket)

              }
          }

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

      Kommentar


        Nach der Schleife ist richtig.

        Kommentar


          panzaeron
          Danke Axel !

          Die Position am Ende zwischen den { von if und while ist richtig ?
          Danke und LG, Dariusz
          GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

          Kommentar


            Na komm... Socket_create() erstellt den Socket (öffnet ihn quasi), also muss socket_close() natürlich nur aufgerufen werden, wenn das Erstellen auch geklappt hat... Das schaffst du

            Der rote Rahmen ist weg, weil der LBS nicht mehr den Status "läuft" erhält. Dies ist ja auch nicht erforderlich, weil der LBS ja lediglich das EXEC-Script startet und dann nichts mehr zu tun hat. Das laufende EXEC-Script hat mit diesem Rahmen nichts zu tun, weil es ja ein völlig lösgelöster Prozess ist. Du kannst aber in dem Statistik-Widget unter "PHP" erkennen, wieviele PHP-Prozesse aktuell laufen: Normal sind 5 (sofern KNX und Phonemonitor aktiviert sind, sonst 3 bzw. 4). Dein EXEC-Script wird diesen Wert um 1 erhöhen solange es läuft.
            EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

            Kommentar


              Na ja, wenn es das create() und nicht das bind() beendet, dann muss close() um eine „Klammer“ aus #107, noch weiter nach unten, richtig ? Das muss man aber wissen und das weiß halt ein Programmierer ;-)

              PHP-Code:
                          if (array_key_exists('LSV2'$output))    {setLogicLinkAusgang($id,9,$output['LSV2']);}
                          
              usleep(1000*10); //z.B. 10ms warten - wichtig, um die CPU-Last zu begrenzen!

                          
              }
                      }
                  
              socket_close($socket)
                  }


              Der rote Rahmen ist weg, weil der LBS nicht mehr den Status "läuft" erhält.
              DANKE !
              Danke und LG, Dariusz
              GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

              Kommentar


                Gäbe es noch was zur Absicherung des LBS ?

                Die Daemon Absicherung hast du ja schon eingeführt …
                Die Überprüfung ob der Array die Werte vom String übergeben bekommen hat, auch erledigt ...
                socket_close() ist auch erledigt ...
                Danke und LG, Dariusz
                GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                Kommentar


                  Da gäbe es noch so einiges, aber wir wollen mal die Kirche im Dorf lassen Gefahren wie SQL-Injections (ja, intern sind Datenbanken im Spiel...) etc. spielen hier kaum eine Rolle - schließlich kommen die UDP-Daten ja aus dem eigenen Netz von einem eigenen Script.

                  Sieht doch schon ganz gut aus, Dein LBS Dir kommen bestimmt noch einige Ideen, jetzt wo Du Blut geleckt hast
                  EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                  Kommentar


                    Sieht doch schon ganz gut aus, Dein LBS
                    Wenn die anderen Apple-Scripte usw. fertig sind, wäre der LBS schon was für den Downloadbereich ?

                    Dir kommen bestimmt noch einige Ideen, jetzt wo Du Blut geleckt hast
                    Der umgekehrte Weg (bis jetzt waren das nur die Rückmeldungen von iTunes), wenn ich über EDOMI iTunes schalten möchte (anstatt der Remote-App ;-) ?

                    Einfach Button drücken (KO) und via HTTP an iTunes (WebServer) die 1/0 für „Play" schicken oder oder ein LBS ?

                    oder

                    den ROTEL einbinden, aber das geht leicht, der hat ein KNX/RS232-Gateway ...
                    Danke und LG, Dariusz
                    GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                    Kommentar


                      Zitat von coliflower Beitrag anzeigen

                      Wenn die anderen Apple-Scripte usw. fertig sind, wäre der LBS schon was für den Downloadbereich ?



                      Der umgekehrte Weg (bis jetzt waren das nur die Rückmeldungen von iTunes), wenn ich über EDOMI iTunes schalten möchte (anstatt der Remote-App ;-) ?

                      Einfach Button drücken (KO) und via HTTP an iTunes (WebServer) die 1/0 für „Play" schicken oder oder ein LBS ?

                      oder

                      den ROTEL einbinden, aber das geht leicht, der hat ein KNX/RS232-Gateway ...
                      jap der wäre super im download bereich samt der skripte

                      Kommentar


                        Eine andere Frage, kann man aufgrund einer Eingabe am Eingang des LBS, z.B. Computer oder ATV … den Ausgang automatisch/dynamisch umbenennen ?
                        Quasi weg vom hard-codiertem Namen wie LS1, LS2, usw. zum individuellem Namen …
                        Danke und LG, Dariusz
                        GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                        Kommentar


                          Usecase? Nutzen?

                          Der LBS lebt ja nur innerhalb von Edomi, was hätte man davon?

                          Kommentar


                            Den einem ist LS1, LS2, .. für die Lautsprecher ausreichend, den anderen nicht, der hätte lieber Computer, Apple-TV (ATV) oder AirportExpress, usw …
                            Aber eigentlich geht es mir um die Machbarkeit ob es geht … Was dazu lernen …. :-)
                            Danke und LG, Dariusz
                            GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                            Kommentar


                              Wenn du so etwas benötigst, dann kannst du zusätzliche Ausgänge anlegen, an dem der Name ausgegeben wird. Das kannst du auch direkt durchreichen, wenn du an einem Eingang die Belegungsnamen vorgibst. Eine diekte Änderung der Ausgangsbezeichnungen wird nur durch Änderung des LBS möglich sein.

                              Kommentar


                                So ist es... Die Ausgänge sind nicht dynamisch änderbar - das würde normalerweise auch keinen Sinn machen.
                                EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                                Kommentar

                                Lädt...
                                X