Mit Windows Kommandos an FHEM senden (via EventGhost)

Begonnen von Spiff, 07 Juli 2013, 18:24:32

Vorheriges Thema - Nächstes Thema

TWART016

Hallo Spiff,

jetzt geht es komischerweise. Das Global verbose habe ich auf 3 gelassen.

Mit diesem Code wird gar nichts angezeigt:

define skript1Starten notify skript1:on {GetFileFromURL("http://192.168.178.20:8086/?Event")}


Mit diesem folgendes:

define skript1Starten notify skript1:on {GetFileFromURL("http://192.168.178.20:8086/?Event", "4", "", "", "3")}


2015.08.29 23:05:43 3: HttpUtils url=http://192.168.178.20:8086/?Event
2015.08.29 23:05:43 3: http://192.168.178.20:8086/?Event: HTTP response code 200
2015.08.29 23:05:43 3: HttpUtils http://192.168.178.20:8086/?Event: Got data, length: 0
2015.08.29 23:05:43 3: HttpUtils http://192.168.178.20:8086/?Event: Zero length data, header follows:
2015.08.29 23:05:43 3:   Server: EventGhost/0.4.1.r1700
2015.08.29 23:05:43 3:   Date: Sat, 29 Aug 2015 21:05:43 GMT
2015.08.29 23:05:43 3:   Content-type: text/html
2015.08.29 23:05:43 3:   Content-Length: 1184


Das Ändern der hintersten Zahl bewirkt nichts. Zwischen 1-3 kommt das obere Log, bei 0 leer und 4,5 gar nichts. Kann von dem notify nicht manuell ins FHEM-Log geschrieben werden?

Was wird denn bei dir im Log angezeigt?


Gruß
TWART016

Spiff

Bei mir steht (wenn ich verbose auf 4 oder 5 laufen habe, ansonsten nichts):
2015.08.29 22:35:44.780 4: HttpUtils url=http://192.168.178.20:8086/?Event
2015.08.29 22:35:44.834 4: http://192.168.178.20:8086/?Event: HTTP response code 200
2015.08.29 22:35:44.834 4: HttpUtils http://192.168.178.20:8086/?Event: Got data, length: 31


Ich habe allerdings auch eine index.html.

Ich verstehe dein Problem irgendwie noch nicht.  ::) Was willst du genau erreichen? Ich dachte, du willst, dass das Log nichts anzeigt, nachdem die Funktion aufgerufen wird?

Gruß
Spiff

TWART016

Hallo Spiff,

dann lasse ich es eben bei dem Code mit Log.

Eas noch komisch ist:
In Eventghost im Webserver habe ich bei Datenverzeichnis einen Ort angegeben, wo keine index.html liegt. Dann kommt kein Fehler beim Aufruf der URL. Sobald ich aber das Datenverzeichnis rausnehme, kommt folgender Fehler:


2015.08.29 23:21:33 3: skript1Starten return value: <head>
<title>Error response</title>
</head>
<body>
<h1>Error response</h1>
<p>Error code 404.
<p>Message: File not found.
<p>Error code explanation: 404 = Nothing matches the given URI.
</body>


Weißt du woran das liegen könnte?


Gruß
TWART016

Spiff

Hi TWART016!

Hmm ich weiss nicht, wie Eventghost sich da verhält. Vielleicht nimmt er dann das Eventghost-Verzeichnis als Standard. Weiss nicht... Aber wo nichts ist, kann auch nichts aufgerufen werden. :-) Deswegen: erstelle doch eine kleine index.html mit dem einzigen Inhalt "ok", pack die in das Datenverzeichnis und gut ist? Dann Verbose auf 3 und die Funktion als Standard aufrufen, dann steht auch nichts im Log und du bekommst als Antwort immer ein "ok".
Was gefällt dir daran nicht?

Gruß
Spiff

wilkens

Hallo,
bei mir funktionieren mittlerweile beider Richtungen.
FHEM-> EventGhost
EventGhost -> FHEM

Für den Fall "FHEM-> EventGhost" habe ich in meinem notify folgendes stehen:
GetHttpFile("192.168.167.235:8085", "/?Waschmaschine_Fertig")
192.168.167.235 ist die IP des EventGhost PC
8085 der Port, der im WebServer Plugin des EventGhost eingestellt ist.
Waschmaschine_Fertig ist der Text, der in Event Ghost angezeigt wird.

Für den Fall "EventGhost -> FHEM" muss am Event Ghost ein Befehl des Web Server Plugins hinzugefügt werden.
"Send event to another webserver" muss hier ausgewählt werden.
Als Inhalt habe ich z.B. dieses hier verwendet:
http://192.168.167.239:8083/fhem?cmd.EG.wz.SD.HIFI=set%20EG.wz.SD.HIFI%20on&amp;room=Wohnzimmer
Des gleiche Befehl in FHEM würde heißen
set EG.wz.SD.HIFI on
192.168.167.239:8083 ist die IP und der Port von FHEM
Falls es nicht klappt, gibt es im EventGhost Forum noch einen Beitrag dazu
http://www.eventghost.de/forum/viewtopic.php?f=2&t=5984&p=29528&hilit=fhem&sid=37b9ebb255f503a7d2f3ac7f8bc60ef4#p29528



