Lan Adapter einrichten

So weit isch weiß ist damit die maximale Sendezeit in dem Frequenzband 868 MHZ gemeint.
Die Geräte dürfen maximal 1% der Zeit etwas von sich geben. Wenn zu viele Sendeaktionen in kurzer Zeit gelaufen sind ist der Sendestatus für eine gewisse Zeit blockiert. Ist bei den FHZ auch so.

Ansgar

Dankeschön!

„Unendlich“ war natürlich symbolhaft gemeint.
Es gibt da sicher eine Begrenzung für parallel laufende Scripte:)

Blöde Frage: Wo liegt das Startup Script und wie heisst es ? :confused:

@Bernado71

Das kannst du nennen und ablegen wo du willst, nur es muss beim Event Handler unter Kern Instanzen eingetragen sein.

Ok.Danke :smiley:

hab eine kleine anpassung gemacht und eine zufällige Wartezeit im 100ms Bereich zwischen den Aktualisierungen eingebaut. So machen es die HM Geräte beispielsweise nach einem Stromausfall, damit nicht alle Geräte gleichzeitig senden…


$c = 0;
$meldung = array();
srand ( (double)microtime () * 1000000 );

//fragt den aktuellen Status ab und speichert ihn in der Statusvariable
foreach(IPS_GetInstanceListByModuleType(3) as $id)
{
	$instanz = IPS_GetInstance($id);
	$instanz = $instanz['ModuleInfo'];
	$instanz = $instanz['ModuleName'];
	if ($instanz == "HomeMatic Device")
	{
		$wait = rand (10,200);
		IPS_Sleep($wait);
		$c+=1;
		if (HM_RequestStatus($id, "STATE"))
		{  IPS_LogMessage($IPS_SELF, "Status erfolgreich aktualisiert für: ".$id);
		   $meldung=array_pad($meldung,$c,"Status erfolgreich aktualisiert für: ".$id." (pause:".$wait.")");
		}
		else
		{  IPS_LogMessage($IPS_SELF, "Status konnte NICHT aktualisiert werden! (".$id.")");
		   $meldung=array_pad($meldung,$c,"Status konnte NICHT aktualisiert werden! (".$id.") (pause:".$wait.")");
		}
	}
}
for ($i=0;$i<$c;$i++)
	echo $meldung[$i]."
";

PS: Paresy: Warum klappt denn der Zeilenvorschub hier nicht? hab alles probiert. siehe Bild.

Hallo Hinti,
habe dein neues Script mal ausprobiert. Bei mir kommt jedoch ne Fehlermeldung.
In Line 18 steht bei mir:

if (HM_RequestStatus($id, „STATE“))

Was stimmt hier nicht?

Grüsse
immergut

Hi immergut,
möglicherweise musst du erstmal ein live-update machen. diese Funktion ist recht neu und erst seit ca. 1 Woche in ipsymcon vorhanden.

PS: über die Ausgabe zum Schluss per -echo lässt sich streiten. Aber ich wollte eine saubere Ausgabe Zeile für Zeile ohne „Array (…)“ -texte etc. Aber der Zeilenvorschub klappt nicht!

Vielleicht hat Paresy hier noch einen Tipp für mich?

@Hinti

Mach doch mal einen Wagenrücklauf (\r) mit rein.

Ich hab mal ein funktionierendes Skript geschrieben :wink:

HM_RequestStatus: IP-Symcon :: Automatisierungssoftware

paresy

Danke Paresy,
lass mich bitte ein paar klärende Fragen stellen… (man will sich ja weiterbilden :D)

  1. Der elends lange key ({EE4A81C6-…) ist der immer gleich und wie kommt man auf sowas?
  2. Wofür dient nochmal das ‚@‘ voran beim Funktionsaufruf?
  3. Und wieso klappt es mit 3 ‚ist-gleich‘? / also: (=== false)

Hi Paresy,

eine Unklarheit habe ich noch: wird beim Befehl HM_RequestStatus der Status des Geräts per Funk direkt beim Gerät abgefragt, oder „nur“ beim LAN-Adapter?

Hintergrund: ich habe einen Rauchmelder mit herausgezogener Batterie abgefragt und keine Fehlermeldung erhalten.

Danke

Adrian

zu 2) … das @ unterbindet die php-fehlermeldung im browser
zu 3) … === Vergleicht die Variablen ob sie identisch sind… also
$a === $b -> Gibt TRUE zurück wenn $a gleich $b ist und beide vom gleichen Typ sind.

Und zu 1:

Das ist die ID für Homematic Komponenten und die ist fix.

Gruss
b71

Das ist die ID für Homematic Komponenten und die ist fix.

Gibts irgendwo eine Liste mit den ID’s der unterstützten Geräte/-Typen?
Dann könnte man die auch mit eigener Gewissheit öfters in Scripts einsetzen.

Woher kommt die ID eigentlich? Hat sie der Programmierer ausgedacht? :rolleyes::eek: …wollte ich schon lang mal wissen…:smiley:

Eine Liste gibt es hier… und für neue Module auch die paar Zeilen, die diese Liste generieren: IPS_GetModuleList: IP-Symcon :: Automatisierungssoftware

Die ID ist Fix. Und generiert wird sie über eine schöne Tastenkombination in Delphi :slight_smile:

paresy

Zu 2) => das hab ich mir schon gedacht.
Zu 3) => komisch, für mich sieht ein Vergleich zweier Werte immer so aus: ‚$a == $b‘, und dafür reichen zwei Stück ‚ist gleich‘ :confused:
Eine Wertzuweisung besteht aus einem Stück, ein Vergleich aus 2 Stück, weshalb also 3 :confused:

Aha! Danke für die Information.

Ich hatte da bisher nicht getraut… :o

ich habs vorhin selber nur ausm manual kopiert… hier der Link:
PHP: Vergleichs-Operatoren - Manual

ich vermute, bei === werden auch die typen verglichen