Absturz des Webinterfaces

Homematic-, TCL- und Shell-Script, Toolchain, C, etc.

Moderator: Co-Administratoren

HenningK
Beiträge: 210
Registriert: 22.09.2012, 20:56
Hat sich bedankt: 5 Mal
Danksagung erhalten: 11 Mal

Absturz des Webinterfaces

Beitrag von HenningK » 26.09.2015, 20:50

Hallo, ich teste ein Skript. Es läuft ohne Fehler durch. Beim speichern kommt die Fehlermeldung:
Fehler: {"name": "JSONRPCError", "code": 400, "message": "access denied (\"ADMIN\" needed )"}

Anschließend erscheint eine Messagbox (nach x minuten)
Eine Komponente der HomeMatic Zentrale reagiert nicht mehr. Hierfür kann es eine Reihe von Ursachen geben:
es besteht keine Netzwerk-Verbindung
die Stromversorung der HomeMatic Zentrale wurde unterbrochen
mindestens eine Komponente der HomeMatic Zentrale ist abgestürzt
Überprüfen Sie die Netzwerk-Verbindung und die Stromversorgung der HomeMatic Zentrale. Starten Sie ggf. die HomeMatic Zentrale neu

Danach hilft nur noch Stromabschalten und neu booten.

Hat jemand eine Idee, woran das liegen könnte. Das Skript ist mit Notepad++ UTF8 Encoding geschrieben.
Passiert mir mit sehr vielen unterschiedlichen Skripten.

Benutzeravatar
Zamanis
Beiträge: 75
Registriert: 09.05.2013, 10:47
Hat sich bedankt: 1 Mal

Re: Absturz des Webinterfaces

Beitrag von Zamanis » 28.09.2015, 15:08

Hallo Henning,
geschieht Dir das mit ALLEN Scripten oder nur mit einigen ?
Hast Du mal ein Beispiel ?
Wie bist Du auf der CCU angemeldet ?
Welchen Browser nimmst Du ?
Hast Du die üblichen Verdächtigen schon ausgeschlossen (Cache des Browsers leeren) ?
Viele Grüße
Andreas

HenningK
Beiträge: 210
Registriert: 22.09.2012, 20:56
Hat sich bedankt: 5 Mal
Danksagung erhalten: 11 Mal

Re: Absturz des Webinterfaces

Beitrag von HenningK » 01.10.2015, 12:17

Hallo Andreas,

... mit vielen Skripten. Vermutung für Ursache: Viele oder spezielle syntaxfehler im Programm.
... siehe zipfile.
... admin startseite wird angezeigt
... Google Chrome, neueste Version aber ich habe auch schon IE Windows 10 getestet- selber effekt.
... habe gerade folgende Prozedur durchgeführt.
1. Google: Clear browsing history
2. Restart Google Browser
3. Homematics: Skript Testen
4. Cut & Paste des Programmes aus dem Anhang
5. Testen 1 mal keine Reakteion
6. Testen nochmal, dann die Fehlermeldung JSON im Ergebnis Fenster
7. Dann die Fehlermeldung mit Komponenten nicht verfügbard

Und jetzt geht gar nichts mehr. Stecker ziehen, rebooten. Dann funktionieren die Programme wieder.
Häufig ist aber die Entwicklungsumgebung durcheinander und ich erhalte schwachsinnige Fehlermeldungen.
Dann installiere ich die aktuelle homematic version neu und es läuft wieder ... bis zum nächsten Absturz.

Grüße, Henning
Dateianhänge
homematic.zip
(38.19 KiB) 122-mal heruntergeladen

Benutzeravatar
Zamanis
Beiträge: 75
Registriert: 09.05.2013, 10:47
Hat sich bedankt: 1 Mal

Re: Absturz des Webinterfaces

Beitrag von Zamanis » 02.10.2015, 11:04

