{"id":20549411,"url":"https://github.com/destroyedlolo/marcel","last_synced_at":"2025-04-14T11:02:59.146Z","repository":{"id":32267319,"uuid":"35841873","full_name":"destroyedlolo/Marcel","owner":"destroyedlolo","description":"Very lightweight daemon to publish figures to a MQTT broker (1wire data as temperatures, ISP real time consumption, UPS figures, meteo forecast, ...), check subscribted topics and alerts if out of range or missing.  Custom decision scripts can be created in Lua.","archived":false,"fork":false,"pushed_at":"2024-09-17T22:31:54.000Z","size":1069,"stargazers_count":6,"open_issues_count":1,"forks_count":2,"subscribers_count":4,"default_branch":"V8","last_synced_at":"2024-09-19T00:14:29.714Z","etag":null,"topics":["alert","iot","lua","mqtt","mqtt-smarthome","notifications","sensors-data-collection","smarthome","sms"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/destroyedlolo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-05-18T20:50:17.000Z","updated_at":"2024-09-17T19:38:39.000Z","dependencies_parsed_at":"2023-10-12T05:05:37.394Z","dependency_job_id":"5e6f681d-d660-46ad-9abc-b430ca4c4c07","html_url":"https://github.com/destroyedlolo/Marcel","commit_stats":null,"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/destroyedlolo%2FMarcel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/destroyedlolo%2FMarcel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/destroyedlolo%2FMarcel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/destroyedlolo%2FMarcel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/destroyedlolo","download_url":"https://codeload.github.com/destroyedlolo/Marcel/tar.gz/refs/heads/V8","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224866852,"owners_count":17382915,"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","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":["alert","iot","lua","mqtt","mqtt-smarthome","notifications","sensors-data-collection","smarthome","sms"],"created_at":"2024-11-16T02:17:51.008Z","updated_at":"2024-11-16T02:17:52.023Z","avatar_url":"https://github.com/destroyedlolo.png","language":"C","readme":"Marcel\n===\n**Marcel** is a lightweight, versatile **MQTT data publisher**.\n\nFocusing on smart home automation (but not only), its optional modules publish : \n- 1-wire probes environmental figures\n- weather forecast\n- UPS figures\n- external MQTT events\n- and many more\n\nCan raise some notifications, manage alerts, and control some devices. \n\n**Lua user scripts** can be used to build simple automation and/or, to validate incoming values.\n\nThanks to its open and powerful module's API, it's *easy* to add new functionalities.\n\n`Build from source.md` contains technical information if you want to compile directly from its source code.\n\n# Dependencies\n\nAs the communication is based on MQTT messages, you obviously need a ... **broker** :\nI personally use [Mosquitto](http://mosquitto.org/).\n\n## Global dependency\n\nInstall **PAHO** library for C ( https://eclipse.org/paho/clients/c/ )\n\n## Modules related runtime dependencies\n\n### Lua (mod_Lua)\nIf you want to have *user*'s functions : https://www.lua.org/\n\n### 1-wire (mod_1wire)\nRecent Linux kernel has *better than nothing* and *limited* 1-wire support. I strongly suggest using [OWFS](https://www.owfs.org/) instead.\n\n### OpenWeatherMap (mod_OpenWeatherMap)\nYou need to provide your own license key to query the weather forecast, it's free for hobbyist usage.\u003cbr\u003e\nTake a look on : https://openweathermap.org/\n\nIn addition, [json-c](https://github.com/json-c/json-c/wiki) and [libcurl](https://curl.se/libcurl/) are needed.\n\n## Launch options :\nMarcel knows the following options :\n* *-h* : online help\n* *-v* : verbose output\n* *-S* : runs in \"Simulation\" mode\n* *-f\u003cfile\u003e* : loads \u003cfile\u003e as a configuration file. The default one is `/usr/local/etc/Marcel.conf`\n* *-t* : test configuration file and exit\n\n## Simulation mode\n\nWhen running in \"**Simulation mode**\", all sections with the \"`DoNotSimulate`\" flag set are considered disabled.\n\n## Logging\nAs of version 6.05, Marcel publishes its logs on the following topics : \n* **%*MarcelID*%/Log/Fatal** : Failures causing Marcel to stop or major functionality loss\n* **%*MarcelID*%/Log/Error** : Something went wrong, but it didn't impact Marcel's health\n* **%*MarcelID*%/Log/Warning** : something you must be aware of \n* **%*MarcelID*%/Log/Information** : Startup steps and running information\n* **%*MarcelID*%/Log** : Trace information (incoming messages, decisions, etc …)\n\nAs of version 7.07, the following topics have been added (if **mod_alert** enabled) :\n* **%*MarcelID*%/Log/Error** : send raising alerts as well (*same as Marcel's own errors*)\n* **%*MarcelID*%/Log/Corrected** : send corrected alerts\n* **%*MarcelID*%/AlertsCounter** : amount of active alerts\n\n## Status change\n### Section\nAs of 8.3, Marcel reports section status changes to topic\u003cbr\u003e\n**%*MarcelID*%/Change/\u003cSection ID\u003e**\u003cbr\u003e\nand the payload contains 2 fields:\n- Enabled(`1`) or Disabled (`0`)\n- face technical error\n\nAs example, if `Marcel/Change/Info` is published with\n```\n1,0\n```\nmeans, **Info** section is *enabled* and *doesn't face any errors*.\n\n### Named Notification (only if mod_alert is loaded)\nAs of 8.3, Marcel reports Named Notification status changes to topic\u003cbr\u003e\n**%*MarcelID*%/NamedNotificationChange/\u003cSection ID\u003e**\u003cbr\u003e\nand the payload contains 1 field:\n- Enabled(`1`) or Disabled (`0`)\n\nAs example, if `Marcel/NamedNotificationChange/p` is published with\n```\n1\n```\nmeans, **p** named notification is *enabled*.\n\n## Modules\n\n`Modules` contains the documentation for each module.\u003cbr\u003e\nTaking a look in `Modules/Marcel` is a *must-read* about global directives.\n  \n## Side note\nThe name is a tribute to my late rabbit, who passed away some days before I started this project : he stayed at home as a keeper. RIP.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdestroyedlolo%2Fmarcel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdestroyedlolo%2Fmarcel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdestroyedlolo%2Fmarcel/lists"}