Query Sensor

Mike Jones proclivis at gmail.com
Wed Jan 12 04:52:31 AEDT 2022


Ed,

So to be sure I understand, dbus-sensors implements the dbus services for each sensor type, and the requests I made were serviced by one of these.

The interface is defined by yaml files in phosphor-dbus-interfaces.

phosphor-dbus- interfaces generates c++ base classes, and dbus-sensors probably have c++ classes inheriting from them.

These interfaces are not Redfish interfaces.

When WebUI fetches sensor values, is it using these interfaces, or is there another Redfish layer involved that translates the query? Or perhaps Redfish only matters for things like a PSU?

Mike


Sent from my iPad

> On Jan 11, 2022, at 10:22 AM, Ed Tanous <edtanous at google.com> wrote:
> 
> On Tue, Jan 11, 2022 at 9:17 AM Mike Jones <proclivis at gmail.com> wrote:
>> 
>> This is how to do it:
>> 
>> dbus-send --system --print-reply \
>> 
>> --dest=xyz.openbmc_project.Hwmon-5a446562b1a2e55ef11da905907088a187a66b71eb7a1f29187594c05bb8fd9a.Hwmon1 \
>> 
>> /xyz/openbmc_project/sensors/temperature/lm75temp \
>> 
>> org.freedesktop.DBus.Properties.Get string:xyz.openbmc_project.Sensor.Value string:Value \
>> 
>> double:
>> 
>> 
>> It is not clear to me why the second parameter string:Value
>> 
>> 
>> I guessed on that and it works. Perhaps xyz…Sensor.Value is the Property name, and properties have values, so the second parameter says get the Value of a property whose name ends in .Value.\
> 
> For better or worse, the term "Value" is overloaded in both the
> interface name, yz.openbmc_project.Sensor.Value, and the property name
> within the interface, Value.  That's why you see it twice in this
> case.  They are distinct things within the request that just happen to
> share a name.  Docs for the interface and property are here:
> https://github.com/openbmc/phosphor-dbus-interfaces/blob/e0674c894ed36a2e8cf96207907a531d2f514054/yaml/xyz/openbmc_project/Sensor/Value.interface.yaml#L24
> 
> Happy to see you figured it out.
> 
>> 
>> 
>> To test that, I tried string:MaxValue, and that works.
>> 
>> 
>> I confirmed with this:
>> 
>> 
>> busctl introspect xyz.openbmc_project.Hwmon-5a446562b1a2e55ef11da905907088a187a66b71eb7a1f29187594c05bb8fd9a.Hwmon1 /xyz/openbmc_project/sensors/temperature/lm75temp
>> 
>> 
>> A very useful command.
>> 
>> 
>> Also useful:
>> 
>> 
>> dbus-send --system --print-reply \
>> 
>> --dest=xyz.openbmc_project.ObjectMapper /\
>> 
>> xyz/openbmc_project/object_mapper \
>> 
>> xyz.openbmc_project.ObjectMapper.GetSubTree \
>> 
>> string:"/" int32:0 array:string:"xyz.openbmc_project.Sensor.Value"
>> 
>> 
>> 
>> Mike
>> 
>> 
>> Sent from my iPad
>> 
>> On Jan 10, 2022, at 4:50 PM, Ed Tanous <edtanous at google.com> wrote:
>> 
>> On Mon, Jan 10, 2022 at 3:47 PM Mike Jones <proclivis at gmail.com> wrote:
>> 
>> 
>> Hi,
>> 
>> 
>> I could not find an example of a sensor query in the docs. I assume something like this:
>> 
>> 
>> dbus-send --system --print-reply \
>> 
>> 
>> --dest=xyz.openbmc_project.Hwmon-5a446562b1a2e55ef11da905907088a187a66b71eb7a1f29187594c05bb8fd9a.Hwmon1 \
>> 
>> 
>> /xyz/openbmc_project/sensors/temperature/lm75temp
>> 
>> 
>> xyz.openbmc_project.Sensor.Property.Get xyz.openbmc_project.Sensor.Value \
>> 
>> 
>> double:
>> 
>> 
>> 
>> I don't have an example offhand, but the interface you're looking for
>> in the bolded area is
>> org.freedesktop.DBus.Properties.Get
>> 
>> Stack overflow for essentially the same question with an example:
>> https://stackoverflow.com/questions/48648952/set-get-property-using-dbus-send
>> 
>> 
>> With the bold interface replaced with something correct.
>> 
>> 
>> Can some one give me an example, and a url about how to query properties?
>> 
>> 
>> Mike
>> 
>> 
>> Sent from my iPad


More information about the openbmc mailing list