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

Fehler in Firmware und WebUI & Workarounds

Moderator: Co-Administratoren

NickHM
Beiträge: 3729
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 65 Mal
Danksagung erhalten: 119 Mal

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: 9817
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 459 Mal
Danksagung erhalten: 1855 Mal
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 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

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

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-... 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,...

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

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

Blacklist................... almost 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: 12084
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
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 ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

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

Blacklist................... almost 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: 9817
Registriert: 17.02.2015, 14:45
System: Alternative CCU (auf Basis OCCU)
Wohnort: Dresden
Hat sich bedankt: 459 Mal
Danksagung erhalten: 1855 Mal
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 3.75.6.20240316 @ ProxmoxVE – ~200 Hm-RF/HmIP-RF/HmIPW Geräte + ioBroker + HomeAssistant – GitHub / Sponsors / PayPal / ☕️

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

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

Blacklist................... almost 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: 1573
Registriert: 28.05.2015, 12:48
Wohnort: Willich
Hat sich bedankt: 4 Mal
Danksagung erhalten: 10 Mal

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
Gruß Carsten

jp112sdl
Beiträge: 12084
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 847 Mal
Danksagung erhalten: 2139 Mal
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 ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

Antworten

Zurück zu „HomeMatic - bekannte Bugs“