Ankündigung

Einklappen
Keine Ankündigung bisher.

phillips Hue, slider für Helligkeit

Einklappen

Neue Werbung 2019

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

  • phillips Hue, slider für Helligkeit

    Hallo zusammen,

    ich suche jemanden der mir einen "value" Slider erstellen kann um meine Phillips HUE Lampen anzusprechen( Helligkeit). Den notwendigen code für die Hue habe ich, allerdings schaffe ich es nicht die Variable des Sliders entsprechend zu füllen. (0-254) oder andersrum die Position des Sliders eben als wert zurückzugeben...

    Ist alles ziemlich kompliziert für Hilfe wäre ich dankbar. Bin nur Hobby Bastler, also rein privat.

  • #2
    ich suche jemanden der mir einen "value" Slider erstellen kann
    [MOD: verschoben]
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      sowas ?
      https://codepen.io/seanstopnik/pen/CeLqA

      Kommentar


      • #4
        In Prinzip ja, am liebsten diesen hier

        http://rangeslider.js.org

        da eine Steuerung via Touch (Tablet)!erfolgen soll. Der reagiert sehr gut auf eingaben

        Kommentar


        • #5
          und du weisst nicht was Du bei:

          Code:
           
           onSlideEnd: function(position, value) {}
          eingeben sollst?

          Kommentar


          • #6
            Hi,

            ich geben zu ich habe leider echt wenig Ahnung, ich tüfteln mich da durch mit Hilfe aus Internet, Foren, Fragen von Freunden bekannten etc.
            In vielen Fällen kann ich "funktionierendes" weiter für mich anpassen etc.

            das ist mein php code der meine Lampen steuert. Ich habe diverse Slider ausprobiert, aber ich schaffe es nicht den Sliderwert in die Variable $BRI einzusetzen.
            Sobald ich den Wert $BRI manuell füttere steuert es meine Lampen.

            Wäre für ein hilfreichen Hinweis echt dankbar. ich versuche das (schäm) bereits seit längerer Zeit, je nach zeitlicher Freizeit und wieder Aufraffen nach erfolglosen Versuchen...

            Danke!



            HTML-Code:
            <?php
            // dieser Wert muss über den Schieberegler befüllt werden. 0-254
            $BRI_Value=200;
            // dieser Wert muss über den Schieberegler befüllt werden. 0-254
            
            
            // alles OK - funktioniert, dieser code schaltet die Hue Lampen ein.
            
            $arrData['on'] = true;
            $arrData['bri'] = $BRI_Value;
            
            $data = json_encode($arrData);
            echo $data;
            
            $url = "192.168.10.27/api/aSwgVLjArWUnzn3OqjGVdMZfdGWQbMFd2xNKtRsT/groups/2/action";
            
            $ch = curl_init();
            
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_PORT, 80);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
            
            $response = curl_exec($ch);
            echo $response; 
            
            
            ?>

            Kommentar


            • #7
              Folgender Code sollte bei dir funktionieren
              PHP-Code:
              <?php
              $options
              =array('options'=>array('default'=>127'min_range'=>0'max_range'=>254));
              $hue filter_input(INPUT_GET'lampe'FILTER_VALIDATE_INT$options);

              $arrData['on'] = true;
              $arrData['bri'] = $hue;

              $data json_encode($arrData);

              $url "192.168.10.27/api/aSwgVLjArWUnzn3OqjGVdMZfdGWQbMFd2xNKtRsT/groups/2/action";

              $ch curl_init();

              curl_setopt($chCURLOPT_URL$url);
              curl_setopt($chCURLOPT_PORT80);
              curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
              curl_setopt($chCURLOPT_POSTFIELDS$data);
              curl_setopt($chCURLOPT_CUSTOMREQUEST"PUT");

              $response curl_exec($ch);

              // Ab hier erfolgt die Ausgabe von HTML
              ?>

              <!doctype html>
              <html>
              <head>
              <meta charset="utf-8">
              <title>Helligkeitssteuerung mit Range Input und CSS</title>
              <style>
              input[type='range'] {
                  -webkit-appearance: none;
                  border-radius: 5px;
                  box-shadow: inset 0 0 5px #333;
                  background-color: #420;
                  height: 10px;
                  vertical-align: middle;
                  width: 310px;
              }
              input[type='range']::-moz-range-track {
                  -moz-appearance: none;
                  border-radius: 5px;
                  box-shadow: inset 0 0 5px #333;
                  background-color: #bbb;
                  height: 6px;
                  width: 300px;
                  border: 1px dotted grey;
              }
              input[type='range']::-webkit-slider-thumb {
                  -webkit-appearance: none !important;
                  border-radius: 20px;
                  background-color: #FFF;
                  box-shadow:inset 0 0 10px rgba(000,000,000,0.5);
                  border: 1px solid #999;
                  height: 20px;
                  width: 20px;
              }
              input[type='range']::-moz-range-thumb {
                  -moz-appearance: none;
                  border-radius: 6px;
                  background-color: #000;
                  box-shadow:inset 0 0 5px rgba(200,100,000,0.1);
                  border: 1px solid #000;
                  height: 40px;
                  width: 10px;
              }
              </style>
              </head>

              <body>
              <h1>HTML5 Range Input With CSS</h1>
              <form>
                  0<input type="range" name="lampe" min="0" max="254" value="<?=$hue?>" step="1"  onChange="this.form.submit()">max
              </form>

              <p>Der Wert dient nur der Kontrolle und kann entfernt werden.</p>
              <p>Wert: <?=$hue?></p>

              </body>
              </html>
              Beim Slider habe ich mich aus meiner Trickkiste bedient und das so übernommen ohne das CSS jetzt an deine Vorgeben anzupassen, das kannst du selber machen.

              Ist zwar ohne Eventlistener(Javascript) aber sollte, wenn du keine weiteren Spielereien haben möchtest, seinen Zweck erfüllen und ist dafür gratis.

              Kommentar


              • #8
                jetzt bin ich doch glatt nochmals aus der Kiste gesprungen um das zu probieren

                ein Riesen DANKE!
                (muss es mir inhaltlich noch genauer ansehen um es zu verstehen)

                Lokal funktioniert es perfekt!!! Das css passe ich an.

                Auf meinem Raspberry der die Seite hostet wird, wird leider nur eine leere Seite angezeigt ?! eine Idee?

                Gute Nacht
                PS. bin echt Happy suche schon lange danach

                Kommentar


                • #9
                  Oh mann dieser Slider ...

                  auf meinem lokalen MAMP auf dem Mac und Windows wird alles dargestellt... auf dem Apache raspberry nix, nur leere Seite. Update/ upgrade des Raspi hat leider nicht geholfen.

                  Kommentar


                  • #10
                    ok habe den Fehler gefunden... phpCurl war auf dem Raps nicht vorhanden...

                    jetzt geht der Slider zumindest - habe zwar noch einen Fehler aber ich bastel erstmal weiter.

                    Nochmals eine Dank, soweit war ich bisher noch nie.

                    Kommentar


                    • #11
                      Hallo zusammen,

                      der Slider auf meinem Tablet funktioniert... Danke an Protestix für die Hilfe.

                      Leider habe ich jetzt ein anderes Problem
                      Der Slider sendet an den Hue Hub den Wert BRI "0-254" abhängig der Sliderposition. Damit erhöht/ verringert sich die Helligkeit.
                      Da ich noch eine App habe mit der ich ebenfalls die Helligkeit steuern kann, ist damit keine Steuerung mehr möglich - die Sliderposition überschreibt immer die Änderungen.

                      Ich habe es geschafft eine Abfrage des BRI Wertes aus der HUE zu erhalten
                      HTML-Code:
                      // definiere IP Adresse Hue Hub    
                      $hue_ip = ('http://192.168.10.27');
                      $hue_json_source = file_get_contents("$hue_ip/api/aSwgVLjArWUnzn3OqjGVdMZfdGWQbMFd2xNKtRsT/groups/2/");
                      $hue_decode = json_decode($hue_json_source, true);
                      //Auslesen Hue Werte
                      $hue_bri_value = $hue_decode ['action']['bri'];
                      Als Rückgabe erhalte ich 0-254

                      jetzt habe ich 2 Variablen die sich syncen müssen.

                      - Wird die Varible "$hue_bri_value" auf dem hub geändert soll sich der Slider an die entsprechende Position schieben.
                      - Verändere ich den Slider soll dieser den Hue Hub ansprechen (das funktioniert ja bereits)

                      Puhh - wird immer komplizierter

                      Danke an alle die sich Zeit nehmen zu lesen.


                      Kommentar


                      • #12
                        Dann solltest du dich mit AJAX oder WebSocket beschäftigen.

                        Kommentar


                        • #13
                          Hi, danke für deine Antwort...
                          das sind jetzt 2 sehr große Begriffe

                          kannst du das vielleicht noch etwas einschränken, damit ich via Tante google erwas gezielter suchen kann ...

                          Kommentar


                          • #14
                            Zitat von dos1973 Beitrag anzeigen
                            Hi, danke für deine Antwort...
                            das sind jetzt 2 sehr große Begriffe

                            kannst du das vielleicht noch etwas einschränken, damit ich via Tante google erwas gezielter suchen kann ...
                            Es gibt zwei Möglichkeiten:

                            1. Push: Du sendest Statusänderungen immer in Echtzeit an den Client, damit er es sofort darstellen kann.
                            2. Pull: Der Client holt in einem bestimmten Zeitintervall den aktuellen Status und stellt in dar.

                            Wobei 1. natürlich die sinnvollere Variante wäre, allerdings auch die technisch aufwändigere. Hierfür würde sich Websocket anbieten. Mit AJAX lässt sich sowas ähnliches zusammenschustern (Long Polling), aber dann braucht es wesentlich mehr Ressourcen und ist anfälliger.

                            2. lässt sich mit beiden realisieren, wobei AJAX die einfachere Variante wäre.

                            Kommentar


                            • #15
                              Zitat von hellbringer Beitrag anzeigen

                              Es gibt zwei Möglichkeiten:

                              1. Push: Du sendest Statusänderungen immer in Echtzeit an den Client, damit er es sofort darstellen kann.
                              2. Pull: Der Client holt in einem bestimmten Zeitintervall den aktuellen Status und stellt in dar.
                              meinst Du Poll oder ist mir mit Pull was entgangen?

                              Kommentar

                              Lädt...
                              X