if mit mehrere Bedigungen: zweite Bedingung wird ignoriert

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Benutzeravatar
homematic_jolle
Beiträge: 11
Registriert: 31.05.2023, 07:51
System: CCU
Hat sich bedankt: 3 Mal

if mit mehrere Bedigungen: zweite Bedingung wird ignoriert

Beitrag von homematic_jolle » 31.05.2023, 08:03

Hi zusammen,

Suche hat leider nichts ergeben, daher nun hier. Eigentlich ganz simpel. Ein if-Skript mit zwei Bedingungen, die durch ein UND (&&) verknüpft sind.
Wenn ich es laufen lasse, landet er aber bei "Wahr", obwohl i UND(!) j NICHT beide == 2 ist.

Was habe ich übersehen?

Code: Alles auswählen

integer i = 1;
integer j = 2;
if (i == 2 && j == 2) 
{ 
WriteLine("Wahr"); 
}
else {
WriteLine("Falsch")
}



beste Grüße! :)
Dateianhänge
Screenshot 2023-05-31 080224.png
Screenshot 2023-05-31 080224.png (11.92 KiB) 362 mal betrachtet

Benutzeravatar
Roland M.
Beiträge: 9798
Registriert: 08.12.2012, 15:53
System: CCU
Wohnort: Graz, Österreich
Hat sich bedankt: 252 Mal
Danksagung erhalten: 1379 Mal

Re: if mit mehrere Bedigungen: zweite Bedingung wird ignoriert

Beitrag von Roland M. » 31.05.2023, 12:39

Hallo und willkommen im Forum!


Die HM-Scriptsprache liebt Klammern! :D

Versuche einmal
if ((i == 2) && (j == 2))

Du wirst staunen... :D



Roland
Zur leichteren Hilfestellung bitte unbedingt beachten:
  • Bezeichnung (HM-... bzw. HmIP-...) der betroffenen Geräte angeben (nicht Artikelnummer)
  • Kurzbeschreibung des Soll-Zustandes (Was soll erreicht werden?)
  • Kurzbeschreibung des Ist-Zustandes (Was funktioniert nicht?)
  • Fehlermeldungen genau abschreiben, besser noch...
  • Screenshots von Programmen, Geräteeinstellungen und Fehlermeldungen (direkt als jpg/png) einstellen!

-----------------------------------------------------------------------
1. CCU2 mit ~100 Geräten (in Umstellung auf RaspberryMatic-OVA auf Proxmox-Server)
2. CCU2 per VPN mit ~50 Geräten (geplant: RaspberryMatic auf Charly)
3. CCU2 per VPN mit ~40 Geräten (geplant: RaspberryMatic auf CCU3)
CCU1, Test-CCU2, Raspi 1 mit kleinem Funkmodul, RaspberryMatic als VM unter Proxmox, Access Point,...

MichaelN
Beiträge: 9675
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 698 Mal
Danksagung erhalten: 1625 Mal

Re: if mit mehrere Bedigungen: zweite Bedingung wird ignoriert

Beitrag von MichaelN » 31.05.2023, 12:50

HM Skript liebt Klammern. Bzw. Berechnet Ausdrücke anders als man es gewohnt ist.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Matsch
Beiträge: 5444
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 116 Mal
Danksagung erhalten: 735 Mal

Re: if mit mehrere Bedigungen: zweite Bedingung wird ignoriert

Beitrag von Matsch » 31.05.2023, 13:07

homematic_jolle hat geschrieben:
31.05.2023, 08:03
Suche hat leider nichts ergeben
In der Dokumentation zur Scriptsprache hättest du die Lösung gefunden, da steht drin, dass es keinerlei Vorrangregeln in Ausdrücken gibt und man durch Klammerung selbst dafür sorgen muss.
Ausdrücke werden stur von rechts nach links interpretiert.

Benutzeravatar
robbi77
Beiträge: 13855
Registriert: 19.01.2011, 19:15
System: CCU
Wohnort: Landau
Hat sich bedankt: 182 Mal
Danksagung erhalten: 739 Mal

Re: if mit mehrere Bedigungen: zweite Bedingung wird ignoriert

Beitrag von robbi77 » 31.05.2023, 17:57

Matsch hat geschrieben: Ausdrücke werden stur von rechts nach links interpretiert.
??? Is das wieder so eine CCU Eigenart? Von hinten nach vorne?

