FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Parador am 26 Dezember 2018, 08:31:24

Titel: Klammern - no right bracket
Beitrag von: Parador am 26 Dezember 2018, 08:31:24
Guten Morgen Zusammen,

ich hab immer noch Probleme mit den Klammern in FHEM, vielleicht könnt Ihr mir das nochmal erklären, ich kapiere es einfach nicht...

ich bastle an einem at das kurz vor Tageswechsel zwei dummy's wieder auf Null reseten soll, wenn Sie nicht auf Null stehen...

*23:59:59 if ([test_Benutzung_heute] > 0 && [test_Reinigung_heute] > 0)
( set test_Benutzung_heute, test_Reinigung_heute 0; )

und erhalte folgenden Eintrag im Log
Zitat2018.12.26 08:24:46 3: test_Check_Nutzung_Reset: IF: no right bracket: ( set test_Nutzung_heute, test__Reinigung_heute 0
Unknown command ), try help.

Was ich nicht verstehe ist... warum da eine ")" fehlen soll und warum auf der anderen Seite die ")" als
ZitatUnknown Command
bezeichnet wird...
Titel: Antw:Klammern - no right bracket
Beitrag von: Byte09 am 26 Dezember 2018, 08:47:23
da ich normal nicht mit at arbeite nur ein schuss ins blaue .

wenn ich mir das wiki und commandref so anschaue , bin ich mir gar nicht sicher, ob at so mit if umgehen kann - und ich vermute der gesamte ausführunsteil muss im 'perlmodus' stehen.

z.B. https://wiki.fhem.de/wiki/AT_um_eine_Temperaturabh%C3%A4ngige_Nachtabsenkung_zu_realisieren (https://wiki.fhem.de/wiki/AT_um_eine_Temperaturabh%C3%A4ngige_Nachtabsenkung_zu_realisieren)

wenn dem so ist , wird dann wahrscheinlich auch 'setmagic' nicht gehen  , d.h du musst den Zugriff auf die Readings ( [test_Benutzung_heute] ) 'ausschreiben' .

... kann aber auch daneben liegen.

gruss Byte09
Titel: Antw:Klammern - no right bracket
Beitrag von: CoolTux am 26 Dezember 2018, 08:55:57
Byte09 hat es ja schon gesagt. Entweder Du nimmst das FHEM IF oder Du gehst auf Perlebene mit { } und nimmst dann das Perl if



*23:59:59 { if ( Value(test_Benutzung_heute) > 0 && Value(test_Reinigung_heute) > 0 ) {
      fhem('set test_Nutzung_heute|test_Reinigung_heute 0' );
   }
}
Titel: Antw:Klammern - no right bracket
Beitrag von: Parador am 26 Dezember 2018, 09:20:56
Hallo Zusammen,

danke für die Tipps.. ich sehe schon, da bin ich noch nicht tief genug in den Unterschieden zwischen FHEM IF und Perl If eingearbeitet... - werde das nachholen!
Wenn ich aber nun das Beispiel von Dir CoolTux eingebe, erhalte ich direkt beim Speichern den Hinweis auf Barewords.. d.h. es lässt sich nicht speichern

Titel: Antw:Klammern - no right bracket
Beitrag von: eisman am 26 Dezember 2018, 09:22:39
Hi,

oder du läste das ; am ende weg und das Leerzeichen nach dem , .

gruss


if ([test_Benutzung_heute] > 0 && [test_Reinigung_heute] > 0)
( set test_Nutzung_heute,test_Reinigung_heute 0 )
Titel: Antw:Klammern - no right bracket
Beitrag von: Parador am 26 Dezember 2018, 09:26:53
ok, den letzten Eintrag finde ich am sympatischsten ;-), es gibt auch keinen Fehler im Log, aber es verändert die dummy's nicht...
Titel: Antw:Klammern - no right bracket
Beitrag von: Byte09 am 26 Dezember 2018, 09:27:16
Zitat von: Parador am 26 Dezember 2018, 09:20:56
Hallo Zusammen,

danke für die Tipps.. ich sehe schon, da bin ich noch nicht tief genug in den Unterschieden zwischen FHEM IF und Perl If eingearbeitet... - werde das nachholen!
Wenn ich aber nun das Beispiel von Dir CoolTux eingebe, erhalte ich direkt beim Speichern den Hinweis auf Barewords.. d.h. es lässt sich nicht speichern

*23:59:59 { if ( Value('test_Benutzung_heute') > 0 && Value('test_Reinigung_heute') > 0 ) {
      fhem('set test_Nutzung_heute|test_Reinigung_heute 0' );
   }
}

gruss Byte09
Titel: Antw:Klammern - no right bracket
Beitrag von: CoolTux am 26 Dezember 2018, 09:29:38
Zitat von: CoolTux am 26 Dezember 2018, 08:55:57
Byte09 hat es ja schon gesagt. Entweder Du nimmst das FHEM IF oder Du gehst auf Perlebene mit { } und nimmst dann das Perl if



*23:59:59 { if ( Value(test_Benutzung_heute) > 0 && Value(test_Reinigung_heute) > 0 ) {
      fhem('set test_Nutzung_heute|test_Reinigung_heute 0' );
   }
}


Ja sorry. Mein Fehler.


*23:59:59 { if ( Value('test_Benutzung_heute') > 0 && Value('test_Reinigung_heute') > 0 ) {
      fhem('set test_Nutzung_heute|test_Reinigung_heute 0' );
   }
}


So sollte es gehen.
Titel: Antw:Klammern - no right bracket
Beitrag von: Parador am 26 Dezember 2018, 09:36:18
Alles klar, so klappts! Danke!
Werde mir das jetzt dann nochmal alles gut ansehen!

Schönen restlichen Feiertag!
Titel: Antw:Klammern - no right bracket
Beitrag von: Byte09 am 26 Dezember 2018, 09:40:27
Zitat von: Parador am 26 Dezember 2018, 09:36:18
Alles klar, so klappts! Danke!
Werde mir das jetzt dann nochmal alles gut ansehen!

Schönen restlichen Feiertag!

... dann bitte noch ein "[gelöst]" in das Topic setzen.

schönen Feiertag und gruss Byte09