Einstieg: Internals, Attribute, Readings und weitere Anfängerfragen (Ver. 1.2)

Begonnen von andies, 01 Mai 2017, 21:24:31

Vorheriges Thema - Nächstes Thema

justme1968

was meinst du mit
ZitatInput

ob etwas als zahl, zeichenkette oder befehl angesehen wird lässt sich doch nicht generell sagen. es hängt vom kontext ab. und manchmal sogar von der intention.

ich kann dir nicht sagen ob es 'falsch' ist weil es so ungenau ist.

z.b.:
Zitat"In bestimmten Fällen besteht sogar die Möglichkeit, die Zeichenkette als (ausführbaren) Perl-Code aufzufassen! Dann muss die Zeichenkette mit einer geöffneten Klammer { beginnen und einer geschlossenen Klammer } enden; Sonderzeichen wie . und * innerhalb des Codes sind entsprechend zu kennzeichnen ("escapen")." ich dachte an Konstruktionen wie

was genau soll das sagen? das wichtige ist doch nicht das es manchmal geht sondern wann und wo es genau geht. und das ist so spezifisch und kann sich zur nächsten version auch wieder ändern das diese allgemeine aussage nicht wirklich weiter hilft. es ist auch etwas das komplett in der hoheit eines moduls liegt und nichts was fhem allgemein vorgibt. der teil mit den sonderzeichen und dem escapen ist auch nicht richtig. zumal escapen und kennzeichen nicht unbedingt das gleiche ist.


ich möchte dir nicht die energie nehmen die dokumentation zu verbessern, aber ein versuchen begriffe dadurch genauer zu fassen das man ungenauere definitionen verwendet oder englische (fach-)begriffe durch pseudo umgangssprachliche deutsche ersetzt führt am ende auf allen seiten nur zu frust. auch bei dir.

strings, zahlen, zeichenketten, escapen, ... das hat eine bestimmte bedeutung und es ist nicht sinnvoll diese begriffe dann für andere dinge zu verwenden. variablen, readings und zustände zu vermischen ist nicht gut. internals müssen nicht nur 'zeichenketten' sein, ...

vielleicht wäre eine stark abgespeckte version mit nur ein paar begriffen als glossar für pdf und wiki sinnvoll die nicht versucht alles zu erschlagen.

fhem ist ereignis und nicht zustands orientiert. die grundeinheit sind devices.

- devices
  - haben internals (interne zustände, für den normalen endanwender normalerweise nicht relevant)
    - readings (messwerte/zustände zu einem zeitpunkt)
    - attribute (meist vom anwender konfigurierbare eigenschaften eines geräts)
  - erzeugen events (zeitliche änderung der readings)
  - über events können bestimmte dinge verknüpft werden

gruss
  andre

ps: ich weiss es klingt gerade alles sehr kritisch. wie gesagt es soll dir die lust nicht nehmen. aber es nützt keinem wenn es falsch oder zweideutig oder nicht genauer als die ausgangsbasis ist.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

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

andies

Zitat von: justme1968 am 04 Mai 2017, 16:58:15
ps: ich weiss es klingt gerade alles sehr kritisch. wie gesagt es soll dir die lust nicht nehmen. aber es nützt keinem wenn es falsch oder zweideutig oder nicht genauer als die ausgangsbasis ist.
Ich sehe das sportlich und so lange der Ton fair bleibt, gern - ich will ja was lernen und mache das eigentlich in erster Linie für mich. Ich beschreibe vielleicht mal besser, was mein Problem war/ist und wo ich mir gern Hilfe erwartet hätte. Dann wird klarer, worum es geht und wo man das eventuell geschickter einbaut. Zwei Dinge waren das:


  • In irgendeinem Post zu DbLog stand etwas von {...$val...} und ich hatte nicht die leiseste Ahnung, was das war und wo ich das nachlesen kann. Ein Verweis auf die Commandref ist immer gut, aber da steht nun als erster Eintrag " Z.Bsp. das $value hash für notify wird nur bis featurelevel 5.6 befüllt, da es unerwünscht ist" (ich bin kein Programmierer und habe Perl früher für einen Schreibfehler für Perle gehalten) und ich dachte mir, die wollen mich doch... Wo oder wie fängt man an und sagt Leuten: OK, das ist Programmcode, da gibt es eine separate Einführung, das kannst Du da und dort nachlesen. Es geht eher um die Unterscheidung: Was ist FHEM, was ist Perl im Allgemeinen, was ist FHEM-Perl (wenn es so etwas gibt) und was ist RegEx. Wo fängt man zu suchen an?
  • Ich habe ein IP-Cam-device. Das holt Bilder mit "get kamera image". Nun möchte ich gern einen Button haben, auf den ich im FHEMWEB klicke und der klickt holt dann die Bilder. Also dachte ich mir: Das ist doch ein Kommando, Kommando ist webcmd und siehe da, also mal "attr kamera webcmd BilderHolen" , da steht schon der Link "BilderHolen" und jetzt muss nur noch Bilderholen='get kamera image'". Aber so geht das nicht, weil ich Attribute, Get-Kommandos und FHEM-Befehle in einen Topf werfe. Ich muss also systematisch an das Problem herangehen. Wie mache ich das am besten.

    Die frustrierendste Antwort wäre jetzt: Studiere Informatik...
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann

Thorsten Pferdekaemper

Hi,
mein Rat zu Deinen Punkten und vielleicht auch im Allgemeinen:

  • Frag nach, wenn Du etwas nicht verstehst.
  • Leg' Dir ein dickes Fell zu, was blöde Antworten vermeintlicher Experten betrifft.

Zitat von: andies am 04 Mai 2017, 19:14:54
Die frustrierendste Antwort wäre jetzt: Studiere Informatik...
Das könnte nützen, aber nur weil Du dann weißt, was Du alles nicht weißt. Außerdem hast Du gelernt, die obigen beiden Punkte zu berücksichtigen.

Gruß,
   Thorsten
FUIP

andies

Dann fange ich mal an, Teile davon ins Wiki einzutragen. Ich werde erstmal nur die Dinge erfassen, die hier unstrittig waren.
FHEM 6.3 auf RaspPi4 (Raspbian:  6.6.28+; Perl: v5.36.0)
SIGNALduino (433 MHz) und HM-UART (868 MHz), Sonoff, Blitzwolf, Somfy RTS, CAME-Gartentor, Volkszähler, Keyence-Sensor, Homematic-Sensoren und -thermostat, Ferraris-Zähler für Wasseruhr, Openlink-Nachbau Viessmann