Interface pour entrer dates et heures

C’est donc une date et pas une string…
Et bêtement:

{ "value": payload }

Ca dit quoi dans l’appel au service?

Call-service API error.  Error Message: must contain at least one of date, time, datetime, timestamp.

J’ai trouvé une autre solution possible ici mais sans résultat.
Si je comprends bien dans cet exemple, la date est transformée en texte avant d’être envoyée dans une entité texte ?

J’ai pu tester chez moi :slight_smile: C’est plus facile comme ça!

C’est soit:

{"timestamp": payload/1000 }

ou

{"timestamp": payload }

Toujours avec S: (jsonata). Ca dépend si le payload qui arrive de KNX est en microseconde (il faut diviser par 1000) ou pas (laisser tel quel).

La syntaxe est donnée par:

« Load Example Data » est assez récent et te donne la syntaxe exacte…

Avec l’un ou l’autre, il y a toujours le message API error en dessous du nœud.

J’ai avancé (un peu) avec l’autre solution ; il n’y a plus d’erreur d’API mais à chaque écriture dans la GA seule l’heure est transmise à l’entité HA (j’ai mis une entity date et heure) ; la date affichée est la date d’aujourd’hui.

[{"id":"d67a3cc1.37528","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"ae17aadd.81de18","type":"knxUltimate","z":"d67a3cc1.37528","server":"e91643e.d9013c","topic":"2/6/40","outputtopic":"","dpt":"19.001","initialread":0,"notifyreadrequest":true,"notifyresponse":false,"notifywrite":true,"notifyreadrequestalsorespondtobus":false,"notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized":"0","listenallga":false,"name":"2/6/40 ABA","outputtype":"write","outputRBE":true,"inputRBE":false,"formatmultiplyvalue":1,"formatnegativevalue":"leave","formatdecimalsvalue":999,"passthrough":"no","x":420,"y":80,"wires":[["9cae0ad7.567548","6ca5111d.5c749"]]},{"id":"1a7e1d5d.ed5873","type":"api-call-service","z":"d67a3cc1.37528","name":"Fin arrosage","server":"6dbc60a4.9907","version":1,"debugenabled":false,"service_domain":"input_datetime","service":"set_datetime","entityId":"","data":"{\"entity_id\":\"input_datetime.test\",\"datetime\":\"{{time}}\"}","dataType":"json","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":950,"y":60,"wires":[[]]},{"id":"9cae0ad7.567548","type":"debug","z":"d67a3cc1.37528","name":"","active":true,"tosidebar":true,"console":true,"tostatus":true,"complete":"payload","targetType":"msg","statusVal":"payload","statusType":"auto","x":780,"y":200,"wires":[]},{"id":"6ca5111d.5c749","type":"function","z":"d67a3cc1.37528","name":"","func":"var d = new Date(); \nmsg.time =  d.getFullYear() + \"-\" + ('0' + (d.getMonth()+1)).slice(-2) + \"-\" + d.getDate() + \" \" + ('0' + (d.getHours())).slice(-2) + \":\" + ('0' + (d.getMinutes())).slice(-2) + \":\" + ('0' + (d.getSeconds())).slice(-2);\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":720,"y":60,"wires":[["1a7e1d5d.ed5873"]]},{"id":"e91643e.d9013c","type":"knxUltimate-config","host":"192.168.1.100","port":"3671","physAddr":"15.15.22","suppressACKRequest":false,"csv":"","KNXEthInterface":"Auto","KNXEthInterfaceManuallyInput":"","statusDisplayLastUpdate":true,"statusDisplayDeviceNameWhenALL":true,"statusDisplayDataPoint":false,"stopETSImportIfNoDatapoint":"skip","loglevel":"error","name":"Passerelle IP-KNX","localEchoInTunneling":true,"delaybetweentelegrams":"40","delaybetweentelegramsfurtherdelayREAD":"1"},{"id":"6dbc60a4.9907","type":"server","name":"Home Assistant","addon":true}]

[Edit] La solution consiste dans le nœud « fonction » à remplacer
var d = new Date()
par
var d = new Date(msg.payload);
qui devient :

var d = new Date(msg.payload); 
msg.time =  d.getFullYear() + "-" + ('0' + (d.getMonth()+1)).slice(-2) + "-" + d.getDate() + " " + ('0' + (d.getHours())).slice(-2) + ":" + ('0' + (d.getMinutes())).slice(-2) + ":" + ('0' + (d.getSeconds())).slice(-2);

return msg;

@golfvert Merci pour ton soutien ; en faisant j’ai appris même s’il reste encore du boulot !