Skip to content

JavaScript

2.5k Topics 49.7k Posts

Hilfe für Skripterstellung mit JavaScript

NEWS

  • Personenerkennung: Aufruf Linux Script mit Parameter

    javascript
    39
    7
    0 Votes
    39 Posts
    5k Views
    coyoteC
    @hansi1234 Nein, nur Frigate. ZM war mir zu langsam, zumindest habe ich es nicht hinbekommen, dass es bei mir schnell genug reagiert
  • evohome2mqtt Temperatur einstellen

    19
    0 Votes
    19 Posts
    745 Views
    S
    @mickym Ich schaue am Wochenende weiter - jetzt ist erstmal gut damit :-) . Vielen Dank für Deine Hilfe und Mühe auf jeden Fall.
  • Verzeichnis auf neue Datei(en) überwachen

    16
    0 Votes
    16 Posts
    2k Views
    mickymM
    @doubled sagte in Verzeichnis auf neue Datei(en) überwachen: Ich finde es trotzdem schade das der ioBroker das nicht per Adapter kann ... Kann er doch ;) ;) ;) - der Adapter kann halt noch bisschen mehr. ;) Im Übrigen ist es eine der Stärken des iobroker Systems sich nicht auf eine Logikmaschine, ein Datenbank System festlegen zu müssen. Ich verstehe es auch nicht, warum man iobroker mit Javascript etc. gleichsetzt. Im Übrigen basiert Node Red ebenfalls auf Javascript. Letztlich bietet iobroker eine Datenbank und es gibt verschiedene Logikmaschinen, diese Datenpunkte zu modifizieren, ob direkt mit Javascript, NodeRed, Blockly, Typescript oder was auch immer man bevorzugt. Natürlich kannst Du selbst einen Adapter zur Verzeichnisüberwachung schreiben, um letztlich nur einen Datenpunkt zu triggern.
  • [gelöst] URL per Telegram versenden

    7
    0 Votes
    7 Posts
    3k Views
    dslraserD
    @mpenno sagte in [gelöst] URL per Telegram versenden: Jetzt habe ich festgestellt, dass sich der Link von den Surveilance Station leider ändert, wie oft weiß ich nicht. Nicht unbedingt, den kannst Du "fest" einstellen. https://forum.iobroker.net/post/548299
  • variable auslesen und in eine andere variable schreiben

    7
    0 Votes
    7 Posts
    1k Views
    F
    @paul53 Es läuft wieder.... habe den Datenpunkt mal gelöscht und neu erstellt und siehe da es geht wieder!! SUPER, nochmals vielen lieben dank!
  • setState's in Funktionen

    javascript
    16
    0 Votes
    16 Posts
    2k Views
    AlCalzoneA
    @hanss check!
  • [Skript]RKI-Impfquotenmonitoring Deutschland incl. B-länder

    31
    1
    0 Votes
    31 Posts
    4k Views
    sissiwupS
    Hi, hier mal die aktuelle Version: getImpfquoten.py: import openpyxl from pathlib import Path import requests import os,sys import csv from datetime import datetime url = "https://www.rki.de/DE/Content/InfAZ/N/Neuartiges_Coronavirus/Daten/Impfquotenmonitoring.xlsx;jsessionid=159D4550C958EDFAA9A49921FA132A35.internet122?__blob=publicationFile" # url = "https://www.rki.de/DE/Content/InfAZ/N/Neuartiges_Coronavirus/Daten/Impfquotenmonitoring.xlsx" r = requests.get(url, allow_redirects=True) open(r'/var/skripte/data/Impfquotenmonitoring.xlsx', 'wb').write(r.content) xlsx_file = Path(os.getcwd(), r'/var/skripte/data/Impfquotenmonitoring.xlsx') wb_obj = openpyxl.load_workbook(xlsx_file,data_only=True) datakt=datetime.now() dat="--" sheet=wb_obj.active for sht in wb_obj: print(sht.title) try: dat = datetime.strptime(sht.title[-8:],'%d.%m.%y') sheet=sht except: pass print("Selected: "+sheet.title) # print(dat) if dat=="--": print("Datum nicht ermittelbar!") sys.exit(99) #sheet = wb_obj.active sum = 0 anzbl = 0 titel = 0 headline = None with open(r'/var/skripte/data/Impfquotenmonitoring.csv', 'w', newline="") as f: c = csv.writer(f) for row in sheet.iter_rows(min_row=1,max_col=25,max_row=19, values_only=True): try: sum=sum+row[2] nrow=[str(dat.date()),str(datakt),str(datetime.timestamp(dat))] anzbl=anzbl+1 row = [x for x in row if x is not None] nrow.extend(list(row)) if titel==0: titel=1 headline = [x for x in headline if x is not None] trow=['Datenstand','Dat-Import', 'Datenstand-Unix'] trow.extend(list(headline)) print(trow) c.writerow(trow) print(nrow) c.writerow(nrow) except: if headline==None: headline=list(row) else: for i in range(0,len(headline)): if row[i] is not None: if headline[i] is None: headline[i]=row[i] else: headline[i]=headline[i]+"."+row[i] if anzbl!=16: print("Es sollten 16 Bundesländer sein:",anzbl) sys.exit(99) if len(headline)!=15: print("Anzahl Spalten sollte 15 sein:",len(headline)) sys.exit(99) print("Gesamtzahl der Impfungen in Deutschland: " + str(sum)) print("Datenstand: " + str(dat) + " Sheetname:" + str(sheet.title)) getImpfquoten.sh: #!/bin/bash NOW=`date +"%d.%m.%g %H:%M.%S"` NOWDAT=`date +"%u"` USER=usermysql PASS=passwordmysql echo "Starte Abgleich: $NOW" rm /var/skripte/data/Impfquotenmonitoring.csv rm /var/skripte/data/Impfquotenmonitoring.xlsx rm /var/skripte/data/cor_impfung.csv python3.9 -u /var/skripte/getImpfquoten.py if [ $? -eq 99 ] then echo "Fehler bei Datenabholung" cp /var/skripte/data/Impfquotenmonitoring.xlsx /var/skripte/data/Impquotenmonitoring_$NOWDAT.xlsx.backup cp /var/skripte/data/Impfquotenmonitoring.csv /var/skripte/data/Impfquotenmonitoring_$NOWDAT.csv.backup exit 99 fi cp /var/skripte/data/Impfquotenmonitoring.csv /var/skripte/data/Impfquotenmonitoring_$NOWDAT.csv.backup cp /var/skripte/data/Impfquotenmonitoring.csv /var/skripte/data/cor_impfung.csv echo "Starte Import $NOW" mysqlimport --fields-terminated-by=, --ignore-lines=1 --verbose --ignore --local -u $USER -p$PASS iobroker /var/skripte/data/cor_impfung.csv mysql -u $USER -p$PASS iobroker -e "DELETE i1.* from cor_impfung i1 inner join cor_impfung i2 on (i1.datenstand=i2.datenstand and i1.rs=i2.rs and i1.import_datum<i2.import_datum)" mysql -u $USER -p$PASS iobroker -e "UPDATE cor_impfung inner join cor_bundesland on rs=lan_ew_ags SET Bundesland=lan_ew_gen" Tabelle: CREATE TABLE `cor_impfung` ( `datenstand` date NOT NULL DEFAULT current_timestamp(), `import_datum` datetime NOT NULL DEFAULT current_timestamp(), `datenstand_unix` bigint(20) NOT NULL DEFAULT 0, `RS` int(11) NOT NULL DEFAULT -1, `Bundesland` mediumtext COLLATE utf8_bin NOT NULL DEFAULT '\'"??"\'', `Gesamtimpfungen` int(11) NOT NULL DEFAULT 0, `Impfungen` int(11) DEFAULT 0, `BioNTech` int(11) NOT NULL DEFAULT 0, `Moderna` int(11) NOT NULL DEFAULT 0, `AstraZeneca` int(11) NOT NULL DEFAULT 0, `Differenz_Vortag` int(11) DEFAULT 0, `Impfquote` double NOT NULL DEFAULT 0, `Zweitimpfung` int(11) NOT NULL DEFAULT 0, `BioNTech_2` int(11) NOT NULL DEFAULT 0, `Moderna_2` int(11) NOT NULL DEFAULT 0, `AstraZeneca_2` int(11) NOT NULL DEFAULT 0, `Zweit_Differenz_Vortag` int(11) NOT NULL DEFAULT 0, `Impfquote_2` double NOT NULL DEFAULT 0 ) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE=utf8_bin; Index: ALTER TABLE `cor_impfung` ADD PRIMARY KEY (`datenstand`,`Bundesland`(24),`import_datum`), ADD KEY `datenstand-unix` (`datenstand_unix`,`Bundesland`(24)); COMMIT; Erklärung siehe oben bei meinem letzten Post
  • Frage zum Lichtüberwachungsskript

    6
    0 Votes
    6 Posts
    697 Views
    Dominik F.D
    @björn-günther Ansonsten schreib dir ein kurzes Skript, welches einen Datenpunkt auf True setzt, wenn das Licht an ist bzw der State des Dimmers >=1 ist. Diesen Datenpunkt kannst du dann ja fürs skript nutzen.
  • Javascript | Button Hintergrundfarbe nach Wert

    61
    2
    0 Votes
    61 Posts
    7k Views
    M
    @tg70 Das Script funktioniert. Hab es gerade nochmal getestet.
  • State aus Objekte in Yahka-Adapter mit script abfragen

    3
    1
    0 Votes
    3 Posts
    827 Views
    VillarribaV
    @unclesam hatte ich auch schon vermutet, leider. Trotzdem, danke für die Antwort ... wäre einfacher gewesen so.
  • Anfänger auf dem Schlauch - Werte in Datenpunkt schreiben

    Moved
    5
    0 Votes
    5 Posts
    578 Views
    O
    @homoran said in Anfänger auf dem Schlauch - Werte in Datenpunkt schreiben: @olis sagte in Anfänger auf dem Schlauch - Werte in Datenpunkt schreiben: javascript.0.variables.VccBatterie = Bat setState('javascript.0.variables.VccBatterie', Bat, true); ich hoffe das stimmt, kann nur Blockly, habe es da umwandeln lassen Danke - funktioniert, aber ich will mit Blockly gar nicht anfangen. Sieht zwar schön aus, aber ich versuche direkt mit einer Sprache zu arbeiten.
  • schedule(cron=[object Object]): cannot create schedule

    2
    0 Votes
    2 Posts
    664 Views
    E
    @marko63 Ich würde mal hour:24 durch hour:0 ersetzen
  • Namen der Enum Elemente

    3
    0 Votes
    3 Posts
    404 Views
    X
    @paul53 Vielen Dank Paul! Genau das habe ich gesucht. Grüße Kai
  • Json in Datenpunkt schreiben - Wert wird nicht gesetzt!

    javascript
    5
    0 Votes
    5 Posts
    599 Views
    M
    @nichname createstate .... write:write gibt es nicht. Entweder write:false oder write:true. Wo stand das mit dem write:write?
  • Wake on Lan

    javascript
    11
    0 Votes
    11 Posts
    3k Views
    K
    falsche betrag
  • dayofweek - wie?

    4
    0 Votes
    4 Posts
    437 Views
    AlCalzoneA
    @dominic-reber Das hat dir doch sicher die Auto-Vervollständigung vorgeschlagen: [image: 1615456705025-8a54711f-1c9c-4573-b333-93fc10884108-grafik.png] und dann ganz böse gemeckert als du es falsch geschrieben hast: [image: 1615456742693-38c36353-3d5b-4657-adc5-e01e8b1ffabe-grafik.png]
  • (Gelöst)Fehlermeldung Update des Javasript Adapters 5.0.12

    javascript
    10
    1
    0 Votes
    10 Posts
    617 Views
    N
    Habe das Probelm jetzt durch eine Neuinstallation gelöst. SD Karte war nicht defekt!
  • Problem seit javascript Update

    24
    0 Votes
    24 Posts
    2k Views
    M
    @homoran Ich dachte das Blockly wäre eindeutig, den JS Code bekomme ich am phone nicht kopiert, da wären die DP ausgeschrieben. Ich habe mir jetzt unter userdata die drei DP erstellt und steuere die im JS an. Diese DP habe ich dann in shuttercontrol in die config übernommen. Läuft. Danke nochmals.
  • (gelöst) Längen- und Breitengrade

    javascript
    13
    0 Votes
    13 Posts
    2k Views
    ice987I
    @unclesam sagte in Längen- und Breitengrade: Oder einfach die System-Einstellungen nehmen: 'system.config' --> common.latitude etc. const config= getObject("system.config"); const lat = config.common.latitude; const long = config.common.longitude; das geht auch! (ist sogar noch etwas eleganter, aber über Eleganz kann man sich natürlich streiten ) Danke!
  • Logik Visualisierung

    javascript
    3
    0 Votes
    3 Posts
    427 Views
    hanssH
    @sigi234 sagte in Logik Visualisierung: @hanss Kennst du ioBroker.heatingcontrol? Vielen Dank, aber was der Adapter kann, das macht meine Einzelraumregelung von Honeywell "EvoHome" autark. Meine Heizungssteuerung verwendet die Daten von EvoHome um die Vorlauftemperatur der Therme zu steuern.

262

Online

33.0k

Users

83.4k

Topics

1.3m

Posts