FHT'S aufwecken.

Und mit deiner 1300er hast du das Problem gelöst?
Ich wäre gerne bereit mir eine 1300er zu kaufen, wenn ich wüßte das es sich lohnt.

gruss
computerpap

Tue es und zwar gleich !
Eigentlich sollte Herr Steiner mal den 1000-er abraten auf die home page.
und gleich die schlechte nachricht : 1300 kommt mit software und ist deshalb teuer (?)
Aber es wird Funzen unter vorbehallt das die signale durch deine 3 decken kommen… :confused:

Danke für deine Hilfe, ich werd mal mit Herrn Steiner mailen, zwecks einer 1300er.
Vielen Dank nochmal und allen Forumsmitgliedern wünsche ich einen guten Rutsch ins neue Jahr.

gruss
computerpap

Hier mal ein update.

  • unterstützt jetzt mehrere FHT’s (danke Olli! :wink: )
  • Parsing eleganter gelösst (danke tangens! :slight_smile: )
<?
/*
*******************************
 IP-SYMCON Event Scripting
*******************************
File     : Wakeup_FHT.ips.php
Trigger  : Timer
Interval : every 15 minutes
Purpose  : Give fht's that fail to report Temp a kick
Version  : 2
         - supports multiple FHZ thanks to tangens
         - nice string parsing thanks to Olli
*/

// loop thourgh all IPS instances

$INSTANCE_LIST=(IPS_GetInstanceIDs());
// find FHZ and check if enough free buffers
foreach($INSTANCE_LIST as $IPS_INSTANCE)
   {
   // Get the Module Instance
   $MODULE_INSTANCE=IPS_GetModuleInstance($IPS_INSTANCE);
   // check if this is the FHZ
   if ($MODULE_INSTANCE['moduleguid'] =='{57040540-4432-4220-8D2D-4676B57E223D}')
      {
      // check if at least 5 buffers free , leave some buffers for other things
      $FREE_BUFFERS = FHZ_GetFreeFHTBuffer($MODULE_INSTANCE['instanceid']) ;
      if ($FREE_BUFFERS > 4 )
         {
         // find the FHT's
         $CONNECTED_INSTANCES=IPS_GetModuleInstanceConnections($IPS_INSTANCE);
         foreach($CONNECTED_INSTANCES as $IPS_INSTANCE)
            {
            // check if we didnt fill to many buffers leave 2 for other things
            if  ($FREE_BUFFERS > 2)
               {
               $MODULE_INSTANCE=IPS_GetModuleInstance($IPS_INSTANCE);
               if ($MODULE_INSTANCE['moduleguid'] =='{A89F8DFA-A439-4BF1-B7CB-43D047208DDD}')
                  {
                  // get name of variable that tracks FHT temp
                  $INSTANCE_DATA=IPS_GetInstanceSettings ($MODULE_INSTANCE['instanceid']);
                  // note 'TemeratureVar' is not a typo in this script, IPS reports it back like this!
                  $TEMP_VARIABLE_NAME = preg_match( '#TemeratureVar.*"(.*)"#', $INSTANCE_DATA, $m) ? $m[1] : '';
                  $LAST_TEMP_UPDATE =IPS_GetUpdateTime ($TEMP_VARIABLE_NAME);
                  // if no update for more than 15 minutes then send something to the FHT to wake it up
                  if (TIME() - $LAST_TEMP_UPDATE  > 900)
                     {
                     // get name of variable that tracks the FHT mode
                     $MODE_VARIABLE_NAME = preg_match( '#TargetModeVar.*"(.*)"#', $INSTANCE_DATA, $m) ? $m[1] : '';
                     // get the current mode of fht
                     $FHT_CURRENT_MODE =GetValueInteger($MODE_VARIABLE_NAME);
                     //set the FHT to its current mode, changes nothing but triggers 'is' temperatures to be sent again
                     FHT_SetMode ($MODULE_INSTANCE['instanceid'],$FHT_CURRENT_MODE);
                     IPS_LogMessage ('Kicked FHT',$TEMP_VARIABLE_NAME);
                     $FREE_BUFFERS =$FREE_BUFFERS -1;
                     }
                  }
               }
            }
         }
      }
   }
?>

Bekommst du denn weder Stell noch Temp_IST Werte? Wenn das so ist, dann hast du wohl ein Problem mit der Reichweite oder die FTH’s sind nicht richtig angemeldet an der FHZ.

Vorsicht : der hat ne FHZ1000 !

