profile for Gajendra D Ambi on Stack Exchange, a network of free, community-driven Q&A sites

Wednesday, September 24, 2025

openIOT standards

 Today the requirement of an app per IOT device per vendor per platform is driving away the adoption of IOTs (Internet of Things). You have a refrigerator, washing machine, designer lights/bulbs, speaker, NAS, AC, robo vacuum, door camera, house security cameras, all from differenent companies and each of them have their own app, own registration process. So now my phone is bloated with 20 applications who are all draining my data, battery, my personal information. All 20 of them are most likely selling my data to 20000 different marketing/ad agencies & not to mention, 20 different places wher my personal data can get leaked or hacked or stolen.

Solution:

Let vendors have their own proprietory apps per device but let them also have their api approachable in a certain format, preferably in a YAML format. Most of the the things are still RW(read, write). Here is an example concept. 

Vendor X Air conditioner. Now, the following yaml can be sent to the client (mobile app) when the connection happens via wifi or BT and based on the following data the UI can get auto populated. A lot of it can be a universal standard like constants, input_types, connect etc., The UI elements get auto rendered based on the input types and purpose, purpose_id.

Identity:
  - constants:
    - name: "sugreeva"
    - model: "X33"
    - serial_number: 0x000000000000
    - product_number: 0x000000000000
    - made_by: "vanara company pvt ltd"
    - made_at: "2020-01-01"
    - made_in: "India"
    - mac: 00:00:00:00:00:00
    - hwid: 0x000000000000
    - Purpose: "Air Conditioner"
    - purpose_id: "aircon" # a unique id for every IOT type with a different purpose, ex: washing machine will be have purpose_id "washingm"
    - image: "" # optional
    - key_values: # optional
      - key1: "value1"
      - key2: "value2"
  - input_types:
    - push: "ajax or live or push notifications, it can be a string or an integer or alphanumeric data"
    - boolean: "true or false"
    - slider: "slider, with a min value and a max value"
    - radio: "multiple options but only one can be selected"
    - checkbox: "multiple options can be selected"
    - string: "text"
    - integer: "number"
    - dropdown: "list of options"
    - kv_w_kv: "key value pairs, both are editable"
    - kv_w_v: "key value pairs, only value can be edited"
    - kv_r_kv: "key value pairs, both are read only"
    - QR: "QR code"
    - upload: "file upload"
    - bluetooth: "bluetooth"
  - connect:
    - description: "Connect to this device using the following methods"
    - wifi:
      - description: "Connect to the wifi network using the following methods"
      - QR:
        - description: "Scan the QR code to connect to the wifi network"
        - input_type: "QR"
      - manual:
        - description: "Enter the SSID and password of the wifi network"
        - input_type: "kv_w_v"
        - SSID: <user input>
        - password: <user input>
    - bluetooth:
        - description: "Connect to the bluetooth device using the following methods"
        - input_type: "bluetooth"

  - inputs:
    - description: "List of inputs that can be used to control the device"
    - system:
      - description: "List of system inputs"
      - health:
        - description: "Health of the device"
        - input_type: "push"
      - update:
        - description: "Update the device"
        - update_status:
          - description: "Status of the update, updating, updated, last update failed, no updates etc.,"
          - input_type: "push"
        - update_progress:
          - description: "Progress of the update, it can be a % or a number"
          - input_type: "push"
        - alert:
          - description: "Alert when an update is available"
          - input_type: "push"
      - tags:
        - description: "System tags for the device"
        - input_type: "kv_r_kv"
        - key1: value1
        - key2: value2
      warranty:
        - description: "Warranty of the device"
    - user:
      - description: "List of user inputs available for the user"
      - tags:
        - description: "User tags for the device"
        - input_type: "kv_w_kv"
        - key1: value1
        - key2: value2
        - key3: value3
        - key4: value4
      - temperature:
        - description: "Set the temperature"
        - input_type: "slider"
        - min: 0
        - max: 100
      - fan_speed:
        - description: "Set the fan speed"
        - input_type: "radio"
        - options:
          - low
          - medium
          - high
          - cool
          - dry
          - auto
      - power:
        - description: "Turn the device on or off"
        - input_type: "radio"
        - options:
          - on
          - off
          - restart
      - maintenace:
        - description: "Perform maintenance on the device"
        - healthcheck:
          - description: "Check the health of the device"
          - input_type: "checkbox"
          - options: # If only one option, then just display a submit button or cofirm button
            - confirm
        - clean:
          - description: "Clean the device"
          - input_type: "checkbox"
          - options: # If only one option, then just display a submit button or cofirm button
            - confirm
      - powerful:
        - description: "powerful mode, users more power"
        - input_type: "boolean"
      - swing_vertical:
        - description: "Swing the device vertically"
        - input_type: "toggle"
        - options:
          - left
          - right
          - center
          - left to right
      - swing_horizontal:
        - description: "Swing the device horizontally"
        - input_type: "toggle"
        - options:
          - top
          - bottom
          - center
          - top to bottom



