diff --git a/eraser-base/src/main/jastadd/Navigation.jrag b/eraser-base/src/main/jastadd/Navigation.jrag
index acadcc8b1a9bec73378c33aea27dc95b9ee94ecb..8281266e2752f40aceba72cefc862956d40395a2 100644
--- a/eraser-base/src/main/jastadd/Navigation.jrag
+++ b/eraser-base/src/main/jastadd/Navigation.jrag
@@ -122,5 +122,4 @@ aspect Navigation {
   eq Root.getRule().getRoot() = this;
   eq Root.getUser().getRoot() = this;
   eq Root.getLocation().getRoot() = this;
-  eq Root.getFrequencySetting().getRoot() = this;
 }
diff --git a/eraser-base/src/main/jastadd/Printing.jrag b/eraser-base/src/main/jastadd/Printing.jrag
index 00f966b85c41f697c26e46696caff3908df2423a..60e77e3a00a122f60495df3f66216a08accfbdb2 100644
--- a/eraser-base/src/main/jastadd/Printing.jrag
+++ b/eraser-base/src/main/jastadd/Printing.jrag
@@ -41,6 +41,9 @@ aspect Printing {
     for (Channel c : channels()) {
       sb.append(c.prettyPrint());
     }
+    for (FrequencySetting fs : getFrequencySettingList()) {
+      sb.append(fs.prettyPrint());
+    }
     return sb.toString();
   }
 
@@ -180,6 +183,14 @@ aspect Printing {
         .addIds("links", getLinkedItems())
         .build();
   }
