.Variable() auf Datenpunkte ausführbar - Geräte dadurch unbrauchbar

Fehler in Firmware und WebUI & Workarounds

Moderator: Co-Administratoren

NickHM
Beiträge: 1428
Registriert: 23.09.2017, 12:04

Re: .Variable() auf Datenpunkte ausführbar - Geräte dadurch unbrauchbar

Beitrag von NickHM » 16.07.2018, 22:14

jmaus hat geschrieben:
16.07.2018, 21:08

(z.B. Nutzung von .Variable() OHNE Parameter) verwenden. So kann es gut sein das interne Skripte .Variable() verwenden und man erst sichergehen muss warum die das tun un ob man das ersatzlos streichen kann.
In de internen Scripten für

Energiesensor ( Strom / Gas)
HMIP-PSM
HM-MessSteckdosen
Wettersensor HMIP-swo

habe ich den String .Variable( nicht gefunden. Das kann man in einem per "Programme drucken" erzeugten pdf ganz schnell suchen.

Benutzeravatar
jmaus
Beiträge: 2870
Registriert: 17.02.2015, 15:45
Wohnort: Dresden
Kontaktdaten:

Re: .Variable() auf Datenpunkte ausführbar - Geräte dadurch unbrauchbar

Beitrag von jmaus » 16.07.2018, 22:26

alchy hat geschrieben:
16.07.2018, 22:12
jmaus hat geschrieben:
16.07.2018, 21:08
Ok danke für die Bestätigung. D.h. also das dieses Verhalten im Grunde schon immer da war. So dachte ich mir das bereits.
Ach darauf willst du raus. Na dann klären wir das Missverständnis vielleicht mal auf.
Schon immer da stimmt eben nicht.
Wenn du damit aber ausdrücken willst, das der Fehler schon vor dir da war, dann gebe ich dir mal Recht.
Mit der 0109 hast du dann korrekterweise beim Zugriff auf ein HSSDP-Objekt ein ScriptRuntimeError erzeugt.
Die inkorrekten Reaktivierung geschah in Beta0110, Beta0111 und Beta0112, wie auch *IMHO* bei anderen Methoden.
An die leider wenig fruchtbaren Diskussionen wirst du dich doch erinnern.
Ach, das meinst du. Jetzt wird es klarer ;) Da kannst du in der Tat Recht haben das das zwischenzeitlich vielleicht mal anders reagiert hat. Das Problem ist eben, das nach meiner initialen Änderung an der Prüfung valider/invalider Methodenaufrufen ich von eQ3 gebeten wurde das ganze wieder ein stückweit aufzuweichen weil es von gewissen internen und externen Applikationen Problemmeldungen mit der strikteren Handhabung von Methodennamen gegeben hat. Und nun müsste man erst einmal wieder rausfinden welche das genau waren und ob es in der Tat auch .Variable() betroffen hat. Alles leider nicht ganz so einfach und schnell zu beantworten.
Ich habe bei einem Schnellscan kein internes Vorkommnis von .Variable() gefunden.
Danke für die Tests. Nun müsste man auch noch wissen ob ggf. externe Applikationen wie PocketControl&Co vielleicht auf .Variable() setzen. Und wie gesagt, ich bin mir leider immer noch nicht ganz sicher ob der ursprüngliche Entwickler nicht mit Absicht .Variable() auch auf HSSDP Objekte anwendbar haben wollte oder ob das in der Tat einfach nur ein Bug ist.
RaspberryMatic 2.35.16.20180715 @ TinkerS mit ~150 HomeMatic Geräten + ioBroker – GitHubPayPal

Benutzeravatar
Roland M.
Beiträge: 4050
Registriert: 08.12.2012, 16:53
Wohnort: Graz, Österreich

Re: .Variable() auf Datenpunkte ausführbar - Geräte dadurch unbrauchbar

Beitrag von Roland M. » 16.07.2018, 22:38

Hallo Alchy!
alchy hat geschrieben:
16.07.2018, 17:15
Ein kleiner Fehler in einem Script, in einer neuen APP usw. und die Geräte sind bis auf weiteres erstmal unbrauchbar.
Als interessierter Laie stellt sich mir die Frage, wie das "erstmal unbrauchbar" zu werten ist?
Was muss man tun, um die Geräte wieder zur Mitarbeit zu überzeugen?


Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
  • Bezeichnung (HM-...) 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!

