Weiter zum Inhalt

JavaScript

2.5k Themen 49.8k Beiträge

Hilfe für Skripterstellung mit JavaScript

NEWS

  • Fritz!Box Daten auslesen, Gerätetraffic und Filter setzen

    Verschoben
    1
    0 Stimmen
    1 Beiträge
    279 Aufrufe
    Niemand hat geantwortet
  • Objekte dynamisch per typescript zu vis-View hinzufügen?

    1
    0 Stimmen
    1 Beiträge
    119 Aufrufe
    Niemand hat geantwortet
  • iobroker-typen einbinden für typescript

    14
    0 Stimmen
    14 Beiträge
    1k Aufrufe
    I
    @ticaki Ok, ich versuchs mal mit damit. Muss das erst mal durchschauen.
  • mqtt JSON in Datenpunkt schreiben

    6
    1
    0 Stimmen
    6 Beiträge
    517 Aufrufe
    F
    @paul53 Ich danke dir Paul ;-)
  • Script im VIS Reiter „Skript“ anlegen

    2
    0 Stimmen
    2 Beiträge
    265 Aufrufe
    M
    @exmatador Geht nur bis V1.6.0 [image: 1755550749577-1e93a2f2-1631-4d5a-81c1-cf0975cf86e7-image.png] <div id="threejs" style="width:600px; height: 400px"></div> Skripte-Reiter (function loadThree(url, onload){ var s = document.createElement('script'); s.src = url; s.onload = onload; s.onerror = e => console.error('THREE laden fehlgeschlagen:', e); document.head.appendChild(s); })( 'https://cdn.jsdelivr.net/npm/three@0.160.0/build/three.min.js', // UMD-Build function init(){ console.log('THREE geladen:', typeof THREE); // sollte "object" loggen setTimeout(function(){ const container = document.getElementById('threejs'); if (!container) { console.error('Container #threejs fehlt!'); return; } const w = container.clientWidth, h = container.clientHeight; const scene = new THREE.Scene(); const camera = new THREE.PerspectiveCamera(75, w/h, 0.1, 1000); const renderer = new THREE.WebGLRenderer({ antialias:true }); renderer.setSize(w, h); container.appendChild(renderer.domElement); const cube = new THREE.Mesh( new THREE.BoxGeometry(), new THREE.MeshBasicMaterial({ color: 0x00ff00 }) ); scene.add(cube); camera.position.z = 5; (function animate(){ requestAnimationFrame(animate); cube.rotation.x += 0.01; cube.rotation.y += 0.01; renderer.render(scene, camera); })(); },300) } ); [image: 1755550806700-800fc1f6-a07b-4e38-8f2d-33c6ad527942-image.png] Hinweis: In neueren Three-Versionen liefern CDNs oft nur ESM (three.module.js), was in VIS nicht läuft (Unexpected token export).
  • [gelöst] Selector hat nicht alle aktuellen States

    1
    0 Stimmen
    1 Beiträge
    158 Aufrufe
    Niemand hat geantwortet
  • Node.js Script in iobroker integrieren

    40
    0 Stimmen
    40 Beiträge
    9k Aufrufe
    L
    @oliverio OK ich habe mal mit Hilfe von ChatGPT die Codezeile abgeändert .then((text) => { const deviceDetails = text .trim() .split('\n') .reduce((obj, str) => { const [key, val] = str.split('='); if (key && typeof val !== 'undefined') { obj[key] = val.trim(); } return obj; }, {}); return deviceDetails; }); Jetzt läuft es. Vielen Dank
  • Wireguard Server abfragen -> Client Infos

    25
    0 Stimmen
    25 Beiträge
    3k Aufrufe
    NegaleinN
    @kuddel sagte in Wireguard Server abfragen -> Client Infos: Sollte ohne Anpassungen laufen. Danke Es läuft, mir wird in 0_userdata.0.wireguard-clients.Wireguard-JSON-History der Client gezeigt, der nach Scriptstart verbunden wurde. [image: 1753564121212-f6a3c312-e55b-4f6f-b9d4-4e15b7678df9-image.png] Aber 0_userdata.0.wireguard-clients.Wireguard-JSON bleibt leer. [image: 1753563870350-20930bb2-0aba-4331-8cf4-ce546cceba30-image-resized.png] Log vom Script 26.7.2025, 22:59:03.091 [info ]: javascript.1 (632) script.js.Netzwerk.Wireguard-Tabelle: Stopping script 26.7.2025, 22:59:03.098 [info ]: javascript.0 (606) script.js.Netzwerk.Wireguard-Tabelle: Stopping script 26.7.2025, 22:59:29.994 [info ]: javascript.0 (606) script.js.Netzwerk.Wireguard-Tabelle: start JavaScript (Javascript/js) 26.7.2025, 22:59:30.016 [info ]: javascript.0 (606) script.js.Netzwerk.Wireguard-Tabelle: registered 56 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions 26.7.2025, 23:01:24.263 [warn ]: javascript.0 (606) at Object.wireguard_history (script.js.Netzwerk.Wireguard-Tabelle:136:22) 26.7.2025, 23:01:24.263 [warn ]: javascript.0 (606) at Object.wireguard_history (script.js.Netzwerk.Wireguard-Tabelle:144:20) 26.7.2025, 23:01:24.264 [error]: javascript.0 (606) script.js.Netzwerk.Wireguard-Tabelle: Error: TypeError: Cannot read properties of null (reading 'split') 26.7.2025, 23:01:24.264 [error]: javascript.0 (606) script.js.Netzwerk.Wireguard-Tabelle: at Object.wireguard_history (script.js.Netzwerk.Wireguard-Tabelle:144:57)
  • Fehlermeldung beim Schreiben von Daten in influxdb2

    5
    0 Stimmen
    5 Beiträge
    493 Aufrufe
    S
    @homoran said in Fehlermeldung beim Schreiben von Daten in influxdb2: schreibst du direkt in die DB? warum nicht in einen DP, der vom Adapter geloggt wird? Ich habe das Programm grundsätzlich von @haus-automatisierung übernommen und mit den Bezeichnungen für meine Datenpunkte angepasst (hoffentlich richtig). Wenn ich es richtig verstanden habe, ist der Zweck, dass die Daten dann einen identischen Zeitstempel haben. Ich schau mal, wie ich den Tieout erhöhen kann. Ich würde gerne mal testen, was bei einem einzelnen Schreibbefehl passiert. Wie müsste das Script dafür in Blockly aussehen? Erhalte ich dann eine Antwort/Bestätigung von influxdb?
  • LUPUSEC Alarmanlage einbinden

    Verschoben javascript
    204
    0 Stimmen
    204 Beiträge
    71k Aufrufe
    Captain-pattyC
    @stuebi hast du noch eine Idee?
  • javascript-Adapter bindet console.log nicht ein bei require

    javascript
    13
    0 Stimmen
    13 Beiträge
    945 Aufrufe
    OliverIOO
    @axel21 Gut, workaround ist da, ich werde bei Gelegenheit selber mal experimentieren.
  • [gelöst] Problem: Abruf von Strompreisen mit JS und Axios

    16
    0 Stimmen
    16 Beiträge
    1k Aufrufe
    fuzzy1955F
    @johgre sagte in [gelöst] Problem: Abruf von Strompreisen mit JS und Axios: Das iteriert jetzt durch das ResponseArray und schreibt alle Werte mal raus. Danke nochmals! Das ResponseArray läuft super! Genau das brauchte ich
  • setStateAsync in externem js-file evtl mit require??

    javascript
    7
    0 Stimmen
    7 Beiträge
    568 Aufrufe
    OliverIOO
    @axel21 ja scopes ist schon ein Thema, was man erst nach einer weile versteht. Wer kennt schon den Unterschied zwischen var und let oder einer normalen Function oder einer Arrow Function ()-> Hier gute quellen zur Erklärung. https://javascript.info/variables https://javascript.info/closure sowie 2.15-2.17 + 6.6,6.7,6.10,6.11
  • Shelly Adapter: online DP in Script auswerten

    1
    1
    0 Stimmen
    1 Beiträge
    136 Aufrufe
    Niemand hat geantwortet
  • Skriptausführung ioBroker.javascript: CPU-Grundlast 40 %

    9
    0 Stimmen
    9 Beiträge
    790 Aufrufe
    OliverIOO
    @ceram Die Sync getState kannst du einfach umstellen durch await getStateAsync Das hat den selben Effekt. Ein echtes Sync gibtves bei JavaScript eh nie.
  • Javascript bringt Warnung

    5
    0 Stimmen
    5 Beiträge
    596 Aufrufe
    paul53P
    @fischerict sagte: kommt die Warnung nun nicht mehr Vermutlich hat der Neustart der hm-rega-Instanz das Datenpunkt-Objekt korrigiert.
  • Eigene Typescript Module schreiben

    14
    0 Stimmen
    14 Beiträge
    1k Aufrufe
    HomoranH
    @iob69 sagte in Eigene Typescript Module schreiben: @ticaki Unter der Klasse "Kalender" steht: module.exports = { Kalender}; ist das Leerzeichen gewollt und korrekt?
  • [gelöst] Wie json automatisch Datenpunkte in richtige Verz.?

    javascript
    15
    0 Stimmen
    15 Beiträge
    1k Aufrufe
    maxclaudiM
    @haus-automatisierung Die Struktur ist enorm. Sie ändert sich auch immer mal wieder, weil Neues dazu kommt und Einiges selten oder gar nicht mehr aktualisiert wird. Muss nur noch Deinen großartigen Code mit meinem kombinieren und noch etwas anpassen. Ein ganz großes und herzliches Dankeschön :-)
  • Script: HP-ILO 4 Abfrage Temperaturen und FanSpeed

    24
    1 Stimmen
    24 Beiträge
    3k Aufrufe
    David G.D
    @lucifor1976 Hab es nicht im Script angepasst. Hab die beiden vom Script angelegten DPs im Admin angepasst. Ka ob es im Skript Sinn macht. Bei dir scheint der Typ ja zu stimmen der eingetragen wird bei der ilo4 Variante und bei mir nicht. Hab gtad nochmal geschaut. Das Script schreibt in die DPs bei mir wirklich ein array. Beim 4er unter bios.links {"self":{"href":"/rest/v1/systems/1/bios/Settings"}} Beim 5er unter bios.attributes {"AcpiHpet":"Enabled","AcpiRootBridgePxm":"Enabled","AcpiSlit":"Enabled","AdjSecPrefetch":"Enabled","AdminEmail":"","AdminName":"","AdminOtherInfo":"","AdminPhone":"","AdvCrashDumpMode":"Disabled","AdvancedMemProtection":"FastFaultTolerantADDDC","AsrStatus":"Enabled","AsrTimeoutMinutes":"Timeout10","AssetTagProtection":"Unlocked","AutoPowerOn":"RestoreLastState","BootMode":"Uefi","BootOrderPolicy":"RetryIndefinitely","ChannelInterleaving":"Enabled","CollabPowerControl":"Disabled","ConsistentDevNaming":"LomsAndSlots","CustomPostMessage":"","DaylightSavingsTime":"Disabled","DcuIpPrefetcher":"Enabled","DcuStreamPrefetcher":"Enabled","Dhcpv4":"Enabled","DynamicPowerCapping":"Disabled","EmbNicAspm":"Disabled","EmbNicEnable":"Auto","EmbNicLinkSpeed":"Auto","EmbNicPCIeOptionROM":"Enabled","EmbSas1Aspm":"Disabled","EmbSas1Boot":"TwentyFourTargets","EmbSas1Enable":"Auto","EmbSas1LinkSpeed":"Auto","EmbSas1PcieOptionROM":"Enabled","EmbSata1Aspm":"Disabled","EmbSata2Aspm":"Disabled","EmbVideoConnection":"Auto","EmbeddedDiagnostics":"Enabled","EmbeddedSata":"Ahci","EmbeddedSerialPort":"Com2Irq3","EmbeddedUefiShell":"Enabled","EmsConsole":"Disabled","EnabledCoresPerProc":0,"EnergyEfficientTurbo":"Disabled","EnergyPerfBias":"MaxPerf","EnhancedProcPerf":"Disabled","EraseUserDefaults":"No","ExtendedAmbientTemp":"Disabled","ExtendedMemTest":"Disabled","F11BootMenu":"Enabled","FCScanPolicy":"CardConfig","FanFailPolicy":"Shutdown","FanInstallReq":"EnableMessaging","FlexLom1Aspm":"Disabled","HttpSupport":"Auto","HwPrefetcher":"Enabled","IODCConfiguration":"Auto","IntelDmiLinkFreq":"Auto","IntelNicDmaChannels":"Enabled","IntelPerfMonitoring":"Disabled","IntelProcVtd":"Enabled","IntelligentProvisioning":"Enabled","InternalSDCardSlot":"Enabled","IpmiWatchdogTimerAction":"PowerCycle","IpmiWatchdogTimerStatus":"IpmiWatchdogTimerOff","IpmiWatchdogTimerTimeout":"Timeout30Min","Ipv4Address":"0.0.0.0","Ipv4Gateway":"0.0.0.0","Ipv4PrimaryDNS":"0.0.0.0","Ipv4SecondaryDNS":"0.0.0.0","Ipv4SubnetMask":"0.0.0.0","Ipv6Address":"::","Ipv6ConfigPolicy":"Automatic","Ipv6Duid":"Auto","Ipv6Gateway":"::","Ipv6PrimaryDNS":"::","Ipv6SecondaryDNS":"::","LLCDeadLineAllocation":"Enabled","LlcPrefetch":"Disabled","LocalRemoteThreshold":"Auto","MaxMemBusFreqMHz":"Auto","MaxPcieSpeed":"PerPortCtrl","MemClearWarmReset":"Disabled","MemFastTraining":"Enabled","MemMirrorMode":"Full","MemPatrolScrubbing":"Enabled","MemRefreshRate":"Refreshx1","MemoryControllerInterleaving":"Auto","MemoryRemap":"NoAction","MinProcIdlePkgState":"NoState","MinProcIdlePower":"NoCStates","MixedPowerSupplyReporting":"Enabled","NetworkBootRetry":"Enabled","NetworkBootRetryCount":20,"NicBoot1":"NetworkBoot","NicBoot2":"Disabled","NicBoot3":"Disabled","NicBoot4":"Disabled","NodeInterleaving":"Disabled","NumaGroupSizeOpt":"Clustered","NvmeOptionRom":"Enabled","OpportunisticSelfRefresh":"Disabled","PciPeerToPeerSerialization":"Disabled","PciResourcePadding":"Normal","PciSlot1Bifurcation":"Auto","PciSlot2Bifurcation":"Auto","PciSlot3Bifurcation":"Auto","PciSlot5Bifurcation":"Auto","PciSlot6Bifurcation":"Auto","PciSlot7Bifurcation":"Auto","PciSlot8Bifurcation":"Auto","PersistentMemBackupPowerPolicy":"WaitForBackupPower","PostBootProgress":"Disabled","PostDiscoveryMode":"Auto","PostF1Prompt":"Delayed20Sec","PostVideoSupport":"DisplayAll","PostedInterruptThrottle":"Enabled","PowerButton":"Enabled","PowerOnDelay":"NoDelay","PowerRegulator":"StaticHighPerf","PreBootNetwork":"Auto","PrebootNetworkEnvPolicy":"Auto","PrebootNetworkProxy":"","ProcAes":"Enabled","ProcHyperthreading":"Enabled","ProcTurbo":"Enabled","ProcVirtualization":"Enabled","ProcX2Apic":"Enabled","ProcessorConfigTDPLevel":"Normal","ProcessorJitterControl":"Disabled","ProcessorJitterControlFrequency":0,"ProcessorJitterControlOptimization":"ZeroLatency","ProductId":"P21788-421","RedundantPowerSupply":"BalancedMode","RefreshWatermarks":"Auto","RemovableFlashBootSeq":"ExternalKeysFirst","RestoreDefaults":"No","RestoreManufacturingDefaults":"No","RomSelection":"CurrentRom","SataSecureErase":"Disabled","SaveUserDefaults":"No","SecStartBackupImage":"Disabled","SecureBootStatus":"Enabled","SerialConsoleBaudRate":"BaudRate115200","SerialConsoleEmulation":"Vt100Plus","SerialConsolePort":"Auto","SerialNumber":"CZJ2401PP3","ServerAssetTag":"","ServerConfigLockStatus":"Disabled","ServerName":"WILESXI-01.ad.wilke.de","ServerOtherInfo":"","ServerPrimaryOs":"","ServiceEmail":"","ServiceName":"","ServiceOtherInfo":"","ServicePhone":"","SetupBrowserSelection":"Auto","Slot1MctpBroadcastSupport":"Enabled","Slot2MctpBroadcastSupport":"Enabled","Slot3MctpBroadcastSupport":"Enabled","Slot5MctpBroadcastSupport":"Enabled","Slot6MctpBroadcastSupport":"Enabled","Slot7MctpBroadcastSupport":"Enabled","Slot8MctpBroadcastSupport":"Enabled","Sriov":"Enabled","StaleAtoS":"Disabled","SubNumaClustering":"Enabled","ThermalConfig":"OptimalCooling","ThermalShutdown":"Enabled","TimeFormat":"Utc","TimeZone":"UtcP1","TpmChipId":"None","TpmFips":"NotSpecified","TpmState":"NotPresent","TpmType":"NoTpm","UefiOptimizedBoot":"Enabled","UefiSerialDebugLevel":"Disabled","UefiShellBootOrder":"Disabled","UefiShellScriptVerification":"Disabled","UefiShellStartup":"Disabled","UefiShellStartupLocation":"Auto","UefiShellStartupUrl":"","UefiShellStartupUrlFromDhcp":"Disabled","UefiVariableAccessFwControl":"Disabled","UncoreFreqScaling":"Maximum","UrlBootFile":"","UrlBootFile2":"","UrlBootFile3":"","UrlBootFile4":"","UsbBoot":"Enabled","UsbControl":"UsbEnabled","UserDefaultsState":"Disabled","UtilityLang":"English","VirtualInstallDisk":"Disabled","VirtualSerialPort":"Com1Irq4","VlanControl":"Disabled","VlanId":0,"VlanPriority":0,"WakeOnLan":"Enabled","WorkloadProfile":"Virtualization-MaxPerformance","XptPrefetcher":"Auto","iSCSIPolicy":"SoftwareInitiator"} BIOS sieht dafür so aus: [image: 1751577392719-screenshot_20250703_231615_chrome.jpg] Als ob die Werte bei beiden Werten erst eine Ebene tiefer extrahiert werden dürften. Ich teste morgen mal (chatgpt) const valueType = typeof val === 'boolean' ? 'boolean' : typeof val === 'number' ? 'number' : typeof val === 'object' && val !== null && !Array.isArray(val) ? 'object' : Array.isArray(val) ? 'array' : 'string'; ob das die Fehler aus dem Log wirft. Wobei das ja die DPs vermutlich dadurch nicht entsprechend befüllt. EDIT: Habe jetzt unter BIOS die Erkennung in der ilo4 Variante vom Type zu for (const [key, val] of Object.entries(bios)) { try { const dp = dpPrefix + 'bios.' + sanitizeId(key); const valueType = typeof val === 'boolean' ? 'boolean' : typeof val === 'number' ? 'number' : typeof val === 'object' && val !== null && !Array.isArray(val) ? 'object' : Array.isArray(val) ? 'array' : 'string'; erweitert. Bei der ilo5 Variante (Eigentlich das gleiche, nur hast du es da in einer Zeile stehen) const valueType = typeof val === 'boolean' ? 'boolean' : typeof val === 'number' ? 'number' : typeof val === 'object' && val !== null && !Array.isArray(val) ? 'object' : Array.isArray(val) ? 'array' : 'string'; Jetzt ist das Log still. (DPs aber nicht korrekt befüllt, siehe Screenshot) EDIT2 Habe auf git erst aus versehen einen pull request für v4 gemacht. Sollte v5 werden. Kannst du den ablehnen? sehe nicht wo ich das wiederrufen kann.
  • Java Script: Sanftes Aufstehen mit Zigbee

    25
    0 Stimmen
    25 Beiträge
    3k Aufrufe
    HomoranH
    @martin_olw sagte in Java Script: Sanftes Aufstehen mit Zigbee: Hier sieht man es besser: dann musst du dir dein Homee näher ansehen. Der false Befehl kommt von da In der Konfiguration den Haken bei "null-werte...." entfernen, wenn du diese nicht im log haben willst

311

Online

33.0k

Benutzer

83.6k

Themen

1.3m

Beiträge