perl im notify

Begonnen von Wuppi68, 08 April 2020, 21:40:35

Vorheriges Thema - Nächstes Thema

Wuppi68

Hi,
kann man das sol lassen?
MQTT2_zigbee_Ikea_Remote_1:action:.(toggle|brightness_(down|up)_click) {
  fhem 'set MQTT2_zigbee_Ikea_Trafo_1 toggle'  if $EVTPART1 eq 'toggle';
  if ($EVTPART1 eq 'brightness_up_click') {
    my $brightness = ReadingsVal( 'MQTT2_zigbee_Ikea_Trafo_1', 'brightness', 0);
    $brightness = $brightness <= 244 ? $brightness + 10 : 254;
    fhem "set MQTT2_zigbee_Ikea_Trafo_1 brightness $brightness";
  };
  if ($EVTPART1 eq 'brightness_down_click') {
    my $brightness = ReadingsVal( 'MQTT2_zigbee_Ikea_Trafo_1', 'brightness', 0);
    $brightness = $brightness >= 10 ? $brightness - 10 : 254;
    fhem "set MQTT2_zigbee_Ikea_Trafo_1 brightness $brightness";
  };
}


mit der Formatierung bin ich nicht glücklich ...
kann ich auch direkt aus dem Block in Perl springen? zb: { fhem 'set MQTT2_zigbee_Ikea_Trafo_1 toggle'; exit }  if $EVTPART1 eq 'toggle';

Danke

Ralf

Tante Edit sagte, ich solle den Code aus dem Editor nehmen ;-)
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

RichardCZ

#1
Es wäre - aus diversen Gründen - interessant herauszufinden ob im o.g. Beispiel

$brightness = min($brightness + 10, 254);

tut.  Interessant finde ich auch, dass in dem

$brightness = $brightness >= 10 ? $brightness - 10 : 254;


Beispiel nicht eigentlich

$brightness = $brightness >= 10 ? $brightness - 10 : 0;


steht. Absicht?

edit:

Zitat von: Wuppi68 am 08 April 2020, 21:40:35
kann ich auch direkt aus dem Block in Perl springen? zb: { fhem 'set MQTT2_zigbee_Ikea_Trafo_1 toggle'; exit }  if $EVTPART1 eq 'toggle';

exit nicht, aber return sollte gehen. Ohne es getestet zu haben:

if ($EVTPART1 eq 'toggle') {
    fhem 'set MQTT2_zigbee_Ikea_Trafo_1 toggle';
    return;
}


Ob man den Code sehr straffen kann, hängt davon ab, ob die brightness_up_click und brightness_down_click die einzigen events sind die da kommen können. Oder ob noch andere kommen können, die man ignorieren will.

Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

CoolTux

return geht.

Und da Du ja selbst Entwickler bist würde ich nicht fhem() nehmen sondern direkt CommandSet() finde ich sauberer.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

Wuppi68

#3
cool, danke :-)

habe ein wenig geändert ;-)

und ja, es kommen noch weitere Events dazu ... will halt nur die häufigsten Events direkt am Anfang erledigen um nicht zuviel Zeit zu verlieren - der Rest kommt noch

Sieht jetzt so aus:

MQTT2_zigbee_Ikea_Remote_1:action:.(toggle|brightness_(down|up)_click) {

  if ($EVTPART1 eq 'toggle') {
    fhem 'set MQTT2_zigbee_Ikea_Trafo_1 toggle';
    return;
  };
 
  if ($EVTPART1 eq 'brightness_up_click') {
    my $brightness = min( ReadingsVal( 'MQTT2_zigbee_Ikea_Trafo_1', 'brightness', 0) + 10, 255);
  # no value > 255
    fhem "set MQTT2_zigbee_Ikea_Trafo_1 brightness $brightness";
    return;
  };
 
  if ($EVTPART1 eq 'brightness_down_click') {
    my $brightness = max( ReadingsVal( 'MQTT2_zigbee_Ikea_Trafo_1', 'brightness', 0) - 10, 0);
  # no value < 0
    fhem "set MQTT2_zigbee_Ikea_Trafo_1 brightness $brightness";
    return;
  };
}


