{"_id":"iobroker.automatic-feeder","_rev":"59-8de001f66222ee0200ef95c36b3b289e","name":"iobroker.automatic-feeder","dist-tags":{"latest":"1.18.4"},"versions":{"0.2.0":{"name":"iobroker.automatic-feeder","version":"0.2.0","keywords":["ioBroker","Automatic Feeder","feeder","Futterautomat","Koi","Fisch"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@0.2.0","maintainers":[{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"49d8eeed1de48d4e5453b245fe8f9c65b7417f7d","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-0.2.0.tgz","fileCount":20,"integrity":"sha512-p/q/8ldpTmouM2GrDU51xvSEBeXQfdrye0uXBzcrRpn4ZkAMpa5JJqjQy7RoRJMuxTtAm7uSH6gsBcFjy2rUSg==","signatures":[{"sig":"MEUCIQCnYdtS0A8ua+wRsnd98X5JhVL6SCKimqzY+vzalP5tCwIgQ+Aix9j+vNKLJbWJQoS7VzcIfDx14a54szTRwyAQ75w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2310861},"main":"main.js","engines":{"node":">= 22"},"gitHead":"fb44d2aba1658fc6052320d3a825cb1f13f68711","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"ssbingo","email":"s.sternitzke@online.de"},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.13.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_0.2.0_1782803547983_0.3718565609763911","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"iobroker.automatic-feeder","version":"0.3.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@0.3.0","maintainers":[{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"97618519a9e7bf92ebe57da079cdc27f72035666","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-0.3.0.tgz","fileCount":22,"integrity":"sha512-GdjTnDwxQVu23rBE7q12CwGQv8GbwpA6t9UE4OeTzETtO4tR4x4i2OictGmKmN7Sufz5ueizBo/kxgIcsF2V3Q==","signatures":[{"sig":"MEYCIQD+otqfpQ4m/aWYLSgutFZgyhYZwHLAHNDsYZ6xH0XnKAIhAOcoRaVceUjak7Q+XrfVSjGVikBhflwC8lC0jr6lKcOx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2322461},"main":"main.js","engines":{"node":">= 22"},"gitHead":"cd9354c33b3d3560c051c8ff26c842399bd9a26a","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_0.3.0_1782806176396_0.5566868135142746","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"iobroker.automatic-feeder","version":"0.4.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@0.4.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"15f6e9875338a7ec98a35bd306127186e3cb3b05","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-0.4.0.tgz","fileCount":22,"integrity":"sha512-vvVq3C/3yKl2+sayaOrefbf/3DSF+5iwqihCfZCyOHzVj+0hVxMCEsd6eIkYX8oa84XUWZNbevoiGfegSCn6Vw==","signatures":[{"sig":"MEYCIQDnB4P/wpitgqxLpB8BRmxUz3rejqjXuG9Lv0BM0H950AIhAKZ+Yrgzl1qK8qMx2vefEgjRwsc8HeO2DLxoeXoHF+vg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2335596},"main":"main.js","engines":{"node":">= 22"},"gitHead":"d08edbd7d4c94a76d124aa09f7b2c648f0944c91","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_0.4.0_1782810877915_0.8380743548552023","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"iobroker.automatic-feeder","version":"0.4.1","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@0.4.1","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"9a86156ce45c9718de25ac64360b12f02a611240","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-0.4.1.tgz","fileCount":22,"integrity":"sha512-U89w1rlPzpcRH6di9e6gibKVDs3GBNNLhfCbuYwxPgf3bHK7Z0HFPsggbbtjedtubdeV0awiQb2EITD+zcIHVA==","signatures":[{"sig":"MEQCICz7rgWqn6O1ukTQM9bhK9hzYb2AZ978iasgb52qsTxZAiASCnHYQUDbyS3fubdYHl3j7Ty/JFSbo2ZCPKU1IsoGTg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@0.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2334546},"main":"main.js","engines":{"node":">= 22"},"gitHead":"9842454a5215949d215aee2f9495901ff0546467","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_0.4.1_1782888307761_0.6798914153026347","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"iobroker.automatic-feeder","version":"0.5.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@0.5.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"cab433717c9ad70a36d5a88165c55f3ebb29cd5a","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-0.5.0.tgz","fileCount":24,"integrity":"sha512-YM361EMvhkHZCZweFocN3nCcREMraplz3uJRzzy0IsWmlGN3CjHZb5M0caqCJMNhr0IVHFd6DDEEuuP/8Q0btg==","signatures":[{"sig":"MEQCIDBcY1jsCVpMclZ5SL18pMhSzEPFgepLQ8ii9c9Gc/AVAiApRQhL8O/ehVdye5F/Jk4VhXvbmAPz5A1SB0cwJsMQ+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2381547},"main":"main.js","engines":{"node":">= 22"},"gitHead":"23bfe75bb424f5810bce54ba95c4b3fd1fee4e29","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_0.5.0_1782893695705_0.2101318214097696","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"iobroker.automatic-feeder","version":"0.5.1","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@0.5.1","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"edc0bfff676feb2a995db2f52c2f4160975232ed","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-0.5.1.tgz","fileCount":24,"integrity":"sha512-rH/gs3AwU2a1DVvMl/iNempYCzqpiUfLS7xUy8129qweZd41A9PIy9U2RQNqvNoVfXFEeuoyLhzceuT5ZDf02w==","signatures":[{"sig":"MEUCIHPMkprhaB5AFfFsGnaH6o42VGer0PmjgTuznfB6rQpcAiEA9+DjJQENXFUEkrZpJLKFOoh9oHg4Rjc3Q9kkUOB5AG8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2576349},"main":"main.js","engines":{"node":">= 22"},"gitHead":"67a20ac8c058a8a69b87b2e8e98447ef2ebc14cc","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_0.5.1_1782895012678_0.5651411886605433","host":"s3://npm-registry-packages-npm-production"}},"0.5.2":{"name":"iobroker.automatic-feeder","version":"0.5.2","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@0.5.2","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"ec0928fa94605a1cf69408b062d42bd9ad897d81","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-0.5.2.tgz","fileCount":24,"integrity":"sha512-Iv3YjSupt/+alsGSnlCFaSNK5W7ai6KisYDNKYmVT8Y7wo5c2PB/TR6qIYWKaBiFe3mxDozvrYbCSrZyz0SvFA==","signatures":[{"sig":"MEQCIHg5eo+TxOlOLY3lfE4/HxmdSnusw6nEUW8bxGWzoDJ7AiAsngYK302uhM46jalImG+sABoZ1f8OuABlrKOmJGDCag==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@0.5.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2620927},"main":"main.js","engines":{"node":">= 22"},"gitHead":"a95f66584ff6fcecd1663deb116a9d777d5582ee","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_0.5.2_1782895683446_0.9150829049205347","host":"s3://npm-registry-packages-npm-production"}},"0.5.3":{"name":"iobroker.automatic-feeder","version":"0.5.3","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@0.5.3","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"0d303b95eedb4dc491b030a94961a51726904afa","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-0.5.3.tgz","fileCount":24,"integrity":"sha512-bMZZ4j8u410DMu5tITLgOWxY5V9GvwqwOdt5yI6QopWYHEB9stz/p2mD3xVsWpb9rMTECO8EeEU8WtbNqQ3V/g==","signatures":[{"sig":"MEQCIFBnzDuPT4m+lDcavFE8fBbniwhQlBAgzNOC2Q4ynfKhAiADUp4jtI/5at9qQbiXXitUHiqMY86/l2SVUpAneAnhig==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@0.5.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2630262},"main":"main.js","engines":{"node":">= 22"},"gitHead":"66837891131fcfacb0abe0ffecfd67d5bbfedb5f","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_0.5.3_1782897221035_0.5220346012204806","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"iobroker.automatic-feeder","version":"0.6.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@0.6.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"b96172d7fec9001b6f8dc4eac97bd064ad212698","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-0.6.0.tgz","fileCount":24,"integrity":"sha512-T88zxn0hC21t4PIDG1/o4xHZKUmQ/OpfS4tkINEYT6AUsEqroeYCLdZplBT5arWQkpFPbjvAOogy0IeLYw7ncw==","signatures":[{"sig":"MEUCIFnqvlofBXDQzazbE/sTdHvqE0iTRefvI9Z1prEMx4rFAiEA63jdLlsbiHbQ/1u4NcQyYw6hyjDauMBa6IHjDkzJmIg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2723418},"main":"main.js","engines":{"node":">= 22"},"gitHead":"466434d2c47effe5164841a98c23bf841459ed9c","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_0.6.0_1782901490348_0.5186532907041381","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"iobroker.automatic-feeder","version":"0.7.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@0.7.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"05171fcef143cd8ed1f78882daa94699b074f6e5","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-0.7.0.tgz","fileCount":24,"integrity":"sha512-mTQMVMwofLCOC0U4bP7X0TVign3BJuVAVAyLFrgFtAml4EiESgTmwrUEfyY5I3/rh99vcrLvSBT7KzD+N5P88Q==","signatures":[{"sig":"MEUCIQDAwD0tRDO0RC1YZz1+8NZFwo2zNNHSoPNIZlTKLrSFpQIgAoWMCkdyuAEKLEXtfeAoBXzn1sihqL+eS8NZB9vJ2S4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2737936},"main":"main.js","engines":{"node":">= 22"},"gitHead":"6b407397465b2a034dda9c8168272f8e76a5125e","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_0.7.0_1782903869086_0.15946626043621492","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"iobroker.automatic-feeder","version":"1.0.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.0.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"d6f4975bc357d2f3bbead90157f098cdf7defd3b","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.0.0.tgz","fileCount":24,"integrity":"sha512-SL4NxyHYJBhrGvjfA5wNKH8VOQ8CTVK6Mlf4ZGtT1Dhy5EzVCVqX9u46W2Pds3fv5gXK3iaULGsLanLXvzCgSw==","signatures":[{"sig":"MEUCIHJC7//pRnG1j8s9DNOsmKmSboRdLEzXZi9MzUkLXwwBAiEAtkx2RxdB34egS+FlvPGsK8RMfa3kRUAbC23yPVPJMDk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2752713},"main":"main.js","engines":{"node":">= 22"},"gitHead":"4f3cbfe5d59884c4ad17ec917f5c9f4daeb8a464","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.0.0_1782910375335_0.915839591160837","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"iobroker.automatic-feeder","version":"1.0.1","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.0.1","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"53fe746f9bc8726d57e599bb23a46688565fa2c4","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.0.1.tgz","fileCount":24,"integrity":"sha512-HicgMPGBeWL6yE+fIuFbungQyKnPn/R/XndcER8qD4/78UQrXaGrbCa5nOOhxHrEomR7e8+si5PW3BaE8E7SXg==","signatures":[{"sig":"MEUCIF7Afstc2u0+lhZMFnIe1FfTwVfLLXfCXuIfI8RDdeTFAiEAv40BrSsT2rALJ0C1dBIq0tOrkzwjIs0dWFP32MGqNsQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2771420},"main":"main.js","engines":{"node":">= 22"},"gitHead":"cf06e9588d8253ac7ab7c7177b0346edd8bd7845","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.0.1_1782914278083_0.9078275957668924","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"iobroker.automatic-feeder","version":"1.0.2","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.0.2","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"5c5c017449b86d99d45cdfbb9bfd5163131258ad","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.0.2.tgz","fileCount":24,"integrity":"sha512-vptqPRfrwAmAGJ8Wuk6hVJgprwG8uoq73bO54yaucSHe6qdOPvlLvZ+TF+onvQWlCwvpo4z2ZvZG4bTEw/0Gnw==","signatures":[{"sig":"MEQCIH65bRY48LYoAvh7EESWQH+UhDPACAyjEcFfsPIHVsInAiBS5rDSn3vO6NoJOObd7i+1mTNxRpwm9NPVPI7RdQZ0aA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2770213},"main":"main.js","engines":{"node":">= 22"},"gitHead":"641116bd8e70025d1c8170f593df914ba51735d7","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.0.2_1782916751084_0.7990506299771472","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"iobroker.automatic-feeder","version":"1.1.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.1.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"494215d91b5ebd2584569a395d15688d4fe81829","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.1.0.tgz","fileCount":24,"integrity":"sha512-w2ww8p3tYgJFbLCn3KusKFy1U0mwGCbHuSdCUCCWJ0TBVRmIaXdsbU5torwtfQuxnTJIG1K2J7TkOalorYy5zQ==","signatures":[{"sig":"MEYCIQCXi4JgGvrdWotKVYliAw7es9RycNGHMnULgGPEEpjGYAIhANi2URFvLuE2bltT5Gjl256HdeiuK/fd/OqQmJsv0dym","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2828443},"main":"main.js","engines":{"node":">= 22"},"gitHead":"94ec8973ca169889ca3c4deb0846b7d6d0ccd505","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.1.0_1782925665660_0.3786480294795218","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"iobroker.automatic-feeder","version":"1.1.1","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.1.1","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"bd4d9265446e51bc19b8ca936066d90ce98117ed","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.1.1.tgz","fileCount":24,"integrity":"sha512-rcvWX80rzhCfMyA7U2bhB/8EDJox5/jyGQz+tu996vZlidspEftL01AMSYckpdsdmXU0zKsRPcNY1WN3yMXm+g==","signatures":[{"sig":"MEYCIQDCUB/RV5sS2n5y+vNpOTQ2BukpbUeaUchQ/jVDOm3aQwIhAKHmjEHNoY0v8U6DKuvHWIlZSEYciOfhTCzMnE0k4e8t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2824169},"main":"main.js","engines":{"node":">= 22"},"gitHead":"3a1399ca9582ca4dafbeeca42dc5af62861f6370","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.1.1_1782926253476_0.8266182574334986","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"iobroker.automatic-feeder","version":"1.1.2","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.1.2","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"8fb180e11df0417bf64c9ffd55543cd6c299bb04","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.1.2.tgz","fileCount":24,"integrity":"sha512-3QYc+ioduoKslfGgg897ILXNVGHSMYEDwmrTGKctxq2D0ciCbYnx9YRZnXJe8ZtIisMqqeKEYEAkM6TcWYomeA==","signatures":[{"sig":"MEQCIFCwTRaFZGaC0CbX02mMOI2NTAaB0BvX7hLrHCAN6mQUAiADrER41X5FYF15AFcH09r9+Jp2nYaVsJ/MFcJucAqEQA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2831698},"main":"main.js","engines":{"node":">= 22"},"gitHead":"b95488ba860ee8ea19a5bf0427a8aff97a543ed6","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.1.2_1782927889100_0.5152090465513695","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"iobroker.automatic-feeder","version":"1.1.3","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.1.3","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"cd9a4e970e730b7cd538949382555d0f089fe796","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.1.3.tgz","fileCount":24,"integrity":"sha512-EbnXxsNxtxF0pN7grSOsgTsz3G9sgb12ELs23CF+ygf0v4AEbQqGqr7EnIJji4RfIfapTDnSyO5ACz6PBhMPaw==","signatures":[{"sig":"MEQCIDCgnkZ8F7MG7nrSK0GMnzA19WDYx//6bNMY1Lx3n10WAiBUABRoKsLh9cAztTiWLNYD9PhmMyjeILHlQh0Dkh6gAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2831313},"main":"main.js","engines":{"node":">= 22"},"gitHead":"472d550edee2df4f2f0329db5bb808e92e3f40af","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.1.3_1782978151643_0.7555038749432139","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"iobroker.automatic-feeder","version":"1.2.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.2.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"ee77596300a712d1b76122e398fb98a31570a100","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.2.0.tgz","fileCount":24,"integrity":"sha512-I7kRCMpsx13TmADxvhAJSwU96udJKnsfFTzkaekvum6m1jgb8Ezm8osiVO1X6aDLBcpGuo+yNYPBRY1SMzCcQg==","signatures":[{"sig":"MEYCIQDIcNYw9qI0aedftZGQb1SG4kX15PgULcPbi9eiqSa7QAIhAJeqK+fbG2+P7VCgNvm1o0/J4IPHSGTz5jyOOR6Oy40U","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2904252},"main":"main.js","engines":{"node":">= 22"},"gitHead":"180f681fa2f87b3e2733aebcfa89ecb0533ad8b4","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.2.0_1782983600369_0.6860864766467589","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"iobroker.automatic-feeder","version":"1.2.1","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.2.1","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"53ae03763d713d89e9d5fc9a41e508241df9471a","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.2.1.tgz","fileCount":24,"integrity":"sha512-XnoMeRsTg+lHKsT5BvMrNCcEs2+iLfAOm6gaw7xP77lTGrwKdi3UvLjarLJEl5pZ1L3ZHygy9jyyOEYmmVJy1Q==","signatures":[{"sig":"MEQCICSFiQ2ePpO88dwzSA+4bx9kojWMnRg99bQWXq4+NzK2AiB7J9Mqp83wbnv65tD3c06Fk6vnS8ciFKq4hyZHQzILuQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2899446},"main":"main.js","engines":{"node":">= 22"},"gitHead":"a5433752d352273f6f0929098f07be6b580e6a1f","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.2.1_1782986482904_0.5191544543509832","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"iobroker.automatic-feeder","version":"1.2.2","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.2.2","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"64c789be624074bd6ac9b49ac76ccc5bdb8a7851","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.2.2.tgz","fileCount":24,"integrity":"sha512-o2asKld/GJ8kd1p9DEUFBPSu3Ss6yIz5U0m69MkAywijReHLIZfZQJFAzCFxMwwBov6gw4JlARvFCaFDB8Dpjg==","signatures":[{"sig":"MEUCIGY8ctL698DkjvN6RJo2xaK8yPEZRTZi/jZMRfKoOO6mAiEAvoRDwXRQFlIPm1pcKHXl4OY7vc5iMoC4izUrhtdG7Z4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2903599},"main":"main.js","engines":{"node":">= 22"},"gitHead":"ea3b5c00c0463013f6bf08c12724fab5cd9646b3","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.2.2_1782999134638_0.6343248773255554","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"iobroker.automatic-feeder","version":"1.2.3","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.2.3","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"980876a61ca2eb912816e5826d0eea6e49bd45e3","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.2.3.tgz","fileCount":24,"integrity":"sha512-SaZsyxEOkCdcjsE0PHPeLSDaaewfY5U+UpYkHURdd3tMFg7yWx7fCzQkYtqCckPWS7Pppbi2EN1BGNPmlxrtlA==","signatures":[{"sig":"MEQCIGlmDSO03OSOfMeNUKXxlDLMN2o5tPYKeRM+vpuo8BMrAiBsIVvtDnv0sSuD3zB5AcgBUXLAYT0znr/eMoB5KUMzmA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2901909},"main":"main.js","engines":{"node":">= 22"},"gitHead":"a2202cfaa2ffba4cd5b63fed018237cb49238bf5","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.2.3_1783000081187_0.19553594503273386","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"iobroker.automatic-feeder","version":"1.3.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.3.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"db2ab17ad4e33d6aba05460fa36af8e9243653d0","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.3.0.tgz","fileCount":24,"integrity":"sha512-ENK2goFmf6k5dyIamNGy+fqJRgPymoTvthxSmthg9bxYWNP4bg8fqaj/6kIMAfMJAZKrhFYY2hIvbo5eCDC3xA==","signatures":[{"sig":"MEYCIQCIyL9F36NHM9WhDlOyLxsRvcvIz9tlzVODqUPtbXT4zQIhAMhxtZRDuIKf4J4vHdpp7OxoWU+aPhR37c9B6Kv3jmdM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3008867},"main":"main.js","engines":{"node":">= 22"},"gitHead":"68a18dd2602f621656aad47c50072e7a21ad5d6e","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.3.0_1783180870646_0.3183479922933514","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"iobroker.automatic-feeder","version":"1.4.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.4.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"c80b86bb304512b22100cb64e08fa8dad9af8e8d","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.4.0.tgz","fileCount":24,"integrity":"sha512-VT+VkZuTe7jnexYHDtrHa7G+KKRB9vSs9nf35ZZ7r/WK0eclMA0Rn3GXMVsZud/6u9MuYkOfgUWL9tX0m8I4ww==","signatures":[{"sig":"MEUCIQDErwTY8k/o6rvTR5mdMTkKITKaqU6M0pGQTxCnr41LOgIgKL4ButNpQIFmZQ4fV6TwRoOIxvH9YIKqKFIDsAAi7Cc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3032592},"main":"main.js","engines":{"node":">= 22"},"gitHead":"7535211025dd27ca368ca3994fb8166e339ee578","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.4.0_1783252433044_0.9194283249032718","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"iobroker.automatic-feeder","version":"1.4.1","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.4.1","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"66f132700b1d6b024d963e2d77d89efcb2169fee","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.4.1.tgz","fileCount":24,"integrity":"sha512-a0OEeNygn8O/EwFm+W/gvei8Yp00c4SmFrB57t0jZ86zP4Cqvw/wbj7l/44NlHPiwAbtykYsItb1DTgPkw550A==","signatures":[{"sig":"MEUCIEQY5c2tqtvdw8nMEuNtw74ZGATj4qGex417N25HW9nrAiEAknHtHnHM8b2dQ1NRu93RD8DEM7aZIjotonG/SsiB2Hc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3029742},"main":"main.js","engines":{"node":">= 22"},"gitHead":"e4bd1fcf7cc1ae914e050ba7b07c86c879ae741f","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.4.1_1783255090553_0.7838852857901699","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"iobroker.automatic-feeder","version":"1.5.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.5.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"826f7c29ec00ea4876b426c4a3368fffb21b52ab","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.5.0.tgz","fileCount":24,"integrity":"sha512-OfU4kFi5Ebhl4jztD94TMBXScXgmP2/LyHJegux0ZYylwZjDiCTj6I4F4vuZY/mBwD2xzIAKH97EK3Y7F6b5sA==","signatures":[{"sig":"MEUCIQDIMkjHfdGctzAfShMsFi6+XRp1yWSUKzVnAPNyEl1NMwIgHjK1tNwFmw2wqA87WA0L4BZJkfl2yC3KoURGBXyrxQ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3032065},"main":"main.js","engines":{"node":">= 22"},"gitHead":"b9ae6f0879e02bbf7d287f3db91f9d46301c044b","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.5.0_1783320271166_0.9181027027985631","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"iobroker.automatic-feeder","version":"1.6.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.6.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"e0e7d9aea9dc8b69cdae4c348893415b07282991","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.6.0.tgz","fileCount":24,"integrity":"sha512-yBC74ED/Pcef28TdUg5CUi+tN2PTtzwTEJIQcVceLcM3bVDzy0hJKuXwlT9wo3pl7JMbODmWxELZZWoJGAYaTg==","signatures":[{"sig":"MEUCIQCSwIjUu6aYSirurY5JM4NzSaKe16Wdaxs9d3PUF0aZLgIgX0V/ooEgMqCCNkf8f+2l/WGfXDu1iM0A12uAXoTVcJg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3012402},"main":"main.js","engines":{"node":">= 22"},"gitHead":"96bbf82b0dfc75d38ac2395fd8f55c464d22eafc","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.6.0_1783417162945_0.6898900657553124","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"iobroker.automatic-feeder","version":"1.7.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.7.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"ca143449ec8f54c93139cd650a578a4f69567466","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.7.0.tgz","fileCount":24,"integrity":"sha512-TZ9AB/jaIgogNUhAXTtTtwdbZsBqYEQqi2O3Mse7/5HfohXVnzWruylQRiykYv+bzjQ8Mrkuf/tjlwnnsJKMjg==","signatures":[{"sig":"MEYCIQDWfu6tGrH5vJvW8ar6feRU5Q3qpEEVKkPgGoLqksIHmAIhAMYCS6OFIf2lEdITWiGx55/NqvsH1jBwQdNz8coBnqqZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3094855},"main":"main.js","engines":{"node":">= 22"},"gitHead":"b7287a62eff6fd7b9987bcaa083d96e46ffb5073","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.7.0_1784015215840_0.7009349499202011","host":"s3://npm-registry-packages-npm-production"}},"1.7.1":{"name":"iobroker.automatic-feeder","version":"1.7.1","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.7.1","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"3d480dc09c43ebb5e0ccfc9dadcc153315e4da24","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.7.1.tgz","fileCount":24,"integrity":"sha512-9ODn5fx+50ZCtAPEiersFHa5LS/PzVQMXWHSrZUDBObudZzhN/gdef2mnUWSfr1pc+0WcDt5bph3D/6/9Dr97A==","signatures":[{"sig":"MEQCIGYhc8tEKIduxCFGy7Y6ME0WC+wCPucMD16ftUf4ki/kAiAO+uaWft9AIyjUZi0CiF1Od0+Q/GDQa1pDM0rAsxoe2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3089936},"main":"main.js","engines":{"node":">= 22"},"gitHead":"ccac20ca4075651bacc7e4722d3b6b78645d3882","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.7.1_1784020835281_0.9988268812183501","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"iobroker.automatic-feeder","version":"1.8.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.8.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"2272136b199865902911bf9b7ea9ed0081a9c816","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.8.0.tgz","fileCount":24,"integrity":"sha512-lIBPIwwhFR9tjuX0IWBcfp0B/eHbWJS9zH3WK8zV3yn8zSZMDbu8jvztyN0QUKCtRG2r7v7WTIF6dmHs2Kj16Q==","signatures":[{"sig":"MEQCIDd0jAjaBIfxw6WGBFaXiMs5fzGHyZQXuDzvt3rrdebpAiArn/uDrB8+uQbnPNoNh5KNko0OTKVlac0eTeGr31QgYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3111262},"main":"main.js","engines":{"node":">= 22"},"gitHead":"7934b58c4203036fffe6bbb3c276a7430dcdc3a9","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.8.0_1784023627135_0.9689170550290429","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"iobroker.automatic-feeder","version":"1.9.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.9.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"2b5b60f86b4dbf7c0ff3939d50a8e543de149435","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.9.0.tgz","fileCount":24,"integrity":"sha512-IxT7JrASSFAmBAjK0TaVI2xhcpQN6JjO/5lrn5Qv60zDvUeedrnvV5NnUBw9yn2qfos4s4v3LFHKdoMnDQkhTw==","signatures":[{"sig":"MEYCIQCKAyHVFMZsr3ms/f9Zb+rvuXR+MbXsVcPka3/P0151SwIhAJH7LvFl7USOEsmEhVBd/YY4rJZTS8BM1ErPSm/8V+rK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3167694},"main":"main.js","engines":{"node":">= 22"},"gitHead":"c4488f91071453254d2849736d6d1ae427bffaba","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.9.0_1784104212379_0.03444645022100312","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"iobroker.automatic-feeder","version":"1.9.1","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.9.1","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"d622ad18d5a487419424b3527365991d63175685","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.9.1.tgz","fileCount":24,"integrity":"sha512-AC4A2MHwIKVzZU3bslrqYQcbCDv6/7bhjoND/IUvT5O+Agd8VMY1NIk0HuAXbv1OfpNXoI1akNP82lge+mjz6g==","signatures":[{"sig":"MEYCIQD8mlp93R7gY+FOypX7XF+0wRNkbNHr4eQeUiuOoSNLwQIhAJ4s/xzi/TcA31BuIxqACidCWa57lV4TY5mxrgk9mAlF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3166617},"main":"main.js","engines":{"node":">= 22"},"gitHead":"abeb919419481ce801369db381fae46a2360a0af","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.9.1_1784105526518_0.4289167924283457","host":"s3://npm-registry-packages-npm-production"}},"1.9.2":{"name":"iobroker.automatic-feeder","version":"1.9.2","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.9.2","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"ec0c361a9004df2ebe0e450c6b5dc9a8688dd5e9","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.9.2.tgz","fileCount":24,"integrity":"sha512-wOMmUcLBgh/kh/FU615K9UqC/bR/+cTW5NZW29pvR4DFzWEv1eIY3YwC5s1XwnGRTv2YbmjBPFikc2bQoc/UEg==","signatures":[{"sig":"MEQCIBUq/AtXVZ6T/AZT/7heInrn9karoFtqrHQrPYnDT3f5AiBoGQR8473WwEqhKkEMDw8aJ+Oqn+Aw3qF35qFKuNYryg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3176850},"main":"main.js","engines":{"node":">= 22"},"gitHead":"5ed3b969e46039979e17ed069d5b1238c2212983","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.9.2_1784106224188_0.5615213567545783","host":"s3://npm-registry-packages-npm-production"}},"1.9.3":{"name":"iobroker.automatic-feeder","version":"1.9.3","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.9.3","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"05df3da7bd5024b71ad1e045af7520d917c3762f","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.9.3.tgz","fileCount":24,"integrity":"sha512-SsY6Pon4JYAcbBU0N+kzsoXXJU20AHB9by5Vd+agQMjSu5rb6y85rkETy1wZsnhOXyivBcgyDBxCrCi9Ez+9Gg==","signatures":[{"sig":"MEUCIAlNwYAsZAngdsAV+VNh93q/xPbWUesMnHF60aYAiHA3AiEAl05T4Dyf3229+AVvNBWgfFAoIeTeNEjvAoPWwuOWU/4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.9.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3176787},"main":"main.js","engines":{"node":">= 22"},"gitHead":"310fe8c07c76e46a9fd6d82354fffe52bf4df6a3","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.9.3_1784108806212_0.38103123783136184","host":"s3://npm-registry-packages-npm-production"}},"1.9.4":{"name":"iobroker.automatic-feeder","version":"1.9.4","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.9.4","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"50f4a89007989c8601577358cb8ba0b8a642e454","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.9.4.tgz","fileCount":24,"integrity":"sha512-jh6GF1d7JVkVQPawNj7dQG6PBjn9Eg7CPiIO90zrGzhUD1MlAepaeasIRCsB2lSRi6E/Fb/1AuDLfEHz2LEDqg==","signatures":[{"sig":"MEYCIQCZajNcvBx7v68DQ5P9LEVJEBJop+XxdargfsEY44H1OAIhAPdJ+zMe5ZKncWnEP3L80/7rgfYw7vKcvHopen9ue37H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.9.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3180112},"main":"main.js","engines":{"node":">= 22"},"gitHead":"4a6bc532923acd48f2a19157142e44a6753e7221","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.9.4_1784112857569_0.7158888381236557","host":"s3://npm-registry-packages-npm-production"}},"1.9.5":{"name":"iobroker.automatic-feeder","version":"1.9.5","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.9.5","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"dbe1fe94f6a7a36987967789f823896005b48945","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.9.5.tgz","fileCount":25,"integrity":"sha512-NIRUr3QU3d4vt6X1dgtRwhz/pPHGoqau9MNEOcbnjeL0ySsX+nR88HHxI5dGfkPYbSvft09AfxRwYiICatOokQ==","signatures":[{"sig":"MEYCIQDypRBtMRhFchP/gjOHf8Z9eGQuhR4ULARHhb/7lSgJMwIhAKSGJbvJll5B77LkZrLJHtarhxtUct3ABPkzLKcYERiM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.9.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3298653},"main":"main.js","engines":{"node":">= 22"},"gitHead":"3d31aa8e7caa4402856ca134d9e51580b5de9819","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","pdfmake":"^0.2.23","typescript":"~6.0.3","@types/node":"^22.20.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.9.5_1784122246942_0.8716380253835601","host":"s3://npm-registry-packages-npm-production"}},"1.9.6":{"name":"iobroker.automatic-feeder","version":"1.9.6","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.9.6","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"00c31c79962a617346c4fc4eb4d55035532b5c34","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.9.6.tgz","fileCount":25,"integrity":"sha512-7lSFuSg1pG5SFfQjiMz719B8R0h8OX515hkVRKxxJJ300UfcwcXyNBmVhzqNvx3XfjVFY9BeXWC4uSPXttuIPA==","signatures":[{"sig":"MEQCIF7Wh/jT6UIhhA7vbAmNKEZe/btdSsGGy/Xoyvsl9x/HAiBaJwCgIVQ+s1DZdeKNL2fyHKp6B9cWeICe2MGw2dtOMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.9.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3297164},"main":"main.js","engines":{"node":">= 22"},"gitHead":"8fd55648aa0208251632d2d7bb36bfb75b65c25d","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"12.0.1","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","pdfmake":"^0.2.23","typescript":"~6.0.3","@types/node":"^22.20.1","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.9.6_1784124308729_0.4306006562590359","host":"s3://npm-registry-packages-npm-production"}},"1.9.7":{"name":"iobroker.automatic-feeder","version":"1.9.7","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.9.7","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"52646561717748e9ca49ef86ab03b7b43571acfb","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.9.7.tgz","fileCount":25,"integrity":"sha512-NqJxPrduFMxyBCAcccBQ2axM8h3+CeYyXfhc/alXza78feIQig8+Yjjc4DSDN93lauLOIHN56wpweR/XbcqAwA==","signatures":[{"sig":"MEUCIQCqVGeIYHZwnTcmChf2AYgRm9WsIzgk2hOpmQLNd/WCswIgd+mJmZPn5CgzVR47ptR33YRIOllWniUY4O2Qu+7f1lU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.9.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3297218},"main":"main.js","engines":{"node":">= 22"},"gitHead":"5e3deb3242514fe17ab803b9e8ab07ae24fef368","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","pdfmake":"^0.2.23","typescript":"~6.0.3","@types/node":"^22.20.1","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.9.7_1784233158009_0.8712014841927682","host":"s3://npm-registry-packages-npm-production"}},"1.9.8":{"name":"iobroker.automatic-feeder","version":"1.9.8","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.9.8","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"b227549d3b12656cbbfe060db60740b9fae426e5","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.9.8.tgz","fileCount":25,"integrity":"sha512-DADQelzDv5YhQmSIC1q9+KuTOXtwV3LVzcpkHqGI+HQoUr4wOUec9t97HTJbLDyzTuRjP2pegzXdgCYjDyepWQ==","signatures":[{"sig":"MEUCIBXv9VIRHgpigx0Jewhzc7s3zlVAqJlbJSyFi3oORXutAiEAktCweO8dceLzOB5+0ZSopGLZsrFbK2yzW6DEYmce9aI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.9.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3298540},"main":"main.js","engines":{"node":">= 22"},"gitHead":"0652db6eaa52ec69b425d6a0755b32ed264f6589","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","pdfmake":"^0.2.23","typescript":"~6.0.3","@types/node":"^22.20.1","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.9.8_1784276141746_0.47479682522291733","host":"s3://npm-registry-packages-npm-production"}},"1.9.9":{"name":"iobroker.automatic-feeder","version":"1.9.9","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.9.9","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"8c84d29115005bf0ae3aebbce68cc2122933e8e7","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.9.9.tgz","fileCount":25,"integrity":"sha512-vXTY9W5VQZJwuABVe+olxQYIizyeFSLZgKhDZjYwA59yfgrchbasW6M5lV5GEx9t4Xzp83qH1R1qaVY9kcRVuQ==","signatures":[{"sig":"MEUCIHipWFvq+FaWioe2hd79ljRxFrHnXW+nJFwU0/FD93BRAiEAquIJ5Mn0JzDA6PEnvgHIubcViNiqw4J5gMPqtDncDKs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.9.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3304274},"main":"main.js","engines":{"node":">= 22"},"gitHead":"e6141595db034f61c3898ed9593efd3240a603e9","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"18.3.1","react-dom":"18.3.1"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.18.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","leaflet":"^1.9.4","pdfmake":"^0.2.23","typescript":"~6.0.3","@types/node":"^22.20.1","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.2.13","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.9.9_1784289653985_0.45348294618159546","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"iobroker.automatic-feeder","version":"1.10.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.10.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"4526f6b7adcfa14c157857e9e9ec6e9d04115f87","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.10.0.tgz","fileCount":25,"integrity":"sha512-ro6BeXDkIhd2G0K/5CZQWakW0DgHYnjAVkLpIajlbYZqqGqfy9PQrXqZ5xA9atB8nBSAz/MhwwWsoIIkvLJjQA==","signatures":[{"sig":"MEYCIQCI13tAn1uK+LuZudal8CLXsclTXtorgeQ2A/JjxPgSvQIhAK2xV1xmDsWFv+Utnf6ic5COdXtg/HwD+t+G7wdPH30O","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3373416},"main":"main.js","engines":{"node":">= 22"},"gitHead":"20cc93c7e9958eecdf5a9228bb77fc5dc8fbc9c7","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"$react","react-dom":"$react-dom"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.19.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","react":"^19.2.8","leaflet":"^1.9.4","pdfmake":"^0.2.23","react-dom":"^19.2.8","typescript":"~6.0.3","@types/node":"^22.20.1","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/icons-material":"^6.5.0","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.3.2","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.10.0_1785923431808_0.680175245717098","host":"s3://npm-registry-packages-npm-production"}},"1.10.1":{"name":"iobroker.automatic-feeder","version":"1.10.1","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.10.1","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"f8a860f4a0916d05f7be1e62e9b26af3c823df43","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.10.1.tgz","fileCount":25,"integrity":"sha512-QW4NsXMgsuKPitmj+sp/AyqvIS85TP15yWj9AQmNZEuE0EtC4zKeyNu29JZ4ifW+u1b6il2rSYiLsr3IF/y2VA==","signatures":[{"sig":"MEUCIQCuXPzLHP1t40k91RlEIVx+WK1UcEgq32/0o+vItArE0gIgDqZ35WZrFRb1E2Di7HrjTvnsAtIRtRLJu0OvTRGi8b4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3374145},"main":"main.js","engines":{"node":">= 22"},"gitHead":"5bfbb2dcd482f4c78e01700adbc9d1489074b018","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"$react","react-dom":"$react-dom"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.19.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","react":"^19.2.8","leaflet":"^1.9.4","pdfmake":"^0.2.23","react-dom":"^19.2.8","typescript":"~6.0.3","@types/node":"^22.20.1","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/icons-material":"^6.5.0","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.3.2","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.10.1_1786700738371_0.29276362332214023","host":"s3://npm-registry-packages-npm-production"}},"1.10.2":{"name":"iobroker.automatic-feeder","version":"1.10.2","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.10.2","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"052fa0b927cd8dc372d6cc3f099fc2c20c860692","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.10.2.tgz","fileCount":25,"integrity":"sha512-YkQEne2pOPQ8SXCVaLUFW6clcW1JMZ2TdmrZKZZ92oPwgXBWtBkHridxHM6gTXyOQ6Ux++ZYJIAifrFPPsKmYQ==","signatures":[{"sig":"MEYCIQDHSObLpyd8cQpjCompZUwut+XyDS26/eFM/Qx0kGMhQAIhAPzqq3YSQjpkgnDy90yv1j1rT7DbOcp2NqqTxZjcn/Oa","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.10.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3386574},"main":"main.js","engines":{"node":">= 22"},"gitHead":"4264ccd60dbdca4115b4b2d5936cf9f77e45bd06","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"$react","react-dom":"$react-dom"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.19.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","react":"^19.2.8","leaflet":"^1.9.4","pdfmake":"^0.2.23","react-dom":"^19.2.8","typescript":"~6.0.3","@types/node":"^22.20.1","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/icons-material":"^6.5.0","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.3.2","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.10.2_1786705668977_0.8118805226247519","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"iobroker.automatic-feeder","version":"1.11.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.11.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"ae872f74ed8ee4d68a7ac23aad8bc5865046bdcb","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.11.0.tgz","fileCount":25,"integrity":"sha512-1UObjkzOEfkiE1o+CHjeR2U0N5lyAGeOGmko4CurMVjvZOEXW8bIUTf4e7/CfzzLmGW1xmSFsbsNpvRUgrywjQ==","signatures":[{"sig":"MEUCIQCiHZCp0aOMgZ5HUVnNX2lLy/jV4bN2GrEkfE2ZT8aPkQIgRWIN6/YNpwTlHJ/7lC2EGhwTXfOhflFJO1J5PjtbQsw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3427007},"main":"main.js","engines":{"node":">= 22"},"gitHead":"4a61d09c5ead44ae6fdd84785e3a0c1c3860bd79","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"$react","react-dom":"$react-dom"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.19.0","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","react":"^19.2.8","leaflet":"^1.9.4","pdfmake":"^0.2.23","react-dom":"^19.2.8","typescript":"~6.0.3","@types/node":"^22.20.1","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/icons-material":"^6.5.0","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.3.2","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.11.0_1787761277460_0.6609271171916591","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"iobroker.automatic-feeder","version":"1.12.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.12.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"0f05e85a8de1681b61fff628376f093ff801e255","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.12.0.tgz","fileCount":27,"integrity":"sha512-YtEoPUKiLultIaAuElhc1IV7ymLarXNNpfcTBlVhlJqHbHZnKpSZgoizNnXwy7fP4z9VhgWNg/OM8cui7TnXqw==","signatures":[{"sig":"MEQCIC2BOHI7P1y8ls0SwgpPmrRtj7UJLU3uPr0qzA3TPnESAiAlWq4KAHzt2zoIKkYFiPsfuZk70MXNKW1XdzkwdhPj1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3488483},"main":"main.js","engines":{"node":">= 22"},"gitHead":"a3269915ef1d6adc1854a4607a2c6018252ed25f","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"$react","react-dom":"$react-dom"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.19.1","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","react":"^19.2.8","leaflet":"^1.9.4","pdfmake":"^0.2.23","react-dom":"^19.2.8","typescript":"~6.0.3","@types/node":"^22.20.1","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/icons-material":"^6.5.0","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.3.2","@alcalzone/release-script-plugin-license":"^5.2.0","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.12.0_1787919598712_0.1099776672114956","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"iobroker.automatic-feeder","version":"1.13.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.13.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"a94febc26c50317c9cd39fe4bad4d4f17bfd0757","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.13.0.tgz","fileCount":27,"integrity":"sha512-vVKLNUncjkbCyVypy/a6Qp397ikA/tUZbvRoPV+dvCPerCQxSps0KkxgKAWqF9LscRecA0pyoDkYyncLoLsZ7A==","signatures":[{"sig":"MEUCIQC24/LpEfcDqaMIzw1kQLbV8laOiNYcbPI2rPLVkQGhFQIgOYZPa1DwA+QFRqK3y51C3HBZTlAggDCkzIup/WXlifg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3567212},"main":"main.js","engines":{"node":">= 22"},"gitHead":"b610ef557c21f96532d443a2db321b967633bc5f","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"$react","react-dom":"$react-dom"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.19.1","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","react":"^19.2.8","leaflet":"^1.9.4","pdfmake":"^0.2.23","react-dom":"^19.2.8","typescript":"~6.0.3","@types/node":"^22.20.1","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/icons-material":"^6.5.0","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.3.2","@alcalzone/release-script-plugin-license":"^5.2.2","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.13.0_1787921766147_0.5784639046526399","host":"s3://npm-registry-packages-npm-production"}},"1.13.1":{"name":"iobroker.automatic-feeder","version":"1.13.1","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.13.1","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"d84c7b7e4e426364b57a6b9d4b9e52bc7e64cfc0","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.13.1.tgz","fileCount":27,"integrity":"sha512-wgDG0zlgndEht1NhWWbFdDwgzURz+f1w4FH2lAXKYo6qSFjkbTNiJgBcaWXbAlskU1tA4EY/x3oml0s6YHEqHQ==","signatures":[{"sig":"MEUCIQC2j+H7HV169Q5QyDdt/RSJpz9LtQ6VUfrdwLmBprYxlwIgbqGkArDfnJtxcHbgKvrv5VIDjbhtwOqZnizvJUHQAHk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.13.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3608591},"main":"main.js","engines":{"node":">= 22"},"gitHead":"667786c50689bc72f0917db32dc65efde839c177","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"$react","react-dom":"$react-dom"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.19.1","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","react":"^19.2.8","leaflet":"^1.9.4","pdfmake":"^0.2.23","react-dom":"^19.2.8","typescript":"~6.0.3","@types/node":"^22.20.1","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/icons-material":"^6.5.0","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.3.2","@alcalzone/release-script-plugin-license":"^5.2.2","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.13.1_1787922560964_0.3834951745079471","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"iobroker.automatic-feeder","version":"1.14.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.14.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"437877e0d1ac853817b404494d557b2759d219da","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.14.0.tgz","fileCount":27,"integrity":"sha512-h5o7gKJWuobbwOrE7Gv9oPA7KkBJEwMBo/XJj7A9Nlcv++2DqsCW92+Dx8vfpOl0XwTAQdhIQPpMIxGX/flTeg==","signatures":[{"sig":"MEUCIFlaeeA8RLkRbijlMzzbFOq588bhuw7NWZRtzwGZYifUAiEA0xsMjYwNK4dWZMAzQUt9kTdOG0aW9iUHg8kdOl7aevE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.14.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3665005},"main":"main.js","engines":{"node":">= 22"},"gitHead":"f13d3f6521dd1f162d0b06f78307aee5e49814bd","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"$react","react-dom":"$react-dom"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.19.1","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","react":"^19.2.8","leaflet":"^1.9.4","pdfmake":"^0.2.23","react-dom":"^19.2.8","typescript":"~6.0.3","@types/node":"^22.20.1","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/icons-material":"^6.5.0","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.3.2","@alcalzone/release-script-plugin-license":"^5.2.2","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.14.0_1787989959280_0.8839433521581326","host":"s3://npm-registry-packages-npm-production"}},"1.14.1":{"name":"iobroker.automatic-feeder","version":"1.14.1","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.14.1","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"48d39850c3b4ce39838aa3f4836907ed1ca3968b","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.14.1.tgz","fileCount":27,"integrity":"sha512-E5IVXz+VlLxPxHpF3utr9CykxwxbPLaNIn4IbkMHxBTAiSVPsw66xUX3qXr1EyKOJ2tmHJA0uVyHLrbo20+3mw==","signatures":[{"sig":"MEUCIEZ9WuUSpJbiu9vJzDbtD8ChPdf2Xr6KlFcdesiHaZTkAiEAhMcxd1TIfXz4kEOu8Mf53FIt6L4d0p2+dx21cSjQSSc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.14.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3665651},"main":"main.js","engines":{"node":">= 22"},"gitHead":"7d4e97132747f88baa0f36f0daec3ed8c0b05653","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"$react","react-dom":"$react-dom"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.19.1","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","react":"^19.2.8","leaflet":"^1.9.4","pdfmake":"^0.2.23","react-dom":"^19.2.8","typescript":"~6.0.3","@types/node":"^22.20.1","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/icons-material":"^6.5.0","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.3.2","@alcalzone/release-script-plugin-license":"^5.2.2","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.14.1_1788158637024_0.9574042768779947","host":"s3://npm-registry-packages-npm-production"}},"1.14.2":{"name":"iobroker.automatic-feeder","version":"1.14.2","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.14.2","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"7284784c97c8a710256aed6f0cd5eadf5deb6781","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.14.2.tgz","fileCount":27,"integrity":"sha512-N5KOQ3pyZDDALn0upYrGd/Rj3Hz4uRa3W586F//yST0HhdbsRLscLSsScLs6OTv9+OCJnB5+A8Eups45V6TbbQ==","signatures":[{"sig":"MEUCIQC35UFNRoOaysCH6QRDvKajGhrMDOm3zEiFZZElKS9xcQIge7kvGReczUWSIoiRXEZMgUN5tnnyezVFrRSnpdMT/m4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.14.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3665901},"main":"main.js","engines":{"node":">= 22"},"gitHead":"23bdb5e1eccf86feb852a0dc0de1b13e11e41034","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"$react","react-dom":"$react-dom"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.19.1","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","react":"^19.2.8","leaflet":"^1.9.4","pdfmake":"^0.2.23","react-dom":"^19.2.8","typescript":"~6.0.3","@types/node":"^22.20.1","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/icons-material":"^6.5.0","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.3.2","@alcalzone/release-script-plugin-license":"^5.2.2","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.14.2_1788159389317_0.16687260752334976","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"iobroker.automatic-feeder","version":"1.15.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.15.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"ca1469b7a8a40db1a0b1cc4ba8fa986691f0d5d2","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.15.0.tgz","fileCount":27,"integrity":"sha512-ih0W0G+lckbt7dAgGYUx/ZjfEMyNTumBTPG3SaWEh4YiOQ6eXAhS0C2Wt2fjjv48xTpz+YpLbGNP3VCeNI7PVw==","signatures":[{"sig":"MEQCIHuhGCxk+uJnHNuwmBl8Ef1eMplMQDcZsp7TlP0GNjI3AiB5qn3Z8w068+og5PeRRT6dK7bQ1u2sU3m48oKtduJJew==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.15.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3719258},"main":"main.js","engines":{"node":">= 22"},"gitHead":"6fee1fcbef36a1401fc18d99fac7c8d006b8931b","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"$react","react-dom":"$react-dom"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.19.1","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","react":"^19.2.8","leaflet":"^1.9.4","pdfmake":"^0.2.23","react-dom":"^19.2.8","typescript":"~6.0.3","@types/node":"^22.20.1","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/icons-material":"^6.5.0","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.3.2","@alcalzone/release-script-plugin-license":"^5.2.2","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.15.0_1788161298288_0.10529174547093367","host":"s3://npm-registry-packages-npm-production"}},"1.15.1":{"name":"iobroker.automatic-feeder","version":"1.15.1","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.15.1","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"a52866bc0f6443dcaadaba57e5d79819f57dbae0","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.15.1.tgz","fileCount":27,"integrity":"sha512-FAKlmWRuSBJQ64e68yQ+A0Qx3cFl+YS9+Y7qbadOjw1/ZDp5GwwgB+TgUjTctn18stUqg3s0RqYa51OX6TQsGA==","signatures":[{"sig":"MEUCIQDx58lUUf3hPcR6Ca/2Fi+hhi9QN4AuCaVOshMSJF59igIgJtDW7S6XdkUXbmoG5LH1u7RVubGfhND0mFLxKp1y9E8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.15.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3720506},"main":"main.js","engines":{"node":">= 22"},"gitHead":"e71b227e306de1c76d479e5dde951ea15577ec82","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"$react","react-dom":"$react-dom"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.19.1","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","react":"^19.2.8","leaflet":"^1.9.4","pdfmake":"^0.2.23","react-dom":"^19.2.8","typescript":"~6.0.3","@types/node":"^22.20.1","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/icons-material":"^6.5.0","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.3.2","@alcalzone/release-script-plugin-license":"^5.2.2","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.15.1_1788172915293_0.2197918633459881","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"iobroker.automatic-feeder","version":"1.16.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.16.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"001655fcb4c63617e3ebf771998535fe6414b44e","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.16.0.tgz","fileCount":27,"integrity":"sha512-XG9rX7T3Fy3lLU4zXhtr+iKlKeCY80rRciuKnuaraHazpfAQOCygPPTN8y8PMfYPEFPSb2ST/VtbesZKniWwRw==","signatures":[{"sig":"MEYCIQCznGEWLINbPaxQHR+DxTJMvOEN5bv/+t3H9qpAfayyKQIhAMEd8v+UOF44dCP+mQ0c4chz7VL5HlRinLXi2yl2D12R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.16.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3733935},"main":"main.js","engines":{"node":">= 22"},"gitHead":"d86e2df1a128552381a4047a59224a6bf78514cc","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"$react","react-dom":"$react-dom"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.19.1","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","react":"^19.2.8","leaflet":"^1.9.4","pdfmake":"^0.2.23","react-dom":"^19.2.8","typescript":"~6.0.3","@types/node":"^22.20.1","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/icons-material":"^6.5.0","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.3.2","@alcalzone/release-script-plugin-license":"^5.2.2","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.16.0_1788194122539_0.49773551474474087","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"name":"iobroker.automatic-feeder","version":"1.17.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.17.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"4f65db7eceeed9675a0c8930fa98b6abdbf77659","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.17.0.tgz","fileCount":27,"integrity":"sha512-RU94Qw76JJ93JvqN9SLwf1dw+LtmOuNVszCc/qIrPF8ReHSyjapKn49z5tS4PPuRgFa5yR7bLjdcOLhbXOPhuQ==","signatures":[{"sig":"MEYCIQCPIgzrzzCGlosobzl4GjXf5yeb5jWWZJc4ru8LAmvoUgIhALq7xf3p/Z64cAz8cyAAS261BX9jtcEyXN5kUx0ZeJ/4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.17.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3755005},"main":"main.js","engines":{"node":">= 22"},"gitHead":"41ef26fdc73c1456fe4d67c054f0e6e8e1414075","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"$react","react-dom":"$react-dom"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.19.1","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","react":"^19.2.8","leaflet":"^1.9.4","pdfmake":"^0.2.23","react-dom":"^19.2.8","typescript":"~6.0.3","@types/node":"^22.20.1","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/icons-material":"^6.5.0","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.3.2","@alcalzone/release-script-plugin-license":"^5.2.2","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.17.0_1788251372005_0.031164568964411776","host":"s3://npm-registry-packages-npm-production"}},"1.18.0":{"name":"iobroker.automatic-feeder","version":"1.18.0","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.18.0","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"14d031623acf0488f82998cb859feab4bc599c04","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.18.0.tgz","fileCount":27,"integrity":"sha512-Y4MDoSMlOPcuDTvZGgpLY9AaWeYoVBSM6Uy8ZdCQnzB6+b3wB3RzVnV6yABhWxVo2O9+qkniAvH4iqkQiFCqfg==","signatures":[{"sig":"MEYCIQDWPG6Uht2uTIr+kEvhqDgN4rYY8mtBE27dQKSoAcWYVQIhAPtGI9ycS/6i5hVwsI0ryy475amL074S0RRI9fUgKOeg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.18.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3811723},"main":"main.js","engines":{"node":">= 22"},"gitHead":"ea6a82b5074d2ad6b01856ecca8e6a7e035af808","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"$react","react-dom":"$react-dom"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.19.1","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","react":"^19.2.8","leaflet":"^1.9.4","pdfmake":"^0.2.23","react-dom":"^19.2.8","typescript":"~6.0.3","@types/node":"^22.20.1","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/icons-material":"^6.5.0","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.3.2","@alcalzone/release-script-plugin-license":"^5.2.2","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.18.0_1788259452958_0.6795670905884328","host":"s3://npm-registry-packages-npm-production"}},"1.18.1":{"name":"iobroker.automatic-feeder","version":"1.18.1","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.18.1","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"43ed20a3e79832ffc32f5c36ea4ec6949e260b9f","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.18.1.tgz","fileCount":27,"integrity":"sha512-MX98N06TGJxuR+B40+0Y7rXfBY2hIzyGFXfqvrZJ8J7fchsMxixwwj40BtT5p/+j0nILT9+pfArjHh8w10ytGA==","signatures":[{"sig":"MEUCIQCAAXbMcz1jYih7C3pTvCzr5Yve57rqmsenlKZwWy3HkAIgCMlMEB9zhj8Epja+dL3zgz/TyjvXa7arkv8IbZsxEWg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.18.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3810092},"main":"main.js","engines":{"node":">= 22"},"gitHead":"38ecbfa33cdd26ca6e5f2dc1d1b242ef2427f147","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"$react","react-dom":"$react-dom"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.19.1","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.19.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.21","react":"^19.2.8","leaflet":"^1.9.4","pdfmake":"^0.2.23","react-dom":"^19.2.8","typescript":"~6.0.3","@types/node":"^22.20.1","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.5","@iobroker/testing":"^5.2.2","@mui/icons-material":"^6.5.0","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.3.2","@alcalzone/release-script-plugin-license":"^5.2.2","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.18.1_1788446465311_0.7070087780043302","host":"s3://npm-registry-packages-npm-production"}},"1.18.2":{"name":"iobroker.automatic-feeder","version":"1.18.2","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.18.2","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"bb55c80855281b2ab3119649a13b3ad713d84699","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.18.2.tgz","fileCount":27,"integrity":"sha512-ISDy3o3wIjThJFQapfX28rwsNGpBlkYymlngDnUFBUjQtXjhPZQeqs1TDu9HsaFBEsOW/xoMNlnxlZOyBd5Zrw==","signatures":[{"sig":"MEUCIHlLYDJ9izs0r8Q+DvshU3fbAaTnmaaIV/J1tI0KaDR7AiEAtQbTim7xBJ7L2BB3nBuAOWWX3VnH5vA/qi3izt6TuZ8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.18.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3820337},"main":"main.js","engines":{"node":">= 22"},"gitHead":"59345d2c0c4f5be79806a2f3de71303fb9efb9de","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"$react","react-dom":"$react-dom"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.19.1","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.1"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.23","react":"^19.2.8","leaflet":"^1.9.4","pdfmake":"^0.2.23","react-dom":"^19.2.8","typescript":"~6.0.3","@types/node":"^22.20.1","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.6","@iobroker/testing":"^5.2.2","@mui/icons-material":"^6.5.0","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.3.3","@alcalzone/release-script-plugin-license":"^5.2.2","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.18.2_1788688973854_0.7765405781121975","host":"s3://npm-registry-packages-npm-production"}},"1.18.3":{"name":"iobroker.automatic-feeder","version":"1.18.3","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","_id":"iobroker.automatic-feeder@1.18.3","maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"dist":{"shasum":"27e8a7d532575ab7f9be2c63f030f6918628719f","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.18.3.tgz","fileCount":27,"integrity":"sha512-SMUjsRgZzSam0m53bQeQ+fKqcGjSyaZaqSrBTsmN75vLR6YvXmAWcyRR959I1zm3g0q0WCLcvjN+AZdDwEMagA==","signatures":[{"sig":"MEQCIGUpHrADkPPxBAhK410or2bPmj63SdYaPCbhJMPOs6h+AiBJAcH6o3K2AASHCxTmAtZUT0LZgebiwHyB2fRNc9WFmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.18.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3818561},"main":"main.js","engines":{"node":">= 22"},"gitHead":"2e4e5cdbbbfcf8520080d5fb6938f6f630b7269b","scripts":{"lint":"eslint -c eslint.config.mjs .","test":"npm run test:js && npm run test:package","build":"build-adapter react","check":"tsc --noEmit -p tsconfig.check.json","watch":"build-adapter react --watch","release":"release-script","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","prebuild":"rimraf admin/build","translate":"translate-adapter","dev-server":"dev-server","build:react":"build-adapter react","watch:react":"build-adapter react --watch","doc:handbook":"node tools/build-handbook.js","test:package":"mocha test/package --exit","prebuild:react":"rimraf admin/build","test:integration":"mocha test/integration --exit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"overrides":{"react":"$react","react-dom":"$react-dom"},"repository":{"url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git","type":"git"},"_npmVersion":"11.19.1","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","directories":{},"_nodeVersion":"24.20.0","dependencies":{"suncalc":"^2.0.0","@iobroker/adapter-core":"^3.4.3"},"_hasShrinkwrap":false,"devDependencies":{"dayjs":"^1.11.23","react":"^19.2.8","leaflet":"^1.9.4","pdfmake":"^0.2.23","react-dom":"^19.2.8","typescript":"~6.0.3","@types/node":"^22.20.1","@mui/material":"^6.5.0","@emotion/react":"^11.14.0","@types/leaflet":"^1.9.21","@emotion/styled":"^11.14.1","@types/iobroker":"npm:@iobroker/types@^7.2.2","@tsconfig/node22":"^22.0.6","@iobroker/testing":"^5.2.2","@mui/icons-material":"^6.5.0","@mui/x-date-pickers":"^7.29.4","@iobroker/dev-server":"^0.8.0","@iobroker/adapter-dev":"^1.5.0","@iobroker/eslint-config":"^2.3.4","@alcalzone/release-script":"^5.2.1","@iobroker/adapter-react-v5":"^8.3.3","@alcalzone/release-script-plugin-license":"^5.2.2","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-manual-review":"^5.2.0"},"_npmOperationalInternal":{"tmp":"tmp/iobroker.automatic-feeder_1.18.3_1788689789155_0.2661929543891981","host":"s3://npm-registry-packages-npm-production"}},"1.18.4":{"name":"iobroker.automatic-feeder","version":"1.18.4","description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"contributors":[],"homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","license":"MIT","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"repository":{"type":"git","url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git"},"engines":{"node":">= 22"},"dependencies":{"@iobroker/adapter-core":"^3.4.3","suncalc":"^2.0.0"},"overrides":{"react":"$react","react-dom":"$react-dom"},"devDependencies":{"@alcalzone/release-script":"^5.2.1","@alcalzone/release-script-plugin-iobroker":"^5.2.0","@alcalzone/release-script-plugin-license":"^5.2.2","@alcalzone/release-script-plugin-manual-review":"^5.2.0","@emotion/react":"^11.14.0","@emotion/styled":"^11.14.1","@iobroker/adapter-dev":"^1.5.0","@iobroker/adapter-react-v5":"^8.3.3","@iobroker/dev-server":"^0.8.0","@iobroker/eslint-config":"^2.3.4","@iobroker/testing":"^6.2.1","@mui/icons-material":"^6.5.0","@mui/material":"^6.5.0","@mui/x-date-pickers":"^7.29.4","@tsconfig/node22":"^22.0.6","@types/iobroker":"npm:@iobroker/types@^7.2.2","@types/leaflet":"^1.9.21","@types/node":"^22.20.1","dayjs":"^1.11.23","leaflet":"^1.9.4","pdfmake":"^0.2.23","react":"^19.2.8","react-dom":"^19.2.8","typescript":"~6.0.3"},"main":"main.js","scripts":{"prebuild":"rimraf admin/build","build":"build-adapter react","watch":"build-adapter react --watch","prebuild:react":"rimraf admin/build","build:react":"build-adapter react","watch:react":"build-adapter react --watch","test:js":"mocha --config test/mocharc.custom.json \"{!(node_modules|test)/**/*.test.js,*.test.js,test/**/test!(PackageFiles|Startup).js}\"","test:package":"mocha test/package --exit","test:integration":"mocha test/integration --exit","test":"npm run test:js && npm run test:package","check":"tsc --noEmit -p tsconfig.check.json","lint":"eslint -c eslint.config.mjs .","doc:handbook":"node tools/build-handbook.js","translate":"translate-adapter","release":"release-script","dev-server":"dev-server"},"bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"gitHead":"34e072f79f0a50217b2d9eb2685e80947121c46e","_id":"iobroker.automatic-feeder@1.18.4","_nodeVersion":"24.20.0","_npmVersion":"11.19.1","dist":{"integrity":"sha512-Yx7DbRj2wkEmZn65rz870v5+Rz4ACRoX+wgQynMVhn3RZtLSd6yMlwXGttw0YvpzuCJ5j0tRN8GFK4EpUE3KOQ==","shasum":"8fa5cd44b938b43311b79afec34372e13fe637f7","tarball":"https://registry.npmjs.org/iobroker.automatic-feeder/-/iobroker.automatic-feeder-1.18.4.tgz","fileCount":27,"unpackedSize":3819116,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/iobroker.automatic-feeder@1.18.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDtR7HCzb5jIzpoLI0aRttOXscgdFpgzH7Eiyh0XPdB4AiEA8kLzwLQ3msbf/uTsDbpVQ7LIQc+A2k9eX5siZdjXONY="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:46128f61-c386-499d-b755-94da45011d8f"}},"directories":{},"maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/iobroker.automatic-feeder_1.18.4_1789197171166_0.7285365496072842"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-30T07:12:27.912Z","modified":"2026-09-12T07:12:51.650Z","0.2.0":"2026-06-30T07:12:28.152Z","0.3.0":"2026-06-30T07:56:16.548Z","0.4.0":"2026-06-30T09:14:38.093Z","0.4.1":"2026-07-01T06:45:07.956Z","0.5.0":"2026-07-01T08:14:55.877Z","0.5.1":"2026-07-01T08:36:52.844Z","0.5.2":"2026-07-01T08:48:03.635Z","0.5.3":"2026-07-01T09:13:41.214Z","0.6.0":"2026-07-01T10:24:50.522Z","0.7.0":"2026-07-01T11:04:29.270Z","1.0.0":"2026-07-01T12:52:55.527Z","1.0.1":"2026-07-01T13:57:58.254Z","1.0.2":"2026-07-01T14:39:11.302Z","1.1.0":"2026-07-01T17:07:45.867Z","1.1.1":"2026-07-01T17:17:33.748Z","1.1.2":"2026-07-01T17:44:49.318Z","1.1.3":"2026-07-02T07:42:31.801Z","1.2.0":"2026-07-02T09:13:20.590Z","1.2.1":"2026-07-02T10:01:23.058Z","1.2.2":"2026-07-02T13:32:14.831Z","1.2.3":"2026-07-02T13:48:01.441Z","1.3.0":"2026-07-04T16:01:10.832Z","1.4.0":"2026-07-05T11:53:53.221Z","1.4.1":"2026-07-05T12:38:10.713Z","1.5.0":"2026-07-06T06:44:31.328Z","1.6.0":"2026-07-07T09:39:23.108Z","1.7.0":"2026-07-14T07:46:56.038Z","1.7.1":"2026-07-14T09:20:35.546Z","1.8.0":"2026-07-14T10:07:07.311Z","1.9.0":"2026-07-15T08:30:12.646Z","1.9.1":"2026-07-15T08:52:06.735Z","1.9.2":"2026-07-15T09:03:44.416Z","1.9.3":"2026-07-15T09:46:46.390Z","1.9.4":"2026-07-15T10:54:17.709Z","1.9.5":"2026-07-15T13:30:47.169Z","1.9.6":"2026-07-15T14:05:08.894Z","1.9.7":"2026-07-16T20:19:18.228Z","1.9.8":"2026-07-17T08:15:41.917Z","1.9.9":"2026-07-17T12:00:54.177Z","1.10.0":"2026-08-05T09:50:32.012Z","1.10.1":"2026-08-14T09:45:38.547Z","1.10.2":"2026-08-14T11:07:49.183Z","1.11.0":"2026-08-26T16:21:17.680Z","1.12.0":"2026-08-28T12:19:58.897Z","1.13.0":"2026-08-28T12:56:06.293Z","1.13.1":"2026-08-28T13:09:21.158Z","1.14.0":"2026-08-29T07:52:39.441Z","1.14.1":"2026-08-31T06:43:57.181Z","1.14.2":"2026-08-31T06:56:29.501Z","1.15.0":"2026-08-31T07:28:18.457Z","1.15.1":"2026-08-31T10:41:55.490Z","1.16.0":"2026-08-31T16:35:22.723Z","1.17.0":"2026-09-01T08:29:32.189Z","1.18.0":"2026-09-01T10:44:13.119Z","1.18.1":"2026-09-03T14:41:05.481Z","1.18.2":"2026-09-06T10:02:54.051Z","1.18.3":"2026-09-06T10:16:29.374Z","1.18.4":"2026-09-12T07:12:51.356Z"},"bugs":{"url":"https://github.com/ssbingo/ioBroker.automatic-feeder/issues"},"author":{"name":"ssbingo","email":"s.sternitzke@online.de"},"license":"MIT","homepage":"https://github.com/ssbingo/ioBroker.automatic-feeder","keywords":["ioBroker","Automatic Feeder","feeder","Koi","Fish"],"repository":{"type":"git","url":"git+https://github.com/ssbingo/ioBroker.automatic-feeder.git"},"description":"Scheduled automatic feeder for ioBroker: switches an existing state for a set duration, with temperature and day/night limits.","contributors":[],"maintainers":[{"name":"bluefox","email":"dogafox@gmail.com"},{"name":"ssbingo","email":"s.sternitzke@online.de"}],"readme":"![Logo](admin/automatic-feeder.png)\n# ioBroker.automatic-feeder\n\n[![NPM version](https://img.shields.io/npm/v/iobroker.automatic-feeder.svg)](https://www.npmjs.com/package/iobroker.automatic-feeder)\n[![Downloads](https://img.shields.io/npm/dm/iobroker.automatic-feeder.svg)](https://www.npmjs.com/package/iobroker.automatic-feeder)\n![Number of Installations](https://iobroker.live/badges/automatic-feeder-installed.svg)\n![Current version in stable repository](https://iobroker.live/badges/automatic-feeder-stable.svg)\n\n[![NPM](https://nodei.co/npm/iobroker.automatic-feeder.png?downloads=true)](https://nodei.co/npm/iobroker.automatic-feeder/)\n\n**Tests:** ![Test and Release](https://github.com/ssbingo/ioBroker.automatic-feeder/workflows/Test%20and%20Release/badge.svg)\n\n---\n\n<p align=\"center\">\n  <a href=\"https://www.buymeacoffee.com/ssbingo\"><img src=\"https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20coffee&emoji=&slug=ssbingo&button_colour=FFDD00&font_colour=000000&font_family=Cookie&outline_colour=000000&coffee_colour=ffffff\" /></a>\n</p>\n\n---\n\n> ### 🔌 Matching hardware — the **Feeder-Relais** timer board\n>\n> Building a feeder and would rather drop in a ready-made timer board than wire up your own relay? Take a look at the **[Feeder-Relais (Timer-Ersatzplatine)](https://github.com/ssbingo/timer-ersatzplatine)** — a self-build ESP32 timer board that pairs perfectly with this adapter ([online overview](https://ssbingo.github.io/timer-ersatzplatine/)).\n>\n> **It is a separate, standalone project — independent of the adapter.** The board and this adapter correspond with each other, but the two are completely independent of one another: the adapter works fully without the board, and the board works without the adapter.\n\n---\n\n## automatic-feeder adapter for ioBroker\n\nThis adapter turns any existing ioBroker switch (a smart plug, a relay, a GPIO output …) into a\nscheduled **automatic feeder**. It switches the output on for a defined number of seconds at the\ntimes you configure, and can take temperature and the day/night cycle into account so it never\nfeeds at the wrong moment.\n\nThis document is a complete manual. If you have never used the adapter before, read it from top\nto bottom – the **Quick start** gets you to your first feeding in a few minutes, the rest\nexplains every option in detail.\n\n> 🇩🇪 Deutsche Anleitung: [doc/de/README.md](doc/de/README.md) · other languages: see\n> [Documentation](#documentation) at the bottom.\n\n---\n\n## Table of contents\n\n1. [What the adapter does](#1-what-the-adapter-does)\n2. [Requirements](#2-requirements)\n3. [Installation](#3-installation)\n4. [Quick start](#4-quick-start--your-first-feeding)\n5. [The settings page in detail](#5-the-settings-page-in-detail)\n6. [Objects / data points](#6-objects--data-points)\n7. [Examples / recipes](#7-examples--recipes)\n8. [Telegram notifications](#8-telegram-notifications)\n9. [Troubleshooting & FAQ](#9-troubleshooting--faq)\n10. [Logging & debugging](#10-logging--debugging)\n11. [Dynamic feeding — background & sources](#11-dynamic-feeding--background--sources)\n\n---\n\n## 1. What the adapter does\n\nA \"feeding\" is simply: **switch an output ON → wait a configurable number of seconds → switch it\nOFF again**. For a converted feeder the running motor during those seconds dispenses the food.\n\nThe adapter can manage **up to 5 switches**, each completely independent and each with its own\nconfiguration tab named after the switch. Per switch you decide:\n\n* **when** it feeds – either at **fixed times** (e.g. 08:00 and 18:00) or in an **interval**\n  inside a time window (e.g. every 60 minutes between 08:00 and 18:00);\n* **how long** the output stays on (feeding duration in seconds);\n* **whether to block** feeding when the water or air temperature is too low/high;\n* **whether to restrict** feeding to the astronomical day window (sunrise/sunset with per-switch\n  offsets, from a system, shared or per-switch location);\n* **whether to supervise** the switch (check that it really turned on and off) and optionally\n  send a **Telegram** message about the result;\n* **whether to reduce or pause** feeding during a recurring **winter** season – optionally with\n  Telegram reminders before it starts and ends;\n* **whether to adapt** the interval and the portion to the water/air temperature automatically\n  (**dynamic feeding**, Q10 model);\n* **whether to block** feeding when the dissolved **oxygen** (O₂) is too low;\n* **up to 3 one-off feeding pauses** (absolute date-time periods, e.g. a quarantine after\n  restocking) with a **Telegram** message at the start and end of each;\n* a **master pause switch** (*Suspend feeding now*) that instantly suspends **all** feeding\n  for a switch until you turn it off again, with a **Telegram** message on each toggle.\n\nYou can also trigger a feeding **manually** at any time – from the adapter's settings page\n(button with a freely selectable duration) or from a data point (e.g. a button in a VIS view).\n\nOptionally, the adapter integrates the **Automatic-Feeder relay board** (an ESP32 with three\ntimer buttons and its own web interface). You decide **per switch** whether it uses such a board;\nwhen you enable it for a switch in the general settings, that switch gains a **Relay** tab where\nyou set the board's network address, test the connection and configure its three button feeding\ntimes (S1–S3) directly from the adapter.\n\n> Important: the adapter never creates the switch itself. It **controls an object that already\n> exists** in your ioBroker system. You select that object in the configuration.\n\n---\n\n## 2. Requirements\n\n| You need | Details |\n|----------|---------|\n| **ioBroker** with **admin ≥ 7.8.23**, **js-controller ≥ 6.0.11** and **Node.js ≥ 22** | Required minimum versions. The configuration page is built with React 19. |\n| **A switch object** | Any writable ioBroker state that turns your feeder on/off – e.g. a smart plug (`shelly.0.…`, `sonoff.0.…`, `zigbee.0.…`), a relay, a script variable. |\n| *(optional)* **Geo-coordinates** | Used to calculate sunrise/sunset for the per-switch **astronomical window**. Only needed if a switch uses that window; taken from the ioBroker system settings, one shared position, or configured per switch. |\n| *(optional)* Temperature objects | Existing states with air and/or water temperature, for temperature blocking or dynamic feeding. Assigned **per switch** on the switch tab. |\n| *(optional)* **Oxygen (O₂)** objects | Existing states with the dissolved oxygen, to block feeding when it drops too low. Assigned **per switch**. |\n| *(optional)* A **Telegram** instance | The official `telegram` adapter, configured and running, if you want push notifications. |\n| Internet access on the ioBroker host | Only for the address search / map in the configuration. Normal operation works offline. |\n\n---\n\n## 3. Installation\n\n1. In the ioBroker **admin**, open the **Adapters** tab.\n2. Find **automatic-feeder** in the list and click **Install**.\n3. Create an **instance** of the adapter.\n4. Open the instance settings (the gear icon) – you should see the configuration page with the\n   **General settings** tab. If it stays blank, see [Troubleshooting](#9-troubleshooting--faq).\n\n---\n\n## 4. Quick start – your first feeding\n\nThe goal: make one switch feed for 5 seconds, right now, to prove everything works.\n\n1. **Open the settings** of the automatic-feeder instance.\n2. On the **General settings** tab:\n   * Under **Location**, leave *Use system settings for all switches* selected (only relevant if\n     you later enable the astronomical window). You can also pick a shared location or configure\n     it per switch.\n   * Scroll down to **Switches** and click **Add switch**.\n   * Give it a **Name** (e.g. `Koi pond`). This name becomes the title of its own tab.\n   * Click the list icon next to **Switch object** and choose the state that switches your\n     feeder (e.g. your smart plug). Make sure the switch is **Active** (checkbox on the left).\n3. **Save** (the disk/checkmark at the bottom). A new tab named after your switch appears.\n4. Open that **switch tab**. At the top under **Manual feeding**, set a duration (e.g. `5`\n   seconds) and click **Feed now**. The output should turn on for 5 seconds and off again.\n5. Still on the switch tab, set up the real schedule under **Feeding schedule** (e.g. fixed\n   times 08:00 and 18:00) and the **Feeding duration** under **Feeding action**, then **Save**.\n\nThat's it – the adapter will now feed automatically. Everything below explains the options in\ndepth.\n\n---\n\n## 5. The settings page in detail\n\nThe configuration has a **General settings** tab plus **one tab per switch** (created\nautomatically once a switch has a name). If a page does not scroll, drag the window larger or\nuse the scrollbar on the right – all sections are reachable.\n\n### 5.1 General settings tab\n\n#### Location (for the astronomical window)\n\nThe location is used to calculate sunrise/sunset for the **astronomical feeding window** that can\nbe enabled per switch (see *Restrictions* on the switch tab). It is only needed if at least one\nswitch uses that window. Three options:\n\n* **Use system settings for all switches** – takes latitude/longitude from the ioBroker system\n  configuration (recommended if those are already set). The current values are shown.\n* **One shared location for all switches** – set a single position that all switches use:\n  * Type an **address** and press **Search**. The adapter resolves it (via OpenStreetMap /\n    Nominatim) and places a marker.\n  * Or **click on the map** / **drag the marker** to the exact spot.\n  * Latitude/longitude can also be typed directly; the map follows.\n* **Configure the location individually per switch** – each switch defines its own location on\n  its own tab (useful when feeding stations, e.g. ponds, are at different places).\n\n> The address search runs in the adapter backend, so the **instance must be running** for it.\n> The map tiles and the search need internet access.\n\nThe **sunrise/sunset offsets are configured per switch** (under *Restrictions*), and the\ncalculated times are published per switch as `status.sunrise` / `status.sunset`, recalculated\nautomatically every night.\n\n#### Switches\n\nThe list of feeders (up to 5). For each entry:\n\n* **Active** (checkbox) – only active switches are scheduled.\n* **Name** – free text; becomes the switch's tab title and the channel name in the object tree.\n* **Switch object** – the existing ioBroker state to control. Use the list icon to browse, or\n  the cross to clear.\n\nUse **Add switch** to create another (max. 5) and the trash icon to remove one. Removing a\nswitch also deletes its data points.\n\n* **This switch uses the Automatic-Feeder relay board** (per-switch toggle) – turn this on only\n  for a switch whose feeding station uses the optional Automatic-Feeder relay board (ESP32). When\n  on, that switch gets an additional **Relay** tab (see [5.4](#54-relay-board-tab-optional)).\n\n### 5.2 Feed list tab\n\nA central, **user-maintained list of your food types**, shared by all switches. For each feed you enter:\n\n* **Feed name** and **vendor / dealer**,\n* **pellet size (mm)**,\n* the four standard **nutritional values** from the manufacturer's *analytical constituents* — **crude\n  protein / fat / fibre / ash (%)**,\n* an optional **offer / purchase link** (a hidden field, revealed with the link button) for re-ordering online.\n\nAdd as many feeds as you like with **Add feed** and remove them with the bin icon. The list is stored\ncentrally and is also published as JSON in `info.feeds` for VIS/widgets. In each **switch tab** you then\npick, under **Currently loaded feed**, which of these feeds is currently filled into that feeder — its\nname, size and nutrition are exposed as `status.activeFeed*` and can be switched from the VIS widget too.\n\n### 5.3 Switch tabs\n\nEach configured switch gets its own tab, titled with its name. It contains the following\nsections.\n\n#### Manual feeding\n\n* **Manual feeding duration (seconds)** – the duration used by the button.\n* **Feed now** – triggers a feeding immediately with that duration. Useful for testing or an\n  extra portion. (Whether it ignores blocks depends on *Manual trigger ignores all blocks* in\n  *Restrictions*.)\n* The instance must be running and the configuration **saved** for the button to work.\n\n#### Feeding schedule\n\nChoose **one** mode:\n\n* **Fixed times** – a list of clock times (`HH:mm`). Add as many as you like; the feeder runs\n  at each of them every day. Example: `08:00` and `18:00`.\n* **Interval within a time window** – feed repeatedly inside a window:\n  * **Window start** / **Window end** – e.g. 08:00 to 18:00.\n  * **Interval (minutes)** – e.g. 60 → feed at 08:00, 09:00, …, up to the end of the window,\n    every day.\n\nIf the **astronomical window** is enabled (see *Restrictions*), the fixed window start/end are\nreplaced by the sunrise/sunset window and are hidden; the interval then runs between sunrise and\nsunset. The next planned time is always visible in the `status.nextFeeding` data point.\n\n#### Feeding action\n\n* **Feeding duration (seconds)** – how long the output stays ON during a scheduled feeding.\n* **On value** / **Off value** – the values written to the switch object. Defaults are `true`\n  and `false`, which fit most smart plugs/relays. If your device expects numbers or text, enter\n  e.g. `1` / `0` or `ON` / `OFF` here.\n\n#### Temperature & oxygen sources\n\nEach switch (feeding station) has **its own** sensors – different ponds/tanks can use different\nobjects:\n\n* **Air temperature** – tick the box and pick the state that holds this station's air temperature.\n* **Water temperature** – tick the box and pick the state that holds this station's water temperature.\n  This is the primary **feeding-zone** sensor (place it where the fish actually feed, not at the surface).\n* **Water temperature (deep)** – *optional second* water sensor (e.g. near the bottom). Only shown once\n  the primary water sensor is enabled. With two sensors you choose a **combine mode** for dynamic feeding:\n  *Feeding zone (shallow only)* [default], *Average of both*, *Coldest layer*, or *Seasonal* (uses the\n  shallow sensor while it is at or above a threshold, otherwise the deep sensor). The temperature **block**\n  always uses the **coldest** of the two layers. A second sensor only helps in **deep, unmixed ponds**\n  (a running pump mixes the water and removes any stratification) — see *Dynamic feeding — background & sources*.\n* **Oxygen (O₂)** – tick the box and pick the state that holds the dissolved oxygen.\n\nOnly number states make sense. The current values are mirrored to this switch's `status.airTemperature`,\n`status.waterTemperature`, `status.waterTemperatureDeep`, `status.oxygen` (and `status.waterStratification`\n= shallow − deep) data points. The thresholds are set below (*Temperature blocking*), and the temperatures\nalso drive *Dynamic feeding*.\n\n#### Temperature blocking\n\nOnly shown for the temperature sources you enabled above (*Temperature & oxygen sources*). Per switch you can:\n\n* **Block by water temperature** – set *Block if below* and/or *Block if above* (°C).\n* **Block by air temperature** – same, for air.\n\nIf the current temperature is outside the allowed range, the feeding is skipped and the reason\nis written to `status.blockReason`. (If a temperature value is unknown, that source does not block.)\n\n#### Water quality (ammonia / nitrite)\n\nOptionally the switch watches the **ammonia** (NH₃/NH₄) and/or **nitrite** (NO₂) of the water –\n\"if these values rise, feed less\" (from the feeder manual). Assign an existing state for each and\nenable **Block/reduce feeding on poor water quality**. For each substance you set two thresholds:\n\n* **Reduce above** – when the value is **at or above** this warn threshold, the **daily amount is\n  reduced** to a configurable percentage (*Reduce daily amount to (%)*). This only takes effect in\n  the **feeding-amount control mode** (there is no amount to reduce in the fixed/dynamic modes).\n* **Block above** – when the value is **above** this maximum, feeding is **blocked entirely** in\n  every mode (like the temperature/oxygen blocks); the reason is written to `status.blockReason`.\n\nLeave a threshold empty to switch that tier off. The live values are mirrored in `status.ammonia`\nand `status.nitrite`. There are no universal safe limits (they depend on pH and temperature) – as a\nguide, keep ammonia and nitrite close to zero and set the thresholds from your own test kit.\n\n#### Restrictions\n\n* **Restrict feeding to the astronomical day window (sunrise/sunset + offsets)** – when on,\n  feeding is limited to the daytime window computed from this switch's location. For *Interval*\n  and *Dynamic feeding* this window replaces the fixed window start/end; for *Fixed times* it\n  acts as a day/night guard (times outside the window are skipped). When enabled you can set:\n  * **Minutes after sunrise** – start this many minutes *after* sunrise (default 0).\n  * **Minutes before sunset** – stop this many minutes *before* sunset (default 0).\n  * **Location for this switch** – only shown when the general *Location* is set to *individual*:\n    pick *Use system settings* or *Define specific location* (address search + map) for this\n    switch. The computed times appear in `status.sunrise` / `status.sunset`.\n* **Manual trigger ignores all blocks** – when on, the manual button and the `feedNow` /\n  `feedFor` data points feed even if a temperature/window block is active.\n\n#### Dynamic feeding\n\nOptional: adapt the feeding **interval and duration to temperature** using the Q10 model (metabolism roughly doubles per +10 °C). Requires an active temperature source; fixed times are then replaced by an interval within the window.\n\n* **Enable / source** – turn it on and pick water or air temperature. When a second (deep) water sensor is configured, the water temperature used here is combined from both layers per the chosen combine mode (see *Temperature & oxygen sources*).\n* **Reference / Q10** – the base interval and duration apply at the reference temperature (e.g. 20 °C); Q10 is typically 2–2.5 (metabolism roughly doubles per +10 °C — see *Dynamic feeding — background & sources*).\n* **Interval / duration (base, min, max)** – bounds for the computed interval (minutes) and duration (seconds). The **base interval and the max interval must be greater than 0**, otherwise no feeding can be planned.\n* **Averaging window / hysteresis** – a moving average (e.g. 24 h) smooths spikes; hysteresis avoids re-planning on tiny changes.\n\nThe current values are exposed in `status.dynamicAvgTemperature`, `status.dynamicRate`, `status.dynamicIntervalMin` and `status.dynamicDurationSec`. An optional **oxygen (O₂)** source can block feeding when the dissolved oxygen drops below a threshold. The winter pause takes precedence over dynamic feeding.\n\n> If dynamic feeding is enabled but no valid interval can be computed (base or max interval is 0, or an invalid time window), nothing is scheduled: `status.nextFeeding` stays empty and `status.blockReason` shows a hint. Set a base interval and a max interval greater than 0.\n\n#### Feeding-amount model (advisory)\n\nOptionally the adapter estimates the **recommended daily food amount** for a switch from the **fish\nstock** and the **water temperature**, following the original feeder manual:\n`daily amount [g] = total fish weight × percentage(water temperature)`. You only enter the **number\nof fish per size class** (15/20/30/40/50/60 cm) in a small table with a fish icon per size; the\n**weight per size is a fixed estimate from the manual** (60/125/350/1000/2000/4000 g). You also set\nthe **feeding percentage per temperature band** (defaults 0 % below 15 °C, 1 % at 15–18 °C, 1.5 % at\n18–21 °C, 2 % at 21–23 °C, 3 % at 23–28 °C, then **throttled again in the heat**: 1.5 % at 28–30 °C\nand 0.5 % above 30 °C – the temperature response peaks around 24–26 °C and falls off above it). It\nneeds a **water-temperature source** for the switch.\n\nBy itself this is a **calculator** – it computes and shows the recommendation. The results are\npublished in `status.fishTotalWeight` (g), `status.feedPercentToday` (%) and\n`status.feedTargetGramsToday` (g); the switch tab additionally shows the estimated total weight and\nan example.\n\nOptionally you can let this amount **control feeding**: enable **Control feeding with this amount**\nand the recommended daily grams are converted into motor run-time and split across the day's\nfeedings. For that you calibrate the **dispense rate** (g/s) — a small helper runs the motor for a\nfew seconds so you can weigh the dispensed food and let the adapter compute the rate — and may set\nan optional **daily maximum (g)** as an overfeeding safeguard. This mode is **mutually exclusive\nwith dynamic (Q10) feeding**; the **\"when\"** (fixed times / interval / astronomical window) and all\nblocks (night, temperature, O₂, pauses, winter) stay unchanged and keep priority. The resulting\nrun-time is published in `status.feedTargetSecondsToday` (s per day) and\n`status.feedEffectiveDurationSec` (s per feeding); the per-feeding duration is capped for safety.\n\nThe **feed** currently filled into the feeder is chosen per switch under **Currently loaded feed**,\nfrom the central **Feed list** (see [5.2](#52-feed-list-tab)). Its name, pellet size and nutrition are\npublished in `status.activeFeed*` and it can also be switched from the VIS widget via the writable\n`settings.activeFeed` state (the feed's id). The **dispense rate (g/s)** is calibrated **per switch**\n(it depends on the feeder's mechanics), independent of which feed is loaded.\n\n#### Winter pause\n\nPer switch you can define a recurring **winter pause** (seasonal, given as `MM-DD` dates that repeat every year and may wrap around New Year).\n\n* **Enable winter pause** – turn the pause on.\n* **Winter start / Winter end** – pick the day and month from a calendar (shown as dd.mm), e.g. 01.11 to 15.03.\n* **Mode** – during the pause either **suspend feeding**, feed with a **reduced** own interval, or **once daily** at a set time; a separate **winter feeding duration** applies.\n* **Reminders (Telegram)** – a daily reminder is sent in the days before the start and before the end (last on the day itself), at the configured hour. Needs a Telegram instance (see below).\n\nThe current state is shown in the `status.winterActive` data point. Feeding resumes automatically when the pause ends.\n\n#### Feeding pauses\n\n**Suspend feeding now (master switch).** At the top of this section a single **on/off switch** lets you suspend **all** feeding for the switch **immediately and indefinitely** — it overrides the time-based pauses below **and** every feeding mode (fixed times, interval, dynamic feeding, winter pause). Turn it **off** again and feeding resumes exactly as configured before; nothing else has to be changed. Toggling it sends a **Telegram** message (*on* / *off*). Typical use: a spontaneous interruption (medication, maintenance, water treatment) without touching any schedule. It is editable from the settings page **and from VIS/scripts** via `settings.pauseNow`, and its live state is shown in `status.pauseManual`.\n\nBelow the master switch, up to **3 one-off feeding pauses** per switch let you plan absolute date-time periods in which feeding is **completely suspended** (higher priority than every feeding mode). Typical use: a **quarantine after restocking**, when new fish should not be fed for a while.\n\n* **Pause 1 / 2 / 3** – tick to enable, then pick a **Start** and **End** (date + time, shown as `DD.MM.YYYY HH:mm`), e.g. `15.07.2026 08:00` to `22.07.2026 18:00`.\n* Feeding stops while *now* is within an enabled pause and resumes automatically at its end.\n* A **Telegram** message is sent exactly at the **start** and **end** of each pause (needs a Telegram instance, see below). If the adapter starts while a pause is already active, only the *end* message is sent.\n* Editable from the settings page **and from VIS/scripts** via the `settings.*` states (e.g. `settings.pause1Start`).\n\nThe current state is shown in `status.pauseActive` and `status.pauseActiveUntil` (the master switch also drives `status.pauseActive`).\n\n#### Switching supervision\n\nAfter switching, the adapter can verify that the switch **actually** reached the on and off\nstate, and report one of three results per feeding:\n\n| Result | Meaning | Message |\n|--------|---------|---------|\n| ✅ success | switch turned on and off as expected | \"Feeding triggered for x s.\" |\n| ❌ on failed | the switch never confirmed the ON state | \"Feeding could not be performed. Check the switch!\" |\n| ❌ off failed | it turned on, but did not turn off again | \"Fault: the feeder did not switch off!\" |\n\n> The message is sent in the configured ioBroker system language (English by default).\n\n\n* **Verify that the switch actually turns on and off** – enables the supervision.\n* **Verification timeout (seconds)** – how long to wait for the confirmation.\n* **Verification attempts** – how many staggered re-checks to perform before reporting a fault (default 3). Each attempt also reads the current state back, so delayed status feedback (e.g. Homematic radio) no longer triggers a false fault.\n\n> **Important:** supervision works only if the switch **reports its real state back**, i.e. the\n> target object is updated with `ack=true` (typical for smart plugs/relays with status feedback).\n> A plain helper boolean that nobody acknowledges would always report a fault – in that case\n> turn supervision off for this switch.\n\nThe result is also stored in the `status.lastResult` (text) and `status.error` (boolean) data points, so you\ncan react to it (e.g. trigger a notification of your own).\n\n#### Telegram notifications\n\nSend the supervision messages to Telegram – configured **per switch**:\n\n* **Message language** – the language of all outgoing texts for this switch (Telegram, Sayit and\n  the feeding announcement): *System language* (the ioBroker system language) or a specific\n  language. The status data points are not affected.\n* **Telegram instance** – pick one of the installed `telegram.*` instances (or *None* to\n  disable Telegram for this switch). If none is installed, the field tells you so.\n* **Telegram recipient (optional)** – a specific user/chat name as configured in the telegram\n  adapter; leave empty to send to all configured recipients.\n* **Checkboxes** – choose which messages to send: successful feeding, could-not-feed, and/or\n  switch-off fault.\n\nThe **winter-pause reminders** (if enabled, see *Winter pause*) are sent to the same Telegram\ninstance, independently of these supervision checkboxes.\n\nSee [Telegram notifications](#8-telegram-notifications) for the full setup.\n\n#### Sayit notifications\n\nSpeak the same supervision messages through a **Sayit (text-to-speech)** instance – configured\n**per switch**, independently of Telegram (both can be active at the same time):\n\n* **Sayit instance** – pick one of the installed `sayit.*` instances (or *None* to disable Sayit\n  for this switch). If none is installed, the field tells you so.\n* **Volume (0–100, optional)** – the speaking volume for this switch; leave it empty to use the\n  Sayit instance's own default.\n* **Test announcement** – next to the instance selection: speaks a short test text through the\n  selected instance so you can check the audio output right away, without waiting for a feeding.\n* **Checkboxes** – choose which messages to speak: successful feeding, could-not-feed, and/or\n  switch-off fault (the same three as Telegram, but selected separately here).\n\nThe spoken text uses the **Message language** selected in the Telegram section above.\n\n#### Feeding announcement\n\nAnnounce an upcoming feeding a configurable time in advance, via Telegram and/or Sayit:\n\n* **Announce feeding in advance** – turns the announcement on.\n* **Lead time (minutes)** – how long before the feeding the announcement is sent (e.g. `5`).\n* **Announce via Telegram** / **Announce via Sayit** – the channel(s) used for the announcement\n  (each needs its instance configured above).\n\nThe announcement is planned together with each feeding. If, at the announcement time, the feeding\nwould be **blocked or paused** (night, temperature, oxygen or a feeding pause), the announcement\nis skipped, so it never promises a feeding that will not happen. Manual feedings (the *Feed now*\nbutton / `feedFor`) have no lead time and are not announced.\n\n### 5.4 Relay board tab (optional)\n\nThis tab only appears when the switch's **This switch uses the Automatic-Feeder relay board**\ntoggle is enabled in the general settings (see [5.1](#switches)). One relay board belongs to one\nswitch (feeding station). The\nboard is an ESP32 with three timer buttons (S1–S3) and its own web interface, reached over your\nnetwork on **port 80**. The adapter **configures** the board, **shows its status** and – by\ndefault – **triggers the feeding through the board** (see *Feed primarily through the relay\nboard* below), so the board runs its own countdown, shows it on its display and switches its\nrelay off again itself.\n\n> **Note:** The Automatic-Feeder relay board is developed in parallel as a **separate project**.\n> The adapter works fully without it – the board is an optional, convenient add-on. Because it\n> evolves independently, some of its details may change independently of the adapter.\n\n* **Board address (IP or mDNS host)** – e.g. `192.168.1.50` or `feeder.local`. A fixed IP is the\n  most reliable; mDNS (`.local`) only works if your host system can resolve it. A `:port` suffix\n  is allowed but usually not needed (default `80`).\n* **Feed primarily through the relay board (fallback: Shelly directly)** – on by default. When on,\n  a feeding is triggered through the board's web interface (`POST /api/trigger`) for exactly the\n  computed duration, so the **board itself** runs the countdown, shows it on its OLED and switches\n  its relay off again. Only when the board **cannot be reached** does the adapter fall back to\n  switching the target (Shelly) object directly – the same way non-board switches work. This way\n  the board's display and log always reflect the real feeding. Turn it off to always switch the\n  Shelly directly (the old behaviour). The path actually used is written to `relay.lastTriggerPath`\n  (`board`/`direct`), added to the success message and the log. Both the board **and** the target\n  are checked before a feeding counts as done, and a safety back-stop forces the board off should\n  it ever fail to switch off on its own.\n* **Test connection & fetch times** – contacts the board once. A green *Connected* chip and the\n  board's host/IP/firmware confirm a working connection; the three button feeding times are then\n  read from the board into the fields below. A red *Not connected* chip shows the error. This also\n  runs **automatically when you open the tab** (if an address is configured), so the status,\n  system overview and button times load without a click.\n* **Button feeding times (seconds)** – the feeding time of each button **S1**, **S2** and **S3**\n  (1–600 s). Because these are **also editable on the board's own web interface**, always\n  *fetch* them first, then adjust them.\n* **Save times to board** – writes the three values to the board.\n* **Restart board** – restarts the ESP32 via its API (`POST /api/reboot`). After a confirmation\n  prompt the board reboots and is offline for a few seconds, then comes back automatically.\n\nAt the bottom of the tab, a **System overview** shows the board's live system data after a\nsuccessful connection test (the *Test connection & fetch times* button): firmware version and\nbuild, host name, IP address, Wi-Fi network, signal strength (dBm), MAC address, uptime, free\nmemory and the last reset reason (shown in plain words, e.g. “Software”).\n\nThe connection is also mirrored into the object tree and refreshed every 60 s – see the\n`relay.*` data points in [section 6](#6-objects--data-points).\n\n---\n\n## 6. Objects / data points\n\n> **Note:** All timestamp data points are shown in the **system's local timezone** (format `DD.MM.YYYY HH:MM:SS`, e.g. `01.07.2026 16:20:00`). For VIS and scripts every timestamp additionally has a **numeric twin** ending in `…Ts` (Unix time in **milliseconds**, `0` = none) — ideal for countdowns and time bars without any string parsing, and independent of the display format.\n\nThe adapter creates the following states under its namespace\n(`automatic-feeder.<instance>.`).\n\n**Global**\n\n| Data point | Type | Meaning |\n|------------|------|---------|\n| `info.connection` | boolean (ro) | Adapter is running and the configuration is valid. |\n| `info.feeds` | string (ro) | The central **feed list** as JSON (each food type with name, vendor, pellet size, nutrition and offer link) — for VIS/widgets to render the list without reading the instance config. |\n\n**Per switch, under `switches.<id>.`** (`<id>` is an internal id like `sw-0`)\n\nDirectly under the switch there is the manual trigger and two sub-channels:\n\n* **`status`** (`switches.<id>.status.*`) – the read-only status data points listed below.\n* **`settings`** (`switches.<id>.settings.*`) – an **editable** mirror of this switch's\n  configuration. Writing a new value there (from VIS or a script) changes the configuration and\n  restarts the instance so the change takes effect. A few derived fields are read-only\n  (e.g. `winterWindow`).\n* **`relay`** (`switches.<id>.relay.*`) – present only when this switch uses a relay board; the\n  read-only relay-board status data points listed at the end of the table.\n\n| Data point | Type | Meaning |\n|------------|------|---------|\n| `feedNow` | boolean (rw) | Write `true` to trigger a manual feeding. |\n| `feedFor` | number (rw) | Write a duration in **seconds** to trigger **one feeding with exactly that duration** — no configuration change, no restart. Resets to `0` after execution. |\n| `status.feedingActive` | boolean (ro) | A feeding is running right now. |\n| `status.feedingEndsTs` | number (ro) | End of the **running** feeding as Unix time in ms (`0` = not feeding) — for a live runtime countdown (e.g. 15 → 0 s) in VIS. |\n| `status.feedingDurationSec` | number (ro) | Total duration of the **running** feeding in seconds (`0` = not feeding) — lets a VIS widget draw an exact progress ring next to the countdown. |\n| `status.lastFeeding` | string (ro) | Timestamp of the last feeding. |\n| `status.lastFeedingTs` | number (ro) | Last feeding as Unix time in ms (`0` = none yet). |\n| `status.nextFeeding` | string (ro) | Timestamp of the next planned feeding. |\n| `status.nextFeedingTs` | number (ro) | Next planned feeding as Unix time in ms (`0` = nothing planned). |\n| `status.blocked` | boolean (ro) | The last attempt was blocked. |\n| `status.blockReason` | string (ro) | Why it was blocked (night / temperature / oxygen), in the system language. |\n| `status.blockReasonCode` | string (ro) | The block reason as a **stable machine-readable code** (e.g. `blockNight`, `blockWaterBelow`, `blockPauseManual`; empty = not blocked) — for icon/colour logic in VIS, independent of the language. |\n| `status.lastResult` | string (ro) | Result text of the last feeding attempt. |\n| `status.error` | boolean (ro) | The last attempt had a switching fault. |\n| `status.winterActive` | boolean (ro) | The winter pause is currently active. |\n| `status.winterLastStartReminder` | string (ro) | Date of the last sent \"winter starts\" reminder. |\n| `status.winterLastEndReminder` | string (ro) | Date of the last sent \"winter ends\" reminder. |\n| `status.pauseManual` | boolean (ro) | The manual master pause (*Suspend feeding now* / `settings.pauseNow`) is on. |\n| `status.pauseActive` | boolean (ro) | A one-off feeding pause is currently active. |\n| `status.pauseActiveUntil` | string (ro) | End of the currently active feeding pause (empty if none). |\n| `status.pauseActiveUntilTs` | number (ro) | End of the active feeding pause as Unix time in ms (`0` = none). |\n| `status.dynamicAvgTemperature` | number (ro) | Averaged temperature used by dynamic feeding. |\n| `status.dynamicRate` | number (ro) | Q10 rate factor currently applied by dynamic feeding. |\n| `status.dynamicIntervalMin` | number (ro) | Currently computed dynamic interval (minutes). |\n| `status.dynamicDurationSec` | number (ro) | Currently computed dynamic duration (seconds). |\n| `status.airTemperature` | number (ro) | This switch's own air-temperature source value. |\n| `status.waterTemperature` | number (ro) | This switch's own water-temperature source value (feeding-zone / shallow sensor). |\n| `status.waterTemperatureDeep` | number (ro) | This switch's optional deep water-temperature sensor value. |\n| `status.waterStratification` | number (ro) | Temperature difference shallow − deep (only with two water sensors). |\n| `status.oxygen` | number (ro) | This switch's own dissolved-oxygen source value. |\n| `status.ammonia` | number (ro) | This switch's own ammonia (NH₃/NH₄) source value. |\n| `status.nitrite` | number (ro) | This switch's own nitrite (NO₂) source value. |\n| `status.fishTotalWeight` | number (ro) | Feeding-amount model: estimated total fish weight (g). |\n| `status.feedPercentToday` | number (ro) | Feeding-amount model: feeding percentage for the current water temperature (%). |\n| `status.feedTargetGramsToday` | number (ro) | Feeding-amount model: recommended food amount per day (g). |\n| `status.feedingsPerDayToday` | number (ro) | Feeding-amount model: number of feedings planned for today. |\n| `status.feedTargetPortionGrams` | number (ro) | Feeding-amount model: recommended amount per single feeding (g) = daily amount ÷ feedings (after cap / water-quality reduction). |\n| `status.feedTargetSecondsToday` | number (ro) | Feeding-amount model (control mode): total motor run-time per day (s) to dispense the amount. 0 when control is off. |\n| `status.feedEffectiveDurationSec` | number (ro) | Feeding-amount model (control mode): duration per feeding it currently drives (s). 0 when control is off. |\n| `status.dispenseRate` | number (ro) | Feeding-amount model: this switch's calibrated dispense rate (g/s). |\n| `status.activeFeedName` | string (ro) | Currently loaded feed: name (empty when none selected). |\n| `status.activeFeedVendor` | string (ro) | Currently loaded feed: vendor / dealer. |\n| `status.activeFeedSize` | number (ro) | Currently loaded feed: pellet size (mm). |\n| `status.activeFeedProtein` | number (ro) | Currently loaded feed: crude protein (%). |\n| `status.activeFeedFat` | number (ro) | Currently loaded feed: crude fat (%). |\n| `status.activeFeedFibre` | number (ro) | Currently loaded feed: crude fibre (%). |\n| `status.activeFeedAsh` | number (ro) | Currently loaded feed: crude ash (%). |\n| `status.activeFeedUrl` | string (ro) | Currently loaded feed: offer / purchase link (optional). |\n| `status.sunrise` / `status.sunset` | string (ro) | Calculated sunrise/sunset for this switch's location (astronomical window). |\n| `status.sunriseTs` / `status.sunsetTs` | number (ro) | Sunrise/sunset as Unix time in ms — e.g. for a day-progress bar in VIS. |\n| `relay.connected` | boolean (ro) | The relay board configured for this switch is reachable (only when this switch uses a relay board). |\n| `relay.info` | string (ro) | Relay board identity (host / IP / firmware) from the last successful poll. |\n| `relay.active` | boolean (ro) | The relay board's timer is currently running. |\n| `relay.remaining` | number (ro) | Seconds remaining on the relay board's running timer. |\n| `relay.lastTriggerPath` | string (ro) | How the last feeding was triggered for this switch: `board` (through the relay board) or `direct` (Shelly switched directly, e.g. board unreachable). |\n\nYou can use these in VIS, scripts or other adapters – for example show `status.nextFeeding` on a\ndashboard, or react on `status.error = true` to send your own alarm.\n\n---\n\n## 7. Examples / recipes\n\n**Koi pond, twice a day, only when warm enough**\n* Mode *Fixed times* → `08:00`, `18:00`; duration `6` s.\n* On the switch tab, under *Temperature & oxygen sources*, enable *Water temperature* and pick\n  the sensor; then *Block by water temperature* → *Block if below* `8` °C (no feeding when cold).\n* Under *Restrictions*, enable *Restrict feeding to the astronomical day window* so nothing is\n  fed after dark.\n\n**Aviary, only during daylight (astronomical window)**\n* Mode *Interval within a time window* → interval `90` min; duration `3` s.\n* Under *Restrictions*, enable the astronomical window with offsets `30` / `30` min → feeding\n  runs from 30 min after sunrise to 30 min before sunset, following the seasons automatically.\n\n**Koi pond, temperature-adaptive (dynamic feeding)**\n* On the switch tab, under *Temperature & oxygen sources*, enable *Water temperature* and pick the sensor.\n* Then open *Dynamic feeding*, enable it, source *Water temperature*.\n* Reference `20` °C, Q10 `2.2`, base interval `60` min (min `30`, max `480`), base duration `5` s\n  (min `2`, max `15`). It then feeds more often and a little more when warm, and less when cold.\n\n**Winter break for the pond**\n* On the switch tab open *Winter pause*, enable it, set *Winter start* `01.11` and *Winter end*\n  `15.03`, mode *Suspend feeding*.\n* Optionally tick the reminders so you get a Telegram note a few days before start/end.\n\n**Quarantine after restocking (feeding pause)**\n* On the switch tab open *Feeding pauses*, tick *Pause 1* and set *Start* `15.07.2026 08:00`,\n  *End* `22.07.2026 18:00` → no feeding at all in that window, then it resumes automatically.\n* With a Telegram instance configured you get a message at the start and the end of the pause.\n\n**Suspend feeding right now (master switch)**\n* On the switch tab open *Feeding pauses* and turn on *Suspend feeding now* – or write `true` to\n  `automatic-feeder.0.switches.sw-0.settings.pauseNow` from a VIS switch.\n* All feeding stops immediately (overriding every mode) until you turn it off again; each toggle\n  sends a Telegram message. `status.pauseManual` shows the live state.\n\n**Manual extra portion from a VIS button**\n* Put a button in VIS that writes `true` to `automatic-feeder.0.switches.sw-0.feedNow`.\n* Or use a slider/number field that writes the **seconds** to\n  `automatic-feeder.0.switches.sw-0.feedFor` → feeds **once with exactly that duration**\n  (no configuration change, no restart; the state resets to `0` afterwards).\n* Optionally set *Manual trigger ignores all blocks* so it always feeds.\n\n---\n\n## 8. Telegram notifications\n\n1. Install and configure the **telegram** adapter (create a bot with @BotFather, enter the\n   token, start a chat with your bot). Make sure the telegram instance is **running**.\n2. In a automatic-feeder **switch tab**, open **Telegram notifications**:\n   * Select your **Telegram instance** from the dropdown (e.g. `telegram.0`).\n   * Optionally enter a **recipient** (the user/chat name shown in the telegram adapter); leave\n     empty to notify everyone.\n   * Tick the messages you want: *successful feeding*, *could-not-feed*, *switch-off fault*.\n3. Save. From now on the chosen supervision results are pushed to Telegram (prefixed with the\n   switch name). This requires *Switching supervision* to be enabled for that switch.\n4. The **winter-pause reminders** use the same Telegram instance and recipient. They are\n   controlled in the *Winter pause* section (days before start/end and the reminder hour) and do\n   **not** require supervision to be enabled.\n\n---\n\n## 9. Troubleshooting & FAQ\n\n**The settings page is blank / white.**\nReload the browser with **Ctrl+Shift+R** (the admin may have cached an old page). If it\npersists, restart the instance and reopen the settings.\n\n**The new icon / a change does not show up.**\nBrowser cache – hard-reload with **Ctrl+Shift+R**.\n\n**Nothing gets fed.**\nCheck, in order: the switch is **Active**; a **switch object** is selected; the **schedule** is\nvalid (`status.nextFeeding` shows a time); it is not **blocked** (look at `status.blocked` / `status.blockReason`);\nthe **astronomical window** is not excluding the time; set the instance **log level** to `debug`\nand watch the log.\n\n**It never feeds at night although I want it to.**\nDisable *Restrict feeding to the astronomical day window* for that switch, or adjust its sunrise/\nsunset offsets. If the astronomical window is enabled but the switch has no valid coordinates,\nits window guard stays inactive and a warning is logged.\n\n**Supervision always reports a fault.**\nYour switch object probably does not report its real state back (`ack=true`). Either use a\nswitch with status feedback, or disable *Switching supervision* for that switch.\n\n**Dynamic feeding does not change anything.**\nMake sure the selected temperature source (water or air) is enabled on the switch tab\n(*Temperature & oxygen sources*) and delivers values. Right after a restart the moving average is still filling up, so it starts from\nthe base values. Watch `status.dynamicAvgTemperature` and `status.dynamicIntervalMin`.\n\n**Dynamic feeding is enabled but nothing is ever fed (`status.nextFeeding` is empty).**\nThe **base interval or the max interval is 0** (or the time window is invalid), so no interval can be computed – `status.blockReason` then shows a hint. Set a base interval and a max interval greater than 0 (and a valid window). Note: leaving *both* the min and max interval at 0 also forces the result to 0.\n\n**Nothing is fed although it is not winter (or it feeds although it should pause).**\nCheck the *Winter pause* dates (`Winter start` / `Winter end`, format dd.mm) and the mode. The\n`status.winterActive` data point shows whether the pause is currently active.\n\n**The address search says the instance must be running.**\nStart the automatic-feeder instance – the geocoding runs in the backend.\n\n**Telegram messages do not arrive.**\nIs a Telegram instance selected on the switch tab? Is the telegram adapter configured and\nrunning? Is at least one message type ticked, and is *Switching supervision* enabled?\n\n---\n\n## 10. Logging & debugging\n\nThe adapter logs on the standard ioBroker levels. To see detailed messages, raise the instance\nlog level (Instances → automatic-feeder.x → log level) to **debug** or **silly**:\n\n* **error** – failures that need attention (e.g. a write to the switch failed).\n* **warn** – misconfiguration (no coordinates, invalid schedule …).\n* **info** – milestones (startup, a feeding executed or blocked, manual trigger).\n* **debug** – detailed flow (scheduling decisions, temperature updates, geocoding, on/off\n  values, verification confirmed/timeout).\n* **silly** – very verbose tracing (every timer, every block check, every state change).\n\n---\n\n## 11. Dynamic feeding — background & sources\n\nFish (koi, goldfish, pond carp) are **poikilothermic (ectothermic)**: their metabolism follows the\nwater temperature. As a rule of thumb the metabolic rate roughly **doubles for every +10 °C**, which\nis exactly the **Q10 coefficient** (typically 2–3) this adapter uses — so feeding more often and a\nlittle more when it is warm, and less when it is cold, is physiologically justified.\n\n**Practical temperature guidance (koi/pond fish):**\n\n* **below ~4–5 °C** – do not feed (use the *Winter pause*).\n* **~4–10 °C** – barely active; feed rarely if at all, easily digestible (wheat-germ) food.\n* **~10–15 °C** – reduced feeding; the immune system is still weak (~12 °C).\n* **~15–25 °C** – optimal growth range, full feeding.\n* **above ~28 °C** – dissolved **oxygen** becomes the limiting factor → the O₂ block is useful here.\n\n**Where to measure, and why a second sensor:** the temperature that matters is the water the fish\nactually occupy (the **feeding zone**), *not* the surface (which can be several degrees off). In a\npond that is mixed by a running pump, or a shallow pond, one well-placed sensor is enough. Only in a\n**deep, unmixed pond** does the water stratify: above 4 °C the warm water sits on top (colder below);\nbelow 4 °C it inverts, leaving a ~4 °C refuge near the bottom. There a **second (deep) sensor** adds\nvalue — for safety (feed by the coldest layer), for a seasonal shallow/deep switch, and to make the\nstratification visible (`status.waterStratification`). For most ponds it is optional.\n\n**Sources / further reading:**\n\n* Volkoff H. & Rønnestad I. (2020): *Effects of temperature on feeding and digestive processes in fish.* Temperature 7(4):307–320. <https://pubmed.ncbi.nlm.nih.gov/33251280/>\n* K.O.I. – *Water Temperature and Koi.* <https://koiorganisationinternational.org/koi-articles/water-temperature-and-koi>\n* K.O.I. – *The Science behind Cold Water in Koi Ponds.* <https://koiorganisationinternational.org/koi-articles/science-behind-cold-water-koi-ponds>\n* Pond Informer – *Koi feeding guide.* <https://pondinformer.com/koi-feeding-guide/>\n\n> These figures are general guidance for koi/pond fish, not a substitute for observing your own\n> animals. Adjust the reference temperature, Q10, limits and thresholds to your species and setup.\n\n## Changelog\n<!--\n\tPlaceholder for the next version (at the beginning of the line):\n\t### **WORK IN PROGRESS**\n-->\n\n### 1.18.4 (2026-09-12)\n* (ssbingo) Maintenance: added **Node.js 26** to the CI test matrix (issue #31; recommended `[22.x, 24.x, 26.x]`) and updated the `@iobroker/testing` devDependency to 6.x (repository checker S0064). No functional changes; minimum Node.js stays 22\n\n### 1.18.3 (2026-09-06)\n* (ssbingo) Maintenance: updated `@iobroker/adapter-core` to 3.4.3 (repository checker W0034). No functional changes\n\n### 1.18.2 (2026-09-06)\n* (ssbingo) Maintenance: dependency updates merged via Dependabot — `@iobroker/adapter-react-v5` 8.3.3, `@tsconfig/node22` 22.0.6 and `dayjs` 1.11.23 (MUI stays 6 as `adapter-react-v5` still requires it); the admin UI was rebuilt. No functional changes\n\n### 1.18.1 (2026-09-03)\n* (ssbingo) **Fix – Sayit announcement.** The pre-feeding announcement via **Sayit** now reliably speaks the **current** text: it uses Sayit's documented **`say` message command** (`sendTo`) instead of writing the `tts.text` / `tts.volume` states, which could re-play a **stale/old** announcement (e.g. a previous test message) and raced the separate volume write. Telegram announcements were never affected\n\n### 1.18.0 (2026-09-01)\n* (ssbingo) **Central feed list** with its own **Feed list** tab (issue #26). Maintain your food types centrally — **name, vendor/dealer, pellet size (mm)** and the four standard **nutritional values** (crude protein / fat / fibre / ash %), plus an optional **offer/purchase link**. In each switch tab you pick, under **Currently loaded feed**, which feed is currently filled into that feeder\n* (ssbingo) This **replaces the per-switch feed profiles** from 1.17.0 (issue #25): existing profiles are automatically merged into the central list, each switch's calibrated **dispense rate stays per switch** (`dispenseGramsPerSec`), and its `activeFeed` now references a feed by **id**\n* (ssbingo) New states: **`info.feeds`** (the list as JSON, for VIS/widgets) and per switch **`status.activeFeedName` / `activeFeedVendor` / `activeFeedSize` / `activeFeedProtein` / `activeFeedFat` / `activeFeedFibre` / `activeFeedAsh` / `activeFeedUrl`**. The active feed is selectable from VIS via the writable `settings.activeFeed` (feed id)\n* (ssbingo) Documentation updated in all 11 languages and in the German PDF handbook\n\n### 1.17.0 (2026-09-01)\n* (ssbingo) **Feed profiles for the feeding-amount model.** Instead of a single rate you can define several **named feed types** per switch, each with its own calibrated **dispense rate (g/s)** (e.g. a 3 mm all-round and a 6 mm summer pellet); the **active** profile's rate drives Phase B. Manage the list in the admin (the calibration helper fills the active profile), switch the active feed from the VIS widget via the writable `settings.activeFeed` state\n* (ssbingo) New states **`status.dispenseRate`** (effective g/s) and **`status.activeFeedName`**. Backward compatible — with no profile defined, the single dispense rate is used\n* (ssbingo) Documentation updated in all 11 languages and in the German PDF handbook\n\n### 1.16.0 (2026-08-31)\n* (ssbingo) **Feeding-amount model – high-temperature throttling** (issue #23). The percentage table no longer stays at 3 % above 23 °C: the top band now ends at 28 °C and two new editable bands throttle the amount in the heat – **1.5 % at 28–30 °C** and **0.5 % above 30 °C** (the temperature response peaks around 24–26 °C and falls off above it). Behaviour up to 28 °C is unchanged; existing switches get the new bands with sensible defaults\n* (ssbingo) **Feeding-amount settings are now editable from VIS/scripts** (issue #24): the model's config (`amountModelEnabled`, fish counts, temperature percentages, `amountControlEnabled`, `dispenseGramsPerSec`, `feedDailyMaxGrams`) is mirrored as writable `switches.<id>.settings.*` states, so a VIS widget can edit them\n* (ssbingo) New states **`status.feedingsPerDayToday`** and **`status.feedTargetPortionGrams`** (recommended grams per single feeding = daily amount ÷ feedings, after cap / water-quality reduction)\n* (ssbingo) Documentation updated in all 11 languages and in the German PDF handbook\n\n### 1.15.1 (2026-08-31)\n* (ssbingo) Fix (relay board): a **false \"did not switch off\" fault** could be reported for a board-fed switch even though it fed and switched off correctly. The **target object (e.g. the Shelly) is now authoritative** for the off check — a fault (and the Telegram/Sayit notification) is only raised when the target is genuinely still on. If the target is off but the board's `/api/status` cannot confirm its relay off in time (a brief hiccup, or its countdown ending a moment later), the adapter now logs a **warning** instead of a fault; the safety back-stop still forces the board off\n\n### 1.15.0 (2026-08-31)\n* (ssbingo) **Water-quality limits (Phase C).** New optional per-switch **ammonia (NH₃/NH₄)** and **nitrite (NO₂)** sources – \"if these values rise, feed less\" (from the feeder manual). Each has a **warn threshold** that **reduces the daily amount** (only in the feeding-amount control mode) and a **max threshold** that **blocks feeding entirely** in every mode\n* (ssbingo) New states **`status.ammonia`** and **`status.nitrite`** mirror the source values; when a max threshold is exceeded the block reason (`blockAmmoniaHigh` / `blockNitriteHigh`) appears in `status.blockReason`. There are no universal safe limits – set the thresholds from your own test kit\n* (ssbingo) Documentation updated in all 11 languages and in the German PDF handbook\n\n### 1.14.2 (2026-08-31)\n* (ssbingo) Fix (admin UI, **dark mode**): the configuration page is now wrapped in the theme the admin has already resolved, so the **tab labels are visible immediately in dark mode**. Previously they rendered as dark text on a dark background (only revealed on hover or after opening a tab), because the tabs inherited the outer theme that is fixed at page-load time. Applies on first open and when you toggle the theme\n\n---\n\n[Older changelogs can be found there](CHANGELOG_OLD.md)\n\n## Documentation\n\n- 🇩🇪 [Deutsche Dokumentation](doc/de/README.md)\n- 🇷🇺 [Документация на русском](doc/ru/README.md)\n- 🇳🇱 [Nederlandse documentatie](doc/nl/README.md)\n- 🇫🇷 [Documentation française](doc/fr/README.md)\n- 🇮🇹 [Documentazione italiana](doc/it/README.md)\n- 🇪🇸 [Documentación en español](doc/es/README.md)\n- 🇵🇱 [Dokumentacja polska](doc/pl/README.md)\n- 🇵🇹 [Documentação portuguesa](doc/pt/README.md)\n- 🇺🇦 [Документація українською](doc/uk/README.md)\n- 🇨🇳 [简体中文文档](doc/zh-cn/README.md)\n\n## License\nMIT License\n\nCopyright (c) 2026 ssbingo <s.sternitzke@online.de>\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n","readmeFilename":"README.md"}