Matsch
Beiträge: 5444
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 116 Mal
Danksagung erhalten: 735 Mal

Re: if mit mehrere Bedigungen: zweite Bedingung wird ignoriert

Beitrag von Matsch » 31.05.2023, 18:04

Vorrangregeln.jpg

Daimler
Beiträge: 9115
Registriert: 17.11.2012, 10:47
System: Alternative CCU (auf Basis OCCU)
Wohnort: Köln
Hat sich bedankt: 37 Mal
Danksagung erhalten: 283 Mal

Re: if mit mehrere Bedigungen: zweite Bedingung wird ignoriert

Beitrag von Daimler » 31.05.2023, 18:06

Hi,
robbi77 hat geschrieben:
31.05.2023, 17:57
??? Is das wieder so eine CCU Eigenart? Von hinten nach vorne?
NEIN.
CCU goes Islam. :wink:
duckunweg
Gruß Günter

pivccx mit 3.xx in Produktiv und Testsystem mit HM-, HM-W, HMIP- und HMIP-W Geräten, HPCx Studio 4.1,
L-Gateways, RS-L-Gateways, HAP, Drap, FHZ200x, vereinzelt noch FS2x-Komponenten.
HM / HM-IP: Zur Zeit knapp 300 Komponenten mit ??? Kanälen .

Ich übernehme für alle von mir gegebenen Hinweise, Tipps und Links keine Haftung! Das Befolgen meiner Tipps ist nur für Fachkundige gedacht und erfolgt auf eigene Gefahr!

Benutzeravatar
robbi77
Beiträge: 13855
Registriert: 19.01.2011, 19:15
System: CCU
Wohnort: Landau
Hat sich bedankt: 182 Mal
Danksagung erhalten: 739 Mal

Re: if mit mehrere Bedigungen: zweite Bedingung wird ignoriert

Beitrag von robbi77 » 31.05.2023, 18:16

:shock: :shock:

Benutzeravatar
Black
Beiträge: 5480
Registriert: 12.09.2015, 22:31
System: Alternative CCU (auf Basis OCCU)
Wohnort: Wegberg
Hat sich bedankt: 422 Mal
Danksagung erhalten: 1074 Mal
Kontaktdaten:

Re: if mit mehrere Bedigungen: zweite Bedingung wird ignoriert

Beitrag von Black » 31.05.2023, 18:32

richtig spassig wird es ja in dem moment, wo du folgendes schreibst:

Code: Alles auswählen

integer i = 2;
integer j = 2;
if (i == 2 && j == 2) 
{ 
WriteLine("Wahr"); 
}
else {
WriteLine("Falsch")
}
das Ergebnis ist: falsch

Zum nachrechnen:

Code: Alles auswählen

integer i = 2;
integer j = 2;

WriteLine (j==2);
WriteLine (2 && true);
WriteLine (i==true);
WriteLine ((true).ToInteger());
Ausgabe:

Code: Alles auswählen

true
true
false
1
Black
Wenn das Fernsehprogramm immer mehr durch nervende Werbung unterbrochen wird und der Radiomoderator nur noch Müll erzählt, ist es besser, die Zeit für sinnvolle Dinge zu nutzen -
mal aufs Klo zu gehen, ein Bier zu holen oder einfach mal den roten AUS-Knopf zu drücken. Klick - und weg

Script Time Scheduler V1.3
AstroSteuerung über Zeitmodul flexibel mit Offset / spätestens, frühestens
SDV 5.03.01 Das umfassende Entwicklungs und Diagnosetool für Homematik
Selektive Backups - Nützliche Dinge, die die WebUI nicht kann

Intel NUC6 Celeron 16GB mit 512GB SSD unter Proxxmox mit insgesamt 5 VM: 2 x bloatwarebefreiter Raspberrymatik, 2 x IOBroker als Middleware und einer MariaDB zur Archivierung. Verbrauch: 6W

technical contribution against annoying advertising

MichaelN
Beiträge: 9675
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 698 Mal
Danksagung erhalten: 1625 Mal

Re: if mit mehrere Bedigungen: zweite Bedingung wird ignoriert

Beitrag von MichaelN » 31.05.2023, 18:52

robbi77 hat geschrieben:
31.05.2023, 17:57
Matsch hat geschrieben: Ausdrücke werden stur von rechts nach links interpretiert.
??? Is das wieder so eine CCU Eigenart? Von hinten nach vorne?
Dein Ernst?
Registriert:
19.01.2011
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“