Ablaufplan (6.0+)

@Dr.Niels mir ist noch was aufgefallen:

Bei den Parametern der Aktion steht aber 68%:

Grüße,
Kai

@Brainpurge Du kannst Schalte auf Wert von Variablen gerne weiter verwenden. Der Fehler lag, wie schon entdeckt, im Aktionsskript. Wenn du da die Prüfung aufs WebFront rausnimmst sollte alles klappen. Aber so wie es klingt, hast du es ja schon gelöst.

@KaiS Das liegt am Runden der Prozentwerte. 68% ist bei der Variable scheinbar nicht darstellbar weil du beispielsweise das Intensity.255 Profil nutzt (68% wären 173,4 - das ist offensichtlich nicht als Integer darstellbar). Aber ich schaue mal, dass ich die beiden Darstellungen auf einen Nenner bringe. Eigentlich sollten beide ja mit dem „absoluten“ Wert (173 oder 174) arbeiten und ihn gleich darstellen.

1 „Gefällt mir“

Das scheint auch nur ein Anzeigeproblem zu sein, wie du es beschrieben hast. Es hatte einfach zu Verwirrung geführt. Danke für deine schnelle Antwort. :slight_smile:

Grüße,
Kai

So, ist eingebaut. Wobei die Darstellung tatsächlich nur beim initial eingegebenen Wert unterschiedlich war. Gibt man also beispielsweise 68 ein, tauchte danach in der Darstellung 67 auf und die 67 taucht ebenfalls auf, wenn man dann den Dialog wieder öffnet.

Komplett verhindern kann man den Unterschied aber nicht. Stell dir ein Integer-Profil von 0 bis 2 vor. Damit ist prozentual 0%, 50% und 100% möglich. Wenn man jetzt 70% eingibt, wird das auf 50% gerundet. Bei einem Profil wie Intensity.255 sollte das jetzt aber alles wie erwartet funktionieren.

Das ist logisch, vielen Dank @Dr.Niels.

Grüße,
Kai

Ein Beitrag wurde in ein existierendes Thema verschoben: [Modul] Homematic Extended (Systemvariablen, Programme, Powermeter, u.v.m.)

Ist es mit der aktuellen Version des Ablaufplans irgendwie möglich, eine Wartezeit zu setzen, die in einer Variable hinterlegt ist?

Mein Anwendungsfall: Ich möchte bei meinen Lampen über ein Dropdown in IPS einen Timer Wert setzen können, wie lange die Lampe brennen soll. Dieser Wert ist in einer Variable gespeichert.

Das sollte gehen, ich glaube die Aktion heißt „Warten (Variable)“ oder so ähnlich.

Grüße,
Kai

1 „Gefällt mir“

Ja, genau so klappt‘s :smiley:

Frohe Weihnachten erst einmal allen.

Suche jetzt mein Problem (optischer Natur) seid rund 2 Stunden im Forum und finde nichts dazu, wobei ich überzeugt bin genau zu diesem Thema was gelesen zu haben.

Es geht um den Ablaufplan mit Variablenvergleich.
Dort Vergleiche ich einen Feuchtewert (Integer) mit je einem einstellbaren Min und Max Wert (auch Integer), diese haben ein %-Profil. Beim Test ohne ein Profil blieb der angezeigte Wer identisch.

Habe gerade des Rätsels Lösung gefunden. Es wird die Variablen ID von der zweiten Variablen angezeigt mit den Einstellungen aus dem Profil der Variablen.

Hier mal ein Test mit kWh Variablen, sieht lustig aus.

Ich gehe mal davon aus, dass hier der Momentane Wert aus der ID angezeigt werden soll. :upside_down_face:

So, jetzt muss ich hier Schluss machen, sonst überschreite ich den WAF für Heilig Abend massiv. :cold_face:

Gruß Achim

