sFHTs Super FHT Script

Achtung!!!

Da hatte sich bei der Zeitsynchronisation ein Fehler eingeschlichen. Das war die alte Version. Sie berücksichtigte nicht die Zeit zwischen halb und voll.

Hier ist die richtige Version:

$minutes = (integer)date("i");
if(bcmod($minutes,30) != 0) {
   if (($diff = (1800 - $minutes * 60)) < 0)
      $diff = (3600 - $minutes *60);
   IPS_SetScriptTimer("sfhtso",$diff);
}
else {
   IPS_SetScriptTimer("sfhtso",1800);
}

So sollte es gehen.

Tip:
Einfach zur ersten Synchronisation das sFHTs Script im Startscript aufrufen, dann stimmt die Zeit sofort. :smiley:

Gruß
Fabian

Hallo Fredje,

hast du schon ein Update fürs Script wegen der neuen FHT-Steuerung? Ich habe mir das gerade mal engesehen. Eigentlich ist das nur die Umsetzung der „state“ und „soll“ Variable, wie sie schon im Script enthalten sind, oder?
Nur dass jetzt eine Abfrage über die erfolgreiche Datenübertragung möglich wäre. :smiley:

Naja der nächste Winter kommt bestimmt… :frowning:

Du steuerst doch auch deine Heizung mit IPS. Hast du da eine Verbindung zum sFHTs oder läuft die autark nach Zeit. Kannst du ev. das Script mal zur Verfügung stellen?

Hattest du die Änderungen bezüglich der Semaphore und des Timerstarts mal ausprobiert? (Nicht im Timer Wizzard direkt, sondern über das Setzen des Script-Timers wie oben beschrieben)

Gruß
Fabian

Hallo Fabian,

Grundsetzlich gehe ich davon aus das die commando’s ankommen… hip hip hoera IPS. Das script ist so gestalltet das es diesem uberflut von sende-befehle nicht gibt.
Das script sollte vielleicht nocht weiter entwickelt werden. Mit meine 7 FHT’s lauft es ohne macken auf einem 1300-er FHZ. Deshalb werden die ‚-states‘ nicht genutzt. Bis heute :o

Anleitung und sources : http://www.ip-symcon.de/wiki/index.php/SFHTs
Steht alles ausfuhrlich beschrieben.
Bitte nehme mal etwas zeit und bei bedarf… das forum steht fur sie offen.

Grusse,

Jaja, das Script kenne ich ja schon. Ich habe es auch an meine Bedürfnisse angepasst. Schließlich habe ich schon einige interessante Änderungen gemacht und hier gepostet.

Nun die state Var ist ja im Prinzip schon realisiert…

Mal sehen, wie’s läuft.

Fabian

Fabian,

Jetzt realisiere ich das du ja die änderungsverschlage gepost hast. Sorry.
Ja die -state vars werden (sollten) genutzt werden.
Wenn ich mal ran bin, sehen wir weiter.
Danke fur dein Beitrag.

Fredje

Hallo GGGss,

beim „Zerlegen“ (für meine Datenbankabfragen) des sFHTs bin ich auf ein Problem gestoßen:

Bei der Abfrage auf Wochenende ergibt die Zeile

... (($now["wday"]+0) > 4))...

nur Freitag und Samstag.

Habt Ihr in Belgien andere Wochenenden? :rolleyes:

Naja, ich habs in

(($now["wday"] == 0) or ($now["wday"] == 6))

geändert.

Sicherlich auch als Bugfix für die Benutzer des „normalen“ sFHTs interessant.

Gruß
Fabian

Danke dir Prof,

Du hast wieder mal recht.
Neue version hoch-geschoben (geupload)

Es gab auch noch ein problem mit der flanken-detection /// gemeldet durch torsteng. Und dieser fehler war schon lange drin - wegen den Sommer nicht aufgemerkt. Irgendwie hat sich der $IPS_SENDER von „TimerEvent“ in „Execute“ geänderd wodurch sich der flanken-detektion nicht arbeitete.
Oder ich habe bei die wiki-arbeiten etwas geändert ohne das das script geänderd war! blöd !
Na jah: jetzt lauft er wieder einwandfrei.

Neue version 0.70 ist ab jetzt downloadbar. Siehe sFHTs im wiki

Grusse,
und nochmals danke fur den hinweis :slight_smile:

Fredje

Unter dass motto: „Never change a winning team“ habe ich es doch geschafft eine unstabiele version des sFHTs raus zu geben.

