Seite 1 von 3

Programm wird nicht ausgeführt, warum?

Verfasst: 14.03.2019, 21:52
von lines
Hallo alle.

Nach dem Studium diverser Anleitung im Netz komme ich nicht weiter und wende mich daher hoffnungsvoll an die Gemeinschaft.

Bei uns soll ein vergleichbar simples Programm laufen:
Wenn eine Messsteckdose registriert, dass das Trockner läuft, dann wird eine Systemvariable entsprechend gesetzt.
Ist der Trockner fertig, dann wird sie wieder entsprechend geändert.
Dadurch soll eine MP3 Wiedergabe ("Der Trockner ist fertig") ausgelöst werden.

So sieht die Variable aus:
Screenshot_20190314_213343.png
Dieses Programm übernimmt das Setzen der Logikwerte:
(Im Aktor sind die entsprechenden Grenzen gesetzt)
Screenshot_20190314_213401.png
Das ganze soll dann über ein MP3-File am Gong ausgegeben werden:
Screenshot_20190314_213418.png
Die Systemvariable ändert sich erfolgreich nach dem Stromverbrauch! Das funktioniert also.

Wenn ich testweise eine Zeitschaltung in das Programm für die Gongausgabe einbaue (Führe das Programm um 13:00 Uhr aus), dann werden die Sounds um 13:00 abgespielt. D.h., dass der Gong die Files erfolgreich hörbar abspielen kann.

Warum wird das Gong-Programm NICHT bei einer Änderung der Systemvariable ausgeführt?
Wenn der Trockner fertig ist, kommt keine MP3-Durchsage obwohl die Variable erfolgreich geändert wird!

Wo ist der Denkfehler?

Danke für Tipps

lines

Re: Programm wird nicht ausgeführt, warum?

Verfasst: 15.03.2019, 00:35
von gzi
Hab jetzt nix Böses dran gefunden. Würde mal die CCU rebooten und dann Folgendes tun um das Problem einzugrenzen:
0. Die checkboxen zum retriggern ankreuzen
1. Die Sysvar via „Skript testen“ mal auf 0 und 1 setzen
2. Sysvar und Gerät auf protokolliert setzen , 1. wiederholen und dann das Protokoll checken
3. Das erste Pgm auf zwei aufteilen
4. Sysvar und Pgm löschen und neu anlegen
5. Firmware upgraden

Geht aber alles mit steigender Zahl eher in Richtung Kaffeesud lesen...

gzi

Re: Programm wird nicht ausgeführt, warum?

Verfasst: 15.03.2019, 01:47
von Roland M.
Hallo!

Auch ich sehe keine besonderen Fehler, ich würde das Programm einfach einmal löschen und neu erstellen. Gerade wenn da oft editiert wurde, kommt es immer wieder vor, dass Programme dann aus unerfindlichen Gründen nicht mehr funktionieren.

Beim Neuanlegen würde ich es aber gleich bereinigen, bei einer "entweder/oder"-Abfrage muss das Gegenteil nicht mehr erneut in einem SONST-WENN geprüft werden. Genauso ist die Abfrage auf Entscheidungswert > 1 nicht recht sinnvoll, da der Entscheidungswert nur 0 oder 200 (?) sein kann - das ist aber nur ein kosmetischer Mangel... ;)

Also einfach:
WENN Funksteckdose bei Entscheidungswert > 0
DANN Trockner läuft
SONST Trockner fertig


Roland

Re: Programm wird nicht ausgeführt, warum?

Verfasst: 15.03.2019, 10:40
von lines
Danke Roland und gzi für die Tipps.

Ich habe die CCU2 neu gestartet.
Die Checkboxen sind auf retriggern gesetzt (und waren es auch).
Das Programm für den Trockner (WaschMasch analog, gleiche Problem) habe ich neu gemacht.

Rolands Anmerkung habe ich eingebaut. Soll heißen:
Wenn Entscheidungswert größer 1
dann läuft
sonst fertig.
(Ich finde die HM-Programm"logik" nur immer so unübersichtlich. Aber das ist ein anderes Thema.)