Hallo Henning,
das Problem scheint wirklich die Ausführung der Scripte zu sein. Zumindest deutet es darauf hin, daß es ein Bug im Skript ist, da bei der ersten Ausführung nichts passiert.
Dann stürzt der Rega ab (der meines Erachtens die Script-engine enthält) und schließlich ist er nicht mehr erreichbar.
Somit verhält sich die CCU zumindest logisch...
Mir sind nur Kleinigkeiten in Deinem Script aufgefallen:
1. Lösche mal bitte ALLE Kommentare (damit gabs in der Vergangenheit immer Probleme)
2. Ein Semikolon nach einem if/else Block mit geschweiften Klammern ist nicht notwendig und beinhaltet somit nur
eine leere Anweisung.
3. Verwende vorsichtshalber mal keine Variablen mit einer Zahl darin im Namen.
4. Gib mal im Script beim Testen schrittweise etwas aus (mit WriteLn), dann weisst Du ob überhaupt etwas ausgeführt wird.
5. Du verwendest sehr viele Variablen. Die CCU hat nur begrenzten Cache für Variablen freigegeben und produziert unvorhergesehene Ereignisse bei zu vieler Verwendung dieser. Versuche mal lieber, die Objekte direkt mit der Funktion zu verknüpfen
also statt

Code: Alles auswählen

var oName;
oName = dom.GetObject("Var"); 
oName.Variable(1);
----> besser:

Code: Alles auswählen

 dom.GetObject("Var").Variable(1); 
Ob das hilft weiss ich natürlich nicht, aber es ist halt auch ein sehr kryptogener Fehler.
VG
Andreas

Benutzeravatar
Zamanis
Beiträge: 75
Registriert: 09.05.2013, 10:47
Hat sich bedankt: 1 Mal

Re: Absturz des Webinterfaces

Beitrag von Zamanis » 11.10.2015, 17:10

Problem schon gelöst ?

HenningK
Beiträge: 210
Registriert: 22.09.2012, 20:56
Hat sich bedankt: 5 Mal
Danksagung erhalten: 11 Mal

Re: Absturz des Webinterfaces

Beitrag von HenningK » 11.10.2015, 19:04

Hallo und Danke für die Tips. Ich habe jetzt meine Skripte überarbeitet und die obigen Vorschläge berücksichtig (allerding Kommentare habe ich nur reduziert, nicht ganz eleminiert).
Ergebnis: Problem teilweise umgangen aber leider nicht gelöst. Weiterhin viele Abstürze, einmal mit werksreset und Backup einspielen.

Mit der Methode der "schrittweisen" Übertragung des Skriptes an die CCU (d. h. erst nur wenig Zeilen kopieren, dann prüfen und Fehler beheben dann die nächsten Zeilen usw) komme ich am Ende immer zu einem fehlerfreien, ausführbaren Skript. Mühsam ernährt sich das Eichörnchen.

Die Ursache liegt meiner Ansicht nach in dem Compiler/Interpreter - bei zu vielen oder irgendwelchen speziellen Fehler verabschiedet sich das System.

Ein krasses Beispiel für die Schwächen im Compiler/Interpreter ist das folgende Skript (ausgeführt im Testfenster liefert es kein Ergebnis - ohne 2 Zeile gehts) - und nicht mal ne Fehlermeldung.
! Irgendein Kommentar
!
WriteLine("Hallo Welt!");

Benutzeravatar
Zamanis
Beiträge: 75
Registriert: 09.05.2013, 10:47
Hat sich bedankt: 1 Mal

Re: Absturz des Webinterfaces

Beitrag von Zamanis » 12.10.2015, 22:17

Jepp, dass ist ein bekanntes Problem. Deshalb solltest Du keine Kommentare am Ende eine Codezeile machen und nach dem Kommentar eine Leerzeile lassen, da die Zeile nach dem Kommentar gelegentlich einfach nicht ausgeführt wird. Deshalb kann es zu krassen Fehlern in Scripten kommen. :roll:
Wenn Du das noch berücksichtigst wird es vielleicht besser.
VG

Bernd77
Beiträge: 5
Registriert: 10.11.2015, 21:02
System: CCU
Hat sich bedankt: 1 Mal

Re: Absturz des Webinterfaces

Beitrag von Bernd77 » 07.01.2016, 18:55

Hallo Henning,

ich habe exakt das gleiche Problem und bekomme langsam die Krise.
Es ist mir absolut unverständlich, warum die CCU2 bei Mini-Programmen bereits die Löffel abgibt. Dies darf einfach nicht passieren, auch dann nicht, wenn ein Programm noch Fehler enthält. Was ist denn das für eine Programmierumgebung?