und nach CoolTux:
MQTT2_zigbee_Ikea_Remote_1:action:.(toggle|brightness_(down|up)_click) {

  if ($EVTPART1 eq 'toggle') {
    CommandSet undef, 'MQTT2_zigbee_Ikea_Trafo_1 toggle';
    return;
  };
 
  if ($EVTPART1 eq 'brightness_up_click') {
    my $brightness = min( ReadingsVal( 'MQTT2_zigbee_Ikea_Trafo_1', 'brightness', 0) + 10, 255);
  # no value > 255
    CommandSet undef,  "MQTT2_zigbee_Ikea_Trafo_1 brightness $brightness";
    return;
  };
 
  if ($EVTPART1 eq 'brightness_down_click') {
    my $brightness = max( ReadingsVal( 'MQTT2_zigbee_Ikea_Trafo_1', 'brightness', 0) - 10, 0);
  # no value < 0
    CommandSet undef,  "MQTT2_zigbee_Ikea_Trafo_1 brightness $brightness";
    return;
  };
}


aber keine Doku zu CommandSet gefunden ;-(
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

CoolTux

Zu CommandSet habe ich auf die schnelle auch nichts gefunden. Muss man sich also aus der fhem.pl anschauen. Hilft nichts.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

nils_

ich würde den up/down anteil zusammenfassen. da geht bestimmt noch mehr (vor allem die if( ... or ...) könnte man vermutlich mit einem regex bauen, da ich das aber nicht kann hab ich es so geschrieben :) )
MQTT2_zigbee_Ikea_Remote_1:action:.(toggle|brightness_(down|up)_click) {

  if ($EVTPART1 eq 'toggle') {
    CommandSet undef, 'MQTT2_zigbee_Ikea_Trafo_1 set toggle';
    return;
  };

  if ( ($EVTPART1 eq 'brightness_up_click') or ($EVTPART1 eq 'brightness_down_click') )
  {
    my $brightness = ReadingsVal( 'MQTT2_zigbee_Ikea_Trafo_1', 'brightness', 0)
    $brightness = min( $brightness + 10, 255) if ($EVTPART1 eq 'brightness_up_click');
    $brightness = max( $brightness - 10, 0) if ($EVTPART1 eq 'brightness_down_click');
   
    CommandSet undef,  "MQTT2_zigbee_Ikea_Trafo_1 set brightness $brightness";
    return;
  }; 
}
viele Wege in FHEM es gibt!

Wuppi68

Zitat von: CoolTux am 09 April 2020, 07:06:48
Zu CommandSet habe ich auf die schnelle auch nichts gefunden. Muss man sich also aus der fhem.pl anschauen. Hilft nichts.
hatte noch ein set aus dem Code rausgenommen ...
die Syntax ist relativ einfach zu benutzen.

CommandSet undef,  "$DEVICE" $SETPARAMETER"

also aus

'fhem set Lampe on' wird CommandSet undef, 'Lampe on'
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

Wuppi68

Zitat von: nils_ am 09 April 2020, 08:47:18
ich würde den up/down anteil zusammenfassen. da geht bestimmt noch mehr (vor allem die if( ... or ...) könnte man vermutlich mit einem regex bauen, da ich das aber nicht kann hab ich es so geschrieben :) )
MQTT2_zigbee_Ikea_Remote_1:action:.(toggle|brightness_(down|up)_click) {

  if ($EVTPART1 eq 'toggle') {
    CommandSet undef, 'MQTT2_zigbee_Ikea_Trafo_1 toggle';
    return;
  };

  if ( ($EVTPART1 eq 'brightness_up_click') or ($EVTPART1 eq 'brightness_down_click') )
  {
    my $brightness = ReadingsVal( 'MQTT2_zigbee_Ikea_Trafo_1', 'brightness', 0)
    $brightness = min( $brightness + 10, 255) if ($EVTPART1 eq 'brightness_up_click');
    $brightness = max( $brightness - 10, 0) if ($EVTPART1 eq 'brightness_down_click');
   
    CommandSet undef,  "MQTT2_zigbee_Ikea_Trafo_1 brightness $brightness";
    return;
  }; 
}


Hallo nils_,

die regex dazu steht doch in der ersten Zeile ;-) da muss nur das toggle| wieder raus.

Ich habe zwar keine Performance Tests gemacht, aber mein Bauch sagt mir, das ein Vergleich mit einer regex deutlich länger braucht als eine Zuweisung.

Bei Deinem Code hast Du 1 bzw. 2 - wegen oder - Vergleiche und wenn dann der Code ausgeführt wird, 2 Zuweisungen (min und max) mit Vergleich
Bei mir ist es dann nur noch ein Vergleich ...

Wenn die Verzweigungen dann irgendwann zu viele werden, also Zuviel CPU Zeit kosten könnten, dann sollte man auf die if ... then .. elseif oder given ... select ausweichen

Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

RichardCZ

