FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: curt am 30 März 2020, 06:52:07

Titel: [gelöst] define at mit if und einem Device-Wert
Beitrag von: curt am 30 März 2020, 06:52:07
Boah, was bin ich unwissend  :-[
Ich will ganz schnöde mir via telegram einmal am Tag sagen lassen, welchen Topf ich gießen muss - scheitere aber dramatisch:

define at_check_lorbeer_giessen at *20:00:00 { if(XT300_2:humidity -lt 70 ) { fhem("set teleBot message Lorbeer giessen") }}

Da wirft er mir einen Syntaxfehler. Ok, das wird wohl mal der Doppelpunkt sein. Neh, doch nicht.

Mag FHEM keine doppelte geschweifte Klammersetzung? Oder was habe ich übersehen?

Zusatzfrage:
Kann ich so (XT300_2:humidity) überhaupt Readings in dieser Konstellation ansprechen?

Ich freue mich auf eure Antworten - und
bleibt fein gesund!
Titel: Antw:define at mit if und einem Device-Wert
Beitrag von: MadMax-FHEM am 30 März 2020, 08:03:30
Also ob "set magic" bzw. "get magic" ;) auch bei at geht: keine Ahnung...

Ich nutze immer ReadingsVal/ReadingsNum...

Auf jeden Fall:

dein -lt ist Linux bash...

in Perl wäre es lt (glaube ich)

Allerdings: bei numerischen Werten ist es > bzw. < ;)

https://de.m.wikibooks.org/wiki/Perl-Programmierung:_Operatoren


define at_check_lorbeer_giessen at *20:00:00 { if(ReadingsNum("XT300_2","humidity",0) < 70 ) { fhem("set teleBot message Lorbeer giessen") }}


Könnte gehen...

Gruß, Joachim
Titel: Antw:define at mit if und einem Device-Wert
Beitrag von: rabehd am 30 März 2020, 08:08:22
ZitatKann ich so (XT300_2:humidity) überhaupt Readings in dieser Konstellation ansprechen?

Woher soll erkennbar sein, dass das ein Decive und Reading ist?
Entweder miteckigen Klammern im DOF oder wie Joachim geschrieben hat.
Meine Anwort auf Deine Frage: Nein.
Titel: Antw:define at mit if und einem Device-Wert
Beitrag von: curt am 30 März 2020, 08:18:10
@MadMax-FHEM
Zitat von: MadMax-FHEM am 30 März 2020, 08:03:30
Ich nutze immer ReadingsVal/ReadingsNum...

Ich habe Deinen Vorschlag geklaut und zumindest wirft FHEM mir keinen Fehler aus. Ich kann noch nicht sagen, ob das Konstrukt funktioniert - danke aber vorab schon.

Zitat von: MadMax-FHEM am 30 März 2020, 08:03:30
Auf jeden Fall:
dein -lt ist Linux bash...
in Perl wäre es lt (glaube ich)

Eher ist es andersrum: FHEM-Perl ist nicht wirklich Perl:
Mit "lt" wirft er mir einen zusätzlichen Fehler, mit "-lt" ist der weg.

Wenn Dein Vorschlag auch technisch funktioniert, melde ich mich in diesem Thread nie wieder - und Du bekommt als Dank meinen auf Pappe gemalten Orden mit der strahlenden Sonne.

Und wenn es nicht funktioniert ... dieser Thread.

Bleibt alle fein gesund.
Titel: Antw:define at mit if und einem Device-Wert
Beitrag von: MadMax-FHEM am 30 März 2020, 08:23:26
Da bin ich ja gespannt...

Trotzdem isses bei Perl lt und nicht -lt ... ;)

Du kannst es auch "simulieren":


setreading XT300_2 humidity 60

(sollte sie aktuell zu feucht sein. Es wird ja beim nächsten echten Sensorwert wieder "korrigiert")

Und bei at gibt es "set execNow"...

Gruß, Joachim
Titel: Antw:define at mit if und einem Device-Wert
Beitrag von: curt am 30 März 2020, 08:34:31
Ich weiß, ich weiß. Du trägst grad Eulen nach Athen.

Und
set at_check_lorbeer_giessen execNow
kenne ich auch.

Von daher darf ich berichten: Es funktioniert - auf dem Handy kommt das telegram an.

So, Bauch rein, Brust raus:
Ich hefte Dir gerade meinen Goldenen Papporden "Freundlicher Helfer des Tages" an Deine Brust.

Danke, Joachim!
Titel: Antw:[gelöst] define at mit if und einem Device-Wert
Beitrag von: MadMax-FHEM am 30 März 2020, 08:51:18
Hallo curt,

oh, dann schon mal vielen Dank für den Orden! :)

Aber vorsichtig mit der Nadel! ;)

Viel Spaß noch, Joachim
Titel: Antw:[gelöst] define at mit if und einem Device-Wert
Beitrag von: curt am 30 März 2020, 09:01:59
OT:
Ich habe Mundschutz und Gummihandschuhe an. Die Nadel besteht aus einem Streichholz - das ist doch ein selbstgemalter und ausgeschnittener Orden auf Pappe.
Titel: Antw:[gelöst] define at mit if und einem Device-Wert
Beitrag von: MadMax-FHEM am 30 März 2020, 09:06:27
ok, dann ist gut! :)

OT-Ende ;)