Ich muß zugeben ich arbeite nicht mit Ablaufplan, das geht, für mich, mit Scripten viel schneller.
Selbst der Logikplan ist für mich schneller zielführend.
Nach meiner Meinung kannst Du den Status des Lüfter nicht eintragen, das ist ein Status vom Zustand des Lüfters und kein „Aktor“.
Zeig doch mal was die Teilnehmer im Baum (aufgeklappt) sind.
Also den Bewegungsmelder und den Aktor für den Lüfter (Relais über Modbus, Shelly, SPs oder sonst was)
Hallo,
die Benennung „Status“ ist wohl etwas irreführend. Wenn ich jedoch den „Status“-Schalter betätige, geht der Lüfter an:
Die Frage ist, kann ich in einem Ablaufplan überhaupt zwei Zustände hin- und her schalten (Sind die zwei Zeilen gar kein „else if“ bzw. „switch case“?), benötige ich ggf. 2 Ablaufpläne? Das würde ich wegen der Übersichtlichkeit gerne vermeiden…
Anbei der Baum:
Prinzipiell sieht das alles richtig aus. Scheinbar klappt ja die Erkennung von PIR an nicht richtig. Vielleicht ist da das Profil nicht ganz korrekt? Kannst du das verwendete Profil hier mal posten? Und dann vergleiche das einmal mit dem realen Wert von PIR-Status bei PIR an. Den bekommst du, wenn du mit der Haus über dem Wert „PIR an“ hoverst. Der erscheint dann im Tooltip. Die Wertdarstellung rundet prinzipiell ab. Wenn das Gerät also theoretisch den Status auf 3 setzt und PIR an auf 2 steht, würde PIR an angezeigt werden, falls es keinen expliziten Wert für 3 gibt.
Falls es das ist und es sowieso nur PIR an und PIR aus gibt, dann könntest du versuchen die Bedingung „Status = PIR an“ durch „Status != PIR aus“ zu ersetzen.
Hier mal ein schneller Test von mir mit einem Ablaufplan und ein schnelles Script als Gegensatz. Auslöser vom Script und Plan ist der Bewegungsmelder.
Hier das Script und im Bild mein Ablaufplan:
// hier dein Bewegungsmelder, der ist Integer?
$Zustand = getvalue(12553);
If ($Zustand >= 1)
{
RequestAction(32195,1);
//hier Shelly_PowerOn mit Shelly Ident 32195
//ModBus_WriteCoil(50993,1)0
}
If ($Zustand == 0)
{
RequestAction(32195,0);
// hier Shelly_PowerOn mit Shelly Ident 32195
// ModBus_WriteCoil(50993,0);
}
Ich hoffe ich kann helfen
Statt den Modbusbefehl mußt Du den Requestaktion oder die Shelly On und Off Befehle nutzen
Edit: Ich schreib das nochmal genauer, gleich
Edit: Das Script müsste direkt bei Dir laufen, die Ident sollten stimmen.
Du duplizierst dieses Variablen Profil. Und änderst den Wert bei Pir an auf 255. Der Variable weißt du dann dieses neue Profil zu.
Dann sollte auch dein Ablaufplan funktionieren.
Michael