+ Antworten
Seite 1 von 5 1 2 3 ... LetzteLetzte
Ergebnis 1 bis 10 von 45
  1. #1
    Registriert seit
    Nov 2011
    Ort
    Berlin
    Beiträge
    88

    Standard Max Cube Rest Webservice

    Hallo Zusammen,

    ich habe hier auf der Basis von MaxBuddy und der eQ-3 Standardklassen einen kleinen Java Rest (JSON) Webservice gebaut.

    Folgende Funktionen werden aktuell unterstützt:

    1. Alle Räume mit allen Devices werden zurückgeliefert (Settings, Temperaturen, Ventilstellung, ...)
    http://{host}:{port}/max-ws/rest/rooms
    2. Ein einzelner Raum mit allen Devices werden zurückgeliefert
    http://{host}:{port}/max-ws/rest/rooms/{roomId}
    3. Auto Mode setzen (mit roomId = 0 werden alle Räume angesprochen :-)
    http://{host}:{port}/max-ws/rest/rooms/{roomId}/mode/AUTO
    4. Manueller Mode setzen mit Temperatur
    http://{host}:{port}/max-ws/rest/rooms/{roomId}/mode/MANUAL?temp={temp}
    5. Auto Mode mit Temperatur setzen
    http://{host}:{port}/max-ws/rest/rooms/{roomId}/mode/AUTO_TEMPERATURE?temp={temp}
    6. Temporärer Modus mit Temperatur und Dauer (Party Modus)
    http://{host}:{port}/max-ws/rest/rooms/{roomId}/mode/TEMPORARY?temp={temp}&hours={hours}

    Installation:

    1. Download aller benötiger Dateien:

    https://dl.dropbox.com/u/179978/max.zip

    2. JDK 1.7 installieren

    3. Tomcat7 als Windows Service (oder unter Linux) installieren

    4. Den Tomcat 7 Windows Service mit einen User Account starten (kein Systemaccount)

    5. In die max.properties die eigene Cube IP und Port eintragen und in das Homeverzeichnis des Tomcat Benutzers kopieren.

    6. max-ws.zip in das Tomcat webapp Verzeichnis entpackagen. (C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\max-ws)

    7. Da ich nicht die eQ-3 und die maxBuddy Klassen hier hochladen wollte, müssen die noch nachträglich in das WAR File kopiert werden. Wenn man maxBuddy installiert hat findet man die 4 Jar Dateien hier:

    1. C:\Program Files (x86)\MAX!Buddy\app\buddy.jar
    2. C:\Program Files (x86)\MAX!Buddy\launcher.jar
    3. C:\Users\$HOME\AppData\Roaming\MAXBuddy\ext-libs\maxupdate\lib\MaxEssentialsBackend-1.3.6.jar
    4. C:\Users\$HOME\AppData\Roaming\MAXBuddy\ext-libs\maxupdate\lib\MaxLocalBackend-1.3.6.jar

    Alle Jars müssen nach

    C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\max-ws\WEB-INF\lib

    kopiert werden.

    8. Tomcat starten und Logfile auf Fehler überprüfen: C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\tomcat7-stdout.*.log

    9. Wenn alles geklappt hat kann man im Browser zum testen die Räume ausgeben lassen:
    http://localhost:8080/max-ws/rest/rooms

    Wie es aussehen sollte hab ich im Anhang in der JSON Beispieldatei (rooms-json.txt) hinterlegt.

    Für IPS habe ich einen kleinen PHP Webservice Client (MaxWsClient.php) geschrieben, der die oben genannten Funktionen implementiert:

    Mit

    PHP-Code:
    $max = new MaxWsClient('192.168.0.61''8080');
    $max->install(); 
    werden alle Räume und Devices (aktuell nur die Thermostaten) in IPS angelegt.

    Mit dem Client kann man dann auch sehr einfach die Werte periodisch aktualisieren und Temperaturen oder den ControlMode setzen.

    Bisher funktioniert das ganze bei mir äußerst zuverlässig und viel besser als die Lösung direkt über den Socket.
    Geändert von nixda (31.12.12 um 14:38 Uhr)
    IPS | 1-Wire | IP-Symcon FS 868 | Z-Wave | Enocean | EM24-DIN | Homematic |

  2. #2
    Registriert seit
    Jan 2011
    Beiträge
    13

    Hi Nixda,

    danke für Deine Erläuterungen, als Newbie habe ich es bis zu Punkt 9 Deiner Installationsanleitung geschafft, allerdings scheitere ich an der IPS Implementierung, sprich mit Deinen Skript für den Webservice Client. Kannst Du mir hierzu ähnlich wie im ersten Teils mit einer Schritt für Schritt Anleitung weiterhelfen.

    Vielen Dank
    Spechtl

  3. #3
    Registriert seit
    Nov 2011
    Ort
    Berlin
    Beiträge
    88

    Hallo Spechtl,

    Du musst zuerst die Klasse MaxWsClient.php in IPS importieren. Dann kannst Du mit einem Skript folgendes aufrufen:

    PHP-Code:
    include_once('MaxWsClient.php');

    $maxClient = new MaxWsClient('192.168.0.61''8080'); // eigene ip und port deines Tomcats
    $maxClient->install(); 
    Danach hast Du alle Max Komponenten in IPS. Das updaten der einzelnen Werte musst Du selber scripten, z.B. so

    PHP-Code:
    include_once('MaxWsClient.php');

    $maxClient= new MaxWsClient('192.168.0.61''8080'); // eigene ip und port deines Tomcats
    $room $maxClient->getRoom(1);

    SetValue(12345$room->setPointTemperature);
    SetValue(12346$room->temperatureMode);
    SetValue(12347$room->devices[0]->state->valvePosition); 
    Viele Grüße
    IPS | 1-Wire | IP-Symcon FS 868 | Z-Wave | Enocean | EM24-DIN | Homematic |

  4. #4
    Registriert seit
    Jan 2011
    Beiträge
    13

    Danke nixda,

    es hilft wenn man die Klasse inkludiert und anstatt die Cube IP die des Tomcats verwendet :-)

    Anyhow das install gibt mir ein paar Fehler zurück, wenngleich auch alle Variablen angelegt werden,

    HTML-Code:
    Warning: Ident darf nur aus Buchstaben und Zahlen bestehen in C:\IP-Symcon\scripts\MaxWsClient.php on line 90
    
    Notice: Undefined property: stdClass::$lastMeasurementUpdate in C:\IP-Symcon\scripts\MaxWsClient.php on line 76
    
    Warning: Ident darf nur aus Buchstaben und Zahlen bestehen in C:\IP-Symcon\scripts\MaxWsClient.php on line 90
    
    Notice: Undefined property: stdClass::$measuredTemperature in C:\IP-Symcon\scripts\MaxWsClient.php on line 75
    
    Warning: Cannot auto-convert to Float from Variant. Error: Could not convert variant of type (Null) into type (Double) in C:\IP-Symcon\scripts\MaxWsClient.php on line 107
    
    Notice: Undefined property: stdClass::$lastMeasurementUpdate in C:\IP-Symcon\scripts\MaxWsClient.php on line 76
    
    Notice: Undefined property: stdClass::$valvePosition in C:\IP-Symcon\scripts\MaxWsClient.php on line 78
    
    Warning: Cannot auto-convert to Integer from Variant. Error: Could not convert variant of type (Null) into type (Integer) in C:\IP-Symcon\scripts\MaxWsClient.php on line 107
    
    Warning: Ident darf nur aus Buchstaben und Zahlen bestehen in C:\IP-Symcon\scripts\MaxWsClient.php on line 90
    
    Notice: Undefined property: stdClass::$lastMeasurementUpdate in C:\IP-Symcon\scripts\MaxWsClient.php on line 76
    Abort Processing during exceed of maximal ErrorCount: Ident darf nur aus Buchstaben und Zahlen bestehen Error in Script C:\IP-Symcon\scripts\MaxWsClient.php on Line 90
    Name:  max_screen.jpg
