Skip to content

JavaScript

Hilfe für Skripterstellung mit JavaScript

2.5k Topics 48.6k Posts

NEWS

  • [gelöst] Subscribe auf ganze Datenpunkt-Zweige

    21
    1 Votes
    21 Posts
    2k Views
    hsteinmeH
    @ticaki sagte in Subscribe auf ganze Datenpunkt-Zweige: arrayofstates = $('state[state.id=javascript.0.*]'); setState("javascript.0.Test1",JSON.stringify(arrayofstates)); Ein "schöner" :blush: Code, danke! Vor allem ein für mich brauchbarer Ansatz, insbesondere weil durch die Stringifizierung es ermöglicht wird, auch Löschungen innerhalb der Struktur als Änderung zu erfahren. Ganz herzlichen Dank! Durch geeignete Wildcard-Wahl im $-Selektor kann ich darüber hinaus sogar erreichen, dass nur für mich relevante Teile des Objektbaums betrachtet werden.
  • [gelöst]Fehler beim auslesen des Datums

    javascript
    6
    0 Votes
    6 Posts
    426 Views
    sigi234S
    @SBorg sagte in [gelöst]Fehler beim auslesen des Datums: Lass micht raten: du hattest kein Datum unter eigenerPreis.neu.Datum oder Preis.neu.Datum eingetragen? :+1:
  • Harmony Adapter Script für Sender Direkt Aufruf

    javascript
    1
    0 Votes
    1 Posts
    232 Views
    No one has replied
  • [gelöst]JSON.parse Problem mit WienerLinien Daten

    javascript
    5
    1
    0 Votes
    5 Posts
    535 Views
    S
    @paul53 sagte in JSON.parse Problem mit WienerLinien Daten: const url = 'https://www.wienerlinien.at/ogd_realtime/monitor?rbl=2139'; Super. Klappt. Vielen Dank. Da habe ich wohl über zu viele Ecken gedacht. Ich bastle dann mal weiter.
  • Alle Datenpunkte eines Kanals

    javascript
    8
    0 Votes
    8 Posts
    524 Views
    paul53P
    @hsteinme sagte: Dieses Thema ist doch nicht nur für Adapter-Entwickler interessant, sondern auch für ioBroker-Anwender, die Javascript einsetzen. Die Lösung für Anwender des Javascript-Adapters ist anders als die für Adapter-Entwickler. Meine Lösung bezog sich auf Anwender.
  • [gelöst]Werte Feld "Name" TASMOTA-Geräten auslesen

    2
    0 Votes
    2 Posts
    442 Views
    M
    Erledigt.... :+1: siehe Beitrag hier
  • device Namen und ids auflisten

    javascript
    6
    1
    0 Votes
    6 Posts
    772 Views
    M
    MEGA!!! Perfekt, das war es! Danke Dir:+1: :+1: :+1:
  • Auf Listenelement in Binding zugreifen?

    3
    0 Votes
    3 Posts
    344 Views
    Archimedeus AA
    @J-A-R-V-I-S Hi ! ich habe umdisponiert und versuche es jetzt mit alias. Der sieht so aus: { "type": "state", "common": { "type": "boolean", "role": "switch", "read": true, "write": true, "storeMap": true, "name": "Lampe_0", "smartName": { "de": "Weihnachtsbaum", "smartType": "LIGHT" }, "alias": { "id": "sonoff.0.sonoff2.POWER" }, "cRoom": "Wohnzimmer" }, Eigentlich wäre ich zufrieden, wenn ich jetzt auf cRoom im binding zugreifen könnte. Versuch: {alias.0.Lights.ActiveLights.Lampe0.cRoom} gibt undefined. Natürlich wäre es noch schöner, wenn ich mein cRoom in .Custom einfügen könnte in dem Script, mit dem ich den alias anlege. Der Versuch if(cRoom) obj.common.custom.cRoom = cRoom; schlug aber fehl. Blöd wenn man kein JS kann. Gruß, Archi
  • Datums Interpretation Fehlerhaft

    javascript
    10
    0 Votes
    10 Posts
    642 Views
    AlCalzoneA
    @Homoran Ich bin mir relativ sicher, dass die entsprechenden Hilfen (z.B. CRON-Designer) das bereits berücksichtigen.
  • Einmaliger schedule-Auftrag

    2
    0 Votes
    2 Posts
    266 Views
    J
    Ich habe noch ein wenig weiter geforscht. Es bleibt seltsam: schedule(getDateObject("12:30"),()=>{ log("eins"); }) schedule(new Date("2020-01-30 12:30:00"),()=> { log("zwei"); }) dann kommt im Log die erwartete Quittierung: 12:29:24.085 info javascript.0 (27438) script.js.test: schedule(cron=Thu Jan 30 2020 12:30:00 GMT+0100 (GMT+01:00)) 12:29:24.087 info javascript.0 (27438) script.js.test: schedule(cron=Thu Jan 30 2020 12:30:00 GMT+0100 (GMT+01:00)) Aber anschließend kommt im Log: 12:30:00.002 info javascript.0 (27438) script.js.test: zwei 12:30:00.003 info javascript.0 (27438) script.js.test: eins 12:31:00.007 info javascript.0 (27438) script.js.test: zwei 12:32:00.004 info javascript.0 (27438) script.js.test: zwei 12:33:00.002 info javascript.0 (27438) script.js.test: zwei Das würde ja bedeuten, dass das Date-Objekt mit new Date erzeugt anders interpretiert wird als mit getDateObject. Falls das wirklich so wäre, dann sollte das in der Doku explizit vermerkt werden.
  • (gelöst) Javaskript

    javascript
    15
    0 Votes
    15 Posts
    839 Views
    sigi234S
    @ostseereiter sagte in (gelöst) Javaskript: @sigi234 ja nur eine. Gibt es vorteile wenn man mehrere installiert ? Natürlich zB.: Produktives System Testsystem Ram Auslastung...Aufteilung....
  • readFile & Bild per Telegram senden

    3
    0 Votes
    3 Posts
    583 Views
    GarfonsoG
    @Nahasapee Ja, ich muss es zuerst aus der Datenbank lesen, auf der Festplatte liegt das Bild nicht mehr (bzw. da lag noch ein uraltes, was mich zuerst auf einen anderen Weg bei der Fehlersuche geschickt hat). Ich habe es jetzt hinbekommen und zwar so: readFile("vis.0","/Mechenstr-Fire10/img/Doorbird_Bell.jpg", function (err, img) { sendTo("telegram.0", { text: img, caption: "Geklingelt", type: "photo" }); });
  • Parse JSON in String oder Integer

    7
    0 Votes
    7 Posts
    665 Views
    paul53P
    @e-s sagte: wie würde das in blockly aussehen? [image: 1580330498649-blockly_temp.jpg]
  • [gelöst] Gerätenamen mit Leerzeichen verarbeiten

    3
    0 Votes
    3 Posts
    237 Views
    K
    @ticaki wenn ich es so mache wie du, steht im Datenpumnkt "Device-name" folgendes: Sonoff-S20 INFO Hostname Mit meiner Lösung steht da nur "Sonoff-S20". Wenn ich das reichtig verstehe, schneiden meine Befehle nach dem ersten Leerzeichen ab. Ich versuche es mal mit erstzen, damit die Leerzeichen nicht abgeschnitten werden. EDIT: @ticaki vielen Dank für den Hinweis. Habe es jetzt hinbekommen. var devicename = getObject(id).common.name; var devicename = devicename.replace(" INFO ", "") var devicename = devicename.replace(" Hostname", "") var devicenameName=devicename;
  • UTF-8 nach ISO 8859-1 konvertieren für KNX-Adapter

    1
    0 Votes
    1 Posts
    180 Views
    No one has replied
  • JS für Switch + State anpassen

    javascript
    5
    0 Votes
    5 Posts
    530 Views
    tugsiT
    @paul53 sagte in JS für Switch + State anpassen: // IDs anpassen const idsButton = ['s7.0.DBs.DB1.NI02','usw.']; const idsActor = ['s7.0.DBs.DB1.Q02','usw.']; const js = 'system.adapter.javascript.' + instance; var idsVis = []; for(let i = 0; i < idsButton.length; i++) { let common = getObject(idsButton[i]).common; idsVis[i] = 'javascript.' + instance + '.LOGO.s7-0.' + common.name.replace(/\s/g, '_'); common.read = true; createState(idsVis[i], getState(idsActor[i]).val, common); } on({id: idsVis, change: 'ne', fromNe: js}, function(dp) { let i = idsVis.indexOf(dp.id); if(i > -1) setState(idsButton[i], true); }); on(idsActor, function(dp) { let i = idsActor.indexOf(dp.id); if(i > -1) setState(idsVis[i], dp.state.val, true); }); Kam erst heute dazu es zu testen, hab es mit drei Tastern/Aktoren ausprobiert, klappt 1a ! Danke dafür!
  • "schedule" bei stoppen des Scripts ?

    3
    0 Votes
    3 Posts
    257 Views
    Z
    ok Danke für die schnelle Antwort ! :relaxed:
  • [Gelöst] Delay für Licht ein/aus

    26
    0 Votes
    26 Posts
    2k Views
    BENNI32154B
    @ticaki sagte in Delay für Licht ein/aus: @BENNI32154 Und wenn du das hier unten nimmst geht es dann? const idTV = 'lgtv.0.states.on'; const idLicht1 = 'id1.powerState'; const idLicht2 = 'id2.powerState'; const idLicht3 = 'id3.powerState'; const idLicht4 = 'wifilight.0.192_168_178_150.on'; const idLicht5 = 'wifilight.0.192_168_178_157.on'; const idLicht6 = 'id6.powerState'; const idSzene = 'id7.active'; var tv = getState(idTV).val; function licht(ein) { AmazonLicht(idLicht1, ein); AmazonLicht(idLicht2, ein); AmazonLicht(idLicht3, ein); AmazonLicht(idLicht4, ein); AmazonLicht(idLicht5, ein); AmazonLicht(idLicht6, ein); var txt = 'ausgeschaltet'; if(ein) txt = 'eingeschaltet'; if (ein) setStateDelayed(idSzene, true, 6000); if(tv) setState('lgtv.0.states.popup', 'Das Licht ist ' + txt); } function AmazonLicht(dp, status) { // hier nicht setState(dp, status); setStateDelayed(dp, status, 3000); } // Skriptstart if(!isAstroDay() && tv) licht(true); else licht(false); on(idTV, function(dp) { // Triggert bei Wertänderung tv = dp.state.val; if(tv && !isAstroDay()) licht(true); else licht(false); }); schedule({astro: "sunset"}, function () { if(tv) licht(true); }); schedule({astro: "sunrise"}, function () { licht(false); }); funktioniert perfekt, vielen dank! :)
  • Probleme beim Auslesen von ICAL..

    7
    1
    0 Votes
    7 Posts
    704 Views
    4
    @paul53 So, Hier der Log: script.js.Wohnzimmer.Test: [{"date":"01.02. 15:30-17:30","event":"Borussia Dortmund - 1. FC Union Berlin | Bundesliga | 20. Spieltag","_class":"ical_BVB ical_6days","_date":"2020-02-01T14:30:00.000Z","_end":"2020-02-01T16:30:00.000Z","_section":"Dieser Terminservice wird präsentiert von calovo.de - kostenlos eigenen Kalender anlegen und mit der Welt teilen
  • Widget Kamerastream bei Viewaufruf manuell updaten

    1
    0 Votes
    1 Posts
    191 Views
    No one has replied

367

Online

32.5k

Users

81.7k

Topics

1.3m

Posts