+  
+  // FrequencySetting: id="" procFrec="";
+  eq FrequencySetting.prettyPrint() {
+    return new MemberPrinter("FrequencySetting")
+        .addNonDefault("id", getID())
+        .addNonDefault("procFreq", String.valueOf(getEventProcessingFrequency()))
+        .build();
+  }
 
   // ExternalHost: "hostName:port"
   syn String ExternalHost.prettyPrint() {
diff --git a/eraser-base/src/main/jastadd/Resolving.jrag b/eraser-base/src/main/jastadd/Resolving.jrag
index f93ac84b73cb0032a2eec15a0f949ee9a35c9e1b..f194a9f72348ede36fc56b6840a16b082880906c 100644
--- a/eraser-base/src/main/jastadd/Resolving.jrag
+++ b/eraser-base/src/main/jastadd/Resolving.jrag
@@ -116,7 +116,7 @@ aspect Resolving {
     return java.util.Optional.empty();
   }
 
-  syn java.util.Optional<FrequencySetting> Root.resolveFrequencySetting(String performanceId) {
+  syn java.util.Optional<FrequencySetting> SmartHomeEntityModel.resolveFrequencySetting(String performanceId) {
     for (FrequencySetting performance : getFrequencySettingList()) {
       if (performance.getLabel().equals(performanceId)) {
         return java.util.Optional.of(performance);
@@ -133,7 +133,7 @@ aspect Resolving {
 
   // _._ -> FrequencySetting
   refine RefResolverStubs eq ASTNode.globallyResolveFrequencySettingByToken(String id) {
-    return getRoot().resolveFrequencySetting(id).orElseThrow(() -> new RuntimeException("FrequencySetting '" + id + "' not found!"));
+    return getRoot().getSmartHomeEntityModel().resolveFrequencySetting(id).orElseThrow(() -> new RuntimeException("FrequencySetting '" + id + "' not found!"));
   }
 
   // Thing.Channel* -> Channel
diff --git a/eraser-base/src/main/jastadd/eraser.parser b/eraser-base/src/main/jastadd/eraser.parser
index 4ec6b8faf1d8f4ac6c942e4ce77cf750886cc41e..0da0601d2136e5ed105eddd81751da9d38e848c8 100644
--- a/eraser-base/src/main/jastadd/eraser.parser
+++ b/eraser-base/src/main/jastadd/eraser.parser
@@ -127,7 +127,7 @@ Root root =
   |  influx_root.ir root.r              {: r.setInfluxRoot(ir); return r; :}
   |  machine_learning_root.ml root.r    {: r.setMachineLearningRoot(ml); return r; :}
   |  rule.rule root.r                   {: r.addRule(rule); return r; :}
-  |  frequency_setting.ip root.r        {: r.addFrequencySetting(ip); return r; :}
+  |  frequency_setting.ip root.r        {: insertZero(r.getSmartHomeEntityModel().getFrequencySettingList(), ip); return r; :}
   |                                     {: return Root.createEmptyRoot(); :}
   ;
 
diff --git a/eraser-base/src/main/jastadd/main.relast b/eraser-base/src/main/jastadd/main.relast
index 76476f13ba5ae17824cc2f1a5d1e26a9622f1bfc..98e9bfdb34ac886e3d4ef568b45cb373ae2bb80d 100644
--- a/eraser-base/src/main/jastadd/main.relast
+++ b/eraser-base/src/main/jastadd/main.relast
@@ -1,5 +1,5 @@
 // ----------------    Main    ------------------------------
-Root ::= SmartHomeEntityModel User* MqttRoot InfluxRoot MachineLearningRoot Rule* Location* FrequencySetting*;
+Root ::= SmartHomeEntityModel User* MqttRoot InfluxRoot MachineLearningRoot Rule* Location* ;
 
 // ----------------    Users   ------------------------------
 User : LabelledModelElement ;
diff --git a/eraser-base/src/main/jastadd/shem.relast b/eraser-base/src/main/jastadd/shem.relast
index 165666746b6cd509b5046eeab257cd15289c5602..aa83375e5ca39d9e61f1dfeba1141bd722d90739 100644
--- a/eraser-base/src/main/jastadd/shem.relast
+++ b/eraser-base/src/main/jastadd/shem.relast
@@ -1,5 +1,5 @@
 // ----------------    openHAB    ------------------------------
-SmartHomeEntityModel ::= Thing* Group* ThingType* Parameter* ChannelType* Channel* ItemCategory* /ActivityItem:Item/ ;
+SmartHomeEntityModel ::= Thing* Group* ThingType* Parameter* ChannelType* Channel* ItemCategory* /ActivityItem:Item/ FrequencySetting*;
 
 
 abstract ModelElement ::= <ID:String> ;
diff --git a/eraser-base/src/main/java/de/tudresden/inf/st/eraser/parser/EraserParserHelper.java b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/parser/EraserParserHelper.java
index abb789b66118b14c609711de134de169e9cde565..c832b194ac9d7592d7ddb9e3c099b6f19a972f55 100644
--- a/eraser-base/src/main/java/de/tudresden/inf/st/eraser/parser/EraserParserHelper.java
+++ b/eraser-base/src/main/java/de/tudresden/inf/st/eraser/parser/EraserParserHelper.java
@@ -453,9 +453,9 @@ class EraserParserHelper {
     return result;
   }
 
-  public Root createRoot(FrequencySetting FrequencySetting) {
+  public Root createRoot(FrequencySetting frequencySetting) {
     Root result = createRoot();
-    result.addFrequencySetting(FrequencySetting);
+    result.getSmartHomeEntityModel().addFrequencySetting(frequencySetting);
     return result;
   }
 
diff --git a/eraser-base/src/test/java/de/tudresden/inf/st/eraser/RulesTest.java b/eraser-base/src/test/java/de/tudresden/inf/st/eraser/RulesTest.java
index b056ba020adc39a9d6bcf5c17a7563acf5da6184..a8c1f727a599a1f529173428dee1d11fa5974156 100644
--- a/eraser-base/src/test/java/de/tudresden/inf/st/eraser/RulesTest.java
+++ b/eraser-base/src/test/java/de/tudresden/inf/st/eraser/RulesTest.java
@@ -922,9 +922,9 @@ public class RulesTest {
     TestUtils.ModelAndItem mai = createModelAndItem(0);
     NumberItem numberItem = mai.item;
 
-    FrequencySetting itemPerformance = new FrequencySetting();
-    itemPerformance.setEventProcessingFrequency(10);
-    numberItem.setFrequencySetting(itemPerformance);
+    FrequencySetting frequencySetting = new FrequencySetting();
+    frequencySetting.setEventProcessingFrequency(10);
+    numberItem.setFrequencySetting(frequencySetting);
 
     Rule rule = new Rule();
     CountingAction counter = new CountingAction();
diff --git a/eraser-base/src/test/resources/tests/ppc2/input.eraser b/eraser-base/src/test/resources/tests/ppc2/input.eraser
index d53a7f32e5ed4a0f1ccf394458f9b5e3d786e25a..36fddab19dc562bbed3fe437c147016f64ef7eee 100644
--- a/eraser-base/src/test/resources/tests/ppc2/input.eraser
+++ b/eraser-base/src/test/resources/tests/ppc2/input.eraser
@@ -4,4 +4,5 @@ Group: id="my-group" items=["iris1_item"] ;
 ThingType: id="skywriter-hat" label="SkyWriterHAT" description="SkyWriterHAT Gesture Recognition" parameters=["brokername"] channelTypes=["flick-type"] ;
 ChannelType: id="flick-type" itemType="String" label="Last Flick" description="Last Flick detected (and its direction)" category="Motion" readOnly ;
 Parameter: id="brokername" type="text" required label="Broker Name" description="Name of the broker as defined in the &lt;broker&gt;.url in services/mqtt.cfg. See the MQTT Binding for more information on how to configure MQTT broker connections." context="service" default="mosquitto" ;
+FrequencySetting: id="ip1" procFreq="10.0";
 Influx: host="localhost" ;
diff --git a/eraser-base/src/test/resources/tests/ppc2/output.eraser b/eraser-base/src/test/resources/tests/ppc2/output.eraser
index e7371849cfb16b0f0228c800666b4145b0437544..9fec0c1fd2611dd05a1e7872899aecd21936ff89 100644
--- a/eraser-base/src/test/resources/tests/ppc2/output.eraser
+++ b/eraser-base/src/test/resources/tests/ppc2/output.eraser
@@ -3,5 +3,6 @@ Group: id="my-group" items=["iris1_item"] ;
 ThingType: id="skywriter-hat" label="SkyWriterHAT" description="SkyWriterHAT Gesture Recognition" parameters=["brokername"] channelTypes=["flick-type"] ;
 ChannelType: id="flick-type" label="Last Flick" description="Last Flick detected (and its direction)" itemType="String" category="Motion" readOnly ;
 Parameter: id="brokername" label="Broker Name" description="Name of the broker as defined in the &lt;broker&gt;.url in services/mqtt.cfg. See the MQTT Binding for more information on how to configure MQTT broker connections." type="Text" context="service" default="mosquitto" required ;
+FrequencySetting: id="ip1" procFreq="10.0" ;
 Mqtt: incoming="ppc2/" outgoing="oh2/in/" host="localhost" ;
 Influx: host="localhost" ;