TWART016

Hallo spynet,

Zitat von: spynet am 20 Dezember 2015, 01:47:41
Für den Fall "EventGhost -> FHEM" muss am Event Ghost ein Befehl des Web Server Plugins hinzugefügt werden.
"Send event to another webserver" muss hier ausgewählt werden.
Als Inhalt habe ich z.B. dieses hier verwendet:
http://192.168.167.239:8083/fhem?cmd.EG.wz.SD.HIFI=set%20EG.wz.SD.HIFI%20on&amp;room=Wohnzimmer
Des gleiche Befehl in FHEM würde heißen
set EG.wz.SD.HIFI on
192.168.167.239:8083 ist die IP und der Port von FHEM

Ich interessiere mich ebenfalls für die Richtung EventGhost zu FHEM. FHEM zu Evetghost läuft schon seit einigen Monaten problemlos.

Was muss ich alle in dem Befehl angeben? In deinem Screenshot ist nur die URL und der Port angegeben. Wird keine Authentifizierung benötigt? Was meinst du mit Inhalt?

Wie bekommt man die URL aus set EG.wz.SD.HIFI on? ]http://192.168.167.239:8083/fhem?cmd.EG.wz.SD.HIFI=set%20EG.wz.SD.HIFI%20on&amp;room=Wohnzimmer

Bei mir erscheint im Eventghost Log nur Fehler, in FHEM kommt nichts an:
Fehler in Befehl: "Webserver: Send event to another webserver: http://192.168.167.239:8083/fhem?cmd.EG.wz.SD.HIFI=set%20EG.wz.SD.HIFI%20on&amp;room=Wohnzimmer"
Traceback (most recent call last) (1700):
File "C:\Program Files (x86)\EventGhost\eg\Classes\ActionBase.py", line 170, in CallWrapper
return self(*args)
File "C:\Program Files (x86)\EventGhost\plugins\Webserver\__init__.py", line 3473, in __call__
scheme = matchobj.group(1)
AttributeError: 'NoneType' object has no attribute 'group'



Freundliche Grüße
TWART016

wilkens

Hi,

im Screenshot vom EventGhost lässt sich mehr nicht darstellen.
Deshalb hatte ich den Inhalt rauskopiert. Da steht komplett:
   http://192.168.167.239:8083/fhem?cmd.EG.wz.SD.HIFI=set%20EG.wz.SD.HIFI%20on&amp;room=Wohnzimmer

der Aufbau ist eigentlich immer der Gleiche.
Ich ersetze da im Text einfach die Werte, das geht am schnellsten.

Du kannst die Kommandos auch aus dem Webinterface auslesen.

Hier im Beispiel mit Internet Explorer 11
   Gehe im FHEM auf die Seite, auf die dein Gerät und der Befehl schon angelegt ist, den du über EventGhost ausführen möchtest
   Rechtsklick irgendwo ins leere, dann "Quellcode anzeigen"
   Im Quellcode suchst du dann nach dem Namen des Gerätes. Bei mir "Sofa"
   Dann findest du z.B. so etwas:
      location.href='/fhem?cmd.EG.wz.SD.StromSofa=set EG.wz.SD.StromSofa on&amp;room=Erdgeschoß'
   Diesen Link änderst du entsprechend Um.
      1. location.href=' am Anfang und ' am Ende weglöschen
      2. Die IP und Port von FHEM von ranhängen. Bei mir:http://192.168.167.239:8083
   Das sieht dann so aus:
       http://192.168.167.239:8083/fhem?cmd.EG.wz.SD.StromSofa=set EG.wz.SD.StromSofa on&amp;room=Erdgeschoß
   Nun noch alle Leerzeichen durch %20 ersetzen. Also so:
      http://192.168.167.239:8083/fhem?cmd.EG.wz.SD.StromSofa=set%20EG.wz.SD.StromSofa%20on&amp;room=Erdgeschoß
   Der Befehl kann nun so in der Adresszeile des Browsers oder über den Webserver von EventGhos ausgeführt werden.

Mit Login habe ich noch nicht gearbeitet. Du kannst mir deine Erfahrung damit aber gern mitteilen :-)
Falls du Fehlermeldungen im EventGhost bekommst, schaue zunächt unter diesem Beitrag:

http://www.eventghost.net/forum/viewtopic.php?f=2&t=5984&p=29528&hilit=fhem#p29528

Anbei noch zwei Screenshots
Ich hoffe, das hilft dir.

TWART016

Hi,

Zitat von: spynet am 03 Januar 2016, 12:14:31
http://192.168.167.239:8083/fhem?cmd.EG.wz.SD.HIFI=set%20EG.wz.SD.HIFI%20on&amp;room=Wohnzimmer
Über den Link kann ich jetzt zumindest per Webbrowser das Device schalten.

