Hauptmenü

FHEM

Begonnen von -user-, 06 April 2021, 10:52:23

Vorheriges Thema - Nächstes Thema

Beta-User

...my $foo = 'ba' if $baz?!?

Vielleicht eher caller?
https://kb.wisc.edu/iam/page.php?id=4309

(und ergänzend mal ein grep nach der sub über die cfg laufen lassen kann auch nicht schaden)
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

CoolTux

Zitat von: Beta-User am 12 April 2021, 14:05:18
...my $foo = 'ba' if $baz?!?

Vielleicht eher caller?
https://kb.wisc.edu/iam/page.php?id=4309

(und ergänzend mal ein grep nach der sub über die cfg laufen lassen kann auch nicht schaden)

Können wir dann auch gerne noch probieren.
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

Beta-User

irgendwie sieht mir das nach einer verwaisten myUtils-Geschichte aus, das grep sollte daher auch die myUtisl-Dateien umfassen.

Ansonsten: qed...
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

CoolTux

sub GetUpdate {
    my ( $package, $filename, $line ) = caller();
    Log3( $name, 1, qq{DEBUG!!! myUtils Name ist $filename, $package, $line} );
}


Hoffe das geht so. Ungetestet
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

Beta-User

eher:

sub GetUpdate {
    my $parent = ( caller(1) )[3];   
    my $file = ( caller(1) )[2];
    Log3( $name, 1, qq{DEBUG! myUtils Name ist $file, $parent} );
}
Aber es sieht so aus, als käme man der Sache auch so näher...
Oder den caller-Stack noch um eines erhöhen.

Aber wenn es aus fhem.pl aufgerufen wird, klingt das danach, als wäre der Aufruf in der cfg zu finden.
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

Beta-User

Zitat von: fhempi am 12 April 2021, 14:23:17
Global symbol "$name" requires explicit package name (did you forget to declare "my $name"?) at ./FHEM/99_myUtils.pm line 35.
Ah, sorry, einfach undef statt $name (ohne Quotes).
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

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

CoolTux

ändere Zeile 395 in 98_ComfoAir.pm.
InternalTimer(gettimeofday()+1, "ComfoAir::GetUpdate", $hash, 0);

Ändere Zeile 804
InternalTimer(gettimeofday()+$hash->{INTERVAL}, "ComfoAir::GetUpdate", $hash, 0)
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

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

Beta-User

Ähm, das ist doch gepackaged!?!

Dann paßt dieser Befund mAn. nicht zu der Fehlermeldung aus dem ersten Post:
&main::GetUpdate
Oder findet da ein Export statt?
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

CoolTux

Zitat von: fhempi am 12 April 2021, 14:37:34
Ok, DANKE ! , geändert, scheint zu laufen  :)

Wie war Deine ERSTE Version des subGetUpdate () ? um
2021.04.12 14:01:46 1: DEBUG!!! myUtils Name ist KWL

Dein Beitrag um 13:59 VOR der Änderung ? dabei kam der Hinweis auf KWL bzw. 98_ComfoAir ...

Keine Ahnung mehr.
Aber nun lösche erstmal die myUtils Funktion und dann schauen wir mal ob es noch läuft
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

Beta-User

Wo kommt KWL her?

Nochmal: Diese Funktion von Stefan ist es vermutlich eher nicht, und es macht beim Starten ggf. Sinn, direkt ein update anzufordern.

Falls KWL die Vorgängerversion war von dem ComfAir-Ding: Diese (99-utils?) Datei umbenennen!
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

Beta-User

schau mal, ob du noch ein "WHR962" definiert hattest.

Ah, sorry, das deckt sich nicht mit dem patch:
Zitat von: CoolTux am 12 April 2021, 14:31:31
ändere Zeile 395 in 98_ComfoAir.pm.
InternalTimer(gettimeofday()+1, "ComfoAir::GetUpdate", $hash, 0);

Ändere Zeile 804
InternalTimer(gettimeofday()+$hash->{INTERVAL}, "ComfoAir::GetUpdate", $hash, 0)
Da scheint im Original die erste Fassung so gestanden zu haben:
InternalTimer(gettimeofday()+1, "GetUpdate", $hash, 0);

@CoolTux: Vermutlich ist das mit +1 schon gewollt, nur der Verweis geht ins Leere und sollte entweder mit dem Package-Prefix sein wie vorgeschlagen, oder eben dann als Funktionsreferenz übergeben werden:
InternalTimer(gettimeofday()+1, \&GetUpdate, $hash, 0);
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

Beta-User

...dachte ich mir auch, nachdem ich die Diskrepanz zwischen dem Post hier und dem Patch gesehen habe - siehe meinen editierten Vorpost...
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

CoolTux


InternalTimer(gettimeofday()+1, "GetUpdate", $hash, 0);


Dieser Aufruf der Funktion InternalTimer sorgt dafür das die Funktion GetUpdate im main Kontext aufgerufen wird. Das ist aber falsch. Denn die Funktion liegt im package Kontext von ComfoAir

ACHTUNG!!! Das sind 2 unterschiedliche Zeilen welche geändert werden müssen
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