Javascript Editor einbinden

Begonnen von papa, 18 Februar 2014, 20:30:04

Vorheriges Thema - Nächstes Thema

abc2006

mach mal nen trigger rein, aber ganz am ende eine klammer zuviel :


([08:00])(set xy on))
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

rapster

Wird bei mir wieder mit einem Fehler-PopUp quittiert.
Nach klick auf OK bin ich weiterhin im Codemirror mit dem richtigen Inhalt und könnte den Fehler korrigieren.


abc2006

Hi,
also ich habe bei mir gerade ein update gemacht, und PerlSyntaxCheck aktiviert ( war vorher deaktiviert).

Beim klick auf modify df_test kommt die FehlerSeite <DF_Fehler.png>
wenn ich dann auf zurück klicke, wird im DEF die alte Definition angezeigt, wenn ich dann auf DEF klicke, erscheint im Codemirror die geänderte (fehlerhafte) Definition.

Bei einem notify hingegen frisst er erstaunlicherweise auch Syntax-Fehler wie

test { fhe(set xy on) }

ohne Fehlermeldung...


Was mir noch aufgefallen ist, bsp bei remoteBot, aber dürfte überall so sein, wo ein Fenster aufgeht, dass die Autocomplete-Dropdown-Liste hinter dem Popup-Fenster dargestellt wird (siehe dropdown...png).


list WEB:
Internals:
   CONNECTS   33
   DEF        8083 global
   FD         6
   NAME       WEB
   NR         7
   NTFY_ORDER 50-WEB
   PORT       8083
   STATE      Initialized
   TYPE       FHEMWEB
Attributes:
   JavaScripts codemirror/fhem_codemirror.js
   SVGcache   1
   codemirrorParam { "lineWrapping":true, "height":"auto" }
   editConfig 1
   endPlotNow 1
   longpoll   1
   room       HTTP,System


list global:
Internals:
   DEF        <no definition>
   NAME       global
   NR         1
   STATE      <no definition>
   TYPE       Global
   currentlogfile ./log/fhem-2016-04-25.log
   logfile    ./log/fhem-%Y-%m-%d.log
Attributes:
   autoload_undefined_devices 1
   backup_before_update 1
   configfile fhem.cfg
   exclude_from_update 15_CUL_EM.pm 15_vz.pm
   featurelevel 5.7
   language   DE
   latitude   50.106173
   logfile    ./log/fhem-%Y-%m-%d.log
   longitude  8.662170
   modpath    .
   motd       SecurityCheck:

WEB,WEBdarkdash,WEBdevel,WEBgast,WEBnadine,WEBphone has no associated allowed device with basicAuth.
telnetPort has no associated allowed device with password/globalpassword.

Restart FHEM for a new check if the problem is fixed,
or set the global attribute motd to none to supress this message.

   mseclog    1
   room       HTTP,System
   sendStatistics onUpdate
   statefile  ./log/fhem.save
   updateInBackground 0
   userattr   DbLogExclude DbLogInclude cmdIcon devStateIcon devStateStyle fp_Erdgeschoss icon sortby structexclude webCmd webcmdDevice widgetOverride
   verbose    3
   version    fhem.pl:11304/2016-04-24


list df_test

Internals:
   CFGFN
   DEF        ([08:00])(set xy on)
   NAME       df_test
   NR         345
   NTFY_ORDER 50-df_test
   STATE      initialized
   TYPE       DOIF
   Readings:
     2016-04-25 10:27:48   state           initialized
     2016-04-25 10:27:48   timer_1_c1      26.04.2016 08:00:00
   Condition:
     0          DOIF_time_once($hash,$hash->{timer}{0},$wday,"")
   Days:
   Devices:
   Do:
     0:
       0          set xyz on
   Helper:
     globalinit 1
     last_timer 1
     sleeptimer -1
   Itimer:
   Localtime:
     0          1461650400
   Realtime:
     0          08:00:00
   Regexp:
   State:
   Time:
     0          08:00:00
   Timecond:
     0          0
   Timer:
     0          0
   Timers:
     0           0
   Triggertime:
     1461650400:
       localtime  1461650400
       Hash:
Attributes:
   room       x_devel


list n_test:
Internals:
   DEF        test { fhe(set xy on) }
   NAME       n_test
   NOTIFYDEV  test
   NR         314
   NTFY_ORDER 50-n_test
   REGEXP     test
   STATE      active
   TYPE       notify
   Readings:
     2016-04-25 10:29:51   state           active
Attributes:
   DbLogExclude .*
   room       x_devel
   webCmd     an:aus




Kann ich dir noch was liefern, damit du den Fehler reproduzieren kannst?

Grüße

Stephan
FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

rapster

Hi Stephan,

perlSyntaxCheck (und somit die Fehler im eigenen PopUp) sind soweit ich das gesehen habe erst ab featurelevel >5.7 aktiv, setz mal dein featurelevel auf irgendwas höheres.

Und setze noch das globale Attribut perlSyntaxCheck.

Gruß
Claudiu

rudolfkoenig

perlSyntaxCheck wird ab 5.8 default sein, solange muss man das Attribut aber noch manuell spezifizieren.

justme1968

perl syntax check prüft nur perl code.

dein test ausdruck:test { fhe(set xy on) }")wird aber garnicht erst als perl code der getestet werden kann erkannt weil keine { am anfang steht. d.h. am anfang steht test das als potentielles fhem kommando mit einem ein paar parametern erkennt wird.

wenn dutest; { fhe(set xy on) }") zum testen verwendest teilt der parser das in ein fhem kommando test und ein zweites in {..} eingeschlossen perl kommando auf. dieses wird dann getestet und wirft auch einen fehler.

um das vielleicht irgendwann mal 'intelligenter' zu machen müsste man zum einen einen syntax check für die fhem ebene bauen und eventuell den kommando zeilen parser umstellen.


zurück im browser zu verwenden ist hier ziemlich sicher ungeschickt. wenn du auf ok klickst bleibst du in code mirror und kannst direkt korrigieren.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

abc2006

Zitat von: rapster am 25 April 2016, 10:39:17
perlSyntaxCheck (und somit die Fehler im eigenen PopUp) sind soweit ich das gesehen habe erst ab featurelevel >5.7 aktiv, setz mal dein featurelevel auf irgendwas höheres.

Und setze noch das globale Attribut perlSyntaxCheck.

Erledigt, funzt einwandfrei.  Fehler kommt jetzt im Popup, nachdemich auf featurelevel 5.8 gesetzt habe. Das hatte irgendwann mal auch mit 5.7 funktioniert, nach den Problemem nmit Codemirror hatte ichs deaktiviert, und dann ist jetzt wohl an mir vorbeigegangen, dass es erst wieder ab 5.8 verfügbar ist bzw dass es 5.8 überhaupt schon gibt.

Danke!

Zitat von: justme1968 am 25 April 2016, 10:47:46
...wird aber garnicht erst als perl code der getestet werden kann erkannt

liefert aber zumindest ein Popup, siehe Bild.


Zitatwenn dutest; { fhe(set xy on) }") zum testen verwendest teilt der parser das in ein fhem kommando test und ein zweites in {..} eingeschlossen perl kommando auf. dieses wird dann getestet und wirft auch einen fehler.

und trotzdem wird test als trigger erkannt?
Hm. Ist aber zuviel Arbeit, deswegen alle notify's umzubauen ;D Ich werds mir zur Fehlersuche merken, wenn merkwürdige Fehler auftreten;-)


Zitatzurück im browser zu verwenden ist hier ziemlich sicher ungeschickt. wenn du auf ok klickst bleibst du in code mirror und kannst direkt korrigieren.

zurück im Browser zu verwenden, ist recht oft ungeschickt. Andererseits bleiben Seiten oft im Cache, auch wenn das, was beim Server ankommt, was ganz anderes ist. Manchmal hat man dann die möglichkeit, in dieser unsauberen Situation den Code zu kopieren, dann eine saubere, neue Seite zu laden und den Code dort einzufügen - anstatt erneut eine halbe Stunde zu basteln:-)

Es ging bei mir ja gar nicht drum, irgendwas zu klicken, wenn du dir df_Fehler.png in meinem vorherigen Post anschaust, dort existiert kein Button. Und wenn ich mich durch den Baum klicke, dann ist die alte DEF ganz bestimmt weg ;)

Nagut, so wies jetzt ist, gehts ja. Bis auf das Dropdown :-) Das befindet sich immer noch hinter dem Fenster, zb. wenn man attribute im CM bearbeitet.


FHEM nightly auf Intel Atom (lubuntu) mit VDSL 50000 ;-)
Nutze zur Zeit OneWire und KNX

marvin78

Editiert man Attribute, die über texField-long den Codemirror verwenden, landet das Ergebnis (nur in der Ansicht) im DEF in den Internals. Hier wird sicher nur ein DOM-Element falsch angesprochen.

rapster

Zitat von: marvin78 am 25 April 2016, 11:18:34
Editiert man Attribute, die über texField-long den Codemirror verwenden, landet das Ergebnis (nur in der Ansicht) im DEF in den Internals. Hier wird sicher nur ein DOM-Element falsch angesprochen.
=> https://forum.fhem.de/index.php/topic,52379.msg441851.html#msg441851

marvin78

Es gibt auch noch weitere Probleme mit Attributen die eigentlich normale Textfelder sind, die man aber per widgetOverride zu textField-long gemacht hat. Auch ganz einfache userReadings ohne Schnickschnack machen Probleme mit einem Konsolenfehler:

Error: Syntax error, unrecognized expression: .dval[informid=EG.wz.UL.Decke.light-userReadings]
...value:null},gb.error=function(a){throw new Error("Syntax error, unrecognized exp...

Es ist mir aber aktuell zu mühselig das alles nachzustellen und zu analysieren. Ich brauche den Syntax-Check nicht wirklich. Also fliegt er wieder raus.

rudolfkoenig

ZitatError: Syntax error, unrecognized expression: .dval[informid=EG.wz.UL.Decke.light-userReadings]
Dieses Problem sollte jetzt gefixt sein.

Aladin222

hi @all,

sorry , aber ist es gewollt das Backspace und Curserpfeiltasten ( links rechts auf ab ) nun nicht mehr funktionieren ???
Oder hab ich was grundsätzliches verpeilt bzw falsch verstanden ?

CoolTux

Hast Du schon ein Update gemacht? Es gab da die Tage kleine Probleme welche wohl mit dem heutigen Update gefixt sein sollten. Gibt diesbezüglich auch eine Menge Einträge im Forum.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Aladin222

Nein , sorry , hatte ich noch nicht :-(

Aber leider auch nachdem update & restart funktionieren die Cursortasten & Backspace nicht mehr  :-\

CoolTux

Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net