Bug/Feature?! /*[Objekt #12345 existiert nicht]*/

Hi,

weis leider nicht ob es an der 4.1 liegt oder vorher schon war. Mir ist zumindest eben aufgefallen, dass es wohl gar nicht so gut ist, wenn diese Zeile oben automatisch bei 5 Stelligen Zahlen eingefügt wird.

  1. Habe ich das z.B. auch bei IPS_Sleep(10000 /[Objekt #10000 existiert nicht]/);
  2. „zerstört“ es in einigen Skripten das Auskommentierte. Hier ein Beispiel aus dem IPSCam Modul. Ab IPSCAM_PROPERTY_SWITCHWLAN => wird das Kommentar unterbrochen, dadurch dass '52861 /[Objekt #52861 existiert nicht]/ ', hinzugefügt wurde.
 /**
	 *
	 * Definition der Kameras
	 *
	 * Die Konfiguration erfolgt in Form eines Arrays, für jede Kamera wird ein Eintrag im Array erzeugt.
	 *   IPSCAM_PROPERTY_NAME - Name der Kamera
	 *
	 *   IPSCAM_PROPERTY_TYPE        - Type der Kamera (unterstüzte Werte: IPSCAM_TYPE_MOVABLECAM und IPSCAM_TYPE_FIXEDCAM)
	 *
	 *   IPSCAM_PROPERTY_COMPONENT   - Kamera Component Definition
	 *
	 *   IPSCAM_PROPERTY_SWITCHPOWER - ID der Varible, die für das Schalten der Stromversorgung verwendet wird [optional]
	 *   IPSCAM_PROPERTY_SWITCHWLAN  - ID der Varible, die für das Schalten des WLAN verwendet wird [optional]
	 *
	 *   IPSCAM_PROPERTY_PREDEFPOS1  - Bezeichnung für vordefinierte Kameraposition 1 [optional]
	 *   IPSCAM_PROPERTY_PREDEFPOS2  - Bezeichnung für vordefinierte Kameraposition 2 [optional]
	 *   IPSCAM_PROPERTY_PREDEFPOS3  - Bezeichnung für vordefinierte Kameraposition 3 [optional]
	 *   IPSCAM_PROPERTY_PREDEFPOS4  - Bezeichnung für vordefinierte Kameraposition 4 [optional]
	 *
	 *   IPSCAM_PROPERTY_COMMAND1    - Name für vordefinierte Kamera Action 1 [optional]
	 *   IPSCAM_PROPERTY_COMMAND2    - Name für vordefinierte Kamera Action 2 [optional]
	 *   IPSCAM_PROPERTY_COMMAND3    - Name für vordefinierte Kamera Action 3 [optional]
	 *   IPSCAM_PROPERTY_COMMAND4    - Name für vordefinierte Kamera Action 4 [optional]
	 *
	 *   IPSCAM_PROPERTY_ACTION1     - ActionScript für vordefinierte Kamera Action 1 (alternativ auch IPSComponentSensor Definition möglich) [optional]
	 *   IPSCAM_PROPERTY_ACTION2     - ActionScript für vordefinierte Kamera Action 2 (alternativ auch IPSComponentSensor Definition möglich) [optional]
	 *   IPSCAM_PROPERTY_ACTION3     - ActionScript für vordefinierte Kamera Action 3 (alternativ auch IPSComponentSensor Definition möglich) [optional]
	 *   IPSCAM_PROPERTY_ACTION4     - ActionScript für vordefinierte Kamera Action 4 (alternativ auch IPSComponentSensor Definition möglich) [optional]
	 *
	 * Eine ausführliche Beispielliste findet sich auch im Example Ordner
	 *
	 * Beispiel:
	 * @code
        function IPSCam_GetCamConfiguration() {
          return array(
            0    => array(IPSCAM_PROPERTY_NAME        => 'Wohnzimmer',
                          IPSCAM_PROPERTY_TYPE        => IPSCAM_TYPE_MOVABLECAM,
                          IPSCAM_PROPERTY_COMPONENT   => 'IPSComponentCam_Edimax,192.168.0.14,username,password',
                          IPSCAM_PROPERTY_SWITCHPOWER => '11625 /*[Objekt #11625 existiert nicht]*/',
                          IPSCAM_PROPERTY_SWITCHWLAN  => '52861 /*[Objekt #52861 existiert nicht]*/ ',                            
                          IPSCAM_PROPERTY_PREDEFPOS1  => 'Decke',
                          IPSCAM_PROPERTY_PREDEFPOS2  => 'Wohnzimmer',                                                           
                          IPSCAM_PROPERTY_PREDEFPOS3  => 'Stiege',
                          IPSCAM_PROPERTY_COMMAND1    => 'Licht Esstisch',
                          IPSCAM_PROPERTY_ACTION1     => 12345 /*[Objekt #12345 existiert nicht]*/ /,
                          IPSCAM_PROPERTY_COMMAND2    => 'Licht Wohnzimmer',
                          IPSCAM_PROPERTY_ACTION2     => 'IPSModuleSensor_IPSLight,IPSLight_ToggleSwitchByName,Wohnzimmer',
                          IPSCAM_PROPERTY_COMMAND3    => 'Licht Wohnbereich',
                          IPSCAM_PROPERTY_ACTION3     => 'IPSModuleSensor_IPSLight,IPSLight_ToggleSwitchByName,Wohnbereich',       
             );
        }
		
	 * @endcocde
	 *
	 * @return string Liefert Array mit den Kameras
	 */
	function IPSCam_GetConfiguration() {

Hab leider nichts gefunden, habt Nachsicht mit mir falls es schon irgendwo beschrieben wurde :rolleyes:

Feature bei jeder fünfstelligen Zahl, nimm 1000*10, dann hast du es nicht.

MfG
Ralf

Ok,
aber viel gravierender finde ich das Problem der Kommentare :confused: Sind halt doch einige die so aufgebaut sind.

Das ist nur ein optisches Problem. Die Kommentare werden beim Speichern wieder entfernt, sodass der PHP Code korrekt ist. Das Problem ist schon länger als die 4.0 vorhanden und leider der Tatsache geschuldet, dass der Editor nicht vollständige den PHP Code lexikalisch analysiert. Somit weiß der Editor nicht, ob es dies ein Kommentar ist oder nicht.

paresy

Danke Paresy. Hätte mich auch gewundert, sonst hätte ich (und andere) wahrscheinlich massenhaft Fehler :wink:

Gesendet von meinem SM-G930F mit Tapatalk

Nun
man könnte doch einen workaround machen. Und zwar immer dann, wenn das Objekt nicht gefunden wird, wird der Kommentar auch nicht angezeigt… führt zu weniger Verwirrung
Ciao
Tommes

Gesendet von iPhone mit Tapatalk

Finde ich nicht so gut, da dann die reale Fehlermeldung fehlen würde.

Nein würde sie nicht, denn keine Meldung ist ja auch ein Statement. Und zweitens ist die Anzeige ja kein Kontrollsystem für fehlerhafte I’d-Eingabe sondern eher etwas zum späteren einfacheren Nachvollziehen. Zugegeben, das ist meine persönliche Einstellung…
Viele Grüße
Tommes

Gesendet von iPhone mit Tapatalk

Dem ist meiner Erfahrung nach nicht so. Der alte Editor konnte Kommentare und auch Strings erkennen und hat die Kommentierung hier unterlassen. Lediglich 5 stellige Integer Werte wurden kommentiert:

Im neuen Editor (4.1) sieht es nun doch eindeutig schlechter aus::frowning:

Vielleicht lässt sich da ja doch noch etwas machen …

Gruß

Burkhard

Das Problem ist, dass der alte Editor sehr viele Randfälle nicht erkannt hat. Der neue ersetzt unter Umständen ein/zwei Sachen zu viel. Was aber meiner Meinung nach besser ist, als die alte Lösung die fehlerhaft war und zu wenig hinzugefügt hat. Falls die neue Version vielen nicht gefällt, kann ich gerne die alte Methode wieder einbauen.

paresy

Hi,

Und wie wäre es, wenn du einen Schalter einbaust? Bspw wenn das Objekt nicht gefunden wurde, soll er nichts kommentieren?

Viele Grüße

Mir gefiel die alte Methode besser. Vielleicht war sie nicht perfekt, was mir aber bislang nicht störend aufgefallen ist.

Nun stört aber, dass insbesondere Strings verfälscht werden und gerade bei komplizierten Ausdrücken die Fehlersuche deutlich erschwert wird.

Beispiel:

Gruß

Burkhard

Ich finde den Vorschlag der Optionen auch gut:

  • Kommentare unbekannter Objekte können ausgeblendet werden
  • Strings und Kommentare werden nicht kommentiert, d.h. bei der Suche nach ID’s ausgeschlossen
  • eingefügte Kommentare werden (ganz dezent) anders gehighlightet (was für ein Wort;-) z.B. anderes Grün oder mit hellgrauem Textbackground oder …

VG
tommes

Gesendet von iPhone mit Tapatalk

Hi Paresy,

ich schließe mich tommes und kris an: Eine Option wäre sicherlich die für alle am besten passende Lösung. So bleiben die Randfälle abgedeckt, auf Grund derer Du ja die Mühe in den neuen Editor gesteckt hattest. Auch kann jeder selber entscheiden ob er überhaupt Kommentare will oder vielleicht nur die unbekannten IDs nicht kommentiert haben möchte. Die Variante mit der Übergehung unbekannter IDs wäre z.B. auch meine Wahl.

CU,
Golo

Ich habe zum nächsten Update die Option entsprechend erweitert. :slight_smile:

paresy

Super, vielen Dank.
Tommes

Gesendet von iPhone mit Tapatalk

Wo finde ich denn die Option?
Bei den Spezialschaltern habe ich nichts gefunden.

Ich erhoffe mir, dass danach ein solcher String nicht mehr mit Kommentaren anders angezeigt wird:

A = “12345-23456-34567“

Gruß NBA

Hallo NBA,

das sollte schon länger implementiert sein. Der Skripteditor prüft den Inhalt von Strings nicht auf ObjektIDs. Wenn du ein Beispiel konstruiert hast, in welchem das passiert, schicke uns das gerne.

Und der Vollständigkeit halber, da der Thread hier ja schon ein bisschen älter ist: Ich habe keine Ahnung wie die Legacy-Konsole das früher gemacht hat, die aktuelle Konsole macht das aber ganz wunderbar.

Ok, Du hast recht.
Ich war auf der Legacy unterwegs und die Kommentare im String haben mich gestört.

5 stellige Integer mit ebenfalls vorhandener ID haben dort weiterhin den Kommentar.
5 stellige Integer ohne ID Bezug nicht.
Auf der Webkonsole ist der String mit 5 stelligen Integerzahlen ohne Kommentar.

Ich hatte angenommen, dass das optional einstellbar sein, aber so ist das auch ok.

Gruss und Danke
NBA

Das genaue Verhalten, also ob auch IDs ohne Objekt dargestellt werden und ob mit Pfad oder ohne dargestellt wird, kannst du im Skripteditor unter Einstellungen anpassen, ich glaube das ging auch in der Legacy-Variante. Mit der Abkündigung würde ich dir allerdings mittlerweile zum Wechsel raten.