Bitte: die v0.70 noch NICHT nutzen. Der flankentrigger macht Bocke-sprünge und invertiert eure settings (warm wenn kalt, kalt wenn warm gefragt wird)

Ich berichte wann die gute version einsatzbereit ist.

Have a nice day

Hallo Fredje,

das angesprochene Problem habe ich schon im Juni behoben. Durch ein Update wurde der IPS_Sender geändert. Daher habe ich das Script aus dem Timerwizzard herausgenommen und nutze direkt den Script-Timer.

Sieh Dir mal den Post von mir an, oben auf dieser Seite. Dort habe ich auch die Synchronisation auf die halbe Stunde beschrieben. Damit läufts bei mir seit Juni…

Die an die Datenbank angepasste Version habe ich fast fertig. Ich habe Dein Grundkonzept der priority beibehalten. Allerings anders umgestzt. Ich schicke Dir morgen mal ne PM mit den alpha’s.

Gruß
Fabian

Fabian,

Deinem beitrag habe ich mir gemerkt - aber es gab ubele zeiten wo ich rumgebastellt habe am script und oh-weh weg die ganze bude
Deshalb !

Hi,
habe mal so ein wenig rumgespielt.
Funzt super, getriggert wird auf _imhome und _imaway.
Wenn enes der beiden auf false geht, kommt nen Error. s.Bild.

Hat da wer nen Tip?

Schau mal im Messagfenster direkt unter debug nach oder poste die Ausgabe.

Danke für die schnelle Hilfe.

Mist, durch die debug-Ausgabe ist der Fehler nicht zu sehen >> steht hinter den Punkten…
Du musst in die Logdatei sehen, was da bei der Ausgabe drinsteht. Halte dich einfach an die Uhrzeit und die ThreadID.

04.10.2007 14:35:02.406 | DEBUG | VariableManager | Variable: __imhome (Boolean), Value: False
04.10.2007 14:35:02.437 | DEBUG | ExecuteThread ID: 3136 | Executing Script: sFHTs.ips.php ~ Sender: Variable: __imhome, Trigger: OnChange
04.10.2007 14:35:02.437 | ERROR | ExecuteThread ID: 3136 | ScriptError: sFHTs.ips.php ~ Sender: Variable: __imhome, Trigger: OnChange ~ Result:
04.10.2007 14:35:02.437 | DEBUG | ExecuteThread ID: 3136 | Execution Result:
04.10.2007 14:35:02.437 | DEBUG | ExecuteThread ID: 3136 | Executed, Ret: 0, Successful:False
04.10.2007 14:35:02.671 | DEBUG | ExecuteThread ID: 5844 | Executed, Ret: 1, Successful:True

Hilft mir aber auch nicht weiter.

:eek: habe ich so auch noch nicht gesehen :confused:

Fehler schon aber nicht was???

Es sieht ein wenig so aus, als ob das Script garnicht erst läuft. Die Zeiten von Start, Fehler und Terminierung sind identisch…

Was steht in der ersten und letzten Zeile?

Ev. hast Du beim kopieren die php Kennung
Anfang: <?
Ende: ?>
vergessen oder einmal zu viel drin… (in einer Bedingung oder Schleife…)

Ansonsten hätte ich gern auch mal andere Meinungen dazu gehört.

Wenn ich das script manuell starte ist ja alles ok. Komisch

Im Anhang manuelle Auslösung und per Trigger (ab blauer Zeile).

debugging …

komische art!

Ups… hatte ich gar nicht gesehen… :eek:

Mit Debug meinte ich das Kernelfenster und dann unten auf debug stellen…

Dennoch habe ich keine Erklärung. Auch wenns weh tut, poste doch einfach mal das komplette script.

hab’s /// es gab noch ‚die‘ funktionen…

ersetze dies bitte :


if ($IPS_SENDER == "Variable"){
   /* Switch ONLY when __imaway becomes true or __imhome becomes true
      die if false -> script will be triggered in max 30 minutes.
      if settings change from imhome -> imaway, then FHZ buffer get's
      overbuffered because script did run 2 times
      imhome -> false, imaway -> true x 5 FHT-devices = buffer overrun */
   if ($IPS_VARIABLE == "__imaway" && !GetValueBoolean("__imaway")) return;
   // die when imhome = false
   if ($IPS_VARIABLE == "__imhome" && !GetValueBoolean("__imhome")) return;
   if ($IPS_VARIABLE == "__party" && !GetValueBoolean("__party")) return;
   $lastrun=IPS_GetLastRun("sFHTs");
}

(oben im script - wo die ‚die‘'s stehen)
und berichte bitte.