2025-10-14

VIRTUINO IoT skrypty - dowolne programowanie z AI

  

Dziś test możliwości AI dla tworzenia  własnych Javascript do zastosowania w VIRTUINI IOT.







W poprzednim poście stworzyłem własny Javascript dla VIRTUINO z funkcją wyboru CASE. Funkcji tej nie ma w przykładach dołączonych do programu ale po kilku nieudanych próbach udało mi się stworzyć taki skrypt

/* 
This script returns a text depending if the input Tag value
*/

//--- Copy values from Virtuino Variables to JavaScript variables
let inputValue = +Virtuino.readValue("inputTag");   // use the + to read as number

//---  enter the JavaScript code like the example below

function isValidNumber(v){
	return ((v!=null) & (!isNaN(v)));
}

if (isValidNumber(inputValue)){          // be sure the input is not null 
switch (inputValue ) {
  case 1:
   value ="very slowly";
    break;

  case 2:
   value ="slowly";
    break;
    
      case 3:
   value ="fast";
    break;
    
      case 4:
   value ="very fast";
    break;

  // include as many cases as you like

  default:
    value ="dangerously";
    break;
}
    result = '{"tag":"outputTag", "value":"'+ value+ '"}';   // enclose  text value with  " " 
}
else {
	result = null;     // don't  write anything to the output
}
i działa. Niestety zabrało mi to sporo czasu będąc całkowitym laikiem w składni języka JS.

Ale na horyzoncie pojawił się niezastąpiony pomocnik również w tym temacie. AI bo o nim mowa zrobił to samo w sekundę. Jedynie co trzeba było go nauczyć to format kodu JS wymagany przez VIRTUINO IoT.

A więc po kolei:
1 Pierwsze polecenie dla AI
napisz nowy Javascript dla Virtuino
Odpowiedź AI:

Jasne 🙂 — ale potrzebuję doprecyzowania, co dokładnie chcesz, żeby ten skrypt robił.
Virtuino to platforma (aplikacja + biblioteka) do komunikacji między mikrokontrolerem (np. ESP32, Arduino) a interfejsem graficznym w telefonie lub przeglądarce. JavaScript w tym kontekście można wykorzystać m.in. do:

  1. Tworzenia panelu sterowania w przeglądarce (Virtuino Web Panel)

  2. Pisania skryptów automatyzacji (Virtuino SE / IoT Studio)

  3. Komunikacji z mikrokontrolerem przez MQTT, HTTP lub WebSocket

💡 Dlatego proszę — powiedz mi:

  • jakiej wersji Virtuino używasz (np. Virtuino 6, Virtuino SE, Virtuino MQTT, Virtuino Web)?

  • co skrypt ma robić? (np. odczyt czujnika, sterowanie przekaźnikiem, wysyłanie danych do chmury, tworzenie wizualizacji itp.)

2 Drugie polecenie dla AI
skrypt ma mieć podobną formę do tego 
var inputValue = Virtuino.readValue("inputTag"); //Read inputTag value as String. //--- enter the JavaScript code like the example below 
if ((inputValue!=null) & (!isNaN(inputValue))) { // check if the input value is number 
const x=100; 
var newValue = x * inputValue; 
result = '{"tag":"outputTag", "value":'+ newValue+ '}'; // return a json message } 
else { // no input value available yet 
result = null; // return null if you don't want to send a value to output variable }
Odpowiedź AI:

Świetnie 👍 — teraz już wiem dokładnie, o jaką składnię chodzi: to JavaScript w module automatyzacji Virtuino IoT (Automation Editor), który zwraca dane w formacie JSON ({"tag":"...", "value":...}).

3 Po tym krótkim szkoleniu AI dostał główne zadanie
napisz skrypt z użyciem funkcji case gdy wejście = 1 to wyjściowy string jest very slowly gdy 2 to slowly gdy 3 to fast gdy 4 to very fast a default to dangerously

Odpowiedź AI:
ChatGPT powiedział:

Świetnie 👍 — oto gotowy skrypt dla Virtuino IoT, napisany w tym samym stylu, z użyciem instrukcji switch...case, który zamienia wartość liczbową wejścia na tekstowy opis prędkości:


💡 Skrypt Virtuino IoT — opis prędkości na podstawie wartości wejściowej

var inputValue = Virtuino.readValue("inputTag"); // Odczytaj wartość wejściową if ((inputValue != null) && (!isNaN(inputValue))) { // sprawdź, czy to liczba var outputString = ""; // przygotuj zmienną tekstową switch (parseInt(inputValue)) { // konwersja na liczbę całkowitą case 1: outputString = "very slowly"; break; case 2: outputString = "slowly"; break; case 3: outputString = "fast"; break; case 4: outputString = "very fast"; break; default: outputString = "dangerously"; } // Zwróć wynik w formacie JSON result = '{"tag":"outputTag", "value":"' + outputString + '"}'; } else { result = null; // brak danych → brak wysyłki }


Jak widać oba skrypty są niemal identyczne. Niemal gdyż w moim zamianę danej wejściowej na liczbę robi coś takiego 
+Virtuino.readValue("inputTag") 

a AI zrobił to tak

parseInt(inputValue

Czego więcej potrzeba ? Niczego !!! Świat programowania w VIRTUINO za pomocą JS stoi otworem praktycznie dla każdego.

A co z tego wyniknie ? Poczekamy , zobaczymy 

Brak komentarzy:

Prześlij komentarz