Skip to content

Visualisierung

Hilfe zu Visualisierungen

9.4k Themen 104.1k Beiträge

NEWS

  • Modbusregister SMA Tri 8.0 & Visualisierung

    5
    1
    0 Stimmen
    5 Beiträge
    258 Aufrufe
    D
    @guinan sagte in Modbusregister SMA Tri 8.0 & Visualisierung: Kann mir jemand sagen aus welchen Registern die angezeigten Werte aus dem Bild kommen? https://www.sma.de/produkte/solar-wechselrichter/sunny-tripower-80-100 --> Parameter / Modbus
  • [Material Design CSS / MDCSS V2] Vis-Views zur Inspiration

    vis
    191
    22
    5 Stimmen
    191 Beiträge
    32k Aufrufe
    D
    @sigi234 danke schau ich mir an. :+1:
  • Fully Kiosk Vis Fehler

    9
    3
    0 Stimmen
    9 Beiträge
    767 Aufrufe
    Tg-71T
    Fully spinnt bei mir im Darkmodus. Dann fängt er an Farben zu invertieren - die er lieber in Ruhe lassen sollte. Ich hab ihn in Fully deaktiviert. Bei "Other Settings > Darkmode".
  • VISU OFFLINE BETREIBEN

    1
    0 Stimmen
    1 Beiträge
    167 Aufrufe
    Niemand hat geantwortet
  • Lovelace: custom: button-card: tap_action funktioniert nicht

    5
    3
    0 Stimmen
    5 Beiträge
    1k Aufrufe
    M
    @critter81 Welche Version habt ihr verwendet. Wenn ich die 3.5.0 nehme dann geht es. Version 4 scheint Probleme zu machen
  • nwesenheits Widget für Habpanel für 3 Zuständen

    1
    1
    0 Stimmen
    1 Beiträge
    129 Aufrufe
    Niemand hat geantwortet
  • iQontrol - Einbinden von eCharts

    2
    0 Stimmen
    2 Beiträge
    300 Aufrufe
    HomoranH
    @blockmove bitte Threadtitel anpassen!
  • Datenpunkte als Tabelle

    7
    0 Stimmen
    7 Beiträge
    768 Aufrufe
    ?
    @liv-in-sky Danke für den Tip. Meine TelePeriod sind bei den sogar 5min, weil alles andere für Verbrauchswerte keinen Sinn macht. Eigentlich ging noch größer Danke nochmals :)
  • [gelöst] VIS 2 und Smartphone

    3
    0 Stimmen
    3 Beiträge
    629 Aufrufe
    R
    @homoran sagte in VIS 2 und Smartphone: @roga sagte in VIS 2 und Smartphone: die App iobroker.vis auch mal mit iobroker.visu probiert? noch nicht, aber gerade eben ausprobiert und vielen Dank für den Tipp, hat funktioniert :-)
  • Habpanel Auflistung

    1
    0 Stimmen
    1 Beiträge
    84 Aufrufe
    Niemand hat geantwortet
  • Textfarbe für bestimmtes Level definieren

    Verschoben
    13
    0 Stimmen
    13 Beiträge
    4k Aufrufe
    spicerS
    Hallo Ich habe {wert:solarmanpv.0.61538217.229788178.B_Pdcg1;wert < 0 ? "#ff141c" :: wert > 0 ? "#28ad01" :: "#ef9101"} bei Color eingetragen. Leider ist der Text immer rot (#ff141c). Auch wenn ich {wert:0;wert < 0 ? "#ff141c" :: wert > 0 ? "#28ad01" :: "#ef9101"} eintrage, bleibt der Text auf rot. Habe ich etwas bei der Quelle falsch eingetragen? Unter Objekte sieht die Quelle so aus: [image: 1697816954826-auswahl_001.png] Mein Ziel ist es, dass bei negativem Wert der Text rot ist, bei positivem grün (#28ad01) und bei 0 orange (#ef9101). Edit: Problem gefunden. Es funktionierte die ganze Zeit. Nur wird die Textfarbe im VIS-Editor falsch angezeigt. In VIS-View stimmt es ;)
  • Eine eigene VIS mit Angular

    4
    0 Stimmen
    4 Beiträge
    498 Aufrufe
    ?
    @weggetor sagte in Eine eigene VIS mit Angular: @dp20eic Jein... Ich dachte mehr so an ein Rumpf-Angular-Projekt wie die wichtigen socket-Methoden (connect, getState etc. schon implementiert sind) Moin, ich bin kein Programmierer, kann über die Qualität nichts sagen, aber ich habe mal Bard gefragt, geht sicherlich auch über ChatGPT Spoiler Erstellen eines Angular-Projekts Zuerst erstellen wir ein neues Angular-Projekt mit dem Befehl ng new socket-demo. ng new socket-demo Dadurch wird ein neues Verzeichnis mit dem Namen socket-demo erstellt, das das Projekt enthält. Installieren des ngx-socket-io-Pakets Als nächstes installieren wir das ngx-socket-io-Paket, das die Socket.IO-Bibliothek für Angular bereitstellt. npm install ngx-socket-io --save Konfigurieren der Socket.IO-Module Um Socket.IO in unserem Projekt zu verwenden, müssen wir das SocketIoModule und das HttpClientModule in die AppModule importieren. import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { SocketIoModule } from 'ngx-socket-io'; import { HttpClientModule } from '@angular/common/http'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, SocketIoModule.forRoot(), HttpClientModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { } Implementieren der Socket-Methoden In unserem Beispiel verwenden wir die folgenden Socket-Methoden: connect(): Verbindet den Client mit dem Socket-Server. getState(): Ruft den aktuellen Zustand des Socket-Servers ab. emit(): Emitiert ein Event an den Socket-Server. import { Component, OnInit } from '@angular/core'; import { Socket } from 'ngx-socket-io'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent implements OnInit { socket: Socket; constructor(private socketService: Socket) {} ngOnInit() { this.socket = this.socketService.connect(); } connect() { this.socket.connect(); } getState() { return this.socket.getState(); } emit() { this.socket.emit('my-event', { data: 'Hello, world!' }); } } Implementieren des HTML- und CSS-Codes In unserem Beispiel verwenden wir den folgenden HTML- und CSS-Code, um die Socket-Methoden zu verwenden. HTML <h1>Socket.IO Demo</h1> <button (click)="connect()">Connect</button> <p>{{getState()}}</p> <button (click)="emit()">Emit</button> !!!Verwende Code mit Vorsicht. Weitere Informationen!!! CSS h1 { font-size: 24px; } button { margin-bottom: 10px; } Verwende Code mit Vorsicht. Weitere Informationen Ausführen des Projekts Um das Projekt auszuführen, verwenden wir den Befehl ng serve. ng serve Dadurch wird das Projekt auf http://localhost:4200 gestartet. Ausgabe Wenn wir das Projekt öffnen, sehen wir den folgenden Text: Socket.IO Demo Connect Wenn wir auf die Schaltfläche "Connect" klicken, wird der Client mit dem Socket-Server verbunden. Socket.IO Demo Connected Wenn wir auf die Schaltfläche "Get State" klicken, wird der aktuelle Zustand des Socket-Servers abgerufen. Socket.IO Demo Connected { connected: true } Wenn wir auf die Schaltfläche "Emit" klicken, wird ein Event an den Socket-Server emittiert. Socket.IO Demo Connected { connected: true } Hello, world! Erweiterung des Beispiels In diesem Beispiel haben wir nur die grundlegenden Socket-Methoden implementiert. Um das Beispiel zu erweitern, können wir folgende Dinge tun: Erweiterte Socket-Methoden implementieren: Neben den grundlegenden Socket Quellen www.pluralsight.com/guides/conceptualizing-the-purpose-of-an-angular-module github.com/ffalt/hookayunterliegt Lizenz (MIT) github.com/khelilAppinio/m4dti_client_angular_for_test www.telerik.com/blogs/building-a-data-visualization-dashboard-kendo-ui-angular-socket-io developer.okta.com/blog/2018/11/30/web-app-with-express-angular-graphql Spoiler In Ordnung, hier ist ein Angular Projekt mit den Socket-Methoden connect, getState usw. enthalten: Server-Code Zuerst erstellen wir einen Server, mit dem wir die Socket-Verbindungen verwalten können. Dazu verwenden wir den Node.js-Webserver Express und das Socket.IO-Framework. const express = require("express"); const socketio = require("socket.io"); const app = express(); const server = app.listen(3000); const io = socketio(server); io.on("connection", (socket) => { console.log("Ein neuer Client hat sich verbunden"); // Socket verbinden socket.connect(); // Socket-Status abfragen socket.on("getState", () => { socket.emit("state", { connected: true, }); }); // Socket-Nachricht senden socket.emit("message", "Hallo Welt!"); }); Dieser Server erstellt einen Socket.IO-Server auf dem Port 3000. Wenn sich ein Client mit dem Server verbindet, wird der connect()-Handler aufgerufen. In diesem Handler wird der Socket verbunden und der getState()-Handler abonniert. Der getState()-Handler wird aufgerufen, wenn der Client den getState-Event empfängt. In diesem Handler wird der aktuelle Socket-Status zurückgegeben. Client-Code Um mit dem Server zu kommunizieren, erstellen wir einen Angular-Client. Dazu verwenden wir das ngx-socket-io-Modul. npm install @ngx-socket-io/client In unserer App-Komponente importieren wir das Socket-Service und konfigurieren es mit der URL des Socket-Servers. import { Component, OnInit } from "@angular/core"; import { Socket } from "@ngx-socket-io/client"; @Component({ selector: "app-root", templateUrl: "./app.component.html", styleUrls: ["./app.component.css"], }) export class AppComponent implements OnInit { constructor(private socket: Socket) {} ngOnInit() { this.socket.connect(); } } In der ngOnInit()-Methode verbinden wir den Socket mit dem Server. Um den Socket-Status abzufragen, verwenden wir den getState()-Methode. import { Component, OnInit } from "@angular/core"; import { Socket } from "@ngx-socket-io/client"; @Component({ selector: "app-root", templateUrl: "./app.component.html", styleUrls: ["./app.component.css"], }) export class AppComponent implements OnInit { constructor(private socket: Socket) {} ngOnInit() { this.socket.connect(); // Socket-Status abfragen this.socket.getState().subscribe((state) => { console.log("Socket-Status:", state); }); } } Dieser Code abonniert das getState()-Event und gibt den empfangenen Status in die Konsole aus. Beispiel-Ausgabe Socket-Status: { connected: true } Fertigstellung Um das Projekt zu testen, starten wir den Server mit dem Befehl node server.js. Anschließend starten wir den Client mit dem Befehl ng serve. Wenn wir die App öffnen, sollte der Socket-Status in der Konsole ausgegeben werden. Verbesserungen Dieses Projekt ist nur ein einfaches Beispiel für die Verwendung von Socket.IO in Angular. Es gibt noch viele weitere Möglichkeiten, die Socket-Methoden zu verwenden. Zum Beispiel können wir den Socket verwenden, um Nachrichten zwischen Clients zu senden oder um Daten von einem Server abzurufen. Hier sind einige Beispiele für Verbesserungen: Socket-Nachrichten senden: Wir können den Socket verwenden, um Nachrichten zwischen Clients zu senden. Dazu verwenden wir die emit()-Methode. Daten von einem Server abrufen: Wir können den Socket verwenden, um Daten von einem Server abzurufen. Dazu verwenden wir die on()-Methode, um den gewünschten Event zu abonnieren. Socket-Sicherheit: Wir sollten die Socket-Verbindungen sichern, um sie vor unbefugtem Zugriff zu schützen. Dazu können wir TLS/SSL verwenden. Spoiler In Ordnung, hier ist ein Angular Projekt mit den Socket-Methoden connect, getState usw. enthalten: Server-Code Zuerst erstellen wir einen Server, mit dem wir die Socket-Verbindungen verwalten können. Dazu verwenden wir den Node.js-Webserver Express und das Socket.IO-Framework. const express = require("express"); const socketio = require("socket.io"); const app = express(); const server = app.listen(3000); const io = socketio(server); io.on("connection", (socket) => { console.log("Ein neuer Client hat sich verbunden"); // Socket verbinden socket.connect(); // Socket-Status abfragen socket.on("getState", () => { socket.emit("state", { connected: true, }); }); // Socket-Nachricht senden socket.emit("message", "Hallo Welt!"); }); Dieser Server erstellt einen Socket.IO-Server auf dem Port 3000. Wenn sich ein Client mit dem Server verbindet, wird der connect()-Handler aufgerufen. In diesem Handler wird der Socket verbunden und der getState()-Handler abonniert. Der getState()-Handler wird aufgerufen, wenn der Client den getState-Event empfängt. In diesem Handler wird der aktuelle Socket-Status zurückgegeben. Client-Code Um mit dem Server zu kommunizieren, erstellen wir einen Angular-Client. Dazu verwenden wir das ngx-socket-io-Modul. npm install @ngx-socket-io/client In unserer App-Komponente importieren wir das Socket-Service und konfigurieren es mit der URL des Socket-Servers. import { Component, OnInit } from "@angular/core"; import { Socket } from "@ngx-socket-io/client"; @Component({ selector: "app-root", templateUrl: "./app.component.html", styleUrls: ["./app.component.css"], }) export class AppComponent implements OnInit { constructor(private socket: Socket) {} ngOnInit() { this.socket.connect(); } } In der ngOnInit()-Methode verbinden wir den Socket mit dem Server. Um den Socket-Status abzufragen, verwenden wir den getState()-Methode. import { Component, OnInit } from "@angular/core"; import { Socket } from "@ngx-socket-io/client"; @Component({ selector: "app-root", templateUrl: "./app.component.html", styleUrls: ["./app.component.css"], }) export class AppComponent implements OnInit { constructor(private socket: Socket) {} ngOnInit() { this.socket.connect(); // Socket-Status abfragen this.socket.getState().subscribe((state) => { console.log("Socket-Status:", state); }); } } Dieser Code abonniert das getState()-Event und gibt den empfangenen Status in die Konsole aus. Beispiel-Ausgabe Socket-Status: { connected: true } Fertigstellung Um das Projekt zu testen, starten wir den Server mit dem Befehl node server.js. Anschließend starten wir den Client mit dem Befehl ng serve. Wenn wir die App öffnen, sollte der Socket-Status in der Konsole ausgegeben werden. Verbesserungen Dieses Projekt ist nur ein einfaches Beispiel für die Verwendung von Socket.IO in Angular. Es gibt noch viele weitere Möglichkeiten, die Socket-Methoden zu verwenden. Zum Beispiel können wir den Socket verwenden, um Nachrichten zwischen Clients zu senden oder um Daten von einem Server abzurufen. Hier sind einige Beispiele für Verbesserungen: Socket-Nachrichten senden: Wir können den Socket verwenden, um Nachrichten zwischen Clients zu senden. Dazu verwenden wir die emit()-Methode. Daten von einem Server abrufen: Wir können den Socket verwenden, um Daten von einem Server abzurufen. Dazu verwenden wir die on()-Methode, um den gewünschten Event zu abonnieren. Socket-Sicherheit: Wir sollten die Socket-Verbindungen sichern, um sie vor unbefugtem Zugriff zu schützen. Dazu können wir TLS/SSL verwenden. VG Bernd
  • Wiedergabe von IP-Kamerabildern in VIS

    3
    0 Stimmen
    3 Beiträge
    317 Aufrufe
    crunchipC
    @alti sagte in Wiedergabe von IP-Kamerabildern in VIS: Im iframe kommt die Meldung Inhalt blockiert oder Verbindung abgelehnt. Bei den anderen Widgets einfach nur ein leerer Kasten. nen rtsp Stream kannst du so nicht einfach einbinden, gibt hier aber im Forum nen Thread zum einbinden die wansview haben allerdings auch einen mpeg stream, dieser lässt sich einbinden es gibt auch noch einen Adapter @alti sagte in Wiedergabe von IP-Kamerabildern in VIS: ein Bild von einer IP Kamera zu bekommen https://forum.iobroker.net/post/777390
  • Vis Offline-Lizenz für Vis-2

    2
    0 Stimmen
    2 Beiträge
    255 Aufrufe
    sigi234S
    @jörn-körner Das kommt noch laut @apollon77
  • Webseite in VIS anzeigen lassen

    10
    1
    0 Stimmen
    10 Beiträge
    1k Aufrufe
    DJMarc75D
    @roelli sagte in Webseite in VIS anzeigen lassen: <a href="//www.goldpreis.de" target="_blank" rel="nofollow"><img src="//www.goldpreis.de/charts/goldpreis-euro-monat-feinunze.jpg" alt="Goldpreis.de - Aktuelle Preise und Kurse"/></a> Das ist ja auch nur ein Link zu einem JPG und kein iFrame. "Wichtige" Seiten unterbinden gern mal das abbilden der iFrames. Das sieht man dann wenn (z.B. Firefox) anzeigt dass die Anzeige nicht gestattet wird! siehe an Deinem Beispiel: <iframe src="https://www.google.de" id="my-iframe" scrolling="no"></iframe> [image: 1697650606009-screenshot-2023-10-18-193449.png]
  • [gelöst] VIS speichert nicht mehr. Disketten Symbol bleibt

    12
    0 Stimmen
    12 Beiträge
    755 Aufrufe
    A
    @djmarc75 sagte in [gelöst] VIS speichert nicht mehr. Disketten Symbol bleibt: @aleks-83 sagte in VIS speichert nicht mehr. Disketten Symbol bleibt: Und warum funktionierte es vorher mit meinen anderen Einstellungen Monate oder Jahre lang auch? Weil Du wahrscheinlich Monate oder Jahre keine Updates gemacht hast ;) Doch doch, ich mache regelmäßig Updates in ioB und Windows. @homoran sagte in [gelöst] VIS speichert nicht mehr. Disketten Symbol bleibt: @aleks-83 sagte in [gelöst] VIS speichert nicht mehr. Disketten Symbol bleibt: Tut aber auch nicht weh wenn doch wenn jemand dir helfen soll und es aufgrund der zugeordneten IPs nicht kann, dann schon Ja das weiß ich. Wenn die IPs relevant sind, lasse ich sie auch offen.
  • VIS material advanced kein json graph widget fehlt

    Verschoben
    2
    0 Stimmen
    2 Beiträge
    230 Aufrufe
    HomoranH
    @thomkast ich hab das mal abgetrennt. Bitte Threadtitel noch anpassen!
  • Hilfe bei der Darstellung in echarts

    2
    0 Stimmen
    2 Beiträge
    229 Aufrufe
    HomoranH
    @grisu73 sagte in Hilfe bei der Darstellung in echarts: wie mache ich das mit echarts ??? gar nicht! die musdt du monatlich per Skript generieren und in eigene Datenpunkte schreiben. Diese dann in eCharts anzeigen
  • hqwidgets - Windows and Shutter / Batteriezustand

    1
    1
    0 Stimmen
    1 Beiträge
    130 Aufrufe
    Niemand hat geantwortet
  • [gelöst] Web-Adapter zeigt 500. Error{} als Startseite

    11
    0 Stimmen
    11 Beiträge
    879 Aufrufe
    BananaJoeB
    Und heute kam das Update des Web-Adapters auf 6.1.10 und es funktioniert alles wieder wie gewohnt.

442

Online

32.7k

Benutzer

82.5k

Themen

1.3m

Beiträge