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 wrote: > >  > > >> 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