On Tue, Jan 11, 2022 at 9:53 AM Mike Jones 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 wrote: > > > > On Tue, Jan 11, 2022 at 9:17 AM Mike Jones 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 wrote: > >> > >> On Mon, Jan 10, 2022 at 3:47 PM Mike Jones > 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