Fhem meldet für Gerät fehlendes IODev

Begonnen von Michi240281, 10 April 2014, 18:02:39

Vorheriges Thema - Nächstes Thema

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

martinp876

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?


betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

martinp876

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


betateilchen

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....
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

martinp876

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?

betateilchen

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...
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

martinp876


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.

frank

was sich neckt, dass liebt sich?  ;)

gruss frank
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

Joachim

FHEM aktuellste Version auf FB 7570 und 7390 mit Zebradem Toolbox Freetz
FHEM auf Raspberry
1-Wire mit LinkUSBi und Rs-Pi ds2482-800  1-Wire-9 Board; Max mit Cube, HMLAN
div. 1-Wire Sensoren; MAX-Thermostaten; Homematic-Komponenten, Zehnder KWL über RS-232

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

LuckyDay

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.

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

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.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

det.

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.
LG
det.