Skip to content

Releases: BuRnEd4AiM/HA-Floorplanner

3D Floorplan 4.51.0

Choose a tag to compare

@github-actions github-actions released this 02 Nov 00:06
a2ed16a

Added

  • 📅 Special days for own routines (the owner, 2026-11-01: "dass man jetzt zum Beispiel sagen kann, diese Automatisierung soll aber am folgenden Tag … Feiertag … oder einen vordefinierten Tag … anders sein, wie zum Beispiel an Halloween, an Heiligabend soll zum Beispiel der Rollladen nicht ganz hochfahren, obwohl die Rollladensteuerung sagt, dass jeden Tag 7 Uhr etwas gesteuert wird"):
    • 📅 Besondere Tage on ▶ Abläufe: one list of days for all routines: a date every year (also from … to, over the new year too), one day or a few days once, a day around Easter, the public holidays of Germany or of one German state (all 16, with their names and the next one), or a calendar of Home Assistant (while it has an event); ready ones with one tap (Feiertage, Heiligabend, Weihnachten, Silvester, Halloween, Nikolaus, Rosenmontag, Morgen, Urlaub, Eigener Tag, Kalender);
    • a new block 🎉 Besonderer Tag under Nur wenn …: a path runs only on special days or only on the other days, on any of them or on the ones ticked; the block says when its day comes next;
    • An besonderen Tagen anders at the trigger of a path: pick the days and the path becomes two, one as before for every other day and a copy for those days, in which you only change what is different (the shutter only to 50 %, another time);
    • it works for routines the add-on runs and for routines that are automations of Home Assistant (one template condition with the dates of the next ten years; written anew when the routine or the days are saved); the days are in the backup.
  • Quick positions on the roller shutter card (the owner, 2026-11-01: "bei der Rollladensteuerungskarte in diesem Dashboard hätte ich gern auch so eine Voreinstellung mit 50 %, 75 %, 100 % und 0 % zusätzlich zu dem Hoch- und Runterfahren"): the own card 🪟 Rollladen has 0 % · 50 % · 75 % · 100 % under ▲ ■ ▼ (the one it stands at is marked); in the card's settings up to six of 0 … 100 % can be picked under Feste Stufen. The window of a button card for a cover has them too.

Changed

  • The logic of the special days is a module of its own, specialdays.js (page) and specialdays.py (add-on), with unit tests that also check both say the same on 800 days and for every German state (tests/specialdays.test.mjs, a new CI step, tests/test_specialdays.py); the window is specialdaysui.js, the quick positions coverrow.js. tools/ha_check.py lets a real Home Assistant render the condition on 800 days.
  • Test protocol: new section 140.

3D Floorplan 4.50.1

Choose a tag to compare

@github-actions github-actions released this 31 Oct 11:30
8c870ce

