1# Fan Control Debug
2
3Fan control's internal data structures can be dumped at runtime using the
4`fanctl dump` command, which triggers fan control to write the structures to a
5`/tmp/fan_control_dump.json` file.  That file is a normal JSON file that can be
6viewed, or the `fanctl query_dump` command can be used as a shortcut to just
7print portions of the file.
8
9[This page](fanctl/README.md) has additional information about the fanctl
10command.
11
12## Flight Recorder
13The flight recorder contains interesting events such as each time the zone
14target changes.
15
16It can be printed with:
17```
18fanctl query_dump -s flight_recorder
19```
20
21## Object Cache
22The object cache contains the most recent D-Bus properties of all of the groups
23from the groups.json files.  If any of the D-Bus properties had a value of
24`NaN` (not a number), it is deleted from the cache so won't be present.
25
26It can be printed with:
27```
28fanctl query_dump -s objects
29```
30
31One can restrict the output to specific names with `-n` and properties with
32`-p`:
33
34The `-n` option will match on substrings.
35
36Print the full entries of all temp sensors in the cache:
37```
38fanctl query_dump -s objects -n sensors/temperature
39```
40
41Print just the Value properties of all temperature sensors in the cache:
42```
43fanctl query_dump -s objects -n sensors/temperature -p Value
44```
45
46This allows one to do something like find all Functional property values that
47are false:
48
49```
50fanctl query_dump -s objects -p Functional | grep -B 1 false
51```
52
53## Zone Config
54The zone configuration contains values like the current target, current
55floor, and any outstanding floor or target holds.
56
57It can be printed with:
58```
59fanctl query_dump -s zones
60```
61
62## Parameter Values
63Parameters are key/value pairs set and used by actions.
64
65They can be printed with:
66```
67fanctl query_dump -s parameters
68```
69
70## Service Cache
71Fan control maintains a map of objects paths of the group members to the
72services that own them.
73
74It can be printed with:
75```
76fanctl query_dump -s services
77```
78
79## Configured Events
80Fan control can dump a list of all of its configured event names along with
81their group names.
82
83It can be printed with:
84```
85fanctl query_dump -s events
86```
87