schnellster Zugriff auf Aktoren/Sensoren

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

Moderator: Co-Administratoren

Benutzeravatar
powerup
Beiträge: 320
Registriert: 22.12.2011, 22:19

Re: schnellster Zugriff auf Aktoren/Sensoren

Beitrag von powerup » 31.01.2013, 15:43

Hallo,

ich hab es jetzt alles nochmal runtergeladen und nur die beiden IP-Adressen angepasst.

Im Browser hab ich http://127.0.0.1 aufgerufen und dann auf init geklickt, dann passiert nichts. Sollte irgendwas passieren ? Ich hab dann Aktoren an und aus gemacht aber keine Reaktion.

ayngush
Beiträge: 345
Registriert: 02.02.2012, 12:05
Danksagung erhalten: 7 Mal

Re: schnellster Zugriff auf Aktoren/Sensoren

Beitrag von ayngush » 31.01.2013, 16:53

Ja, da sollte schon was passieren :)
Da sollte so eine Ausgabe stattfinden:
Output.PNG
Kommt denn so ein grüner Statusbalken unten, der anzeigt, dass die Session erfolgreich initialisiert wurde?
Ist auf der Seite Javascript zugelassen?

Grüße

honk
Beiträge: 4
Registriert: 02.02.2013, 04:40

Re: schnellster Zugriff auf Aktoren/Sensoren

Beitrag von honk » 02.02.2013, 05:33

Hallo, ich habe so ein kleines programm in c geschrieben, daß direct auf diese XML-RPC schnittstellen (port 2000 bis 2002) zugreift und die Meldungen (events) die nach einem init von der CCU kommen in eine MYSQL Datenbank schreibt. Dabei speichert das Programm die events im Speicher und schreibt nur neue events, oder wenn sich die werte ändern, mit einem zeitstempel versehen in die Datenbank. Das Programm verwendet die xmlrpc-c library http://xmlrpc-c.sourceforge.net/ und die Standard MySQL C-API. Leider bin kein profi-c-Programmierer, und es ist nur für einen Linux Rechner programmiert. Vieleicht kann es ja jemand gebrauchen und sich einmal ansehen oder seinen Bedürfnissen anpassen. Mann müsste nur eine Datenbank in MySQL anlegen. Die Tabellen erstellt das Prog. selbst falls sie noch nicht existieren.
Dateianhänge
hmserver.tar.bz2
die sourcen
(16.02 KiB) 243-mal heruntergeladen

truderinger@gmx.de
Beiträge: 27
Registriert: 30.09.2013, 22:06
Hat sich bedankt: 2 Mal

Mit windows und DB-access (CCU3) daten in MySQL schreiben

Beitrag von truderinger@gmx.de » 04.05.2019, 10:22

Hallo zusammen,

ich habe die Vorgehensweise von "https://www.christian-luetgens.de/homem ... QL-Log.htm" übernommen. Mit einem Raspi hat dies wunderbar funktioniert. Voraussetzung ist natürlich das Installieren des "DB-access" addons. Da ich jedoch alle Daten von der CCU3 auf Langzeit abspeichere wollte ich das Ganze auf einem Win-Server2016 aufsetzen. Ich musste im Script folgendes abändern:

----ccu.sh für Raspi in Raspi MySQL---------

#!/bin/bash

# Parameter

credentials='--user=root --password=xxxxx --database=homematic --silent'
tablename=/opt/BroadLink/homematic

# Systemstatus abholen

wget -O $tablename -q "http://192.168.1.5/addons/db/table.cgi"
mysql $credentials --execute="LOAD DATA INFILE '"$tablename"' REPLACE INTO TABL$

if [ $? -ne 0 ] ; then
exit 1
fi

----ccu.sh vom Raspi starten und in win MySQL schreiben--------------------------
#!/bin/bash

# Parameter
credentials='-h192.168.1.150 --user=username --password=geheim --database=homematic --silent'
tablename=/opt/BroadLink/homematic
.......................
--------------------------

Als zweiten Schritt musste ich die Windows my.ini anpassen:

-----Auszug von win my.ini-------------------
# Set the SQL mode to strict
#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
sql-mode=""
--------------------------

So nun funktioniert das o.g. Script auch bei der Windos-MySQL-Datenbank vom Raspi aus. Es sollte jedoch alles auf den Win Server2016 laufen.

Also als ersten Schritt die "wget.exe" für Windows geholt, entpackt und in ein beliebiges Verzeichnis gelegt. Das Gleiche mit der "MySQL.exe" (mysqlsh.exe). Zur Vereinfachung habe ich noch die Ordner indem die o.g. Dateien liegen in die Umgebungsvariablen von Win eingetragen, da ansonsten die Pfade immer anzugeben wären und dies nicht der Übersichtlichkeit dient. Dies gilt auch für den Ordner indem die ganzen Scripte liegen und die state.cgi, sowie die homematic temporär abgelegt werden. Bitte noch für den automatischen Start in Windows im Autostart oder als Dienst einbinden.


-----------ccu.bat für windows mit 5 Min-Timer---------------------------
:restart
rem Datei holen und ablegen
C:\Users\Administrator
wget.exe --input-file=homematic "http://192.168.1.5/addons/db/table.cgi"
del homematic
rename table.cgi homematic
C:\mysql-shell\bin\mysql.exe --sql --host localhost --user=Administrator --password=0815Server --database=homematic --execute="LOAD DATA INFILE '"homematic"' REPLACE INTO TABLE systemstatus FIELDS TERMINATED BY '"\t"';"
rem löschen der letzten homatic-Datei und evtl. table.cgi
del C:\Users\Administrator\homematic
del C:\Users\Administrator\table*.*
timeout 300
goto restart

----------------------------
Viel Spass


Gruß
Herbert

Antworten

Zurück zu „Softwareentwicklung von externen Applikationen“