Über FHEM kommen nach wie vor die gleichen Fehlermeldungen:
Fehler in Befehl: "Webserver: Send event to another webserver: http://192.168.167.239:8083/fhem?cmd.EG.wz.SD.HIFI=set%20EG.wz.SD.HIFI%20on&amp;room=Wohnzimmer"
Traceback (most recent call last) (1700):
File "C:\Program Files (x86)\EventGhost\eg\Classes\ActionBase.py", line 170, in CallWrapper
return self(*args)
File "C:\Program Files (x86)\EventGhost\plugins\Webserver\__init__.py", line 3473, in __call__
scheme = matchobj.group(1)
AttributeError: 'NoneType' object has no attribute 'group'


Auch im Eventghost Forum habe ich nicht gefunden.


Gruß
TWART016

wilkens

Du meinst sicher in EventGhost kommen die Meldungen?

Da steht ja noch mein unveränderter Befehl drin. Du musst den schon wie oben beschrieben auf dein FHEM umsetzen, sonst wird das nichts.
Falls ich das jetzt falsch verstehe, sende mal screenshots von den Einstellungen des WebServer Plugins. Und ebenfalls von einem genutzten Befehl.
Welche Version des WebServerPlugins nutzt du? Die vom oben genannten Link des EventGhost Forum, oder die, die dabei war.

TWART016

Zitat von: spynet am 04 Januar 2016, 00:02:55
Du meinst sicher in EventGhost kommen die Meldungen?
Ja, das sind die Fehler in Eventghost.

Zitat von: spynet am 04 Januar 2016, 00:02:55
Da steht ja noch mein unveränderter Befehl drin. Du musst den schon wie oben beschrieben auf dein FHEM umsetzen, sonst wird das nichts.
Ich hab natürlich  meine Daten eingegeben:
http://192.168.178.25:8083/fhem?cmd.testStatus2=set%20testStatus2%20on&amp;room=tests


Zitat von: spynet am 04 Januar 2016, 00:02:55
Falls ich das jetzt falsch verstehe, sende mal screenshots von den Einstellungen des WebServer Plugins. Und ebenfalls von einem genutzten Befehl.


Zitat von: spynet am 04 Januar 2016, 00:02:55
Welche Version des WebServerPlugins nutzt du? Die vom oben genannten Link des EventGhost Forum, oder die, die dabei war.
Version ist die 3.7 so wie sie bei der Installation dabei war.

wilkens

Sorry für die späte Rückmeldung.
Ich bin hier nicht so oft und muss mich mal um die Mailbenachrichtigung kümmern...

So viele Ideen habe ich da jetzt auch nicht mehr.

Versuche doch mal die Version 3.9 von dem Webserver Plugin.

Bei mir läuft noch eine ganz alte Version. Vielleicht hat sich ja auch etwas geändert.
Ich habe Event Ghost 0.4.1.r1610 mit dem WebServer Plugin 2.0 im Einsatz. Never touch a halbwegs running system ;-)

Was ist mit Firewall. Wird da vielleicht was geblockt?



TWART016

Ich habe noch Webserver Plugin 3.8. Seit wann und wo gibt es 3.9? Wenn ich die Version aus dem Forum, glaub 1.7, verwende, geht das Webserver Plugin im Prinzip gar nicht mehr.

0.4.1r1706 habe ich eben noch installiert, gleiche Problem.

Firewall ist aus, daran kann es eigentlich nicht liegen. Der Fehler zeigt auch eher auf einen Fehler in einer Datei.

wilkens

Hallo,

so richtig nen Rat habe ich auch nicht mehr.
Also habe ich die aktuelle Version mal auf meinem Büro-PC installiert und ein paar screenshots gemacht.
Alles ging direkt und ohne Probleme.
Gucke dir die angehängte Anleitung/Datei mal an und probiere sonst mal nen anderen PC um das Problem einzugrenzen.

TWART016

Hallo,

ich habe Eventghost jetzt auf einer virtuellen Maschine installiert. Auch dort gibt es den gleichen Fehler (nur line 3526 anstatt 3473).

Der Port vom Webserver ist doch egal, solange er auf dem PC nicht verwendet wird??

Das Verzeichnis C:\Program Files\EventGhost\webserver ist bei mir leer. Muss das so sein?

Kann es am FHEM Server liegen? Das Aufrufen der URL funktioniert von jedem PC (wenn die Anmeldedaten einmal angegeben wurden).

wilkens

Schalte die Anmeldung in FHEM doch mal aus. Nur um zu gucken, ob es daran liegt. Da ich das nur über vpn oder im internen Netz nutze lasse ich das bei mir auch ohne Anmeldung. Mir fehlt im Moment  leider die Zeit das zu testen. Port muss meiner Meinung nach nur frei sein und der Ordner  ist bei mir auch leer.