Ich habe nun endlich auch mal ein paar Tabs fertig
Macht schon Spaß wie einfach und intuitiv das alles so geht. Nur für Sonos musste ich noch etwas in VIS basteln.
Ich habe nun endlich auch mal ein paar Tabs fertig
Macht schon Spaß wie einfach und intuitiv das alles so geht. Nur für Sonos musste ich noch etwas in VIS basteln.
Mit DisplayImage hatte ich es unter v2 nicht hinbekommen. Nur mit CustomHTML., was unter v3 jetzt StateHTML heißt. Ich hatte das einmal hier beschrieben für v2:
@zefau
Vielen Dank für die schnelle Rückmeldung. Habe es gleich mal installiert und getestet. Für meine Rollladen hat es geklappt. für die Lampen leider nicht. Stehlampe und Deckenlampe waren wohl bei den Keywords nicht dabei Ich habe die Geräte in enums der Gruppe enum.functions.light zugeordnet. Kann man das vielleicht irgendwie auslesen?
@zefau said in jarvis v2.1.0 - just another remarkable vis:
@maximilian-garbe sagte in jarvis v2.1.0 - just another remarkable vis:
Nevermind ich habe es hinbekommen. Sorry
Sag uns gerne, wie du es eingestellt hast, dann kann ich es im FAQ aufnehmen.
Es war tatsächlich recht einfach. Und zwar habe ich für den LevelBody die Schrittweite auf 0.1 gestellt. zusammen mit {"min":1,"max":0} in den Datenpunkteigenschaften und Anpassung der Grenzen für das Icon bin ich soweit von der Funktion her sehr zufrieden und auch der LevelBody tut was er soll. Einzig die Anzeige des aktuellen Öffnungslevels im Zahlenformat geht aktuell nicht, da dieses ja nur von 0 bis 1 geht und ich es Jarvis nicht in eine Prozentzahl umwandeln kann. Somit wird in Jarvis bei geschlossen 1% angezeigt und bei geöffnet 0%. Aber aktuell kann ich auch auf die Anzeige verzichten.
Ich hatte zunächst angefangen über den Alias- bzw. Devices-Adapter einen Klon zu generieren, der die Werte umrechnet. Das ist mir allerdings deutlich zu viel Aufwand für alle Rollläden. Da warte ich lieber bis es eine Möglichkeit zur Umrechnung oder Formatierung in Jarvis gibt
Wie gesagt geht es hier um BROLL eingebunden über den AccessPoint von Homematic IP.
Ich habe es tatsächlich auch heute hinbekommen die Livestreams von meiner Netatmo Presence in Jarvis einzubinden. Grandios, dass das geht! Ich stehe noch ganz am Anfang und bin gespannt was noch so alles geht
Einfach einen Zeichenketten-Datenpunkt anlegen und folgenden Code verwenden:
Dort dann unter src und id die EInträge anpassen und im Custom-HTML Widget in Jarvis den Datenpunkt auswählen. Ist fix gemacht.
Bei mir sind es Netatmo-Kameras, die einen m3u8-Stream haben. Müsstest halt gucken, ob das dann auch mit deinen Kameras und dem von diesen verwendeten Format funktioniert.
@schaxxe said in jarvis v2.1.0 - just another remarkable vis:
Entweder hab ich es überlesen oder nicht gefunden: Gibt es einen Trick, wie man Jarvis beibringen kann iFrames oder auch das Wetter auf die Ganze Breite eines iPads anzuzeigen? Bei mir wird das immer gequtescht und ich verliere Platz...Beim Wetter könnte ich auf Vollbild gehen, dann kann ich aber aufgrund des DarkMode nix mehr lesen.
Bei meiner Stauansicht von Google Maps sehe ich auch nur ein kleines Fenster, das vielleicht 25% des Bildschirms nutzt..Wetter.jpg
Ich habe jetzt auch eine Zeit lang mit der vernünftigen Einbindung von Google-Maps-Routen gehadert, habe es jetzt aber hinbekommen. Hatte es zunächst über iFrame eingebunden, aber dann wurde es wie bei dir nur in einem kleinen Mini-Streifen angezeigt. Dabei waren auch teilweise die Zeiten nicht zu sehen. Dann habe ich es über Custom-HTML versucht mit einem Datenpunkt, der den iframe aus google-maps enthält. Damit war dann die Anzeige super, aber bei Custom-HTML kann man leider keinen automatischen Refresh einstellen und somit musste man den Browser immer Refreshen, um die aktuellen Verkehrsdaten zu bekommen. Dann habe ich es noch einmal mit dem iframe probiert und alle möglichen Kombinationen ausprobiert und nun funktioniert es endlich wie ich es wollte inklusive Zoomen etc.:
Dazu muss man unter Mindesthöhe eine feste Pixel-Anzahl eintragen. Die relative Festlegung der Höhe mit vh funktioniert hier irgendwie nicht und es wird immer nur dieser schmale Streifen einblendet, egal wie hoch das Widget selbst auch ist:
So sieht das Ganze nun aus:
Vielleicht hilft es ja jemandem, der wie ich fast dran verzewifelt wäre
@joshude
Autoplay geht auch. Dafür dann einmal den player um {autoplay: 'any'} ergänzen:
var player = videojs('Stellplatz', {autoplay: 'any'});
Wichtig ist dabei, dass der Name des Videos im HTML-Body mit dem im Video übereinstimmt:
<video height="500" id="Stellplatz" class="video-js vjs-fluid vjs-default-skin" controls preload="auto"
data-setup='{}'>
In meinem Fall also Stellplatz
@mcu
Besten Dank! (Generell auch für deine super Unterstützung hier)
Eine weitere Frage ist gerade noch aufgekommen:
Ich wollte in meiner zweiten Instanz eine Ansicht für ein vertikal aufgehängtes Tablet erstellen. Leider kriege ich auf dem Tablet in vertikaler Ausrichtung die Widgets immer in zwei Spalten angezeigt, obwohl die Widgets im Layout auf die komplette Seitenbreite definiert sind. Instanz ist komplett frisch und ich habe keine Seiteneinstellungen angepasst. Was mache ich falsch?
Screenshots:
Das hat leider nicht geholfen. Fehlermeldungen sind weiterhin die gleichen.
Habe gerade meine gesamte iOBroker Installation neu aufgesetzt und bin vom raspberry auf einen proxmox lxc mit Ubuntu umgezogen. Hatte gehofft, dass mit einer frischen Installation einige Fehler der Vergangenheit angehören. Bei der alten Installation wie auch bei der neuen habe ich folgende Fehler in der Konsole:
Diese Fehler kommen auch bei einer frischen Instanz, direkt wenn ich das erste mal auf die Seite gehe.
Wenn ich mir z.B. den woff2 Font in der Konsole anschaue, dann sieht das ganze so aus:
Hat jemand eine Idee woran das liegt und was ich dagegen tun kann?
Bei mir aktualisiert sich sowohl das Wetter- als auch das Kalender Widget nicht dynamisch, sondern erst, wenn die Seite im Browser komplett neu geladen wird. Dies führt dazu, dass an meinem Tablet an der Wand häufig 2 Tage alte Termine und das Wetter von vorgestern angezeigt werden. Gibt es eine Möglichkeit die so zu konfigurieren, dass diese genau wie das DateTime Widget dynamisch aktualisiert werden auch wenn ich die Seite nicht Reloade? Hatte das Problem auch mal mit dem Datetime Widget, dass dort die Uhrzeit festhing. Da hatte dann ein Löschen des Widget und das Erstellen eines neuen Widgets geholfen. Beim Wetter und beim Kalender Widget war das aber nun leider nicht die Lösung. Auch eine Auto Reload im Fully Browser schafft irgendwie keine Abhilfe. Erst wenn ich dort durch die "nach unten ziehen" Geste einen Refresh der Seite mache werden auch die Widgets aktualisiert
@paul53
Vielen Dank erstmal für deine ausführliche Antwort und deine Mühe. Das hat mir sehr geholfen und ich verstehe jetzt deutlich besser die Triggerfunktion.
@paul53 said in Über einen Datenpunkt aus API lesen & an API schreiben?:
Die Abfragen sind überflüssig: Aktualisiere die 8 Datenpunkte alle 10 s.
So hatte ich es tatsächlich auch die ganze Zeit. Die Abfragen waren zuletzt ein sehr verzweifelter Versuch meine Probleme in den Griff zu kriegen
Anstelle des RegExp verwende einzelne Trigger. Beispiel:
on({id: '0_userdata.0.Klimaanlagen.Gästezimmer.Soll-Temperatur', change: 'ne', fromNe: 'system.adapter.javascript.0'}, function(dp) {
So habe ich es nun umgesetzt und funktioniert gefühlt zuverlässiger. Wollte ich schon länger machen, aber war zu faul ^^
verhindert Triggern, wenn die Quelle ein Skript ist.
Der Trigger soll auch über Skripte ausgelöst werden. Daher habe ich das fromNE: weggelassen
Worin unterscheiden sich die Datenpunkte?
- "0_userdata.0.Klimaanlagen.Schlafzimmer.Switch"
- "0_userdata.0.Klimaanlagen.Schlafzimmer.Automatisch_An"
- "0_userdata.0.Klimaanlagen.Schlafzimmer.Automatisch_aus"
Hatte mit automatisch an und automatisch aus versucht eine Logik zu bauen, um zu erkennen, ob die Klimaanlagen manuell über die Fernbedienung oder die vis bedient wurden. In diesem Fall sollen die Anlagen nämlich nicht mehr automatisch an oder ausgehen.
Eine Hysterese von 100 W ist viel zu klein. Sie muss größer sein als die Leistungsaufnahme des leistungsstärksten Gerätes, sonst wird im Grenzbereich alle 2 Minuten ein- und ausgeschaltet.
"kurzfristig_Mittelwert_Stromeinspeisung/-Bezug" ist über eine Minute gemittelt und "Mittelwert_Stromeinspeisung/-Bezug" ist über 10 Minuten gemittelt. Dadurch waren es nicht ganz alle 2 Minuten, aber je nach Wolkengrad schon alle 10 Minuten. ich habe das mal ein wenig erhöht.
@paul53 said in Über einen Datenpunkt aus API lesen & an API schreiben?:
@maximilian-garbe sagte: bei einer Änderung der Datenpunkte diese wieder an die Klimaanlage geschickt werden, um die Anlage z.B. anzuschalten oder auszuschalten:
Ich würde das Senden des Kommandos in eine Funktion sendCmd(cmd) packen. Das NPM-Modul "follow-redirects" kenne ich nicht und habe mich deshalb an Dein Skript gehalten.
Genauso habe ich es jetzt umgesetzt:
var fs = require('fs'); // wofür?
Das war ein Relikt
on({id: '0_userdata.0.Klimaanlagen.Gästezimmer.Switch', change: 'ne', ack: false}, function (dp) { sendCmd({ component: "main", capability: "switch", command: "switch", arguments: [dp.state.val ? 'on' : 'off'] // boolean --> string }); });
Muss hier nicht auch der Wert "on" bzw. "off" in arguments[0] übergeben werden?
Das ist so eine Eigenart der Smartthings API. Für einige Funktionen wird der Value an Command übergeben wie bei switch und bei anderen kommt der in die Argumente. Nicht wirklich eingängig leider. Das Displaylicht kann man zum Beispiel nur per Befehl ein und ausschalten. Es gibt aber keine Möglichkeit den aktuellen Status des Displaylichts abzufragen.
Hier noch einmal der Vollständigkeit halber mein mit deinen Tipps optimiertes Skript zum
Automatisch Ein- und Ausschalten:
Nochmal besten Dank!
Jetzt muss nur die Sonne wieder scheinen, damit ich die angepassten Skripte auch mal testen kann
Hallo zusammen,
Ich hänge irgendwie fest und komme nicht mehr weiter. Ich frage mit folgendem Script über die Smarthings API von Samsung den Status meiner Klimaanlage ab und schreibe ihn in Datenpunkte:
Auf die gleichen Datenpunkte habe ich in einem zweiten Script einen Trigger gesetzt, sodass bei einer Änderung der Datenpunkte diese wieder an die Klimaanlage geschickt werden, um die Anlage z.B. anzuschalten oder auszuschalten:
Nun habe ich das Problem, dass wenn ich zufällig in dem Augenblick versuche die Anlage über den Datenpunkt einzuschalten, wenn die Daten von der Anlage gelesen werden, die Anlage nicht angeht und meine Änderung des Datenpunkts einfach überschrieben wird.
Wie kann ich das so aufsetzen, dass meine Änderung nicht automatisch überschrieben wird sondern tatsächlich an die Anlage geschickt wird? Ist wahrscheinlich eine Anfängerfrage, aber irgendwie konnte ich mir die Lösung nicht ergoogeln. Mache ich da einen kapitalen Denkfehler?
Ich schalte die Klimaanlage mit einem weiteren Skript an und aus, je nachdem ob die Photovoltaik gerade genug Strom produziert oder nicht. Dabei kommt es immer wieder vor, dass die Anlage nicht korrekt ein oder wieder ausgeschaltet wird. Gerade das "vergessene" Ausschalten könnte aber teuer werden und das würde ich gerne in Zukunft vermeiden. Zur Vollständigkeit hier noch einmal mein Skript zum automatischen an und ausschalten:
Ich bin für jeden Tipp dankbar!
Beste Grüße
@mcu
Ok habe eben noch ein zweites Mal deine Beschreibung vom Link gelesen und jetzt verstehe ich es. Hatte gerade anscheinend einen Knoten im Hirn. Vielen Dank!
@mcu
Auflösung liegt bei 1200 Pixel. Die Darstellung im Browser hat aber "nur" 800 Pixel.
@mcu
Ich muss doch wieder zurück rudern. Habe jetzt das Problem, dass jetzt alles nur noch in einer Spalte angezeigt wird, auch wenn ich zweispaltig haben möchte ^^
Danke dir! das wars. Da wäre ich nie drauf gekommen. Logik ist mir zwar immer noch nicht ganz klar, aber ich habe jetzt den Wert für small von 640 auf 820 gestellt und nun klappt es.