Programm wird nicht ausgeführt, warum?

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

lines
Beiträge: 37
Registriert: 07.07.2013, 09:55

Programm wird nicht ausgeführt, warum?

Beitrag von lines » 14.03.2019, 21:52

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

gzi
Beiträge: 450
Registriert: 12.01.2015, 23:37
System: CCU
Hat sich bedankt: 15 Mal
Danksagung erhalten: 14 Mal

Re: Programm wird nicht ausgeführt, warum?

Beitrag von gzi » 15.03.2019, 00:35

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
Lichtsteuerung, Heizungssteuerung, Überwachung (Feuer, Wasser, Einbruch, Stromausfall, Heizungsausfall, Wetter, Kamera), Alarmierung (optisch, akustisch, mail, SMS, voice call) - CCU, diverse HM- und HMIP Aktoren und Sensoren, Rauchmeldeanlage, UPS, GSM-Alarmwähler, Zugriff aus dem Internet via HTTPS und htdigest authentication, kein Datenkraken-Interface (Google, Amazon, China-Cloud, BND, NSA...) - HomeMatic Sicherheits-Kompendium - Checkliste für Auswahl von IP Kameras - Vergleich aktueller HomeMatic Zentralen - und alle Antworten für das gesamte Universum und den Rest

Benutzeravatar
Roland M.
Beiträge: 9737
Registriert: 08.12.2012, 15:53
System: CCU
Wohnort: Graz, Österreich
Hat sich bedankt: 251 Mal
Danksagung erhalten: 1357 Mal

Re: Programm wird nicht ausgeführt, warum?

Beitrag von Roland M. » 15.03.2019, 01:47

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
Zur leichteren Hilfestellung bitte unbedingt beachten:
  • Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
  • Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
  • Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
  • Fehlermeldungen genau abschreiben, besser noch...
  • Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!

-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...

lines
Beiträge: 37
Registriert: 07.07.2013, 09:55

Re: Programm wird nicht ausgeführt, warum?

Beitrag von lines » 15.03.2019, 10:40

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!

manfredh
Beiträge: 4155
Registriert: 09.09.2012, 10:41
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 78 Mal
Danksagung erhalten: 301 Mal

Re: Programm wird nicht ausgeführt, warum?

Beitrag von manfredh » 15.03.2019, 11:40

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.
Es gibt 10 Arten von Menschen: solche die Binärcode verstehen und solche, die ihn nicht verstehen.

lines
Beiträge: 37
Registriert: 07.07.2013, 09:55

Re: Programm wird nicht ausgeführt, warum?

Beitrag von lines » 15.03.2019, 13:23

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:

Benutzeravatar
Sammy
Beiträge: 9172
Registriert: 09.09.2008, 20:47
Hat sich bedankt: 15 Mal
Danksagung erhalten: 174 Mal

Re: Programm wird nicht ausgeführt, warum?

Beitrag von Sammy » 15.03.2019, 13:29

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.
Links: CCU-Logik, Tipps für Anfänger, WebUI-Doku, Expertenparameter, virtuelle Aktorkanäle
Inventur vom 22.01.14: 516 Kanäle in 165 Geräten, 132 Programme, 270 Direkte Verknüpfungen
Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

Benutzeravatar
Black
Beiträge: 5463
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 418 Mal
Danksagung erhalten: 1069 Mal
Kontaktdaten:

Re: Programm wird nicht ausgeführt, warum?

Beitrag von Black » 15.03.2019, 13:36

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 ?
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

lines
Beiträge: 37
Registriert: 07.07.2013, 09:55

Re: Programm wird nicht ausgeführt, warum?

Beitrag von lines » 15.03.2019, 13:52

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.

Benutzeravatar
Black
Beiträge: 5463
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 418 Mal
Danksagung erhalten: 1069 Mal
Kontaktdaten:

Re: Programm wird nicht ausgeführt, warum?

Beitrag von Black » 15.03.2019, 14:01

das heisst, dass die systemvariable dein trocknerprogramm triggert.
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

Antworten

Zurück zu „HomeMatic allgemein“