Weiter zum Inhalt

JavaScript

2.5k Themen 49.4k Beiträge

Hilfe für Skripterstellung mit JavaScript

NEWS

  • [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
    2k 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
    2k 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
  • Datenpunkte setzten bevor ein Script gestoppt wird

    4
    0 Stimmen
    4 Beiträge
    380 Aufrufe
    C
    @ofri2607 Danke, gerade getestet, Damit komme ich weiter.
  • Shelly RGB2 mit LED-Strip blicken wenn true

    Verschoben
    10
    0 Stimmen
    10 Beiträge
    736 Aufrufe
    mickymM
    @homoran Verschieb ihn halt zu den Javascript
  • Script zum überarbeiten des Loggin von Datenpunkten

    6
    0 Stimmen
    6 Beiträge
    409 Aufrufe
    B
    @ben1983 Bei MySQL geht das bei den genannten Punkten nicht. Der Button zum Speichern bleibt grau. Hier gibt es irgendwo schon ein paar Threads seit 2018 dazu. Der Fehler ist immer gleich. Du änderst was im Interface und kannst es nicht speichern. Wie geht das nun per Script?
  • getState ohne/mit await

    43
    0 Stimmen
    43 Beiträge
    4k Aufrufe
    P
    @paul53 Erstmal vielen lieben Dank für deine Erklärungen für mich Newbie :-) Irgendwie noch ein wenig Spaghetti im Kopf. Also, wenn ich es richtig verstanden habe, dann kann ich mit eingeschalteten Puffer getState und setState direkt nutzen, die Werte sind im Puffer, und bei einem getState oder setstate wird gewarten bis er wirklich im "Puffer" geschrieben ist, richtig? Das heißt aber, die sind noch nicht mit dem JS Controller/Datenbank synchronisiert. Das kommt dann irgendwann automatisch. Ohne Puffer nutzt man dann await setStateasync oder await getStateasync, damit sicher erst die DAtenpunkte beschrieben sind, bevor es weiter geht. Ich bastel mir gerade ne Schrittkette (Typisch Siemens :-) ) mit einem int Wert, der dann von den einzelen Scripten gesetzt wird, wenn die sicher ihre Arbeit abgeschlossen haben. Die nachfolgenden Scripte arbeiten mit Werten aus den vorherigen Scripten. Gruß und Besten Dank für deine Geduld :-)
  • [gelöst] Skript auf AXIOS/httpGet umbauen

    59
    0 Stimmen
    59 Beiträge
    13k Aufrufe
    D
    @haus-automatisierung vielen lieben Dank -> funktioniert :)
  • Skript zum PiHole Version 6 an- und ausschalten

    Verschoben
    5
    1 Stimmen
    5 Beiträge
    567 Aufrufe
    OliverIOO
    Zum Test steht nun der neue pi-hole2 Adapter zur Verfügung https://forum.iobroker.net/topic/81472/neuer-adapter-pi-hole2-für-pihole-v6?_=1750927226913
  • [gelöst] 1 + 2 = 12?

    9
    2
    0 Stimmen
    9 Beiträge
    560 Aufrufe
    haus-automatisierungH
    @iob69 sagte in [gelöst] 1 + 2 = 12?: Edit: Das Control JQui Input liefert mir offenbar den String. Das hab ich nicht beachtet, dass der ja wohl auch für Buchstaben-Eingabe funktioniert. Allerdings kann man dort angeben "als string" was nicht der Fall war. Und man kann sogar stellen hinter dem Komma angeben. Er liefert trotzdem einen String... Dann ist das wohl ein Bug (oder so dokumentiert). Ansonsten könntest Du auch einen Alias nutzen um immer einen numerischen Wert zu parsen. Das Ziel von dem Input dann auf String umstellen, damit es keine Warnung im Log gibt
  • Frage zu URL() im Javascript adapter

    3
    2
    0 Stimmen
    3 Beiträge
    288 Aufrufe
    C
    @liv-in-sky vielen Dank!
  • Script den Objektstamm durchsuchen

    Verschoben
    6
    0 Stimmen
    6 Beiträge
    531 Aufrufe
    paul53P
    @longbow sagte: wie müsste es aussehen? const ids = $('shelly.0.*.Power').toArray(); const zielDatenpunkt = '0_userdata.0.Shelly.GesamtPower'; // Funktion: Summe berechnen function berechneSumme() { let summe = 0; ids.forEach((id) => { summe += parseFloat(getState(id).val) || 0; }); setState(zielDatenpunkt, summe, true); } on(ids, berechneSumme); berechneSumme(); // Scriptstart
  • Timeout in JS einbinden

    24
    0 Stimmen
    24 Beiträge
    2k Aufrufe
    ubeckerU
    @oliverio said in Timeout in JS einbinden: allerdings ist das auch nicht die priorität, ist ja eh nur für debugging genau. @oliverio said in Timeout in JS einbinden: Den Ende timestamp in einem datenpunkt merken und dann regelmäßig prüfen, ob er erreicht wird. Bzw. der datenpunkt existiert nur falls der Adapter neu gestartet wird, damit man wieder neu aufsetzen kann. Dann schreibt man nicht so oft in der Datenbank herum hier eigentlich unkritisch. Dann bleibt die Heizung weitere 5 Std. an. ich lass es erst mal beim normalen Teimout und werde das beobachten. danke an alle
  • ELV-SH-GVI per Java ansteuern / Problem

    8
    0 Stimmen
    8 Beiträge
    521 Aufrufe
    G
    @homoran Habe das Problem, aus einem anderen Forum erfahren. Die Steuerung hat den ON_TIME Befehl nicht erhalten, sondern nur den STATE Befehl. Ich vermute auf Grund der hohen dbM Werte ist ein Befehl "liegen" geblieben. Werde jetzt alles auf COMBINED_PARAMETER umstellen, da hier die ON_TIME und die STATE in einem Befehl geschickt werden. Dann dürfte dies theoretisch nicht mehr passieren. Danke für die Hilfe
  • npm @supabase/supabase-js klappt irgendwie nicht.

    2
    0 Stimmen
    2 Beiträge
    222 Aufrufe
    P
    Ok, also als Javascript scheint es zu klappen, nur Typescript will nicht. Naja, dann mach ich in Javascript weiter. Daten kommen schon mal rein.
  • (Erledigt) Datenpunkt setzen: Datentyp klappt nicht

    blockly javascript
    3
    2
    0 Stimmen
    3 Beiträge
    254 Aufrufe
    amg_666A
    @paul53 Danke, funktioniert.
  • Übersetzungen aus dem Netz ziehen

    14
    0 Stimmen
    14 Beiträge
    889 Aufrufe
    Ben1983B
    @mcm1957 OK, wüsste nicht wo das sein sollte Aber habe mir jetzt einfach von chatGPT ne übersetzung statisch geben lassen und switch case je nach state
  • [gelöst] desc aus Datenpunk auslesen

    11
    0 Stimmen
    11 Beiträge
    651 Aufrufe
    haus-automatisierungH
    @iob69 sagte in [gelöst] desc aus Datenpunk auslesen: Weiss jemand noch, ob man beim Erstellen eines Status diesen gleich in die history aufnehmen kann (programmatisch) und wenn ja, wie man die Parameter (wie geloggt wird) mitgeben kann? Am einfachsten per sendTo an die History-Instanz: https://github.com/ioBroker/ioBroker.history/blob/master/docs/de/README.md#verlaufsprotokollierung-über-javascript Ich würde nicht direkt die custom Optionen auf dem Objekt setzen (ggf. bekommt das die Instanz dann gar nicht mit und würde das Objekt erst nach einem Neustart der Instanz berücksichtigen).
  • Auslesen von Wert eines Objektes

    4
    0 Stimmen
    4 Beiträge
    252 Aufrufe
    snakepitnetworkS
    Ich danke Euch schon mal für die Aufklärung, ich probiere es gleich mal aus und gebe Rückmeldung!
  • Skript zur Visualisierung von Sendungen (Parcel-Adapter)

    55
    6
    2 Stimmen
    55 Beiträge
    7k Aufrufe
    Ro75R
    @matze55 alles was du wissen musst und was gebraucht wird, findest du im ersten Post. Ro75.

286

Online

32.9k

Benutzer

82.9k

Themen

1.3m

Beiträge