#8
So lange man sich sicher sein kann weiter oben im Code alle Events abzufangen
(und eben mit return rauszuspringen), kann man den allerletzten Zweig als Default nehmen
und sich das letzte If und sogar das return sparen (wir sind hier ja eh im eval lala-land)

Im übrigen brauchen if-Blöcke kein schliessendes Semikolon: if (x) { ...};

MQTT2_zigbee_Ikea_Remote_1:action:.(toggle|brightness_(down|up)_click) {

  if ($EVTPART1 eq 'toggle') {
    CommandSet undef, 'MQTT2_zigbee_Ikea_Trafo_1 toggle';
    return;
  }

  my $brightness = ReadingsVal( 'MQTT2_zigbee_Ikea_Trafo_1', 'brightness', 0); # edit: aber Statements brauchen schon ein Semikolon
  $brightness = min( $brightness + 10, 255) if ($EVTPART1 eq 'brightness_up_click');
  $brightness = max( $brightness - 10, 0)   if ($EVTPART1 eq 'brightness_down_click');
   
  CommandSet undef,  "MQTT2_zigbee_Ikea_Trafo_1 brightness $brightness";
}
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Beta-User

...auch ein nettes Thema...

Frage: wäre eine regex nicht schneller als "eq"?

min dürfte "falsch" sein, => minNum

Dann haben wir in Zweig 2 eigentlich nur "up" oder "down" =>" eq 'up' ? maxNum+10 : ... ;"




Dann:
"sowas" sollte man eigentlich generalisieren...
=> warum nicht einfach das Zieldevice, den Event und die Type (100% oder 0-255) übergeben?
=> warum nicht gleich eine nichtlineare Option einbauen (nicht selten ist der Effekt 0%=>10 % sehr viel deutlicher als 80%=>90%)
=> warum nicht gleich eine Option für "nicht-HM"-like Behaviour einbauen => (optionale) selbsttriggernde loop, die bei einem "release"-Event dann unterbrochen wird...

(Wäre eine super Sache zur Darstellung, wie man von einem einfachen notify zu generalisiertem Code kommt...).
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

RichardCZ

Zitat von: Beta-User am 09 April 2020, 11:52:08
...auch ein nettes Thema...

Frage: wäre eine regex nicht schneller als "eq"?

Nein. eq ist wesentlich schneller.

Zitat
min dürfte "falsch" sein, => minNum

um Gottes Willen! dann nicht. Der Sinn der Übung sollte sein dieses vermaledeite eigene Rad durch die List::Util Funktionen zu ersetzen und lieber früher als später zu begraben.




Zu der "Meta-Ebene":

Zitat
Dann:
"sowas" sollte man eigentlich generalisieren...
=> warum nicht einfach das Zieldevice, den Event und die Type (100% oder 0-255) übergeben?
=> warum nicht gleich eine nichtlineare Option einbauen (nicht selten ist der Effekt 0%=>10 % sehr viel deutlicher als 80%=>90%)
=> warum nicht gleich eine Option für "nicht-HM"-like Behaviour einbauen => (optionale) selbsttriggernde loop, die bei einem "release"-Event dann unterbrochen wird...

(Wäre eine super Sache zur Darstellung, wie man von einem einfachen notify zu generalisiertem Code kommt...).

Zustimmung zu allem.
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

mahowi

Wenn ich List::Util importiere, was hat denn dann bei Aufruf von min bzw. max Vorrang? Die Funktion aus List::Util oder die in FHEM definierte?
CUBe (MAX): HT, FK | CUBe (SlowRF): ESA2000WZ
JeeLink: LaCrosse | nanoCUL433: Smartwares SHS-51001-EU, EM1000GZ
ZME_UZB1: GreenWave PowerNode, Popp Thermostat | SIGNALDuino: HE877, X10 MS14A, Revolt NC-5462,  IT Steckdosen + PIR
tado° | Milight | HUE, Lightify | SmarterCoffee

Beta-User

Zitat von: RichardCZ am 09 April 2020, 12:00:22
Nein. eq ist wesentlich schneller.
Thx!

Zitatum Gottes Willen! dann nicht. Der Sinn der Übung sollte sein dieses vermaledeite eigene Rad durch die List::Util Funktionen zu ersetzen und lieber früher als später zu begraben.
Dann würde es doch Sinn machen, die Funktion schlicht und ergreifend mit dem passenden Package-Präfix anzusprechen und gut ist, oder ;) ?

(Dann können sich die user auch sschon mal an diese Doppelpunkte gewöhnen :P .)
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

RichardCZ

