BIN-RPC Live Converter

Nutzung von XML RPC, Remote Script, JSON RPC, XMLAPI

Moderator: Co-Administratoren

leonsio
Beiträge: 1107
Registriert: 07.01.2012, 14:06
Danksagung erhalten: 6 Mal

Re: BIN-RPC Live Converter

Beitrag von leonsio » 09.02.2012, 09:12

In welchen Format brauchst du die Daten?
so ein kleiner Converter von XML-RPC auf irgendwas ist ja kein großer Akt ;)

Brenner
Beiträge: 596
Registriert: 08.08.2009, 10:29
Hat sich bedankt: 4 Mal
Danksagung erhalten: 1 Mal

Re: BIN-RPC Live Converter

Beitrag von Brenner » 09.02.2012, 09:24

So, habs doch per Fernzugang eben mal schnell zum laufen gebracht.
telnet meldet nun keine Fehler mehr, aber Historian zeigt das Cux Device noch immer nicht an.

In welchen Format brauchst du die Daten?
so ein kleiner Converter von XML-RPC auf irgendwas ist ja kein großer Akt
Wenn ich genau wüßte was du meinst würde ich dir gerne antworten :-(
Ich weiß nur das Cacti die Daten via "Scipt/Command" abruft mittels z.B. "echo CGET HEQ0030253:1 | nc localhost 6770 -q 1"
Man kann auch auf dem Linux mittel "telnet localhost 6770" und anschließenden "CGET HEQ0030253:1" Daten erzeugen. Die Ausgabe im telnet sieht dann z.B. so aus "HUMIDITY:76 TEMPERATURE:23"

Aber du meinst wohl sicher was anderes, oder?


Kein großer Akt ist gut, wenn man in der Materie steckt sicher nicht und um so dankbarer bin ich (und sicher auch viele andere) das ihr uns eben mal schnell helfen könnt und das auch macht. :D
Viele Grüße, Stefan!

leonsio
Beiträge: 1107
Registriert: 07.01.2012, 14:06
Danksagung erhalten: 6 Mal

Re: BIN-RPC Live Converter

Beitrag von leonsio » 09.02.2012, 09:30

Die CUxD Geräte werden nicht von allein erscheinen Hostorian kennt dieses Interface nicht, ggf. baut Matthias den irgendwann ein

aber zurück zu Cacti

hat das ding selbst eine Schnittstelle, wo man dem die Daten proaktiv einliefern kann?
Also quasi Daten an Cacti senden und nicht von Cacti abholen lassen

Falls ja, kann man mit sehr wenig Aufwand die Events von CUxD an Cacti weiterleiten

Brenner
Beiträge: 596
Registriert: 08.08.2009, 10:29
Hat sich bedankt: 4 Mal
Danksagung erhalten: 1 Mal

Re: BIN-RPC Live Converter

Beitrag von Brenner » 09.02.2012, 09:38

Ich glaube es gibt nur Collection Methoden.
Einmal "DataQueries" und einmal "Data Input Methods", siehe Bilder.
Dateianhänge
c1.JPG
c1.JPG (10.65 KiB) 3682 mal betrachtet
c2.JPG
c2.JPG (16.94 KiB) 3682 mal betrachtet
c3.JPG
Viele Grüße, Stefan!

Brenner
Beiträge: 596
Registriert: 08.08.2009, 10:29
Hat sich bedankt: 4 Mal
Danksagung erhalten: 1 Mal

Re: BIN-RPC Live Converter

Beitrag von Brenner » 09.02.2012, 09:40

Aso,

(vorsicht, blöde Annahme!) kann man z.B. die Werte des Stromzählers nicht aktiv in eine Textdatei die immer nur die letzten Werte enthält schreiben lassen und dann wiederum via Cacti im Minutentakt auslesen, oder irgendwie so?
Viele Grüße, Stefan!

leonsio
Beiträge: 1107
Registriert: 07.01.2012, 14:06
Danksagung erhalten: 6 Mal

Re: BIN-RPC Live Converter

Beitrag von leonsio » 09.02.2012, 10:32

du kannst auch minütlich bei cuxd nachfragen ;)
geht auch mit aktueller Version

http://homematic-forum.de/forum/viewtop ... =31&t=8070

Lade dir die Skripte runter, damit kannst du die CCU abfragen
per JSON kriegst du auch so alle Daten inkl. CUxD Geräte, allerdings dauert es länger und bei zu vielen Sessions wird Webinterface blockiert, also logout nicht vergessen

Wenn du per XML-RPC die Daten abfragen willst, brauchst du zuerst den Converter, dann kannst du mit XML_RPC Klasse auch CUxD abfragen

Gruß

Leo

impedance
Beiträge: 51
Registriert: 12.01.2011, 13:30
Danksagung erhalten: 1 Mal

Re: BIN-RPC Live Converter

Beitrag von impedance » 13.02.2012, 00:21

Hallo!

Ich versuche den Konverter gerade mit den neuesten CUxD- und historian-Versionen zum laufen zu bringen. Bis jetzt habe ich aber noch nix zum funktionieren gebracht...

Der Konverter ist auf dem gleichen Rechner wie der historian, ein Telnet auf localhost 8701 geht und verbindet sich mit dem converter.
Nur wenn ich den historian damit verbinden will, dann schmeisst der historian eine Fehlermeldung, weil er init nicht absetzen kann.

