12.5, 'pv' => 6500.0, 'base' => 900.0, 'grid' => -800.0, 'boiler1' => 2400, 'boiler2' => 1500, 'dryer' => 900, 'temp1' => 51.2, 'temp2' => 48.7, 'manager' => 'PV', ]); self::assertStringContainsString('Enelix 2 Energiefluss', $html); self::assertStringContainsString('Boiler 1', $html); self::assertStringContainsString('Boiler 2', $html); self::assertStringContainsString('Entfeuchter', $html); self::assertStringContainsString('Einspeisung', $html); self::assertStringContainsString('12:30', $html); } public function testDiagrammStelltMehrereZeitreihenDar(): void { $html = enelixDemoRenderChart( 'Leistungsverlauf', [ ['name' => 'PV', 'color' => '#f4c542', 'values' => [ ['time' => 100, 'value' => 1000.0], ['time' => 200, 'value' => 3000.0], ]], ['name' => 'Netz', 'color' => '#e95d5d', 'values' => [ ['time' => 100, 'value' => -500.0], ['time' => 200, 'value' => 500.0], ]], ], 'W', 100, 200 ); self::assertStringContainsString(' 0, 'VariableID' => 12345, 'SecondaryVariableID' => 0, 'Name' => 'PV-Anlage', 'Type' => 'solar', 'Grouped' => false, 'CalculationType' => 0, 'InfoVariableID' => 54321, 'Invert' => false, ], enelixDemoEnergyNode(12345, 'PV-Anlage', 'solar', 54321)); } public function testRollbackIstExplizitBestaetigungspflichtig(): void { $this->expectException(RuntimeException::class); $this->expectExceptionMessage('Rollback nur mit'); enelixDemoRemove(); } }