Zitat von: mahowi am 09 April 2020, 12:15:00
Wenn ich List::Util importiere, was hat denn dann bei Aufruf von min bzw. max Vorrang? Die Funktion aus List::Util oder die in FHEM definierte?

Also wenn man einen eigenen Namespace hat - was man ja haben sollte - und nicht ständig im main rumfleucht, dann die Importierte.

Falls man in main rumfleucht... dann ist natürlich Ärger vorprogrammiert. Je später die Therapie, desto größer die Entzugserscheinungen.
Man hat sich zu lange Gift in die Venen gespritzt und jetzt braucht es der Körper. Ist halt Pech.

Ansonsten wie Beta-User sagte:   List::Util::min(x,y)

sieht zwas sch* aus, könnte aber derzeit eine akzeptable Übergangslösung sein.
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Wuppi68

Zitat von: Beta-User am 09 April 2020, 11:52:08




Dann:
"sowas" sollte man eigentlich generalisieren...
=> warum nicht einfach das Zieldevice, den Event und die Type (100% oder 0-255) übergeben?
=> warum nicht gleich eine nichtlineare Option einbauen (nicht selten ist der Effekt 0%=>10 % sehr viel deutlicher als 80%=>90%)
=> warum nicht gleich eine Option für "nicht-HM"-like Behaviour einbauen => (optionale) selbsttriggernde loop, die bei einem "release"-Event dann unterbrochen wird...

(Wäre eine super Sache zur Darstellung, wie man von einem einfachen notify zu generalisiertem Code kommt...).

- Generalisierung grundsätzlich immer wo es geht ;-) In meinem besonderen Falle macht es aber wenig Sinn
- die nicht lineare Funktion ist schon auf meinem Schirm, da muss aber noch ein Qualifier mit rein, der die Kurve bestimmt (LED vs. alter "Birne" vs. Dimmkurven in der Hardware)
- meine Tradfri FB möchte ich für die Long Klicks (Presses und Released) für die Sonos Steuerung benutzen ;-) - Ist aber mit den Latenzen ziemlich doof als Mensch dann zu bedienen
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

Beta-User

Zitat von: Wuppi68 am 09 April 2020, 14:59:35
- Generalisierung grundsätzlich immer wo es geht ;-) In meinem besonderen Falle macht es aber wenig Sinn
- die nicht lineare Funktion ist schon auf meinem Schirm, da muss aber noch ein Qualifier mit rein, der die Kurve bestimmt (LED vs. alter "Birne" vs. Dimmkurven in der Hardware)
- meine Tradfri FB möchte ich für die Long Klicks (Presses und Released) für die Sonos Steuerung benutzen ;-) - Ist aber mit den Latenzen ziemlich doof als Mensch dann zu bedienen
Durchaus verständlich, es war eher als "Bitte, denke mal drüber nach, dazu einen Wiki-Artikel zu verfassen ;) " (und bei der Gelegenheit gleich noch einen generalisierten Code für Utils.pm bereitzustellen!) von mir an dich zu verstehen :P .

Dass man für die nichtlineare Variante ein oder sogar zwei Parameter braucht, ist klar (hatte ich "optional" geschrieben oder nicht?!?), und für linear ohne Parameterangabe kennen wir jetzt ja alle "//" (ich btw. schon länger :P ).

Was die FB angeht: Latenzen sind ein sch... Thema, und für Lautstärke ist es ganz besonders dusselig. Für das sind einfach Input-Devices besser, bei denen man (ungefähr) abschätzen kann, was passiert; grade für sowas (dto. Rolläden und Lamellenposition) finde ich die Milight-Hub-Lösung eigentlich ganz elegant, da hat man wenigstens auf der Fernbedienung selbst einen Anhaltspunkt für "wo wer wie was"...

(Witzchen am Rande: Erst war der Speicher auf meinem ESP8266 (Wemos-Clon) defekt, neulich hatte ich WLAN-Trouble, weil mein DD-WRT-Router irgendwie in den Wald gelaufen ist; danach waren sowohl ein Tasmota-Device im AP-Mode wie der neue ESP8266 offline, auf dem das "Sidoh-Gateway" läuft (das lief vorher gefühlt > 18 Monate ohne irgendeinen Mucks zu lassen!). )
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

herrmannj

Zitat von: Wuppi68 am 09 April 2020, 14:59:35
- die nicht lineare Funktion ist schon auf meinem Schirm, da muss aber noch ein Qualifier mit rein, der die Kurve bestimmt (LED vs. alter "Birne" vs. Dimmkurven in der Hardware)
dat is easy.

