diff --git a/building_manager.py b/building_manager.py
index 9a48625113ad1e04ca9b77c9e51e6d3b22faebea..7a9cd4b76d09562f6011a765e95f31efff156495 100755
--- a/building_manager.py
+++ b/building_manager.py
@@ -6,6 +6,7 @@ from typing import NamedTuple
 import logging
 import os
 import sys
+import json as pyjson
 from hashlib import md5
 from shutil import copy2
 from subprocess import PIPE, run
@@ -960,6 +961,28 @@ def generate_pb_framr_file(frames):
         EDIT_FILES['pb_framr_pages'], configs, json=True)
 
 
+def update_pb_framr_host(old_host, new_host):
+    """Updates framr config to use changed host name
+
+    :old_host: old host that shall be replaced
+    :new_host: host that will be the new target
+    """
+    configs = []
+
+    config_path = EDIT_FILES['pb_framr_pages']
+    custom_config_path = f'{custom_path}/{config_path}'
+    with open(custom_config_path, 'r') as file:
+        configs = pyjson.load(file)
+        for c in configs:
+            for e in c['entries']:
+                if e['url'] == f"http://{old_host}/":
+                    e['url'] = f"http://{new_host}/"
+
+    if configs:
+        create_or_replace_config_file(
+            EDIT_FILES['pb_framr_pages'], configs, json=True)
+
+
 def create_or_replace_config_file(config_path, content, json=False):
     """Creates or replaces a config file with new content
 
@@ -1328,7 +1351,7 @@ def remove_label_from_nodes(label, value, manager=None):
         logging.info(f'Remove label {label} with value {value} from {m}')
 
     client.close()
-    return [n.id for n in matching_nodes]
+    return [n.attrs['Description']['Hostname'] for n in matching_nodes]
 
 
 def assign_label_to_node(nodeid, label, value, manager=None):
@@ -1418,6 +1441,7 @@ def restore_building_backup(manager, building, new_machine=None):
             run_command_in_service('backup', 'restore', new_machine)
             # When building was moved update host entry of openhab in compose
             move_openhab_service(building, new_machine)
+            update_pb_framr_host(old_nodes[0], new_machine)
         else:
             logging.error(
                 f"Failed to start services on {new_machine}, "
@@ -1426,6 +1450,7 @@ def restore_building_backup(manager, building, new_machine=None):
             remove_label_from_nodes('building', building, manager)
             for on in old_nodes:
                 assign_label_to_node(on, 'building', building, manager)
+                update_pb_framr_host(new_machine, on)
     else:
         # execute restore command in backup service
         run_command_in_service('backup', 'restore', manager)