# EOF

Wednesday, August 13, 2025

Internet companies nerf your profile/accounts online

 It was probably first noticed widely on twitter with the name *shadow banning* and it still exists even though name changed to x. This is not new. Youtube has been doing it for ages, they boost or nerf certain content or the creator depending on whether the creator or content is profit friendly or not. Everyone who knows this from ages somehow thinks that video game companies don't do it or it is just the bots employed by these companies who disagree with you. I myself know this from my own personal experience where a game called apex legends by repsawn+EA keeps nerfing free user's accounts, boost consistant spender's accounts and their gameplay. They feed free users to consistantly spending users as cannon fodder. Free users are those who do not spend money to buy virtual items in the game. They haven't spend money and most probably won't. There are also statistics in these games and I have seen on multiple occasionson how they undo/overwrite/modify your statistics all of a sudden includingthe hours you have spent. ex: daily challanges. Everyday they reset at 3.30pm IST. I start doing them around 4pm IST. I did that yesterday and today when I checked around 3.14pm, the daily challange itself was changed. I have not played octane in like a month but one of the daily challange is to play the octane 4 times and it shows that I have completed that part. I have completed 2/5 daily challanges. 1 of the incomplete challange was get 10 kills or assists. I have like 15 minutes and I would definitely won't be able to do it even though I have nearly 10k hours on this game. 4 days ago 1 of the daily challange was to get 10knock outs. I was playing as fuse. I got stuck at 8 KOs and every thing else was just getting counted as assists. After hours and hours, aftger 50 assists, I got 10KOs and that too when I started exiting the game within first 5 minutes of the game If I don't get a KO or a kill count because then the AI realised that the game is not going to get my free time without giving me something in return.

Monday, August 11, 2025

The Godaddy scam

 


I have heard of this scam but I didnt believe it.

  • Keep receiving mails about domains expiring soon, even though auto renew is set and the sometimes the early renewal is already done
  • keep receiveing mails about payment method missing but when I login and check, the credit card info is still present and tested to be working, including paypal.
  • You end up ignoring such mails later, thinking that it is just another false flag, just like before and boom, you lose your domain.
  • I cannot confirm but I heard that it is an organised scam by employee+buyer to do this to the owner of a domain that they are intersted in, keep torturing him/her with fake alerts, enough fake alerts to make sure that they soon start ignoring such mails and once they do, the auto renew somehow fails or never triggers the auto renewal and you lose your domain.
The above btw has happened to me, I fortunately bought that domain again from some other provider and then transferred it to godaddy. I want to know whether such things have happened with you as well. Most of my domains are .in and I am thinking of transferring all to cloudflare.


Sunday, August 10, 2025

Plex server, issues and workarounds

 Problem: Every now and then on windows plex client refuses to launch, even though plex server is launched & working. 

Solution: 

  1. Exit/kill all plex services (probably from the tray menu or task manager)
  2. win key + R to open the run command window and input %localappdata%
  3. Delete the Plex folder, not the plex server or plex media folder.
  4. Now launch the plex media server and then the plex client itself, login and use it as usual
Problem: Plex asks for pin every time you launch it.
Solution:
  1. Click on the wrench icon which takes you to settings
  2. in the left panel, click on your username
  3. Check mark, *automatically sign in* option


$currentuser = $env:USERNAME
$folder = "C:\Users\$currentuser\AppData\Local\Plex"
Remove-Item -Path $folder -Recurse -Force

Wednesday, July 16, 2025

Setting up flutter for android on windows is BS

 So all these mega tech corpos cant make an installer or their employees only do what they are told/asked and they dont give a damn about these things.

I was trying to setup android development on windows with my VSC, hey don't judge me, I dont want to use the inbuilt IDE of android, I wanna stick to what I know, whom I know and that is VSC; so here are the pointers

  1. Do not use WSL on VSC, it won't work or don't know anyone who has made it work
  2. Open a new workspace on windows local machine (not WSL)
  3. Install dart and flutter extensions
  4. Download and install android studio
  5. Add the ANDROID_HOME environment variable (system & user) to C:\Users\username\AppData\Local\Android\Sdk verify the same by running `echo %ANDROID_HOME%` in command shell (not powershell)
  6. Add the following paths to windows PATH
    C:\Users\username\AppData\Local\Android\Sdk\platform-tools C:\Users\username\AppData\Local\Android\Sdk\cmdline-tools\latest\bin
  7. Use cmd shell, not powershell terminal in the VSC. If step 5 is done well, this is not needed but still works as a backup step. point sdk to the flutter by doing flutter config --android-sdk C:\Users\username\AppData\Local\Android\Sdk
  8. Download the commandline tools separately and ensure they are placed like this
    C:\Users\username\AppData\Local\Android\Sdk\cmdline-tools\latest\bin\sdkmanager.bat
  9. Install visual studio community edition with Desktop development with C++
  10. Now run 'flutter doctor' in VSC cmdline terminal and you should be good to go. Powershell might still work but not always, at least in my case.