Hi,
ich setze FHEM nun seit 2013 ein, um mein komplettes Haus zu steuern, inkl. Alarmanlage.
Ich habe FHEM natürlich auch mit anderen Angeboten verglichen, z.b. openHAB, und am Ende ist FHEM immer der Sieger.
Was mich aber stört, ist das Schreiben der Scripte/Aktionen in Perl (oder FHEM-Code). Jedesmal, wenn ich ein Script/Aktion ändere, muss ich manuell Testen, da der kleinste Fehler für mein Haus starke Konsequenzen hätte, z.B. Ausfall der Alarmanlage. Über die Jahre sind meine Scripte ziemlich komplex geworden...
Ich vermisse die Möglichkeiten, die andere Sprachen bieten:
- Syntaxcheck (Compiler)
- Typisierung
- Unit-Tests
Ich würde gerne Scala in FHEM einbinden. Jemand Interesse oder Ideen?
Thx
dero
oder für die ganz dummen unter uns das, was domoticz "blockly" nennt.
das könnte auch der schlimmste unwissende bedienen und ich geh mal davon aus, dass es das ding irgendwo als tool geben müsste ( https://developers.google.com/blockly/ ) und das auch ???perl??? können müsste, da domoticz ja auch perl mag (nur gelesen, nie probiert *g*).
und ja, mir is schon klar, dass ein programmierer bei sowas nur n extrem schiefes lächeln im gesicht haben wird. aber halt die nulpen unter uns (so wie ich) sich zum einstieg oder beim probieren von neuem extrem über sowas freuen würden. man macht sein puzzle, bis es funzt und hat dann beim ansehen im "echten" editor sein erstes ah-erlebniss. und das dann im idealfall, ohne den leuten hier mit 5 dämlichen fragen zum beginn und 100 weiteren zum ende des ganzen am nerv zu gehen. und ja, auch klar: das wird sicher nicht bis zum "high-end-perl-script" reichen, aber zum kapieren worums mal generell geht und den ganzen 08/15 code, allemal.
@dero
sorry fürs quer rein kretschen, aber es passt in meinen augen grad so gut ...
openHAB nutzt auch Blockly als Regeleditor und hat einen ganz netten Event-Syntax. Der funktioniert ganz gut. Aber das war es auch schon mit openHAB.
openHAB ist leider ein ein IMHO chlecht entwickeltes komplexes Code-Monster, hat aber keine regulären Ausdrücke und nicht einmal ein Viertel der unterstützt Geräte wie FHEM.
Ich hatte mal openHAB um reguläre Ausdrücke erweitert und dabei noch ein paar Bugs gefixt, wurde leider abgelehnt. https://github.com/openhab/openhab/pull/3102
dero
Ich habe weder gegen Scala (wieso gerade Scala?) noch gegen blockly was einzuwenden, solange das einigermassen modular eingebunden wird. Fuer Scala wuerde ich AnalyzeCommand erweitern, fuer blockly muss man länfer nachdenken.
das haupt problem bei/mit blockly ist nicht das erstellen einer regel oder notify oder was auch immer, sondern das editieren einer bestehenden regel. entweder braucht man einen kompletten parser der dann wieder die blocky definition ausspuckt oder man muss immer das blockly xml format mir schleppen und sicher stellen das der anwender nicht doch die erzeugte fhem version editiert hat.
bis zu einem gewissen grad könnte es einfacher sein sich für den anfang auf IF oder DOIF zu beschränken. aber sobald es komplexer wird gibt es das gleiche problem.
es gibt auch ziemliche einschränkungen hinsichtlich des kontrollflusses in blockly.
die hübschen blockly grafiken sind übrigens auch nicht mehr wirklich handlich sobald es etwas mehr code wird.
den größten hinderungsgrund grund sehe ich aber in der diskrepanz von zielgruppe und implementierungsgruppe.
diejenigen die von blockly am meisten profitieren würden sind die die am wenigsten dazu beitragen könnten. die die es auf die beine stellen könnten werden es ziemlich sicher niemals selber verwenden.
siehe auch das ccu beispiel im anderen thread. der screenshot mit verschachtelten wenn/dann/sonst macht augenkrebs wenn man es mit einem simplen fhem notify und on-till vergleicht.
ich glaube mit dem codemirror syntax highlighting und einem noch weiter ausgebautem perlSyntaxCheck ist am ende den typischen anwendern mehr geholfen.
und einem zweiten test/entwicklungs system neben dem produktiv system um zu entwickeln.
gruss
andre
ps: ich habe inzwischen drei mal einen anlauf zur integration von blockly versucht. aber jedes mal aufgegeben weil die einschränkungen viel zu groß sind. bzw. der aufwand ganz massiv steigt sobald man versucht um die einschränkungen herum zu kommen.
Perl ist geil
wow - jetzt hät ich gedacht, dass ich wegen der blockly-idee in grund un boden gelacht werd ... *erfreut guck*
@dero - ich hab openhab auch probiert - drum bin ich jetzt bei fhem *g* wollts nur als bspl. bringen, weil du da eben nach 2 minuten einarbeitung schon was basteln kannst damit.
@justme1968 - ganz meine rede ... mal klein anfangen. wär sowieso schade, sich da viel arbeit zu machen und dann interessierts vielleicht nur 3 leut. aber allein schon deine idee mit "nur" if und doif wäre grenzgenial.
Zitatden größten hinderungsgrund grund sehe ich aber in der diskrepanz von zielgruppe und implementierungsgruppe.
den hast doch jetzt schon. leute wie ich können weder bei fhem selber, noch bei irgend nem modul helfen. unsereiner ist ja schon froh, wenn er fragen so formulieren kann, dass ihr nicht 5 mal fragen müßts, was wir meinen. für die meisten ist schon das aufsetzen ihres rsapi ne reine abschreibübung ohne verständnis. was danach kommt übersteigt einfach den nix-progger-hintergrund gewaltig.
du profitierst aber halt auch davon in gewissen sinne. die leute können besser selber lernen durch vergleichen von blockly und editor. wie ich oben gschrieben hab, sollte euch progger das zumindest ein bissi luft bei den dummen fragen geben. wäre sozusagen dann eine art selbstschutz für euch und lernmittel für uns *g*. ganz abgesehen davon, dass ichs mir genial vorstell, mal schnell ein doif zusammenzusetzen, ohne vorher wieder nachsehen zu müssen, wie meine devices dafür heißen usw.
aber wenn du schreibst, dass die sache sowieso viel zu viel aufwand is ...
ich hätte ja noch ne idee - keine ahung, ob die funzt.
wenn man sich notepad++ und andere eidtoren ansieht, dann kriegt man ja immer (so man möchte) ne auswahl an möglichen befehlen. umgemünzt auf fhem würde das für mich heißen: man beginnt ein device einzutippen und kriegt die entsprechenden schon mal zur auswahl vorgegeben, nach dem ":" kriegt man alle möglichen readings angezeigt, man tippt seine erste "[" ein, und schon kommt die auswahl für "besonderes" wie z.b. zeit, monat usw. eventuell sogar mit 3 oder 4 worten info dazu.
wäre das schwer einzubasteln?
einen anfang für die autocompletion gibt es schon für codemirror. schau mal im wiki. das auszubauen ist vermutlich sinnvoller und effizienter als blockly.
hab ich eig. schon ewig aktiviert, blöd nur, dass ich selten strg+space drück weil ich einfach nicht dran denk. sollte irgendwie automatisch gehen, wenn ich das zeug eh schon extra eingeschaltet hab. so scheints mir doppelt gemoppelt.
und das dumme ist halt immer noch, dass dir zumindest mal n anfangsbuchstabe bei sowas vorschweben muß. und genau da happerts ja beim anfänger ...
generell - wenns einfacher ist das aufzubohren, bin ich sowieso dafür - jede hilfe is mir willkommen und vom klicki-bunti-fhem hab ich mich sowieso relativ flott verabschiedet gehabt als ich angefangen hab.
mittlerweile kann ich sogar grün-gelb-kombinationen was halbwegs positives abgewinnen *lach*.
[jammerei]
aja - ein bspl. für klicki-bunti in fhem wäre der floorplan. jeder idiot kann seine geräte per drop-down einbinden, die gewünschte anzeige einstellen und rumschieben, bis es ihm gefällt. stell dir vor, du kannst dann noch deine räume per "gummiband" drumrum malen, icons anpassen, ... . echt schade, dass da nimma viel gmacht wird dran. nur sowas gfallt halt den leuten da draussen, damit kann jeder gleich was anfangen. stell dir im gegenzug vor, die leute könnten ihre devices nur im fhem-web per koordinaten einstellen (was manchesmal durchaus sinnvoll is). kein anfänger würd den floorplan angreifen wollen.
ich finds halt immer schade, wenn ich dann mit leuten auf z.b. geek-plattformen streit, die fhem für den größten schrott halten, weils eben nicht nur aus schönen knöpfchen und dropdowns besteht. wenn ich mir anschau, wie die sich von "professionellen" lösungen blenden und verarschen lassen, wird mir übel. vielleicht auch deswegen immer mein gejammer in der richung ... man muß halt schon sagen, dass (würde fhem was kommerzielles sein wollen) man kein geld bei privaten verdienen könnte, wenn die nicht sowieso bastler wären und sowas mögen würden.
[/jammerei]