FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Invers am 06 Januar 2014, 11:53:08

Titel: AT schaltet nicht, warum?
Beitrag von: Invers am 06 Januar 2014, 11:53:08
Dieser AT soll die Lampe anschalten, wenn twilight_weather >31.1 ist und ich zu Hause bin.
Klappt leider nicht. Was ist denn falsch daran?

define StehlampeAutoAn at +*00:00:05 {if ((ReadingsVal("myTwilight","twilight_weather",0) > 31.1,0) && (Value("BinIchDa") eq "present")) { fhem ("set Stehlampe on")}}

Danke im Voraus.


Edit:
Hat keiner eine Idee? Ich bekomme keinerlei Fehlermeldung und mir wird auch brav die Zeit des nächsten Events angezeigt.
Titel: Antw:AT schaltet nicht, warum?
Beitrag von: koldomon am 06 Januar 2014, 15:57:53
ReadingsVal("myTwilight","twilight_weather",0) > 31.1,0

was macht das ",0" da hinter dem 31.1?

ich hab den code mal eingerückt

define StehlampeAutoAn at +*00:00:05 {
if ((ReadingsVal("myTwilight","twilight_weather",0) > 31.1,0) && (Value("BinIchDa") eq "present"))
{
fhem ("set Stehlampe on")
}
}


ich sehe das mit dem ",0" und hinter der fhem anweisung fehlt der ";" und ob es da klammern braucht weiss ich nicht genau. probier mal folgendes als "DEF" bei deinem "at".

{
if ((ReadingsVal("myTwilight","twilight_weather",0) > 31.1) && (Value("BinIchDa") eq "present"))
{
fhem "set Stehlampe on";
}
}
Titel: Antw:AT schaltet nicht, warum?
Beitrag von: Invers am 06 Januar 2014, 16:39:04
Vielen Dank, es lag tatsächlich an dem fehlenden Semikolon. Ich hatte salles Mögliche probiert, habe es aber einfach nicht erkannt. Zumindest diesen Fehler mache ich nie wieder. :-)
Titel: Antw:AT schaltet nicht, warum?
Beitrag von: koldomon am 07 Januar 2014, 17:36:45
Na prima, wieder ein glücklicher FHEMer  8)

Ich kann es nur immer wieder empfehlen, auch wenn's lästig ist. Code sauber einrücken, dann fallen Fehler am schnellsten auf. Vergessene Klammern werden als Fehlerursache immer wieder gern genommen

cu markus
Titel: Antw:AT schaltet nicht, warum?
Beitrag von: Zrrronggg! am 07 Januar 2014, 20:59:04

Hm. Also ich darf mal anmerken, das da keineswegs eine Semikolon hinter der FHEM Anweisung fehlt. Das Semikolon ist definitv NICHT notwendig.

D.H. das Semikolon an der Stelle einzufügen kann NICHT die Ursache gewesen sein, warum es jetzt geht!

Nur mal zur Erinnerung: das Semikolon trennt unterschiedliche Befehle. Wenn nach dem letzten Semikolon nix mehr kommt, bracht auch nix abgetrennt zu werden, also braucht man nach dem letzten Befehl auch keine Semikolon.

Das wird hier im Forum trotzdem gerne so geschrieben. Der Vorteil mag sein, das man bei späteren Ergänzungen das Semikolon dann nicht so leicht vergisst.

Und meiner Meinung nach braucht's Klammern. Oder zumindest: Es braucht Klammern, wenn wenn man mehr als eine FHEM Anweisung hat, dann muss man aber auch das Semikolon escapen (verdoppeln)
Titel: Antw:AT schaltet nicht, warum?
Beitrag von: Invers am 07 Januar 2014, 23:55:58
Ich habe auch kein doppeltes Semikolon drinnen, hatte es aber zu Testzwecken immer wieder mit beiden Varianten probiert, weil ich nicht wissen konnte, was richtig ist. Ich weiss also nicht, ob es mit doppeltem Semikolon geklappt hätte, werde es aber morgen mal probieren. Der endgültige, nun funktionierende Code sieht komplett so aus:

attr Stehlampe_AutoAn disable 1
attr Stehlampe_AutoAn room Temperatur
define TVLICHT_hinten_AutoAn notify myTwilight:twilight_weather.* {Log(3,"Notify geprueft");;if (ReadingsVal("myTwilight","twilight_weather",0) <= 22 && Value("BinIchDa") eq "present"){fhem("set TVLICHT_hinten on");;fhem("attr TVLICHT_hinten_AutoAn disable 1");;}}\


Edit: Sorry, der Code gehört eigentlich nicht hierher, ich bezog mich auf einen aneren Beitrag von heute.
Titel: Antw:AT schaltet nicht, warum?
Beitrag von: Puschel74 am 08 Januar 2014, 08:28:35
Hallo,

wenn jemand die fhem.cfg direkt bearbeitet - ob Anfänger/Neuling oder nicht - muss sich dieser selbst um die Zeilenenden \ und die Zeichenverdoppelungen ;; kümmern.
Ich rate jedem! der sich nicht sicher ist wann was zu verdoppeln ist und wann Zeilenenden zu maskieren sind die Finger von der fhem.cfg zu lassen.

@Invers
Dein geposteter Code kommt direkt aus der fhem.cfg

@all
Wenn es zu solchen Codes Fragen oder Fehlermeldungen gibt werde ich diese Codes auf FHEMWEB-Niveau eindampfen und meine Lösung posten.
Diese ist dann aber für das DEF und nicht die fhem.cfg

Wenn meine "eingedampften" Codes wieder in die fhem.cfg sollen/müssen dann muss jeder selbst schauen welche Zeichen wie verdoppelt, geschützt, maskiert etc. werden müssen.
Sonst hagelt es beim einfachen copy&paste Fehlermeldungen.

Grüße
Titel: Antw:AT schaltet nicht, warum?
Beitrag von: Invers am 08 Januar 2014, 09:28:22
Das ist ein Irrtum.
Der Code kommt zwar daher, aber ich habe die cftg nicht bearbeitet, sondern nur den Code herauskopiert, um ihn hier darzustellen.
Seit dem Hinweis, den ich von Rudolph König erhalten hatte, habe ich die CFG nie mehr per Hand bearbeitet, sondern nur noch eingesehen.
Ich halte mich immer an Tipps, die ich bekommen habe. :-)
Titel: Antw:AT schaltet nicht, warum?
Beitrag von: Puschel74 am 08 Januar 2014, 09:59:10
Hallo,

ZitatDas ist ein Irrtum.
Ich habe nicht geschrieben das du den Code in der fhem.cfg bearbeitet hast  ;)

ZitatDein geposteter Code kommt direkt aus der fhem.cfg

Grüße
Titel: Antw:AT schaltet nicht, warum?
Beitrag von: Invers am 08 Januar 2014, 11:52:42
Sorry, hab ich falsch verstanden. Wollte es nur vorsichtshalber erwähnt haben.