Filterüberwachung Funktion switch case

Node-RED als CCU3/RaspberryMatic Addon, WebApp, HomeKit, ...

Moderator: Co-Administratoren

Antworten
firstfacility
Beiträge: 20
Registriert: 08.11.2020, 16:01
System: CCU

Filterüberwachung Funktion switch case

Beitrag von firstfacility » 21.03.2021, 15:00

Hallo Forum,
ich versuche mich an einer Filterüberwachung und brauche hierzu eine Funktion, bei der ich Hilfe brauche. Ich bekomme von meinem Gerät einen String mit 1 solange das Gebläse läuft. Über einen Timer bekomme ich nach einer gewissen Zeit einen String mit 2. Weiterhin nutze ich nach dem wechseln des Filters einen Schalter von dem ich einen String mit 0 (als Reset) damit der Timer wieder von vorn starten kann.

Also kurz ich habe jede Minute einen Wert msg.payload 1 (solange das Gerät in Betrieb)
Wenn Filter erschöpft bekomme einmalig !!!!! msg.payload 2, nun soll msg.payload 1 geblockt werden
Kommt dann nach Filterwechsel msg.payload 2 soll msg.payload nicht mehr gebockt werden.

Meine Funktion Node schaut nun so aus:

Code: Alles auswählen

switch (msg.payload) {
  case '1':
    if('2'==true){
		msg.payload = null;
	}
	else{
		msg.payload = '1';
	}
    break;
  case '2':
    '2' == true;
	msg.payload = null;
	
	break; 
  case '0':
    '1' == false;
	msg.payload = '1';
    break;
}
return msg;
Der msg.payloade 1 kommt durch aber das Blocken läuft nicht. Hätte jemand eine Idee was ich falsch mache ?

Gruß
Frank

rstuck
Beiträge: 94
Registriert: 17.11.2018, 19:53
Hat sich bedankt: 5 Mal
Danksagung erhalten: 16 Mal

Re: Filterüberwachung Funktion switch case

Beitrag von rstuck » 21.03.2021, 19:12

Hallo
teste mal diesen Code

Code: Alles auswählen

switch (msg.payload) {
  case (1):
    if(zwei == true){
		msg.payload = null;
	}
	else{
		msg.payload = '1';
	}
    break;
  case (2):
    zwei = true;
	msg.payload = null;
	break; 
  case (0):
    zwei = false;
	msg.payload = '1';
    break;
}
return msg;
Und im Reiter Setup folgendes hinzufügen

Code: Alles auswählen

zwei = false

firstfacility
Beiträge: 20
Registriert: 08.11.2020, 16:01
System: CCU

Re: Filterüberwachung Funktion switch case

Beitrag von firstfacility » 21.03.2021, 20:27

Vielen Dank, aber leider wird nach payload 2 die 1 nicht geblockt

log:

Code: Alles auswählen

sg.payload : string[1]
"1"
21.3.2021, 20:26:08node: cd8434c5.8e5288
msg.payload : string[1]
"1"
21.3.2021, 20:26:10node: cd8434c5.8e5288
msg.payload : string[1]
"2"
21.3.2021, 20:26:13node: cd8434c5.8e5288
msg.payload : string[1]
"1"
21.3.2021, 20:26:18node: cd8434c5.8e5288
msg.payload : string[1]
"1"
21.3.2021, 20:26:22node: cd8434c5.8e5288
msg.payload : string[1]
"0"
21.3.2021, 20:26:23node: cd8434c5.8e5288
msg.payload : string[1]
"1"
21.3.2021, 20:26:28node: cd8434c5.8e5288
msg.payload : string[1]
"1"

rstuck
Beiträge: 94
Registriert: 17.11.2018, 19:53
Hat sich bedankt: 5 Mal
Danksagung erhalten: 16 Mal

Re: Filterüberwachung Funktion switch case

Beitrag von rstuck » 21.03.2021, 20:33

Entschuldige, ich hatte übersehen dass es um Strings geht.

Code: Alles auswählen

switch (msg.payload) {
  case ("1"):
    if(zwei == true){
//		return;
		msg.payload = null;
	}
	else{
		msg.payload = '1';
	}
    break;
  case ("2"):
    zwei = true;
	msg.payload = null;
	break; 
  case ("0"):
    zwei = false;
	msg.payload = '1';
    break;
}
return msg;

firstfacility
Beiträge: 20
Registriert: 08.11.2020, 16:01
System: CCU

Re: Filterüberwachung Funktion switch case

Beitrag von firstfacility » 21.03.2021, 20:56

genau so gehts... perfekt :-) Vielen Dank für deine Hilfe

Antworten

Zurück zu „RedMatic“