ON_TIME schaltet nicht richtig

Hallo,

ich habe mir ein Test Skript erstellt mit verschiedenen ON_TIME Zeiten diese schalten auch alle AN nur immer nach 5 min aus egal was ich eintrage. Ich habe keine Idee mehr wo ich suchen soll! Hat jemand ein Tipp? in den Datenpunkten von Homematic habe ich nachgesehen der Aktor hat den Datenpunkt.

<?
switch($_IPS['SENDER'])
{ 
        case 0:       
    HM_WriteValueFloat(26197, "ON_TIME", 60);
    HM_WriteValueBoolean(26197, "STATE", true);

        case 1:  
    HM_WriteValueFloat(26197, "ON_TIME", 120);
    HM_WriteValueBoolean(26197, "STATE", true);

        case 2: 
    HM_WriteValueFloat(26197, "ON_TIME", 180);
    HM_WriteValueBoolean(26197, "STATE", true);

        case 3: 
    HM_WriteValueFloat(26197, "ON_TIME", 240);
    HM_WriteValueBoolean(26197, "STATE", true);

        case 4: 
    HM_WriteValueFloat(26197, "ON_TIME", 300);    
    HM_WriteValueBoolean(26197, "STATE", true);
}

    if ( $_IPS['SENDER'] == 'WebFront') 
    {         
        SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);     
    
    }   
?>

Gruß Michael

Ich Denke da stimmt was mit dem Skript nicht wenn ich bis auf eine Auswahl alles lösche geht es.

So geht´s jetzt ist das so OK oder kann man das Skript noch verbessern. Es soll eine Zeitauswahl für meine Bewässerungskreise geben.

<?
switch($_IPS['VALUE'])
{ 
        case 0:       
    HM_WriteValueFloat(26197, "ON_TIME", 5);
    HM_WriteValueBoolean(26197, "STATE", true);
    break;
        case 1:  
    HM_WriteValueFloat(26197, "ON_TIME", 10);
    HM_WriteValueBoolean(26197, "STATE", true);
    break;
        case 2: 
    HM_WriteValueFloat(26197, "ON_TIME", 15);
    HM_WriteValueBoolean(26197, "STATE", true);
    break;
        case 3: 
    HM_WriteValueFloat(26197, "ON_TIME", 20);
    HM_WriteValueBoolean(26197, "STATE", true);
    break;
        case 4: 
    HM_WriteValueFloat(26197, "ON_TIME", 25);    
    HM_WriteValueBoolean(26197, "STATE", true);
    break;
}

    if ( $_IPS['SENDER'] == 'WebFront') 
    {         
        SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);     
    
    }   
?>

Sieht schon gut aus. Alternativ könntest du es auch kürzer formulieren:

<?php

if ( $_IPS['SENDER'] == 'WebFront') 
{         
    HM_WriteValueFloat(26197, "ON_TIME", 5 * ($_IPS['VALUE'] + 1);
    HM_WriteValueBoolean(26197, "STATE", true);
    SetValue($_IPS['VARIABLE'], $_IPS['VALUE']);     
}

Aber - bei aller Knappheit - das wichtigste ist, dass du selber deine Zeilen nach einer Weile noch verstehst :slight_smile:

Hallo bumass,

dein Code versteh ich nicht. Wie benutze ich den? Ich versuche auch schon wieder einige Stunden wie der Schalter im Webfront nach Beendigung von ON_Time auf AUS springt und nicht bei der Auswahl die ich angeklickt habe stehen bleibt.

Gruß Michael

Gar nicht. Wie sollte er auch?
War in deinem ersten Script auch nicht so und stand auch nirgendwo das es so sein soll.
Wenn du das haben willst, musst du ein Ereignis benutzen welches wenn die STATE Variable vom Aktor auf false/aus springt deine Zeitwahlvariable auf 0 setzt.
Michael

Das ist mir erst später beim Benutzen aufgefallen dass es besser ist wenn es wieder auf AUS springt.