wie hast du die Temp in °C umgerechnet bei mir zeigt er nur F an und /1.8+32 nimmt er natürlich im Faktor nicht
hmmm
wie hast du die Temp in °C umgerechnet bei mir zeigt er nur F an und /1.8+32 nimmt er natürlich im Faktor nicht
hmmm
Es funktioniert bei mir nicht. Hmmm...
Hallo zusammen,
ich habe das Javascript importiert. Die Daten angepasst nur Name und Projekt
Da das Script die Datenpunkte unter javascript.0 gesperrt angelegt hat habe ich im Skript dann noch die Anlage der Variablen ausgetauscht. Der Code war auch in einem Post vorhanden
so schaut das Skript im Moment aus
/*******************************************************************************
* ---------------------------
* Pin-Schutz für VIS-View
* ---------------------------
* Autor: Mic
* Change Log
* - 0.2 - Fix: 0 on keypad was not recognized
* - 0.1 - initial version
* Support: https://forum.iobroker.net/viewtopic.php?f=30&t=19871
******************************************************************************/
/*******************************************************************************
* Konfiguration
******************************************************************************/
const STATE_PATH = 'javascript.' + instance + '.' + 'visViewPinSperre.';
const LOGGING = true; // Detaillierte Ausgabe im Log. Falls keine Probleme, dann auf false setzen.
/*******************************************************************************
* Konfiguration: Views
******************************************************************************/
// Es können beliebig mehr Views hinzugefügt oder auf eine limitiert werden, bitte aber Aufbau beibehalten!
const PIN_VIEWS = [
{
name: 'reboot', // Name der View, zu der bei Erfolg gewechselt werden soll
project: 'main', // VIS-Projekt, in dem die View ist, für den Viewwechsel bei Erfolg. Wert bekommt man u.a.: Vis -> Menü: Setup > Projekte (den Namen des jeweilgen Projektes nehmen)
instance: 'FFFFFFFF', // Funktioniert bei mir (und einigen anderen) immer mit 'FFFFFFFF', ansonsten Wert vom Vis, Menü Tools, Feld "Instanz ID" nehmen
pin: '1234', // Pin
},
{
name: 'Test',
project: 'Testprojekt',
instance: 'FFFFFFFF',
pin: '5678',
},
];
/**********************************************************************************************************
++++++++++++++++++++++++++++ Ab hier nichts mehr ändern / Stop editing here! ++++++++++++++++++++++++++++
*********************************************************************************************************/
/*******************************************************************************
* Globale Variablen
*******************************************************************************/
// Array, pro View ein Element
var G_LastKeyPressed = []; // Letzte Taste, die gedrückt wurde
var G_PinBufferKeys = []; // Puffer für eingegebene Ziffern
var G_PinBufferWildcards = []; // Für Vis-Anzeigefeld der Pineingabe, füllt sich mit "*" nach jeder Zifferneingabe
/*******************************************************************************
* Executed on every script start.
*******************************************************************************/
init();
function init() {
// Create states
createScriptStates();
// 1. Initialize global variables
// 2. Reset for each view
setTimeout(function(){
for (let i = 0; i < PIN_VIEWS.length; i++) {
// Initialize global variables
G_LastKeyPressed[PIN_VIEWS[i].name] = '';
G_PinBufferKeys[PIN_VIEWS[i].name] = '';
G_PinBufferWildcards[PIN_VIEWS[i].name] = '';
// Reset für jede View durchführen
resetPin(PIN_VIEWS[i].name)
}
}, 3000);
// Main Script starten, 5 Sekunden nach State-Generierung
setTimeout(main, 5000);
}
/*******************************************************************************
* Haupt-Skript
*******************************************************************************/
function main() {
// Überwacht das Tastenfeld in VIS für jede View
for (var i = 0; i < PIN_VIEWS.length; i++) {
on({id: STATE_PATH + PIN_VIEWS[i].name + '.CurrentKey', change: "any"}, function (obj) {
var currView = obj.id.substr(STATE_PATH.length).split(".")[0]; // get View Name simply from obj.id
if(LOGGING) if(obj.state.val !== '') log('Eingabe über Tastenfeld: ' + obj.state.val + ', Viewname: ' + currView);
switch(obj.state.val) {
case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9:
G_LastKeyPressed[currView] = obj.state.val;
setState(obj.id, '');
userEnteredNumber(currView);
break;
case 'Enter': // Der User hat die Pin-Eingabe bestätigt.
checkEnteredPin(currView);
break;
case 'Reset':
resetPin(currView);
break;
default:
//None
}
});
}
}
/********************************
* Create States
********************************/
function createScriptStates() {
for (let i = 0; i < PIN_VIEWS.length; i++) {
createState(STATE_PATH + PIN_VIEWS[i].name + '.CurrentKey', {'name':'Mit Tasten aus VIS setzen', 'type':'mixed', 'read':true, 'write':true, 'role':'info', 'def':'' });
createState(STATE_PATH + PIN_VIEWS[i].name + '.WrongPinEntered', {'name':'Pin-Fehler', 'type':'boolean', 'read':true, 'write':true, 'role':'info'});
createState(STATE_PATH + PIN_VIEWS[i].name + '.PinWildcards', {'name':'Sterne (*) für VIS-Anzeige', 'type':'string', 'read':true, 'write':true, 'role':'info', 'def':'' });
}
}
/********************************
* Wird ausgeführt, sobald der User eine Nummer im Tastenfeld eingibt.
* @param {string} viewName Name der View
*********************************/
function userEnteredNumber(viewName) {
G_PinBufferKeys[viewName] = G_PinBufferKeys[viewName] + G_LastKeyPressed[viewName];
G_PinBufferWildcards[viewName] = G_PinBufferWildcards[viewName] + ' *';
setState(STATE_PATH + viewName + '.PinWildcards', G_PinBufferWildcards[viewName]);
}
/********************************
* Wird ausgeführt, sobald der User E für "Enter" eingibt
* @param {string} viewName Name der View
********************************/
function checkEnteredPin(viewName) {
if (G_PinBufferKeys[viewName] == getPresetElement(viewName, 'pin')) {
if(LOGGING) log('Pin-Eingabe erfolgreich, View [' + viewName + ']');
onSuccess(viewName);
setTimeout(function() { resetPin(viewName) }, 3000); // Reset nach 3 Sekunden
} else {
if(LOGGING) log('Falschen Pin eingegeben, View [' + viewName + ']');
setState(STATE_PATH + viewName + '.WrongPinEntered', true);
resetPin(viewName);
}
}
/********************************
* Reset
* @param {string} viewName Name der View
********************************/
function resetPin(viewName) {
if(LOGGING) log('Reset Pin, View-Name: [' + viewName + ']');
G_PinBufferWildcards[viewName] = '';
G_PinBufferKeys[viewName] = '';
setState(STATE_PATH + viewName + '.CurrentKey', '');
setState(STATE_PATH + viewName + '.PinWildcards', '');
setStateDelayed(STATE_PATH + viewName + '.WrongPinEntered', false, 3000); // Erst nach 3 Sekunden, für VIS-Anzeige
}
/********************************
* Wird bei erfolgreicher Pin-Eingabe ausgeführt
* @param {string} viewName Name der View
********************************/
function onSuccess(viewName){
// Change View
setState("vis-2.0.control.instance", getPresetElement(viewName, 'instance'));
setState("vis-2.0.control.data", getPresetElement(viewName, 'project') + '/' + viewName);
setState("vis-2.0.control.command", 'changeView');
}
/********************************
* Gibt Elemente von PIN_VIEWS zurück
* @param {string} viewName Name of the view
* @param {string} key 'project', 'instance', 'pin'
* @return {string} Content of the element, e.g. the Pin "1234" for element 'pin'
********************************/
function getPresetElement(viewName, key) {
var keyEntry = '';
for (let i = 0; i < PIN_VIEWS.length; i++) {
if (PIN_VIEWS[i].name === viewName) {
keyEntry = PIN_VIEWS[i][key]
}
}
return keyEntry;
}
ich habe die Widgets importiert und die Buttons mit dem Javascript verbunden
Wenn ich jetzt in der Vis auf die Buttons drücke passiert nix!?
Es werden auch keine Zahlen in die Werfelder des Objekts Current key geschrieben!
Was mache ich falsch!?
Ich benutzte die vis-2 darum hätte ich den Teil in dem Skript von vis auf vis-2 geändert. Hoffe das stimmt.
function onSuccess(viewName){
// Change View
setState("vis-2.0.control.instance", getPresetElement(viewName, 'instance'));
setState("vis-2.0.control.data", getPresetElement(viewName, 'project') + '/' + viewName);
setState("vis-2.0.control.command", 'changeView');
}
Jede Hilfe ist willkommen. Danke und guten Rutsch nachträglich
Shigoru
Vis-2 border-radius Fehler Basic Bar, blub, string img src, justgage
Hallo und gutes Neues zusammen,
leider wird meine Visu durch einen Fehler beim border-radius zerstört. Dies betrifft sowohl Basic Bar, Basic bulb on off und leider auch die Basic string img src
Damit man sich das vorstellen kann. Ein bild sagt mehr als 1000 Worte...
Die Senderlogos ins blub on off. Hier gehen alle Ecken nicht
Bei den Bildern Allgemein gehen auch alle 4 Ecken nicht. Ich denke das kann sich jeder vorstellen hier nur die Einstellung
Bei der Basic bar ist es schon interessanter dort geht nur die linke Seite nicht
Also hier meine Systemdaten. Falls ich was vergessen habe anzugeben bitte sagen!
Bei dem justgage widget ist es leider auch nicht Einstellbar einen Radius zu bekommen. Wahrscheinlich eher ein Feature Request als...
Hier mal mit Anzeige
So die Ecken abgerundet wäre super
Tja man sieht das es leider nicht schon geworden ist.
Jede Hilfe ist willkommen weil das schaut leider grauenhaft aus.
Danke
Ciao Shigoru
@oliverio said in Zeilenumbruch bei langen Dateinamen funktioniert nicht:
<div style="white-space: nowrap;text-overflow:ellipsis;overflow: hidden;">{sonos.0.root.10_0_0_172.current_title}</div>
Hey super 1000dank. Das funktioniert einwandfrei. Ja das mit der Syntax da war ich wohl total daneben
Guten Rutsch und Gesundheit für 2024... Shigoru
@oliverio Interessant finde ich das Thema mit dem Javascript ellipsis. Das wäre Perfekt wenn er Abkürzen würde und hinten ... machen
Ich habe ein Basic HTML verwendet mit dem sollte das ja gehen. Leider bin ich bei der Syntax nicht ganz so fit.
{titel:sonos.0.root.10_0_0_172.current_title; text-overflow ellipsis width 200px : title}
Kannst du mir hier ev aus der Patsche helfen?
Ciao ciao Shigoru
@ubecker Hallo Udo, danke für den Tipp leider sehe ich bei einer Umleitung über einen Alias keine Veränderung. Der Namen ist immer noch gleich lang. Ciao Shigoru
Hallo zusammen, ich versuche vom Sonos Adapter den Titel in einer Vis darzustellen. Wenn man aber eine Sprachausgabe hinschickt entsteht ein ewig langer Dateiname ohne Leerzeichen der keinen Umbruch hat.
Das zerstört leider mein Design.
Eigentlich wäre das Fenster nicht so breit.
Auch dies über HTML aufzulösen hab ich nicht geschafft.
<table style="width:100px">{sonos.0.root.10_0_0_173.current_title}</table>
Kann mir jemand bitte einen Tipp geben wir man das hinbekommen könnte?
Danke
Ciao Shigoru
@armilar Danke für die Hilfe. Konnte das Thema lösen! Perfekt. Ich hatte Alben mit Unteralben in der Favoritenliste. Da weiß dann nicht mal die Sonos App wie abspielen. Als es in der Sonos Desktop App ging funktionierte es auch in der Vis. Ciao Shigoru
@futurev ich stehe vor dem selbem Problem das ich die angelegten Playlists nicht abspielen kann weil ich sie nicht in die Favoriten Liste bringe. Auf dem iPhone finde ich nicht raus wie ich die Playlists in die Favoriten bekomme. Was meinst du mit Desktop App? Was für eine App? Ich habe mich auf der Sonos Website eingeloggt aber auch doch habe ich das nicht gefunden. Kannst du mir hier weiterhelfen? Ciao Shigoru
Und was auch noch interessant ist. Die 1494°F dich im bekomme sind umgerechnet auch 812 °C. Volle Strange.
Hätte über ein blockly die Temperatur umgerechnet. Aber das scheint nichts zu bringen wenn sie falsch ist.
Sehr interessant. Also bei allen users ist auf Metric eingestellt. Auch interessant das ich nur Englisch kann und kein Deutsch aber das stört mich nicht.
Rechts oben über den Benutzer kommt man da anscheinend auch ran.
Was ich aber noch nicht ganz verstehe. Der Nut Adapter greift auf meine Synology Nas zu dort habe ich auch die Ip der Nas angeben. Und die Nas hängt mit USB am der USV.
Im Moment glaub ich hab ich die Management Card für nix.
Darum bin ich mir auch nicht sicher wo er die Temperatur herzieht im Moment.