@homoran In den DP sind die False & True Werte hinterlegt. In den oben gezeigten Beispiel durchläuft das Script die DP komplett unterschiedlich. In der verkürzten Version wird false einfach übergangen.
Weis jemand hier Rat?
Gruß Mario
@homoran In den DP sind die False & True Werte hinterlegt. In den oben gezeigten Beispiel durchläuft das Script die DP komplett unterschiedlich. In der verkürzten Version wird false einfach übergangen.
Weis jemand hier Rat?
Gruß Mario
So.. mit etwas Verspätung habe ich das Problem etwas eingekreist.
Das ergibt bei durchlaufen irgendwie das falsche.
javascript.0 22:51:51.224 info script.js.Script_Sammlung.2024-05-25_Variable: 1_false
javascript.0 22:52:01.226 info script.js.Script_Sammlung.2024-05-25_Variable: 2_false
javascript.0 22:52:01.227 info script.js.Script_Sammlung.2024-05-25_Variable: 110-3111
Die Variable ist auf False, trotzdem durchläuft der den Part falls -mache-
?
Erst wenn ich den "langen Weg" den Wert abfrage, dann kommt das richtige Ergebnis.!
Bildschirmfoto 2024-06-25 um 22.57.43.png
Dann wird falls -sonst-
genutzt.
javascript.0 22:57:22.543 info script.js.Script_Sammlung.2024-05-25_Variable: 1_false
javascript.0 22:57:32.545 info script.js.Script_Sammlung.2024-05-25_Variable: 3_false
javascript.0 22:57:32.546 warn script.js.Script_Sammlung.2024-05-25_Variable: 110-3121
Die Abfrage mit der Helligkeit geht auch nicht ohne die Einfassung in den =
Rahmen
Wurde etwas in der Verarbeitung geändert ?
Nabend,
irgendwie klappen einige meine Skripte nicht mehr seit dem Update auf das aktuelle JS.
Die Prüfung im zweiten Falls -NICHT- Wert von Objekt-ID: Helligkeit >600lx
sowie die Wert von Objekt-ID: Li Automatik Xmas Alexija
werden ohne Fehler übergangen. Somit schließt sich aktuell nur das linke Rollo.
Wenn ich die JS-Ansicht anschalte, sieht man auch nur einen Val Wert an der Stelle.
// 130-3
// Abends, < 300 Lux spätestens 18:20 schließen
schedule("*/5 16-19 * * *", async () => {
console.info('130-3');
// Das rechte Fenster wird immer geschlossen. Das Linke kann durch Lüften noch offen sein.
if (getState('alias.0.Raum.Zimmer_A.Rollo.Rollo_Li.position').val != '200') {
console.info('130-31');
if (compareTime('18:20', 'null', '>') || !getState('0_userdata.0.Bool_Werte.Sonne.Helligkeit.Helligkeit_00600lx').val) {
console.info('130-311');
if (getState('0_userdata.0.Bool_Werte.Licht.XmasAutomatik.LiAutoXmasAlexija').val) {
console.warn('130-3111');
await AL_RolloLinks('200');
await fNachricht('Xmas Abends', '130-3111');
} else {
console.warn('130-3121');
await AL_AlleRollos('200');
await fNachricht('Abends', '130-3121');
}
}
}
So nimmt er den Wert an und die das Falls Element klappt im Programm:
Klappt die verkürzte Blockweise mit Falls - Nicht - Wert von Objekt-ID nicht mehr?
Ich dachte es gäbe eine andere Möglichkeit...
Danke für die Info.
Hallo,
ich habe aus den Untiefen des Netz, ein Script für die Anzeige der Down- Upload Raten der Fritzbox per tr-064.0 gefunden.
Soweit so gut. nur bekomme ich nun unendlich viele Datensätze im Log. ..
tr-064.0
2024-06-23 14:24:06.051 info {"NewTotalNumberSyncGroups":"1","NewSyncGroupName":"sync_dsl","NewSyncGroupMode":"VDSL","Newmax_ds":"12824625","Newmax_us":"2548125","Newds_current_bps":"1931,7314,3687,2444,2310,2240,3820,13875,14857,23439,54834,12543,8688,4796,3960,1226,497,896,2353,784","Newmc_current_bps":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0","Newus_current_bps":"1118,3251,2627,2594,2452,2346,4321,17131,12809,8726,19851,39991,2352,3258,4737,1113,653,894,1161,965","Newprio_realtime_bps":"709,1540,684,181,890,2050,3674,15481,11139,5726,9817,37168,2040,2249,2716,442,192,273,965,843","Newprio_high_bps":"93,320,95,211,113,227,181,671,493,392,264,325,129,208,163,270,95,228,53,0","Newprio_default_bps":"316,1391,1848,2202,1449,69,466,979,1177,2608,9770,2498,183,801,1858,401,366,393,143,122","Newprio_low_bps":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"}
tr-064.0
2024-06-23 14:24:00.209 info {"NewTotalNumberSyncGroups":"1","NewSyncGroupName":"sync_dsl","NewSyncGroupMode":"VDSL","Newmax_ds":"12824625","Newmax_us":"2548125","Newds_current_bps":"3687,2444,2310,2240,3820,13875,14857,23439,54834,12543,8688,4796,3960,1226,497,896,2353,784,5180,2053","Newmc_current_bps":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0","Newus_current_bps":"2627,2594,2452,2346,4321,17131,12809,8726,19851,39991,2352,3258,4737,1113,653,894,1161,965,3943,2290","Newprio_realtime_bps":"684,181,890,2050,3674,15481,11139,5726,9817,37168,2040,2249,2716,442,192,273,965,843,2564,2175","Newprio_high_bps":"95,211,113,227,181,671,493,392,264,325,129,208,163,270,95,228,53,0,58,0","Newprio_default_bps":"1848,2202,1449,69,466,979,1177,2608,9770,2498,183,801,1858,401,366,393,143,122,1321,115","Newprio_low_bps":"0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0"}
Wie kann ich den Code ändern, ohne den ganzen Adapter auf debug zu stellen?
const NewByteReceiveRate = '0_userdata.0.Devices.FritzBox.NewByteReceiveRate';
const NewByteSendRate = '0_userdata.0.Devices.FritzBox.NewByteSendRate';
const L1DownMaxRate = '0_userdata.0.Devices.FritzBox.Layer1DownstreamMaxBitRate';
const L1UpMaxRate = '0_userdata.0.Devices.FritzBox.Layer1UpstreamMaxBitRate';
const ReceiveR = '0_userdata.0.Devices.FritzBox.Charts.Receive';
const SendR = '0_userdata.0.Devices.FritzBox.Charts.Send';
createState(NewByteReceiveRate, 0, {type: 'number', read: true, write: true});
createState(NewByteSendRate, 0, {type: 'number', read: true, write: true});
createState(L1DownMaxRate, 0, {type: 'number', read: true, write: true});
createState(L1UpMaxRate, 0, {type: 'number', read: true, write: true});
createState(ReceiveR, 0, {type: 'number', unit: 'MBit/s', read: true, write: true});
createState(SendR, 0, {type: 'number', unit: 'MBit/s', read: true, write: true});
schedule('*/6 * * * * *', function Aktualisierung() {
setState('tr-064.0.states.command', '{"service": "urn:dslforum-org:service:WANCommonInterfaceConfig:1","action": "X_AVM-DE_GetOnlineMonitor","params": {"NewSyncGroupIndex": 0}}');
var value=getState('tr-064.0.states.commandResult').val;
if (value.indexOf('NewTotalNumber') == 2) {
var obj = JSON.parse(value);
var DownStream = obj.Newds_current_bps;
var UpStream = obj.Newus_current_bps;
var ds = DownStream.split(",");
var us = UpStream.split(",");
var wds = ds[0];
var wus = us[0];
setState(NewByteReceiveRate, wds*1);
setState(NewByteSendRate, wus*1);
setState(ReceiveR, Math.round((wds*0.000008)*100)/100);
setState(SendR, Math.round((wus*0.000008)*100)/100);
setState(L1DownMaxRate, obj.Newmax_ds*8);
setState(L1UpMaxRate, obj.Newmax_us*8);
}
});
Gruß Mario
Mit der Änderung kommt keine Fehlermeldung mehr.
var moontime = mooncalc.getMoonTimes(now, 50, 7);
var tr = moontime.rise.getHours() + ':' + moontime.rise.getMinutes();
var ts = moontime.set.getHours() + ':' + moontime.set.getMinutes();
var state = "0";
if(p > 0.05) state = "1";
if(p > 0.2) state = "2";
if(p > 0.3) state = "3";
if(p > 0.45) state = "4";
if(p > 0.55) state = "5";
if(p > 0.7) state = "6";
if(p > 0.8) state = "7";
if(p > 0.95) state = "0";
setState("0_userdata.0.Astro.Mondstand.MondPhasenText",state);
Danke.
Hallo ich habe die folgende Fehlermeldung im Log.
javascript.0 19:09:00.021 warn at Object.<anonymous> (script.js.common.000_System.010_x_Minuten.012_Mondstand_-_5min:36:5)
Das Programm klappt, es es kommt immer die Meldung. Kann mir bitte hier einer helfen, Danke.
ar mooncalc = require('suncalc');
//createState('0_userdata.0.Astro.Mondstand.MondAufgang', 0)
//createState('0_userdata.0.Astro.Mondstand.MondUntergang', 0)
//createState('0_userdata.0.Astro.Mondstand.MondSichtbar', 0, {unit: '°'})
//createState('0_userdata.0.Astro.Mondstand.MondVerdeckt', 0, {unit: '°'})
//createState("0_userdata.0.Astro.Mondstand.MondHoehe",0);
//createState("0_userdata.0.Astro.Mondstand.MondAzimut",0);
//createState("0_userdata.0.Astro.Mondstand.MondFraction",0);
//createState("0_userdata.0.Astro.Mondstand.MondPhase",0);
schedule("*/3 * * * *", async () => {
var now = new Date();
var moonpos = mooncalc.getMoonPosition(now, 50, 7);
var hm = moonpos.altitude * 180 / Math.PI;
var am = moonpos.azimuth * 180 / Math.PI + 180;
var moonillu = mooncalc.getMoonIllumination(now, 50, 7);
var f = moonillu.fraction;
var p = moonillu.phase;
var moontime = mooncalc.getMoonTimes(now, 50, 7);
var tr = moontime.rise.getHours() + ':' + moontime.rise.getMinutes();
var ts = moontime.set.getHours() + ':' + moontime.set.getMinutes();
var state = 0;
if(p > 0.05) state = 1;
if(p > 0.2) state = 2;
if(p > 0.3) state = 3;
if(p > 0.45) state = 4;
if(p > 0.55) state = 5;
if(p > 0.7) state = 6;
if(p > 0.8) state = 7;
if(p > 0.95) state = 0;
setState("0_userdata.0.Astro.Mondstand.MondPhasenText",state);
setState("0_userdata.0.Astro.Mondstand.MondHoehe",hm.toFixed(1));
setState("0_userdata.0.Astro.Mondstand.MondAzimut",am.toFixed());
setState("0_userdata.0.Astro.Mondstand.MondFraction",f.toFixed(3));
setState("0_userdata.0.Astro.Mondstand.MondPhase",p.toFixed(2));
setState("0_userdata.0.Astro.Mondstand.MondAufgang",tr);
setState("0_userdata.0.Astro.Mondstand.MondUntergang",ts);
//console.info(ts);
//console.info(tr);
//console.info(state);
});
Gruß Mario S.
Bei mir lief das Update durch. Dann kam aber die Fehlerneldung:
startInstance system.adapter.backitup.0 Adapter dependency not fulfilled on any host: required adapter "admin" has wrong version. Installed "5.3.1", required ">=6.0.0"!
admin: 6.12.0
Node.js: v18.17.1(18.18.2)
NPM: 9.6.7(9.8.1)
Auch die Installation einer älteren Version haben nichts gebracht.
Ich bekomme auch Fehlermeldungen beim Start des Scripts...
2023-11-06 22:19:29.619 error at processImmediate (node:internal/timers:476:21)
2023-11-06 22:19:29.619 error at Immediate._onImmediate (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:492:42)
2023-11-06 22:19:29.618 error at Object.<anonymous> (script.js.common.000_System.020_Events.050_Batterie_Status:126:13)
2023-11-06 22:19:29.618 error at main (script.js.common.000_System.020_Events.050_Batterie_Status:265:5)
2023-11-06 22:19:29.618 error at CheckNextLowBatt (script.js.common.000_System.020_Events.050_Batterie_Status:395:91)
2023-11-06 22:19:29.617 error Error in callback: TypeError: Cannot read properties of undefined (reading 'value')
2023-11-06 22:19:28.947 info script.js.common.000_System.020_Events.050_Batterie_Status: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
2023-11-06 22:19:28.945 info script.js.common.000_System.020_Events.050_Batterie_Status: starting Batterieüberwachung V.1.8.5
2023-11-06 22:19:28.937 info Start javascript script.js.common.000_System.020_Events.050_Batterie_Status
@pi-ter
Hi, ich habe auch Probleme..
host.deb11iobroker | 2023-04-04 07:58:26.246 | error | startInstance system.adapter.statistics.0 Adapter dependency not fulfilled on any host: required adapter "admin" has wrong version. Installed "5.3.1", required ">=5.3.2"!
Node.js: v16.19.0
NPM: 8.19.3
Admin: 6.3.5
Die Fehlermeldung ist komisch. trotz passender NodeJS und aktuellem ADMIN kommt es zu einer Fehlermeldung, dass der admin falsch sei??