Ich krieg von allen 4 FHT’s die Temp-Ist-Werte und von 3 FHT’s auch die Positionswerte, nur ein FHT sendet keine Positionswerte.

gruss
computerpap

Tausch doch mal Probeweise den der nicht geht gegen einen anderen.
Dann weisst du ob es evtl an schlechtem Empfang liegt oder der FHT selber schuld ist.

Dann bemühe mal den IPS-Debugger. Unter Instances eine FHT anklicken, der FHT-Code steht in SByte1 und SByte2. Wie gesagt, alle 2 Minuten sollte von jedem FHT da was reinkommen.

Kommt denn überhaupt nie ein Positionswert oder setzt es nach einer Weile aus ?

Also am Empfang sollte es nicht liegen, denn die Ist-Temp empfange ich ja auch.
Der FHT hat auch schon seinen Positionswerte gesendet, aber irgendwann hört er mit der Aktualisierung auf. Das komische ist, heute morgen habe ich keine aktuellen Soll-Temp mehr empfangen (bei Änderung dieser) und die Positionswerte kamen rein. Seit mittag empfange ich wieder Sollwerte bei Änderung, aber keine Positionswerte mehr.

gruss
computerpap

FHZ1000 ! bestimmt - derre sein buffer ist -naja- ‚mangelhaft‘ ?

Bin ganz frustriert geworden von der 1000-er. Wieso jetzt und daeben nicht, was macht er jetzt? Dan zerbreche ich mein kopf mit zu denken und bekomme es nicht mit… damals louter solche gedanke.

Tue dir selber den gefallen mit einer 1300.

Um auf deine ursprüngliche Frage zurück zu kommen, damit das Skript einen „Kick“ sendet wenn keine Stellwerte kommen, musst du Zeile 43 ändern:


// $TEMP_VARIABLE_NAME = preg_match( '#TemeratureVar.*"(.*)"#', $INSTANCE_DATA, $m) ? $m[1] : ''; 
$TEMP_VARIABLE_NAME = preg_match( '#PositionVar.*"(.*)"#', $INSTANCE_DATA, $m) ? $m[1] : '';


Danke pshome, ich werde das gleich mal ausprobieren.
Trotz alledem habe ich gerade eine 1300er bestellt.

gruss
computerpap

Nach Änderung und Ausführung des Scripts aktualisiert sich bei dem FHT der nicht richtig funktioniert die Variable Modus (target state).
Die Positionswerte werden nicht aktualisiert.

gruss
computerpap

Gerade eben wurde der Positionswert das erstemal seit heute mittag wieder aktualisiert. Für heute muß ich erst mal Schluss machen. Ich werde das ganze bis morgen beobachten, und euch mitteilen wie es gelaufen ist.
Danke erstmal.

gruss
computerpap

Ich denke das baut misst weil der FHZ buffer uberfordert sein wird jeder 1/4 std. (900s) einem (oder mehrere) befehle raussenden soll. Das gibt funk-salat.

Wie auch … bin gespannt.

na die queue wird nicht überlaufen, die wird ja jedesmal gecheckt, aber wenn das „kicken“ nichts hilft dann machts auch keinen Sinn das Skript laufen zu lassen.
computerpap hat ja wohl eh schon ne 1300er bestellt, wenns nicht doch am Signal liegt dann sollte es damit ja klappen.

Hallo
Also folgendes passiert, seitdem ich das Script von pshome mit der Änderung eingespielt habe:
Alle FHT’s schicken ihre Werte zwischen 2 min - 15 min an die FHZ.
Normalerweise werden ja die Sollwerte für Temp und Modus nur dann gesendet, wenn sie geändert wurden. Aber auch diese Werte werden jetzt regelmäßig mit an die FHZ gesendet (zumindest von 3 FHT’S). Vielleicht kann ja mal jemand das Script mit der Änderung in Zeile 43 bei sich einspielen und testen. Mich würde interessieren ob das bei anderen genau so ist und warum die Aktualisierung aller Werte jetzt erfolgt. Aber das überlasse ich den PHP-Profis von euch.

Gruss
computerpap

Einfach… das script setzt den modus -> dadurch sendet FHT seine soll-werte - weil es eine änderung gegeben hat. Siehe TFK (Tur Fenster Kontakt). Wen das Fenster geschlossen wird, sendet der FHT seinem ‚alten‘ soll-wert wieder um zu bestätigen das das Fenster geschlossen wird.