Mit einem kleinen Script habe ich die Variable manuell gesetzt und wieder auf fertig gesetzt. (im Webinterface unter Systemvariblen habe ich die Änderungen auch beobachten können!)
Nichts. Keine Soundausgabe! :-(

Beim Anlegen des Soundausgabeprogramms wurde jedoch das MP3-File abgespielt. => Das Soundausgabeprogramm funktioniert prinzipiell.

Thema Logfiles.
In den Einstellungen=> Systemsteuerung=> Zentralenwartung habe ich beide dortigen mir zur Verfügung stehenden Einstellmöglichkeiten auf "Alles loggen" gesetzt und auf "Einstellungen übernehmen" geklickt. Danach die Variable gesetzt und wieder auf "aus" gestellt.
Kein Sound.
An dieser Stelle möchte ich nicht ausschließen, dass ich ein "Logfile-Bedienungsfehler" gemacht habe. Das Logfile unterscheidet sich nämlich nicht von einem, das nur Fehler loggt!!!

Folgende Meldungen:

Code: Alles auswählen

Mar 15 10:20:14 de.eq3.lib.measurement.MeasurementService INFO  [Timer-0] Drop unhandled values (timeout) for diagram 1. Original time: 1552641298339 
Mar 15 10:20:24 de.eq3.cbcs.server.core.otau.DeviceBackgroundUpdateSubsystem INFO  [vert.x-eventloop-thread-0] SYSTEM: 0 Accesspoints in Queue 
Mar 15 10:20:24 de.eq3.cbcs.server.core.otau.DeviceBackgroundUpdateSubsystem INFO  [vert.x-eventloop-thread-0] SYSTEM: Permanent-/Burstlistener Handler utilization: 0/50 used 
Mar 15 10:20:24 de.eq3.cbcs.server.core.otau.DeviceBackgroundUpdateSubsystem INFO  [vert.x-eventloop-thread-0] SYSTEM: Eventlistener Handler utilization: 0/50 used 
Mar 15 10:20:56 de.eq3.lib.measurement.MeasurementService INFO  [Timer-0] Drop unhandled values (timeout) for diagram 1. Original time: 1552641344358 
letzte Zeile kommt oft vor!

Ich habe keine Firmware gefunden, die hier aktualisierbar wäre. Ausnahme: Das letzte Sicherheitsupdate der CCU2, unsere ist nur im LAN.
Grumpf!

Re: Programm wird nicht ausgeführt, warum?

Verfasst: 15.03.2019, 11:40
von manfredh
Ein immer wieder auftretendes Problem:

Wenn man nachträglich an einer Systemvariable rumfummelt (z.B. Namen oder Wertebezeichung ändert), gehen regelmäßig Programme nicht mehr, die diese verwenden.

Da hilft dann oft nur, die Zeile im Programm zu löschen und neu einzufügen.

Re: Programm wird nicht ausgeführt, warum?

Verfasst: 15.03.2019, 13:23
von lines
Wenn man nachträglich an einer Systemvariable rumfummelt (z.B. Namen oder Wertebezeichung ändert), gehen regelmäßig Programme nicht mehr, die diese verwenden.

Da hilft dann oft nur, die Zeile im Programm zu löschen und neu einzufügen.
Habe ich gemacht.

Leider ist auch dieser Strohhalm nicht tragfähig.
(Die Zeilen mit dem Abfragen der Systemvariable in den Programmen wurde gelöscht und wieder eingefügt.)

Da ja eine "Zeitschaltung" den Gong auslöst, nicht aber die Änderung der Systemvariable, diese aber korrekt geändert wird, muss es ja an dem dem auslösenden Teil im "Soundausgabeprogramm" liegen.
Deine Idee hätte von daher so prima gepasst...
Hätte. :idea:

Re: Programm wird nicht ausgeführt, warum?

Verfasst: 15.03.2019, 13:29
von Sammy
Ich vermute, die Variable wird per Skript geändert und dabei der falsche Befehl (ohne Generierung eines Events) verwendet.
Richtig müsste .state sein. Bin aber kein Script Experte.

Re: Programm wird nicht ausgeführt, warum?

Verfasst: 15.03.2019, 13:36
von Black
schreib einmal unter script testen im editor bitte

dom.GetObject (ID_SYSTEM_VARIABLES).Get ("Trockner").State (false);

und danach

dom.GetObject (ID_SYSTEM_VARIABLES).Get ("Trockner").State (true);


bimmelt das danach oder imme rnoch nicht ?

Re: Programm wird nicht ausgeführt, warum?

Verfasst: 15.03.2019, 13:52
von lines
Black hat geschrieben:
15.03.2019, 13:36
schreib einmal unter script testen im editor bitte

dom.GetObject (ID_SYSTEM_VARIABLES).Get ("Trockner").State (false);
bimmelt das danach oder imme rnoch nicht ?
Ich habe nur die erste Zeile eingegeben und..... Juhu " Achtung der Trockner ist fertig" ertönte.

Was heißt das aber jetzt?


@Sammy
Die Variable wird in einem kleinen Programm geändert (s. Screenshot im ersten Post):
Wenn der Strom des Messaktors unter x mA fällt,
dann setze nach 2 Minuten die Systemvariable entsprechend.

Wie generiere ich denn dann dies Event?

Danke aber schon mal für diesen Tipp, was auch immer der gemacht hat, er hat weiter geholfen.

Re: Programm wird nicht ausgeführt, warum?

Verfasst: 15.03.2019, 14:01
von Black
das heisst, dass die systemvariable dein trocknerprogramm triggert.