NEWS
Siemens LOGO!8 FS04
-
Zu den LogoDec2Hex und LogoHex2Dec, Tobias Kolb von "Frickelzeugs" erlärt das so:
> Die Logo speichert Uhrzeiten (z.B. der Wochenschaltuhr) relativ seltsam ab. Eine Zeit von 18:30 Uhr wird als Hex-Wert 0x1830 im VM-Speicher abgelegt, dies entspricht der Dezimalzahl 6192\. Für die Visualisierung muss diese Dezimalzahl also wieder in Hex umgerechnet werden. Die Funktion LogoDec2Hex entspricht also einer einfachen Dec->Hex-Konvertierung mit einem Sonderfall: die Umrechnung wird nur durchgeführt, wenn der sich ergebende Hex-Wert ausschließlich aus Ziffern bestünde (kein A-F erlaubt!). Ist dies nicht der Fall, liefert die Funktion -1 zurück. Dieser Kunstgriff ist nötig, da NCalc nicht mit Hex-Werten umgehen kann. Die Funktion LogoHex2Dec erledigt die Konvertierung in die entgegengesetzte Richtung.
das muss dann warscheinlich im Widget gemacht werdenSchöne Grüße `
@Bluefox@all
habe leider von programmieren keine Ahnung, hoffe das wird sich ändern
Was meinst ihr, wo kann man dem Konverter einbauen?
In meine Rolllädensteuerung sind über 20 Uhren
Schöne Grüße `
Habe nun Umrechner! Es gibt leider kein Widget, das eine solche Umrechnung "im Bauch" hat (vielleicht bin ich ja auch nur nicht fündig geworden), deshalb Umweg über Javascript:
Im ioBroker.admin den Adapter "Scripte" installieren. In der neuen Lasche Scripte im Order Common u.a. Zeilen einfügen und speichern und Script auf Play stellen. In diesem Fall wollte ich den Sonnenaufgang richtig darstellen (sunrisenf:ohne Formatierung, sunrise: mit Formatierung - mit Doppelpunkt). Natürlich ist Sunrise nur 3 stellig (weil morgens), deshalb habe ich auch für 4stellige Uhrzeiten Zeile eingefügt und für diesen Fall auskommentiert. In der Visu dann ein Widget mit Stringvariablen auswählen und als Obekt ID gewünschte Variable einfügen. Hier: sunrise bzw. sunrisenf. Diese werden wie die S7 Variablen im Objektexplorer im Ordner javascript.0 geführt.
Achtung: Script wird nur bei Änderung ausgeführt!!(change: "ne")
Mein Dank gilt an Faisalman fyzlman@gmail.com(https://gist.github.com/faisalman/4213592) für diese Passage:
__//decimal to hexadecimal
ConvertBase.dec2hex = function (num) {
return ConvertBase(num).from(10).to(16);
};
this.ConvertBase = ConvertBase;
})(this);__
und meinem Arbeitskollegen.
__/**
- Beschreibe diese Funktion …
*/
createState('Sunrise', 0);
createState('Sunrisenf', 0);
on({id: "s7.1.DBs.DB1.Sunrise", change: "ne"}, function (obj) {
(function(){
var ConvertBase = function (num) {
return {
from : function (baseFrom) {
return {
to : function (baseTo) {
return parseInt(num, baseFrom).toString(baseTo);
}
};
}
};
};
// decimal to hexadecimal
ConvertBase.dec2hex = function (num) {
return ConvertBase(num).from(10).to(16);
};
this.ConvertBase = ConvertBase;
})(this);
setState("javascript.0.Sunrisenf",ConvertBase.dec2hex(getState("s7.1.DBs.DB1.Sunrise").val));
var Sunrisetmp= ConvertBase.dec2hex(getState("s7.1.DBs.DB1.Sunrise").val).toString();
//setState("javascript.0.Sunrise",Sunrisetmp.slice(0, 2) + String(":") + Sunrisetmp.slice(2, 4)) ; //bei 4 stelliger Zeit
setState("javascript.0.Sunrise",Sunrisetmp.slice(0, 1) + String(":") + Sunrisetmp.slice(1, 3)) ; //bei 3 stelliger Zeit
});__
-
Ich muss jetzt echt mal eine doofe Frage stellen, was ist das für ein S7 Adapter bzw. was ist das für ein Modul von Siemens?
Hab mal im Internet danach gesucht, aber keinen Adapter für die Logo!8 auf S7 gefunden!
-
Ich muss jetzt echt mal eine doofe Frage stellen, was ist das für ein S7 Adapter bzw. was ist das für ein Modul von Siemens?
Hab mal im Internet danach gesucht, aber keinen Adapter für die Logo!8 auf S7 gefunden! `
Der S7 Adapter ist zugleich der Adapter für die Logo!8-Steuerungen
-
Das hab ich schon verstanden, aber was ist das für ein Teil?
Kann ich mir den irgendwo im Internet mal anschauen? Hat irgendeiner von euch mal einen Link für mich?
Steh glaub echt auf dem Schlauch!
-
-
Jetzt ist der Groschen gefallen!!! Vielen Dank
-
Die Module mit denen sich ioBroker zu externer Hardware (oder Services) vetbindet heißen Adapter.
Gruß
Rainer
-
Habe nun Umrechner! Es gibt leider kein Widget, das eine solche Umrechnung "im Bauch" hat (vielleicht bin ich ja auch nur nicht fündig geworden), deshalb Umweg über Javascript:
Im ioBroker.admin den Adapter "Scripte" installieren. In der neuen Lasche Scripte im Order Common u.a. Zeilen einfügen und speichern und Script auf Play stellen. In diesem Fall wollte ich den Sonnenaufgang richtig darstellen (sunrisenf:ohne Formatierung, sunrise: mit Formatierung - mit Doppelpunkt). Natürlich ist Sunrise nur 3 stellig (weil morgens), deshalb habe ich auch für 4stellige Uhrzeiten Zeile eingefügt und für diesen Fall auskommentiert. In der Visu dann ein Widget mit Stringvariablen auswählen und als Obekt ID gewünschte Variable einfügen. Hier: sunrise bzw. sunrisenf. Diese werden wie die S7 Variablen im Objektexplorer im Ordner javascript.0 geführt.
Achtung: Script wird nur bei Änderung ausgeführt!!(change: "ne") `
Super!!! Dankeschön!!!Jetzt sehe ich die Uhr richtig. Leider kann ich die nicht über ioBroker einstellen. Mache ich was falsch oder ist der Script nur zum auslesen?
Schöne Grüße
-
Jetzt funktioniert nur noch der analoge Eingang [emoji24] `
???? -
Hallo Vumer,
Hat sich schon fast wieder erledigt[emoji849]
Ich habe nachträglich DB1 0.0 gelöscht
Die ganzen Einträge die danach kommen funktionieren nicht mehr
Auch exportieren und danach importieren geht auch nicht. Nur als erstes löschen und danach wieder anlegen funktioniert [emoji30]
Hatte schon alle Ein- und Ausgänge abgebildet [emoji20]
Ach ja was macht man(n) nicht alles für sein Hobby [emoji12]
Damit kann ich auch nur bestätigen "DB1 0.0" muss da sein !
-
Ach so mit dem LDR Widerstand funktioniert super
Ich habe jetzt einen Dämmerungsschalter für 0,30€
Habe mir jetzt noch für den analogen Eingang einen Festspannungsregler 10Volt bestellt
Ich erhoffe mir dadurch ein etwas besseren Analogbereich als mit dem jetzigen Spannungsteiler
Jetzt kann ich schön die Homematic Rollos darüber schalten[emoji3]
-
Ach ja was macht man(n) nicht alles für sein Hobby [emoji12] `
aber dem WAF nicht vergessen :lol:Damit kann ich auch nur bestätigen "DB1 0.0" muss da sein ! `
Auch wichtig bei Word oder Dword die Adresse immer geradzahlig wählen. -
Habe nun Umrechner! Es gibt leider kein Widget, das eine solche Umrechnung "im Bauch" hat (vielleicht bin ich ja auch nur nicht fündig geworden), deshalb Umweg über Javascript:
Im ioBroker.admin den Adapter "Scripte" installieren. In der neuen Lasche Scripte im Order Common u.a. Zeilen einfügen und speichern und Script auf Play stellen. In diesem Fall wollte ich den Sonnenaufgang richtig darstellen (sunrisenf:ohne Formatierung, sunrise: mit Formatierung - mit Doppelpunkt). Natürlich ist Sunrise nur 3 stellig (weil morgens), deshalb habe ich auch für 4stellige Uhrzeiten Zeile eingefügt und für diesen Fall auskommentiert. In der Visu dann ein Widget mit Stringvariablen auswählen und als Obekt ID gewünschte Variable einfügen. Hier: sunrise bzw. sunrisenf. Diese werden wie die S7 Variablen im Objektexplorer im Ordner javascript.0 geführt.
Achtung: Script wird nur bei Änderung ausgeführt!!(change: "ne") `
Super!!! Dankeschön!!!Jetzt sehe ich die Uhr richtig. Leider kann ich die nicht über ioBroker einstellen. Mache ich was falsch oder ist der Script nur zum auslesen?
Schöne Grüße `
Script zum Schreiben wird noch folgen, ich forsche….melde mich wieder!
-
Ja, klar. Bin schon gespant.
Hast wahrscheinlich schon geseh, aber so sieht das bei LogoControl aus:
<calculation id="time"><valuetotext calculation="{Floor(LogoDec2Hex([value])/100)}:{if(LogoDec2Hex([value])%100>9,'','0')}{LogoDec2Hex([value])%100}"><texttovalue valueparseregex="(\d+):(\d+)" calculation="{LogoHex2Dec([value1]*100+[value2])}"></texttovalue></valuetotext></calculation>
wäre super wenn man das im S7 Adapter einbauen könnte, unter Rolle z.B. LOGO!Time
-
So, nun ist auch der Weg analoger Werte von ioBroker nach Logo! fertig.
Wichtig: Variable muss im Adapter "RW" angehakt werden und als "switch" in der Spalte "Rolle" deklariert werden (ja, auch analoge Werte werden geschaltet )
Als Widget dient "Input"
Leider muss für einlesen und schreiben ein eigener Script geschrieben werden. Vielleicht findet jemand einen Weg beides in einem zu machen.
Weiters wäre es toll, diese Funktion in ein Widget zu integrieren….Vielleicht gibt es ja einen Editor für Widgets?
__/**
- Beschreibe diese Funktion …
*/
createState('ZeitEinnf_in', 0);
on({id: "javascript.0.ZeitEinnf_in"/ZeitEinnf_in/, change: "ne"}, function (obj) {
(function(){
var ConvertBase = function (num) {
return {
from : function (baseFrom) {
return {
to : function (baseTo) {
return parseInt(num, baseFrom).toString(baseTo);
}
};
}
};
};
// hexadecimal to decimal
ConvertBase.hex2dec = function (num) {
return ConvertBase(num).from(16).to(10);
};
this.ConvertBase = ConvertBase;
})(this);
setState("s7.1.DBs.DB1.ZeitEin",ConvertBase.hex2dec(getState("javascript.0.ZeitEinnf_in"/ZeitEinnf_in/).val));
});__
-
Super! Es funktioniert
@gramlgu:Weiters wäre es toll, diese Funktion in ein Widget zu integrieren… `
oder direkt im Adapter -
Hallo komm grad nicht mehr weiter
hab die unten aufgeführte Steuerung kann den Netzwerkschalter auch schalten nur beim Ausgang zeigt er mir nichts an.
Kann ich den Q1 evtl auch unter den Ausgängen nutzen oder nur unter Dbs?
oder auch die Interne Nummer des NQ1 also 1246.0
2787_bildschirmfoto_2017-09-04_um_19.38.21.png
2787_bildschirmfoto_2017-09-04_um_19.36.22.png
2787_bildschirmfoto_2017-09-04_um_19.41.54.png
2787_bildschirmfoto_2017-09-04_um_19.42.08.png -
vielleicht hilft http://forum.iobroker.net/viewtopic.php?p=72322#p72322
@gramlgu:Bei mir scheiterte es daran dass ich die Adresse "DB1 0.0" in die Variablenliste einfügen musste, obwohl ich diese gar nicht verwende. Danach werden alle Variablen von/zu Logo übertragen, auch Merker/Eingänge/Ausgänge laut der Variablenliste von "Frickelzeugs" `
-
Danke hat schon mal funktioniert teilweise.
Wenn ich aber Q1 in DBs mit der Nummer DB1 1064.0 eintrage wechselt leider aber der Zustand nicht
Wenn ich den nachgeschalteten NQ1 abfrage funktioniert es. Möchte aber ungern in mein Programm immer noch einen zusätzlichen Netzwerkeingang einfügen wollen
wäre es auch möglich die Ausgänge unter Ausgänge und nicht auf DBs eintragen zu können?
-
Danke hat schon mal funktioniert teilweise.
Wenn ich aber Q1 in DBs mit der Nummer DB1 1064.0 eintrage wechselt leider aber der Zustand nicht `
die feste Speicheradressen sind nur zum auslesenwäre es auch möglich die Ausgänge unter Ausgänge und nicht auf DBs eintragen zu können? `
leider funktioniert das im mit dem Adapter nicht. Eventuel bei LOGO 7. Die VM-Adressen von LOGO 7 und 8 sind unterschiedlich und im Adapter kann mann nicht zwischen 7 und 8 wählen. Es ist nur eine Vermutung, habe keine LOGO 7 zum testen.