-----------------------------------------------------------------------
CCU2 mit 90+ Geräten
CCU2 per VPN mit 20+ Geräten
CCU1, Test-CCU2, Raspi mit Funkmodul,...

alchy
Beiträge: 7183
Registriert: 24.02.2011, 02:34

Re: .Variable() auf Datenpunkte ausführbar - Geräte dadurch unbrauchbar

Beitrag von alchy » 16.07.2018, 22:39

Mit Verlaub, das ist nicht korrekt.
Was die Methode machen soll ist in der Doku, wie ich auch ganz am Anfang gepostet habe, definiert.

Wenn irgendeine Applikation die Methode falsch anwendet, dann muss die Application gefixt werden und damit ist das dann korrekt. Alles andere ist ein Rückschritt und einfach falsch.

Alchy

.................... Full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

jp112sdl
Beiträge: 1040
Registriert: 20.11.2016, 21:01
Kontaktdaten:

Re: .Variable() auf Datenpunkte ausführbar - Geräte dadurch unbrauchbar

Beitrag von jp112sdl » 16.07.2018, 22:41

Roland M. hat geschrieben:
16.07.2018, 22:38
Hallo Alchy!
alchy hat geschrieben:
16.07.2018, 17:15
Ein kleiner Fehler in einem Script, in einer neuen APP usw. und die Geräte sind bis auf weiteres erstmal unbrauchbar.
Als interessierter Laie stellt sich mir die Frage, wie das "erstmal unbrauchbar" zu werten ist?
Was muss man tun, um die Geräte wieder zur Mitarbeit zu überzeugen?


Roland
Ich (auch als Laie) habe vorhin das Testszenario von alchy ausgeführt und musste den Aktor anschließend ab- und wieder anlernen.
Ein "drüberlernen" hat nicht gereicht.
Ob es einen Skript-Befehl gibt, der den Aktor wieder gangbar macht, ist mir jedoch nicht bekannt.
VG,
Jérôme



alchy
Beiträge: 7183
Registriert: 24.02.2011, 02:34

Re: .Variable() auf Datenpunkte ausführbar - Geräte dadurch unbrauchbar

Beitrag von alchy » 16.07.2018, 22:46

Die harte Variante ein Gerät wieder zur Mitarbeit zu bewegen, ist ein Ablernen, Rücksetzen, Anlernen.
Habe ich zig mal durch, bis ich von einem Freund per Mail auf eine viel elegantere Methode hingewiesen wurde.
Die weichere Methode ist ganz einfach mittels einem einzeilerscript zu erledigen.
Bei Bedarf kann ich morgen etwas zusammenschreiben.

Die Fehlermeldung taucht jedenfalls mehrfach im Forum auf. Ich denke schon, daß der ein oder andere User da schon in den Bug gerasselt ist, ohne es zu wissen.

Alchy

.................... Full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Benutzeravatar
jmaus
Beiträge: 2870
Registriert: 17.02.2015, 15:45
Wohnort: Dresden
Kontaktdaten:

Re: .Variable() auf Datenpunkte ausführbar - Geräte dadurch unbrauchbar

Beitrag von jmaus » 16.07.2018, 22:50

alchy hat geschrieben:
16.07.2018, 22:39
Mit Verlaub, das ist nicht korrekt.
Was die Methode machen soll ist in der Doku, wie ich auch ganz am Anfang gepostet habe, definiert.