Ist bei mir auch so … ich würde mir wünschen das die Fenster im Wintergarten schon vor 45751 Grad aufgehen :wink:

Ich ein vergleich von SetTemperature und der aktuellen Temperatur bei einem Homematic Sensor.

Ja, da werden die Bedingungen mit dynamischem Vergleich noch falsch formatiert. Fix ist unterwegs!

Ich möchte gern im Ablaufplan einer Stringvariable (Ziel) durch die Aktion „Verketten mit Wert einer anderen Variable“ mehrere String-Variablen in die neue Stringvariable zusammenfassen lassen. Soweit hat das auch funktioniert.
Als ich dann aber einen Platzhalter mit „Verketten“ und einem Wert dazwischen gesetzt habe, kam der Fehler „Fehler: string(1) „_“ int(12345)“.
Das erschließt sich mir nicht. Warum klappt das mit mehreren String-Variablen aber nicht mit einem Wert?

Hätte noch einen Funktionswunsch falls noch nicht möglich:

Ich würde gerne im Ablaufplan eine Variable auf den alten Wert zurück schalten.
Denke solch ein Szenario kommt relativ häufig vor und $_IPS[‚OLDVALUE‘] funktioniert ja nur in einem Script wenn die entsprechende Variable der Auslöser war…

Viele Grüße
Stephan

@Ubari Das schaue ich mir mal an, eigentlich sollte das funktionieren.

@da8ter Ist der alte Wert beim Start des Ablaufplans noch gesetzt? Dann kannst du diesen ja in einer Variablen zwischenspeichern und später wieder auf die Variable zurückschalten.

@Dr.Niels
der Wert ist wird vor dem Aufruf des Ablaufplans geändert. Diese Variable ist der Auslöser.
Klar könnte man das Zwischenspeichern. Einfacher währe natürlich eine Aktion mit der man den OLDVALUE verwenden könnte. Das macht doch gerade beim Ablaufplan super Sinn wo man ja öfter Sachen Schaltet bzw. Umschaltet und dann z.B. nach erreichen eines Wertes oder Zeit die Schaltaktion „Rückgängig“ machen möchte.

In meinem Fall geht es um einen PV Speicher.
Der soll, wenn der Strom am günstigsten ist, laden. Nach dem Laden bzw. erreichen des SOC von 100% soll er auf den vorherigen Modus zurückschalten. Da es aber mehrere Modi gibt müsste ich halt den alten Modus kennen.

Noch ein Beispiel:
Der Warmwasserboiler fährt alle X Tage das Legionellenprogramm (hoch heizen auf X Grad) Nach erreichen der Solltemperatur soll er auf den alten Heizmodus umschalten. Da gibts aber 3 Stück: PV, Ölheizung, Heizstab. Welcher war jetzt vor dem Legionellenprogramm aktiv?

Gruß Stephan

Ich bin überzeugt, dass es für solche Aktionen Anwendungsfälle gibt. Das kompliziertere Teil kommt allerdings dadurch zustande, dass diese Aktion nur bei ausgelösten Ereignissen Sinn ergibt. Auch die Aktion „Auf auslösenden Wert schalten“ wird aktuell nicht angeboten, da diese nicht allgemein nutzbar ist, sondern nur bei einem auslösenden Ereignis. Wir schauen mal, wie man das geschickt zusammenführen kann, aber leider ist das nicht mit einer einzelnen neuen Aktion gelöst.

@Ubari So, ich habe jetzt einmal versucht den Fehler nachzustellen, aber bei mir klappt alles einwandfrei. Kannst du deinen Ablaufplan hier mal posten? Dann kann ich mir den nochmal genauer anschauen und ggfs. auch besser nachstellen.

Ah, jetzt hab ichs. Da habe ich wohl vergessen ein bisschen Debug-Code wegzunehmen. Der Fehler ist rein kosmetisch, du kannst also problemlos damit weiterarbeiten. Fix ist natürlich dennoch unterwegs.