Hallo zusammen,
für folgendes Gerät meldet Fhem ständig, dass kein IODev definiert ist!
Internals:
CFGFN Garage.cfg
DEF 254DE7
HMLAN1_MSGCNT 2
HMLAN1_RAWMSG R4C5ACA77,0001,0E64B84B,FF,FFB9,07A410254DE723A6D7060100004A
HMLAN1_RSSI -71
HMLAN1_TIME 2014-04-10 17:56:29
IODev HMLAN1
LASTInputDev HMLAN1
MSGCNT 2
NAME Garage_Aktor
NR 39
STATE off
TYPE CUL_HM
lastMsg No:07 - t:10 s:254DE7 d:23A6D7 060100004A
protLastRcv 2014-04-10 17:56:29
protSnd 2 last_at:2014-04-10 17:56:29
protState CMDs_done
rssi_HMLAN1 avg:-74 min:-74 max:-74 lst:-74 cnt:1
rssi_at_HMLAN1 avg:-71 min:-71 max:-71 lst:-71 cnt:2
Readings:
2014-04-09 21:19:45 CommandAccepted yes
2014-04-09 21:13:18 D-serialNr KEQ1054168
2014-04-09 21:13:49 PairedTo 0x23A6D7
2014-04-09 21:13:49 R-intKeyVisib invisib
2014-04-09 21:13:49 R-pairCentral 0x23A6D7
2014-04-09 21:13:50 R-sign off
2014-04-09 21:13:49 RegL_00: 02:01 03:00 04:00 05:00 06:00 07:00 08:00 09:00 0A:23 0B:A6 0C:D7 00:00
2014-04-09 21:13:50 RegL_01: 08:00 00:00
2014-04-10 17:56:29 deviceMsg off (to HMLAN1)
2014-04-10 17:56:29 level 0
2014-04-10 17:56:29 pct 0
2014-04-10 17:56:29 recentStateType info
2014-04-10 17:56:29 state off
2014-04-10 17:56:29 timedOn off
Helper:
cSnd 0123A6D7254DE7010E
mId 0004
rxType 1
Io:
newChn +254DE7,00,01,1E
nextSend 1397145389.7485
Prt:
bErr 0
sProc 0
Rspwait:
Q:
qReqConf
qReqStat
Role:
chn 1
dev 1
Rpt:
IO HMLAN1
flg A
ts 1397145389.60164
ack:
HASH(0x12db0b0)
07800223A6D7254DE700
Rssi:
Hmlan1:
avg -74
cnt 1
lst -74
max -74
min -74
At_hmlan1:
avg -71
cnt 2
lst -71
max -71
min -71
Attributes:
IODev HMLAN1
autoReadReg 4_reqStatus
expert 2_full
model HM-LC-SW1-FM
peerIDs 00000000,
room hidden
serialNr KEQ1054168
subType switch
webCmd on:off:statusRequest
Verstehe nicht warum, es steht doch der "HMLAN1" drin und so heißt er auch! Jmd ne Idee?
wo und wann wird es gemeldet? HMInfo ? Welche Aktion löst die Meldung aus?
Jedes Mal nach dem Neustart von Fhem oder wenn man in der Befehlszeile was ausführt.
liegt sicher daran, dass du ein Device definierst, ein IO zuweist und das IO noch nicht definiert ist - da es erst später im fhem.cfg kommt?
"No I/O device found for"
ist die Meldung?
Ich denke du hast Recht. Ich habe ein Include ziemlich weit oben stehen gehabt und der HMLAN wurde erst später definiert. Habe jetzt die Includes ganz ans Ende der cfg gepackt. Scheint das Problem gewesen zu sein.
Habe sogar einen EIntrag in der cfg: attr global motd Error messages while initializing FHEM:\
configfile: Garage_Aktor: unknown IODev specified\
Kann ich den da wieder rauslöschen? Oder muss der Anfang da stehen bleiben (attr global motd) ?
???
motd nutze ich nicht - ich weiß, wer ich bin ;)
Siehe Commandref
motd:Nachricht des Tages. Wird im Begrüßungsbildschirm von FHEM angezeigt,
was immer du damit bezweckst
Die beim Starten gesammelten Fehlermeldungen in motd sind erst seit ca. 2-3 Wochen in fhem.pl implementiert.
Der Eintrag der Fehlermeldung in motd wird von fhem automatisch gelöscht, wenn es beim Starten von fhem keine Fehlermeldungen mehr aus irgendeinem Modul gibt.
Du kannst auch einfach manuell "attr global motd none" setzen, dann ein save config machen und fhem neu starten.
Steht danach wieder eine Fehlermeldung in motd, hast Du definitiv einen Fehler in Deiner fhem Konfiguration.
wer macht eigentlich die Dokumentation dazu? Aus dem Kommandref kommt das nicht so wirklich raus, dass hier irgendwelche Fehler angezeigt werden (sollen/können/dürfen).
weiss das ein "guter" user von natur aus?
Zitat von: martinp876 am 14 April 2014, 10:41:14
motd nutze ich nicht - ich weiß, wer ich bin ;)
Siehe Commandref
motd:Nachricht des Tages. Wird im Begrüßungsbildschirm von FHEM angezeigt,
was immer du damit bezweckst
Ich habe das Attribut ja garnicht gesetzt, das hat Fhem alleine gemacht! Habs jetzt wie Betateilchen beschrieben hat auf none gesetzt und danach ganz rausgelöscht. Alles i.O.! Keiner Fehler mehr!
Dass in motd Fehlermeldungen und Hinweise an den Anwender ausgegeben werden, ist grundsätzlich nichts Neues, denn auch die Meldung nach dem Securitycheck steht da drin. Es handelt sich nicht um eine Funktion, die irgendein Modul nutzen soll/kann/darf, sondern lediglich um eine neue Funktionalität innerhalb fhem.pl.
Es war übrigens der wiederholt geäußerte Wunsch vieler User, sowas zu bekommen um darauf aufmerksam gemacht zu werden, wenn beim fhem Start etwas schiefläuft, deswegen devices nicht angelegt werden und dadurch bei einem unachtsamen "save config" die Definitionen endgültig aus der fhem.cfg (wer nutzt sowas antiquiertes überhaupt noch?) verschwinden.
Zum Nachlesen:
http://forum.fhem.de/index.php/topic,22096.0.html
http://forum.fhem.de/index.php/topic,22105.0.html
http://forum.fhem.de/index.php/topic,22170.0.html
Zitat von: Michi240281 am 14 April 2014, 11:48:27Habs jetzt wie Betateilchen beschrieben hat auf none gesetzt und danach ganz rausgelöscht.
Ganz löschen solltest Du das Attribut bitte nicht. Sondern auf "none" setzen - wie von mir vorgeschlagen.
ich habe mich übrigens nicht darüber beschwert, dass es dies tut.
ZitatEs handelt sich nicht um eine Funktion, die irgendein Modul nutzen soll/kann/darf, sondern lediglich um eine neue Funktionalität innerhalb fhem.pl.
klar. Dazu gibt es einen Eintrag im Commandref - und so soll es auch sein.
Das Attribut treibt ein Verhalten des Systems (das machen Attribut so).
Soweit ist alles klar.
ZitatEs war übrigens der wiederholt geäußerte Wunsch vieler User, sowas zu bekommen
auch prima.
ZitatZum Nachlesen:
soll dass das Commandref resetzen?
Rudi hat mich zu beginn darauf aufmerksam gemacht, dass ich Änderungen gefällixt im cmdRef beschreiben soll.
Message Of The Day. Displayed on the homescreen of the FHEMWEB package, or directly after the telnet logon, before displaying the fhem> prompt. SecurityCheck is setting motd if it is not defined upon startup, to avoid this set the motd value to none
hm - was sagt mir dies? Es wird die "Tagesmessage" auf einem Screen vor dem Login angezeigt. Aha. was ist eine tagesmessage? Das Datum? Wann wird sie geändert? Ist es eine Fehlermeldung, ein Hinweis?
Sollte man threats durchsuchen um dahinter zu kommen, den Code lesen oder besser testen?
hast Du schlecht geschlafen?
Ich finde es übrigens ziemlich deplatziert, dass ausgerechnet Du Dich über unkorrekte Doku in der commandref aufregst, wenn ich mir die Häufigkeit von Fehlermeldungen in der commandref_join anschaue, die sich auf Deine Module beziehen.
http://forum.fhem.de/index.php/topic,22170.msg158784.html#msg158784
zufrieden?
hm
verwechselst du gerade Inhalt mit HTML Syntax?
auch gut.
Nun, da du es aber verstanden hast:
So ich motd nicht setze wird ein Text von "SecurityCheck" geschrieben.
motd wird auch verwendet...
ich sehe dann also (da es "auch" heisst) alle Fehlermeldungen von Start plus die Meldung von SecurityCheck (oder alternativ?)
Commandref ist für User (glaube ich), es ist kein API(oder?). Denen sagt es sicher etwas, wenn da steht 'wird ein Text von "SecurityCheck" geschrieben.'
Als User wüsste ich gerne, was ich bekomme, wenn ich es setze - und was, wenn ich es nicht setze.
attr global motd none # kein output
aber:
attr global motd Error messages while initializing FHEM: configfile: Garage_Aktor: unknown IODev specified
macht was?
a) sendet diesen text?
b) wird von den Fehlermeldungen bei boot überschrieben?
c) wenn es beim booten einmal geschrieben wurde, ich einen save mache, dann wird es nicht mehr überschrieben? Also keine Fehlermeldungen mehr? Jedenfalls keine meldung von Security mehr.
Tut mir leid, auch wenn die HTML tags sehr gut sind - der Inhalt erklärt mir nicht, was ich bekommen. Das wäre mir wichtig.
Ich habe eine Fehlermeldung vom kompilieren, bekomme aber keine Meldung. darf ich also nicht speichern?
Wie immer - sollte es nur ich nicht verstehen, lass es gut sein.
ZitatAls User wüsste ich gerne, was ich bekomme, wenn ich es setze - und was, wenn ich es nicht setze.
Nirgends steht etwas davon, dass Du als User das motd mit irgendwas befüllen sollst. Einzige Ausnahme: Der Hinweis, dass man die Security Meldung dadurch abschalten kann, dass man es auf non setzt. Das ist die einzige Verwendung des Attributs
durch den User. Und die ist beschrieben.
Ja, Du bist offenbar der Einzige, der das nicht versteht.
also jetzt interessiert es mich.
Es ist im Commandref beschrieben - als kann/darf sich der User gedanken machen.
a) man kann es abschalten - das ist einfach und verständlich - dann endet es aber auch schon.
b) man kann etwas rein schreiben - dann wird immer dies angezeigt. Das macht sicher nur Sinn, wenn man eine Funktion hinterlegt (kann man das?). Immer der gleiche text macht keinen sinn. Gibt es sinnvolle Funktionen?
c) es befüllt sich automatisch - und wird gespeichert (bei save). Kommmen dann noch Fehlermeldungen oder nicht? Die Securitymeldung offensichtlich nicht mehr. - hm nur ein 'one-time-event' - frozzen forever?
Wenn man es nur zum Abschalten nutzen kann ist es leider schlecht implementiert. Der Text sollte nicht in das Attribut geschrieben werden - der gehört in helper oder ein Reading, aber nicht in eine Steuervariable. Die Steuervariable mit dem result zu verwursten ist ... seltsam und problematisch.
Bei der Eingabe sollte geprüft werden, ob der Text zulässig ist. Wenn es nur 'none' oder blank (0 oder 1 wären dann standard) gibt sollte auch nichts andere zulässig sein.
=> für einen einfachen einschalte ist es schlecht designed (viel zu komplex) und schlecht beschrieben
=> für eine komplexe Funktion ist es schlecht beschrieben
Könnte es auch sein, dass es kaum jemanden interessiert?
Himmel Arsch und Zwirn? Was willst Du eigentlich?
Das Attribut ist NICHT für die Benutzung durch den Anwender bestimmt. Basta.
Und wofür das Attribut von fhem benutzt wird, steht in der commandref.
Was willst Du noch?
Zitat=> für einen einfachen einschalte ist es schlecht designed (viel zu komplex) und schlecht beschrieben
Schau Dir DEINE Doku an, bevor DU solche Schoten raushaust! Und ich meine NICHT die html-Tags.
ZitatDas Attribut ist NICHT für die Benutzung durch den Anwender bestimmt. Basta.
ja da lernt man immer etwas Neues. Ich dachte das Kommandref ist für Benutzer, ein User interface.
Dann ist es doch eher ein API - für Entwickler?
Wenn das Kommandref nicht für Nutzer ist werde ich Nutzer nicht mehr darauf verweisen - gut.
Wenn das Kommandref für Nutzer ist und motd nicht könnte man dies im dort auch vermerken - "not for User purpose".
Mit jeder deiner Antworten entdecke ich neue Seiten - was für wen gemacht ist, wer was lesen sollte. Dokumentation eher im Threat als im Dokument,...
Aber wenn motd nun doch ein
Schalter ist (ein/aus) den der
Nutzer steuern kann/soll - warum dann ein Schalter mit eingebauter Result-ausgabe? Alle anderen Schalter in FHEM können das besser - und da gibt es jede Menge.
Und es ist immer noch nicht klar, was passiert, wenn ich ein save mache. Dann ist motd gesetzt und gefroren. Was dann? habe ich dann "täglich grüßt das Murmeltier" - jeden Tag die gleiche Tagesnachricht?
Nun ja, was macht der User wenn die Doku nicht verständlich ist? Überlegen, was der Entwickler sich gedacht haben könnte und probieren ob er recht hat. Es wir demnach auf "SecurityCheck:" zu string beginn geprüft - wenn das nicht da ist bleibt der String konstant für alle Zeit. "SecurixtyCheck:" wird nicht überschrieben.
Ob das auch für die Fehlermeldungen stimmt teste ich nicht - und schaue auch nicht im Code nach. Wird schon so sein.
Aber gut - dir scheint das Konzept zu gefallen, ich beobachte bootfehler sowieso an anderer Stelle und alle anderen User haben verstanden, wie das zu bedienen ist (nein- dürfen sie ja jetzt doch nicht ... basta)
Gruss Martin
Wieso reitest Du jetzt auf der commandref als API rum? Das ist doch völlig absurd.
Und was hat eigentlich commandref mit dem attribut motd zu tun?
Und nein, motd ist kein Schalter.
Man merkt manchen Leuten hier im Forum echt an, wenn Vollmond vor der Tür steht....
ZitatWieso reitest Du jetzt auf der commandref als API rum? Das ist doch völlig absurd.
ist das Kommandref primär für User oder Entwickler?
ZitatUnd was hat eigentlich commandref mit dem attribut motd zu tun?
nun, weil es dort erklärt wird.
ZitatUnd nein, motd ist kein Schalter.
fast.
Es ist nun einmal ein schaltbares Reading
"none" ist ein schalter.
Jeder Text der nicht mit "Security..." beginnt ist ein Attribut
wenn es mit "Security..." beginnt ist es ein Reading. Es ist dann keine Einstellung(attribut) sondern ein Zustand oder Ereignis. Dann muss es auch nicht im Config gespeichert werden, da gehört da garnicht hin. Oder braucht es jemand nach dem reboot - als den alten Wert?
Es ändert also die Semantic je nach Inhalt recht sprunghaft. Und du hast recht - manchmal ist es kein Schalter.
ZitatMan merkt manchen Leuten hier im Forum echt an, wenn Vollmond vor der Tür steht....
ändert sich die Bedeutung auch noch mit dem Mond?
Zitat von: martinp876 am 14 April 2014, 19:51:47
Es ist nun einmal ein schaltbares Reading
....
ändert sich die Bedeutung auch noch mit dem Mond?
Nein es ist und bleibt ein
Attribut und wird niemals ein Reading.
Aber wenn es Dir guttut, dann kannst Du auch "attr global motd martin ist der größte!" absetzen, dann wirst Du jedesmal standesgemäß begrüßt...
ZitatNein es ist und bleibt ein Attribut und wird niemals ein Reading.
vielleicht solltest du einmal überdenken, was attribute i.a. so sind. Und was Readings.
Ja, leider ist hier auch das Resultat (reading) in ein Attribut gespeichert.
Mache ich übrigens auch manchmal -z.B. mit peerIDs. Aber nur, weil FHEM sonst die Daten gerne vergisst. Ausser in Attributen kann man nicht gezielt speichern. Hat mir schon immer weh getan so ein saustall. Mittlerweile könnte ich es aber in HMInfo abfangen... der autoarchive mechanismuss sollte es eigentlich besser können als readings (sowieso) oder attribute in FHEM. Aber die User sind nicht weit genug für die Umstellung - und auch die Doku von HMInfo nicht.
Wenn du dich erinnerst - genau aus dem gleichen Grund haben wir die Serialnumber nach Readings verschoben...
auch da hat es Sinn gemacht, und da hat es seltsamer weise deinen Beifall gefunden. Hier ist es nichts anders, wenn du einmal einen Schritt zurück trittst.
Im HM beispiel ist peerIDs ein reading für Physikalische Devices und ein Attribut für virtual devices.
ZitatAber wenn es Dir guttut, dann kannst Du auch "attr global motd martin ist der größte!" absetzen, dann wirst Du jedesmal standesgemäß begrüßt...
klingt gut - wäre ich garnicht drauf gekommen. Hat aber mit der Frage nichts zu tun.
was sich neckt, dass liebt sich? ;)
gruss frank
aber wie Feuer und Wasser
Zitat von: martinp876 am 14 April 2014, 20:25:59
vielleicht solltest du einmal überdenken, was attribute i.a. so sind. Und was Readings.
Und Du solltest darüber nachdenken, dass die fhem.pl etwas anders arbeitet ist als ein Modul, das in die fhem.pl nachgeladen wird.
Du wirst in keiner fhem-Konfiguration (egal ob fhem.cfg oder configDB) ein "define global" finden. Trotzdem werden die Attribute für das Pseudo-Device "global" gesetzt, das sogar in FHEMWEB genau wie ein normales Device angezeigt wird.
Ich bin völlig bei Rudi, der die Meinung vertritt, die globalen Attribute sollten komplett abgeschafft werden. Aber im Moment geht es noch nicht anders.
Man hätte die Ausgabe der beim Starten gesammelten Fehlermeldungen auch anders lösen können als mit dem
schon ewig vorhandenen Attribut motd (über das Du Dich komischerweise bisher
noch nie aufgeregt hast) aber die jetzige Umsetzung war die Lösung mit den wenigsten Eingriffen in das bestehende System.
Zitatschon ewig vorhandenen Attribut motd
Ich hab attr global motd none , da der Tip des Tages, das man kein Passwort gesetzt hat nervt. wie viele andere auch.
und das motd Atribut gibt es ungefähr seit 2 Jahren, ok war vor deiner Zeit, aber nicht
ewig ;D
schade das du nicht sachlich schreiben kannst.
Du hast mir hier grade noch gefehlt.
und überhaupt: wieso verteidige ICH hier eigentlich Rudis Software?
Achja, ich weiß es wieder: Weil hier irgendjemand völlig unsachlich, unqualifiziert und ungerechtfertigt über ein globales Attribut hergezogen ist und ich sowas nicht leiden kann.
hallo betateilchen,
Die "tolle Funktion" ist nicht von Rudolf König, sondern wenn ich mich recht erinnere von Dir - natürlich auf Wunsch "vieler ungenannter User". Daher verteidigst Du das auch so vehement. Ich möchte da noch mal an mein Übel mit der Sache erinnern: http://forum.fhem.de/index.php/topic,22250.msg156475.html#msg156475 und Dich ernsthaft bitten, diese Zwangsfehlermeldung abstellbar zu machen. Das geht sonst überall in FHEM z.B. verbose von 0 bis 5, je nachdem was der User im LOG sehen will. Da es systembedingt wegen SONOS nach jedem restart bei mir so eine unnötige Meldung bringt, nervt das wirklich extrem.
Langsam wirds hier echt albern.
ICH brauche die Erweiterung überhaupt nicht, deshalb muss ich sie auch nicht für mich verteidigen.
ZitatDa es systembedingt wegen SONOS nach jedem restart
statefile: Reading Sonos_Wohnzimmer->presence must not be used out of statefile.
Das ist aber definitiv ein Fehler, der von SONOS (genauer: dem zugehörigen Modul) kommt, das sich nicht an fhem Konventionen hält.
Dass fhem dann die Meldung ausgibt, ist absolut korrekt - works as designed.
Man sollte besser die Ursache im SONOS Modul beseitigen und nicht die Auswirkung des Fehlers in fhem.pl.
Herrlich, wo ist das Poppcorn, das ist ja besser wie Kino.
@ det,
verstehe Dein Problem nicht,
Zitathatte ich motd gelöscht und dummerweise auf dem iPad meine Finger nicht in Griff und modpath . mit erwischt.
Wenn ich das richtig verstehe, hast Du einen Fehler gemacht, soll vorkommen, aber betateilchens Erweiterung ist schuld. Ja sind wir denn in den USA?
Dass das Sonos Modul scheinbar nicht sauber programmiert ist, kommt noch dazu, aber auch daran ist die Fehlermeldung nicht schuld.
Für alle anderen gibt es hier allerdings wirklich einen Anhaltspunkt, wenn ein Fehler im System ist.
Nur mal so meine Meinung.
Gruß Joachim
Zitat von: Joachim am 14 April 2014, 22:30:31
Herrlich, wo ist das Poppcorn, das ist ja besser wie Kino.
schon unterwegs...
Die Kiste is ja geil, keine Parkplatzsorgen in der Firma 8)
@all,
das ist hier immer besser als Kino! Ich gebe Euch ja fast vollständig Recht, aber trotzdem auch außerhalb der USA sollte niemand zu seinem Glück gezwungen werden - daher bitte abschaltbar machen - eben wie bei verbose
Diese Meldung abschaltbar zu machen, würde komplett ihrer Intention widersprechen. Solange die User nicht darauf achten (und offensichtlich tun sie das ja nicht, sonst wären die zugrundeliegenden Probleme, die zu dieser Änderung führten niemals aufgetreten), ob ihre Konfiguration nach dem Laden vollständig ist und solange nicht alle User mit der Konfigurationsdatenbank und ihrer eingebauten Versionierung von Konfigurationen anstatt den Konfigurationsfiles arbeiten, macht diese Meldung 100% Sinn.
Der Vergleich mit verbose hinkt übrigens gewaltig.
Danke
zum Glück ist sie Abschaltbar :)
und zum Glück muß man nicht auf configDB.pm umstellen.
und Popcorn mag ich auch nicht.
Spassbremse
Ne, ich mag nur diese Argumentation nicht, alles auf die "dummen" User zu schieben und das das so sein muß :)
Vor einem Jahr hätte ich diese Argumentation auch nicht verstanden, aber mittlerweile halte ich diese Fehlermeldung für absolut nötig.
Einfach mal im Anfängerforum mitlesen, und Dir kommt die Galle hoch.
In meinen Augen ist diese Fehlermeldung an genau dieser Stelle nötig, ins Log sieht eh keiner.
Un bei denen, die wissen, was sie machen, sollte Diese Meldung nicht auftauchen, oder sie haben doch etwas verbockt.
Egal ob mutwillig oder nicht.
Gruß Joachim
Ich hab doch kein Problem damit, das Fehlermeldungen angezeigt werden,
sondern über die Umsetzung. und deren Argumentation.
bei motd kommts es auch über die Telnet raus, und die hab ich aktiv im Einsatz als Eingabeschnittstelle für meine Heizung.
Zitatbei motd kommts es auch über die Telnet raus, und die hab ich aktiv im Einsatz als Eingabeschnittstelle für meine Heizung.
Vielleicht hatte ich das bisher überlesen, aber das ist das erste für mich nachvollziehbare Argument.
Die Frage ist dann allerdings, wie setzt man das alternativ, mit wenig Aufwand, um?
Gruß Joachim
motd kam aber auch schon immer bei telnet VOR dem ersten Prompt raus.
Und auch das Thema telnet wurde während der Umsetzung diskutiert.
Zitat von: Rudi@justme1968: damit habe ich Probleme, da vermutlich etliche Programme, die per telnet was ausloesen, stoeren wuerde. Vermutlich waere es aber ok, wenn das motd vor dem ersten Prompt (fhem> ) kommen wuerde. Eure Meinung?
...
@justme1968: habe gerade gesehen, dass telnet diese Meldung vor dem ersten Prompt bereits jetzt schon ausgibt.
Und ich frage mich, warum seinerzeit NIEMAND sein Argumente in den hier im Forum geführten Änderungs-Thread eingebracht hat.
Zitat von: fhem-hm-knecht am 14 April 2014, 23:03:18
zum Glück ist sie Abschaltbar
Natürlich, und das sogar ganz einfach: Man sorge dafür, dass man eine fehlerfreie Konfiguration hat und schon gibt es keine motd Anzeige mehr.
http://forum.fhem.de/index.php/topic,22170.msg159148.html#msg159148