Statusanzeige Display 4x20

Moderator: Co-Administratoren

Elton9891
Beiträge: 38
Registriert: 15.09.2015, 21:00

Re: Statusanzeige Display 4x20

Beitrag von Elton9891 » 27.08.2022, 13:22

MichaelN hat geschrieben:
27.08.2022, 13:17
Du setzt liest die Variable verzögert... Macht IMHO wenig Sinn.
Da passiert leider nichts mehr.
Wenn ich das Skript so erweitere.

Code: Alles auswählen


! Beschriftung Zeile 1 - Brunnenstand
string url = "http://192.168.66.103:88/control?cmd=LCD,1,1,Brunnenstand:".State(1, 1000, false);
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null "#url);

Benutzeravatar
Baxxy
Beiträge: 10789
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 604 Mal
Danksagung erhalten: 2208 Mal

Re: Statusanzeige Display 4x20

Beitrag von Baxxy » 27.08.2022, 13:24

Es ist ein "State-Delay", wirkt also nur dort wo Befehle per .State() übergeben werden.

Z.B.

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null "#url,500);

Elton9891
Beiträge: 38
Registriert: 15.09.2015, 21:00

Re: Statusanzeige Display 4x20

Beitrag von Elton9891 » 27.08.2022, 13:31

Baxxy hat geschrieben:
27.08.2022, 13:24
Es ist ein "State-Delay", wirkt also nur dort wo Befehle per .State() übergeben werden.

Z.B.

Code: Alles auswählen

dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null "#url,500);
Alles klar, jetzt hab ich es verstanden. Ich wollte ja die Ausgabe verzögern und nicht die Abfrage der Werte. Jetzt klappt es. Vielen Vielen Dank.

Tyfys
Beiträge: 544
Registriert: 17.04.2021, 17:12
System: CCU
Hat sich bedankt: 27 Mal
Danksagung erhalten: 123 Mal

Re: Statusanzeige Display 4x20

Beitrag von Tyfys » 27.08.2022, 13:35

Elton9891 hat geschrieben:
27.08.2022, 13:22
Da passiert leider nichts mehr.
Wenn ich das Skript so erweitere.

Code: Alles auswählen


! Beschriftung Zeile 1 - Brunnenstand
string url = "http://192.168.66.103:88/control?cmd=LCD,1,1,Brunnenstand:".State(1, 1000, false);
dom.GetObject("CUxD.CUX2801001:1.CMD_EXEC").State("wget -q -O /dev/null "#url);
Da ist die Syntax auch nicht korrekt: nach Stringbegrenzer " folgen noch Zeichen vor dem ;

Daher bricht dann das ganze Skript ab.
Gruß
Harry

Benutzeravatar
Baxxy
Beiträge: 10789
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 604 Mal
Danksagung erhalten: 2208 Mal

Re: Statusanzeige Display 4x20

Beitrag von Baxxy » 27.08.2022, 13:56

Aktuell semmelst du 9 Kommandos an das Display raus, kein Wunder das da was verschluckt wird.
Mit dem State-Delay lässt sich das entzerren.

Besser wäre es aber schon im Script zu entscheiden ob (der Wert / die Zeile) überhaupt neu geschrieben werden muss, z.B. über den Vergleich mit LastValue().
Ich mache z.B. täglich nachts das "Display-Clear" und beschrifte die statischen Bezeichner. Die eigentlichen Werte werden "bei Aktualisierung" im Script auf Änderung geprüft und nur dann ans Display geschickt.

Elton9891
Beiträge: 38
Registriert: 15.09.2015, 21:00

Re: Statusanzeige Display 4x20

Beitrag von Elton9891 » 27.08.2022, 14:30

Ja, das stimmt. 9 Befehle sind wahrscheinlich schon zu viel für das ganze, aber da ich nicht soviel Ahnung von den Skripten habe, habe ich das ganze anhand verschiedener Anleitungen so aufgebaut.
Jetzt läuft es zumindest erstmal vernüftig.

Optimierung des Skriptes kann ich nicht durchführen, es sei denn jemand erklärt es mir ausführlich damit ich das Umsetzten kann.
Das nicht immer alle Datenpunkte ans Display übermittelt werden müssten wäre schon sinnvoll, genauso wie das man den Fixtext nicht immer mit übertragen müsste, aber für mich zu kompliziert.

Wenn ich mich selber an die Optimierung mit dem ersetzen der Value durch LastValue traue, bekomme ich andere Werte im Display angezeigt.
Diese werden mir aber an der Grafischen Oberfläche der CCU nicht angezeigt. Normalerweise sollten die Werte ja gleich bleiben wenn sich da nichts dran geändert hat.

Antworten

Zurück zu „Sonstige Steuerungen und Visualisierungen“