Minimal-FHEM-Installation: Geht, geht nicht, geht, ... ?!?

Begonnen von M_I_B, 19 Dezember 2017, 11:03:00

Vorheriges Thema - Nächstes Thema

M_I_B

Moin Kinnaz,

da ich kein passenderes Board gefunden habe, schreibe ich das mal hier rein...

Zum Testen habe ich mir auf meiner WinDose eine minimale FHEM Installation gebaut; Reale Devices gibt es da natürlich nicht.

Jetzt hatte ich mal ein bisschen mit Widgets rumprobiert (Basis: Widget Test aus dem Wiki). Dabei passiert aber was ganz erstaunliches...  :o :o :o
Starte ich FHEM per Batch (siehe unten) und verbinde mich mit localhost:8083, kann ich das Test- Widget problemlos aufrufen und bedienen (Bild 1). Klicke ich nun auf "Reload CFG", erhalte ich sogleich eine Fehlermeldung in der Form:
test: unknown attribute webCmd. Type 'attr test ?' for a detailed list.
test: unknown attribute widgetOverride. Type 'attr test ?' for a detailed list.

Häää? Hat doch gerade funktioniert! Und unbekannte Attribute sind das sowieso nicht :o Das Widget wird dann auch nicht mehr als Solches angezeigt (Bild 2), ist aber zumindest intern funktionell (Bild 3).

Könnte mal bitte wer da den Knoten endtüddeln? Ich raff das nicht  ???

Start Fhem.cmd
set FHEMDir=%~dp0
set FHEMDir=%FHEMDir:"=%
cd /d "%FHEMDir%"
start perl fhem.pl fhem.cfg


fhem.cfg
attr global autosave 0
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath .
attr global motd none
attr global showInternalValues 1
attr global statefile ./fhem.save
attr global updateInBackground 1
attr global verbose 3

define WEB FHEMWEB 8083 global
attr WEB confirmDelete 0
attr WEB editConfig 1
attr WEB endPlotNow 1
attr WEB fwcompress 0
attr WEB longpoll 1
attr WEB longpollSVG 1
attr WEB menuEntries Reload MyUtils,cmd=reload+99_myUtils.pm, Reload CFG,cmd=rereadcfg, Restart,cmd=shutdown+restart, Update check,cmd=update+check, Update,cmd=update \
attr WEB plotfork 1
attr WEB stylesheetPrefix dark

define Logfile FileLog ./log/fhem-%Y-%m.log fakelog
define eventTypes eventTypes ./log/eventTypes.txt
define telnetPort telnet 7072 global

### WIDGET Testabteilung ###
defmod test dummy
attr test room Widgets Test
attr test readingList state
attr test setList state:iconRadio,#808080,0,ios_off_fill@red,A,ios_on_till_fill@blue,1,ios_on_fill@lime
attr test webCmd state
attr test widgetOverride readingList|setList|webCmd|webCmdLabel:textField-long



Otto123

Moin,

ZitatStarte ich FHEM per Batch (siehe unten) und verbinde mich mit localhost:8083, kann ich das Test- Widget problemlos aufrufen und bedienen (Bild 1).

Wenn Du an der Stelle save config machen würdest, würde wahrscheinlich alles gehen.

ZitatKlicke ich nun auf "Reload CFG", erhalte ich sogleich eine Fehlermeldung in der Form:

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

M_I_B

 :o :o :o :o :o :o :o :o :o :o :o

Wieso das denn? Mal abgesehen davon das Du (wie so oft) recht hast, erschließt sich mir die Sache nicht. Zum einen taucht kein rotes "?" bei Save Config auf, wie das normalerweise üblich ist, zum anderen hat sich anschließend an der CFG nichts geändert.
Also was übersehe ich hier bei an Zusammenhängen?!?

Otto123

#3
Also ich hatte verstanden: Du startest FHEM mit original cfg, probierst etwas aus dem Wiki (dabei änderst Du die cfg) und dann machst Du reload. Dabei wird dann häufig etwas aus dem statefile wiederhergestellt wozu die Definition fehlt und es kommt zu Fehlern.

Nicht exakt so aber so ähnlich hatte ich Deine Beschreibung empfunden. Wenn Du jetzt sagst die cfg ist nach dem save nicht geändert, müsste es eventuell nur mit dem statefile zusammenhängen?
./log/fhem.save

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

M_I_B

... nene, nicht ganz ...

Ich arbeite seit Anbeginn mit NotePad++ (jaja, ich weis schon was nun kommt), da ich die ganzen Räume und Gruppen in einzelnen CFG's habe und nicht alles in einer CFG; das ist viel zu chaotisch....

Also "Edit im Notepad > Änderungen speichern > Reload" war hier und überall bei mir der Ablauf. Die Änderungen in der (ausnahmsweise mal) fhem.cfg waren also bereits präsent, bevor der Reload erfolgte; das war reproduzierbar ...

marvin78

Ich habe 13000 Zeilen in meiner Config und alles durcheinander, da ich aber nie da rein schaue (warum sollte man?), ist das egal ;)

Ein save ist vor einem rereadcgf (grauselig) immer empfohlen. Gründe wurden hier schon angedeutet. Mach dir einen cmdalias, der das erledigt.

M_I_B

Zitat von: marvin78 am 19 Dezember 2017, 13:24:53... und alles durcheinander, da ich aber nie da rein schaue ...
Ja, darüber wurde hier schon ziemlich viel debattiert; mir liegt das halt ganz und gar nicht. Ich arbeite lieber mit strukturierten Dateien, was definitiv auch seine Vorzüge hat ...
Aber wie gesagt: Voll OT und letztlich ähnliche Debatte wie zwischen WIN und Linux- Jüngern ;)

Zitat von: marvin78 am 19 Dezember 2017, 13:24:53Ein save ist vor einem rereadcgf (grauselig) immer empfohlen.
... ja, angedeutet, aber über die Hintergründe habe ich immer noch nichts erfahren ...
Wieso ist das also in diesem konkreten Beispiel so, das ohne ein Save, welches ja keinerlei Änderungen an der CFG generiert, FHEM sich auf einmal anders verhält?

Und die Sache mit den Save hat auch seine Tücken. Leider schießt FHEM bei einem Save nicht selten Kommentarzeilen raus und/oder wurschtelt Anderes durcheinander (in Bezug auf meine Arbeitsweise)

marvin78

Siehe Beiträge von Otto. save speichert mehr, als nur die Config. Für mehr müsste man sich das Widget vermutlich genauer anschauen.

Achso: Es ist gar nicht so OT hier, das Für und Wider des direkt Editierens zu besprechen. Denn dein Problem entsteht, weil du es nicht machst, wie allgemein empfohlen.