Dankeschön, das wars !
(obwohl ich schwören könnte dass ich das schon probiert habe ABER na ja, anscheinend nicht ganz so ;-)
Ankündigung
Einklappen
Keine Ankündigung bisher.
EDOMI - LBS - Diskussion
Einklappen
X
-
Uhm... einfach ein:Zitat von coliflower Beitrag anzeigenNe, ich möchte nur ins Trace-Log etwas schreiben um zu loggen …
PHP-Code:writeToTraceLog(0,true,'iTunes RM | A10 | LS01 output = '.$output['LS1']);
Einen Kommentar schreiben:
-
Das habe ich schon verstanden ...Nochmal: Ausgänge gibt es nicht wirklich. Wenn Du einen Ausgang auf einen Wert setzt, werden alle EINGÄNGE (anderer Logikbausteine), die mit diesem Ausgang verbunden sind auf den Wert gesetzt.
Deshalb meine Frage ob ich den Wert z.B. 0 von LS1=0 im LBS (die dann den LBS-Ausgang zugeführt wird) auslesen kann ?
Welche Variable soll ich loggen, die $E ? Die ist immer 1 ABER der LS1 kann ja nach Zustand eine 0 oder 1 haben ...
Ich suche NUR nach einer Möglichkeit den Wert zwischen 0 und 100 IN das Trace-Log zu schreiben ...
Oder geht das auch nicht ….?
Einen Kommentar schreiben:
-
Nochmal: Ausgänge gibt es nicht wirklich. Wenn Du einen Ausgang auf einen Wert setzt, werden alle EINGÄNGE (anderer Logikbausteine), die mit diesem Ausgang verbunden sind auf den Wert gesetzt.
Wenn Du diesen Wert Loggen willst, musst Du einfach die Variable loggen, deren Wert Du auf den Ausgang gegeben hast.
Einen Kommentar schreiben:
-