Ein tcpdump auf lo zeigt mir auch die Anfrage des historian, aber keine Antwort des konverters:

Code: Alles auswählen

POST / HTTP/1.1
Content-Length: 196
Content-Type: text/xml
Cache-Control: no-cache
Pragma: no-cache
User-Agent: Java/1.6.0_17
Host: 127.0.0.1:8701
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

<?xml version="1.0" encoding="ISO-8859-1"?>
<methodCall>
.<methodName>system.multicall</methodName>
.<params>
..<param><value><array><data></data></array></value></param>
.</params>
</methodCall>
wrong type
Auf der Netzwerkseite kommt aus dem Converter garnix raus, die ip der CCU ist aber im hmxmlbin eingetragen.

Die "richtige" Antwort wäre anscheinend (abgefangene Anfrage des historian direkt an die CCU):

Code: Alles auswählen

POST / HTTP/1.1
Content-Length: 196
Content-Type: text/xml
Cache-Control: no-cache
Pragma: no-cache
User-Agent: Java/1.6.0_17
Host: 192.168.2.8:2000
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive

<?xml version="1.0" encoding="ISO-8859-1"?>
<methodCall>
.<methodName>system.multicall</methodName>
.<params>
..<param><value><array><data></data></array></value></param>
.</params>
</methodCall>
HTTP/1.1 200 OK
Server: XMLRPC++ 0.7
Content-Type: text/xml
Content-length: 138

<?xml version="1.0"?>
<methodResponse><params><param>
.<value><array><data></data></array></value>
</param></params></methodResponse>
Was mir sonst noch passiert ist: Mein erster Fehler mit hmxmlbin war natürlich ein fehlendes xmlrpc im php, hier währe eine entsprechende Fehlermeldung des Scripts sehr praktisch.

Kann ich den Konverter mit anderen Programmen noch testen?
cu,
Michael

leonsio
Beiträge: 1107
Registriert: 07.01.2012, 14:06
Danksagung erhalten: 6 Mal

Re: BIN-RPC Live Converter

Beitrag von leonsio » 13.02.2012, 08:28

Hallo

um die Funktionsweise des Konverters zu testen musst du folgendes machen

lade folgendes Skript runter: http://homematic-forum.de/forum/viewtop ... =31&t=8070

Ersetze die Beispieldatei bzw. erstelle neue mit dem nachfolgenden Inhalt (Pfade und URL anpassen)

Damit kannst due die Funktionsweise des Konverters testen.

Außerdem ist es hilfreich die Debug Option von FALSE auf TRUE zu setzen und Syslog beobachten

Bezüglich der Abhängigkeiten lasse ich mir was einfallen

Code: Alles auswählen

<?php
#error_reporting(0);
include_once('HM_PHP_connect/lib/client.xmlrpc.php');
include_once('HM_PHP_connect/lib/client.http.php');

if(!function_exists('curl_init') || !function_exists('xmlrpc_encode_request'))
{
	die('modules curl and xml-rpc are required');
}

try
{

	# manually set host/port
	$api = new client_xmlrpc(array('url'=>'http://XXX.XXX.XXX.XXX:8701'));

	# Step 2 get device list
	// Call call any function by method_name(param1, param2, param3)
	#$devlist=$api->listDevices();
    $method = 'system.listMethods';
    print_r($api->$method());
        $devlist=$api->listDevices();
	print_r($devlist);


}
catch (Exception $e)
{
	print_r($e->getMessage());
}
?>


impedance
Beiträge: 51
Registriert: 12.01.2011, 13:30
Danksagung erhalten: 1 Mal

Re: BIN-RPC Live Converter

Beitrag von impedance » 13.02.2012, 10:48

Hallo!

Erstmal danke, dein Testscript funktioniert einwandfrei, es wird ein Devicelisting angezeigt und sehr viele Einträge im syslog angelegt.

Jetzt kommt wohl das Problem, dass der historian das ganze etwas anders formatiert, als erwartet. Ein bisschen hab ich das Gefühl, dass es hier an den Zeilenendzeichen liegt:

Aufruf mit den Original-Daten des historian:

Code: Alles auswählen

nc 127.0.0.1 8701 < historianfirstcall.txt
wrong type
Aufruf mit entfernten Zeilenrücklauf:

Code: Alles auswählen

nc 127.0.0.1 8701 < historianfirstcall2.txt
HTTP/1.1
200 OK
Server: HM_RPC_ROUTER 0.1
Content-length: 106
Content-type: text/xml

<?xml version="1.0" encoding="utf-8"?>
<params>
<param>
 <value>
  <string/>
 </value>
</param>
</params>
Dementsprechend dürfte es ja nur eine kleiner Fehler im Parsen der Daten sein.

cu,
Michael
Dateianhänge
historianfirstcall2.txt
Modifizierte Zeilenenden
(428 Bytes) 203-mal heruntergeladen
historianfirstcall.txt
Original Aufruf
(438 Bytes) 211-mal heruntergeladen

leonsio
Beiträge: 1107
Registriert: 07.01.2012, 14:06
Danksagung erhalten: 6 Mal

Re: BIN-RPC Live Converter

Beitrag von leonsio » 13.02.2012, 11:04

Danke

es kann in der Tat an "newline" Zeichen liegen, ich seh zu. dass ich da kurzfristig einen fix einbaue

Gruß

Leo

Antworten

Zurück zu „Softwareentwicklung von externen Applikationen“