{"id":22352092,"url":"https://github.com/bertreb/pimatic-floorplan","last_synced_at":"2025-10-10T00:33:50.667Z","repository":{"id":57324216,"uuid":"277320112","full_name":"bertreb/pimatic-floorplan","owner":"bertreb","description":"Pimatic plugin to get floorplan in gui ","archived":false,"fork":false,"pushed_at":"2020-08-17T10:55:53.000Z","size":279,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-10-10T00:33:48.772Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"CoffeeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bertreb.png","metadata":{"files":{"readme":"README.md","changelog":"HISTORY.md","contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-05T14:38:00.000Z","updated_at":"2021-04-10T16:36:41.000Z","dependencies_parsed_at":"2022-09-21T00:54:30.157Z","dependency_job_id":null,"html_url":"https://github.com/bertreb/pimatic-floorplan","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/bertreb/pimatic-floorplan","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bertreb%2Fpimatic-floorplan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bertreb%2Fpimatic-floorplan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bertreb%2Fpimatic-floorplan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bertreb%2Fpimatic-floorplan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bertreb","download_url":"https://codeload.github.com/bertreb/pimatic-floorplan/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bertreb%2Fpimatic-floorplan/sbom","scorecard":{"id":234681,"data":{"date":"2025-08-11","repo":{"name":"github.com/bertreb/pimatic-floorplan","commit":"afcbbb62b71c76e481f50aa7a991090b9e4631c3"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.6,"checks":[{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-17T05:25:01.096Z","repository_id":57324216,"created_at":"2025-08-17T05:25:01.097Z","updated_at":"2025-08-17T05:25:01.097Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279002360,"owners_count":26083357,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-04T12:17:06.524Z","updated_at":"2025-10-10T00:33:50.646Z","avatar_url":"https://github.com/bertreb.png","language":"CoffeeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pimatic-floorplan\nPimatic plugin for floorplans in the Pimatic gui\n\n## Background\nPimatic's standard gui is pimatic-mobile-frontend. This standard gui gives a good and functional interface towards the Pimatic functions.\nThe interface is based on jQueryMobile and gives a structured page oriented layout to manage and control devices, rules, etc.\n\nSome home-automation users want a more graphical representation of the gui. This plugin is build for that purpose and gives you the tools to be creative with the user interface.\n\n## Description\n\nThis plugin adds a gui option to create 1 or more floorplan devices, for viewing and controlling existing pimatic devices. The concept is as follows:\n- Scalable Vector Graphics (svg) as graphical base for a floorplan.\n- Manual adding of devices that must be shown on the floorplan.\n- Free choice of shapes for background and the pimatic devices, as long as they are linked to pimatic (see Linking the floorplan svg and pimatic).\n- The supported devices are: switch, presence, contact, light, button, sensor (text/value display), sensor_bar, sensor_gauge, clock and camera.\n- The states of an on/off switch, open/close contact, light, push/release button and present/absent presence sensor are all presented via colors. The colors are configurable. The light  will color depending on the color settings of the device its linked to.\n- Attribute values can be shown via the sensor field. Optional you can add the acronym and unit of the used device.\n\n## Preparation\nInstall the plugin the normal way via the pimatic plugins page or config.json.\n\n\n## Creating a floorplan\n\nCreate a svg floorplan with a background of the room(s) your want to 'floorplan' and add graphics for the devices you want to use. A good and free program for this is [inkscape](https://inkscape.org). The ID tag of a sgv device object can be choosen freely but needs to be unique with one floorplan. The ID tag is used to connect to a pimatic device (see Linking the floorplan svg and pimatic).\n\nSave the created svg file in the public folder of pimatic-mobile-frontend (pimatic-app/node_modules/pimatic-mobile-frontend/public. The filename (incl .svg) is use in the device config.\n\nCreate a floorplan device with the following configuration:\n```\nfloorplan: \"the sgv filename of the floorplan\"\ndevices: \"list of devices used in the floorplan\"\n  name: \"The device name\"\n  svgId: \"The ID tag used in the svg floorplan\"\n  type: \"The gui type of device\n     [\"switch\",\"button\",\"presence\",\"contact\",\"light\",\"sensor\",\"sensor_bar\",\"sensor_gauge\"]\n  pimatic_device_id: \"The pimatic device Id\"\n  pimatic_attribute_name:\" The attribute name of the Pimatic device like state, presence or temperature\"\n  format: \"Optional JSON formatted attribute values\"\n```\nAdd pimatic devices by there device-id, give them a logical type and optional color the off-states. The default off color for all devices is #dddddd (light gray). The on-state colors are defined by the svg color of the object.\n\nMake sure that floorplan devices are the last devices in the device list (the gui devices page).\nAfter adding a floorplan please refresh the gui (incl clearing the cache)\n\n## Linking the floorplan svg and pimatic\n\nThe linking between the svg objects and the pimatic devices devices is done in the floorplan config.\nThe svgId in pimatic floorplan device config must be the ID tag in the floorplan svg.\n\nThe svg device object that you create must have the option to fill it with a color. Otherwise the states colering will obviously not work.\nThe color, font size, etc of a text field (sensor values) must be set in the svg editor.\n\n## Devices\n#### Switch, Presence and Contact\nThe switch can be used in any svg object that has a color that can be set via the 'fill' attribute. By clicking on the drawing the device will toggle (on\u003c-\u003eoff) and go from on color to off color. The on color is defined by the svg drawing, the off color is default 'gray' or can be set in the format.\nFormat option is: colorOff\n\n#### Light\nThe light can be used with any svg object that has a color and can be set via the 'fill' attribute. By clicking on the drawing the light will toggle (on\u003c-\u003eoff) and go from on color to off color. The on color is defined by the color of used pimatic light device. The off color is default 'gray' or can be set in the format.\nFormat option is: colorOff.\n\n#### Sensor\nThe sensor will show the value of the used Pimatic device+attribute. For this floorplan device the svg type must be a TEXT field.\n\n\n#### Sensor_bar\nThe sensor bar will show a Pimatic device+attribute value in a bar form. In the svg drawing a RECT type form must be used.\nThe color and transparancy you set in the svg is used in the bar.\nIn the format you can set a minimum and a maximum value ({'min':'\\\u003cnumber\u003e'},'max':'\\\u003cnumber\u003e'}). If not set the defaults 0 and 100 will be used. If min and max are set; min, mid and max labels are automatically created. Below the bar a text field is created with the actual value.\n\nBar examples, any shape is possible!\n\n![](assets/bar.png) or ![](assets/fish.png)\n\n#### Shutter\nThe sensor will show the position of the shutter of the used Pimatic shutter device or variable. The svg setup is the same as for the sensor_bar. The shutter does not have labels on the left side for postion, only the current value below the bottom.\n\nShutter example, any shape or window background is possible!\n\n![](assets/shutter.png)\n\n#### Sensor_gauge\nThe sensor gauge will show a Pimatic device+attribute value in a gauge form. In the svg drawing preferably a CIRCLE type form is used, but any other shape is possible. The dot (with actual value) an the needle are generated automatically.\nIn the format you can set a minimum and a maximum value ({'min':'\\\u003cnumber\u003e'},'max':'\\\u003cnumber\u003e'). If not set the defaults 0, 100 and 'red' will be used. The gauge is designed to work from left-top-right.\n\nGauge example.\n\n![](assets/gauge.png)\n\n#### Clock\nThe clock will show a analogue clock on any image or drawing. In the svg create the clock background. The second, minute and hour hands are automatically created.\nIn the device config format field, you can set the color, lenght and width of the hands. {'colorHour':'\\\u003ccolorname or hex\u003e','hourLength':\\\u003cnumber\u003e, 'hourStroke':\\\u003cnumber\u003e}. If the label option is set to true ({'label':true}, the label with the clock name is automatically created. There's no label if the label option is absent or label is set to false.\n\nClock example.\n\n![](assets/clock.png)\n\n\n#### Camera\nThe camera will show a network stream (or image). In the svg create a RECT with the width/height ratio compatible with the image or stream (mostly 16:9).\nIn the device config format field, you must set the url of the image or stream {'camera':'http://.......'}. The pimatic-device and attribute is used for switching the camera on and off. Use a pimatic switch device for that. The label with the camera name is automatically created.\n\nCamera example.\n\n![](assets/camera.png)\n\n## Pan Zoom\n\nA floorplan can be zoomed or panned. With a double click you go back to the startup fitted floorplan.\n\n---\nThe plugin is in development. You could backup Pimatic before you are using this plugin!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbertreb%2Fpimatic-floorplan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbertreb%2Fpimatic-floorplan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbertreb%2Fpimatic-floorplan/lists"}