Werte zuerst auf den Bereich 0..1 (float). Danach $raus = $rein ** $x ($rein hoch $x)* ($x idR so bei 1.3). Danach $raus ans Gerät anpassen, also *255 für 0..255 oder *100 für 0..100

* 1= linear, 1.3 am Anfang langsamer dann schneller

RichardCZ

Generalisierung ist zwar zu begrüßen, aber auch da gibt es dann irgendwo eine Linie zum "Zuviel des Guten".

Ich war auch früher auf dem "as generic as possible" Trip, aber da ist man dann auch schnell in Overengineering-City. (Codebeispiele verfügbar)
Also wie üblich eine feine Balance finden ... oder Pareto.
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.

Beta-User

Zitat von: RichardCZ am 09 April 2020, 15:27:23
Generalisierung ist zwar zu begrüßen, aber auch da gibt es dann irgendwo eine Linie zum "Zuviel des Guten".

Ich bin da in weiten Teilen bei dir und würde jetzt z.B. auch nicht vorschlagen, das dahingehend zu erweitern, dass man an die Funktion nur das Device und das Event übergibt, aus dem dann ermittelt wird, welches das Zieldevice ist und wie weit die Dimmschritte zu sein haben...
(Ich habe solche Konstruktionen, aber wenige!)

Aber einen generalisierten Dimmer-Code bereitzustellen (bzw. zwei: einen für immer, wenn eine Taste gedrückt wird, einen für "ab Tastendruck" und "bis Taste loslassen"), finde ich eigentlich nicht "overengineered", zumal, wenn der 3. Parameter optional ist... Sondern eben genauso einen "Dienst am user" wie devStateIcon in Color.pm.
(Hmm, bei genauer Betrachtung: "eigentlich" müßte man noch automatisiert ermitteln, ob das Zieldevice in der Lage ist, den Dimmvorgang selbstständig .. *duck und weg*)

Braucht "man" ständig bzw. in ganz vielen Installationen, und die Leute suchen sich einen Wolf, wenn sie sowas z.B. für einen ZWave-Taster finden wollen...

Just my2ct.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

Wuppi68

#19
Zitat von: Beta-User am 09 April 2020, 15:40:02

Braucht "man" ständig bzw. in ganz vielen Installationen, und die Leute suchen sich einen Wolf, wenn sie sowas z.B. für einen ZWave-Taster finden wollen...

Just my2ct.

wäre es nicht cool, dieses in die setextensions.pm zu packen und dort die Funktionen dim(Up|Down)(Start|Stop) mit den Parametern Speed, ValueRange und dimCurve zu verankern?
dasselbe natürlich dann auch direkt dem den beiden Settern dim(Up|Down)
Jetzt auf nem I3 und primär Homematic - kein Support für cfg Editierer

Support heißt nicht wenn die Frau zu Ihrem Mann sagt: Geh mal bitte zum Frauenarzt, ich habe Bauchschmerzen

Beta-User

Zitat von: Wuppi68 am 09 April 2020, 15:57:03
wäre es nicht cool, dieses in die setutils zu packen und dort die Funktionen dim(Up|Down)(Start|Stop) mit den Parametern Speed, ValueRange und dimCurve zu verankern?
dasselbe natürlich dann auch direkt dem den beiden Settern dim(Up|Down)
Falls sich die Frage an mich richtet:
Ich bin da leidenschaftslos, was das wohin und unter welchem Namen angeht. Es macht nur m.E. wenig Sinn, das "jedem user" zur Übernahme in myUtils zu empfehlen, das ist wirklich Standardfunktionalität.... M.E. braucht man "das Perl" auch nicht vor dem user zu verstecken. Wir sollten den usern eher beibringen, wie man "sinnvoll" mit dem Werkzeugkasten umgeht, und dazu gehört eben auch der eine oder andere direkte Perl-Befehl, meine Meinung dazu ist ja auch an anderer Stelle etwas ausführlicher wiederzufinden.

Um es etwas drastisch zu formulieren: Wen das "Perl-Gedöns" wirklich stört, ist bei FHEM falsch (bzw. er sollte seine Haltung überdenken).

just my2ct.
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

RichardCZ

Zitat von: Beta-User am 09 April 2020, 16:05:29
Um es etwas drastisch zu formulieren: Wen das "Perl-Gedöns" wirklich stört, ist bei FHEM falsch (bzw. er sollte seine Haltung überdenken).

;) Tja - das ist z.B. ein Rad, das OpenHAB neu erfindet. Eine eigene Scripting Language. Da schaue ich auch genüsslich zu.
Witty House Infrastructure Processor (WHIP) is a modern and
comprehensive full-stack smart home framework for the 21st century.