[phpBB Debug] PHP Warning: in file [ROOT]/ext/kinerity/bestanswer/event/main_listener.php on line 514: Undefined array key "poster_answers"
openhabforum.de • Fehler bei < Zeichen
Seite 1 von 1

Fehler bei < Zeichen

Verfasst: 27. Jan 2019 17:00
von sadbi
Liebe Community

Ich habe ein seltsames Phänomen. In einer rule verwende ich sowohl ein > als auch ein < Zeichen:

Code: Alles auswählen

if (aussentemp.state as Number > austemp_max.state as Number) {
        logInfo("Temp", "Schleife1 funktioniert")
        austemp_max.postUpdate(aussentemp.state)
    }
    if (aussentemp.state as Number < austemp_max.state as Number) {
        logInfo("Temp", "Schleife2 funktioniert")
        austemp_min.postUpdate(aussentemp.state)
    }
In der ersten if-Schleife funktioniert es einwandfrei, in der zweiten kommt jedoch ein Fehler. Wenn ich dort statt dem < ein > Zeichen setze, passt wieder alles.

Die Fehlermeldungen

Code: Alles auswählen

{
	"resource": "/y:/openhab2-conf/rules/klima.rules",
	"owner": "_generated_diagnostic_collection_name_#0",
	"code": "org.eclipse.xtext.diagnostics.Diagnostic.Syntax",
	"severity": 8,
	"message": "missing ')' at 'austemp_max'",
	"startLineNumber": 28,
	"startColumn": 37,
	"endLineNumber": 28,
	"endColumn": 48
}

{
	"resource": "/y:/openhab2-conf/rules/klima.rules",
	"owner": "_generated_diagnostic_collection_name_#0",
	"code": "org.eclipse.xtext.xbase.validation.IssueCodes.incompatible_types",
	"severity": 8,
	"message": "Type mismatch: cannot convert from Number to boolean",
	"startLineNumber": 28,
	"startColumn": 9,
	"endLineNumber": 28,
	"endColumn": 65
}
{
	"resource": "/y:/openhab2-conf/rules/klima.rules",
	"owner": "_generated_diagnostic_collection_name_#0",
	"code": "org.eclipse.xtext.diagnostics.Diagnostic.Syntax",
	"severity": 8,
	"message": "missing '>' at 'as'",
	"startLineNumber": 28,
	"startColumn": 56,
	"endLineNumber": 28,
	"endColumn": 58
}
Hab Ihr eine Ahnung woran das liegen kann?

Danke
Sebastian

Re: Fehler bei < Zeichen

Verfasst: 27. Jan 2019 17:48
von udo1toni
Du musst vermutlich Klammern um die Werte setzen:

Code: Alles auswählen

if ((aussentemp.state as Number) < (austemp_max.state as Number)) {
Das Problem ist hier eventuell, dass das < gleichzeitig auch eine öffnende spitze Klammer sein könnte.

Re: Fehler bei < Zeichen

Verfasst: 27. Jan 2019 18:00
von matze_bln
Klingt für mich nach einem Fehler bei der Umwandlung. Evtl musst du da noch Klammern setzen. Es könnte auch sein, dass die Einheit °C noch bei dem Element dabei ist. Hast du das einfach mal ins Log ausgeben lassen?

Re: Fehler bei < Zeichen

Verfasst: 27. Jan 2019 18:35
von sadbi
Habe jetzt die Klammern gesetzt und alles funzt wie es soll, da wäre ich lange gesessen und hätte herumgerätselt.
Danke