Query Sensor

Mike Jones proclivis at gmail.com
Fri Jan 14 08:16:01 AEDT 2022


Ed,

What translates the redfish query into a dbus query?

Mike

Sent from my iPad

> On Jan 11, 2022, at 7:04 PM, Ed Tanous <ed at tanous.net> wrote:
> 
> 
> 
> 
>> On Tue, Jan 11, 2022 at 9:53 AM Mike Jones <proclivis at gmail.com> wrote:
>> 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.
> 
> Correct.
> 
>> 
>> 
>> The interface is defined by yaml files in phosphor-dbus-interfaces.
> 
> Yep.
> 
>> 
>> 
>> phosphor-dbus- interfaces generates c++ base classes, and dbus-sensors probably have c++ classes inheriting from them.
> 
> 
> For various technical and social reasons which I’ve detailed in mail to this list in the past, dbus-sensors doesn’t depend directly on phosphor-dbus-interfaces, nor rely on the generated code. It instead generates code from c++ template expansion in sdbusplus.
> 
>> 
>> 
>> These interfaces are not Redfish interfaces.
> 
> Correct.
> 
>> 
>> 
>> 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?
> 
> 
> Depends on which webui you’re talking about, there are two.
> 
> Phosphor-webui (ie the “old” one) goes directly to dbus through the rest-dbus abstraction in bmcweb.  This was very good for initial prototyping (aside from a port to c++, the code largely hasn’t changed since it was written) but not great at keeping a consistent or standardized API.
> 
> Webui-vue (ie, the new one) relies on Redfish directly, which in-effect makes a very nice Redfish gui, and minimizes the chance that the dbus interfaces are correct, but redfish is broken.  It also keeps us standard compliant, so in theory webui-vue could be used on another non-openbmc project in the future.
> 
> Ed
> 
>> 
>> 
>> 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
> -- 
> -Ed
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20220113/bd3d9a1e/attachment.htm>


More information about the openbmc mailing list