Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP Script für 1-Wire

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

    #31
    Na ja, ich wüsste gar nicht wo ich anfangen muss - Null Ahnung von PHP ...
    Und all die Anleitungen zum LBS sagen mir nichts da ich die Grundlagen nicht verstehe ...
    Usw.
    Danke und LG, Dariusz
    GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

    Kommentar


      #32
      Ich habe auch NULL Ahnung von PHP, arbeite aber trotzdem am zweiten LBS.
      >>Smelly One<<
      >> BURLI <<
      Grüße Armin

      Kommentar


        #33
        PHP ist relativ leicht zu erlernen, zumindest die Grundlagen. Ein gutes Buch kann Wunder bewirken Und dank Google und php.net kann man fix mal irgendwas nachschlagen. Zu meiner "Lernzeit" ging das noch nicht - da musste man physisch in den Buchladen/Bibliothek
        EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

        Kommentar


          #34
          Welches Anfängerbuch kannst du empfehlen ?
          Danke !
          Danke und LG, Dariusz
          GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

          Kommentar


            #35
            Wenn nichts empfangen wird dann wird -99.99 angezeigt, wenn die Verbindung nicht funktioniert wird es als Fehlermeldung angezeigt (dank gaert) so habe ich die Fehler gesucht. Ich habe mal set_time_limit(3); eingebaut, hoffe an der richtigen Stelle. Siehe Beitrag #26

            Kommentar


              #36
              Passt, sonst läuft das EXEC 30s was nicht nötig ist.
              >>Smelly One<<
              >> BURLI <<
              Grüße Armin

              Kommentar


                #37
                So ein "hartes" Timelimit würde ich prinzipiell nicht empfehlen, da das Script (wenn überhaupt!) unkontrolliert beendet wird. Eleganter ist es selbst für die entsprechenden Timeouts zu sorgen. get_file_contents() kann durchaus mit einem Timeout versehen werden - dann "weiß" das Script auch, wo das Problem liegt und kann entsprechend reagieren.
                EDOMI - Intelligente Steuerung und Visualisierung KNX-basierter Elektro-Installationen (http://www.edomi.de)

                Kommentar


                  #38
                  Danke.
                  Da hast Du Recht, ich bin von Modbus TCP ausgegangen. Dort wird nach dem Lesen die Verbindung automatisch beendet, deswegen.
                  Dann könnte man es doch so machen:
                  $arContext[‘http’][‘timeout’] = 3;
                  $context = stream_context_create($arContext);
                  $Ausgabe = file_get_contents("$url", "r",$context);



                  >>Smelly One<<
                  >> BURLI <<
                  Grüße Armin

                  Kommentar


                    #39
                    PHP-Code:
                     $ctx stream_context_create(array('http'=>array( 'timeout' => 5,  //5 Seconds     ) ));
                     
                    $Eingabe file_get_contents('xxxxxxxxxxxxxxxxxxxxxxx'false$ctx); 
                    Meinst du so etwas? Das könnte ich ja noch einbauen.

                    Kommentar


                      #40
                      Das hat sich jetzt überschnitten.

                      Kommentar


                        #41
                        $arContext[‘http’][‘timeout’] = 3; ist das Arrayelement.

                        $Ausgabe = file_get_contents("$url", "r",$context); müsste so funktionieren.


                        Edit: OK
                        >>Smelly One<<
                        >> BURLI <<
                        Grüße Armin

                        Kommentar


                          #42
                          evtl. ein bisschen OT, aber hartmut wie soll ich mir deine 1-Wire "Installation" auf dem RasPi vorstellen. Möchte ein paar TempSensoren (als nettes AddOn) in 1-Wire ausführen. Läuft auf diesem eine art 1-Wire Programm?
                          Viele Grüße, Vitali

                          Kommentar


                            #43
                            Schau mal da, http://www.fischer-net.de/hausautomation/haustechnik/1-wire/40-1-wire-software-unter-linux-teil-2.html
                            Wenn die Leitungslänge gering ist dann kann das direkt auf dem Rasperry Pi laufen. Ich habe ein Interface (weil lange Leitungen) mit USB
                            (Suche "mal 1-wire usb buskoppler") an den Raspberry angeschlossen. Der owserver kann direkt auf dem Raspberry installiert werden und muss dann dort auch compiliert werden. Das ist schon etwas Arbeit aber es gibt im Internet viel Info. Wasserdichte Sensoren DS18B20 mit 1m Kabel gibt es direkt aus China für ca. 1,70€ inclusive Versand.
                            Zuletzt geändert von hartmut; 27.01.2016, 22:25.

                            Kommentar


                              #44
                              Habe mal

                              PHP-Code:
                              $ctx=stream_context_create(array('http'=> array('timeout' => 3)));
                              $Ausgabe file_get_contents("$url""r",$ctx); 
                              eingebaut siehe #26

                              Kommentar


                                #45
                                hartmut Ich habe das Einlesen von iButtons in einer lokalen Kopie eingebaut.
                                Besonderheit bei diesen Sensoren ist ja, dass diese bei Abwesenheit verschwinden und damit auch die Webseite.
                                Also habe ich eine Abfrage auf den response code der Webseite genutzt und setze den Wert bei Anwesenheit auf 1 ansonsten auf 0.

                                Ich mag jetzt keinen neuen LBS hochladen, der zu 95% Deinem entspricht; eventuell kannst Du die Änderungen ja übernehmen?

                                Falls das noch jemand nutzen mag:
                                Der Oszillator triggert den LBS bei mir alle Sekunde an -> Anwesenheit möchte ich öfter auslesen als Temperaturen.

                                PHP-Code:
                                [...]
                                $ctx=stream_context_create(array('http'=> array('timeout' => 3)));
                                $headers get_headers($url);
                                $response_code substr($headers[0], 93);

                                if (
                                $response_code != 200)
                                {
                                    if (
                                $oneWireType == "iButton")
                                    {
                                        
                                $erg ;
                                    }
                                    else
                                    {
                                        
                                $erg = -99.99 ;
                                    }
                                }
                                else
                                {
                                    
                                $Ausgabe file_get_contents("$url""r",$ctx); 
                                    if (
                                $oneWireType == "iButton")
                                    {
                                        
                                $erg ;
                                    }
                                    else
                                    {
                                        
                                $s $oneWireType "</B></TD><TD>" ;
                                        
                                $pos1 strpos($Ausgabe,$s);
                                        
                                $pos2 strpos($Ausgabe,"</TD>",$pos1);
                                        
                                $data substr($Ausgabe,($pos1+strlen($s)),$pos2-$pos1);
                                        
                                $erg = (float) $data ;
                                    }
                                }
                                [...] 

                                Kommentar

                                Lädt...
                                X