Steckdose nach Temperatur schalten

Begonnen von hardy1204, 30 Juli 2023, 16:00:41

Vorheriges Thema - Nächstes Thema

hardy1204

Da ich nichts besseres gefunden habe, möchte hier https://forum.fhem.de/index.php?topic=5973.msg23690#msg23690 noch mal anknüpfen.

Würde auch gern eine Steckdose nach Temperatur schalten, mache das bisher über die Alarmfunktion des Temperaturfühlers.
zB so, define n_Heizstab_Speicher_off notify Speicher_Oben:alarm:.*1 set Heizstab_Speicher off
       define n_Heizstab_Speicher_on notify Speicher_Oben:alarm:.*0 set Heizstab_Speicher on   

würde das aber gern anders lösen, so wie dort beschrieben.
Wenn ich das jetzt so für mich ändere

define Heizstab_Speicher.n1 notify Speicher_Oben:.*temperature.* { my @@tf =
split(" ", $value{"Speicher_Oben"});; if ($tf[1] < 55.0) { fhem "set
Heizstab_Speicher on-for-timer 960" };; }

bekomme ich die Fehlermeldung

Can't use global @@ in "my" at (eval 239715) line 1, near "my @@"
syntax error at (eval 239715) line 1, near "@@tf "
Global symbol "@tf" requires explicit package name (did you forget to declare "my @tf"?) at (eval 239715) line 1.
syntax error at (eval 239715) line 1, near "}}"

Kann mir jemand erklären was ich da Falsch mache?

JoWiemann

Hallo,

@@ ist auch bei "RAW defintion" ein Fehler. Also auf ein @ reduzieren:

my @tf = split(" ", $value{"Speicher_Oben"})

Mir ist nur nicht klar, wie Du auf copy/paste kommst.

Die Perl Funktion split überführt einen Text/Auflistung in ein Array, basierend auf dem mitgegebenen Trenner.

Beispiel:

my $Text = "150 24 300";
my @Array = split(" ", $Text);

$Array[0] == 150
$Array[1] == 24
$Array[2] == 300

Enthält denn Dein $value{"Speicher_Oben"} eine durch Leerzeichen getrennte Werteliste, so dass $tf[1] die Temperatur beinhaltet.

Grüße Jörg
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

hardy1204

#2
Danke für die schnelle Analyse,
es war das eine @,
Nun funktioniert es.

Beta-User

Bitte an den TE: Thread verschieben, das gehört in den Anfängerbereich, aber jedenfalls nicht in den für (fertige) Schnipsel!
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: ZigBee2mqtt, MiLight@ESP-GW, BT@OpenMQTTGw | ZWave | SIGNALduino | MapleCUN | RHASSPY
svn: u.a Weekday-&RandomTimer, Twilight,  div. attrTemplate-files, MySensors