Mqtt switch turn on is running while the switch is already on

hey all - got a question - i’m using the following mqtt switch:

mqtt:
  switch:
  - name: 'Home Door Lock'
    command_topic: "home/smartlock/setlock"
    state_topic: "home/smartlock/locked"
    payload_on: '1'
    payload_off: '0'
    state_on: '1'
    state_off: '0'

when i call the service:

service: switch.turn_on
target:
  entity_id: switch.home_door_lock

the lock tries to lock even thoug its state is already locked. not sure why and how to avoid this

If you call the service from an automation you can just add the condition that the switch is off.
Or bake a condition in the service call itself: Service Calls - Home Assistant

the problem is i will need to add this condition everywhere i use it instead of just making the switch work the correct way…
i also don’t want to be dependent of an automation - just to make the switch work as a switch actually should.