Klammern - no right bracket

Begonnen von Parador, 26 Dezember 2018, 08:31:24

Vorheriges Thema - Nächstes Thema

Parador

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...

Byte09

#1
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

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

CoolTux

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' );
   }
}
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

Parador

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


eisman

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 )
1x FHEM Debian, Homematic,ZigBee,FS20 / 1X Raspberry, ConBee / 7x ESP
1x FHEM Debian, Homematic,Z2M             / 1X Raspberry, ConBee / 6x ESP
1x FHEM Debian,MQTT2                             / 1X Raspberry, i2c,onewire,gpio
1x auf Windows 2012 Hyper-V-S

Parador

ok, den letzten Eintrag finde ich am sympatischsten ;-), es gibt auch keinen Fehler im Log, aber es verändert die dummy's nicht...

Byte09

#6
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

CoolTux

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.
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

Parador

Alles klar, so klappts! Danke!
Werde mir das jetzt dann nochmal alles gut ansehen!

Schönen restlichen Feiertag!

Byte09

#9
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