Ankündigung

Einklappen
Keine Ankündigung bisher.

EDOMI - LBS - Diskussion

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

    Zitat von coliflower Beitrag anzeigen
    Könnte das funktionieren ?
    Wie gesagt: im LBS Teil definitiv nicht.

    Kommentar


      Ich hätte eine Frage zum LBS 19000040 - Wettervorhersage:

      Wie kann ich die Ausgabe des Bausteines um die Werte "function getWindSpeed()" und "function getWindBearing()" erweitern. So wie ich das verstanden habe, sind die in der forecast.io.php schon enthalten und werden dem z Folge abgefragt, aber für mehr fehlt mir aktuell leider noch das Verständnis bzgl. LBS. Kann mir da einer weiterhelfen?

      Danke Euch, Christoph

      Kommentar


        Zitat von MrMirror Beitrag anzeigen
        Ich hätte eine Frage zum LBS 19000040 - Wettervorhersage:

        Wie kann ich die Ausgabe des Bausteines um die Werte "function getWindSpeed()" und "function getWindBearing()" erweitern. So wie ich das verstanden habe, sind die in der forecast.io.php schon enthalten und werden dem z Folge abgefragt, aber für mehr fehlt mir aktuell leider noch das Verständnis bzgl. LBS. Kann mir da einer weiterhelfen?

        Danke Euch, Christoph
        Ich habe den Baustein mit folgenden Werten:

        [a#1 = Aktuelle_Temp ]
        [a#2 = Gefühlte_Temp ]
        [a#3 = Vorhersage_Text ]
        [a#4 = Vorhersage_Symbol ]
        [a#5 = Min_Temp ]
        [a#6 = Max_Temp ]
        [a#7 = Luftdruck ]
        [a#8 = Taupunkt ]
        [a#9 = Luftfeuchtigkeit ]
        [a#10 = Windgeschwindigkeit ]
        [a#11 = Windrichtung ]
        [a#12 = Niederschlagswahrscheinlichkeit ]
        [a#13 = Niederschlagstyp ]
        [a#14 = Bewölkungsgrad ]
        [a#15 = Sonnenaufgang ]
        [a#16 = Sonnenuntergang ]
        [a#17 = Stunde_Temp ]
        [a#18 = Mo_Vorhersage_Text ]
        [a#19 = Mo_Vorhersage_Symbol ]
        [a#20 = Mo_Min_Temp ]
        [a#21 = Mo_Max_Temp ]
        [a#22 = Mo_Luftdruck ]
        [a#23 = Mo_Taupunkt ]
        [a#24 = Mo_Luftfeuchtigkeit ]
        [a#25 = Mo_Windgeschwindigkeit ]
        [a#26 = Mo_Windrichtung ]
        [a#27 = Mo_Niederschlagswahrscheinlichkeit ]
        [a#28 = Mo_Niederschlagstyp ]
        [a#29 = Mo_Bewölkungsgrad ]
        [a#30 = Mo_Sonnenaufgang ]
        [a#31 = Mo_Sonnenuntergang ]
        [a#32 = Ue_Vorhersage_Text ]
        [a#33 = Ue_Vorhersage_Symbol ]
        [a#34 = Ue_Min_Temp ]
        [a#35 = Ue_Max_Temp ]
        [a#36 = Ue_Luftdruck ]
        [a#37 = Ue_Taupunkt ]
        [a#38 = Ue_Luftfeuchtigkeit ]
        [a#39 = Ue_Windgeschwindigkeit ]
        [a#40 = Ue_Windrichtung ]
        [a#41 = Ue_Niederschlagswahrscheinlichkeit ]
        [a#42 = Ue_Niederschlagstyp ]
        [a#43 = Ue_Bewölkungsgrad ]
        [a#44 = Ue_Sonnenaufgang ]
        [a#45 = Ue_Sonnenuntergang ]

        Mo_* steht für Morgen, UE_* steht für Übermorgen

        Jetzt muss mich nur noch jemand unter https://edomi.knx-user-forum.de/ freischalten, dann lade ich den LBS gerne hoch.

        Gruß,

        Christian

        Kommentar


          Das wäre auch ok ;-)

          Kommentar


            Zitat von ChristianHS Beitrag anzeigen
            Jetzt muss mich nur noch jemand unter https://Edomi.knx-user-forum.de/ freischalten, dann lade ich den LBS gerne hoch.
            Done!
            Mfg Micha
            Qualifizierte und richtige Antworten gibts nur von Leuten, die während des Neustarts des HS Zeit für einen Post haben!

            Kommentar


              Zitat von vento66 Beitrag anzeigen
              Done!
              Danke.

              Hab den LBS gerade hochgeladen. Viel Spaß damit.

              Kommentar


                Zitat von wintermute Beitrag anzeigen
                Meinst Du die Fehlermeldung im Error-Log?, Ja, haette ich... mein hostcheck LBS macht das zB.
                Allerdings musst Du Dich dann allein um das Loggen von Fehlern kuemmern - also von Meldungen die eigentlich ins Edomi-Errorlog gehoeren. Ich taete das in Deinem Fall eigentlich nicht empfehlen...

                gruesse :: Michael

                Hallo Michael,

                hättest du einen Tip für mich wie ich nach dem IF anstatt des EXIT das 404er Thema lösen kann (EXIT steht jetzt nur symbolisch da obwohl in real life Edomi kontinuierlich rebootet) ?
                Gibt es da eine Möglichkeit/Lösung wenn IF erfüllt wird, zurück zu springen bis IF nicht erfüllt is ?

                PHP-Code:
                            $url 'http://'.$E[3]['value'].'/%7E'.$E[5]['value'].'/';
                            
                            
                $urlplayer $url.$E[11]['value'].'.json';
                            
                $headers1 get_headers($urlplayer);
                            
                            if (
                $headers1[0] == 'HTTP/1.1 404 Not Found') {
                                EXIT;
                                
                writeToTraceLog(0,true,'404er is TRUE >> EXIT Player');
                            } else {
                                
                $player__ file_get_contents('http://'.$E[3]['value'].'/%7E'.$E[5]['value'].'/'.$E[11]['value'].'.json');
                                
                writeToTraceLog(0,true,'404er do not exists / Player '.$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
                  hättest du einen Tip für mich wie ich nach dem IF anstatt des EXIT das 404er Thema lösen kann (EXIT steht jetzt nur symbolisch da obwohl in real life Edomi kontinuierlich rebootet) ?
                  Gibt es da eine Möglichkeit/Lösung wenn IF erfüllt wird, zurück zu springen bis IF nicht erfüllt is ?
                  Alles in eine while-Schleife packen in der so oft versucht wird das File zu holen, bis $headers1[0] != 'HTTP/1.1 404 Not Found'
                  Achte drauf, am Ende der while-Schleife eine Pause (ruhig laenger, 5-10s etwa) zu verbasteln, sonst laeuft das schnell Amok.

                  HTH:: Michael

                  Kommentar


                    Zitat von wintermute Beitrag anzeigen
                    Alles in eine while-Schleife packen in der so oft versucht wird das File zu holen, bis $headers1[0] != 'HTTP/1.1 404 Not Found'
                    OK, werde ich versuchen ...
                    Bis jetzt habe ich es mit einem "DUMMY" gelöst ...

                    PHP-Code:
                    if ($headers1[0] == 'HTTP/1.1 404 Not Found') {
                        
                    $player__ '{"status":"","time":""}';
                        
                    writeToTraceLog(0,true,'404er is TRUE >> EXIT Player');
                    } else {
                        
                    $player__ file_get_contents('http://'.$E[3]['value'].'/%7E'.$E[5]['value'].'/'.$E[11]['value'].'.json');
                        
                    writeToTraceLog(0,true,'404er do not exists / Player '.$player__);


                    Zitat von wintermute Beitrag anzeigen
                    Achte drauf, am Ende der while-Schleife eine Pause (ruhig laenger, 5-10s etwa) zu verbasteln, sonst laeuft das schnell Amok.
                    Meinst du wirklich SEKUNDEN oder Milisekunden ?
                    Zuletzt geändert von coliflower; 15.04.2016, 10:47.
                    Danke und LG, Dariusz
                    GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                    Kommentar


                      Zitat von coliflower Beitrag anzeigen
                      Meinst du wirklich SEKUNDEN oder Milisekunden ?
                      Schon ersteres... wenn das File nicht da ist, deutet das doch auf irgendein Problem hin, oder? In dem Falle wuerde ich der Gegenstelle etwas Zeit einraeumen, das Problem zu loesen - wenn zB der betreffende Server nicht gestartet ist, dann kann das durchaus ein paar Sekunden dauern bis der laeuft.
                      Haengt aber natuerlich von Deinem konkreten Szenario ab...

                      Kommentar


                        Haengt aber natuerlich von Deinem konkreten Szenario ab...
                        Die JSON wird bei Zustandsänderung neu erzeugt - z.B. Play / Pause / Stop / Next / Previous / ...
                        D.h., die alte JSON wird gelöscht und die Neue erstellt - deshalb gibt es den 404er wenn sich die Abfrage (sekündlich) mit der neuen JSON überschneidet ...

                        Mit WHILE sollten 100 Milisekunden reichen um maximal 10x zu laufen ... Was meinst du ?
                        Danke und LG, Dariusz
                        GIRA | ENERTEX | MDT | MEANWELL | 24VDC LED | iBEMI | EDOMI | ETS5 | DS214+ | KNX/RS232-GW-ROTEL

                        Kommentar


                          Zitat von coliflower Beitrag anzeigen
                          Die JSON wird bei Zustandsänderung neu erzeugt - z.B. Play / Pause / Stop / Next / Previous / ...
                          Verstehe... dann ist eine hoehere Frequenz natuerlich sinnvoller. Oder ganz ausgefuchst: waehrend der Versuche messen wie lange man bereits versucht hat und dann dynamisch das Intervall vergroessern
                          Im Prinzip haengt das alles nur davon ab, wie sehr Du Edomi und dein iTunes stressen magst - mein Gedanke war: wenn da gar kein Server laeuft muss man auch nicht 10mal in der Sekunde nachgucken ob sich das geaendert hat...

                          Kommentar


                            Hallo zusammen,

                            ich bastel grad an einem LBS mit dem ich meinen BenQ Beamer steuern kann, dieser hängt über einen RS232-TCP Umsetzer direkt am Netzwerk (http://content.etilize.com/User-Manual/1011260948.pdf), da ich ja doch eher stümperhafter copy&paste "Programmierer" bin wolle ich fragen ob kurz jemand drüberschauen kann bevor ich das ganze in einen LBS packe.
                            In der Konsole funktionierts wunderbar, aber wie ich mich kenne gibts bestimmt einen (oder mehrere) Wege das ganze schöner/einfach usw. zu machen.

                            PHP-Code:
                            <?php
                            $commandstart 
                            ="\r*";
                            $commandend "#\r";
                            $command "ltim=?";
                            $writesock "{$commandstart}{$command}{$commandend}";
                            $sock fsockopen("10.0.150.82"23$errno$errstr30);
                            if (!
                            $sock) {
                                echo 
                            "$errstr ($errno)<br />\n";
                            } else {
                                
                            fwrite($sock$writesock);
                                while (!
                            feof($sock)) {
                                    
                            $beamer fgets($sock128);
                                    if (
                            strpos($beamer$command) == false) {
                                        
                            $beamer trim($beamer,"*\r\n?#");
                                        if (
                            $beamer == "Block item") {
                                            echo 
                            "Ausfuehrung nicht Moeglich, bitte versuchen Sie es spaeter.";
                                            break;
                                        }
                                        
                            $beamer explode("=",$beamer);
                                        
                            var_dump($beamer[1]);
                                        break;
                                    }
                                }
                                
                            fclose($sock);
                            }
                            ?>
                            gerne wüsste ich wie Ihr den Eingang gestalten würdet, entweder so lassen und am eingang muß immer der passende String $command anliegen = recht einfach
                            oder man baut einige IFs ein z.B 1= Beamer an, 0 = Beamer aus usw., oder gibts eine ganz andere Idee?

                            Ich würde 2 Bausteine erstellen, einen zum senden (Beamer an, usw) und einen zeiten zum Daten auslesen (Lampen Zeit usw.)

                            Christian

                            Kommentar


                              wintermute ich hätta da noch eine Fragen ...

                              Ich trau mich gar nicht zu fragen ...

                              Wenn das letzte elseif bevor try erfüllt wird, dann kommt der try/curl Abschnitt zu tragen ..
                              Wenn ich keine Verbundung zum WebServer habe, dann wird nach "catch" die Fehlermeldung ausgegeben und der Code wird weiter abgearbeitet ...
                              Muss / kann ich hier vor "try" das ganze mit zusätzlichem "if" abfangen (damit nach der JSON nicht gesucht wird wenn der WebServer nicht verfügbar ist) oder muss das aufgrund von "try" anders gelöst werden ?

                              Nochmals Sorry für die banale Frage

                              PHP-Code:
                              if ($E[10]['value'] == 'http' AND !isEmpty($E[5]['value']) == true) {
                                  if (
                              isEmpty($E[3]['value']) == true) {
                                  
                              LB_LBSID_TRACE($id,'iTunes | E03 | Modus HTTP is true, IP-Adress is empty : '.$E[3]['value'],3);
                                  } elseif (!
                              isEmpty($E[3]['value'] == true) AND (filter_var($E[3]['value'],FILTER_VALIDATE_IP,FILTER_FLAG_IPV4) != true)) {
                                    
                              LB_LBSID_TRACE($id,'iTunes | E03 | IP is not a valid IPv4-Address: '.$E[3]['value'],3);
                                  } elseif (!
                              isEmpty($E[3]['value'] == true) AND (filter_var($E[3]['value'],FILTER_VALIDATE_IP,FILTER_FLAG_IPV4) == true)) {
                                            
                                  try {
                                      
                              $ch curl_init($ipx);
                                      
                              curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
                                      
                              curl_setopt($ch,CURLOPT_TIMEOUT,1);
                                      
                              $re curl_exec($ch);
                                      if (!
                              $re) throw new Exception(curl_error($ch));
                                      
                              // curl_close($ch);
                                  
                              }
                                  catch (
                              Exception $e) {
                                  
                              LB_LBSID_TRACE($id,'Exception: '.$e->getMessage(),3);
                                  }
                                          
                                  if (!
                              isEmpty($E[11]['value'])) {
                                      
                              $urlplayer $url.$E[11]['value'].'.json';
                                      
                              $headers_1 get_headers($urlplayer);
                                          
                                      if (
                              $headers_1[0] == 'HTTP/1.1 404 Not Found' OR $headers_1[0] == 'HTTP/1.0 404 Not Found') {
                                          
                              $player__ '{"state":""}'// dummy
                                          
                              LB_LBSID_TRACE($id,'iTunes | E11 | 404-ERROR-Code -->> JSON-file on web-server not found',7);
                                      } else {
                                        
                              $player__ file_get_contents($urlplayer);
                                        
                              LB_LBSID_TRACE($id,'iTunes | E11 | 404-ERROR-Code does not exists / Player '.$player__,7);
                                      }
                                  }

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

                              Kommentar


                                Wieso nicht einfach in den
                                catch (Exception $e) {
                                Block ein exit(); reinschreiben?

                                Kommentar

                                Lädt...
                                X