myUtils und mehrere Rückgabe Variablen

Begonnen von riker1, 23 Oktober 2018, 14:31:55

Vorheriges Thema - Nächstes Thema

riker1

Hi
Hätte eine Frage.-

wie muss ich denn ich denn das return schreiben, wenn ich mehrere Variablen zurückgeben will?

Danke für die Klarstellung

return $a $b?

mit Komma, oder Blank, oder ; ?

Danke T
FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox

CoolTux

Kommt drauf an was für einen Variablentyp Du zurück gibst.
Am einfachsten

Skalar

return ($a,$b);
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

riker1

FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox

betateilchen

perl Grundlagen, Vorwort zu Kapitel 1  8)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

riker1

#4
ok, danke,

trotzdem vielleicht noch die Frage...

{myfunction()}
wenn return ($a,$b) in mysub angelegt ist.

wie kann ich sie in fhem dann wieder im notify zuweisen?

hatte dann im Notify:

die variablen a und b wieder zuweisen ?

ist es so korrekt?
($a,$b) = {my_function()}

Muss doch ein perl Lehrgang besuchen.... Danke Trotzdem
FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox

JoWiemann

{my ($a, $b) = myFunction();}


Gesendet von iPad mit Tapatalk
Jörg Wiemann

Slave: RPi B+ mit 512 MB, COC (868 MHz), CUL V3 (433.92MHz SlowRF); FHEMduino, Aktuelles FHEM

Master: CubieTruck; Debian; Aktuelles FHEM

CoolTux

Es ist eher untypisch eine Rückgabe eines Funktionsaufrufes in einem Notify weiter zu verarbeiten. Man ruft in einem Notify eine Funktion auf gerade damit das Notify übersichtlich bleibt. Deine komplette Verarbeitung sollte also in der Funktion geschehen inklusive Rückführung in FHEM durch setzen von Readings zum Beispiel oder ausführen von Schaltbefehlen.
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

betateilchen

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

CoolTux

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

riker1

Interessant,

daran habe ich gar nicht gedacht.

kann ich dann ein fhem Befehl einfach so eingeben?

fhem("set dummy  ".$a."-".ReadingsTimestamp('Device','reading','default')."")

Mir ist nicht ganz klar welche Variablen ich hier in myutils dann habe?

Danke
FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox

CoolTux

Du hast genau die Variablen welche du an die Funktion übergibst.
Deine Funktion kann natürlich FHEM Funktionen aufrufen. Eine davon wäre auch fhem()
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

riker1

Ok, danke

kann aber alle Readings mit den normalen Funktionen direkt ansprechen.?
Funktionen wir $hms gehen dann wohl nur wenn ich sie übergebe,
Value()  würde aber gehen?

noch ne kurze Frage

Log 4 habe ich in den Foren gelesen, wo schreibt das denn hin?

FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox

CoolTux

$hms ist eine Variable keine Funktion.
Log() schreibt ins Standard FHEM Logfile.

Vielleicht solltest Du einfach kurz erklären was genau Du vor hast. Klingt nach mehr und dann solltest Du in der Tat Dich mit Perl beschäftigen.
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

riker1

Ja es läuft auf eine Vertiefung  Einarbeitung in perl hinaus.....

danke für die Hilfe
FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox

riker1

Zitat von: CoolTux am 23 Oktober 2018, 17:18:06
$hms ist eine Variable keine Funktion.
Log() schreibt ins Standard FHEM Logfile.

Vielleicht solltest Du einfach kurz erklären was genau Du vor hast. Klingt nach mehr und dann solltest Du in der Tat Dich mit Perl beschäftigen.

Tja, bin am Auslagern in myutils und da kommen dann immer so Probleme Ideen, wie man etwas allgemeiner und variabler machen kann.

Themen sind dabei dann wechselnd - laufend neue Herausforderungen.....

Themen sind dann immer wieder
- auf welcher Ebene bin ich , Fhem, perl, etc.
- Logging Debugging
- perl immer mehr
- Steuerung über Konfig Dummys
...

Beispielsweise liefert mir :

($R_MAC_STATUS, $R_FB_STATUS )= {checkAllErrorFritzMACpresent("88:BD:45:E0:34:BA")};

in my utils:
return ($Status,$StatusFritz)

als Ergebnis bekomme ich :
$R_MAC_STATUS   -> leer
$R_FB_STATUS  -  > hash wert


hätte hier
$R_MAC_STATUS   -> 0
$R_FB_STATUS  -  > inactive


erwartet.

....perl ruft wohl immer lauter.


-
Danke
FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox