diff --git a/control/gen-fan-zone-defs.py b/control/gen-fan-zone-defs.py
index 4d310b9..dc28d1a 100755
--- a/control/gen-fan-zone-defs.py
+++ b/control/gen-fan-zone-defs.py
@@ -157,13 +157,19 @@
         e += "},\n"
         e += "std::vector<Action>{\n"
         for a in d['actions']:
-            e += "make_action(action::" + a['name'] + "(\n"
+            if len(a['parameters']) != 0:
+                e += "make_action(action::" + a['name'] + "(\n"
+            else:
+                e += "make_action(action::" + a['name'] + "\n"
             for i, p in enumerate(a['parameters']):
                 if (i+1) != len(a['parameters']):
                     e += p + ",\n"
                 else:
                     e += p + "\n"
-            e += ")),\n"
+            if len(a['parameters']) != 0:
+                e += ")),\n"
+            else:
+                e += "),\n"
         e += "}},\n"
     e += "},\n"
 
@@ -576,7 +582,7 @@
     epc = next(p for p in events_data['preconditions']
                if p['name'] == event['precondition']['name'])
     params = []
-    for p in epc['parameters']:
+    for p in epc['parameters'] or []:
         param = {}
         if p == 'groups':
             param['type'] = "std::vector<PrecondGroup>"
diff --git a/control/templates/defs.mako b/control/templates/defs.mako
index b090fb9..e3addbc 100644
--- a/control/templates/defs.mako
+++ b/control/templates/defs.mako
@@ -72,7 +72,11 @@
 },
 std::vector<Action>{
 %for a in e['actions']:
+%if len(a['parameters']) != 0:
 make_action(action::${a['name']}(
+%else:
+make_action(action::${a['name']}
+%endif
 %for i, p in enumerate(a['parameters']):
 %if (i+1) != len(a['parameters']):
     ${p},
@@ -80,7 +84,11 @@
     ${p}
 %endif
 %endfor
+%if len(a['parameters']) != 0:
 )),
+%else:
+),
+%endif
 %endfor
 }},
 %endfor
diff --git a/control/templates/fan_zone_defs.mako.cpp b/control/templates/fan_zone_defs.mako.cpp
index a710a9e..214df56 100644
--- a/control/templates/fan_zone_defs.mako.cpp
+++ b/control/templates/fan_zone_defs.mako.cpp
@@ -114,13 +114,8 @@
                         {Group{},
                         std::vector<Action>{
                         %for i, a in enumerate(event['pc']['pcact']):
-                        %if len(a['params']) != 0:
                         make_action(
                             precondition::${a['name']}(
-                        %else:
-                        make_action(
-                            precondition::${a['name']}
-                        %endif
                         %for p in a['params']:
                         ${p['type']}${p['open']}
                         %for j, v in enumerate(p['values']):
@@ -132,13 +127,6 @@
                         %endfor
                         ${p['close']},
                         %endfor
-                        %if (i+1) != len(event['pc']['pcact']):
-                        %if len(a['params']) != 0:
-                        )),
-                        %else:
-                        ),
-                        %endif
-                        %endif
                         %endfor
                     std::vector<SetSpeedEvent>{
                     %for pcevt in event['pc']['pcevts']:
@@ -154,11 +142,7 @@
                     %endif
                     %if ('pc' in event) and (event['pc'] is not None):
                     }
-                        %if len(event['pc']['pcact'][-1]['params']) != 0:
                         )),
-                        %else:
-                        ),
-                        %endif
                         }},
                         },
                         std::vector<Trigger>{