Hits: 4493
Größe:  92.9 KB

    Und selbst mit Deinen klaren Anweisungen habe ich ein Problem zu verstehen wie ich z.B. die Temperatur abfragen kann, sorry mit all meinen Newbie Fragen, aber so wie es mir scheint verstehe ich nicht wie Du mit Deinen Ansatz vorgehst. Danke für Deine weitere Unterstützung.

    PHP-Code:
     include_once('MaxWsClient.php');

    $maxClient= new MaxWsClient('192.168.123.30''8080'); // eigene ip und port deines Tomcats
    $room $maxClient->getRoom(1);

    SetValue(52461  /*[Hardware\Max\Haus\Wohnzimmer\Thermostat 1 links\MeasuredTemperature]*/$room->devices[0]->state->measuredTemperature);
    SetValue(14392  /*[Hardware\Max\Haus\Wohnzimmer\Wandthermostat 1\MeasuredTemperature]*/$room->devices[2]->state->measuredTemperature); 
    Grüße
    Spechtl

  5. #5
    Registriert seit
    Jan 2010
    Ort
    Rheinland Pfalz
    Beiträge
    1,767

    Hallo nixda,

    kannste mal ein Screenshot von der Webseite hier reinstellen?
    Danke
    Gruß WiBo

    "Eventuelle Rechtschreib- und Tippfehler jeglicher Art sind nur ein Zeichen meiner Geschwindigkeit Ich bitte euch, gelassen darüber hinweg zu lesen."

  6. #6
    Registriert seit
    Jan 2011
    Beiträge
    13

    Talking Danke funzt nun

    Hi Nixda,

    kurzes Update, läuft nun alles, hatte in wenig Probleme mich in Deine Arbeit rein zu denken, und nicht das ich jetzt alles verstanden hätte was Du da gezaubert hast... aber es funzt

    Nochmals Danke, jetzt muss sich das System beweisen und dann wird erweitert.

    Viele Grüße
    Spechtl

  7. #7
    Registriert seit
    Jan 2012
    Ort
    Braunschweig / Peine
    Beiträge
    26

    Wenn man bei MaxBudyy auf Beta klickt in den Einstellungen, dann zieht die Software auch die IST-Temperatur aus den Thermostaten. Kannst du deine Scripte um diese Funktion erweitern?

    Nach deinen Screenshots sieht es nämlich nicht danach aus als würden diese Daten abgefragt werden können. Zum testen der Scripte bin ich allerdings noch nicht gekommen.

    Ansonsten schonmal Respekt und vielen Dank für diese Arbeit. :-)
    IP-Symcon: 3.0 pro, Homematic CCU2,
    Homeserver: Nettop JOY-IT/FOXCONN nT-I1200, 4 GB, 60 GB SSD, HDMI, WLAN, Win7,
    Homematic-Funk, Homematic-Wired, Max!, 1-Wire, Enecsys PV-Gateway und eine kleine 480wp PV Anlage, Gartenbewässerung mit HM und Gardena

  8. #8
    Registriert seit
    Jan 2011
    Beiträge
    13

    die Temperaturen von den einzelnen Thermostaten werden ebenfalls abgefragt, allerdings übermitteln sie im Gegensatz zum Wandthermostat nicht ständig, sondern nur wenn der Stellantrieb aktiviert wurde, danach ist wieder Ruhe, daher auch die wertvolle Abfrage wann das letzte Mal die Daten übermittelt wurden. IMHO keine Einschränkung der IPS Integration, sondern vielmehr des Produkts, das bereits über die Max Buddy SW um diese Info erweitert wurde.

    Wie gesagt absoluter Newbie und vielleicht kann Nixda mehr dazu sagen.

    Grüße
    Spechtl

  9. #9
    Registriert seit
    Nov 2011
    Ort
    Berlin
    Beiträge
    88

    Zitat Zitat von wibo050447 Beitrag anzeigen
    Hallo nixda,

    kannste mal ein Screenshot von der Webseite hier reinstellen?
    Danke
    Welche Webseite meinst Du? Das IPS Webfront?
    IPS | 1-Wire | IP-Symcon FS 868 | Z-Wave | Enocean | EM24-DIN | Homematic |

  10. #10
    Registriert seit
    Jan 2010
    Ort
    Rheinland Pfalz
    Beiträge
    1,767

    Ja so wie die Oberfläche dann aussieht
    Gruß WiBo

    "Eventuelle Rechtschreib- und Tippfehler jeglicher Art sind nur ein Zeichen meiner Geschwindigkeit Ich bitte euch, gelassen darüber hinweg zu lesen."

Ähnliche Themen

  1. soap zum webservice
    Von bram im Forum Skripte, PHP, SQL
    Antworten: 3
    Letzter Beitrag: 15.11.11, 19:32
  2. E*V Max! Cube
    Von cat im Forum Sonstige Funkkomponenten / Wetterstationen
    Antworten: 0
    Letzter Beitrag: 11.04.11, 08:17
  3. LED Cube, das wär doch mal was
    Von bbernhard im Forum Off Topic
    Antworten: 25
    Letzter Beitrag: 29.12.10, 16:55
  4. SOAP UI Tool und IPS Webservice
    Von Joerg im Forum Entwicklung mit PHP-SDK/Delphi-SDK
    Antworten: 6
    Letzter Beitrag: 31.03.10, 15:57
  5. Antworten: 2
    Letzter Beitrag: 24.03.08, 14:08