Added

  • A window pane can be "Fest (öffnet nicht)" (the revised #606 by @aixmoyu, pushed shortly before 4.50.0 was merged; the owner: "Ja, als 4.50.1"): with several panes, the field "Fenster öffnet" of each pane also offers Fest; such a pane has no contact field of its own and never opens (e.g. the middle of a triple window).

Changed

  • A pane without a contact of its own follows the window's main contact again, as before 4.50.0 (4.50.0 kept it closed); a fixed pane is now set explicitly with Fest. Older windows behave as they did before 4.50.0.
  • The card of a roller shutter is called "Rollladen" again; only a curtain's card says "Vorhang / Rollladen".
  • The 2D plan shows ⇔ for every curtain (the plan can be turned, so ← / → would often point the wrong way there); the 3D label still shows the side.
  • The room panel shows "Öffnet" / "Schließt" for a curtain on its way, and the curtain hint in the side panel only shows for a curtain.
  • The JSON import warns about wrong values of shutterStyle, panes, hinge and paneHinges instead of dropping them silently, accepts 4.0 as four panes, and drops the contact of a fixed pane and contacts of panes a window does not have.
  • More unit tests (the card's buttons, fixed panes, 3D build of curtains and panes, the importer); browser test part 03 checks "Fest" and the main contact.
  • Test protocol: new section 139, 138.5 follows 4.50.1.

3D Floorplan 4.50.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 11:07
dbbfc60

Added

  • 🪟 Curtains that open to the side, and every pane of a window on its own (#606 by @aixmoyu; the owner: "Schau dir mal #606 an", then "Ich übernehme ihn"):
    • the cover of a window can now be a roller shutter (as before), a curtain pulled open to the left or to the right, or a curtain that parts in the middle (field "Vorhangart" under the tick "Vorhang / Rollladen"); one cover entity drives it as before (100 % = open);
    • in 3D the cloth hangs inside the room on a rod and gathers to its side or to both sides; the label over the window, the 2D plan and the device list show ← / → / ⇔ instead of ↕;
    • the live card's buttons say which way it opens and closes ("Nach links aufziehen" / "Nach rechts schließen", "Mittig nach beiden Seiten" / "Zur Mitte schließen"), with drawn arrows; while it moves it says "Öffnet" / "Schließt";
    • a window can have 1 to 8 panes (field "Anzahl Flügel"), and every pane its own hinge: bottom (the top tilts in, as before), top, left or right (it turns in like a door); with several panes there is one field per pane; every pane can have its own contact (now up to 8), and the room panel lists all of them;
    • JSON import and export and the schema know shutterStyle, panes, hinge and paneHinges.

Changed

  • A window's panes always tilt into the room now; before, a window without a roller shutter could tilt outwards, depending on the direction its wall was drawn in.
  • Once some panes of a window have a contact of their own, a pane without one stays closed (that is how a fixed pane is made); before it followed the window's main contact. Windows without pane contacts work as before.
  • The logic of the panes is a module of its own, windowpanes.js, with a unit test (tests/windowpanes.test.mjs, a new CI step); the browser test checks the new fields (part 03).
  • Test protocol: new section 138.

3D Floorplan 4.49.0

Choose a tag to compare

@github-actions github-actions released this 30 Oct 12:30
44b84c4

Added

  • 3D Floorplan on Home Assistant's own address for Home Assistant Container, without a second login (#601 by @aixmoyu; the owner: "check das mal ob wir das mergen können", then "übernehme es"). An optional Home Assistant integration in container/custom_components/floorplan3d/ (copy it to config/custom_components/, restart once, add "3D Floorplan (Container)" under Settings → Devices & services):
    • the container is served at http://<Home Assistant>:8123/floorplan/ (also its live channel, uploads and downloads up to 200 MB), at every address Home Assistant is reachable at and on the same origin as the dashboard;
    • it signs the browser in with the Home Assistant user who is logged in: the container's own login runs on the server, the browser's Home Assistant token never goes to the container, only the container's own cookies cross;
    • its own dashboard card custom:floorplan3d-container-card with the options of custom:floorplan3d-card and a visual editor (English, German, Chinese), loaded by the integration itself;
    • a second lock besides the container's login: without the container's session cookie nothing is passed on (a container started without HA_TOKEN is not open through Home Assistant);
    • instructions in container/custom_components/floorplan3d/README.md and container/README.md; its tests are tests/test_container_dashboard.py, tests/test_floorplan3d_setup.py and tests/containercard.test.mjs (a new CI step).

3D Floorplan 4.48.0

Choose a tag to compare

@github-actions github-actions released this 30 Oct 11:55
b670357

Added

  • ▦ "Frei anordnen": the cards of a page where you want them (the owner with a picture of 🔘 Knöpfe in the edit mode: "das man die karte platzieren kann wo man will … ein unsichtbares gitter im hintergrund … wo den abstand und das einrasten gewährt … wenn ich will das eine karte unten rechts ist"; his choice after two example pictures, docs/ideen-4.48/). Until now the cards of a page flowed from the top left and closed every gap; now a page can put them on an invisible grid of 12 columns:
    • switched on per page (also per version of a page) in the edit mode with "▦ Frei anordnen" in the strip at the top; the cards start where they stand now, nothing jumps; the other pages stay as they are;
    • ⠿ drags a card to any place of the grid, also far down on the right; while dragging a blue field shows where it snaps in; gaps stay free, nothing moves up by itself;
    • dropped on another card, that one moves down just as far as needed (and the ones below it, if needed);
    • the corner ↘ makes a card wider, narrower, higher or lower, in steps of the grid; a card lower than its content scrolls inside; a button fills its place;
    • in the edit mode the grid shows as faint cells (with a few empty rows below the cards, to put one lower), otherwise it is invisible;
    • on a phone the cards stand one under the other, from top left to bottom right (moved on the iPad or PC);
    • switched off, the cards close up again as before; the places are kept and come back when it is switched on again; "↺ Wie am Anfang" forgets them;
    • a page with sections shows no sections while it is placed freely ("+ Abschnitt" is hidden then), they come back when it is switched off.

Changed

  • Test protocol: new section 137.

3D Floorplan 4.47.0

Choose a tag to compare

@github-actions github-actions released this 30 Oct 10:45
ddbd4ee

Added

  • 🎚️ Several lamps in one bar of the card "Lichtsteuerung" (the owner with a picture of "Karte „Lichtsteuerung“ einstellen": "ich kann nicht pro Karte mehrere Lampen hinzufügen … pro Kachel einfach mehrere Lampen verknüpfen"). Until now a bar was one lamp, one light group of Home Assistant or one switch; now a bar can hold up to 16 lamps of its own, like a group made in the card (no group in Home Assistant or Zigbee2MQTT needed):
    • in "Karte einstellen" each bar has "+ Lampe dazu": a search just for this bar, a tap on a lamp adds it, the search stays open for the next one ("Fertig" closes it); the lamps of a bar show below its name, each with ✕; the bar keeps its own name and symbol (without a name: the first lamp "+2");
    • on the card the bar is on when one of its lamps is on, filled as bright as they are on average (like a group of Home Assistant), in the colour of the first one on;
    • a tap or the switch switches all its lamps (off: the ones that are on), dragging sends the new brightness to every lamp of it (a lamp that only switches and a switch go on), a lamp that is not available is left out;
    • ▸ (and a long press) opens the bar to its lamps, each with its own bar; "Alle aus" switches off every lamp that is on;
    • a lamp may also be in several bars (e.g. "Wohnzimmer" with all three and "Stehlampe" alone).

Changed

  • The part of "Karte einstellen" for the light card is its own file (lightcardedit.js, from lightcardui.js).
  • The demo has a bar "Voute" with two lamps on the light cards.
  • Test protocol: new section 136.

3D Floorplan 4.46.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 22:15
794f0f7

Added

  • 简体中文: Simplified Chinese as the eighth language (#587, thanks to @aixmoyu, who translated all texts of the add-on and the options page of Home Assistant): ⚙ → Sprache → 简体中文, or Auto on a device whose browser is set to Chinese. The contribution came from version 4.42.0; the 83 texts added since then (▶ Abläufe by room, the row "👁 Ausgeblendet", the scene bar and the light card of 4.45.0) are translated too, and tools/add_i18n.py now asks for Chinese with every new text, so it stays complete. The voice search does not understand Chinese yet (with Chinese it uses the German words).

Changed

  • Test protocol: new section 135.

3D Floorplan 4.45.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 21:42
1dfd6dd

Added

  • 🎬 A scene bar over the tab bar (#597, the owner with a picture of ☀ Heute on his iPad: "über dieser Leiste, die wir da unten haben, … Szenen reinmachen, die man auch, wenn es mehrere Szenen sind, … scrollen kann, von links nach rechts … dass man das direkt auch pro Dashboard theoretisch verknüpfen kann"). Right above the tabs (🏠 Haus, ☀ Heute, ⚡ Energie …) a row of tiles with a symbol and a name, e.g. "🛋 Wohnzimmer an":
    • a tap starts the scene (scene.turn_on) or the script (script.turn_on), the tile shows ✓ for a moment, a note above the bar when it did not work; a long press opens Home Assistant's own window of it (outside Home Assistant the add-on's window);
    • the scene that ran last has a small dot (a scene's state in Home Assistant is the time it was last turned on, a script has its last run);
    • more tiles than fit: swiped with a finger or scrolled with the mouse wheel sideways, it stops at a tile, no scroll bar, the cut side fades out; on the iPad (upright and lying) and on the phone;
    • the page ends above it, nothing is covered; no scenes for a page: no bar at all;
    • set in the edit mode (✎ Bearbeiten, then "🎬 Szenen-Leiste" in the strip or the tile ✎ at the end of the bar): "Szenen-Leiste anzeigen" on or off, one list for every page, and per page (also per version of a page, #507, e.g. "☀ Heute · 🧒 Kinder") "Wie alle Seiten", "Eigene Szenen" or "Keine Leiste"; scenes and scripts are added from a search, each tile gets its own name, symbol and colour, the order is dragged with ⠿, ✕ removes one. Stored in the settings (sceneBar, boards.clean_scene_bar); without it everything stays as before.
  • 🎚️ A new card "Lichtsteuerung" (#597, the owner: "diese Lichtkarte … mit diesem Schieberegler von links und rechts diesen Ausknopf, dass man da Gruppen oder auch nur einzelne Lampen hinzufügen kann"; his picture: the slider-button-card "Light Control"). A wide bar per lamp, light group (of Home Assistant or Zigbee2MQTT) or switch:
    • filled as far as the lamp is bright, in its colour (a white tone as warm or cold white, else a warm yellow); left the symbol, the name and "75 %", "Aus" or "Nicht verfügbar", right a switch;
    • dragging the bar sideways sets the brightness: the number follows the finger at once, the command goes out only when the finger lets go (a Zigbee net is not flooded); up and down the page scrolls as always;
    • a short tap switches on or off, a long press opens Home Assistant's own window; a lamp that cannot dim and a switch only switch, a lamp that is not available is grey and takes no tap;
    • a light group of Home Assistant opens with ▸ to its lamps, each with its own bar (a Zigbee2MQTT group does not tell Home Assistant its lamps: it stays one bar);
    • in "Karte einstellen": the title, the lamps from a search (each with its own name and symbol, ⠿ to drag, ✕ to remove), "Alle aus" in the head of the card, groups to open, and "Als Karte auf der Seite" or "Als Fenster (Popup)": as a window the card opens from "💡 n Lichter an" in "Im Haus" on ☀ Heute (a tick) or from a button card with the new tap "🎚️ Lichtsteuerung"; while editing it stays on the page with the tag "↗ Fenster".
    • The add-on now also tells the page which lamps a light group of Home Assistant has and whether a lamp can dim (slim_state: members, dim).

Changed

  • The demo has the scene bar, the light card on the page 🔘 Knöpfe, the window behind "💡 n Lichter an" and the button "Alle Lichter"; its scenes say when they last ran.
  • Test protocol: new section 134.

3D Floorplan 4.44.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 20:12
9de86da

Changed

  • ✎ Bearbeiten: a hidden card is really gone, the row "👁 Ausgeblendet" brings it back (#595, the owner with a picture of ☀ Heute in his version "Eltern": "wenn ich eine Karte ausblende, dass sie dann auch für mich wirklich weg ist und ich dann einfach sozusagen irgendwo eine Liste habe mit ausgeblendeten Elementen und dann wieder anhaken kann … weil sonst wird es echt schwierig, die richtig anzuordnen"). Until now a card hidden with 👁 stayed in its place while editing, faded and marked "ausgeblendet", so the page in the edit mode did not look like the page later. Now:
    • 👁 takes the card off the page in the edit mode too: what one arranges is what one sees afterwards;
    • under the edit strip (and the purple strip of the versions) the row "👁 Ausgeblendet" lists every hidden card of the page by name, each with a box (☐ Termine, ☐ Wer ist da, a room's name on 🌡 Klima …); a tap on one shows it again at its old place, "Alle zeigen" shows all of them; without hidden cards the row says how to hide one;
    • it works in every version of a page (#507): each version has its own hidden cards and its own row;
    • dragging the other cards keeps a hidden card's place in the order and in its section, so it comes back where it was.
  • Test protocol: new section 133.

3D Floorplan 4.43.1

Choose a tag to compare

@github-actions github-actions released this 29 Oct 10:46
5b8bf7b

Fixed

  • 🌡 Room sensor: a target the thermostat did not take is no "new wish" any more (#592, the owner with a picture of his WZFL: "Ich glaube da ist noch immer was nicht so ganz richtig oder?": the card said "🔥 Zu warm · Thermostat 12°", but 27° was wished and the thermostat stood at 29,5° and heated). A radiator thermostat now and then loses a target the add-on sends; it then simply goes on showing its old one. With "↕ Wunsch verschieben" the add-on took such an old target as a wish somebody else had set, 3 minutes after sending, as soon as it was more than 30 minutes old. In his report of the night: too warm wanted 12°, the thermostat kept its 24,5° for half an hour, then the 24,5° and later 27° became the wish and the room was heated to 26°; in the night the wish went from 12° down to 8° (WZFL) and up to 19,5° (TOI) step by step; in the morning the schedule's comfort 24° became a wish of 8,5° ("✋ Von Hand gedreht"). Now:
    • only a target that changes is somebody's wish; one that stays is sent again after 3 minutes, at most 5 times, then every 10 minutes as before (🩺 Protokoll: "noch einmal: das Thermostat hatte es nicht übernommen");
    • a thermostat that is off, was switched on a moment ago or reports again after a while shows a target it remembered: no wish, the add-on's target again;
    • a target of the heating rules for a thermostat with a room sensor is its wish also when the add-on looks at it the first time (his TOI at 23:18, back after not reporting: the rules' 12° went straight to the thermostat, then its own 22° became the wish);
    • "↕ neuer Wunsch" stands in the 🩺 Protokoll once, not every 15 seconds.
  • 🔥 Zu warm notices a turn by hand (#592): turned up while the room was still too warm, the thermostat heated on, the card still said "Thermostat 12°" and too warm never ended. Now it goes down again after the minutes of "📅 Von Hand gedreht: zurück nach" (his 5 minutes), as under the schedule; the room's card says "✋ von Hand gedreht, ab 11:05 wieder 12°", the card 🔥 Zu warm in 📋 Heiz-Regeln says how it is set. With "erst beim nächsten Abschnitt" it stays as turned. His WZFL goes back to 12° by itself 5 minutes after the update.

Changed

  • The random days of the heating also with a room sensor (tests/test_heatorder.py): 300 more days with a thermostat whose target its room sensor moves, that measures up to 3° too warm at the radiator and loses up to 60 % of the targets sent to it; a wish nobody set counts as a mistake. 4.43.0 went wrong on 211 of these 300 days, now on none. The random days of 4.42.1 check more now too: they compared a thermostat with itself after each look and so missed every turn by hand that ended (none goes wrong in the test now; in 2500 more days 4, all very rare: the summer pause of a thermostat that cannot be switched off with an open window and a turn by hand, or a thermostat that needs 2 to 10 minutes for every report).
  • Test protocol: new section 132.