ModBus Variable wird nicht geschrieben

Hi,

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.

Dann musst du schon mal das Ereignis zeigen.

Aber:

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?

Michael

Hier ist das Ereignis das ich nutze.

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.

Was meinst du mit Direkt oder manuell?

Michael

Ü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

Das tut sie, ja.

Nein ich schaue auf das Gerätselbst.

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.

Hier mal ein aktuelle Screenshot aus dem Logikplan, der zeigt dass die Mapping Tabelle den Wert 1 ausgibt, die Variable bleibt aber bei 0.

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

Okay, das löst aber mein Problem trotzdem nicht :slight_smile:
Auch wenn beides in einer Variable erfolgt wird die Änderung nicht geschrieben.

Zeig mal die Konfiguration bitte.

@DerStandart bitte sehr.
Das ist die Konfig der Variable im ModBus (Ich hab Lesen/Schreiben jetzt in eine Variable eingefügt):

Das hier das ganze Gerät:

Und das Gateway selbst:

Und diese Variable hier:
image
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

Über das Webfront kann ich die Variable schalten.
Über mein Logikplan nach wie vor nicht :frowning:

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.

Bei Logikplänen bin ich raus.

Kannst du mir im Logikplan kurz die Konfiguration vom letzten Block zeigen?

Ist der Haken bei „Benutze Aktionsskript“ drin?

paresy

Der ist aktuell nicht drin:
image

Hab ihn zum Test aktiviert, hat keinen Unterschied gemacht.

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.

Thema ist damit gelöst, danke für den Support.

1 „Gefällt mir“