Wenn irgendeine Applikation die Methode falsch anwendet, dann muss die Application gefixt werden und damit ist das dann korrekt. Alles andere ist ein Rückschritt und einfach falsch.
Das ist, mit Verlaub, deine Meinung und faktisch nicht deine oder gar meine Entscheidung und es gibt über deine hobbymäßige Nutzung der HomeMatic auch noch andere Interessen die eQ3 verfolgt und da zählt eben auch dazu das bestehende Anwendungen weiter so funktionieren sollen wie vorher. Aber versteh mich nicht falsch bitte. Im Grunde bin ich auf deiner Seite und auch ich finde das gehört "repariert". Allerdings kannst du jetzt noch so viele offizielle eQ3 Tickets aufmachen wie du willst und auf die offizielle Doku verweisen. Im Zweifel wird das dann nur dazu führen (wenn man das nicht in diplomatischer Art und Weise und mit technischer Nüchternheit so vorbringt das das Bewusstsein geschaffen wird das diese Änderung nicht zu einer Explosion führt) das die Dokumentation einfach angepasst wird wie das bereits beim 200-Variablenproblem damals der Fall war.
Also wenn du nicht willst das demnächst die Dokumentation von .Variable() einfach entsprechend erweitert wird damit der Dokumentation gerecht geworden ist sollten wir lieber uns darauf konzentrieren rauszufinden ob es irgendwelche nennenswerten Applikationen gibt die ggf. .Variable() fälschlicherweise so einsetzen wie du das hier vorgebracht hast und dann dafür sorgen das dies beendet wird. Das du die internen Skripte der WebUI bereits danach gescannt hast ist ja bereits ein Anfang. Nun wäre rauszufinden wie es um PocketControl, Mediola&Co z.B. steht...
RaspberryMatic 2.35.16.20180715 @ TinkerS mit ~150 HomeMatic Geräten + ioBroker – GitHubPayPal

alchy
Beiträge: 7183
Registriert: 24.02.2011, 02:34

Re: .Variable() auf Datenpunkte ausführbar - Geräte dadurch unbrauchbar

Beitrag von alchy » 16.07.2018, 23:06

Tja, dann wäre es dann so. Trotzdem bleibt es falsch.

Da ich weder pocketcontrol noch mediola einsetze und bestimmt auch nicht noch diese Software kaufe um hier Support zu leisten, musst du auf meine Mitarbeit diesbezüglich verzichten.

Du hast schon bei falscher Benutzung anderer Methoden die entsprechenden, aussagekräftige Fehler ins log schreiben lassen.
Das wäre meiner Meinung nach auch hierfür die beste Methode.

Alchy

.................... Full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Bratmaxe
Beiträge: 637
Registriert: 28.05.2015, 12:48
Wohnort: Willich

Re: .Variable() auf Datenpunkte ausführbar - Geräte dadurch unbrauchbar

Beitrag von Bratmaxe » 17.07.2018, 09:01

alchy hat geschrieben:
16.07.2018, 22:46
Die harte Variante ein Gerät wieder zur Mitarbeit zu bewegen, ist ein Ablernen, Rücksetzen, Anlernen.
Habe ich zig mal durch, bis ich von einem Freund per Mail auf eine viel elegantere Methode hingewiesen wurde.
Die weichere Methode ist ganz einfach mittels einem einzeilerscript zu erledigen.
Bei Bedarf kann ich morgen etwas zusammenschreiben.

Die Fehlermeldung taucht jedenfalls mehrfach im Forum auf. Ich denke schon, daß der ein oder andere User da schon in den Bug gerasselt ist, ohne es zu wissen.

Alchy
Ich wäre generell immer an einem solchen Einzeilerscript interessiert!

Gruß Carsten

jp112sdl
Beiträge: 1040
Registriert: 20.11.2016, 21:01
Kontaktdaten:

Re: .Variable() auf Datenpunkte ausführbar - Geräte dadurch unbrauchbar

Beitrag von jp112sdl » 17.07.2018, 09:09

Es reicht wohl tatsächlich aus, mit

Code: Alles auswählen

oDP.Variable("NEQ0386972:1");
den Datenpunkt wieder zu setzen!

Anschließend lässt sich (bei mir zumindest) der Aktor wieder schalten.

Ich hatte mir schnell mal ein Diff gezogen, um zu schauen, was bei der Ausführung des Skripts von Alchy tatsächlich passiert:

Code: Alles auswählen

--- homematic.regadom.geht
+++ homematic.regadom.gehtnicht
@@ -11708,7 +11708,7 @@
 <type>2</type>
 </valdef>
 </dp>
-<hss-adr>NEQ0386972:1</hss-adr>
+<hss-adr>1</hss-adr>
 <hss-id>STATE</hss-id>
 </hss-dp>
 <oid>2475</oid>
VG,
Jérôme



Antworten

Zurück zu „HomeMatic - bekannte Bugs“