HTTP-Request mit Version 9.3.4

Antworten
ing-michel
Beiträge: 39
Registriert: Do 1. Dez 2016, 10:09

Sa 27. Jul 2019, 23:00

Liebe Community,

für mein Smarthome nutze ich die HTTP Request-Funktion des LM.
Bislang erfolgte der Aufruf der Szenen immer über :

Code: Alles auswählen

request('scene=100')
ausgeführt. Das funktioniert in der neuen Version nicht mehr. Hat sich am Syntax was geändert?
Beste Grüße
Michel
Benutzeravatar
rtwl
Beiträge: 231
Registriert: So 30. Dez 2018, 18:08

So 28. Jul 2019, 09:42

Ich schalte meine Szenen mit dem request

Code: Alles auswählen

 /control?key=12
Peter
ing-michel
Beiträge: 39
Registriert: Do 1. Dez 2016, 10:09

So 28. Jul 2019, 13:03

rtwl hat geschrieben:
So 28. Jul 2019, 09:42
Ich schalte meine Szenen mit dem request

Code: Alles auswählen

 /control?key=12
Moin,
... das ist GET. Das funktioniert bei mir auch. Ich benutze jedoch POST, und das funktioniert nicht mehr seit der neuen Version.
ing-michel
Beiträge: 39
Registriert: Do 1. Dez 2016, 10:09

So 11. Aug 2019, 20:59

Hat sonst niemand das Problem?
paulinchen
Beiträge: 272
Registriert: Di 28. Feb 2017, 14:15

Mo 2. Dez 2019, 16:23

ing-michel hat geschrieben:
So 11. Aug 2019, 20:59
Hat sonst niemand das Problem?
Doch, ich...
Nachdem ich heute von Version 8.5.1 auf die Version 9.5.3 gewechselt bin, ging bei mir auch nichts mehr.

Ich habe dann mittels Wireshark herausgefunden, dass man jetzt bei den POST-Requests statt wie bisher "scene=123" neuerdings "cmd=man,123" angeben muß. (123 ist die Nummer der auszuführenden Szene im LMA). :roll:

In der Datei lightman.js findet man auch einen entsprechenden replace-Befehl.
Der funktioniert natürlich nicht, wenn man einen externen HTTP-Request nutzt.

@jbmedia: Ist dies jetzt ein Bug oder ein neues Feature ???
Benutzeravatar
jbmedia
Administrator
Beiträge: 2030
Registriert: Mi 17. Feb 2016, 13:42

Mo 2. Dez 2019, 18:21

Beides funktioniert. Die cmd=man,xxx Variante wird vom Web-Interface genutzt. scene=xxx wird zusätzlich sowohl als POST sowie als GET unterstützt. Wir testen das aber gerne nochmal in der kommenden 9.6.
Wir wünschen viel Spaß mit den Produkten und einen erfolgreichen Tag! Ihr jbmedia Team :)

paulinchen
Beiträge: 272
Registriert: Di 28. Feb 2017, 14:15

Mo 2. Dez 2019, 18:45

Hallo,
wenn die Firmware beides kann, wäre ja folgende Änderung gar nicht nötig gewesen. Dieses replace ist ja erst irgendwann neu eingefügt wurden?

in der folgenden Funktion wird ja das bisherige "scene=" durch "man," ersetzt:

Code: Alles auswählen

function request(ctlcmd)
{									
	if (ctlcmd.substring(0,6) == 'scene=')
		ctlcmd = ctlcmd.replace('scene=', 'man,');		
	else if (ctlcmd.substring(0,4) == 'cmd=')
		ctlcmd = ctlcmd.replace('cmd=', '');
Dies ist aber meiner Meinung nach falsch, es müsste dann durch "cmd=man," ersetzt werden, oder?
Daher funktioniert dies aktuell auch nicht (siehe 1. Posting).


In der alternativen Funktion fehlt dann aber diese Ersetzung auch noch? Diese sieht ja im Moment so aus:

Code: Alles auswählen

function minrequest(ctlcmd)
{				
	$.ajax({
    url: "control" + login,
    data: ctlcmd,
    type: "POST",
	});			
}
Und wenn man statt dieser Funktionen sein eigenes Dashboard mit eigenem Javascript nutzt, muss man natürlich die neue Syntax erst mal kennen.
Daher die Bitte, solche Änderungen auch zu kommunizieren.

Danke.
Marley
Beiträge: 8
Registriert: Sa 24. Feb 2018, 13:13

Mi 4. Dez 2019, 15:36

Moin,

mir ist gestern Abend ebenfalls aufgefallen, dass die Szenen die bei mir per HTTP Get durch mein Innogy Smarthome ausgelöst werden nicht mehr funktionieren. Allerdings habe ich vor kurzem ein Update auf die Beta 9.6 mit dem Firmware Update auf 9.1 gemacht.
Nachdem ich jetzt wieder auf 9.5.3 mit Firmware 9.0 downgegraded habe funktioniert alles wieder wie gewohnt.

Ich nutze zum schalten der Szenen den ganz normalen Standardbefehl aus den FAQs http://IPlightmanager/control?scene=XXX
an den Befehlen wurde von mir auch nichts verändert, sodass davon auszugehen ist das es an der FIrmware 9.1 bzw. 9.6 Beta Software liegt.

Gruß
Marley
Antworten