When I am ingesting data in Azure Data Explorer via the MQTT Basic IDE, all my tags are recognized as strings instead of real numbers, I believe the setup is here:
Where the +STR is happening. Is there a way to set up a group to always be reals and then at the io table I can change the groups (like A for reals and B for strings), etc.
Code pasted below.
IF GroupA$ = “1” And GROUPA%= 1 THEN Onchange -i%, “a(”+ STR$ k%+",2)= 1"
IF GroupB$ = “1” And GROUPB%= 1 THEN Onchange -i%, “a(”+ STR$ k%+",2)= 1"
IF GroupC$ = “1” And GROUPC%= 1 THEN Onchange -i%, “a(”+ STR$ k%+",2)= 1"
IF GroupD$ = “1” And GROUPD%= 1 THEN Onchange -i%, “a(”+ STR$ k%+",2)= 1"
NEXT i%
ONTIMER 2,“goto MqttPublishAllValue”
TSET 2,Fullpushtime%
// TSET 2,Changepushtime%
END
//Compute the right time format for AZURE
Function GetTime$()
$a$ = Time$
$GetTime$ = $a$(7 To 10) + “-” + $a$(4 To 5) + “-” + $a$(1 To 2) + " " + $a$(12 To 13)+":"+$a$(15 To 16)+":"+$a$(18 To 19)
EndFn
//publish all tags
MqttPublishAllValue:
counter%=0
json$ = ‘{’
FOR i% = 0 TO NB% -1
SETSYS Tag, “load”,-i%
i$= GETSYS TAG,“Name”
GroupA$= GETSYS TAG,"IVGROUPA"
GroupB$= GETSYS TAG,"IVGROUPB"
GroupC$= GETSYS TAG,"IVGROUPC"
GroupD$= GETSYS TAG,"IVGROUPD"
IF GroupA$ = "1" And GROUPA%= 1 THEN json$ = json$ + '"' + i$+ '":"'+STR$ GETIO i$ + '",': counter% = counter% +1
IF GroupB$ = "1" And GROUPB%= 1 THEN json$ = json$ + '"' + i$+ '":"'+STR$ GETIO i$ + '",': counter% = counter% +1
IF GroupC$ = "1" And GROUPC%= 1 THEN json$ = json$ + '"' + i$+ '":"'+STR$ GETIO i$ + '",': counter% = counter% +1
IF GroupD$ = "1" And GROUPD%= 1 THEN json$ = json$ + '"' + i$+ '":"'+STR$ GETIO i$ + '",': counter% = counter% +1