FHT Uhrzeit setzen

Die GUID findest du indem du einfach auf der „Modules“ Seite von IP-Symcon ein Modul anwählst (links in den Listen) und dann mit einem Doppelclick die Eigenschaften öffnest. Rechte Maus und dann „Advanced Info“ geht auch.

Hallo Franz,

Du musst es doch nicht installieren, Du sollst doch nur in den einzelnen Sourcen es Dir anschauen. Und es geht nicht nur um die GUID, sondern auch weitere Infos sind sicher interessant. Aber ich will Dich auf keinen Fall dazu ueberreden, WIIPS zu entpacken, aber ich kann Dir versichern, ich muesste auch erst nachschauen, wo es genau gemacht wird. Musst mal in den index.php schauen…

Gruss Torro

Ich habe keine WLAN FHZ, aber wenn die eine andere GUID hat dann eben diese nehmen. Ansonsten sehe ich eigentlich keinen Grund warums mit der WLAN FHZ nicht gehen sollte.

sieht aus als wenn du bei cut&paste was falsch gemacht hast.
Gibts einen php error wenn du es im editor laufen lässt?

@pshome:

Ich habe es komplett markiert & kopiert (STRG-A, STRG-V), im IE und Firefox und jeweils eingefügt und manuell gestartet. In den Kernel Messages finde ich immer noch die vorher beschriebene Fehlermeldung.

Eine FHT_LAST_CLOCK_SET_xxxxx wird jeweils angelegt, die FHT-Instanzen existieren auch.

Was mich halt wundert ist, dass im Editor nichts ercheint.

Was kann ich noch überprüfen?

Gruß,

Specky

Danke schön ! Jetzt wo du es sagt, ja, ich weiss jetzt wo ich sie wieder finde in IPS. Da hatte ich sie schon mal gesehen ! Sie sind im Location Editor !

Ah ja ! Also haben die WLAN FHZ doch eine GUI. Ich hatte eine andere Ident Nummer in Erinnerung, die eher Windows spezifisch ist, die auch mal hier angesprochen wurde !

mfG Franz

@pshome

Ich hab mal dein Skript installiert und einfach mal auf ‚Execute‘ gedrückt. Nichts ist passiert, aber auch keine Fehlermeldung!
Im LogMessage Fenster habe ich nur eine Meldung stehen, die ein wenig konfus ist:

Set Minute Command queued to be sent in -162437 seconds

Wie muss ich das nun verstehen ?

Ich habe auch 4 FHZ1300WLANS im Einsatz. Ist dieses Skript auch so aufgebaut, dass es alle FHZ’s findet und anspricht ?

mfG Franz

sieht so aus als wenn die Variable nicht gefunden wird die den Stellwert des FHT hält. Ist den dem Stellwert (Position) des FHT eine Variable zugewiesen?

Ansonsten check doch mal was in $Instance_data steht:

    $INSTANCE_DATA=IPS_GetInstanceSettings ($MODULE_INSTANCE['instanceid']);
echo $INSTANCE_DATA;

Wenn ich die beiden Zeilen im Skript beifüge, dann steht da nichts im Debug-Fenster. Das Echo spuckt nichts aus! Ausserdem krieg ich weiterhin andere Meldungen von anderen FHT’s, die wiederum Sekundenwerte im Minus Bereichhaben.

Ich kann in deinem Skript kein Muster entdecken, wann welcher FHT angesprochen wird?

mfG Franz

ohne $Instancedata kann die Variable für den Stellwert nicht gefunden werden. Damit klappt dann auch die Abfrage nach dem letzen Update dieser Variable nicht und die Differenz bis zum nächsten Timeslot wird falsch ausgerechnet.

Ich vermute mal das GetinstanceData nicht klappt weil vorher schon $CONNECTED_INSTANCES oder $MODULE_INSTANCE nicht gefunden werden.

Hau halt noch ein par ‚echo‘ (oder bei arrays ‚print_r‘) rein und guck wo es nicht klappt.

einer pro Aufruf wenn die FHZ queue leer ist und er seit mehr als $nDays nicht (oder noch nie) gestellt wurde.

wo haste denn das eingefügt? Die Zeile $INSTANCE_DATA= … ist ja schon drin, du musst nur die echo Zeile danach einfügen.

Ja, das habe ich gesehen! Ausserdem, ich muss auch die Zeile ‚exit‘ rausnehmen. Die brauch man eh nicht !
Ich habe heute mehr Zeit um zu testen. Dann kann ich dir mehr sagen

mfG Franz

Doch das exit muss sein, sonst loopt es weiter durch alle FHT, es soll aber nur einer gestellt werden.

Ich hatte es rausgeschmissen, es wird dennoch immer nur einer angesprochen ??

Naja, ich kuck mir das heute nachmittag noch mal an !

mfG Franz

Das mag ja auch sein. Trotzdem sind sie nicht überflüssig sondern meiner Meinung nach sogar „guter Stil“. Denn, wie pshome schon sagt, würde die Schleife sonnst weiterlaufen ohne je noch einmal etwas „zu fressen“ zu finden.

Aus Performance-Gründen macht man das so. Ich hab es früher auch noch so gelernt. Ob das bei real Multithreading und 3GHz Prozessoren noch etwas ausmacht kann man wohl anzweifeln. Aber das ist eine andere Geschichte und hat nichts mit Stil zu tun. Ausserdem darf das generell keine Entschuldigung für „schlampige Programmierung“ sein. Aber das ist in diesem Zusammenhang dann wohl auch ein etwas übertriebener Ausdruck.

Aber mal was ganz anderes:

Gab es da nicht mal etwas, dass beim verwenden von Exit bei IPS Fehler verursacht? Das wäre der einzige Fall wo ich sagen müsste: Okay, lass sie weg.

Toni

Ja, es sollte ein ‚Return‘ sein, denn sonst wird das Skript irgendwie innerhalb IPS nicht richtig beendet. Es ist irgendwas wegen der Multithread-Sache !

Paresy kann es dir genauer sagen !

mfG Franz

Hallo,

exit muss raus, sofern das Script timergesteuert laeuft. Ansonsten werden auch nachfolgende durch den Timer angesteuerte Scripts nicht ausgefuehrt. An dieser Stelle muss man zwingend deshalb „return“ nehmen.

paresy hatte das schon vor laengerer Zeit in der update history geschrieben, bitte also nicht vergessen.

Gruss Torro

ok, dann eben Return statt exit, ich habs oben im skript geandert.

Ohne gehts aber wirklich nicht, weil ja das Skript nach dem warten auf den Timeslot sich selber nochmal aufruft um dann das ‚FHT_Setminute‘ zu schicken.
Es gibt nur einen Merker dafuer, und wenn ein zweiter FTH gestellt wird lauft das ganze nicht, setminute wird dann zum falsches Zeitpunkt gesendet.

Mit der Verwendung von ‚return‘ ist nun auch meine Fehlermeldung (ScriptError: .currentscript ~ Sender: Execute ~ Result: ) verschwunden.

Ich hatte bereits mit exit(0) experimentiert - was aber nicht zum gewünschten Erfolg führte, bzw. führen konnte :slight_smile:

Gute Nacht,

Gruß,

Specky