Mir ist nur unklar ob die AktionsID eine zufällig GUID ist? Auf der anderen Seite steht da ja aber die Sortierung erfolgt anhand der AktionsID. Wie stelle ich also sicher das die Sortierungsreihenfolge stimmt aber die GUID dennoch eindeutig generiert worden ist?
Warum testet du nicht erstmal mit einem ganz normalen Script in der Konsole wie man einen Wochenplan anlegt und konfiguriert.
Das Thema ist zu komplex um es hier ‚einfach‘ zu erklären.
Die Doku liefert doch alle Befehle und Erklärungen der Parameter.
Michael
Mach ich ja durchaus nur die Dokumentation lässt aus meiner Sicht viele Frage offen sonst würde ich hier nicht fragen.
Ja nur wenn ich z.B.
//Anlegen von Aktionen
IPS_SetEventScheduleAction($EreignisID, 0, "Warm", 0xFF0000, "FHT_SetTemperature(\$_IPS['TARGET'], 22.5);");
wie in der Dokumentation beschrieben ausführe wird zwar etwas ergänzt aber im Ereignis steht dennoch unter Aktion undefined, was mache ich da also falsch bzw. wie lässt sich denn nun die Aktion auch zuweisen nachdem der Eintrag ergänzt worden ist? Da werde ich selber nicht schlau aus der Dokumentation bzw. diese ist aus meiner Sicht für mich nicht nachvollziehbar oder lückenhaft.
Das glaube ich nicht. Der Unterschied liegt wohl darin wie das erkannt wird. Wenn das als Skript erkannt wird (führe PHP Code aus)
steht in der Webconsole undefined, wenn hingegen das als Schalte Instanz erkannt wird steht auch kein undefined da.
Ich finde aber keinerlei Beispiel wie das so zu setzten ist, dass dies als Schalte Instanz und nicht als Skript interpretiert wird.
Weil das genauso funktioniert wie bei allen Ereignissen!
Liegt das Ereignis unterhalb einer Instanz und es steht ein zur Instanz passender Befehlen im Code, sollte die Console es erkennen und entsprechend darstellen.
Michael
Das passiert aber eben nicht, kannst Du gerne ausprobieren. Ich wüste nur zu gerne wo hier der Fehler zu suchen ist, bzw. was anders zu machen ist, aber dazu gibt die Dokumentation leider nichts her.
Wieso ist mein Beispiel sonstiges? Der Wochenplan liegt direkt unterhalb einer Instanz und Ziel ist die Instanz selber, also aus meiner Sicht der häufigste Fall An Instanz gebunden. Warum das jetzt nicht funktioniert bin ich also immer noch nicht schlauer, nach Deiner Theorie sollte das ja funktionieren wenn es unterhalb einer Instanz liegt und das Ziel die Instanz selber ist.
Ja stimmt, es wäre an Instanz gebunden, aber weil du dort viel mehr Code eingetragen hast als es für an Instanz gebunden erlaubt, kann die Console das nicht verarbeiten und zeigt undefiniert an.
Mach es anders herum.
Lege ihn in der Console an und lese den Code mit IPS_GetEvent aus.
Dann siehst du was dir Konsole dort anlegt und erwartet.
Michael
Ich glaube nicht das es an der Länge des Codes liegt denn IP-Symcon selber schreibt da auch keinen kürzeren Code rein, der Unterschied muss irgendwas anders sein.
Das habe ich bereits gemacht, da es ja keine Dokumentation gibt, schlau werde ich da dennoch nicht draus was IP Symcon anders macht, bis auf die GUID die ich nicht interpretieren kann.
Das ist ein Wert damit die Konsole weiß was dort enthalten ist, um es korrekt anzuzeigen.
Aber das ist doch alles egal, wenn du einen Wochenplan in ein Modul nutzt, hat da eh keiner User etwas zu ändern.
Michael
Grundsätzlich wäre es halt schön man könnte das logischerweise per Skript genauso anlegen wie wenn es sich verhält und man das Ereignis von Hand anlegt.
Ja da hast Du ja grundsätzlich recht, Hauptsache der Wochenplan funktioniert. Sieht dennoch etwas komisch aus wenn man den Wochenplan denn mal öffnet. Und so was wie die Farben kann man ja durchaus anpassen und dann stolpert man zwangsweise über undefined.
Das funktioniert hier nicht, weil diese Logik von der Konsole kommt.
Teste das anlegen und konfigurieren Mal mit IPS 5.1 stable und auch mit der legacy Konsole.
Da gibt es immer Unterschiede.
Michael
Leider muss ich dieses Thema nochmal aufgreifen :rolleyes:
Ich habe genau dasselbe Problem hier mit der neusten SymOS und IPS Version.
Man kann zwar Ereignisse anlegen, aber wenn man es dann in der Konsole öffnet, steht da nur das Skript bei der Aktion (Führe PHP Code aus).
Wenn ich das in der Konsole bearbeite und auf (Schalte Instanz) wechsle und das ausfülle, wird es dann auch wieder als solches erkannt.
Beim auslesen von IPS_GetEvent() und IPS_GetObject() gibt es allerdings keinen einzigen Unterschied zwischen den beiden Fällen.
Der Unterschied muss irgendwo ausserhalb der API liegen.
Es funktioniert zwar, aber es ist schon unschön dass es in der Pro-Konsole für Windows sowie in der Webkonsole nicht richtig erkannt wird.
Ich habe lange nach dem Fehler gesucht, bis ich gemerkt habe dass es keinen für mich ersichtlichen Unterschied gibt…
Währe schön wenn man da vielleicht mal was machen kann.