HTTP gzip payload supported
diff --git a/services/org.eclipse.sensinact.studio.http.messages/src/org/eclipse/sensinact/studio/http/messages/snamessage/ValueType.java b/services/org.eclipse.sensinact.studio.http.messages/src/org/eclipse/sensinact/studio/http/messages/snamessage/ValueType.java
index e6d6248..7094b7c 100644
--- a/services/org.eclipse.sensinact.studio.http.messages/src/org/eclipse/sensinact/studio/http/messages/snamessage/ValueType.java
+++ b/services/org.eclipse.sensinact.studio.http.messages/src/org/eclipse/sensinact/studio/http/messages/snamessage/ValueType.java
@@ -29,6 +29,7 @@
 	TMP_MODIFIABLE("org.eclipse.sensinact.gateway.common.primitive.Modifiable", n -> n.asText()), 
 	TMP_CONSTRAINT("Array of org.eclipse.sensinact.gateway.common.constraint.Constraint", n -> n.asText()),
 	
+	OBJECT("object", n -> n.toString()), /* do NOT use asText with 'object' */
 	STRING("string", n -> n.asText()),
 	LONG("long", n -> n.asLong()),
 	DOUBLE("double", n -> n.asDouble()),
diff --git a/services/org.eclipse.sensinact.studio.http.services/src/org/eclipse/sensinact/studio/http/services/client/GatewayHttpClient.java b/services/org.eclipse.sensinact.studio.http.services/src/org/eclipse/sensinact/studio/http/services/client/GatewayHttpClient.java
index 8fda25d..efa95b5 100644
--- a/services/org.eclipse.sensinact.studio.http.services/src/org/eclipse/sensinact/studio/http/services/client/GatewayHttpClient.java
+++ b/services/org.eclipse.sensinact.studio.http.services/src/org/eclipse/sensinact/studio/http/services/client/GatewayHttpClient.java
@@ -10,10 +10,15 @@
  */
 package org.eclipse.sensinact.studio.http.services.client;
 
+import java.io.BufferedReader;
 import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
 import java.io.StringWriter;
 import java.util.Collection;
+import java.util.List;
 import java.util.Map;
+import java.util.zip.GZIPInputStream;
 
 import org.apache.log4j.Logger;
 import org.eclipse.sensinact.studio.http.messages.snamessage.MsgFactory;
@@ -28,13 +33,19 @@
 import org.json.JSONObject;
 import org.restlet.Context;
 import org.restlet.Response;
+import org.restlet.data.ClientInfo;
+import org.restlet.data.Encoding;
 import org.restlet.data.MediaType;
 import org.restlet.data.Method;
 import org.restlet.data.Parameter;
+import org.restlet.data.Preference;
 import org.restlet.data.Status;
+import org.restlet.engine.application.DecodeRepresentation;
+import org.restlet.engine.header.Header;
 import org.restlet.representation.Representation;
 import org.restlet.representation.StringRepresentation;
 import org.restlet.resource.ClientResource;
+import org.restlet.util.Series;
 
 /**
  * Central point for SYNCHRONUS communication with the sensinact gateway.
@@ -141,13 +152,19 @@
 			}
 		}
 		
+		// Allow gzip encoding
+		clientResource.getClientInfo().getAcceptedEncodings().add(new Preference<Encoding>(Encoding.GZIP)); 
+				
 		String json = null;
 		MsgSensinact retval;
 		try {
-			Representation cmd = clientResource.get();
-			json = cmd.getText();
-			cmd.exhaust();
-			cmd.release();
+			Representation representation = clientResource.get();
+			if (representation.getEncodings().contains(Encoding.GZIP)) {
+				representation = new DecodeRepresentation(representation);
+			}
+			json = representation.getText();
+			representation.exhaust();
+			representation.release();
 			retval = MsgFactory.build(new JSONObject(json));
 		} catch (Exception e) {
 			retval = MsgFactory.build(json, e, segments);
diff --git a/ui/org.eclipse.sensinact.studio.view.visualizer/src/org/eclipse/sensinact/studio/view/visualizer/VisualizerView.java b/ui/org.eclipse.sensinact.studio.view.visualizer/src/org/eclipse/sensinact/studio/view/visualizer/VisualizerView.java
index 0d5166b..fa002cf 100644
--- a/ui/org.eclipse.sensinact.studio.view.visualizer/src/org/eclipse/sensinact/studio/view/visualizer/VisualizerView.java
+++ b/ui/org.eclipse.sensinact.studio.view.visualizer/src/org/eclipse/sensinact/studio/view/visualizer/VisualizerView.java
@@ -201,6 +201,9 @@
 				} else if (type == ValueType.LONG) {
 					float value = Long.parseLong(valAsStr);
 					updateGraph(resource, value);
+				} else if (type == ValueType.DOUBLE) {
+					double value = Double.parseDouble(valAsStr);
+					updateGraph(resource, value);
 				} else {
 					logger.info(this.getClass().getCanonicalName() + ": Type " + type + " cannot produce chart");
 				}