Script für TP-Link TP110

Schalten hatte ich bisher noch gar nicht im Release drin, habe es jetzt auf GITHUB mal eingebaut
einfach den Inhalt der Datei (Script) austauschen und die Variablen und die IP Adresse wieder anpassen

script haut aber nirgendwie nicht hin

Warning: Instanz #44953 existiert nicht in /var/lib/symcon/scripts/__generated.inc.php on line 929

Fatal error: Uncaught Exception: Instance does not implement this function in /var/lib/symcon/scripts/__generated.inc.php:934 Stack trace: #0 /var/lib/symcon/scripts/40319.ips.php(4): TPLHS_PowerOn(44953) #1 {main} thrown in /var/lib/symcon/scripts/__generated.inc.php on line 934

sieht aktuell so aus

Wie ich schon sagte s.o.

Demnach nutzt die die falsche Objekt ID, Du versucht nämlich ein Skript anzusprechen Du willst aber das Gerät schalten also wäre richtig 27923 bzw. 41803 (insofern man das auf dem mickrigen Bild erkennen kann :rolleyes:).

ok Script läuft jetzt aber es passiert nix … :)*?

Kann das auch mit Docker zusammenhängen ?

Wenn Du die Instant öffnest mit einem Doppelklick und das Debug Fenster öffnest, was wird denn im Debug Fenster angezeigt wenn Du das Skript ausführst?

Script ausführen führt dazu das ich die Weboberfläche neu laden muss weil nichtsmehr reagiert.

Mach mal ein Update des PHP Moduls. Wird denn im Debug Fenster was angezeigt oder friert da schon die Webkonsole ein? Hast Du mal probiert wie sich das mit der Legacy Konsole verhält, lässt sich dort was im Debug Fenster ablesen oder friert die alte Konsole auch ein, sobald Du das Skript zum Schalten ausführst?

Hi,

wüsste nicht wie ich das PHP im Docker updaten könnte. Docker hat auch nur das Webinterface und keine Legacy console mehr.

Im Safari habe ich zwar das Entwickler Menü, wüsste aber nicht wie ich da Debugger kann.

Ich benutzte kein Docker, aber geht das nicht wie sonst auch?
Unter Kerninstanzen Modules öffnen und dann
modul update.png
Alle Aktualisieren bzw. einzeln aktualisieren.

Sicher das die alte Konsole gar nicht mehr funktioniert mit Docker, das wäre ja blöd?

Einfach die Instanz öffnen dann ganz rechts auf den Käfer (Debug) drücken, dann geht ein Debug Fenster auf.

also:

zu 1) Kernmodule sind alle up to date. Ist die aktuelle IPS5 Version

zu 2) Ja leider nur Webinterface. Zumindest im Docker. Auf Windows etc. gibt die Konsole noch auf Legacy.

zu 3) Ich glaube dann weiss ich nicht was Du mit Instanz meinst. Die Dosen einzeln funktionieren Problemlos. Wüßte nicht wo ich einhaken sollte.

Es gibt einen Unterschied zwischen IPS selber und PHP Modulen. PHP Module kannst Du unter Kerninstanzen -> Modules einbinden und auch dort aktualisieren.

Genau das meine ich, wenn also noch ein Windows System vorhanden sein sollte, einfach dort die „alte“ Konsole installieren und mal schauen wie es sich dort verhält.

Eine Instanz ist in IP-Symcon z.B. ein Gerät das mehrere Datenpunkte enthält und dieser Instanz gibt Du jeweils einen Schaltbefehl. Siehe auch Dokumenation von IP-Symcon Instanzen. Alles was in der Webconsole mit einem grünen Stecker angezeigt wird, ist eine Instanz. Wenn Du also auf den Stecker mir 41803 (Vitrine 2) doppelklickst öffnet sich das Instanz Fenster, dort findest Du dann auch jeweils den Debug Button, der Dir zu der Instanz eine Debug Fenster öffnet.

Die Inszanzen selbst laufen Problemlos wenn einzeln angesprochen. Sogar über Alexa. Aber nicht per script.

Sobald ich das script starte kann ich nichtsmehr tun. Auch nicht in den Debug Modus der Instanz einer Wlan Steckdose. Zumindest nicht bis das Webinterface neu geladen ist.

Verstehe ich das richtig, dass sich aus dem Webfront also alles schalten lässt? Dann öffne zumindest mal das Debug Fenter und schalte dann per Webfront und schau mal ob da irgendwas auffällig ist.

Dann poste doch noch mal Deinen Objektbaum in einer Auflösung, das man etwas erkennen kann und das Skript das Du versuchst auszuführen und bei dem sich dann IP-Symcon aufhängt.

geht leider so nicht.

ich hab mal folgendes gemacht:

Debebug auf eine der Instanzen und das Script per APP gestartet nicht auf der Konsole:

in der App kommt irgendwann Zeitüberscheitung der Anwendung.

Ach und das Script:


<?
$id1 = 27923; // ObjektID Steckdose 1 
$id2 = 41803; // ObjektID Steckdose 2 
TPLHS_PowerOn($id1); 
TPLHS_PowerOn($id2); 
?>

schaltet nur die erste Dose :wink:

Was passiert denn wenn Du unmittelbar hintereinander im Webfront die beiden Steckdosen schaltest? Geht dann auch nur die erste an?

Falls sich das im Webfront nacheinander einschalten lässt kannst Du höchstens mal probieren ein IPS_Sleep zwischen die Befehle zu setzten und mit der Dauer der Pause zu experimentieren. Warum das so ist kann ich Dir leider zur Zeit nicht sagen und ich habe leider auch keine Möglichkeit das zu testen, da ich nur eine Steckdose des Typs besitze.

ja, muss ich mal mit rumprobieren

sleep hat irgendwie leider auch nix gebracht