prova meteo1

flow nodered creato con aiuto di chatgpt.

testo richiesta: Voglio confrontare l affidabilità dei siti internet che danno previsioni meteo. Alle 12 di ogni giorno voglio memorizzare la previsione per milano per il giorno dopo per i siti ilmeteo.it e 3bmeteo. E voglio avere poi un indicatore da 1 a 10 se la previsione meteo era corretta o meteo. Ho bisogno di uno script su nodered per questo esercizio

[{"id":"2eaa7818.8e58d6","type":"http request","z":"d17d7b37.0a44c","name":"IlMeteo","method":"GET","ret":"txt","paytoqs":"ignore","url":"https://www.ilmeteo.it/meteo/Milano","tls":"","persist":false,"proxy":"","authType":"","x":210,"y":140,"wires":[["8b9ed87d.b18418"]]},{"id":"fbe14e78.38de08","type":"http request","z":"d17d7b37.0a44c","name":"3BMeteo","method":"GET","ret":"txt","paytoqs":"ignore","url":"https://www.3bmeteo.com/meteo/milano","tls":"","persist":false,"proxy":"","authType":"","x":210,"y":200,"wires":[["d9d2d3d4.19976"]]},{"id":"8b9ed87d.b18418","type":"html","z":"d17d7b37.0a44c","name":"Parse IlMeteo","property":"payload","outproperty":"parsed","tag":".minmax","ret":"text","as":"multi","x":400,"y":140,"wires":[["823d82a0.828d98"]]},{"id":"d9d2d3d4.19976","type":"html","z":"d17d7b37.0a44c","name":"Parse 3BMeteo","property":"payload","outproperty":"parsed","tag":".max","ret":"text","as":"multi","x":400,"y":200,"wires":[["823d82a0.828d98"]]},{"id":"823d82a0.828d98","type":"function","z":"d17d7b37.0a44c","name":"Compare","func":"var ilMeteo = msg.parsed[0].split(\"/\")[0].trim();\nvar treBMeteo = msg.parsed[1].split(\"°\")[0].trim();\n\nvar actualDate = new Date();\nvar tomorrow = new Date(actualDate);\ntomorrow.setDate(actualDate.getDate() + 1);\n\nvar ilMeteoTemp = parseInt(ilMeteo);\nvar treBMeteoTemp = parseInt(treBMeteo);\n\nvar reliability = 0;\nif (ilMeteoTemp === treBMeteoTemp) {\n    reliability = 10;\n} else {\n    var difference = Math.abs(ilMeteoTemp - treBMeteoTemp);\n    if (difference <= 2) {\n        reliability = 9;\n    } else if (difference <= 4) {\n        reliability = 8;\n    } else if (difference <= 6) {\n        reliability = 7;\n    } else if (difference <= 8) {\n        reliability = 6;\n    } else if (difference <= 10) {\n        reliability = 5;\n    } else if (difference <= 12) {\n        reliability = 4;\n    } else if (difference <= 14) {\n        reliability = 3;\n    } else if (difference <= 16) {\n        reliability = 2;\n    } else if (difference <= 18) {\n        reliability = 1;\n    } else {\n        reliability = 0;\n    }\n}\n\nmsg.payload = {\n    date: tomorrow.toISOString().split(\"T\")[0],\n    ilMeteo: ilMeteoTemp,\n    treBMeteo: treBMeteoTemp,\n    reliability: reliability\n};\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":600,"y":160,"wires":[["b8d855eb.0aa4a8"]]},{"id":"b8d855eb.0aa4a8","type":"debug","z":"d17d7b37.0a44c","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":800,"y":160,"wires":[]},{"id":"37dcb292.177f62","type":"inject","z":"d17d7b37.0a44c","name":"12:00 PM","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"00 12 * * *","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":110,"y":140,"wires":[["2eaa7818.8e58d6","fbe14e78.38de08"]]}]

Flow Info

Created 1 year, 1 month ago
Rating: 1 1

Owner

Actions

Rate:

Node Types

Core
  • debug (x1)
  • function (x1)
  • html (x2)
  • http request (x2)
  • inject (x1)

Tags

Copy this flow JSON to your clipboard and then import into Node-RED using the Import From > Clipboard (Ctrl-I) menu option