Die Tipps von Zamanis sind zwar gut gemeint, aber helfen nicht wirklich. Und Kommentare weglassen, kann doch keine Lösung sein. Was war noch mal der Sinn von Kommentaren?

Gibt es irgendwo eine stabile Entwicklungsumgebung, mit der ich Programme für die CCU2 entwickeln kann?

Viele Grüße
Bernd

ubecker
Beiträge: 569
Registriert: 31.01.2014, 22:53
Wohnort: Duisburg

Re: Absturz des Webinterfaces

Beitrag von ubecker » 07.01.2016, 19:40

Bernd77 hat geschrieben: Gibt es irgendwo eine stabile Entwicklungsumgebung, mit der ich Programme für die CCU2 entwickeln kann?

Viele Grüße
Bernd
HPCL
gruß Udo

HenningK
Beiträge: 210
Registriert: 22.09.2012, 20:56
Hat sich bedankt: 5 Mal
Danksagung erhalten: 11 Mal

Re: Absturz des Webinterfaces

Beitrag von HenningK » 08.01.2016, 09:19

Hallo, ich nutze Notepad++ mit
a) der Homematic Spracherweiterung für simples Syntax Highlighting
b) ein Notepad++ Macro, das mir alle Kommentare entfernt.

Der Ablauf ist dann wie folgt:
a) Editieren im Notepad++, keine Inline Kommentare, Kommentarzeile mit ! an erster Stelle, keine Leerzeilen
b) Ausführen des Macros, was ein neues Fenster im Notepad++ erzeugt mit Skript ohne jegliche Leerzeile)
c) Copy and Paste in Homematic System
... und wenn nicht zuviele Fehler vorhanden sind, läuft es.

Damit ist es erträglich. Die Kommentare scheinen ein großes Problem zu sein (sehr verwunderlich).

Das Macro ist bei NotePad++ in der Portable Version in der Datei E:\PortableApps\Notepad++Portable\Data\Config\shortcuts.xml. Es geht durch das File und eleminiert alle Zeilen mit ! in der ersten Spalte.

Code: Alles auswählen

<?xml version="1.0"?>
-<NotepadPlus>
<InternalCommands/>
-<Macros>
-<Macro Key="112" Shift="no" Alt="no" Ctrl="yes" name="RemoveExclamation">
<Action sParam="" lParam="0" wParam="0" message="2013" type="0"/>
<Action sParam="" lParam="0" wParam="0" message="2178" type="0"/>
<Action sParam="" lParam="0" wParam="0" message="2025" type="0"/>
<Action sParam="" lParam="0" wParam="0" message="2422" type="0"/>
<Action sParam="" lParam="0" wParam="0" message="2325" type="0"/>
<Action sParam="" lParam="0" wParam="41001" message="0" type="2"/>
<Action sParam="" lParam="0" wParam="0" message="2179" type="0"/>
<Action sParam="" lParam="0" wParam="0" message="2316" type="0"/>
<Action sParam="" lParam="0" wParam="0" message="1700" type="3"/>
<Action sParam="^[!].*\r\n" lParam="0" wParam="0" message="1601" type="3"/>
<Action sParam="" lParam="2" wParam="0" message="1625" type="3"/>
<Action sParam="" lParam="0" wParam="0" message="1602" type="3"/>
<Action sParam="" lParam="768" wParam="0" message="1702" type="3"/>
<Action sParam="" lParam="1609" wParam="0" message="1701" type="3"/>
<Action sParam="" lParam="0" wParam="0" message="2013" type="0"/>
<Action sParam="" lParam="0" wParam="0" message="2178" type="0"/>
<Action sParam="" lParam="0" wParam="0" message="2025" type="0"/>
<Action sParam="" lParam="0" wParam="0" message="2422" type="0"/>
<Action sParam="" lParam="0" wParam="0" message="2325" type="0"/>
</Macro>
</Macros>
<UserDefinedCommands/>
<PluginCommands/>
<ScintillaKeys/>
</NotepadPlus>

Antworten

Zurück zu „Softwareentwicklung für die HomeMatic CCU“