ich würde gerne die Daten meiner beiden Mastervolt Soladin 1000 PV Wandler in IPS bekommen.
Den dazugehörigen API Schlüssel habe ich generiert. (gilt wohl für beide Wandler)
Nur habe ich soetwas in IPS leider noch nie gemacht.
Wie fange ich denn hier an ?
Was mache ich mit dem API Schlüssel ?
Was muß alles angelegt werden ?
Wie sieht so ein Script vom Aufbau her aus ?
muss natürlich auf dein Gerät geändert und abgestimmt werden.
wenn der string stimmt, bekommst du ein XML als Rückgabe, das du parsen kannst.
schau dir mal das Beispiel an.
Na super…hier auch schon die ausführliche Antwort :
Sagt das jemanden von euch etwas ? Mir leider nicht
Sehr geehrter Herr H…,
wir koennen Ihnen leider keine Programmierhinweise geben, eventuell koennen Sie mit Hilfe von Google oder der unten aufgefuehrten Links antworten finden.
Haben Sie bzgl. dieser Fall noch Fragen oder Anmerkungen, stehen wir Ihnen selbstverständlich gern zur Verfügung. Sie können auf diese E-Mail reagieren oder uns unter folgender Telefonnummer anrufen +49 (0)699 5307 186. Sie erreichen uns Montags bis Freitags von 09:00 bis 18:00 Uhr. Bitte halten Sie die Referenznummer 00030570 griffbereit.
uff…jetzt kommt langsam die stelle, wo ich mich als mittelmäßiger Anfänger (kein greenhorn, aber dennoch Anfänger) outen muß
Die datei ist glaube ich für einen mac…hab hier nur PC am Start.
Meine Wandler sind auf jeden fall 2 „Mastervolt Soladin 1000“, falls das weiterhilft…
Und Mastervolt hat eine webseite (intelliweb) auf die dann quasi zugegriffen wird (denke ich).
Auf der Webseite sehe ich alle Daten meiner Wandler in Echtzeit.
Nur wollte ich das eben in meinem webfrontdesign integrieren und nicht eine externe Seite verlinken…
habe auch einen Mastervolt Soladin 1000 und würde den auch gerne einbinden. Gibts denn schon irgendwelche Neuigkeiten. Aus den Links hier werde ich nicht so richtig schlau. Eventuell kann man sich ja zusammentun -> 2 mal gefährliches Halbwissen = 1x Experte :rolleyes:
Gibt es zu diesem Thema schon etwa neues?
Ich würde gerne die Aktuelle leistung von meiner soladin 1500 in die Homamtic in Highcharts darstellen.
Hat schon jeman den Link herrausgefunden über den man mittels API zu den daten kommt?
Hallo,
hier eine quick and dirty Lösung in Java mit Eclipse Paho.
Nur noch intelliWebApiKey und intelliWebUser ändern und es sollte funktionieren.
Könnte man drauf aufbauen und die Daten weiterverarbeiten.
Gruß
import java.io.IOException;
import java.sql.Timestamp;
import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MqttDefaultFilePersistence;
public class intelliWebSubscribeSimple implements MqttCallback {
public static String intelliWebApiKey = ""; //ausfüllen
public static String intelliWebUser = "demo"; //ausfüllen
public static void main(String[] args) {
// Default settings:
boolean quietMode = false;
String topicSuffix = "/IntelliWeb/v1/account/";
int qos = 2;
String broker = "intelliweb.mastervolt.com";
int port = 8883;
String clientId = intelliWebApiKey;
boolean cleanSession = true;
String password = intelliWebApiKey;
String userName = intelliWebUser ;
String protocol = "ssl://";
String url = protocol + broker + ":" + port;
String allTopics = topicSuffix + userName + "/#";
try {
intelliWebSubscribeSimple intelliWebClient = new intelliWebSubscribeSimple(url, clientId, cleanSession, quietMode,userName,password);
intelliWebClient.subscribe(allTopics,qos);
} catch(MqttException me) {
me.printStackTrace();
}
}
private MqttClient client;
private String brokerUrl;
private boolean quietMode;
private MqttConnectOptions conOpt;
private boolean clean;
private String password;
private String userName;
public intelliWebSubscribeSimple(String brokerUrl, String clientId, boolean cleanSession, boolean quietMode, String userName, String password) throws MqttException {
this.brokerUrl = brokerUrl;
this.quietMode = quietMode;
this.clean = cleanSession;
this.password = password;
this.userName = userName;
String tmpDir = System.getProperty("java.io.tmpdir");
MqttDefaultFilePersistence dataStore = new MqttDefaultFilePersistence(tmpDir);
try {
conOpt = new MqttConnectOptions();
conOpt.setCleanSession(clean);
if(password != null ) {
conOpt.setPassword(this.password.toCharArray());
}
if(userName != null) {
conOpt.setUserName(this.userName);
}
// Construct an MQTT blocking mode client
client = new MqttClient(this.brokerUrl,clientId, dataStore);
// Set this wrapper as the callback handler
client.setCallback(this);
} catch (MqttException e) {
e.printStackTrace();
log("Unable to set up client: "+e.toString());
System.exit(1);
}
}
public void subscribe(String topicName, int qos) throws MqttException {
client.connect(conOpt);
log("Connected to "+brokerUrl+" with client ID "+client.getClientId());
log("Subscribing to topic \""+topicName+"\" qos "+qos);
client.subscribe(topicName, qos);
log("Press <Enter> to exit");
try {
System.in.read();
} catch (IOException e) {
}
client.disconnect();
log("Disconnected");
}
private void log(String message) {
if (!quietMode) {
System.out.println(message);
}
}
public void connectionLost(Throwable cause) {
log("Connection to " + brokerUrl + " lost!" + cause);
System.exit(1);
}
public void messageArrived(String topic, MqttMessage message) throws MqttException {
String time = new Timestamp(System.currentTimeMillis()).toString();
System.out.println("Time: " +time +
" Topic: " + topic +
" Message: " + new String(message.getPayload()) +
" QoS: " + message.getQos());
}
@Override
public void deliveryComplete(IMqttDeliveryToken arg0) {
// TODO Auto-generated method stub
}
}