Über CUXD/System.Exec Befehl für Java-Programm senden

Anbindung von FS20-Komponenten, ELV-Wetterstationen, EnOcean und DMX an HomeMatic

Moderator: Co-Administratoren

Antworten
deifel
Beiträge: 256
Registriert: 27.05.2014, 11:10
Hat sich bedankt: 7 Mal

Über CUXD/System.Exec Befehl für Java-Programm senden

Beitrag von deifel » 12.02.2017, 20:29

Hallo zusammen,

ich brauche mal Eure Hilfe. VOrab: Ich bin völliger Anfänger, bitte nicht hauen!
Ich versuche aktuell, über die Weboberfläche von Homematic einen Befehl an ein externes Programm zu senden, um damit meinen Rasenroboter zu steuern. Also ganz normal über ein Programm, welches dann ein Script ausführt.

Bei mir läuft Homematic über einen Raspberry und YAHM.
Der eigentliche Befehl, welcher sich z.B. auch direkt auf dem Raspi aus dem richtigen Verzeichnis ausführen lässt und funktioniert, lautet:

Code: Alles auswählen

./IndegoController -u XXXX@gmail.com -p XXXX -c MOW -q
Es handelt sich um ein Java Programm, welches im YAHM/Homematic Verzeichnis unter local liegt.
Das Verzeichnis lautet:
/usr/local/bosch-indego-controller-dist-0.8/bin/ (Darin liegt die Datei IndegoController)

Der Vollständigkeit halber noch der absolute Pfad /var/lib/lxc/yahm/root/usr/local/bosch-indego-controller-dist-0.8/bin/

Somit sollte meiner Meinung nach über folgenden Befehl über ein Script der Befehl ausgeführt werden:

Code: Alles auswählen

    string stdout;
    string stderr;
    system.Exec("./usr/local/bosch-indego-controller-dist-0.8/bin/IndegoController -u XXXX@gmail.com -p XXXX -c MOW -q",&stdout,&stderr);
Funktioniert aber leider nicht. Habe ich einen Fehler gemacht oder kann ich das evtl. über eine andere Art und Weise lösen?
Vielleicht sinnvollerweise sogar mit CUXD?
Ich möchte den Rasenroboter abhängig von entsprechenden Systemvariablen steuern, daher bietet sich das super an.

Ich würde mich riesig freuen, wenn mir hier jemand unter die Arme greifen kann.

Vielen Dank im Voraus
Frank

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Über CUXD/System.Exec Befehl für Java-Programm senden

Beitrag von alchy » 13.02.2017, 00:05

Was sagt denn die Rückgabe?

Code: Alles auswählen

string stdout;
string stderr;
system.Exec("/usr/local/bosch-indego-controller-dist-0.8/bin/IndegoController -u XXXX@gmail.com -p XXXX -c MOW -q",&stdout,&stderr);
WriteLine("FEHLER:\n "#stderr);
WriteLine("AUSGABE:\n"#stdout);
Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

deifel
Beiträge: 256
Registriert: 27.05.2014, 11:10
Hat sich bedankt: 7 Mal

Re: Über CUXD/System.Exec Befehl für Java-Programm senden

Beitrag von deifel » 13.02.2017, 00:22

Hallo Alchy,

die Rückgabe sagt:

Code: Alles auswählen

FEHLER:
 Error: JAVA_HOME is not defined correctly.
  We cannot execute 

AUSGABE:
Sprich JAVA-HOME scheint nicht korrekt gesetzt zu sein!?
Dann dürfte es doch aber nicht direkt auf dem Raspi laufen, oder?

Mit der Abfrage "which java" bekomme ich:
"/usr/bin/java"

Danke für Deine Hilfe!!

deifel
Beiträge: 256
Registriert: 27.05.2014, 11:10
Hat sich bedankt: 7 Mal

Re: Über CUXD/System.Exec Befehl für Java-Programm senden

Beitrag von deifel » 13.02.2017, 12:23

Glaube ich hab den Fehler beseitigt. Habe dazu in der Datei IndegoController folgende Ergänzung gemacht:

export JAVA_HOME="/opt/ejre1.7.0_10/"

Vielleicht hilft es jemand weiter...

Herzlichen Dank für Eure Hilfe

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Über CUXD/System.Exec Befehl für Java-Programm senden

Beitrag von alchy » 13.02.2017, 12:49

Das wäre ja die logische Konsequenz aus der Fehlermeldung. :wink:
Die WriteLines kannst du dann entfernen, wenn das Script funktioniert.

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

deifel
Beiträge: 256
Registriert: 27.05.2014, 11:10
Hat sich bedankt: 7 Mal

Re: Über CUXD/System.Exec Befehl für Java-Programm senden

Beitrag von deifel » 13.02.2017, 12:54

Jep, habe ich gemacht ;)
Vielen Dank!
Ist denn grundsätzlich eine Umsetzung des Scriptes über CUXD möglich anstelle System.Exec und würde das Sinn machen?

pfried
Beiträge: 28
Registriert: 06.12.2017, 15:22
Hat sich bedankt: 2 Mal

Re: Über CUXD/System.Exec Befehl für Java-Programm senden

Beitrag von pfried » 10.08.2019, 21:17

Hallo,
da ich ein Laie bin, würde es mich freuen eine Anleitung zu bekommen, wie man Schritt für Schritt das Indego Projekt auf einer RaspberryMatic zum Laufen bekommt. Ich habe mir das ZIP File iot-device-bosch-indego-controller-bosch-indego-controller-0.8 heruntergeladen. Aber wie geht es weiter, da ist kein bin Verzeichnis?
Liebe Grüße
Paul

Antworten

Zurück zu „CUxD“