ich hab für meine Wärmepumpe eine Variable welche den Heizstab für die Warmwasserzubereitung schaltet. Das ganze ist eine INT Varaible und soll von einem Script geschalten werden. Die Konfiguration dazu sieht so aus:
Ich hab eine Dummy Bool Variable, welche als Trigger dient und den Wert der eigentlichen ModBus Variable schreiben soll. Man sieht auf dem Screenshot ganz gut dass sich um 14:42:15 die Dummy auf True gesetzt wurde. Ebenfalls sieht man dass das Ereigniss 47000 zur gleichen Zeit ausgeführt wurde. Der Wert selber, hat sich aber nicht geändert. Was mach Ich hier falsch?
EDIT: Wenn ich die Variable (21705) manuell schalte, funktioniert dass Problemlos. Lediglich bei einer Script/Ereigniss oder Ablaufplan passiert nichts.
Warum machst du das?
a) Deine Dummy Variable hat keine Aktion. Also kannst du sie nicht aus einem Frontend bedienen, sondern muss sie setzen (nicht schalten) damit die Ereignisse ausgeführt werden.
b) Die Ereignisse entkoppeln das setzen vom Dummy Wert von der echten Schaltaktion. Fehlermeldungen landen also nur im Log, und nicht bei dem welcher den Dummy setzt.
c) Die Variable 21705 hat doch eine Aktion und ein Profil. Also kannst du sie aus dem Frontend bedienen und aus jedem Script mit RequestAction, oder über die Aktion Schalte Variableansteuern. Wozu braucht es da eine Dummy Variable?
An uns für sich brauch Ich den Dummy nicht, das ist korrekt.
Ich bin gerade am Testen wie bzw. was ich machen muss zum schalten. Direkt schalten der Variable funktioniert auch nicht. Bzw. nur wenn Ich Manuell schalte aber nicht über ein Event.
Über die VISU umschalten funktioniert, ebenso über die Console den INT Wert anpassen funktioniert.
Was nicht funktioniert ist via Logikplan, Ablaufplan oder Ereigniss den Variablen Wert anzupassen.
Und das Geräte selbst (also die Hardware) schaltet auch?
Oder schaust du nur auf die Variable?
Gibt es in der Instanz oder im Splitter einen lese Intervall um den aktuellen Wert vom Gerät auch zu lesen?
Hast du der Variable 21705 eventuell eine eigene Aktion vergeben?
Michael
Hier muss ich etwas ausholen.
Ich habe aktuell zwei Variablen dafür. Eine die das Holding Register liest und eine die das Holding register schreibt. Die Modbus Instanz hat ein Intervall von 5 Sekunden. Ich habe die Trennung umgesetzt, da Ich vermute, dass sich bei gleicher Variable das schreiben meines Werts mit dem Lesen vom Modbus Gerät überlagert und deshalb keine Änderung zustande kommt. Die Idee war deshalb das zu trennen, so dass spätestens alle 5 Sekunden der Wert an ModBus zurück gegeben wird.
Sidenote: Ich migriere aktuell von MyHomeControll zu Symcon. In MyHomeControll ist es grundsätzlich so dass Read / Write Operationen zu ModBus getrennt voneinander sind. Es gibt also ein Read Varialbe und eine Write Variable. Ich vermute aus genau diesem Grund.
Der Haken „Benutze Standardaktion“ ist aktiviert falls du dass meinst.
Deine Vermutung ist falsch.
Der Sinn ist es ja, das eine Variable den Zustand der Hardware anzeigt (Quasi die Quelle der Wahrheit ) und das schalten geht immer erst direkt an die Hardware und erst durch das neue lesen aus der Hardware wird die Variable nachgezogen.
Du brauchst da nix selber zu trennen.
Michael
Und diese Variable hier:
Kannst du jetzt aus dem WebFront (wäre wohl am einfachsten zum testen) schalten?
Dann sollte auch eine Aktion in einem Ereignis mit Schalte auf Wert funktionieren.
Wobei mich ja oben noch gewundert hat, warum in der Aktion der Wert 1 stand, obwohl du doch ein Profil mit An/Aus hast…
Michael
Bei der Konfiguration entdecke ich keinen Fehler. Wenn du sagst, dass sie sich über die Visualisierung schalten lässt, scheint auch alles richtig zu sein.
Korrektur, es scheint mit dem seten des Hakens zu funktionieren.
Es braucht offenbar ein paar Sekunden bis auf dem ModBus Gerät die Änderung auch ankommen.