E-Stop IP

This commit is contained in:
chk
2026-06-12 18:59:56 +02:00
parent 3e3023fa63
commit bfb84fab50
8 changed files with 78 additions and 12 deletions

View File

@@ -27,12 +27,12 @@ describe('ShellyEmergencyStop — Konstruktor', () => {
expect(s.url).toBe(OFF_URL);
});
test('_onUrl ersetzt on=false durch on=true', () => {
test('_onUrl ersetzt on=false durch on=true (Ableitung)', () => {
const s = new ShellyEmergencyStop(OFF_URL);
expect(s._onUrl).toBe(ON_URL);
});
test('_statusUrl zeigt auf Switch.GetStatus', () => {
test('_statusUrl zeigt auf Switch.GetStatus (Ableitung)', () => {
const s = new ShellyEmergencyStop(OFF_URL);
expect(s._statusUrl).toBe(STATUS_URL);
});
@@ -49,6 +49,19 @@ describe('ShellyEmergencyStop — Konstruktor', () => {
expect(s.state).toBe('ready');
expect(s.error).toBeNull();
});
test('urlOn/urlStatus aus options überschreiben Ableitungslogik (IP statt .local)', () => {
// Typischer Docker-Use-case: url hat noch den .local-Hostnamen,
// aber urlOn/urlStatus zeigen bereits auf die echte IP.
const ipBase = 'http://192.168.0.99';
const s = new ShellyEmergencyStop(OFF_URL, {
urlOn: `${ipBase}/rpc/Switch.Set?id=0&on=true`,
urlStatus: `${ipBase}/rpc/Switch.GetStatus?id=0`,
});
expect(s._offUrl).toBe(OFF_URL); // url bleibt
expect(s._onUrl).toBe(`${ipBase}/rpc/Switch.Set?id=0&on=true`); // explizit
expect(s._statusUrl).toBe(`${ipBase}/rpc/Switch.GetStatus?id=0`); // explizit
});
});
describe('ShellyEmergencyStop — SenderInterface', () => {