And not or xor

Bonjour,

Question sans doute idiote pour beaucoup, mais peut-on trouver ces fonctions booléennes dans Node Red de base ou faut-il importer d’autres nodes que ceux par défaut ?
Merci d’avance,

Par exemple, tu as ça

Merci Pulpy-Luke !
Etonnant tout de même de ne pas les trouver par défaut…
Bonne journée

ça dépends, ça sert à rien d’avoir tous les nœuds chargés pour ne pas s’en servir, donc les ajouter au fur et à mesure des besoins, ça a du sens

1 « J'aime »

Là, je craque !
J’ai beau tout essayer, la lampe s’allume alors que les deux conditions ne sont pas remplies !!!
Au secours… et merci d’avance.

[{"id":"911081560be5828c","type":"and-gate","z":"efc74f09177072ce","name":"","rules":[{"t":"eq","v":"","vt":"str","propertyType":"msg","property":"payload","topic":""}],"outputTopic":"","gateType":"and","emitOnlyIfTrue":false,"x":740,"y":880,"wires":[["124cf6d1e56bf44f","be4cfec2c41971fd"]]},{"id":"124cf6d1e56bf44f","type":"api-call-service","z":"efc74f09177072ce","name":"","server":"f1388c55.bbcd1","version":5,"debugenabled":false,"domain":"light","service":"turn_on","areaId":[],"deviceId":[],"entityId":["light.spots_bureau"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":950,"y":880,"wires":[[]]},{"id":"e610b9c4e7938a79","type":"api-current-state","z":"efc74f09177072ce","name":"","server":"f1388c55.bbcd1","version":3,"outputs":2,"halt_if":"true","halt_if_type":"bool","halt_if_compare":"is","entity_id":"light.appliques_bureau","state_type":"habool","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":430,"y":860,"wires":[["911081560be5828c","01bfc54bfa7a58a8"],[]]},{"id":"d42161ffb7c21dd2","type":"api-current-state","z":"efc74f09177072ce","name":"","server":"f1388c55.bbcd1","version":3,"outputs":2,"halt_if":"true","halt_if_type":"bool","halt_if_compare":"is","entity_id":"light.appliques_buanderie","state_type":"habool","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":440,"y":920,"wires":[["911081560be5828c"],[]]},{"id":"c65c283855f671aa","type":"inject","z":"efc74f09177072ce","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":120,"y":880,"wires":[["e610b9c4e7938a79","d42161ffb7c21dd2"]]},{"id":"be4cfec2c41971fd","type":"debug","z":"efc74f09177072ce","name":"debug 21","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1000,"y":780,"wires":[]},{"id":"01bfc54bfa7a58a8","type":"debug","z":"efc74f09177072ce","name":"debug 22","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":740,"y":780,"wires":[]},{"id":"f1388c55.bbcd1","type":"server","name":"Home Assistant","addon":true}]

Salut

Tu n’as pas compris comment foctionne node-red.
Dans ton cas, quoique renvoie ton noeud « and gate », la lumière va s’allumer car tu appelles le service « light.turn_on ». Le noeud « and gate » n’est pas une condition, il calcule et renvoie un résultat.
Rajoute un noeud « function » après « and gate », et si le résultat de « and gate » est false, ton noeud « function » doit renvoyer « null » pour arrêter le flow.

Mais je pense qu’il y a plus simple pour allumer ta lumière, retire ton noeud « and gate » et utilise les sorties « false » de tes noeuds « current_state ».


Ainsi la lumière va s’allumer si les 2 noeuds sont à false

Disons que je comprends vite… mais il faut m’expliquer longtemps ! :thinking:
OK, on va fonctionner comme ça avec la fonction.

Je vais essayer ça aussi. Merci
… ça marche, c’est simple, c’est tout bon.

C’est la galère avec le node booléen (la deuxième solution marche bien mais comme je suis un peu têtu, j’aimerais bien dompter la bête…

Avant de galérer plus sur le contenu de la fonction, je voudrais bien savoir pourquoi le node AND affiche un FALSE alors que les deux lampes sont allumées !

[{"id":"e8beb57172f5824d","type":"inject","z":"efc74f09177072ce","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":140,"y":180,"wires":[["b65920421e08be93","ef64372d59f5ac82"]]},{"id":"b65920421e08be93","type":"api-current-state","z":"efc74f09177072ce","name":"","server":"f1388c55.bbcd1","version":3,"outputs":2,"halt_if":"true","halt_if_type":"bool","halt_if_compare":"is","entity_id":"light.appliques_bureau","state_type":"habool","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":410,"y":140,"wires":[["13d082935e49e95d"],[]]},{"id":"ef64372d59f5ac82","type":"api-current-state","z":"efc74f09177072ce","name":"","server":"f1388c55.bbcd1","version":3,"outputs":2,"halt_if":"true","halt_if_type":"bool","halt_if_compare":"is","entity_id":"light.spots_bureau","state_type":"habool","blockInputOverrides":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"entity"}],"for":"0","forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":400,"y":220,"wires":[["13d082935e49e95d"],[]]},{"id":"4187f336f15c34df","type":"api-call-service","z":"efc74f09177072ce","name":"","server":"f1388c55.bbcd1","version":5,"debugenabled":false,"domain":"switch","service":"turn_on","areaId":[],"deviceId":[],"entityId":["switch.0xa4c1383f33e40153"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1100,"y":180,"wires":[["df3ee50b280e4f3c"]]},{"id":"df3ee50b280e4f3c","type":"delay","z":"efc74f09177072ce","name":"","pauseType":"delay","timeout":"5","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":1280,"y":180,"wires":[["d8e801ba979c8940"]]},{"id":"d8e801ba979c8940","type":"api-call-service","z":"efc74f09177072ce","name":"","server":"f1388c55.bbcd1","version":5,"debugenabled":false,"domain":"switch","service":"turn_off","areaId":[],"deviceId":[],"entityId":["switch.0xa4c1383f33e40153"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1460,"y":180,"wires":[[]]},{"id":"ca1fecfbcbfb72c3","type":"debug","z":"efc74f09177072ce","name":"debug 23","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":880,"y":100,"wires":[]},{"id":"92b117101cce7b5e","type":"function","z":"efc74f09177072ce","name":"function 1","func":"msg.payload = msg.payload;\nreturn msg;\nmsg.payload.current_condition.tmp;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":900,"y":180,"wires":[["4187f336f15c34df"]]},{"id":"13d082935e49e95d","type":"and-gate","z":"efc74f09177072ce","name":"","rules":[{"t":"eq","v":"","vt":"str","propertyType":"msg","property":"payload","topic":""}],"outputTopic":"","gateType":"and","emitOnlyIfTrue":false,"x":700,"y":180,"wires":[["92b117101cce7b5e","ca1fecfbcbfb72c3"]]},{"id":"f1388c55.bbcd1","type":"server","name":"Home Assistant","addon":true}]

Dans ton noeud « and gate », tu compare le payload avec vide


Mais comme ton payload n’est pas vide (il est égal à true), ton noeud renvoie « false »
image

Suggestions : entraine toi avec des examples

OK Merci !
On va voir ça à TETE REPOSEE, ce qui n’est plus le cas depuis quelques heures…