Ne, ich möchte nur ins Trace-Log etwas schreiben um zu loggen …
Der LBS funktioniert in diesem Bereich wie er soll - einzig und alleine fehlt mir das Wissen wie ich die Werte die an den Ausgängen des LBS anliegen auch ins Trace-Log schreiben kann ...
Anstatt der ??? im Beispiel ('LS1=1&LS2=1&LS3=0') soll die 1 oder in anderer Konstellation die 0 stehen da LS1 entweder 0 oder 1 haben kann (Lautsprecher AN oder AUS) … LS1=1 oder LS1=0
AUS >> writeToTraceLog(0,true,'iTunes RM | A10 | LS01 output = '.???);
Soll DAS werden >> 2016-02-16 20:05:44 296828 EXEC 13818 iTunes RM | A19 | LS10 output = ???
Einen Kommentar schreiben:
-
Ich danke eher fuer DeineZitat von coliflower Beitrag anzeigenDanke für deine Geduld :-)
Also hast Du einen String vom Mac, der diese LSx=y Paare enthaelt. Du willst jetzt y auf Ausgang z legen und ins trace schreiben, dass LSx im String war (lapidar gesprochen).Zitat von coliflower Beitrag anzeigenIch versuche etwas auszuholen ...
Und falls ein bestimmtest LSi im String nicht auftaucht, dann willst du ins trace schreiben, dass es nicht dabei war? Wozu?
Und der zu i gehoerende Ausgangs soll dann auf NULL gesetzt werden? Oder ist das nicht noetig?
BTW: wenn die Ausgaenge linear den LS-Indizes zugeordnet sind, laesst sich das programmtechnisch deutlich einfacher abbilden, also zB
LS1 => Ausgang 10
LS2 => Ausgang 11
LSn => Ausgang (9+n)
Nicht aufgeben, wir schaffen das
Einen Kommentar schreiben:
-
Danke für deine Geduld :-)
Ich versuche etwas auszuholen ...
Mein Mac schickt mit per ECHO einen String … 'LS1=1&LS2=1&LS3=0'
Dieser String wird via UDP-Listener im LBS entgegengenommen und danach geparst ...
parse_str($data, $output);
Danach wird abgefragt ob z.B. LS1 enthalten ist (im Array), wenn ja dann weiter ...
if (array_key_exists('LS1', $output)) {
setLogicLinkAusgang($id,10,$output['LS1']);
writeToTraceLog(0,true,'iTunes RM | A10 | LS01 exists = '.array_key_exists('LS1',$output));
writeToTraceLog(0,true,'iTunes RM | A10 | LS01 output = '.???;
}
Wenn Ja, dann soll der Wert/Inhalt von LS1, im Beispiel die 1 den Ausgang 10 zugeführt werden.
Und genau diese 1 möchte ich im Trace-Log loggen (im grafischen Logikeditor sehe ich die 1 am Ausgang).
2016-02-16 20:05:44 296796 EXEC 13818 iTunes RM | A19 | LS10 exists = 1 Ok
2016-02-16 20:05:44 296828 EXEC 13818 iTunes RM | A19 | LS10 output = ???
Einen Kommentar schreiben:
-
Sorry, ich steh irgendwie aufm SchlauchZitat von coliflower Beitrag anzeigenNicht ganz …
Der String wird im LBS geparst und die Einzelwerten den jeweiligen Ausgängen zugeführt - die Werte sind OK …
ABER, ich würde diese Werte 0/1 gerne als solche in Trace-Log visualisieren ...
Also Du hast einen String (nennen wir ihn $string), in dem zB drinsteht: "LS5=3&LS19=12&foobar&LS0=88". Jetzt moechtest Du alle Wertepaare haben, die dem Muster LS<nummer>=<integer> entsprechen - und zwar nur die? Hab ich das richtig verstanden?
Das geht zB so:
Erzeugt dann folgende Ausgabe:PHP-Code:$string="LS5=3&LS19=12&foobar&LS0=88";
preg_match_all('/(LS\d+)=(\d+)/',$string,$matches);
$i=0;
foreach($matches[1] as $match) {
print $match."=".$matches[2][$i++]."\n";
}
Meinst Du sowas?Code:$ php test.php LS5=3 LS19=12 LS0=88
Edit: wenn Du die Werte nicht weiterverarbeiten, sondern nur die Wertepaare ausgeben willst, dann reicht auch folgendes foreach-Konstrukt:
PHP-Code:foreach($matches[0] as $match) {
print $match."\n";
}
Zuletzt geändert von wintermute; 16.02.2016, 19:51.
Einen Kommentar schreiben:
-
Nicht ganz …
Der String wird im LBS geparst und die Einzelwerten den jeweiligen Ausgängen zugeführt - die Werte sind OK …
ABER, ich würde diese Werte 0/1 gerne als solche in Trace-Log visualisieren ...
Einen Kommentar schreiben:
-
Ahso... dann schreib am besten (ueberall) statt 'LS1'Zitat von coliflower Beitrag anzeigenDerzeit wird ja nur ein 1 ausgegeben wenn LS1 im String enthalten ist, z.b. 'LS1=1&LS2=0&LS3=1&….‘
Ich würde gerne die Werte der jeweiligen LSx sehen.
Und pack um das ganze Konstrukt eine for-Schleife die von 1 bis "wohinauchimmer" zaehlt.PHP-Code:'LS'.$i
Einen Kommentar schreiben:
-
Derzeit wird ja nur ein 1 ausgegeben wenn LS1 im String enthalten ist, z.b. 'LS1=1&LS2=0&LS3=1&….‘
Ich würde gerne die Werte der jeweiligen LSx sehen.
Einen Kommentar schreiben:
-
Ich versteh grad nicht... meinst Du, dass in dieser ZeileZitat von coliflower Beitrag anzeigenWie kann ich den Wert 0 oder 1 hinter „LS1“ in Trace-Log anzeigen lassen ?
je nach Wert von Deinem array_key_exists() 0 oder 1 (oder "Yes" oder "No") ausgegeben wird? Oder wo genau?PHP-Code:writeToTraceLog(0,true,'iTunes RM | A10 | LS01 exists = '.array_key_exists('LS1',$output));
gruesse :: Michael
Einen Kommentar schreiben:
-
Wie kann ich den Wert 0 oder 1 hinter „LS1“ in Trace-Log anzeigen lassen ?Nein - Ausgänge existieren nicht wirklich ...
BITTE/DANKE !
PHP-Code:if (array_key_exists('LS1', $output)) {
setLogicLinkAusgang($id,10,$output['LS1']);
writeToTraceLog(0,true,'iTunes RM | A10 | LS01 exists = '.array_key_exists('LS1',$output));
writeToTraceLog(0,true,'iTunes RM | A10 | LS01 output = '.$E[10]['value']);
}
Einen Kommentar schreiben:
-
Wollte nur nochmal berichten. Baustein nochmal heruntergeladen nach dem Fehler im Downloadbereich. Der Wetterbaustein funktioniert jetzt ohne Probleme.Zitat von AScherff Beitrag anzeigenDer o.g. Fehler führte dazu, dass der LBS nicht in den DL-Bereich gestellt wurde, nicht, dass er "Fehlerhaft" eingestellt wurde.
Einen Kommentar schreiben:


Einen Kommentar schreiben: