IPSdroid v1 BETA im Android Market

Ich gerade eine neue Version von IPSdroid in den Google-Market geladen…

Die SOAP-Schnittstelle wird NICHT mehr unterstützt.

Aufgrund der im folgenden Thread angesprochenen Vorteile setze ich komplett auf JSON-RPC:

Feedback wie immer erwünscht.

Viele Grüße
Sascha

Auf jeden Fall schonmal schneller geworden :slight_smile:

Wenn Du im Start-Screen einmal „lang“ auf den Host klickst, kannst Du Layout Cache erstellen auswählen. Dann dauert es einmal etwas länger… Zukünftig muss er dann aber keine Objekte mehr über das Netz ziehen, sondern nutzt diese aus der Datenbank. Values werden dann separat betrachtet…

Am besten mal mit rumspielen… Ich fahre für MICH mit dem Layout-Cache eigentlich sehr gut… Falls Du Änderungen an den Objekten vorgenommen hast kannst Du den Cache auch einfach neu erstellen bzw. Löschen…

Sobald ich eine Versionierung vom IP-Symcon Server bekomme (Änderungen an den Objekten/Layout) könnte ich das automatisch erkennen und ein automatisches Cachen auslösen lassen.

Viele Grüße
Sascha

Hmhm, habe grad mal versucht den Cache neuzuladen. Da hängts bei „18% 3/17“

Passiert garnix mehr? Kam eine Meldung? Fehler? Je nach Anzahl der Objekte kann das auch ein wenig „sehr viel länger“ dauern…

Nutzt Du eine 3G Connection oder bist Du über WIFI dran?

Sorry, dauerte nur sehr lange! g

Hi,
gibst du mal ne Kurzanleitung, wie ich die Schnittstelle in IPS einbinde?

Gruß M.

Habt ihr einen Plan ob - das Prog auf den Android Tablets läuft?
Denn die meisten dieser Geräte haben keinen zugriff auf den Market.

Bietet ihr das Prog später mal so im Download an, das man ggf. testen kann obs auf dem Tablet auch läuft?!

gibst du mal ne Kurzanleitung, wie ich die Schnittstelle in IPS einbinde?

Den Source-Code kopieren und in der Datei jsonrpc.php im webfront Hauptverzeichnis einfügen. Die jsonrpc.php ist von außen dann unter: http(s)://<hostname>:<port>/jsonrpc.php erreichbar…

Habt ihr einen Plan ob - das Prog auf den Android Tablets läuft?

Das Programm „sollte“ auch auf Tablets laufen. Ich bin mir aber fast sicher, dass das Resizing der Icons dann nicht so doll aussieht. Aber das ist kein Problem. Ich kann im Nachgang dann irgendwann Icons mit größerem Scaling nachliefern. Oder wenn wir hier einen „Designer“ haben, kann der die auch anfertigen und ich integriere diese im Programm.

Denn die meisten dieser Geräte haben keinen zugriff auf den Market.

Das ist irgendwie doof, da der Market eigentlich die Hauptdistributions-Plattform dahingehend ist… Ob ich das so zum Downloade anbiete weiss ich noch nicht.

Viele Grüße
Sascha

Hallo,

mit meinem Nexus One (Android 2.2 FroYo) bekomme ich folgende Fehler beim Connect: SSL handshake failure: I/O error during system call, Broken pipe

Ist das vielleicht die Lösung: Custom SSL handling stopped working on Android 2.2 FroYo - Stack Overflow

Gruss, Michael

Hi,

ich habe mir die App natürlich heute gleich auf mein nagelneues Desire runtergeladen. Leider bekomme ich beim anmelden immer die Meldung
„A JSONObject text must begin with ‚{‘ at character 1 of <html><head>…“

Was mache ich falsch? :frowning:

Gruss
Coyote

Hast du das hier eingerichtet: http://www.ip-symcon.de/forum/f13/ip-symcon-json-rpc-schnittstelle-10537/

Es sieht nämlich danach aus das dein Server da etwas „falsches“ ausgibt.

Du machst eigentlich nichts falsch… Evtl. ist da noch ein Bug/Wurm drin.

Kannst Du kurz beschreiben, WANN genau die Meldung kommt und welche Vorgänge davor gelaufen sind?

Ich „schätze“, dass der Content einer Variablen das Problem ist… „<html></head>…“ deutet für mich auf einen String-Content hin. Ich muss nun herausfinden, an welcher Stelle sich der Prozess aufhängt.

Viele Grüße
Sascha

Ich habe dasselbe Problem. Allerdings bekomme ich auch eine Fehlermeldung, wenn ich die jsonrpc.php direkt im Browser aufrufe:

Fatal error: Call to undefined function json_decode() in C:\Programme\IP-Symcon2\webfront\jsonrpc.php on line 13

Aktuell habe ich noch IPS 2.1 drauf, ich gehe davon aus, dass ich eine zu alte PHP-Version habe. Leider ist vor ein paar Tagen meine IPS-Subscription abgelaufen und aktuell scheint der IPS-Shop nicht zu gehen, nur die Hardwareangebote sind sichtbar, bei Software und Bundles gelangt man direkt wieder auf die Shop-Startseite. Wollte ich mich heute mal drum kuemmern, bisher hatte ich keinen Grund zum Update, es lief alles wunderbar.

Scheint also kein Problem Deiner Software zu sein, sondern vom JSON RPC-Script.

Eben mal bei php.net nach json_decode gesucht, die Funktion gibt’s ab PHP 5.2.0, ich nutze die 5.1.6 - da haben wir schon die Loesung…

Wird bei Coyote dasselbe sein.

Füg mal das ganz unten mit ein:

if ( !function_exists('json_decode') ){
function json_decode($json)
{ 
    // Author: walidator.info 2009
    $comment = false;
    $out = '$x=';
   
    for ($i=0; $i<strlen($json); $i++)
    {
        if (!$comment)
        {
            if ($json[$i] == '{')        $out .= ' array(';
            else if ($json[$i] == '}')    $out .= ')';
            else if ($json[$i] == ':')    $out .= '=>';
            else                         $out .= $json[$i];           
        }
        else $out .= $json[$i];
        if ($json[$i] == '"')    $comment = !$comment;
    }
    eval($out . ';');
    return $x;
} 
} 

Wenn die Lösung von „sysrun“ jemand bestätigen kann, werde ich diese in das Schnittstellen PHP-Script aufnehmen.

Viele Grüße
Sascha

Naja, jetzt fehlt die json_encode…
Allerdings darf der Code nicht am Ende stehen, er muss vor dem Aufruf der Funktion stehen.

Habe eben rausgefunden, dass der IPS-Shop wohl nur mit IE funktioniert und nicht mit Firefox, also gleich mal das Abo verlaengern und heute abend installieren. Ist aber auch aergerlich, am 6.5. ist mein Abo abgelaufen und ich hab’s nicht gemerkt, weil ich ewig kein Update gezogen habe…

Dann fügste das auchnoch mit ein

if (!function_exists('json_encode'))
{
  function json_encode($a=false)
  {
    if (is_null($a)) return 'null';
    if ($a === false) return 'false';
    if ($a === true) return 'true';
    if (is_scalar($a))
    {
      if (is_float($a))
      {
        // Always use "." for floats.
        return floatval(str_replace(",", ".", strval($a)));
      }

      if (is_string($a))
      {
        static $jsonReplaces = array(array("\\", "/", "
", "	", "\r", "\b", "\f", '"'), array('\\\\', '\\/', '\
', '\	', '\\r', '\\b', '\\f', '\"'));
        return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"';
      }
      else
        return $a;
    }
    $isList = true;
    for ($i = 0, reset($a); $i < count($a); $i++, next($a))
    {
      if (key($a) !== $i)
      {
        $isList = false;
        break;
      }
    }
    $result = array();
    if ($isList)
    {
      foreach ($a as $v) $result[] = json_encode($v);
      return '[' . join(',', $result) . ']';
    }
    else
    {
      foreach ($a as $k => $v) $result[] = json_encode($k).':'.json_encode($v);
      return '{' . join(',', $result) . '}';
    }
  }
}

Dann kommt (beim Aufruf der jsonrpc.php im Browser) das:

"{\"jsonrpc\":\"2.0\",\"error\":{\"code\":\"-32700\",\"message\":\"Invalid request\",\"data\":\"Invalid header or postdata.\"},\"id\":\"Null\"}"

Lass mal, das Update ist schon bestellt. Eigentlich habe ich eh seit 3 Jahren das Abo, IPS ist es ja auch wert. Nur hab ich’s diesmal verpeilt.