Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Load custom scripts #492

Closed
techducks opened this issue Dec 23, 2020 · 17 comments
Closed

Load custom scripts #492

techducks opened this issue Dec 23, 2020 · 17 comments
Assignees
Labels
feature 🌟 Feature request or enhancement pro This is a premium feature quick to implement

Comments

@techducks
Copy link

Hi,
in meinen Augen wäre es Sinnvoll, wenn man ein eigenes Javascript laden kann?
Realisierbar wäre das zum Beispiel, indem man ein Script aus dem JavaScript-Adapter läd (wird dann im Admin von Jarvis konfiguriert).

Mir ist die Idee bei folgendem Problem gekommen:
Ich wollte Jarvis aus dem Internet via Reverse Proxy erreichbar machen. Dem Proxy habe ich dann gesagt, dass er nur ein Redict machen soll, wenn in der URL ein ?key=abc Parameter ist. (Zur Authentifierung)
Hat auch geklappt. Das Problem ist nur, dass die Javascripte und CSS Files nicht nachgeladen werden, weil diese in der index.html fest einprogrammiert sind. Mein Browser will sich also die Scripte holen, aber entfernt die Parameter aus der URL.

Also entweder dynamische URLs oder Custom Scripte 😄
ps. ich finde Jarvis richtig geil! Weiter sooo

@techducks techducks added the feature 🌟 Feature request or enhancement label Dec 23, 2020
@assign-milestone-to-issue assign-milestone-to-issue bot added this to the VOTING FEATURE REQUESTS milestone Dec 23, 2020
@assign-milestone-to-issue

This comment was marked as resolved.

@Zefau
Copy link
Owner

Zefau commented Dec 23, 2020

Du kannst mittels Custom HTML eigene Javascript laden.

@techducks
Copy link
Author

@Zefau Du meinst das Modul CustomHTML?

@Zefau
Copy link
Owner

Zefau commented Dec 23, 2020

Jo. Ist nicht genau das, was du meinst, aber wäre eine temporäre Lösung.

@techducks
Copy link
Author

Ja, ich schaue mal, ob das klappt. Du kannst entscheiden, ob es eventuell mal eingebaut werden soll.
Wahrscheinlich ist das für die wenigsten relevant, aber ich würde die Vis jetzt schon gerne via Internet erreichen. (Ohne Basic Auth)

@Zefau Zefau added pro This is a premium feature quick to implement labels Sep 2, 2021
@Zefau Zefau removed this from the VOTING FEATURE REQUESTS milestone Jan 6, 2022
@fmranger
Copy link

Hi,

ich würde gerne in einem JsonTable Widget mit der Format-Option pro Zeile einen Button hinzufügen, der eine Javascript-Funktion aufruft.

Das mit dem Button bekomme ich hin, aber die Funktion wird nicht gefunden obwohl ich sie in einem anderen Widget (HTML) auf der gleichen Seite definiert habe.

Beispiel: format":"val => val = '<button type=\'button\' onclick=\'MeineFunktion("' + val + '")\'>Ausschalten';"

Fehlermeldung:
Uncaught ReferenceError: MeineFunktion is not defined
at HTMLButtonElement.onclick

Wie kann ich eigene Javascript-Funktionen hinzuladen?

Habe eine Jarvis Pro-Lizenz.
Der Adapter ist echt der Hammer.
Du machst eine tolle Arbeit.
Vielen Dank.

@Zefau
Copy link
Owner

Zefau commented May 31, 2022

Eigene / Custom Scripts nun (mit Pro) mit v3.1.0-alpha.9 verfübar:

image

@mcuiobroker
Copy link
Collaborator

Wie kann man dort die bestehende socket-Verbindung mit nutzen, um Daten aus ioBroker-DPs abzufragen?

@Zefau
Copy link
Owner

Zefau commented Jun 1, 2022

ab v3.1.0-alpha.10 via window.Socket, z.B. getState(stateId, callback):

window.Socket.getState('0_userdata.0.boolean', ({ err, state }) => {
   ...
});

Weitere Befehle:

  • getState(stateId, callback)
  • subscribeState(stateId, callback)
  • setState(stateId, value, ack, callback)
  • getObjectView(design, search, params, callback)
  • getObjects(pattern, callback)
  • getObject(id, callback)

@mcuiobroker
Copy link
Collaborator

mcuiobroker commented Jun 2, 2022

subscribeState , bzw. die callback() wird dann auch bei Änderung von einem Wert ausgelöst?
on()-Funktion?
on({id: instanceExImportDP, change: "any"}, function (obj)

@Zefau
Copy link
Owner

Zefau commented Jun 2, 2022

subscribeState , bzw. die callback() wird dann auch bei Änderung von einem Wert ausgelöst?

Ja.

on()-Funktion? on({id: instanceExImportDP, change: "any"}, function (obj)

Nicht notwendig.

@Zefau Zefau closed this as completed Nov 26, 2022
@uwe72
Copy link

uwe72 commented Jun 26, 2023

@Zefau @mcuiobroker

Ich würde gerne in meiner HTML-Tabelle (welches über StateHtml-Widget in Jarvis dargestellt ist) pro Zeile einen Button darstellen. Dieser Button soll dann Datenpunkte verändern.

<button onclick=\"MeineFunktion()"></button>

Wie kann ich darauf reagieren? Wo kann ich meine Methode

function MeineFunktion() {
    setState("0_userdata.0.bewaesserung.test", false);
}

platzieren?

Kann ich das Script in ioBroker (JS-Script-Adapter) einfügen oder eher in Jarvis im Reiter "Scripts"? Bin ich generell auf dem richtigen Weg?

So sieht mein Formular aus:
image

Das der Code pro Button:
return "<button type=\'button\' onclick=\'MeineFunktion()\'>Test</button>";

Das das Script im Reiter "Scripts"
image

@mcuiobroker
Copy link
Collaborator

@uwe72
Copy link

uwe72 commented Jun 26, 2023

@mcuiobroker Danke dir!!!

Leider funktioniert dies nicht. Hast Du eine Idee?

image

image

<button type=\"button\" onclick=\"test()\">Test!</button>

@mcuiobroker
Copy link
Collaborator

mcuiobroker commented Jun 26, 2023

setState so gibt es in jarvis nicht->
window.Socket.setState(stateId, value, ack, callback)

@uwe72
Copy link

uwe72 commented Jun 26, 2023

setState so gibt es in jarvis nicht-> window.Socket.setState(stateId, value, ack, callback)

Hat super funktioniert. Wirklich DANKE!!!!!!

Wo wird eigentlich das Ganze geloggt, wo finde ich die Logausgaben?

image

@mcuiobroker
Copy link
Collaborator

F12

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature 🌟 Feature request or enhancement pro This is a premium feature quick to implement
Projects
Archived in project
Development

No branches or pull requests

5 participants