Request status update using INIT command

Tags: #<Tag:0x00007fe7331fea60> #<Tag:0x00007fe7331fe970> #<Tag:0x00007fe7331fe858>

The Pioneer AVR and the Onkyo Binding listen to a command called INIT, which gets fired upon initialization of the items file.

As per documentation these should get included into the binding config in the items file like this:

Switch living_avr_power  "Multimedia"  <multimedia>  (media, devices)  { pioneeravr="INIT:Wohnzimmer:POWER_QUERY, OFF:Wohnzimmer:POWER_OFF, ON:Wohnzimmer:POWER_ON" }  // 35 Watt
Number living_avr_source  "Quelle [%d]"  (media)  { pioneeravr="INIT:Wohnzimmer:SOURCE_QUERY, -1:Wohnzimmer:SOURCE_QUERY, INCREASE:Wohnzimmer:SOURCE_UP,       DECREASE:Wohnzimmer:SOURCE_DOWN, *:Wohnzimmer:SOURCE_SET" }
Number living_avr_tuner_preset  "Sender [%s]" (media) { pioneeravr="INIT:Wohnzimmer:TUNER_PRESET_QUERY, *:Wohnzimmer:TUNER_PRESET" }

I would like to send the INIT command from my rule, so that I can request a status update of these items, just like the initialization does. Unfortunately, neither the symbol INIT nor the String "INIT" get accepted by the sendCommand(<Item>, <String or Symbol>) action.

Does anyone know how this can be achieved? Maybe I am just missing an Import to use this.
Why do I even want this, this is weird?

The Pioneer AVR binding completely stops polling the devices after a network error. After cutting the power from the media rack when not at home, and giving back its power (of course, fully automated), the Items never get updated again. They DO get updated though, if I send a command there. But I don’t want to change anything, but just request the status of these to get OpenHAB back into sync of what the physical AVR is doing.

Thank you very much for any ideas!

Were you able to figure this out? I’m trying to do the same thing with my Onko receiver.

Thanks

Right now I workaround this using the raw receiver commands I found in the Serial API Documentation. Most of them should be more or less the same for Onkyo Receivers.

rule:

for (i: 4..0) {
  sendCommand(living_avr_request_all, i)
}

item:

Number living_avr_request_all "" { pioneeravr="1:Wohnzimmer:#?P, 2:Wohnzimmer:#?F, 3:Wohnzimmer:#?V, 4:Wohnzimmer:#?PR" }

So with every of those commands I fire a request to the Receiver to report its status. We don’t need a mapping to any other item, because the Receiver will send everything needed for the item binding to detect which item it needs to update. So it’s basically a fire-and-forget. Answer will come back from the receiver within seconds.

P.S.: “Wohnzimmer” means “Living Room”